/* Pure Pharma Operations — BORRN Control Tower visual language (dark ink, warm paper, coral). */
:root{--ink:#0a0a0c;--ink-2:#0e0e12;--card:#131319;--card-2:#16161d;--paper:#f4f1ea;--dim:rgba(244,241,234,.62);--faint:rgba(244,241,234,.40);
--line:rgba(244,241,234,.10);--line-2:rgba(244,241,234,.16);--accent:#ff5d3b;--accent-2:#ff8a5c;--accent-soft:rgba(255,93,59,.12);
--amber:#f5b54a;--blue:#8a8cff;--live:#74e88a;--red:#ff6b6b;--r:18px;--maxw:1280px;
--display:"Space Grotesk",system-ui,sans-serif;--body:"Inter",system-ui,sans-serif;--serif:"Instrument Serif",Georgia,serif}
*{box-sizing:border-box}html,body{margin:0;background:var(--ink);color:var(--paper);font:14px/1.5 var(--body)}
a{color:inherit;text-decoration:none}a:hover{color:var(--accent-2)}
h1,h2,h3{font-family:var(--display);margin:0 0 .35em;letter-spacing:-.01em}h1{font-size:28px;font-weight:600}h2{font-size:18px;font-weight:600}h3{font-size:14px;font-weight:600;color:var(--dim);text-transform:uppercase;letter-spacing:.08em}
.serif{font-family:var(--serif);font-style:italic;font-weight:400;color:var(--paper)}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}
.topbar{border-bottom:1px solid var(--line);background:var(--ink-2);position:sticky;top:0;z-index:10}
.topbar .wrap{display:flex;align-items:center;gap:24px;height:60px}
.brand{font-family:var(--display);font-weight:700;font-size:16px;letter-spacing:-.01em;display:flex;align-items:center;gap:10px}
.brand .dot{width:10px;height:10px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}
.brand small{color:var(--faint);font-weight:500;font-size:12px}
.nav{display:flex;gap:2px;flex:1;overflow-x:auto}.nav a{padding:8px 12px;border-radius:10px;color:var(--dim);font-weight:500;white-space:nowrap}
.nav a.on{background:var(--card-2);color:var(--paper)}.nav a:hover{color:var(--paper)}
.chips{display:flex;gap:8px;align-items:center}
.chip{font-size:12px;padding:5px 10px;border-radius:999px;border:1px solid var(--line-2);color:var(--dim);background:var(--card)}
.chip b{color:var(--paper);font-weight:600}.chip.warn{border-color:rgba(245,181,74,.5);color:var(--amber)}.chip.live{border-color:rgba(116,232,138,.5);color:var(--live)}
.chip.red{border-color:rgba(255,107,107,.5);color:var(--red)}
main{padding:28px 0 60px}
.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:22px;flex-wrap:wrap}
.page-head p{margin:0;color:var(--dim);max-width:720px}
.grid{display:grid;gap:16px}.g2{grid-template-columns:repeat(2,1fr)}.g3{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:repeat(4,1fr)}
@media(max-width:1000px){.g4,.g3{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.g4,.g3,.g2{grid-template-columns:1fr}}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:20px}
.card.soft{background:var(--card-2)}
.kpi .label{color:var(--faint);font-size:12px;text-transform:uppercase;letter-spacing:.08em}
.kpi .value{font-family:var(--display);font-size:28px;font-weight:600;margin:4px 0 2px}
.kpi .sub{color:var(--dim);font-size:12px}
.agent{display:flex;flex-direction:column;gap:12px;position:relative;overflow:hidden}
.agent .av{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;font-family:var(--display);font-weight:700;font-size:18px;color:#0a0a0c}
.agent .head{display:flex;gap:14px;align-items:center}.agent .name{font-family:var(--display);font-size:18px;font-weight:600}
.agent .role{color:var(--dim);font-size:12px}.agent .purpose{color:var(--dim);font-size:13px;font-style:italic;font-family:var(--serif);font-size:16px}
.agent .meta{display:flex;flex-wrap:wrap;gap:6px}.agent .foot{display:flex;justify-content:space-between;align-items:center;gap:8px;border-top:1px solid var(--line);padding-top:12px;margin-top:auto}
.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.tile{background:var(--ink-2);border-radius:12px;padding:10px 12px}
.tile .v{font-family:var(--display);font-size:20px;font-weight:600}.tile .l{color:var(--faint);font-size:11px;text-transform:uppercase;letter-spacing:.06em}
.badge{display:inline-flex;align-items:center;gap:6px;font-size:11px;padding:3px 8px;border-radius:999px;background:var(--card-2);border:1px solid var(--line-2);color:var(--dim);white-space:nowrap}
.badge.ok{color:var(--live);border-color:rgba(116,232,138,.4)}.badge.warn{color:var(--amber);border-color:rgba(245,181,74,.4)}.badge.bad{color:var(--red);border-color:rgba(255,107,107,.4)}
.badge.ph{color:var(--amber);background:rgba(245,181,74,.1);border-color:rgba(245,181,74,.3)}.badge.mock{color:#c9b3ff;background:rgba(138,140,255,.12);border-color:rgba(138,140,255,.35)}
.btn{display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border-radius:12px;border:1px solid var(--line-2);background:var(--card-2);color:var(--paper);font:inherit;font-weight:600;cursor:pointer}
.btn:hover{border-color:var(--accent);color:var(--paper)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#0a0a0c}.btn.primary:hover{background:var(--accent-2)}
.btn.small{padding:6px 10px;font-size:12px;border-radius:9px}.btn.ghost{background:transparent}.btn.danger{border-color:rgba(255,107,107,.5);color:var(--red)}
table.data{width:100%;border-collapse:collapse;font-size:13px}table.data th{text-align:left;color:var(--faint);font-weight:500;font-size:11px;text-transform:uppercase;letter-spacing:.06em;padding:8px 10px;border-bottom:1px solid var(--line-2)}
table.data td{padding:9px 10px;border-bottom:1px solid var(--line);vertical-align:top}table.data tr:hover td{background:rgba(244,241,234,.02)}
table.data td.num,table.data th.num{text-align:right;font-variant-numeric:tabular-nums}
.muted{color:var(--dim)}.faint{color:var(--faint)}.small{font-size:12px}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}
.list{display:flex;flex-direction:column;gap:8px}.list a.item{display:flex;justify-content:space-between;gap:12px;padding:12px 14px;border-radius:12px;background:var(--ink-2);border:1px solid var(--line)}
.list a.item:hover{border-color:var(--accent)}.list .k{width:8px;height:8px;border-radius:50%;background:var(--amber);margin-top:6px;flex:none}
.k.approve{background:var(--accent)}.k.escalation{background:var(--red)}.k.no_email{background:var(--amber)}.k.failed{background:var(--red)}.k.rules{background:var(--blue)}
form.inline{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
input,select,textarea{font:inherit;color:var(--paper);background:var(--ink-2);border:1px solid var(--line-2);border-radius:10px;padding:8px 10px}
input:focus,select:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}
.login{min-height:100vh;display:grid;place-items:center;background:radial-gradient(1200px 600px at 20% 0%,rgba(255,93,59,.12),transparent),var(--ink)}
.login .card{width:380px}.login h1{font-size:22px}.login label{display:block;margin:12px 0 4px;color:var(--dim);font-size:12px}.login input{width:100%}
.err{color:var(--red);font-size:13px;margin-top:10px}
.spark{display:flex;gap:3px;align-items:flex-end;height:36px}.spark i{flex:1;background:var(--line-2);border-radius:2px 2px 0 0;min-height:2px}.spark i.on{background:var(--accent)}
.sec{margin-top:28px}.sec h2{margin-bottom:12px}
.two{display:grid;grid-template-columns:2fr 1fr;gap:16px}@media(max-width:1000px){.two{grid-template-columns:1fr}}
.stage{font-size:11px;padding:2px 8px;border-radius:999px;border:1px solid var(--line-2)}
.stage.pre_due{color:var(--blue)}.stage.due{color:var(--amber)}.stage.overdue_first,.stage.overdue_recurring{color:var(--accent-2)}.stage.escalated{color:var(--red)}
.notice{padding:12px 14px;border-radius:12px;background:var(--accent-soft);border:1px solid rgba(255,93,59,.3);color:var(--paper);margin-bottom:16px}
.notice.ok{background:rgba(116,232,138,.1);border-color:rgba(116,232,138,.3)}
footer{border-top:1px solid var(--line);color:var(--faint);font-size:12px;padding:18px 0}
pre.body{white-space:pre-wrap;background:var(--ink-2);padding:14px;border-radius:12px;border:1px solid var(--line);font:13px/1.5 var(--body)}
details summary{cursor:pointer;color:var(--dim)}
