@keyframes spin{to{transform:rotate(360deg)}}.loading-overlay{z-index:1000;background:#0f172a8c;flex-direction:column;justify-content:center;align-items:center;gap:16px;display:flex;position:fixed;inset:0}.loading-overlay .spinner{border:4px solid #ffffff40;border-top-color:#fff;border-radius:50%;width:48px;height:48px;animation:.8s linear infinite spin}.loading-overlay .loading-message{color:#fff;text-align:center;max-width:320px;font-size:14px;font-weight:600}@font-face{font-family:Inter;src:url(/fonts/Inter-Variable.ttf)format("truetype");font-style:normal;font-weight:100 900;font-display:swap}:root{--ink:#0f172a;--muted:#64748b;--line:#e2e8f0;--surface:#fff;--surface-soft:#f8fafc;--blue:#2563eb;--blue-soft:#eff6ff;--cyan:#0891b2;--green:#10b981;--green-soft:#ecfdf5;--orange:#f97316;--red:#dc2626;--radius:18px;--shadow:0 20px 45px #0f172a14}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{color:var(--ink);background:#f6f9fc;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}.auth-shell{background:radial-gradient(circle at 15% 15%,#2563eb26,#0000 30%),radial-gradient(circle at 75% 80%,#10b98124,#0000 35%),#f8fafc;grid-template-columns:1.15fr .85fr;min-height:100vh;display:grid}.auth-hero{flex-direction:column;justify-content:space-between;padding:64px clamp(32px,7vw,110px);display:flex}.auth-card-wrap{place-items:center;padding:32px;display:grid}.auth-card{border:1px solid var(--line);width:min(430px,100%);box-shadow:var(--shadow);background:#fffffff0;border-radius:28px;padding:36px}.brand{align-items:center;gap:12px;font-size:20px;font-weight:750;display:flex}.brand img{border-radius:11px;width:38px;height:38px}.hero-title{letter-spacing:-.05em;max-width:740px;margin:56px 0 24px;font-size:clamp(42px,5.8vw,76px);line-height:.98}.gradient-text{background:linear-gradient(100deg, var(--blue), var(--cyan), var(--green));color:#0000;-webkit-background-clip:text;background-clip:text}.hero-copy{color:#475569;max-width:620px;font-size:20px;line-height:1.65}.field{gap:8px;margin:18px 0;display:grid}.field label{font-size:14px;font-weight:650}.input,.select{width:100%;color:var(--ink);background:#fff;border:1px solid #cbd5e1;border-radius:12px;padding:12px 14px}.input:focus,.select:focus{border-color:var(--blue);outline:3px solid #2563eb21}.button{border:0;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:12px 18px;font-weight:700;display:inline-flex}.button-primary{background:var(--blue);color:#fff}.button-secondary{color:var(--ink);border:1px solid var(--line);background:#fff}.button-danger{color:var(--red);background:#fef2f2;border:1px solid #fecaca}.button:disabled{opacity:.55;cursor:not-allowed}.error{color:#991b1b;background:#fef2f2;border-radius:10px;padding:11px 13px;font-size:14px}.app-shell{grid-template-columns:260px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{color:#dbeafe;background:#071329;flex-direction:column;height:100vh;padding:22px 16px;display:flex;position:sticky;top:0}.sidebar .brand{color:#fff;padding:4px 8px 22px}.nav{flex:1;align-content:start;gap:8px;min-height:0;display:grid;overflow-y:auto}.nav a{color:#a9bad3;border-radius:11px;align-items:center;gap:8px;padding:11px 12px;font-size:14px;font-weight:600;display:flex}.nav a:hover{color:#fff;background:#ffffff12}.nav a.active{color:#fff;background:#ffffff1f}.nav-section{gap:3px;display:grid}.nav-group-label{color:#5b7396;text-transform:uppercase;letter-spacing:.04em;padding:10px 12px 4px;font-size:11px;font-weight:700}.nav-dataset-title{color:#fff;background:#ffffff0f;border-radius:12px;margin:2px 8px 8px;padding:10px 12px;font-size:13px;font-weight:750;line-height:1.25}.nav a.nav-child{color:#bdcbe0;margin-left:14px;padding-left:16px;font-size:13px;position:relative}.nav a.nav-child:before{content:"";background:#5b7396;width:6px;height:1px;position:absolute;top:50%;left:4px}.sidebar-foot{color:#94a3b8;margin-top:auto;padding:14px 8px 0;font-size:13px}.sidebar-actions{gap:4px;margin-bottom:18px;display:grid}.sidebar-actions a{color:#a9bad3;align-items:center;gap:8px;padding:8px 0;font-size:13px;font-weight:650;display:flex}.sidebar-actions a:hover{color:#fff}.main{min-width:0}.topbar{border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);z-index:10;background:#ffffffdb;justify-content:space-between;align-items:center;height:72px;padding:0 28px;display:flex;position:sticky;top:0}.mobile-nav{align-items:center;gap:14px;display:none}.mobile-nav a{color:#334155;align-items:center;gap:5px;font-size:13px;font-weight:700;display:inline-flex}.content{padding:28px}.page-head{justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:24px;display:flex}.page-title{letter-spacing:-.035em;margin:0 0 7px;font-size:30px}.page-subtitle{color:var(--muted);margin:0}.grid{gap:18px;display:grid}.kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.two-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.three-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);min-width:0;padding:20px;box-shadow:0 4px 18px #0f172a09}.chart-box{border:1px solid var(--line);border-radius:10px;min-width:0;padding:10px 12px}.benchmark-page .chart-box{border:0;border-radius:0;padding:0}.benchmark-grid{align-items:start}.benchmark-card{grid-template-rows:auto 300px 1fr;gap:4px;display:grid}.benchmark-main-chart{justify-content:center;align-items:center;min-width:0;display:flex}.benchmark-details{align-items:start;margin-top:46px}.benchmark-detail-chart{min-height:319px}.benchmark-empty-detail{visibility:hidden}.recharts-wrapper,.recharts-wrapper *{-webkit-user-select:none;user-select:none}.chart-box-label{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;margin:0 0 4px;font-size:11px;font-weight:650}.card-title{color:var(--muted);margin:0 0 4px;font-size:14px;font-weight:650}.kpi{margin-top:10px;font-size:32px;font-weight:780}.kpi-note{color:var(--muted);margin-top:8px;font-size:12px}[data-tooltip]{position:relative}[data-tooltip]:hover:after{content:attr(data-tooltip);white-space:normal;background:var(--ink);color:#fff;z-index:20;border-radius:8px;width:190px;margin-bottom:6px;padding:8px 10px;font-size:12px;font-weight:400;line-height:1.4;position:absolute;bottom:100%;left:0;box-shadow:0 6px 16px #0000002e}.empty{text-align:center;color:var(--muted);padding:60px 24px}.empty h2{color:var(--ink)}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:14px}th,td{border-bottom:1px solid var(--line);text-align:left;white-space:nowrap;padding:12px 10px}th{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:12px}.badge{background:var(--blue-soft);color:#1d4ed8;border-radius:999px;align-items:center;padding:5px 8px;font-size:12px;font-weight:700;display:inline-flex}.badge-green{background:var(--green-soft);color:#047857}.badge-orange{color:#c2410c;background:#fff7ed}.toolbar{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.synthetic-note{color:#6b21a8;background:#faf5ff;border-left:3px solid #a855f7;border-radius:8px;padding:10px 12px;font-size:13px}@media (max-width:1050px){.kpi-grid,.three-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.auth-shell{grid-template-columns:1fr}.auth-hero{display:none}}@media (max-width:760px){.app-shell{grid-template-columns:minmax(0,1fr)}.sidebar{display:none}.content{padding:20px 14px}.topbar{padding:0 14px}.topbar-title{display:none}.mobile-nav{display:flex}.kpi-grid,.two-grid,.three-grid{grid-template-columns:1fr}.card>.grid{grid-template-columns:1fr!important}}
