@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap";
:root{--tb-50:#fff0f0;--tb-100:#fdd;--tb-200:#ffc1c1;--tb-300:#ff9595;--tb-400:#ff5959;--tb-500:#ff2626;--tb-600:#fc0606;--tb-700:#db0000;--tb-800:#af0505;--tb-900:#900c0c;--tb-950:#500000;--n-0:#fff;--n-50:#f8f8f8;--n-100:#f0f0f0;--n-200:#e0e0e0;--n-400:#9e9e9e;--n-600:#5a5a5a;--n-800:#1a1a1a;--n-900:#111;--n-950:#0d0d0d;--s-ok:#16a34a;--s-warn:#d97706;--s-error:#dc2626;--s-error-bg:#dc262614;--s-neutral:#64748b;--s-info:#2563eb;--page-bg:var(--n-50);--card-bg:var(--n-0);--border:var(--n-200);--text-primary:var(--n-800);--text-secondary:var(--n-600);--text-caption:var(--n-400);--chart-grid:var(--n-100);--sidebar-bg:linear-gradient(180deg, #db0000 0%, #500000 100%);--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--shadow-card:0 2px 8px #0000000f;--shadow-hover:0 4px 16px #0000001a;--shadow-conflict:0 4px 16px #fc06064d;--sidebar-w:64px;--topbar-h:56px;--filter-w:240px;--clients-filter-cols:minmax(220px, 360px) auto;--client-summary-cols:1.2fr repeat(3, minmax(120px, 1fr));--session-kpi-cols:repeat(4, 1fr);--session-detail-kpi-cols:repeat(3, 1fr)}[data-theme=dark]{--tb-50:#2c0f0f;--tb-100:#421111;--tb-200:#681a1a;--tb-300:#8e2323;--tb-400:#b42c2c;--tb-500:#c23333;--tb-600:#a82424;--tb-700:#8e1919;--tb-800:#741010;--tb-900:#5c0b0b;--tb-950:#380505;--n-0:#1c1c1c;--n-50:#141414;--n-100:#242424;--n-200:#2a2a2a;--n-400:#8a8a8a;--n-600:#b0b0b0;--n-800:#f0f0f0;--n-900:#181818;--n-950:#0d0d0d;--s-ok:#4ade80;--s-warn:#fbbf24;--s-error:#f87171;--s-error-bg:#f8717126;--s-neutral:#94a3b8;--s-info:#60a5fa;--page-bg:var(--n-950);--card-bg:var(--n-0);--border:var(--n-200);--text-primary:var(--n-800);--text-secondary:var(--n-600);--text-caption:var(--n-400);--chart-grid:var(--n-200);--shadow-card:0 2px 10px #00000047}[data-theme=dark] .text-positive{color:var(--s-ok)!important}[data-theme=dark] .text-negative{color:var(--s-error)!important}[data-theme=dark] .text-warning{color:var(--s-warn)!important}[data-theme=dark] .text-brand,[data-theme=dark] .link{color:var(--tb-400)!important}[data-theme=dark] .link:hover{color:var(--tb-300)!important}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{background-color:var(--page-bg);height:100%;color:var(--text-primary);-webkit-font-smoothing:antialiased;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:14px;line-height:1.5}a{color:inherit;text-decoration:none}button{cursor:pointer;background:0 0;border:none;font-family:inherit}input,textarea{font-family:inherit}.app-layout{min-height:100vh;display:flex}.sidebar{width:var(--sidebar-w);background:var(--sidebar-bg);z-index:100;flex-direction:column;align-items:center;gap:4px;height:100vh;padding:16px 0;display:flex;position:fixed;top:0;left:0}.sidebar-logo{color:#fff;letter-spacing:-.5px;background:#ffffff26;border-radius:10px;justify-content:center;align-items:center;width:40px;height:40px;margin-bottom:12px;font-size:16px;font-weight:800;display:flex}.sidebar-nav{flex-direction:column;flex:1;align-items:center;gap:4px;width:100%;padding:0 8px;display:flex}.sidebar-nav-item{color:#fff9;cursor:pointer;border-radius:10px;justify-content:center;align-items:center;width:48px;height:48px;transition:all .15s;display:flex;position:relative}.sidebar-nav-item:hover{color:#fff;background:#ffffff1a}.sidebar-nav-item.active{color:#fff;background:#fff3}.sidebar-tooltip{background:var(--n-800);color:#fff;white-space:nowrap;pointer-events:none;opacity:0;z-index:200;border-radius:6px;padding:4px 10px;font-size:12px;transition:opacity .15s;position:absolute;left:calc(100% + 8px)}.sidebar-nav-item:hover .sidebar-tooltip{opacity:1}.mobile-close-btn{color:#fff;cursor:pointer;background:#ffffff1a;border:none;border-radius:50%;justify-content:center;align-items:center;margin-left:auto;padding:6px;transition:background .15s;display:none}.mobile-close-btn:hover{background:#fff3}.main-wrapper{margin-left:var(--sidebar-w-actual,var(--sidebar-w));flex-direction:column;flex:1;min-width:0;transition:margin-left .22s cubic-bezier(.4,0,.2,1);display:flex}.topbar{height:var(--topbar-h);background:var(--card-bg);border-bottom:1px solid var(--border);z-index:50;align-items:center;gap:16px;padding:0 24px;display:flex;position:sticky;top:0}.topbar-breadcrumb{color:var(--text-secondary);align-items:center;gap:8px;font-size:13px;display:flex}.topbar-breadcrumb a:hover{color:var(--tb-700)}.topbar-breadcrumb .sep{color:var(--n-400)}.topbar-breadcrumb .current{color:var(--text-primary);font-weight:600}.topbar-search{flex:1;max-width:360px;margin-left:auto;position:relative}.topbar-search input{background:var(--n-100);border:1px solid var(--border);width:100%;height:36px;color:var(--text-primary);border-radius:8px;outline:none;padding:0 12px 0 36px;font-size:13px;transition:border-color .15s}.topbar-search input:focus{border-color:var(--tb-300);background:var(--card-bg)}.topbar-search .search-icon{color:var(--n-400);position:absolute;top:50%;left:10px;transform:translateY(-50%)}.topbar-actions{align-items:center;gap:8px;display:flex}.topbar-btn{width:36px;height:36px;color:var(--text-secondary);border-radius:8px;justify-content:center;align-items:center;transition:all .15s;display:flex}.topbar-btn:hover{background:var(--n-100);color:var(--text-primary)}.avatar{background:linear-gradient(135deg, var(--tb-700), var(--tb-950));color:#fff;cursor:pointer;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:12px;font-weight:700;display:flex}.page-layout{flex:1;min-height:0;display:flex}.filter-panel{width:var(--filter-w);min-width:var(--filter-w);background:var(--card-bg);border-right:1px solid var(--border);top:var(--topbar-h);height:calc(100vh - var(--topbar-h));padding:20px 16px;position:sticky;overflow-y:auto}.filter-section-title{text-transform:uppercase;letter-spacing:.5px;color:var(--n-400);margin-bottom:8px;font-size:11px;font-weight:700}.filter-section{margin-bottom:20px}.filter-chip{border:1px solid var(--border);background:var(--card-bg);color:var(--text-secondary);cursor:pointer;border-radius:6px;align-items:center;gap:4px;margin:3px 3px 3px 0;padding:4px 10px;font-size:12px;font-weight:500;transition:all .15s;display:inline-flex}.filter-chip:hover{border-color:var(--tb-300);color:var(--tb-700)}.filter-chip.active{background:var(--tb-600);border-color:var(--tb-600);color:#fff}.filter-clear{color:var(--tb-600);cursor:pointer;margin-top:8px;font-size:12px;display:inline-block}.filter-clear:hover{text-decoration:underline}.filter-input{background:var(--n-100);border:1px solid var(--border);width:100%;height:34px;color:var(--text-primary);border-radius:6px;outline:none;padding:0 10px;font-size:13px}.filter-input:focus{border-color:var(--tb-300)}.main-content{flex:1;min-width:0;padding:24px;overflow-y:auto}.card{background:var(--card-bg);border-radius:var(--radius-lg);border:1px solid var(--border);box-shadow:var(--shadow-card);padding:20px}.card-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.card-title{color:var(--text-primary);font-size:14px;font-weight:600}.card-subtitle{color:var(--text-caption);margin-top:2px;font-size:12px}.kpi-card{border-radius:var(--radius-xl);color:#fff;padding:24px;transition:transform .15s,box-shadow .15s;position:relative;overflow:hidden}.kpi-card.clickable{cursor:pointer}.kpi-card.clickable:hover{box-shadow:var(--shadow-conflict);transform:translateY(-2px)}.kpi-card.active-filter{outline:2px solid var(--tb-300);outline-offset:2px}.kpi-card-value{margin-bottom:4px;font-size:32px;font-weight:800;line-height:1}.kpi-card-label{color:#ffffffbf;font-size:12px;font-weight:500}.kpi-card-delta{color:#fff9;margin-top:8px;font-size:11px}.grid-4{grid-template-columns:repeat(4,1fr);gap:16px;display:grid}.grid-3{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.grid-2{grid-template-columns:repeat(2,1fr);gap:16px;display:grid}.grid-7-5{grid-template-columns:7fr 5fr;gap:16px;display:grid}.grid-6-6{grid-template-columns:1fr 1fr;gap:16px;display:grid}.section-gap{flex-direction:column;gap:24px;display:flex}.dashboard-filter-bar{top:var(--topbar-h);z-index:40;background:color-mix(in srgb, var(--card-bg) 96%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);position:sticky}.light-metric-card{background:var(--card-bg);border:1px solid var(--border);border-left:4px solid var(--s-neutral);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);text-align:left;padding:14px 18px}.light-metric-card.active{border-color:var(--tb-300);border-left-color:var(--tb-700);box-shadow:0 0 0 2px var(--tb-100)}.light-metric-value{color:var(--text-primary);font-size:26px;font-weight:800;line-height:1}.light-metric-label{color:var(--text-secondary);margin-top:6px;font-size:11px}.client-detail-cta{background:linear-gradient(135deg, var(--tb-700), var(--tb-950));min-height:44px;padding:12px 22px;font-size:16px;font-weight:800;position:relative;overflow:hidden;box-shadow:0 8px 18px #db000038}.client-detail-cta:before{content:"";background:linear-gradient(90deg,#0000,#ffffff38,#0000);transition:transform .45s;position:absolute;inset:0;transform:translate(-110%)}.client-detail-cta:hover{transform:translateY(-1px);box-shadow:0 10px 24px #db00004d}.client-detail-cta:hover:before{transform:translate(110%)}.client-detail-cta-arrow{margin-left:2px;transition:transform .18s;display:inline-flex}.client-detail-cta:hover .client-detail-cta-arrow{transform:translate(5px)}.badge{white-space:nowrap;border:1px solid #0000;border-radius:6px;align-items:center;gap:4px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-flex}.badge-sm{padding:1px 6px;font-size:10px}.badge-lg{padding:4px 10px;font-size:13px}.badge-on-track{background:color-mix(in srgb, var(--s-ok) 12%, transparent);color:var(--s-ok);border-color:color-mix(in srgb, var(--s-ok) 35%, transparent)}.badge-warning{background:color-mix(in srgb, var(--s-warn) 14%, transparent);color:var(--s-warn);border-color:color-mix(in srgb, var(--s-warn) 35%, transparent)}.badge-conflict{background:color-mix(in srgb, var(--s-error) 12%, transparent);color:var(--s-error);border-color:color-mix(in srgb, var(--s-error) 35%, transparent)}.badge-infeasible{color:#fff;border-color:var(--s-error);background:#7f1d1d}.badge-adjusted{background:var(--n-100);color:var(--n-800);border-color:var(--n-200)}.badge-pending{background:color-mix(in srgb, var(--s-neutral) 12%, transparent);color:var(--s-neutral);border-color:color-mix(in srgb, var(--s-neutral) 35%, transparent)}.badge-neutral{background:var(--n-100);color:var(--s-neutral);border-color:var(--n-200)}.badge-optimized{background:color-mix(in srgb, var(--s-ok) 12%, transparent);color:var(--s-ok);border-color:color-mix(in srgb, var(--s-ok) 35%, transparent)}.badge-closed{background:var(--n-100);color:var(--n-600);border-color:var(--n-200)}.badge-conservative{background:var(--tb-50);color:var(--tb-700);border-color:var(--tb-200)}.badge-balanced{background:var(--tb-100);color:var(--tb-800);border-color:var(--tb-300)}.badge-aggressive{background:var(--tb-200);color:var(--tb-950);border-color:var(--tb-400)}.table-wrapper{border-radius:var(--radius-lg);border:1px solid var(--border);overflow-x:auto}.table-wrapper.scroll-y{max-height:520px;overflow:auto}.table-wrapper.scroll-y thead th{z-index:2;background:var(--n-100);box-shadow:0 1px 0 var(--border);position:sticky;top:0}table{border-collapse:collapse;width:100%;font-size:13px}thead tr{background:var(--n-100)}thead th{text-align:left;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;padding:10px 12px;font-size:11px;font-weight:700}thead th:hover{background:var(--tb-50);color:var(--tb-800)}tbody tr{border-bottom:1px solid var(--border);transition:background .1s}tbody tr:hover{background:var(--tb-50)}tbody tr:last-child{border-bottom:none}tbody td{color:var(--text-primary);vertical-align:middle;padding:10px 12px}.row-conflict{border-left:3px solid var(--tb-600)!important}.row-infeasible{background:var(--tb-100)!important;border-left:3px solid var(--tb-950)!important}[data-theme=dark] .topbar-search input,[data-theme=dark] .filter-input,[data-theme=dark] input,[data-theme=dark] select,[data-theme=dark] textarea{color:#f0f0f0!important;background:#242424!important;border-color:#3a3a3a!important}[data-theme=dark] input::placeholder,[data-theme=dark] textarea::placeholder{color:#8a8a8a}[data-theme=dark] .topbar-btn:hover,[data-theme=dark] .filter-chip:hover,[data-theme=dark] .btn-secondary:hover,[data-theme=dark] .horizon-btn:hover:not(.active){color:#ffb6b6;background:#ff595924;border-color:#ff5959}[data-theme=dark] .filter-chip{color:#d7d7d7;background:#222;border-color:#3a3a3a}[data-theme=dark] .filter-chip.active{color:#ffb6b6;background:#db000040;border-color:#db000066}[data-theme=dark] .dashboard-filter-bar{background:#1c1c1cf5}[data-theme=dark] .light-metric-card{border-color:#343434;border-left-color:var(--tb-500);background:#202020}[data-theme=dark] .light-metric-card.active{box-shadow:0 0 0 2px #ff595947}[data-theme=dark] thead tr,[data-theme=dark] .table-wrapper.scroll-y thead th{background:#282828}[data-theme=dark] thead th{color:#d2d2d2}[data-theme=dark] thead th:hover{color:#fff;background:#ff595929}[data-theme=dark] tbody tr:hover{background:#ff59591a}[data-theme=dark] .row-conflict{background:#ff595914}[data-theme=dark] .row-infeasible{background:#5000006b!important}[data-theme=dark] .badge-adjusted,[data-theme=dark] .badge-pending,[data-theme=dark] .badge-neutral,[data-theme=dark] .badge-closed{color:#e8e8e8;background:#2a2a2a;border-color:#3a3a3a}[data-theme=dark] .badge-on-track,[data-theme=dark] .badge-conservative{color:#ffc1c1;background:#ffc1c124;border-color:#ff95956b}[data-theme=dark] .badge-warning,[data-theme=dark] .badge-balanced{color:#ffdada;background:#ffc1c133;border-color:#ff95957a}[data-theme=dark] .badge-conflict,[data-theme=dark] .badge-aggressive{color:#fff;background:#ff59593d;border-color:#ff95959e}[data-theme=dark] .btn-secondary{color:#ffb6b6;border-color:#ff5959}[data-theme=dark] .btn-ghost{color:#ffb6b6}[data-theme=dark] .progress-bar{background:#333}.sort-icon{opacity:.5;align-items:center;margin-left:4px;display:inline-flex}.sort-icon.active{opacity:1}@keyframes pageFadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.page-transition-enter{animation:.35s cubic-bezier(.2,.8,.2,1) forwards pageFadeIn}.btn{cursor:pointer;border-radius:8px;align-items:center;gap:6px;padding:8px 16px;font-size:13px;font-weight:600;transition:all .15s;display:inline-flex}.btn-primary{background:var(--tb-500);color:#fff}.btn-primary:hover{background:var(--tb-600);box-shadow:0 2px 8px #fc06064d}.btn-secondary{border:1px solid var(--tb-500);color:var(--tb-500);background:0 0}.btn-secondary:hover{background:var(--tb-50)}.btn-ghost{color:var(--tb-700);background:0 0}.btn-ghost:hover{color:var(--tb-600);text-decoration:underline}.btn-sm{padding:4px 10px;font-size:12px}.horizon-selector{background:var(--n-100);border-radius:10px;gap:4px;padding:4px;display:flex}.horizon-btn{color:var(--n-600);cursor:pointer;border-radius:8px;padding:6px 14px;font-size:13px;font-weight:500;transition:all .15s}.horizon-btn:hover:not(.active){background:var(--tb-50);color:var(--tb-700)}.horizon-btn.active{background:var(--tb-700);color:#fff;font-weight:700}.progress-bar{background:var(--tb-50);border-radius:4px;height:6px;overflow:hidden}.progress-bar-fill{background:var(--tb-500);border-radius:4px;height:100%;transition:width .3s}.client-header{background:var(--card-bg);border-radius:var(--radius-lg);border:1px solid var(--border);align-items:center;gap:20px;padding:20px 24px;display:flex}.client-avatar{background:linear-gradient(135deg, var(--tb-700), var(--tb-950));color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:56px;height:56px;font-size:20px;font-weight:800;display:flex}.client-info h2{color:var(--text-primary);font-size:20px;font-weight:700}.client-info p{color:var(--text-secondary);margin-top:2px;font-size:14px}.client-badges{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.client-summary-container{grid-template-columns:1.2fr 3fr;align-items:center;gap:24px;display:grid}.client-summary-metrics{grid-template-columns:repeat(4,1fr);gap:16px;display:grid}.client-summary-metric-item{border-left:1px solid var(--border);padding-left:16px}.inline-edit-cell{position:relative}.inline-edit-input{border:1px solid var(--tb-600);width:80px;height:28px;box-shadow:0 0 0 2px var(--tb-100);border-radius:4px;outline:none;padding:0 8px;font-size:13px}.chart-placeholder{height:100%;min-height:200px;color:var(--text-caption);flex-direction:column;justify-content:center;align-items:center;gap:8px;display:flex}@keyframes shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}.skeleton{background:linear-gradient(90deg, var(--tb-50) 25%, var(--tb-100) 50%, var(--tb-50) 75%);background-size:800px 100%;border-radius:4px;animation:1.5s infinite shimmer}.empty-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:48px 24px;display:flex}.empty-state-icon{background:var(--tb-50);width:64px;height:64px;color:var(--tb-300);border-radius:50%;justify-content:center;align-items:center;display:flex}.empty-state h3{color:var(--text-primary);font-size:16px;font-weight:600}.empty-state p{color:var(--text-secondary);max-width:280px;font-size:14px}.conflict-banner{background:var(--card-bg);color:var(--s-error);border:1px solid var(--s-error);border-radius:var(--radius-md);align-items:center;gap:10px;padding:12px 16px;font-size:13px;font-weight:500;display:flex}.recharts-tooltip-wrapper .custom-tooltip{background:var(--card-bg);border:1px solid var(--border);border-radius:8px;padding:10px 14px;font-size:12px;box-shadow:0 4px 12px #0000001a}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--n-200);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--n-400)}.client-header-stats{text-align:center;gap:24px;display:flex}@media (max-width:1200px){.grid-4{grid-template-columns:repeat(2,1fr)}.filter-panel{display:none}:root{--session-kpi-cols:repeat(2, 1fr);--session-detail-kpi-cols:repeat(2, 1fr)}}@media (max-width:1024px){.app-sidebar{transform:translate(-100%);z-index:1000!important;width:100%!important}.app-sidebar.mobile-open{transform:translate(0)}.mobile-sidebar-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:999;background:#0006;position:fixed;inset:0}.mobile-menu-btn{display:block!important}.mobile-close-btn{display:flex!important}.topbar{padding:0 16px}.topbar-search{max-width:180px}.main-wrapper{margin-left:0!important}:root{--clients-filter-cols:1fr;--client-summary-cols:1fr;--session-kpi-cols:1fr 1fr;--session-detail-kpi-cols:1fr}.grid-4{grid-template-columns:1fr 1fr}.grid-3,.grid-7-5,.grid-6-6,.grid-2{grid-template-columns:1fr}.main-content{padding:16px}.client-header{text-align:center;flex-direction:column;align-items:center;gap:16px;padding:16px}.client-info{text-align:center;flex-direction:column;align-items:center;display:flex}.client-badges{justify-content:center}.client-header-stats{border-top:1px solid var(--border);width:100%;margin-top:8px;padding-top:16px;justify-content:space-around!important}.client-summary-container{grid-template-columns:1fr;gap:20px}.client-summary-metrics{grid-template-columns:repeat(2,1fr);gap:16px 24px}.client-summary-metric-item{border-left:2px solid var(--tb-300);padding-left:12px}.inline-edit-input{height:34px!important;font-size:14px!important}}@media (max-width:576px){.topbar-search{display:none}.grid-4{grid-template-columns:1fr!important}.client-header-stats{flex-direction:column;align-items:center;gap:12px}.client-summary-metrics{grid-template-columns:1fr;gap:12px}:root{--session-kpi-cols:1fr}}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:.2s forwards fadeIn}.text-positive{color:#2e7d32}.text-negative{color:var(--tb-700)}.text-warning{color:var(--tb-600)}.text-muted{color:var(--text-caption)}.text-brand{color:var(--tb-700)}.link{color:var(--tb-700);cursor:pointer;transition:color .15s}.link:hover{color:var(--tb-600);text-decoration:underline}.section-title{color:var(--text-primary);margin-bottom:16px;font-size:14px;font-weight:600}.data-tag{border-radius:4px;padding:2px 8px;font-size:12px;font-weight:600;display:inline-block}.vol-over{color:var(--tb-700);font-weight:600}.vol-ok{color:#2e7d32;font-weight:600}.glass-scroll::-webkit-scrollbar{width:6px}.glass-scroll::-webkit-scrollbar-track{background:#ffffff1a;border-radius:8px}.glass-scroll::-webkit-scrollbar-thumb{background:#00000026;border-radius:8px}[data-theme=dark] .glass-scroll::-webkit-scrollbar-thumb{background:#ffffff40}.glass-scroll:hover::-webkit-scrollbar-thumb{background:#00000040}[data-theme=dark] .glass-scroll:hover::-webkit-scrollbar-thumb{background:#fff6}.table-centered th,.table-centered td{text-align:center!important}
