/* v0 visual tokens translated to the existing PHP/Bootstrap product. */
.sl-app-shell { --sl-blue:#2457d6; --sl-navy:#17243e; --sl-gray-100:#f5f7fb; --sl-gray-200:#e2e8f2; --sl-radius:.65rem; background:var(--sl-gray-100); color:var(--sl-navy); font:14px/1.5 Inter,Arial,sans-serif; min-height:100vh; display:block; }
.sl-app-shell a { text-decoration:none; }
.sl-app-shell a:hover { text-decoration:underline; }
.sl-sidebar { position:fixed; inset:0 auto 0 0; width:248px; z-index:1040; display:flex; flex-direction:column; overflow-y:auto; padding:25px 14px 16px; background:#fff; color:#53627a; border-right:1px solid #e4e9f1; }
.sl-sidebar-brand { display:flex; justify-content:space-between; align-items:center; padding:0 11px 27px; margin:0; }
.sl-brand-lockup { display:flex; gap:10px; align-items:center; color:#16295b; font-size:17px; font-weight:800; letter-spacing:.15em; }
.sl-brand-lockup > span > span { color:#4c36d8; }
.sl-brand-lockup img { border-radius:8px; object-fit:cover; }
.sl-brand-lockup small { display:block; font-size:9px; letter-spacing:.08em; font-weight:400; color:#68778f; }
.sl-nav-label { margin:24px 12px 8px; color:#68778f; font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.12em; }
.sl-sidebar .nav-link { display:flex; align-items:center; gap:12px; border:0; background:transparent; width:100%; text-align:left; color:#53627a; padding:10px 12px; border-radius:7px; font-size:13px; }
.sl-sidebar .nav-link:hover { background:#f4f7fb; color:#24324d; text-decoration:none; }
.sl-sidebar .nav-link.active { background:#eaf0ff; color:#2457d6; font-weight:700; }
.sl-nav-icon { width:18px; height:18px; flex-shrink:0; }
.sl-sidebar-bottom .nav-link { color:#65748c; font-size:12px; }
.sl-sidebar-bottom { border-top:1px solid #e4e9f1; margin-top:auto; padding-top:12px; }
.sl-sidebar nav { padding-bottom:28px; }
.sl-sidebar :focus-visible { outline-color:#2457d6; }
.sl-main-column { margin-left:248px; min-width:0; }
.sl-topbar { min-height:74px; background:#fff; border-bottom:1px solid #e4e9f1; display:flex; align-items:center; gap:20px; padding:11px max(38px,calc((100% - 1194px)/2)); }
.sl-page-context { min-width:0; flex:1; }
.sl-breadcrumb { display:flex; gap:8px; color:#65748c; font-size:11px; margin-bottom:4px; min-width:0; }
.sl-breadcrumb a { color:#65748c; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:230px; }
.sl-topbar h1 { font-size:21px; letter-spacing:-.035em; line-height:1.25; margin:0; overflow-wrap:anywhere; }
.sl-topbar > .btn { flex-shrink:0; max-width:45%; }
.sl-main { padding:32px 38px; max-width:1270px; margin:0 auto; }
.sl-app-shell .sl-card,.sl-app-shell .sl-stat-card { border:1px solid #e2e8f2; box-shadow:0 2px 4px #17243e03; border-radius:.65rem; background:#fff; min-width:0; }
.sl-app-shell .btn { font-size:12px; padding:9px 14px; border-radius:6px; font-weight:600; white-space:normal; }
.sl-app-shell .sl-btn-primary { background:#2457d6; box-shadow:0 2px 5px #2457d62e; border:1px solid #2457d6; }
.sl-app-shell .sl-btn-primary:hover { background:#1c48bc; border-color:#1c48bc; filter:none; text-decoration:none; }
.sl-app-shell .btn:focus-visible { outline:3px solid #2457d6; outline-offset:3px; box-shadow:none; }
.sl-app-shell .btn-outline-secondary { color:#52627b; border-color:#dce3ee; background:white; }
.sl-app-shell .btn-outline-secondary:hover { background:#edf1f7; }
.sl-app-shell .text-muted { color:#617086 !important; }
.sl-app-shell .h5 { font-size:16px; }
.sl-app-shell .table { font-size:13px; color:#263650; }
.sl-app-shell .table > :not(caption) > * > * { padding:11px 16px; border-color:#edf0f5; vertical-align:middle; }
.sl-work-table tbody tr:hover > * { background:#f8fafd; }
.sl-work-table th[scope="row"] { min-width:150px; font-weight:600; }
.sl-work-table .sl-date { white-space:nowrap; font-size:12px; color:#617086; }
.sl-result-table td { font-variant-numeric:tabular-nums; }
.sl-data-preview th,.sl-data-preview td { min-width:110px; white-space:nowrap; font-variant-numeric:tabular-nums; }
.sl-app-shell .table thead th { font-size:10px; letter-spacing:.06em; text-transform:uppercase; background:#f8fafd; color:#596982; }
.sl-work-table { min-width:620px; }
.sl-app-shell .badge { font-size:11px; font-weight:600; border-radius:20px; padding:5px 8px; }
.sl-app-shell .sl-badge-plan { background:#eaf0ff; color:#2457d6; border:1px solid #dbe5fc; font-size:11px; white-space:nowrap; }
.sl-app-shell .sl-current-plan { border-color:#a9c3f9; }
.sl-app-shell .bg-success { background:#e5f5ed !important; color:#226647; }
.sl-app-shell .bg-danger { background:#fce9ed !important; color:#99394b; }
.sl-app-shell .list-group-item { padding:17px 20px; border-color:#edf0f5; font-size:13px; }
.sl-app-shell .form-control,.sl-app-shell .form-select { font-size:13px; padding:10px 12px; border-color:#dce3ee; }
.sl-app-shell .form-control:disabled { color:#617086; background:#f5f7fb; opacity:1; }
.sl-app-shell .form-check { padding-top:5px; padding-bottom:5px; }
.sl-panel-heading,.sl-welcome { display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap; }
.sl-panel-heading { padding:19px 20px 15px; border-bottom:1px solid #edf0f5; }
.sl-panel-heading .h5 { font-size:15px; letter-spacing:-.02em; }
.sl-panel-heading > a { font-size:12px; }
.sl-quick-actions { display:flex; gap:10px; flex-wrap:wrap; margin:22px 0; }
.sl-recent-row { display:flex; flex-direction:column; gap:4px; padding:14px 20px; border-bottom:1px solid #edf0f5; color:#24324d; overflow-wrap:anywhere; }
.sl-recent-row:last-child { border:0; }
.sl-recent-row:hover { background:#f8fafd; }
.sl-overview-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; }
.sl-document-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr)); gap:20px; }
.sl-report-grid { grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr)); }
.sl-report-grid > article { display:flex; flex-direction:column; align-items:flex-start; border-top:3px solid #dbe5fc !important; }
.sl-report-grid > article > .btn { margin-top:auto; }
.sl-report-grid .h5 { line-height:1.45; }
.sl-kicker { color:#5871a4; font-size:10px; text-transform:uppercase; letter-spacing:.1em; font-weight:700; }
.sl-summary-link { display:flex; flex-direction:column; color:#53627a; gap:8px; }
.sl-summary-link strong { font-size:30px; color:#17243e; }
.sl-project-tabs { display:flex; gap:26px; overflow-x:auto; border-bottom:1px solid #dce3ee; margin-bottom:24px; }
.sl-project-tabs a { padding:10px 0 14px; color:#617086; white-space:nowrap; }
.sl-project-tabs [aria-current] { color:#2457d6; border-bottom:2px solid #2457d6; font-weight:700; }
.sl-analysis-steps { list-style:none; padding:0; margin:0 auto 27px; max-width:900px; display:flex; flex-wrap:wrap; gap:12px 20px; }
.sl-analysis-steps li { display:flex; align-items:center; gap:8px; color:#617086; font-size:12px; }
.sl-analysis-steps li > span { display:grid; place-items:center; width:25px; height:25px; flex-shrink:0; border-radius:50%; background:#fff; border:1px solid #d8e0eb; }
.sl-analysis-steps li.current { color:#2457d6; font-weight:700; }
.sl-analysis-steps li.current > span { background:#e8efff; border-color:#a9c3f9; color:#2457d6; }
.sl-wizard-panel,.sl-flow-intro,.sl-result-content { width:100%; max-width:900px; margin-inline:auto; }
.sl-wizard-panel .form-label { font-size:12px; color:#52627b; font-weight:600; }
.sl-method-grid,.sl-config-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.sl-method-group { border:0; border-top:1px solid #e8edf4; padding:16px 0 0; min-width:0; }
.sl-method-group legend { float:none; width:auto; margin:0 0 9px; padding:0 8px 0 0; font-size:11px; font-weight:700; color:#617086; }
.sl-method-group .form-check { display:flex; align-items:flex-start; gap:9px; padding:0 9px; margin:0 0 3px; border-radius:6px; }
.sl-method-group .form-check-input { float:none; flex-shrink:0; margin:12px 0 0; }
.sl-method-group .form-check-label { padding:9px 0; flex:1; font-size:13px; cursor:pointer; }
.sl-method-group .form-check:hover,.sl-method-group .form-check:focus-within { background:#f2f6ff; }
.sl-method-group .form-check-input:checked + label { color:#2457d6; font-weight:600; }
.sl-form-actions { display:flex; justify-content:flex-end; gap:12px; border-top:1px solid #e8edf4; margin-top:24px; padding-top:18px; }
.sl-upload-panel { border:1px dashed #bfd0ea; border-radius:8px; padding:24px; background:#fbfdff; }
.sl-upload-panel .form-text { margin-top:14px; font-size:12px; line-height:1.65; color:#617086; }
.sl-report-document { max-width:850px; padding:38px; }
.sl-document-heading { display:flex; align-items:center; justify-content:space-between; }
.sl-document-meta { display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:20px; margin:25px 0; padding:22px 0; border-block:1px solid #e2e8f2; }
.sl-document-meta dt { font-size:11px; color:#617086; margin-bottom:7px; }
.sl-document-meta dd { overflow-wrap:anywhere; }
.sl-document-heading .sl-brand { font-size:20px; letter-spacing:.16em; }
.sl-empty { padding:32px; color:#617086; }
.sl-empty p:last-child { margin:0; }
.sl-pagination { display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:12px; margin-top:20px; font-size:12px; }
.sl-pagination > span { margin-right:auto; }
.sl-menu-trigger,.sl-drawer-close,.sl-drawer-scrim { display:none; }
.sl-skip-link { z-index:1100; }
@media (max-width:1100px) { .sl-topbar { padding-inline:24px; } .sl-main { padding:26px 24px; } }
@media (max-width:900px) {
    .sl-sidebar { transform:translateX(-100%); visibility:hidden; width:min(280px,85vw); transition:transform .18s,visibility .18s; }
    .sl-sidebar.is-open { transform:translateX(0); visibility:visible; }
    .sl-main-column { margin-left:0; }
    .sl-menu-trigger,.sl-drawer-close { display:inline-flex; align-items:center; justify-content:center; min-width:44px; min-height:44px; gap:9px; background:transparent; border:1px solid #dce3ee; color:#24324d; border-radius:6px; padding:8px 10px; }
    .sl-drawer-close { font-size:22px; padding:0 8px; }
    .sl-menu-trigger span { font-weight:700; }
    .sl-topbar { flex-wrap:wrap; gap:12px; }
    .sl-page-context { order:3; flex-basis:100%; }
    .sl-topbar > .btn { margin-left:auto; }
    .sl-sidebar .nav-link,.sl-topbar > .btn,.sl-project-tabs a { min-height:44px; }
    .sl-sidebar { overscroll-behavior:contain; padding-bottom:max(16px,env(safe-area-inset-bottom)); }
    .sl-sidebar.is-open { box-shadow:8px 0 24px #1720331a; }
    .sl-drawer-scrim:not([hidden]) { display:block; position:fixed; inset:0; background:#17243e66; z-index:1030; border:0; }
    body.sl-drawer-open { overflow:hidden; }
}
@media (max-width:600px) {
    .sl-main { padding:22px 16px; } .sl-topbar { padding:14px 16px; } .sl-topbar h1 { font-size:21px; }
    .sl-overview-grid { grid-template-columns:1fr; } .sl-project-tabs { gap:20px; }
    .sl-analysis-steps { gap:12px; } .sl-analysis-steps li { width:calc(50% - 6px); }
    .sl-method-grid,.sl-config-grid { grid-template-columns:1fr; gap:14px; }
    .sl-form-actions .btn { width:100%; min-height:44px; }
    .sl-upload-panel { padding:16px; }
    .sl-report-document { padding:22px; } .sl-breadcrumb a { max-width:150px; }
    .sl-panel-heading,.sl-recent-row { padding:18px; }
}
@media (prefers-reduced-motion:reduce) { .sl-sidebar { transition:none; } }
@media print { .sl-sidebar,.sl-menu-trigger,.sl-topbar > .btn { display:none; } .sl-main-column { margin-left:0; } }
