/* SR Finance — dark theme (design tokens shared with the BI app) */
:root{
--bg:#0a0b0f;--bg-elevated:#0f1116;
--card:#14161d;--card-2:#1a1d26;--hover:#1e212b;
--line:#262a35;--line-strong:#333845;
--text:#eceef3;--muted:#9aa0b4;--faint:#6b7180;
--accent:#6d8cff;--accent-hover:#869eff;--accent-weak:#1b2342;
--accent-ring:rgba(109,140,255,.35);
--accent2:#3ecf8e;--accent2-weak:#10261d;
--warn:#e8b04b;--warn-weak:#2a2113;
--bad:#f06d61;--bad-weak:#2c1715;
--radius:12px;--radius-sm:8px;--radius-pill:999px;
--shadow-1:0 1px 2px rgba(0,0,0,.4);
--shadow-2:0 4px 16px -4px rgba(0,0,0,.55);
}
*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{margin:0;color:var(--text);
background:radial-gradient(1200px 600px at 50% -200px,#11131a 0%,var(--bg) 60%) fixed,var(--bg);
font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Inter,sans-serif;
line-height:1.55;font-size:13.5px;font-variant-numeric:tabular-nums;
-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}
a{color:var(--accent);text-decoration:none;}a:hover{text-decoration:underline;}

/* ---------- header / nav ---------- */
header{position:sticky;top:0;z-index:30;display:flex;justify-content:space-between;
align-items:center;gap:12px;padding:10px 22px;
border-bottom:1px solid var(--line);
background:rgba(10,11,15,.78);backdrop-filter:saturate(140%) blur(10px);}
header .brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:15px;
white-space:nowrap;}
header .brand .dot{width:9px;height:9px;border-radius:50%;background:var(--accent);
box-shadow:0 0 10px var(--accent-ring);}
.nav{display:flex;gap:2px;flex-wrap:wrap;}
.nav a{padding:7px 12px;border-radius:var(--radius-sm);color:var(--muted);font-size:13px;
font-weight:500;line-height:1.2;white-space:nowrap;
transition:background .12s ease,color .12s ease;}
.nav a:hover{background:var(--hover);color:var(--text);text-decoration:none;}
.nav a.active{background:var(--accent-weak);color:var(--accent-hover);font-weight:600;}
.bell{position:relative;cursor:pointer;padding:6px 10px;border-radius:var(--radius-sm);
color:var(--muted);}
.bell:hover{background:var(--hover);color:var(--text);}
.bell .badge{position:absolute;top:0;right:0;background:var(--bad);color:#fff;
border-radius:var(--radius-pill);font-size:10px;font-weight:700;padding:0 5px;line-height:15px;}
#hamburger{display:none;}

main{max-width:1280px;margin:0 auto;padding:20px 22px 60px;}
h1{font-size:19px;margin:4px 0 16px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
h2{font-size:13px;text-transform:uppercase;letter-spacing:.08em;
color:var(--muted);margin:22px 0 10px;display:flex;align-items:center;gap:8px;}
h2::before{content:"";width:7px;height:7px;border-radius:2px;
background:var(--accent);display:inline-block;}

/* ---------- KPI cards ---------- */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:12px;}
.kpi{background:linear-gradient(180deg,var(--card-2),var(--card));
border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;
position:relative;overflow:hidden;transition:border-color .12s,transform .12s,box-shadow .12s;}
.kpi::after{content:"";position:absolute;inset:0 0 auto 0;height:2px;
background:linear-gradient(90deg,transparent,var(--accent-ring),transparent);opacity:.6;}
.kpi:hover{border-color:var(--line-strong);transform:translateY(-1px);box-shadow:var(--shadow-2);}
.kpi .l{color:var(--muted);font-size:11px;font-weight:600;text-transform:uppercase;
letter-spacing:.07em;margin-bottom:4px;}
.kpi .v{font-size:21px;font-weight:700;letter-spacing:-.01em;}
.kpi .s{color:var(--faint);font-size:12px;margin-top:2px;}
.up{color:var(--accent2);font-weight:600;}.down{color:var(--bad);font-weight:600;}

/* ---------- toolbar / forms ---------- */
.toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 14px;
background:var(--card-2);border:1px solid var(--line);border-radius:var(--radius);
padding:10px 12px;}
.toolbar label{font-size:12px;color:var(--muted);}
.toolbar .spacer{flex:1;}
input,select,textarea,button{font:inherit;background:var(--bg-elevated);color:var(--text);
border:1px solid var(--line);border-radius:var(--radius-sm);padding:6px 10px;
transition:background .12s,border-color .12s,color .12s,box-shadow .12s;}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);
box-shadow:0 0 0 3px var(--accent-ring);}
input::placeholder{color:var(--faint);}
input[type=number]{width:90px;}
input[type=date]{color-scheme:dark;}
button{cursor:pointer;background:var(--accent);border-color:var(--accent);
color:#fff;font-weight:600;}
button:hover{background:var(--accent-hover);border-color:var(--accent-hover);}
button.ghost{background:var(--card-2);color:var(--muted);border-color:var(--line);font-weight:500;}
button.ghost:hover{background:var(--hover);color:var(--text);border-color:var(--line-strong);}
button.danger{background:var(--bad-weak);color:var(--bad);border-color:var(--bad);}
button.small,input.small,select.small{padding:3px 8px;font-size:12px;}
input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent);cursor:pointer;}

/* ---------- tables ---------- */
.table-wrap{overflow-x:auto;border-radius:var(--radius);border:1px solid var(--line);
background:var(--card);}
table{width:100%;border-collapse:separate;border-spacing:0;font-size:12.8px;}
thead th{background:var(--card-2);color:var(--muted);font-size:11px;font-weight:600;
text-transform:uppercase;letter-spacing:.06em;text-align:left;padding:8px 10px;
border-bottom:1px solid var(--line);position:sticky;top:0;white-space:nowrap;}
tbody td{padding:7px 10px;border-bottom:1px solid var(--line);vertical-align:middle;}
tbody tr:last-child td{border-bottom:0;}
tbody tr:nth-child(even) td{background:rgba(255,255,255,.015);}
tbody tr:hover td{background:var(--hover);}
tbody tr.click{cursor:pointer;}
td.num,th.num{text-align:right;}
tfoot td{padding:8px 10px;font-weight:700;border-top:2px solid var(--line-strong);
background:var(--card-2);}

/* ---------- cards / notes / tags ---------- */
.card{background:linear-gradient(180deg,var(--card-2),var(--card));
border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;
box-shadow:var(--shadow-1);}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}
.note{background:var(--card-2);border:1px solid var(--line);
border-left:3px solid var(--accent);border-radius:var(--radius-sm);
padding:9px 13px;color:var(--muted);font-size:12.5px;line-height:1.5;margin:10px 0;}
.note strong{color:var(--text);}
.note.warn{border-left-color:var(--warn);}
.note.bad{border-left-color:var(--bad);}
.tag{display:inline-block;background:var(--card-2);border:1px solid var(--line);
border-radius:var(--radius-pill);padding:1px 9px;font-size:11px;color:var(--muted);
white-space:nowrap;}
.tag.standup{color:#6d8cff;border-color:#2c3a6e;}
.tag.theatre{color:#c98ef5;border-color:#4d3566;}
.tag.improv{color:#3ecf8e;border-color:#1d4a37;}
.tag.special{color:#e8b04b;border-color:#4d3d1c;}
.pill{display:inline-block;border-radius:var(--radius-pill);padding:1px 9px;
font-size:11px;font-weight:600;}
.pill.ok{background:var(--accent2-weak);color:var(--accent2);}
.pill.warn{background:var(--warn-weak);color:var(--warn);}
.pill.bad{background:var(--bad-weak);color:var(--bad);}
.pill.muted{background:var(--card-2);color:var(--faint);}

/* ---------- progress / breakeven bar ---------- */
.bar{height:7px;border-radius:var(--radius-pill);background:var(--bg-elevated);
border:1px solid var(--line);overflow:hidden;min-width:70px;}
.bar i{display:block;height:100%;background:var(--accent);transition:width .3s;}
.bar i.ok{background:var(--accent2);}
.bar i.warn{background:var(--warn);}

/* ---------- modal ---------- */
.modal-back{position:fixed;inset:0;background:rgba(5,6,9,.7);backdrop-filter:blur(3px);
z-index:50;display:flex;align-items:flex-start;justify-content:center;padding:40px 14px;
overflow-y:auto;}
.modal{background:var(--card);border:1px solid var(--line-strong);border-radius:var(--radius);
box-shadow:var(--shadow-2);max-width:880px;width:100%;padding:20px;}
.modal h3{margin:0 0 14px;font-size:16px;}
.modal .row{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:10px;align-items:flex-end;}
.modal .row > div{display:flex;flex-direction:column;gap:3px;}
.modal .row label{font-size:11px;color:var(--muted);text-transform:uppercase;
letter-spacing:.05em;}
.modal .actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px;}

/* ---------- charts ---------- */
.chart-card{background:linear-gradient(180deg,var(--card-2),var(--card));
border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;}
canvas{width:100%;height:auto;display:block;}
.legend{display:flex;flex-wrap:wrap;gap:14px;margin:0 0 8px;font-size:12px;color:var(--muted);}
.legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px;
vertical-align:-1px;}

/* ---------- notifications drawer ---------- */
#notif-drawer{position:fixed;top:0;right:0;bottom:0;width:360px;max-width:92vw;
background:var(--card);border-left:1px solid var(--line-strong);z-index:60;
box-shadow:var(--shadow-2);padding:16px;overflow-y:auto;}
.notif{border:1px solid var(--line);border-radius:var(--radius-sm);padding:9px 12px;
margin-bottom:8px;background:var(--card-2);}
.notif.unread{border-left:3px solid var(--accent);}
.notif .t{font-weight:600;font-size:12.8px;}
.notif .b{color:var(--muted);font-size:12px;white-space:pre-line;}
.notif .d{color:var(--faint);font-size:11px;margin-top:3px;}

/* ---------- login ---------- */
#login-back{position:fixed;inset:0;z-index:100;background:var(--bg);display:flex;
align-items:center;justify-content:center;}
#login-back .box{background:var(--card);border:1px solid var(--line-strong);
border-radius:var(--radius);padding:30px;width:320px;text-align:center;}

.muted{color:var(--muted);}.faint{color:var(--faint);}
.right{text-align:right;}
.mt{margin-top:14px;}
.flex{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
#toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);z-index:80;
background:var(--card-2);border:1px solid var(--accent);color:var(--text);
padding:9px 18px;border-radius:var(--radius-sm);box-shadow:var(--shadow-2);
font-size:13px;display:none;}
#toast.bad{border-color:var(--bad);}

/* ---------- mobile ---------- */
@media (max-width: 860px){
  header{padding:10px 14px;flex-wrap:wrap;}
  #hamburger{display:block;background:none;border:1px solid var(--line);color:var(--muted);
    padding:5px 10px;}
  .nav{display:none;width:100%;flex-direction:column;}
  .nav.open{display:flex;}
  .nav a{padding:10px 12px;font-size:14px;}
  main{padding:14px 12px 70px;}
  .grid2,.grid3{grid-template-columns:1fr;}
  .kpi .v{font-size:18px;}
  .modal{padding:14px;}
  th,td{padding:6px 7px;}
  .hide-m{display:none;}
}
