/* ============================================================
   Karen AI - Admin console
   Brand system carried over from the landing page:
   near-black ink + electric lime + warm paper, system fonts.
   ============================================================ */
:root{
  --ink:#0E0E10;
  --ink-2:#18181B;
  --ink-3:#26262B;
  --paper:#F7F7F4;
  --acid:#D8F23A;
  --acid-deep:#C2DC1F;
  --slate:#52525B;
  --slate-2:#74747C;
  --hairline:#E4E2DA;
  --card:#FFFFFF;
  --good:#1A7F37;
  --good-bg:#E7F5EC;
  --warn:#B45309;
  --warn-bg:#FBF1E4;
  --bad:#B42318;
  --bad-bg:#FBEAE8;
  --blue:#1D4ED8;
  --blue-bg:#E8EEFD;
  --font:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:var(--font);color:var(--ink);background:var(--paper);line-height:1.5;-webkit-font-smoothing:antialiased}
a{color:inherit}
h1{font-size:26px;font-weight:900;letter-spacing:-0.02em}
h2{font-weight:800;letter-spacing:-0.01em}

/* ---------- Brand mark ---------- */
.brand{font-weight:900;font-size:21px;letter-spacing:-0.03em;text-decoration:none;display:flex;align-items:center;gap:7px;color:#fff}
.brand .badge{background:var(--acid);color:var(--ink);border-radius:5px;padding:2px 7px;font-size:13px;letter-spacing:0}
.brand .brand-sub{font-size:11px;font-weight:800;letter-spacing:0.18em;color:var(--acid);margin-left:2px;align-self:center}
.brand-center{justify-content:center;color:var(--ink)}
.brand-center .brand-sub{color:var(--slate)}

/* ---------- Layout ---------- */
.layout{display:grid;grid-template-columns:236px 1fr;min-height:100vh}
.sidebar{background:var(--ink);color:#fff;display:flex;flex-direction:column;padding:22px 16px;position:sticky;top:0;height:100vh}
.nav{margin-top:26px;display:flex;flex-direction:column;gap:2px;flex:1}
.nav-section{font-size:11px;font-weight:800;letter-spacing:0.16em;text-transform:uppercase;color:var(--slate-2);margin:20px 10px 7px}
.nav-item{display:flex;align-items:center;gap:10px;color:#C9C9CF;text-decoration:none;font-weight:600;font-size:15px;padding:9px 10px;border-radius:8px}
.nav-item:hover{background:var(--ink-3);color:#fff}
.nav-item.active{background:var(--acid);color:var(--ink);font-weight:800}
.nav-item .dot{width:7px;height:7px;border-radius:50%;background:currentColor;opacity:.5}
.nav-item.active .dot{opacity:1}
.nav-item.soon{color:#54545C;cursor:default}
.nav-item.soon:hover{background:transparent}
.nav-item.soon em{font-style:normal;font-size:10px;font-weight:800;letter-spacing:0.1em;text-transform:uppercase;color:#54545C;border:1px solid #3A3A40;border-radius:4px;padding:1px 5px;margin-left:auto}
.sidebar-foot{border-top:1px solid var(--ink-3);padding-top:14px;font-size:13px;color:var(--slate-2)}
.sidebar-foot .who{margin-bottom:6px}
.sidebar-foot strong{color:#fff}
.link-btn{background:none;border:none;color:var(--acid);font-weight:700;cursor:pointer;font-size:13px;padding:0;font-family:inherit}
.link-btn:hover{text-decoration:underline}
.main{padding:30px 34px 60px;max-width:1280px}

/* ---------- Flash ---------- */
.flashes{margin-bottom:18px;display:flex;flex-direction:column;gap:8px}
.flash{padding:11px 14px;border-radius:8px;font-weight:600;font-size:14px;border:1px solid}
.flash.ok{background:var(--good-bg);border-color:#BFE3CB;color:var(--good)}
.flash.err{background:var(--bad-bg);border-color:#F1C8C3;color:var(--bad)}

/* ---------- Page header ---------- */
.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:24px;flex-wrap:wrap}
.eyebrow{text-transform:uppercase;letter-spacing:0.14em;font-size:12px;font-weight:800;color:var(--slate)}
.eyebrow a{text-decoration:none}.eyebrow a:hover{color:var(--ink)}
.page-sub{color:var(--slate);font-size:15px;margin-top:6px;max-width:70ch}
.head-actions{display:flex;gap:10px}
.count{display:inline-block;background:var(--ink);color:#fff;font-size:14px;border-radius:20px;padding:1px 11px;vertical-align:middle;margin-left:6px}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:7px;font-weight:800;font-size:14px;text-decoration:none;padding:10px 16px;border-radius:7px;border:2px solid var(--ink);cursor:pointer;font-family:inherit;transition:transform .08s ease,background .15s ease;white-space:nowrap}
.btn:hover{transform:translateY(-1px)}
.btn-primary{background:var(--acid);color:var(--ink)}
.btn-primary:hover{background:var(--ink);color:var(--acid)}
.btn-ghost{background:transparent;color:var(--ink)}
.btn-ghost:hover{background:var(--ink);color:var(--paper)}
.btn-dark{background:var(--ink);color:#fff}
.btn-dark:hover{background:var(--ink-2)}
.btn-danger{background:#fff;color:var(--bad);border-color:var(--bad)}
.btn-danger:hover{background:var(--bad);color:#fff}
.btn.block{width:100%;justify-content:center}
.micro{font-weight:800;color:var(--ink);text-decoration:underline;text-decoration-color:var(--acid-deep);text-decoration-thickness:3px;text-underline-offset:3px;font-size:14px}
.micro:hover{text-decoration-color:var(--ink)}

/* ---------- KPIs ---------- */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;margin-bottom:26px}
.kpi{background:var(--card);border:1px solid var(--hairline);border-radius:12px;padding:18px 18px}
.kpi-num{font-size:30px;font-weight:900;letter-spacing:-0.03em}
.kpi-lab{color:var(--slate);font-size:13px;margin-top:4px;font-weight:600}
.muted{color:var(--slate-2);font-weight:500}

/* ---------- Panels ---------- */
.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}
.panel{background:var(--card);border:1px solid var(--hairline);border-radius:12px;padding:18px 20px}
.panel-h{font-size:13px;text-transform:uppercase;letter-spacing:0.08em;color:var(--slate);margin-bottom:10px}
table.mini{width:100%;border-collapse:collapse;font-size:14px}
table.mini td{padding:7px 0;border-bottom:1px solid var(--hairline)}
table.mini tr:last-child td{border-bottom:none}
.r{text-align:right}
.empty-hint{margin-top:22px;color:var(--slate)}

/* ---------- Filters ---------- */
.filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px;align-items:center}
.filters input,.filters select{font-family:inherit;font-size:14px;padding:9px 11px;border:2px solid var(--hairline);border-radius:7px;background:#fff;color:var(--ink)}
.filters input:focus,.filters select:focus{outline:none;border-color:var(--ink)}
.f-search{min-width:240px}
.clear{font-weight:700;color:var(--slate);text-decoration:underline;font-size:14px}

/* ---------- Grid table ---------- */
.table-wrap{overflow-x:auto;border:1px solid var(--hairline);border-radius:12px;background:#fff}
table.grid{width:100%;border-collapse:collapse;font-size:14px;min-width:980px}
table.grid thead th{text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:0.05em;color:var(--slate);background:#FBFBF9;padding:12px 12px;border-bottom:1px solid var(--hairline);white-space:nowrap;position:sticky;top:0}
table.grid th.r{text-align:right}
table.grid td{padding:12px 12px;border-bottom:1px solid var(--hairline);vertical-align:middle;white-space:nowrap}
table.grid tbody tr:last-child td{border-bottom:none}
table.grid tbody tr:hover{background:#FBFBF9}
table.grid tr:target{background:#FCFCE9}
.th-sort{text-decoration:none;color:inherit;display:inline-flex;gap:4px;align-items:center}
.th-sort.on{color:var(--ink)}
.th-sort:hover{color:var(--ink)}
.caret{font-size:9px}
td.strong{font-weight:800}
td.strong a{text-decoration:none;border-bottom:2px solid var(--acid)}
td.strong a:hover{border-bottom-color:var(--ink)}
.row-actions{text-align:right}
.legend{margin-top:14px;color:var(--slate);font-size:13px;display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.empty{background:#fff;border:1px dashed var(--hairline);border-radius:12px;padding:40px;text-align:center;color:var(--slate)}
.empty p{margin-bottom:14px;font-weight:600}

/* ---------- Tier badges ---------- */
.tier{display:inline-block;min-width:22px;text-align:center;font-weight:900;font-size:13px;border-radius:5px;padding:2px 7px;border:1.5px solid transparent}
.tier-S{background:var(--acid);color:var(--ink)}
.tier-A{background:#CFF5DD;color:#0F6B33}
.tier-B{background:#FBEFC8;color:#8A6400}
.tier-C{background:#FAE0CC;color:#9A4A12}
.tier-F{background:#EBEBEE;color:#6B6B73}

/* ---------- Status pills ---------- */
.pill{display:inline-block;font-size:12px;font-weight:700;border-radius:20px;padding:3px 10px;background:#EFEFF1;color:#5A5A62;white-space:nowrap}
.pill-agreed,.pill-approved,.pill-posted,.pill-paid_upfront{background:var(--good-bg);color:var(--good)}
.pill-contacted,.pill-briefed,.pill-submitted{background:var(--blue-bg);color:var(--blue)}
.pill-in_talks,.pill-in_production,.pill-revisions,.pill-partially_paid{background:var(--warn-bg);color:var(--warn)}
.pill-declined,.pill-ghosted,.pill-refunded{background:var(--bad-bg);color:var(--bad)}

/* ---------- Performance ---------- */
.perf{display:inline-block;font-weight:800;font-size:13px;border-radius:6px;padding:2px 9px}
.perf-good{background:var(--good-bg);color:var(--good)}
.perf-watch{background:var(--warn-bg);color:var(--warn)}
.perf-bad{background:var(--bad-bg);color:var(--bad)}

/* ---------- Forms ---------- */
.card-form{background:#fff;border:1px solid var(--hairline);border-radius:14px;padding:8px 26px 24px;max-width:880px}
.fieldset{padding:20px 0;border-bottom:1px solid var(--hairline)}
.fieldset:last-of-type{border-bottom:none}
.fs-h{font-size:13px;text-transform:uppercase;letter-spacing:0.08em;color:var(--slate);margin-bottom:14px}
.frow{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:4px}
.card-form label{display:flex;flex-direction:column;gap:6px;font-weight:700;font-size:13px;color:var(--ink);margin-bottom:14px;flex:1 1 200px}
.card-form label.grow{flex:2 1 320px}
.card-form input,.card-form select,.card-form textarea{font-family:inherit;font-size:15px;font-weight:500;padding:11px 12px;border:2px solid var(--hairline);border-radius:8px;background:#fff;color:var(--ink);width:100%}
.card-form input:focus,.card-form select:focus,.card-form textarea:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px rgba(216,242,58,.45)}
.card-form textarea{resize:vertical}
.req{color:var(--bad)}
.hint{font-weight:500;font-size:12px;color:var(--slate-2)}
.form-actions{display:flex;gap:10px;align-items:center;margin-top:22px}
.form-actions .spacer{flex:1}

/* ---------- Auth ---------- */
body.auth{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--ink)}
.auth-wrap{width:100%;max-width:380px;padding:20px}
.auth-card{background:var(--card);border-radius:16px;padding:34px 30px;display:flex;flex-direction:column;gap:6px;box-shadow:0 24px 60px rgba(0,0,0,.35)}
.auth-card .brand{margin:0 auto 2px}
.auth-tag{text-align:center;color:var(--slate);font-size:13px;margin-bottom:14px}
.auth-card label{display:flex;flex-direction:column;gap:6px;font-weight:700;font-size:13px;margin-top:8px}
.auth-card input{font-family:inherit;font-size:15px;padding:11px 12px;border:2px solid var(--hairline);border-radius:8px}
.auth-card input:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px rgba(216,242,58,.45)}
.auth-card .btn{margin-top:16px}

@media(max-width:820px){
  .layout{grid-template-columns:1fr}
  .sidebar{position:static;height:auto;flex-direction:row;align-items:center;flex-wrap:wrap;gap:10px 18px}
  .nav{flex-direction:row;flex-wrap:wrap;margin-top:0;gap:4px}
  .nav-section{display:none}
  .nav-item.soon{display:none}
  .sidebar-foot{border-top:none;padding-top:0;margin-left:auto}
  .main{padding:22px 18px 50px}
}
