:root{--ink:#18202a;--muted:#6f7781;--cream:#fffaf3;--orange:#ed6b24;--orange2:#ff9b45;--dark:#22252b;--line:#eadfd3;--green:#2e9a75;--blue:#377ea9;--red:#d9554f}*{box-sizing:border-box}body{margin:0;background:linear-gradient(135deg,#fff8ed 0,#f6e1ca 100%);color:var(--ink);font:14px/1.45 Inter,ui-sans-serif,system-ui,-apple-system,sans-serif;min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:248px;background:var(--dark);color:#fff;padding:26px 18px;display:flex;flex-direction:column;z-index:2}.brand{display:flex;align-items:center;gap:12px;padding:0 8px 30px}.brand-mark{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:linear-gradient(145deg,var(--orange2),var(--orange));font-weight:900;letter-spacing:-1px}.brand b{font-size:15px}.brand small{display:block;color:#aeb3bb;font-size:11px;margin-top:2px}nav{display:flex;flex-direction:column;gap:5px}nav button{border:0;background:transparent;color:#bfc3ca;text-align:left;padding:11px 12px;border-radius:8px;cursor:pointer;font:inherit}nav button span{display:inline-block;width:25px;color:#838a93}nav button:hover,nav button.active{background:#343840;color:#fff}nav button.active{box-shadow:inset 3px 0 var(--orange)}.sidebar-foot{margin-top:auto;border-top:1px solid #3a3e44;padding:20px 10px 0;color:#8f959e;font-size:11px;letter-spacing:.05em;text-transform:uppercase}.sidebar-foot strong{color:#fff;font-size:13px}main{margin-left:248px;padding:30px 38px 16px;max-width:1700px}header{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:20px}.eyebrow{margin:0 0 3px;color:var(--orange);font-size:11px;font-weight:800;letter-spacing:.16em}h1{font-size:30px;letter-spacing:-.04em;margin:0}.asof{display:flex;align-items:center;gap:9px;color:var(--muted);font-size:11px}.asof span{width:9px;height:9px;background:var(--green);border-radius:50%;box-shadow:0 0 0 4px #dff1ea}.asof strong{display:block;color:var(--ink);font-size:13px}.controls{display:flex;flex-wrap:wrap;gap:10px;background:rgba(255,255,255,.7);border:1px solid rgba(255,255,255,.85);padding:11px;border-radius:12px;margin-bottom:16px;box-shadow:0 7px 28px rgba(95,57,25,.06)}label{color:var(--muted);font-size:10px;text-transform:uppercase;font-weight:700;letter-spacing:.05em}select{display:block;border:0;background:#f3ede6;border-radius:6px;padding:7px 28px 7px 8px;margin-top:3px;color:var(--ink);min-width:145px}#reset{margin-left:auto;align-self:flex-end;border:1px solid var(--line);background:white;border-radius:7px;padding:7px 12px;cursor:pointer}.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:14px}.card{background:rgba(255,255,255,.91);border:1px solid rgba(255,255,255,.9);border-radius:14px;padding:18px;box-shadow:0 8px 30px rgba(88,50,20,.07);min-width:0}.span-3{grid-column:span 3}.span-4{grid-column:span 4}.span-5{grid-column:span 5}.span-6{grid-column:span 6}.span-7{grid-column:span 7}.span-8{grid-column:span 8}.span-12{grid-column:span 12}.metric .label,.card-head p{color:var(--muted);font-size:11px;text-transform:uppercase;font-weight:750;letter-spacing:.06em}.metric .value{font-size:30px;font-weight:800;letter-spacing:-.05em;margin:4px 0}.metric .delta{font-size:12px;color:var(--green)}.metric .delta.down{color:var(--red)}.card-head{display:flex;justify-content:space-between;align-items:start;margin-bottom:12px}.card-head h2{font-size:16px;margin:0}.card-head p{margin:3px 0 0;text-transform:none;font-weight:500;letter-spacing:0}.chart{width:100%;height:260px;display:block}.chart.small{height:210px}.legend{display:flex;gap:15px;flex-wrap:wrap;color:var(--muted);font-size:11px;margin-top:8px}.legend i{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:5px}.table-wrap{overflow:auto;max-height:440px}table{border-collapse:collapse;width:100%;font-size:12px}th{text-align:left;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.05em;position:sticky;top:0;background:white}th,td{padding:9px 8px;border-bottom:1px solid #eee7df}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}.rank{color:#aaa;width:30px}.pill{padding:3px 7px;border-radius:12px;background:#f3ede6;font-size:10px}.callout{background:linear-gradient(120deg,#282c31,#3b3029);color:#fff}.callout p{color:#c7c9cc}.callout .big{font-size:34px;font-weight:800;color:#ffab65}.note{font-size:11px;color:var(--muted);margin-top:10px}.insight{display:flex;gap:12px;align-items:start;padding:11px 0;border-bottom:1px solid #eee7df}.insight:last-child{border:0}.insight b{display:block}.insight span{color:var(--muted);font-size:12px}.icon{background:#fff0e3;color:var(--orange);border-radius:8px;padding:7px;font-weight:800}footer{display:flex;justify-content:space-between;color:#8b8178;font-size:10px;padding:19px 2px 0}.empty{padding:60px;text-align:center;color:var(--muted)}@media(max-width:1050px){.span-3{grid-column:span 6}.span-4,.span-5,.span-7,.span-8{grid-column:span 12}}@media(max-width:720px){.sidebar{position:static;width:auto;padding:15px}.brand{padding-bottom:10px}nav{flex-direction:row;overflow:auto}nav button{white-space:nowrap}.sidebar-foot{display:none}main{margin:0;padding:20px 14px}.span-3{grid-column:span 12}header{align-items:start}.asof{display:none}.controls label{width:calc(50% - 5px)}select{width:100%;min-width:0}#reset{margin-left:0}h1{font-size:25px}}
.chart{height:300px;cursor:pointer}.chart.small{height:250px}.modal{position:fixed;inset:0;background:rgba(20,25,31,.62);z-index:20;display:none;place-items:center;padding:25px}.modal.open{display:grid}.modal-panel{background:#fffaf5;border-radius:16px;width:min(920px,96vw);max-height:85vh;overflow:auto;padding:26px;box-shadow:0 30px 90px rgba(0,0,0,.3);position:relative}.modal-close{position:absolute;right:14px;top:10px;border:0;background:transparent;font-size:28px;cursor:pointer;color:#777}.modal h2{margin:0 35px 4px 0}.modal .summary{color:var(--muted);margin:0 0 18px}.click-hint{font-size:10px;color:var(--orange);font-weight:700;text-transform:uppercase;letter-spacing:.05em}.infra-key{display:inline-block;width:9px;height:9px;background:#377ea9;border-radius:2px;margin-right:5px}
.sidebar nav a{display:block;color:#bfc3ca;text-decoration:none;padding:11px 12px;border-radius:8px}.sidebar nav a:hover{background:#343840;color:#fff}.sidebar nav a span{display:inline-block;width:25px;color:#838a93}.sidebar-foot a{color:#ffab65;text-decoration:none;display:inline-block;margin-top:5px}.auth-page,.admin-page{background:linear-gradient(135deg,#29231f,#ed6b24);min-height:100vh}.auth-shell{margin:0;min-height:100vh;display:grid;place-items:center;padding:24px}.auth-card{width:min(430px,94vw);background:#fffaf5;border-radius:20px;padding:36px;box-shadow:0 30px 90px rgba(0,0,0,.3)}.auth-brand{color:var(--ink);padding:0 0 30px}.auth-brand small{color:var(--muted)}.auth-intro{color:var(--muted);margin-bottom:24px}.auth-card form,.admin-shell form{display:grid;gap:15px}.auth-card label,.admin-shell label{font-size:11px}.auth-card input,.admin-shell input,.admin-shell select{width:100%;display:block;margin-top:5px;padding:11px 12px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);font:inherit}.primary,.danger{border:0;border-radius:8px;padding:11px 15px;color:#fff;background:var(--orange);cursor:pointer;font-weight:750}.danger{background:var(--red);padding:6px 10px}.auth-note{font-size:11px;color:var(--muted);margin:22px 0 0}.alert{padding:11px 13px;border-radius:8px;margin:14px 0}.alert.error{background:#fde8e6;color:#9d312c}.alert.success{background:#e0f2eb;color:#1b6e53}.admin-shell{margin:0 auto;max-width:1200px;min-height:100vh;padding:36px}.admin-shell header{color:#fff}.admin-shell .eyebrow{color:#ffd3ad}.admin-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:14px}.back-link{color:#fff;text-decoration:none}.status{display:inline-block;padding:4px 8px;border-radius:12px;font-size:10px;font-weight:750}.status.active{background:#e0f2eb;color:#1b6e53}.status.locked{background:#fde8e6;color:#9d312c}.inline{display:inline!important}.admin-shell .card{background:#fff}.admin-shell select{margin-top:5px;min-width:0}@media(max-width:720px){.admin-shell{padding:18px}.admin-grid .span-4,.admin-grid .span-6,.admin-grid .span-8{grid-column:span 12}}
