:root{
  color-scheme:light;
  --paper:#F2EEE5; --card:#FBF9F3; --ink:#15201C; --ink-2:#4A5650; --line:#DAD3C4; --line-2:#C9C0AD;
  --side:#12201B; --side-2:#1B2D26; --side-ink:#E7E2D5; --side-mute:#8FA097;
  --accent:#D4470B; --accent-d:#B03A08; --teal:#0F5C4D; --ok:#2E7D5B; --warn:#B7791F; --bad:#B3261E; --info:#1D4ED8;
  --r:10px; --f-d:'Bricolage Grotesque',Georgia,'Times New Roman',serif; --f-b:'IBM Plex Sans',system-ui,-apple-system,'Segoe UI',sans-serif; --f-m:'IBM Plex Mono',ui-monospace,Menlo,monospace;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:400 1rem/1.55 var(--f-b);
  background-image:radial-gradient(circle at 1px 1px,rgba(21,32,28,.055) 1px,transparent 0);background-size:22px 22px}
h1,h2,h3{font-family:var(--f-d);line-height:1.15;margin:0 0 .5rem;letter-spacing:-.01em}
h1.page-title{font-size:clamp(1.7rem,2.6vw,2.3rem);font-weight:700;margin:0 0 1.1rem}
h2{font-size:1.2rem;font-weight:700} h3{font-size:1.05rem;font-weight:700;margin-top:1.2rem}
a{color:var(--accent-d);text-underline-offset:2px} a:hover{color:var(--accent)}
p{margin:.4rem 0 .8rem} code{font-family:var(--f-m);font-size:.88em;background:rgba(21,32,28,.07);padding:.1em .35em;border-radius:4px}
:focus-visible{outline:3px solid var(--info);outline-offset:2px;border-radius:4px}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-999px;top:0;background:var(--ink);color:#fff;padding:.6rem 1rem;z-index:50}.skip:focus{left:8px;top:8px}
.muted{color:var(--ink-2)} .small{font-size:.875rem} .lead{font-size:1.05rem;color:var(--ink-2);max-width:62ch;margin-bottom:1.1rem} .late{color:var(--bad);font-weight:600}

/* shell */
.shell{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:100vh}
.side{background:var(--side);color:var(--side-ink);padding:20px 12px 28px;position:sticky;top:0;height:100vh;overflow-y:auto}
.brand{display:flex;gap:.7rem;align-items:center;padding:0 8px 18px}
.brand strong{display:block;font-family:var(--f-d);font-size:1.15rem;letter-spacing:-.01em}.brand small{color:var(--side-mute);font-size:.78rem}
.mark{display:grid;place-items:center;width:38px;height:38px;border-radius:9px;background:var(--accent);color:#fff;font:700 1.25rem var(--f-d)}
.brand.big{padding:0 0 22px}.brand.big .mark{width:46px;height:46px}.brand.big strong{font-size:1.4rem;color:var(--ink)}.brand.big small{color:var(--ink-2)}
.side nav{display:flex;flex-direction:column;gap:2px}
.side nav h2{font:600 .72rem var(--f-b);letter-spacing:.12em;text-transform:uppercase;color:var(--side-mute);margin:18px 10px 6px}
.side nav a{display:flex;align-items:center;gap:.65rem;padding:.55rem .7rem;min-height:40px;color:var(--side-ink);text-decoration:none;border-radius:8px;font-weight:500}
.side nav a:hover{background:var(--side-2)} .side nav a[aria-current=page]{background:var(--side-2);box-shadow:inset 3px 0 0 var(--accent)}
.dot{width:10px;height:10px;border-radius:50%;flex:none}
.count{margin-left:auto;background:var(--accent);color:#fff;font:600 .75rem var(--f-b);min-width:22px;text-align:center;padding:.1rem .45rem;border-radius:99px}.count.soft{background:var(--side-2);border:1px solid #2E453B;color:var(--side-ink)}
.main-col{min-width:0}
.top{display:flex;gap:.8rem;align-items:center;flex-wrap:wrap;padding:.7rem 1.6rem;background:rgba(242,238,229,.92);backdrop-filter:blur(6px);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}
.switcher{display:flex;align-items:center;gap:.5rem}.switcher label{font-size:.8rem;color:var(--ink-2);text-transform:uppercase;letter-spacing:.08em}
.who{margin-left:auto;display:flex;gap:1rem;align-items:center;font-size:.9rem}.who em{font-style:normal;color:var(--ink-2);margin-left:.3rem}
main{padding:1.6rem 1.6rem 4rem;max-width:1220px}

/* controls */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;min-height:44px;padding:.55rem 1.05rem;border:1.5px solid var(--ink);border-radius:8px;background:transparent;color:var(--ink);font:600 .95rem var(--f-b);cursor:pointer;text-decoration:none}
.btn:hover{background:rgba(21,32,28,.07);color:var(--ink)}
.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{background:var(--accent-d);border-color:var(--accent-d);color:#fff}
.btn.ghost{border-color:var(--line-2);background:var(--card)}.btn.ghost:hover{border-color:var(--ink)}
.btn.danger{color:var(--bad)}.btn.wide{width:100%}.btn:disabled{opacity:.5;cursor:not-allowed}
input,select,textarea{font:inherit;font-size:1rem;color:var(--ink);background:#fff;border:1.5px solid var(--line-2);border-radius:8px;padding:.6rem .7rem;min-height:44px;width:100%}
textarea{resize:vertical;min-height:5rem;line-height:1.5} select{padding-right:.4rem}
input[type=checkbox]{width:1.25rem;height:1.25rem;min-height:0;accent-color:var(--accent)}
input:user-invalid,textarea:user-invalid{border-color:var(--bad)}
.narrow{width:7rem}.inline{display:inline-flex;gap:.4rem;align-items:center;flex-wrap:wrap}.inline input,.inline select{width:auto}
label{font-weight:500;font-size:.92rem}.field{display:flex;flex-direction:column;gap:.3rem;margin-bottom:.9rem}.field .hint{color:var(--ink-2);font-size:.8rem}
.check{display:inline-flex;gap:.55rem;align-items:center;font-weight:400;cursor:pointer}
.stack{display:flex;flex-direction:column;gap:.2rem}
.grid-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:.2rem 1rem;align-items:end;margin-top:.8rem}.grid-form .wide{grid-column:span 2}.grid-form .full{grid-column:1/-1}
.row{display:flex;gap:.7rem;align-items:center}.row.between{justify-content:space-between}.row.wrap{flex-wrap:wrap}.row.end{justify-content:flex-end}
.flash{padding:.7rem 1rem;border-radius:8px;margin-bottom:1rem;border:1px solid;font-weight:500}
.flash.ok{background:#E6F2EA;border-color:#A9D1B9;color:#1B5237}.flash.warn{background:#FBF1DC;border-color:#E6C98A;color:#6B4A0C}.flash.err{background:#FBE7E5;border-color:#E3A9A4;color:#8A1B14}
.error-line{color:var(--bad);font-weight:500;margin:.3rem 0 0}

/* cards */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:1.1rem 1.25rem;margin-bottom:1rem;box-shadow:0 1px 0 rgba(21,32,28,.04)}
.card>h2:first-child{margin-bottom:.7rem}
.hero{padding:1.8rem;border-left:5px solid var(--accent)}.hero h2{font-size:1.5rem}
.cmd textarea{margin:.4rem 0 .7rem}
details.card>summary{cursor:pointer;font-weight:600;list-style:none;min-height:32px;display:flex;align-items:center}
details.card>summary::before{content:'+';display:inline-grid;place-items:center;width:1.5rem;height:1.5rem;margin-right:.6rem;border:1.5px solid var(--ink);border-radius:50%;font-weight:700}
details.card[open]>summary::before{content:'\2212'}
.callout{background:#FBF1DC;border:1px solid #E6C98A;border-radius:8px;padding:.7rem 1rem;margin:.5rem 0 1rem}.callout ul{margin:.3rem 0 0;padding-left:1.2rem}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:.8rem;margin-bottom:1rem}.stats.small{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}
.stat{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:.9rem 1rem;color:var(--ink);text-decoration:none}
a.stat:hover{border-color:var(--ink)}.stat span{font-size:.8rem;color:var(--ink-2);text-transform:uppercase;letter-spacing:.07em}
.stat strong{font:700 2rem/1.1 var(--f-d);margin:.25rem 0}.stat strong small{font:500 .85rem var(--f-b);color:var(--ink-2)}.stat em{font-style:normal;font-size:.85rem;color:var(--ink-2)}
.tabs{display:flex;gap:.3rem;flex-wrap:wrap;margin:.2rem 0 1rem;border-bottom:1px solid var(--line)}
.tabs a{padding:.55rem .9rem;text-decoration:none;color:var(--ink-2);font-weight:500;border-bottom:3px solid transparent;margin-bottom:-1px;min-height:44px;display:inline-flex;align-items:center}
.tabs a[aria-current=page]{color:var(--ink);border-color:var(--accent)}

/* targets and bars */
.trow{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(120px,1fr) minmax(0,1.2fr);gap:1rem;align-items:center;padding:.8rem 0;border-top:1px solid var(--line)}
.trow:first-of-type{border-top:0}.tmeta small,.tnum small{display:block;color:var(--ink-2)}
.bar{position:relative;height:12px;background:#E5DFD0;border-radius:99px;overflow:visible;margin:.5rem 0}
.bar .fill{position:absolute;inset:0 auto 0 0;border-radius:99px;background:var(--ok)}
.bar .pace{position:absolute;top:-4px;bottom:-4px;width:2px;background:var(--ink)}
.fill.s-on_track,.fill.s-done{background:var(--ok)}.fill.s-at_risk{background:var(--warn)}.fill.s-behind,.fill.s-missed{background:var(--bad)}
.chip{display:inline-block;padding:.1rem .6rem;border-radius:99px;font:600 .75rem var(--f-b);border:1px solid;white-space:nowrap}
.chip.s-on_track,.chip.s-done,.chip.st-won,.chip.st-sent{background:#E6F2EA;color:#1B5237;border-color:#A9D1B9}
.chip.s-at_risk,.chip.st-meeting,.chip.st-manual,.chip.st-proposal{background:#FBF1DC;color:#6B4A0C;border-color:#E6C98A}
.chip.s-behind,.chip.s-missed,.chip.st-lost,.chip.st-rejected{background:#FBE7E5;color:#8A1B14;border-color:#E3A9A4}
.chip[class*=" st-"]:not(.st-won):not(.st-sent):not(.st-meeting):not(.st-manual):not(.st-proposal):not(.st-lost):not(.st-rejected){background:#EDEAE0;color:var(--ink-2);border-color:var(--line-2)}

/* agents + activity */
.agents-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.8rem}
.agent-tile{display:flex;flex-direction:column;gap:.15rem;padding:.9rem 1rem;border:1px solid var(--line);border-top:4px solid var(--c);border-radius:var(--r);background:#fff;color:var(--ink);text-decoration:none}
.agent-tile:hover{border-color:var(--ink);border-top-color:var(--c)}.agent-tile strong{font:700 1.15rem var(--f-d)}.agent-tile span{color:var(--ink-2);font-size:.9rem}.agent-tile small{color:var(--ink-2);font-size:.8rem}
.agent-head{border-top:4px solid var(--c)}.agent-head p:first-child{font-size:1.05rem}
.act{display:grid;grid-template-columns:auto 1fr auto;gap:.7rem;padding:.45rem 0;border-top:1px solid var(--line);align-items:baseline;font-size:.93rem}.act:first-of-type{border-top:0}.act time{color:var(--ink-2);font-size:.8rem;white-space:nowrap}
.tag{display:inline-block;font:600 .7rem var(--f-m);letter-spacing:.05em;padding:.1rem .45rem;border-radius:4px;background:var(--c,#555);color:#fff}

/* tables */
.table-wrap{overflow-x:auto;background:var(--card);border:1px solid var(--line);border-radius:var(--r);margin-bottom:1rem}
table{width:100%;border-collapse:collapse;font-size:.93rem}th{font:600 .72rem var(--f-b);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-2);text-align:left;padding:.7rem .8rem;border-bottom:1px solid var(--line-2);background:#F5F1E7;white-space:nowrap}
td{padding:.65rem .8rem;border-top:1px solid var(--line);vertical-align:top}tr:first-child td{border-top:0}.num{text-align:right;font-variant-numeric:tabular-nums}
td select{min-width:9rem;min-height:38px;padding:.3rem}

/* chat */
.chat-layout{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:1rem;align-items:start}
.chat{padding:0;display:flex;flex-direction:column}.msgs{padding:1.1rem 1.25rem;display:flex;flex-direction:column;gap:1rem;max-height:62vh;overflow-y:auto}
.msg{max-width:92%}.msg .who{font:600 .78rem var(--f-b);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);margin-bottom:.2rem}.msg .who time{text-transform:none;letter-spacing:0;font-weight:400;margin-left:.4rem}
.msg .body{padding:.7rem .95rem;border-radius:10px;background:#fff;border:1px solid var(--line)}
.msg.user{align-self:flex-end}.msg.user .body{background:var(--ink);color:#F5F1E7;border-color:var(--ink)}.msg.user .who{text-align:right}
.msg .body>*:first-child{margin-top:0}.msg .body>*:last-child{margin-bottom:0}.msg .body h2,.msg .body h3,.msg .body h4{font-size:1.02rem;margin:.9rem 0 .3rem}.msg .body ul,.msg .body ol{padding-left:1.3rem;margin:.4rem 0}
.composer{border-top:1px solid var(--line);padding:.9rem 1.25rem;background:#F7F3EA;border-radius:0 0 var(--r) var(--r)}.composer textarea{margin-bottom:.6rem}
.pulse{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--accent);margin-right:.4rem}
@media (prefers-reduced-motion:no-preference){.pulse{animation:pulse 1.2s ease-in-out infinite}@keyframes pulse{50%{transform:scale(1.6);opacity:.35}}}
.threads h2{font-size:1rem}.threads a{display:flex;flex-direction:column;padding:.5rem .6rem;border-radius:8px;text-decoration:none;color:var(--ink);font-size:.92rem;border:1px solid transparent}
.threads a small{color:var(--ink-2)}.threads a:hover{background:#fff;border-color:var(--line)}.threads a[aria-current=true]{background:#fff;border-color:var(--ink)}.threads .newthread{margin-top:.5rem;font-weight:600;color:var(--accent-d)}
.prose{max-width:75ch}.prose.doc{max-width:80ch;font-size:1.02rem}.prose h2,.prose h3,.prose h4{margin:1.2rem 0 .4rem}.prose.pre{white-space:normal;background:#fff;border:1px solid var(--line);padding:.8rem 1rem;border-radius:8px}
.opp h2 a{text-decoration:none}.opp h2 a:hover{text-decoration:underline}.fit{font:500 1.05rem var(--f-m);color:var(--accent-d);white-space:nowrap}.fit small{font:400 .8rem var(--f-b);color:var(--ink-2)}
.task h2{font-size:1.05rem}

/* dialog */
dialog{border:1px solid var(--ink);border-radius:12px;padding:1.3rem 1.4rem;max-width:min(92vw,28rem);background:var(--card);color:var(--ink)}
dialog::backdrop{background:rgba(18,32,27,.55)}

/* auth */
body.auth{display:grid;place-items:center;min-height:100vh;padding:1rem}.auth-card{width:min(100%,24rem);background:var(--card);border:1px solid var(--line);border-top:5px solid var(--accent);border-radius:var(--r);padding:1.8rem}

@media (max-width:980px){
  .shell{grid-template-columns:1fr}.side{position:static;height:auto;padding:12px}.side nav{flex-direction:row;flex-wrap:nowrap;overflow-x:auto;gap:4px;padding-bottom:4px;scrollbar-width:thin}.side nav h2{display:none}.side nav a{padding:.4rem .8rem;flex:none;white-space:nowrap}.brand{padding-bottom:10px}
  .chat-layout{grid-template-columns:1fr}.top{padding:.6rem 1rem}main{padding:1.1rem 1rem 3rem}.trow{grid-template-columns:1fr}.grid-form .wide{grid-column:auto}.msg{max-width:100%}.who{margin-left:0;width:100%}
}

form[data-confirm]{margin-top:.8rem}
