/* AgentDoc v3 — brand + motion layer. Loads after colors_and_type.css, cloud.css, v2.css.
   Geist + Geist Mono · cobalt signal · 2px radius · light + dark · micro interactions (reduced-motion aware). */
@property --spot{syntax:"<color>";inherits:true;initial-value:transparent}

:root{
  --font-sans:"Geist",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  --font-mono:"Geist Mono",ui-monospace,"SF Mono",Menlo,monospace;
  --font-serif:var(--font-sans);
  --fg-muted:#5F5F58;--fg-hint:#77776F;
  --spring:cubic-bezier(.34,1.56,.64,1);
  --spring-soft:cubic-bezier(.22,1.3,.36,1);
  --dur-enter:520ms;
  --spot-on:rgba(46,91,255,0.07);
  --topbar-bg:rgba(250,250,247,0.86);
  --glass:rgba(255,255,255,0.84);
  color-scheme:light;
}
html[data-theme="dark"]{
  color-scheme:dark;
  --ink-0:#0E0E0D;--ink-1:#161615;--ink-2:#1E1E1C;--ink-3:#2C2C29;--ink-4:#55554F;--ink-5:#8E8E86;--ink-6:#BDBDB5;--ink-7:#ECECE6;--ink-8:#F7F7F3;
  --line-soft:rgba(236,236,230,0.06);--line:rgba(236,236,230,0.10);--line-strong:rgba(236,236,230,0.17);
  --bg-surface:#151514;--bg-surface-2:#1B1B1A;--bg-inset:#222220;
  --fg-muted:#A3A39B;--fg-hint:#8A8A82;
  --signal:#5B7FFF;--signal-ink:#8FA6FF;--signal-soft:rgba(91,127,255,0.16);
  --st-draft-bg:#1F1F1D;--st-draft-fg:#B5B5AC;--st-draft-dot:#77776F;
  --st-proposed-bg:rgba(46,91,255,0.16);--st-proposed-fg:#A3B6FF;--st-proposed-dot:#5B7FFF;
  --st-accepted-bg:rgba(0,216,115,0.12);--st-accepted-fg:#5BE3A0;
  --st-verified-bg:rgba(0,230,115,0.12);--st-verified-fg:#62E8A8;
  --st-review-bg:rgba(255,184,0,0.12);--st-review-fg:#F5C452;
  --st-stale-bg:rgba(255,107,0,0.13);--st-stale-fg:#FF9D5C;
  --st-deprecated-bg:rgba(168,149,136,0.14);--st-deprecated-fg:#C9B8AC;
  --st-superseded-bg:rgba(139,61,255,0.16);--st-superseded-fg:#C2A0FF;
  --st-contradicted-bg:rgba(255,31,92,0.14);--st-contradicted-fg:#FF85A4;
  --st-revoked-bg:rgba(255,31,31,0.14);--st-revoked-fg:#FF8A8A;
  --st-archived-bg:#1E1E1C;--st-archived-fg:#A3A39B;
  --sev-low:#E0B25A;--sev-medium:#EE8A62;--sev-high:#F27171;--sev-critical:#FF9C9C;
  --trust-authoritative:#6FCFA9;
  --elev-1:0 1px 0 0 var(--line),0 1px 2px rgba(0,0,0,0.35);
  --elev-2:0 0 0 1px var(--line),0 4px 14px rgba(0,0,0,0.4);
  --elev-3:0 0 0 1px var(--line-strong),0 14px 36px rgba(0,0,0,0.55);
  --spot-on:rgba(91,127,255,0.10);
  --topbar-bg:rgba(14,14,13,0.82);
  --glass:rgba(21,21,20,0.88);
}
html[data-theme="dark"] .topbar{background:var(--topbar-bg)}
.topbar{background:var(--topbar-bg)}
.cmdk{background:var(--glass)}
.check-row .cb{color:var(--bg-surface)}
.btn-danger:hover{background:var(--bg-surface)}
.dgroup-t{background:var(--bg-surface-2)}
html[data-theme="dark"] .decide.blocked{border-color:rgba(245,196,82,0.35)}
html[data-theme="dark"] .conn.trouble{border-color:rgba(255,138,138,0.35)}
html[data-theme="dark"] .banner-hist{background:var(--bg-inset);border-color:var(--line-strong);color:var(--ink-6)}
html,body{transition:background-color var(--dur-base) var(--ease-out)}

/* ---------- type: Geist, no serif display ---------- */
.ad-root{font-feature-settings:"ss01" 1;letter-spacing:-0.003em}
.ad-root .page-title{font:600 26px/1.15 var(--font-sans);letter-spacing:-0.025em}
.ad-root .page-sub{font-size:14px;max-width:68ch;text-wrap:pretty}
.ad-root .sect-title{font-weight:600;letter-spacing:-0.01em}
.ad-root .empty-title,.ad-root .fault-title,.statement,.stmt{font-family:var(--font-sans);font-weight:500;letter-spacing:-0.03em}
.ad-root .empty-title em,.ad-root .fault-title em,.statement em,.stmt em,.dtext em{font-style:normal;font-family:var(--font-sans);color:var(--signal)}
.ad-root .empty-title{font-size:26px}
.inbox-row .it,.tbl td .lead,.src .s1,.cat .k1,.conn-head .cn{text-wrap:pretty;letter-spacing:-0.01em}
.cell-num,.mono,.digest,.count{font-variant-numeric:tabular-nums}

/* ---------- brand mark ---------- */
.ad-mark{display:inline-grid;place-items:center;width:22px;height:22px;color:var(--ink-7);flex-shrink:0;position:relative}
.ad-mark svg{width:100%;height:100%;display:block;overflow:visible}
.ad-mark .px{fill:var(--signal)}
.ad-mark.lg{width:44px;height:44px}
.ad-mark.xl{width:96px;height:96px}
.wm{font:600 15px/1 var(--font-sans);letter-spacing:-0.03em;color:var(--ink-7)}
.wm small{font-weight:400;color:var(--fg-muted);letter-spacing:-0.01em;margin-left:2px}

/* ---------- sidebar: badges mean "needs you" only ---------- */
.side .count{min-width:18px;text-align:center;padding:1px 6px;border-radius:var(--r-pill);font-size:10px;line-height:1.4}
.side .count.need{background:var(--ink-2);color:var(--ink-7)}
.side .count.crit{background:var(--st-contradicted-bg);color:var(--st-contradicted-fg)}
.ad-root .side a[aria-current="page"] .count{background:rgba(127,127,127,0.25);color:inherit}
.ad-root .side a{position:relative}
.ad-root .side a svg{transition:transform 320ms var(--spring)}
.ad-root .side a:hover svg{transform:translateX(1px) scale(1.08)}
.side a svg{stroke-width:1.4}

/* ---------- buttons: tactile press + magnetic ---------- */
.btn{transition:background-color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out),translate 420ms var(--spring),scale 140ms var(--ease-out)}
.btn:active{scale:.97}
.btn-primary:hover,.btn-signal:hover{box-shadow:0 6px 16px -8px rgba(27,27,25,0.45)}
.btn-signal:hover{box-shadow:0 6px 18px -8px rgba(46,91,255,0.7)}
.btn .lbl-in{display:inline-flex;transition:translate 420ms var(--spring)}
.btn .arr{display:inline-block;transition:translate 320ms var(--spring)}
.btn:hover .arr,.inbox-row:hover .arrow,.cat:hover .arr{translate:3px 0}
.inbox-row .ia .arrow{display:inline-block;transition:translate 320ms var(--spring),color var(--dur-fast)}
.inbox-row:hover .ia .arrow{color:var(--signal)}
kbd.k{font-family:var(--font-mono);font-size:10px;color:var(--fg-muted);border:1px solid var(--border-strong);border-bottom-width:2px;border-radius:var(--r-xs);padding:0 4px;background:var(--bg-surface-2);line-height:1.5}

/* ---------- cursor spotlight ---------- */
.spot{--spot:transparent;--spot-img:radial-gradient(420px circle at var(--mx,50%) var(--my,50%),var(--spot),transparent 55%);background-image:var(--spot-img);transition:--spot 260ms var(--ease-out),border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-base) var(--ease-out)}
.spot:hover{--spot:var(--spot-on)}
.ad-root .spot.spot:hover{background-image:var(--spot-img)}
.card.spot:hover,.conn.spot:hover,.src.spot:hover,.ad-root .cat.spot:hover{border-color:var(--border-strong);box-shadow:var(--elev-2)}
.ad-root .inbox-row.spot:hover,.tbl tr.rowlink.spot:hover,.ad-root .check-row.spot:hover{background-color:var(--bg-surface-2)}

/* ---------- springy switch ---------- */
.sw{transition:background-color 220ms var(--ease-out)}
.sw::after{transition:transform 460ms var(--spring),width 180ms var(--ease-out);box-shadow:0 1px 2px rgba(0,0,0,0.25)}
.sw:active::after{width:19px}
.sw.on:active::after{transform:translateX(11px)}

/* ---------- segmented / tabs: sliding indicator ---------- */
.seg.has-ind{position:relative;isolation:isolate}
.seg.has-ind .ind{position:absolute;top:2px;bottom:2px;left:0;border-radius:var(--r-xs);background:var(--bg-surface);box-shadow:var(--elev-1);z-index:-1;transition:transform 380ms var(--spring-soft),width 380ms var(--spring-soft);pointer-events:none}
.seg.has-ind button.on{background:transparent;box-shadow:none}
.tabs.has-ind{position:relative}
.tabs.has-ind .ind{position:absolute;bottom:0;left:0;height:2px;background:var(--ink-7);transition:transform 380ms var(--spring-soft),width 380ms var(--spring-soft);pointer-events:none}
.ad-root .tabs.has-ind button.on,.ad-root .tabs.has-ind a[aria-current="page"]{border-bottom-color:transparent}

/* ---------- live dot pulse + one-time ping ---------- */
.chip-active .d,.live-dot{position:relative}
.chip-active .d::after,.live-dot::after{content:"";position:absolute;inset:0;border-radius:50%;background:inherit;opacity:0}
.inbox-dot.crit,.sd-crit.ping{position:relative}

/* ---------- animated check ---------- */
.ck-svg{width:10px;height:10px;display:block}
.ck-svg path{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:14;stroke-dashoffset:0}
.check-row .cb{transition:background-color 240ms var(--ease-out),border-color 240ms var(--ease-out)}
.progress{height:3px;background:var(--bg-inset);border-radius:var(--r-pill);overflow:hidden;margin:0 0 10px}
.progress i{display:block;height:100%;width:100%;background:var(--ink-7);transform-origin:left;transform:scaleX(var(--p,0));transition:transform 900ms var(--ease-out)}

/* ---------- copy morph ---------- */
.copyid{position:relative}
.copyid::after{display:inline-block;transition:transform 300ms var(--spring)}
.copyid.copied{border-color:var(--st-accepted-dot);background:var(--st-accepted-bg);color:var(--st-accepted-fg)}
.copyid.copied::after{transform:scale(1.25)}

/* ---------- shimmer (model-written text, loading) ---------- */
.shimmer{background:linear-gradient(100deg,var(--fg-hint) 0%,var(--fg-hint) 40%,var(--ink-7) 50%,var(--fg-hint) 60%,var(--fg-hint) 100%);background-size:250% 100%;background-position:100% 0;-webkit-background-clip:text;background-clip:text;color:transparent!important}
.thinking{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-sans);font-size:var(--fs-sm)}

/* ---------- click spark ---------- */
.spark{position:fixed;width:0;height:0;pointer-events:none;z-index:400}
.spark i{position:absolute;left:-1px;top:-5px;width:2px;height:8px;border-radius:1px;background:var(--signal);transform-origin:50% 100%;opacity:0}

/* ---------- toast: slide + progress ---------- */
.toast{overflow:hidden;align-items:center;padding:12px 14px 14px}
.toast .ti{width:18px;height:18px;border-radius:50%;background:var(--st-accepted-dot);color:#0E0E0C;display:grid;place-items:center;flex-shrink:0}
.toast .ti .ck-svg{width:10px;height:10px}
.toast .tp{position:absolute;left:0;right:0;bottom:0;height:2px;background:rgba(127,127,127,0.25)}
.toast .tp i{display:block;height:100%;background:var(--signal);transform-origin:left}
.toast{transition:opacity 220ms var(--ease-out),transform 460ms var(--spring)}
.toast:not(.show){transform:translateY(14px) scale(.98)}

/* ---------- summary strip (Home, Agents) ---------- */
.sumrow{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-surface);box-shadow:var(--elev-1);overflow:hidden;margin-bottom:14px}
.ad-root .sum{display:flex;flex-direction:column;gap:6px;padding:14px 16px;border:0;border-left:1px solid var(--border-soft);background:transparent;text-align:left;cursor:pointer;font:inherit;color:inherit;text-decoration:none;transition:background-color var(--dur-fast) var(--ease-out)}
.sum:first-child{border-left:0}
.sum:hover{background-color:var(--bg-surface-2)}
.sum.on{background:var(--bg-surface-2);box-shadow:inset 0 -2px 0 var(--ink-7)}
.sum .sl{font-size:var(--fs-sm);color:var(--fg-secondary);display:flex;align-items:center;gap:7px}
.sum .sn{font:500 30px/1 var(--font-sans);letter-spacing:-0.03em;color:var(--ink-7);font-variant-numeric:tabular-nums}
.sum .sh{font-family:var(--font-mono);font-size:var(--fs-micro);color:var(--fg-hint)}
.legend{display:flex;gap:14px;flex-wrap:wrap;font-family:var(--font-mono);font-size:var(--fs-micro);color:var(--fg-muted);margin:0 0 10px}
.legend span{display:inline-flex;align-items:center;gap:6px}
.legend i{width:7px;height:7px;border-radius:50%;display:inline-block}
.inbox-group{display:flex;align-items:center;gap:8px}
.inbox-group .gn{margin-left:auto;color:var(--fg-hint)}
.inbox-row .ia .act{border:1px solid var(--border-strong);border-radius:var(--r-xs);padding:3px 9px;font-size:var(--fs-xs);transition:background-color var(--dur-fast),border-color var(--dur-fast),color var(--dur-fast)}
.inbox-row:hover .ia .act{background:var(--ink-7);border-color:var(--ink-7);color:var(--ink-0)}
.next-tag{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--signal);border:1px solid currentColor;border-radius:var(--r-xs);padding:0 5px;margin-left:6px;vertical-align:1px}
.check-row.next{background:var(--signal-soft)}
.check-row.next .cb{border-color:var(--signal)}

/* agent metrics */
.ametrics{display:flex;gap:22px;flex-wrap:wrap;margin-top:12px}
.ametric{display:flex;flex-direction:column;gap:2px}
.ametric b{font:500 20px/1 var(--font-sans);letter-spacing:-0.02em;color:var(--ink-7);font-variant-numeric:tabular-nums}
.ametric span{font-family:var(--font-mono);font-size:var(--fs-micro);color:var(--fg-muted)}
.ametric.bad b{color:var(--st-contradicted-fg)}
.status-pill{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-sm);font-weight:500}
.stat.you{color:var(--ink-7);font-weight:500}

/* knowledge rows: keyboard + hover arrow */
.tbl tr.rowlink td:first-child{position:relative}
.tbl tr.rowlink:focus-visible{outline:none;box-shadow:inset 3px 0 0 var(--signal);background:var(--bg-surface-2)}
.tbl tr.rowlink .go{font-family:var(--font-mono);color:var(--fg-hint);opacity:0;display:inline-block;translate:-4px 0;transition:opacity var(--dur-fast),translate 320ms var(--spring)}
.tbl tr.rowlink:hover .go,.tbl tr.rowlink:focus-visible .go{opacity:1;translate:0 0;color:var(--signal)}
.pop{position:relative;display:inline-flex}
.pop .menu{top:34px;left:0;min-width:200px}
.menu.open{animation:menuIn 200ms var(--ease-out)}

/* theme picker in user menu */
.theme-seg{display:flex;gap:2px;margin:2px 6px 6px;background:var(--bg-surface-2);border:1px solid var(--border);border-radius:var(--r-xs);padding:2px}
.theme-seg button{flex:1;font-family:var(--font-mono);font-size:10px;color:var(--fg-muted);background:transparent;border:0;border-radius:var(--r-xs);padding:4px 6px;cursor:pointer}
.theme-seg button.on{background:var(--bg-surface);color:var(--fg);box-shadow:var(--elev-1)}
.iconbtn.theme{width:30px;height:30px}

/* ---------- motion (only when allowed) ---------- */
@media (prefers-reduced-motion:no-preference){
  .motion-ok .rv>.rvi{opacity:0}
  .motion-ok .rv.rv-in>.rvi{animation:rise var(--dur-enter) var(--ease-out) both;animation-delay:calc(min(var(--i,0),14) * 42ms)}
  .motion-ok .page-head{animation:rise 560ms var(--ease-out) both}
  .chip-active .d::after,.live-dot::after{animation:pulse 2.4s var(--ease-out) infinite}
  .motion-ok .inbox-dot.crit,.motion-ok .sd-crit.ping{animation:ping 1.6s var(--ease-out) 600ms 2}
  .motion-ok .check-row.done .ck-svg path{animation:draw 520ms var(--ease-out) both;animation-delay:calc(300ms + var(--i,0) * 90ms)}
  .motion-ok .check-row.done .cb{animation:pop 420ms var(--spring) both;animation-delay:calc(240ms + var(--i,0) * 90ms)}
  .shimmer.run{animation:shimmer 2.2s linear 2}
  .shimmer.loop{animation:shimmer 1.6s linear infinite}
  .spark i{animation:spark 520ms var(--ease-out) forwards}
  .modal.open{animation:modalIn 300ms var(--spring-soft) both}
  .scrim.open{animation:fadeIn 200ms var(--ease-out) both}
  .cmdk.open{animation:cmdIn 260ms var(--spring-soft) both}
  .toast.show .tp i{animation:drain var(--toast-ms,5200ms) linear forwards}
  .toast.show .ti{animation:pop 480ms var(--spring) both}
  .toast.show .ti path{animation:draw 420ms var(--ease-out) 160ms both}
  .reveal-in{animation:rise 420ms var(--ease-out) both}
  .ad-mark.boot .px{animation:blink 900ms steps(1) 2}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}
  .btn{translate:none!important}
}
@keyframes rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes pulse{0%{opacity:.55;transform:scale(1)}70%,100%{opacity:0;transform:scale(3.2)}}
@keyframes ping{0%{box-shadow:0 0 0 0 rgba(255,31,92,.45)}100%{box-shadow:0 0 0 9px rgba(255,31,92,0)}}
@keyframes draw{from{stroke-dashoffset:14}to{stroke-dashoffset:0}}
@keyframes pop{0%{transform:scale(.4)}100%{transform:scale(1)}}
@keyframes shimmer{from{background-position:100% 0}to{background-position:-50% 0}}
@keyframes spark{0%{opacity:1;transform:rotate(var(--a)) translateY(-4px) scaleY(1)}100%{opacity:0;transform:rotate(var(--a)) translateY(-22px) scaleY(.2)}}
@keyframes modalIn{from{opacity:0;transform:translate(-50%,-48%) scale(.97)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}
@keyframes cmdIn{from{opacity:0;transform:translateX(-50%) translateY(-6px) scale(.98)}to{opacity:1;transform:translateX(-50%) scale(1)}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes menuIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
@keyframes drain{from{transform:scaleX(1)}to{transform:scaleX(0)}}
@keyframes blink{0%{opacity:1}50%{opacity:0}}
