:root{--bg:#f4f5f2;--card:#fff;--ink:#1d2421;--mute:#5f6b66;--line:#e1e5e0;--accent:#1f6f4a;--accent2:#e8f3ec;--warn:#b45309;--warn2:#fef3c7;--bad:#b42318;--bad2:#fee4e2;--side:#17201c;--info:#1d4ed8;--info2:#e0ecff}
/* shortcut: tap tokens live here until the design-system token file lands; move them then */
:root{--target-min:32px;--target-gap:8px;--control-pad-y:8px;--tabbar-h:56px}
@media (pointer:coarse){:root{--target-min:44px;--control-pad-y:10px}}
*{box-sizing:border-box}html,body{margin:0}body{font:15px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Roboto,sans-serif;color:var(--ink);background:var(--bg)}
a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}
.layout{display:grid;grid-template-columns:232px 1fr;min-height:100vh}
.side{background:var(--side);color:#cfd8d3;padding:18px 14px;position:sticky;top:0;height:100vh;overflow:auto}
.brand{display:flex;gap:10px;align-items:center;margin-bottom:18px}.logo{width:34px;height:34px;border-radius:8px;background:var(--accent);display:grid;place-items:center;color:#fff;font-weight:800}
.brand b{color:#fff;display:block;font-size:15px}.brand small{color:#8fa39a;font-size:11.5px}
.nav a{display:flex;justify-content:space-between;align-items:center;min-height:var(--target-min);color:#cfd8d3;padding:8px 10px;border-radius:8px;margin:2px 0;font-size:14px}
.nav a:hover{background:#24302b;text-decoration:none}.nav a.on{background:#2b3a33;color:#fff;font-weight:600}.nav hr{border:0;border-top:1px solid #2b3a33;margin:8px 0}
.pill{background:var(--warn);color:#fff;border-radius:99px;padding:0 8px;font-size:12px;font-weight:700}
.side .co{margin-top:20px;border-top:1px solid #2b3a33;padding-top:14px;font-size:12.5px;color:#8fa39a}
.side .co label{color:#8fa39a}.side select,.side button{width:100%;min-height:var(--target-min);margin-top:var(--target-gap);padding:6px;border-radius:6px;border:1px solid #33443c;background:#22302a;color:#e6ece9;font:inherit;font-size:13px}
main{padding:22px 28px 60px;max-width:1240px;min-width:0}
.top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap;margin-bottom:16px}
h1{font-size:24px;margin:0}h2{font-size:17px;margin:0 0 10px}h3{font-size:15px;margin:0 0 6px}
.sub{color:var(--mute);margin:2px 0 0;font-size:14px}
.grid{display:grid;gap:14px}.g4{grid-template-columns:repeat(4,1fr)}.g3{grid-template-columns:repeat(3,1fr)}.g2{grid-template-columns:repeat(2,1fr)}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px}
/* #16: a wide table scrolls inside its card instead of widening the page (main also needs min-width:0) */
.card:has(>table){overflow-x:auto}
.kpi .n{font-size:28px;font-weight:750;line-height:1.1;margin-top:4px}.kpi .l{color:var(--mute);font-size:12.5px;text-transform:uppercase;letter-spacing:.04em;font-weight:650}
.kpi .d{color:var(--mute);font-size:13px;margin-top:4px}
table{width:100%;border-collapse:collapse;font-size:14px}th{text-align:left;color:var(--mute);font-weight:650;font-size:12px;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--line);padding:6px 8px}
td{border-bottom:1px solid var(--line);padding:8px;vertical-align:top}tr:last-child td{border-bottom:0}.num{text-align:right;font-variant-numeric:tabular-nums}
.badge{display:inline-block;font-size:11.5px;font-weight:700;border-radius:99px;padding:1px 9px;background:#eef0ee;color:#3e4a45;white-space:nowrap}
.b-pending{background:var(--warn2);color:var(--warn)}.b-sent{background:var(--accent2);color:var(--accent)}.b-rejected,.b-failed{background:var(--bad2);color:var(--bad)}.b-unknown{background:var(--warn2);color:var(--warn)}.b-sending{background:#eef0ee;color:#3e4a45}.b-info{background:var(--info2);color:var(--info)}
.b-offline{background:#f1f0ff;color:#5b3fd1}.b-llm{background:var(--accent2);color:var(--accent)}
.flash{padding:10px 14px;border-radius:10px;margin-bottom:14px;background:var(--accent2);border:1px solid #bfe0cc}.flash-x{float:right;min-width:44px;min-height:44px;margin:-10px -14px -10px 8px;border:0;background:none;font-size:20px;color:inherit;cursor:pointer}
a.kpi{display:block;color:inherit;text-decoration:none}.more>summary{min-height:44px;display:flex;align-items:center}.flash.err{background:var(--bad2);border-color:#f7c3bd;color:var(--bad)}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:var(--target-min);border:1px solid var(--line);background:#fff;color:var(--ink);padding:var(--control-pad-y) 14px;border-radius:8px;font:inherit;font-weight:600;cursor:pointer;font-size:14px}
.btn:hover{background:#f2f4f1;text-decoration:none}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{background:#185a3c}
.btn.danger{color:var(--bad);border-color:#f2c1bb}.btn.danger.solid{background:var(--bad);border-color:var(--bad);color:#fff}.btn.danger.solid:hover{background:#912018}.btn.sm{padding:4px 10px;font-size:13px}
.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
label{display:block;font-size:13px;font-weight:600;color:#3e4a45;margin:8px 0 3px}
input,select,textarea{width:100%;min-height:var(--target-min);padding:var(--control-pad-y) 10px;border:1px solid #cdd3cd;border-radius:8px;font:inherit;background:#fff}
select{min-height:44px;appearance:none;-webkit-appearance:none;padding-right:36px;background:#fff url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2712%27 height=%2712%27 viewBox=%270 0 12 12%27%3E%3Cpath d=%27M2.5 4.5 6 8l3.5-3.5%27 fill=%27none%27 stroke=%27%235f6b66%27 stroke-width=%271.6%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27/%3E%3C/svg%3E") no-repeat right 12px center/12px 12px}  /* #387: a select is a tap target even with a mouse (support design M3); #477: chevron inset 12px */
.side select{appearance:auto;-webkit-appearance:auto}  /* #477: the sidebar role switcher keeps the native control */
input[type=radio]{width:auto;min-height:0}  /* the 44px target is the label around it */
textarea{min-height:120px;resize:vertical}textarea.body{min-height:320px;field-sizing:content;max-height:70vh;font-size:14.5px;line-height:1.55}
.f2{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}.f3{display:grid;grid-template-columns:repeat(3,1fr);gap:0 12px}
.flags{margin:10px 0;padding:0;list-style:none}.flags li{background:var(--warn2);color:#7c3d06;border-radius:8px;padding:6px 10px;margin:5px 0;font-size:13.5px}
.flags li.off{background:#f1f0ff;color:#4a32b0}
.msg{white-space:pre-wrap;background:#fafbf9;border:1px solid var(--line);border-radius:10px;padding:14px;font-size:14.5px}
/* Approval rows (#6) and flag levels (#11): a check and a note differ by icon and words, not only by color. */
.drow{display:block;min-height:44px;padding:12px 8px;color:var(--ink);border-bottom:1px solid var(--line);border-radius:8px}.list .drow:last-child{border-bottom:0}
.drow:hover{background:#f7f8f6;text-decoration:none}.drow:focus-visible{outline:3px solid var(--ink);outline-offset:-3px}
.drow .l1{display:flex;justify-content:space-between;gap:10px}.drow .meta{color:var(--mute);font-size:13px;white-space:nowrap}
.drow .badges{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.drow .badge,.fcheck,.fnotes,.rchecks{font-size:13px}
.drow .attr{display:block;color:var(--mute);font-size:13px;margin-top:6px}.attr{overflow-wrap:anywhere}
.dgrid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);grid-template-rows:auto 1fr;gap:14px;align-items:start}
.dflags{grid-column:1}.dside{grid-column:2;grid-row:1/3;display:grid;gap:14px}.dmain{grid-column:1}.dside:first-child+.dmain{grid-row:1/3}
.daudit summary{cursor:pointer;min-height:44px;display:flex;align-items:center;gap:6px}
.changes{margin-top:16px}.changes>input{position:absolute;opacity:0;width:1px;height:1px}
.changes>label{display:inline-flex;align-items:center;min-height:44px;padding:0 14px;margin:0 4px 8px 0;border:1px solid var(--line);border-radius:8px;cursor:pointer;font-size:14px}
.changes>input:checked+label{background:var(--accent2);color:var(--accent);border-color:#bfe0cc;font-weight:700}.changes>input:focus-visible+label{outline:3px solid var(--ink);outline-offset:2px}
.cv{display:none}#cv-ai:checked~.cv-ai,#cv-ch:checked~.cv-ch,#cv-now:checked~.cv-now{display:block}.msg{overflow-wrap:anywhere}
del{text-decoration:line-through;color:var(--bad);background:var(--bad2)}ins{text-decoration:underline;text-decoration-thickness:2px;color:var(--ink);background:var(--accent2)}del+ins{margin-left:2px}
.narrow-only{display:none}
.drow .prev{display:block;width:0;min-width:100%;color:var(--mute);font-size:14px;margin-top:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.b-check{background:#fef3f2;color:var(--bad);border:1.5px solid var(--bad);font-weight:800}.b-tpl{background:#fff;border:1px solid #9aa59f}.b-note{background:#eef0ee;color:#3e4a45}
.fcheck{border:2px solid var(--bad);background:#fef3f2;border-radius:10px;padding:10px 14px;margin:10px 0}.fcheck h3{color:var(--bad);margin:0 0 4px;font-size:15px}
.fcheck ul,.fnotes ul,.rchecks ul{margin:0;padding-left:18px}.fcheck li{color:#7a1a12;margin:3px 0}.fnotes ul,.rchecks ul{list-style:none;padding:0}
.fnotes{border:1px solid var(--line);background:#fafbf9;border-radius:10px;padding:10px 14px;margin:10px 0}.fnotes h3,.rchecks h3{margin:0 0 4px;font-size:15px}.fnotes li,.rchecks li{margin:3px 0}
.rchecks{margin:10px 0}.rc-flag{color:var(--bad)}.rc-pass{font-weight:650}
.tabs{display:flex;gap:var(--target-gap);margin-bottom:12px;flex-wrap:wrap}.tabs a{display:inline-flex;align-items:center;min-height:var(--target-min);padding:6px 12px;border-radius:99px;border:1px solid var(--line);background:#fff;color:var(--ink);font-size:14px}.tabs a.on{background:var(--accent2);color:var(--accent);border-color:#bfe0cc;font-weight:700}
.formula{font-size:12.5px;color:var(--mute);margin-top:6px}
.bar{height:8px;background:#eef0ee;border-radius:99px;overflow:hidden}.bar i{display:block;height:100%;background:var(--accent)}
.mute{color:var(--mute)}.small{font-size:13px}.right{text-align:right}
.guard{border-left:4px solid var(--accent);background:var(--accent2);padding:10px 14px;border-radius:8px;font-size:13.5px}
.agentcard h3{display:flex;justify-content:space-between;align-items:center}
details summary{cursor:pointer;color:var(--mute);font-size:13px;line-height:20px;padding-block:calc((var(--target-min) - 20px) / 2)}
.menu{display:none}
.mtop,.tabbar{display:none}
.morelist{padding:4px 16px}.morelist a{display:flex;align-items:center;gap:12px;min-height:48px;color:var(--ink);border-bottom:1px solid var(--line)}.morelist a:last-child{border-bottom:0}.morelist button{margin:var(--target-gap) 0}
@media (pointer:coarse){input,select,textarea{font-size:16px}.nav a{margin:var(--target-gap) 0}td a{display:inline-flex;align-items:center;min-height:var(--target-min)}}
@media (max-width:900px){.today-review{display:none}.dgrid{display:flex;flex-direction:column;align-items:stretch}.dside{display:contents}.daudit,.dguard{order:1}.wide-only{display:none}.narrow-only{display:block}
.layout{grid-template-columns:1fr;grid-template-rows:auto 1fr}.side{display:none}
.mtop{display:flex;justify-content:space-between;align-items:center;gap:10px;height:48px;padding:0 14px;background:var(--side);color:#fff;position:sticky;top:0;z-index:10}.mtop small{color:#8fa39a;font-size:12.5px}
.tabbar{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;position:fixed;left:0;right:0;bottom:0;z-index:20;padding-bottom:env(safe-area-inset-bottom);background:#fff;border-top:1px solid var(--line)}
.tabbar a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:var(--tabbar-h);border-top:3px solid transparent;color:var(--mute);font-size:12.5px;font-weight:600}.tabbar a:hover{text-decoration:none}
.tabbar a[aria-current=page]{color:var(--ink);font-weight:800;border-top-color:var(--ink)}.tabbar .ti{position:relative;display:block;height:24px}.tabbar .pill{position:absolute;top:-6px;left:14px;line-height:18px}
body:has(:is(input:not([type=checkbox],[type=radio],[type=button],[type=submit],[type=range]),textarea,select):focus) .tabbar{display:none}
.split{grid-template-columns:1fr!important}main{padding:14px 14px calc(var(--tabbar-h) + env(safe-area-inset-bottom) + 16px)}.g4,.g3,.g2{grid-template-columns:1fr 1fr}.f2,.f3{grid-template-columns:1fr}td{overflow-wrap:anywhere}}
@media (max-width:560px){.g2.tiles{grid-template-columns:1fr 1fr}.tiles .kpi .n{font-size:22px}.g4,.g3,.g2{grid-template-columns:1fr}.kpi .n{font-size:24px}h1{font-size:21px}table{font-size:13px}th{padding-inline:4px}.hide-sm{display:none}}

.notice{background:var(--warn2);border:1px solid #f5d38a;color:#5c4400;border-radius:8px;padding:8px 12px;margin-bottom:14px;font-size:13px;line-height:1.45}

.notice a{display:inline-block;min-height:var(--target-min);line-height:var(--target-min)}.ai-paused a{font-weight:600;text-decoration:underline}.ai-paused a:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:3px}

/* Settings · Agents (spec B). Every state reads without color: badges carry an icon and words, locked rows the word "Locked". */
.cfg{max-width:720px}.cfg .btn{min-height:44px;display:inline-flex;align-items:center}.cfg .btn.link:not(.back){border:0;background:none;color:var(--accent);padding:0 4px;text-decoration:underline;font-weight:600}  /* #477: .back links keep the bordered back button */
.cfg .sec{font-size:17px;font-weight:750;margin:22px 0 6px}.cfg .item{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin:8px 0}
.cfg .lbl{font-weight:650}.cfg .exp{font-size:13.5px;color:var(--mute);margin:2px 0 8px}.cfg .note{font-size:13px;color:var(--mute);margin:6px 0 0}
.cfg .switchrow{display:flex;justify-content:space-between;align-items:center;gap:10px;min-height:44px}.cfg .switchrow label{margin:0;font-size:15px;color:var(--ink)}
.cfg input[role=switch]{width:44px;height:28px;accent-color:var(--ink);margin:0}.cfg .st{font-weight:650;font-size:14px;display:inline-block;width:28px}.cfg input[role=switch]:checked+.st::before{content:"On"}.cfg input[role=switch]:not(:checked)+.st::before{content:"Off"}
.cfg input[type=text],.cfg textarea{min-height:44px}.cfg textarea{min-height:88px}
.chg{display:inline-flex;gap:4px;align-items:center;font-size:12.5px;font-weight:700;border:1px solid var(--warn);color:var(--warn);border-radius:99px;padding:1px 9px;white-space:nowrap}
.chgline{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:13.5px;margin-top:8px}
.fielderr{color:var(--bad);font-size:13.5px;font-weight:600;margin-top:4px}
.locked{background:#fff;border:1px solid var(--ink);border-radius:12px;padding:10px 14px;margin:8px 0;font-size:14px}.locked .how{font-size:13.5px;margin-top:4px}
.locked.human{border-width:2px;border-style:dashed}
.locked.short .tag{float:right;margin-left:8px}.locked.short .how{color:var(--mute)}.drow .st{display:block} /* #410 agent page */
.review{border:2px solid var(--ink);border-radius:12px;background:#fff;padding:14px;margin:12px 0}
.adv{font:12px/1.5 ui-monospace,Menlo,monospace;white-space:pre-wrap;background:#fff;border:1px solid var(--line);border-radius:8px;padding:10px;user-select:text;max-height:480px;overflow:auto}
.cfg .agentrow{display:flex;justify-content:space-between;gap:10px;align-items:center;min-height:44px;color:var(--ink)}.cfg .agentrow:hover{text-decoration:none}

/* Leads view (#21 cut line). Status words carry the meaning; actions open native popover sheets (no script). */
.leads-search{max-width:560px}
/* #88: full-width cards; at >=760px three columns (who / where it stands / value + action) line up across cards.
   #89: the name is a stretched link (a.open::after covers the card) to the details page; the action sits above it. */
.jobs{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.job{position:relative;transition:border-color .12s,box-shadow .12s;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px 16px;display:grid;gap:8px 20px;grid-template-columns:minmax(0,1fr);overflow-wrap:anywhere}
.job h2{margin:0;font-size:17px;line-height:1.3}.job:hover{border-color:#aab6ae;box-shadow:0 2px 6px rgba(0,0,0,.07)}
.job:has(.open:focus-visible){outline:3px solid var(--accent);outline-offset:2px}.open{color:inherit}.open:hover{text-decoration:none}.open:focus{outline:none}
.open::after{content:"";position:absolute;inset:0;border-radius:12px}.chev{display:none}
.lead-head{display:flex;justify-content:space-between;gap:10px;align-items:baseline}
.money{font-variant-numeric:tabular-nums;font-weight:700;white-space:nowrap}
.lead-stage{margin:6px 0 0;font-size:14px}
.attn{display:inline-flex;align-items:center;gap:6px;margin:6px 0 0;padding:2px 8px;border-radius:6px;background:var(--warn2);color:#3b4245;font-size:13px;font-weight:600}.attn svg{flex:none}
.job .btn{min-height:44px}
.act{display:flex;align-items:center;gap:8px;position:relative;z-index:1}.act .money{display:none}.act .btn{flex:1}.act:not(:has(.btn)){display:none}
@media (min-width:760px){.job{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr) 210px 16px;align-items:center;padding:14px 18px}
.chev{display:block;color:var(--mute);font-size:22px;line-height:1}.job:hover .chev{color:var(--ink)}
.lead-head .money{display:none}.act{flex-direction:column;align-items:flex-end;gap:6px}.act .money{display:block;font-size:17px;text-align:right}.act .btn{flex:none}.act:not(:has(.btn)){display:flex}}
/* #405 Agents list: labeled facts (Job / Does / Never); two columns on desktop (facts, waiting), no action column */
.ag-off{margin:2px 0 0;color:var(--mute)}
.ag-facts{display:grid;grid-template-columns:auto minmax(0,1fr);gap:3px 12px;margin:8px 0 0;font-size:13.5px}.ag-facts dt{color:var(--mute);font-weight:600}.ag-facts dd{margin:0}
.ag-does{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:4px 6px}.ag-does li{background:#eef0ee;border-radius:6px;padding:1px 8px}
@media (min-width:760px){.ag-list .job{grid-template-columns:minmax(0,1fr) 200px 16px}}
.sheet{width:min(440px,calc(100vw - 32px));border:1px solid var(--line);border-radius:12px;padding:16px;color:var(--ink)}.sheet::backdrop{background:rgb(0 0 0/.35)}.sheet ul{padding-left:18px;margin:8px 0}
/* Jobs page (#21, D3; #88): chips and the six-step timeline. Done = 8px solid green, current = 14px solid gray, not reached = 4px dashed;
   the stage line and the bar's accessible name carry the meaning, never the color alone. */
.chips{display:flex;flex-wrap:wrap;gap:var(--target-gap);margin:12px 0}.chips a{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 12px;border:1px solid var(--line);border-radius:22px;background:#fff;color:var(--ink);font-size:14px}
.chips a[aria-current=page]{background:var(--accent2);color:var(--accent);border-color:#bfe0cc;font-weight:700}.chips .n{font-variant-numeric:tabular-nums;opacity:.8}
.tl{display:flex;gap:4px;align-items:center;min-height:14px;max-width:280px}.tl i{flex:1;height:0;border-top:4px dashed #c3cbc6}
.tl i.done{border-top:8px solid #3a9d63;border-radius:2px}.tl i.now{border-top:14px solid #6b7280;border-radius:3px}.job.closed{opacity:.85}
/* Checker block (Spec A5.1): same box in every state; the flag is bold and bordered, the all-clear is plain body text */
.chk{min-height:12rem}.chk h3{margin:0 0 6px;font-size:15px}.b-outline{background:#fff;border:1px solid var(--ink);color:var(--ink)}
.chk-flag{font-weight:800;color:var(--bad);border:2px solid var(--bad);border-radius:8px;padding:8px 12px;margin:8px 0}
.chk-grey,.chk-grey .chk-flag,.chk-grey .rc-flag{color:var(--mute);border-color:var(--line)}
.spin{display:inline-block;width:.9em;height:.9em;border:2px solid var(--line);border-top-color:var(--ink);border-radius:50%;animation:spin 1s linear infinite;vertical-align:-1px}
@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spin{animation:none}}
.tip summary{display:inline-flex;align-items:center;gap:.3em;min-height:var(--target-min);cursor:pointer;font-size:13px;font-weight:600}.side .tip summary{color:#cfd8d3}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.dflags:not(:has(li,.guard)){display:none}
/* #10: on phones the action bar stays put when a checker result lands above it (A5.1) */
@media (max-width:900px){.acts{position:sticky;bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom));background:var(--card);padding:8px 0;z-index:5}}
/* Job details (#89): two columns on desktop; on phones one column in the order Where it stands, Contact, History,
   The fence, Other actions. Step colors match the card timeline (#88). */
.jd-back{display:inline-flex;align-items:center;min-height:44px;color:var(--accent);font-weight:600}
.jd-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;flex-wrap:wrap;margin:4px 0 14px}.jd h1:focus{outline:none}
.jd-head .money{font-size:24px}
.jd-3d{display:block;width:100%;height:min(60vh,360px);border:0;border-radius:0;background:#cfd8d3}.jd-tbl{overflow-x:auto}
.jd-grid{display:grid;gap:14px;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr)}.jd-col{display:grid;gap:14px;align-content:start}
.jd .card h2{font-size:15px;margin:0 0 10px}
.jd-tl{max-width:none;margin:4px 0 2px}
.jd-next{display:flex;align-items:center;gap:12px;flex-wrap:wrap;border-top:1px solid var(--line);margin-top:12px;padding-top:12px}
.jd-next .lbl{color:var(--mute);font-size:14px;min-width:3.5em}.jd-next .what{flex:1;min-width:10em}
/* #476 icon button, label as a tooltip on hover and keyboard focus (aria-label carries it for screen readers and touch) */
.qq{width:1%;text-align:right;white-space:nowrap}
.iconbtn{position:relative;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink)}
.iconbtn:hover{background:#f2f4f1;text-decoration:none}
.iconbtn .tip{position:absolute;bottom:calc(100% + 6px);right:0;white-space:nowrap;background:var(--ink);color:#fff;font-size:12px;font-weight:600;padding:3px 8px;border-radius:6px;opacity:0;pointer-events:none;transition:opacity .12s;z-index:5}
.iconbtn:hover .tip,.iconbtn:focus-visible .tip{opacity:1}
.jd-dl{display:grid;grid-template-columns:max-content 1fr;gap:6px 14px;margin:0;font-size:14px}.jd-dl dt{color:var(--mute)}.jd-dl dd{margin:0;overflow-wrap:anywhere}.jd-dl a{color:var(--accent);font-weight:600}
.jd-hist{list-style:none;margin:0;padding:0;font-size:14px}.jd-hist li{padding:8px 0;border-top:1px solid var(--line)}.jd-hist li:first-child{border-top:0}
.jd-who{font-size:12px;font-weight:700;border-radius:4px;padding:1px 6px;margin-left:4px;white-space:nowrap}.jd-who.ai{background:var(--info2);color:var(--info)}
.jd-who.person{background:var(--accent2);color:var(--accent)}.jd-who.sent{background:#eef0ee;color:var(--ink)}.jd-who.unsent{background:var(--warn2);color:var(--warn)}
@media (max-width:899px){.jd-grid{display:flex;flex-direction:column}.jd-col{display:contents}#s-stand{order:1}#s-contact{order:2}#s-hist{order:3}#s-fence{order:4}#s-other{order:5}
  .jd .btn{min-height:44px}.jd-dl a{display:inline-flex;align-items:center;min-height:44px}.iconbtn{width:44px;height:44px}}
/* #92 automatic sending: dotted blue = sent automatically in owner-approved wording (dashed = AI draft, solid = a person approved the message) */
.b-auto{background:#fff;border:2px dotted #1e40af;color:#1e40af}
.autobar{border:2px dotted #1e40af;background:#eef4ff;border-radius:10px;padding:10px 14px;margin:8px 0 14px;color:var(--ink)}.autobar p{margin:2px 0}.autobar .row{margin-top:8px;gap:8px}.autobar .btn{min-height:44px}
.fcard{border:2px dotted #1e40af;border-radius:10px;padding:10px 14px;margin:8px 0}.fcard .l1{display:flex;justify-content:space-between;gap:10px}.fcard .num{font-variant-numeric:tabular-nums;white-space:nowrap}.fcard p{margin:4px 0}.fcard .prev2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;white-space:pre-line}.fcard .row{gap:8px}.fcard .btn{min-height:44px}
@media(max-width:600px){.fcard .row>*{flex:1}.fcard .row .btn{width:100%}}
.autoline{border-left:2px dotted #1e40af;padding-left:8px;margin:4px 0}
@media(max-width:600px){.autobar .row .btn{flex:1}}
/* Activity → Timeline (#212), Cameron's #209 spec. The who and tl tokens below start the design-system token file. Only the canvas pans. */
:root{--who-ai:#1d4ed8;--who-ai-bg:#e0ecff;--who-person:#1f6f4a;--who-person-bg:#e8f3ec;--who-auto:#a21caf;--who-auto-bg:#fbe8fd;--who-out:#475569;--who-out-bg:#eef1f5;
--tl-label-w:212px;--tl-lane-h:60px;--tl-hit:44px;--tl-mark:16px;--tl-axis-h:32px;--tl-panel-w:380px}
.tl-wrap [hidden]{display:none!important}.tl-wrap{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;align-items:start}.tl-wrap.with-panel{grid-template-columns:minmax(0,1fr) var(--tl-panel-w)}
.tlv{padding:0;overflow:hidden;min-width:0}
.tl-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:10px 12px;border-bottom:1px solid var(--line)}.tl-grow{flex:1 1 auto}
.tl-win{font-weight:700;font-size:14px;min-width:0}.tl-win small{display:block;font-weight:500;color:var(--mute);font-size:12.5px}
.tl-zoom{display:flex;gap:4px}.tl-ic{padding:0;width:var(--target-min);font-size:20px;line-height:1}.tl-bar .btn[disabled]{opacity:.45;cursor:default}
.tl-bar .btn[aria-pressed=true]{background:var(--accent2);color:var(--accent);border-color:#bfe0cc;font-weight:700}.tl-waitbtn{background:var(--warn2);border-color:#f5d38a;color:#7c3d06}
.tl-date input{width:auto;min-height:var(--target-min);padding:4px 8px;font-size:14px}
.tl-hint{display:flex;gap:8px;align-items:center;justify-content:space-between;padding:4px 4px 4px 12px;font-size:13px;color:var(--mute);border-bottom:1px solid var(--line);background:#fafbf9}
.tl-filters{padding:12px 14px;border-bottom:1px solid var(--line);background:#fafbf9}.tl-filters fieldset{border:0;padding:0;margin:0 0 10px}.tl-filters legend{font-size:13px;font-weight:700;padding:0;margin-bottom:4px}
.tl-q{display:block;font-size:13px;font-weight:700;margin-bottom:10px}.tl-q input{font-size:16px;font-weight:400;margin-top:4px}
.tl-cb{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 12px 0 8px;margin:0 6px 6px 0;border:1px solid var(--line);border-radius:8px;background:#fff;font-size:14px;cursor:pointer}.tl-cb input{width:auto;min-height:0}
.tl-fgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px}.tl-factions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}
.tl-chips{display:flex;flex-wrap:wrap;gap:6px;padding:8px 12px;border-bottom:1px solid var(--line)}
.tl-chip{display:inline-flex;align-items:center;gap:6px;min-height:var(--target-min);padding:2px 4px 2px 10px;border-radius:99px;border:1px solid var(--line);background:#fff;font-size:13px}
.tl-chip button{border:0;background:none;min-width:var(--target-min);min-height:var(--target-min);cursor:pointer;font-size:16px}
.tl-high{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between;padding:8px 12px;background:var(--accent2);border-bottom:1px solid #bfe0cc;font-size:14px}
.tl-note{padding:24px 16px;text-align:center;border-bottom:1px solid var(--line)}.tl-note h2{font-size:17px;margin:0 0 4px}.tl-note p{margin:0 0 12px;color:var(--mute)}.tl-note .btn{margin:0 4px 4px}
.tl-note.err{border:1px solid #f7c3bd;background:var(--bad2);color:var(--bad);border-radius:10px;margin:12px}.tl-note.err p{color:#7a1a12}.tl-note.warn{background:var(--warn2);color:#7c3d06;padding:10px 14px;text-align:left}
.tl-canvas{position:relative;touch-action:pan-y;user-select:none;-webkit-user-select:none;cursor:grab;overflow:hidden}.tl-canvas.dragging{cursor:grabbing}
.tl-canvas:focus-visible{outline:3px solid var(--ink);outline-offset:-3px}.tl-canvas.tl-busy::before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--accent);z-index:6}
.tl-axis{position:relative;height:var(--tl-axis-h);border-bottom:1px solid var(--line);font-size:12px;color:var(--mute);overflow:hidden}
.tl-tick{position:absolute;top:0;bottom:0;border-left:1px solid var(--line);padding:6px 0 0 4px;white-space:nowrap}.tl-tick.day{border-left:2px solid #cdd3cd;color:var(--ink);font-weight:700}
.tl-nowtag{position:absolute;top:6px;transform:translateX(-50%);background:var(--bad);color:#fff;font-size:11px;font-weight:800;border-radius:4px;padding:0 5px;white-space:nowrap}
.tl-lanes{position:relative}
.tl-lane{display:grid;grid-template-columns:var(--tl-label-w) minmax(0,1fr);border-bottom:1px solid var(--line);min-height:var(--tl-lane-h)}
.tl-lane.dim .tl-track{opacity:.32}.tl-lane.pin{background:#fbfdfb}
.tl-lab{display:flex;flex-direction:column;justify-content:center;min-width:0;padding:6px 12px;min-height:var(--tl-hit);border:0;border-right:1px solid var(--line);background:none;text-align:left;font:inherit;color:var(--ink)}
button.tl-lab{cursor:pointer}button.tl-lab:hover{background:#f7f8f6}.tl-lab:focus-visible,.tl-mk:focus-visible,.tl-cl:focus-visible,.tl-sp.hit:focus-visible,.tl-sp.auto:focus-visible{outline:3px solid var(--ink);outline-offset:-2px}
.tl-lab b{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tl-lab span{font-size:12.5px;color:var(--mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tl-lwait{font-style:normal;font-weight:700;font-size:12px;color:#7c3d06;background:var(--warn2);border-radius:4px;padding:0 6px;align-self:flex-start;white-space:nowrap}
.tl-track{position:relative;overflow:hidden;min-height:var(--tl-lane-h)}
.tl-life{position:absolute;top:50%;height:2px;background:#9aa59f;margin-top:-1px}.tl-life.open{background:repeating-linear-gradient(90deg,#9aa59f 0 6px,transparent 6px 10px)}
.tl-now{position:absolute;top:0;bottom:0;border-left:2px solid var(--bad);z-index:3;pointer-events:none}
.tl-sp{position:absolute;top:50%;transform:translateY(-50%);border-radius:4px;pointer-events:none}
.tl-sp.run{height:10px;background:var(--who-ai-bg);border:1.5px solid var(--who-ai)}.tl-sp.send{height:10px;background:var(--who-out-bg);border:1.5px solid var(--who-out)}.tl-sp.open{border-style:dashed}
.tl-sp.wait{height:14px;background:repeating-linear-gradient(135deg,var(--warn2) 0 6px,#fde3a1 6px 9px);border:1.5px solid var(--warn)}
.tl-sp.hit,.tl-sp.auto{height:var(--tl-hit);padding:0;border:0;background:none;pointer-events:auto;cursor:pointer;z-index:1}
.tl-sp.auto::before{content:"";position:absolute;left:0;right:0;top:50%;border-top:4px dashed var(--who-auto);margin-top:-2px}
.tl-splbl{position:absolute;top:calc(50% - 26px);font-size:12px;color:#7c3d06;white-space:nowrap;font-weight:600;pointer-events:none}
.tl-mk,.tl-cl{position:absolute;top:50%;min-width:var(--tl-hit);height:var(--tl-hit);transform:translate(-50%,-50%);border:0;background:none;padding:0;cursor:pointer;display:grid;place-items:center;z-index:2;border-radius:10px}
.tl-mk:hover{background:rgba(29,36,33,.06)}.tl-mk.sel{background:rgba(29,36,33,.10);outline:2px solid var(--ink)}
.tl-svg{display:inline-flex}.tl-svg svg{width:var(--tl-mark);height:var(--tl-mark);overflow:visible}
.tl-mlbl{position:absolute;top:calc(50% + 12px);transform:translateX(-50%);font-size:11.5px;white-space:nowrap;max-width:104px;overflow:hidden;text-overflow:ellipsis;pointer-events:none;background:rgba(255,255,255,.85);padding:0 3px;border-radius:3px;z-index:3}
.tl-cl i{display:inline-flex;align-items:center;gap:3px;font-style:normal;background:#fff;border:1.5px solid var(--ink);border-radius:99px;padding:1px 7px;font-size:12px;font-weight:800}
.tl-cl i .tl-svg svg{width:12px;height:12px}.tl-cl i.bad{border-color:var(--bad);color:var(--bad)}.tl-cl i.unk{border-color:var(--warn);color:#7c3d06}
.tl-who{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:700;border-radius:4px;padding:1px 7px 1px 5px;white-space:nowrap}.tl-who .tl-svg svg{width:12px;height:12px}
.tl-who.ai{background:var(--who-ai-bg);color:var(--who-ai)}.tl-who.person{background:var(--who-person-bg);color:var(--who-person)}
.tl-who.auto{background:#fff;color:var(--who-auto);outline:2px dotted var(--who-auto);outline-offset:-2px}.tl-who.outside{background:var(--who-out-bg);color:var(--who-out)}
.tl-legend{display:flex;flex-wrap:wrap;gap:6px 14px;padding:8px 12px;font-size:12.5px;color:var(--mute);border-top:1px solid var(--line)}.tl-legend>span{display:inline-flex;align-items:center;gap:6px}
.tl-skel .tl-lab b{color:transparent;background:#eef0ee;border-radius:4px;width:60%}
@media (prefers-reduced-motion:no-preference){.tl-skel .tl-track{animation:tl-sk 1.4s ease-in-out infinite;background:#f7f8f6}@keyframes tl-sk{50%{opacity:.5}}}
.tl-more{margin:10px 12px}
.tl-panel{position:sticky;top:12px;max-height:calc(100vh - 24px);overflow:auto;padding:0}
.tl-panel header{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;padding:14px 14px 10px;border-bottom:1px solid var(--line)}
.tl-panel h2{font-size:17px;margin:6px 0 2px}.tl-panel h2:focus{outline:none}.tl-panel h2:focus-visible{outline:3px solid var(--ink)}.tl-d-sub{margin:0}.tl-d-x{margin:-6px -6px 0 0}
.tl-d-body{padding:12px 14px}.tl-grab{display:none}
.tl-trust{border:1px solid var(--line);background:#fafbf9;border-radius:10px;padding:10px 12px;font-size:13.5px;margin:0 0 10px}.tl-trust a{text-decoration:underline}
.tl-sent{font-weight:700;margin:0 0 8px;overflow-wrap:anywhere}.tl-d-body h3{margin:10px 0 2px;color:var(--mute)}
.tl-chain{list-style:none;margin:4px 0 12px;padding:0}.tl-chain button{display:flex;gap:8px;align-items:center;width:100%;min-height:44px;border:0;background:none;text-align:left;padding:4px 6px;border-radius:8px;cursor:pointer;font:inherit;font-size:14px;color:var(--ink)}
.tl-chain button:hover{background:#f7f8f6}.tl-chain .cur button{background:var(--accent2)}.tl-chain button>span:nth-child(2){flex:1;min-width:0}.tl-chain small{display:block;color:var(--mute);font-size:12.5px}
.tl-chain .tl-t{color:var(--mute);font-size:12.5px;white-space:nowrap}.tl-nowrow{padding:8px 6px 8px 30px;font-size:13.5px;color:#7c3d06}.tl-nowrow.cur{background:var(--accent2);border-radius:8px}
.tl-kv{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:4px 12px;font-size:13.5px;margin:0 0 8px}.tl-kv dt{color:var(--mute)}.tl-kv dd{margin:0;overflow-wrap:anywhere;white-space:pre-wrap}
.tl-sup summary{min-height:44px;display:flex;align-items:center}.tl-links{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 0}.tl-links .btn{min-height:44px}
.tlink{display:inline-flex;align-items:center;min-height:var(--target-min);font-weight:600;margin-top:6px}
@media (pointer:coarse){.tl-bar .btn,.tl-date input{min-height:44px}.tl-ic{width:44px}}
@media (max-width:640px){:root{--tl-label-w:0px}.tl-wrap.with-panel{grid-template-columns:minmax(0,1fr)}
 .tl-lane{grid-template-columns:minmax(0,1fr)}.tl-lab{border-right:0;flex-direction:row;flex-wrap:wrap;align-items:center;gap:0 8px;padding:4px 12px;border-bottom:1px dashed #eef0ee}
 .tl-lab b{flex:0 1 auto}.tl-lab span{flex:1 1 0;min-width:0}.tl-bar{padding:8px}.tl-win{order:-1;flex:1 0 100%}.tl-grow,.tl-date{display:none}.tl-fgrid{grid-template-columns:minmax(0,1fr)}
 .tl-panel{position:fixed;left:0;right:0;bottom:0;top:auto;max-height:78vh;z-index:40;border-radius:16px 16px 0 0;border:0;box-shadow:0 -6px 24px rgba(0,0,0,.18);padding-bottom:env(safe-area-inset-bottom)}
 .tl-grab{display:block;width:40px;height:5px;border-radius:3px;background:#cdd3cd;margin:8px auto 0}
 .tl-scrim:not([hidden]){position:fixed;inset:0;background:rgba(23,32,28,.35);z-index:35}
 .tl-filters.tl-sheet{position:fixed;inset:auto 0 0 0;max-height:88vh;overflow:auto;z-index:40;border-radius:16px 16px 0 0;background:#fff;box-shadow:0 -6px 24px rgba(0,0,0,.18)}
 .tl-sheet .tl-factions{position:sticky;bottom:-12px;margin:0 -14px -12px;padding:10px 14px max(12px,env(safe-area-inset-bottom));background:#fff;border-top:1px solid var(--line)}}
/* #355 support screens: chips, status strip, actions, stacked record, phone cards, close dialog, send-once forms */
.tchip{display:inline-flex;align-items:center;gap:4px;font-size:12.5px;font-weight:700;border:1px solid var(--line);border-radius:6px;padding:1px 7px;background:#fff;white-space:nowrap}
.tchip.p1{border:2px solid var(--bad);color:var(--bad)}.tchip.wait{border:2px solid var(--warn);color:#7c3d06;background:var(--warn2)}
.tstrip{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:8px 0 12px}
.tacts{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-end;margin:0 0 14px}.tacts .btn,.tacts select{min-height:44px}
.tpri{display:flex;flex-direction:column}.tpri span{display:flex;gap:6px}
.trec{list-style:none;margin:0;padding:0}.trec li{display:flex;gap:12px;padding:4px 0;border-top:1px solid var(--line)}.trec li>.mute{flex:0 0 110px}
.tcard{display:block;background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 14px;color:var(--ink);min-height:44px;margin-bottom:8px}.tcard:hover{text-decoration:none;border-color:#b9c3bd}
.tcard .l1{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-bottom:4px}.tcard .ago{margin-left:auto;font-size:13px;color:var(--mute);white-space:nowrap}
.tcard .sum{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.tcard.closed{opacity:.8}
dialog{width:min(440px,calc(100vw - 32px));border:1px solid var(--line);border-radius:12px;padding:16px;color:var(--ink)}dialog::backdrop{background:rgb(0 0 0/.35)}
.mt-r{display:flex;gap:8px;align-items:center;margin:0}.mt-out{min-height:44px;background:none;border:1px solid #33443c;color:#e6ece9;border-radius:6px;padding:0 10px;font:inherit;font-size:13px}
.tfail{scroll-margin-top:64px}.tsend .busy,.tsend[data-busy] .idle{display:none}.tsend[data-busy] .busy{display:inline}
@media (max-width:900px){.tacts{flex-direction:column;align-items:stretch}.tacts>form>.btn,.tacts>.btn{width:100%}.tpri select{flex:1}.trec li{flex-direction:column;gap:0}.trec li>.mute{flex:none}}

/* Settings → Feature flags (#310, staging only). Every state reads in words; color only repeats it. */
.stagetag{display:inline-block;font-size:11.5px;font-weight:800;letter-spacing:.05em;border:1.5px solid var(--info);color:var(--info);background:var(--info2);border-radius:5px;padding:1px 7px;vertical-align:3px;margin-left:6px;text-transform:uppercase}
.card.entry{border:2px solid var(--info);background:#f6f9ff}
.ff-page{max-width:760px}.ff-page .summary{font-size:14px;margin:12px 0 4px}
.hostlock{background:#fff;border:1px solid var(--ink);border-radius:12px;padding:10px 14px;margin:8px 0 4px;font-size:13.5px}
.bulk{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:4px 0 6px}.bulk .btn{min-height:44px}
.btn[aria-disabled=true]{opacity:.5;cursor:not-allowed}
.cfg .item.ff{padding:12px 14px 10px}.ff form{margin:0}
.ff-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.ff-head .lbl{font-size:15.5px}
.ff-key{display:block;font:12.5px ui-monospace,Menlo,monospace;color:var(--mute);word-break:break-all;margin-top:1px}
.ff-ctl{display:flex;align-items:center;gap:8px;min-height:44px;flex:none}
.ff-ctl select{min-height:44px;width:auto;max-width:260px;font:inherit;font-size:14px;padding:6px 36px 6px 8px;border:1px solid var(--line);border-radius:8px}
.ff-vals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--line);border-radius:10px;margin:8px 0 6px;font-size:13.5px;overflow:hidden}
.ff-vals>div{padding:6px 10px;border-right:1px solid var(--line);min-width:0}.ff-vals>div:last-child{border-right:0}
.ff-vals dt{color:var(--mute);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}
.ff-vals dd{margin:0;font-weight:600;overflow-wrap:anywhere}.ff-vals .now{background:#f7f8f6}.ff-vals .now dd{font-weight:800}
.ff-vals .by{display:block;font-weight:400;color:var(--mute);font-size:12.5px}
.ff-unl{font-size:13.5px;margin:4px 0 0}.ff-unl a{display:inline-flex;align-items:center;min-height:44px}.ff-unl .gone{color:var(--mute)}
.ff-foot{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px 12px;font-size:13px;margin-top:2px}.ff-foot a{display:inline-flex;align-items:center;min-height:44px}
.ff-msg{font-size:13.5px;margin-top:6px;border-radius:8px;padding:6px 10px}.ff-msg:empty{display:none}
.ff-msg.ok{background:var(--accent2);border:1px solid #bfe0cc}.ff-msg.err{background:var(--bad2);border:1px solid #f7c3bd;color:var(--bad)}.ff-msg.busy{background:#fafbf9;border:1px solid var(--line)}
.ff-dep{font-size:13px;color:var(--warn);margin:4px 0 0}
.ff-page .log .li{padding:8px 0;border-bottom:1px solid var(--line);font-size:13.5px}.ff-page .log .li:last-child{border-bottom:0}.ff-page .log .who{color:var(--mute);font-size:12.5px}
.ff-page dialog{border:0;border-radius:14px;padding:18px 18px 14px;max-width:min(480px,calc(100vw - 24px));box-shadow:0 10px 40px rgba(0,0,0,.25)}
.ff-page dialog::backdrop{background:rgba(20,28,24,.45)}.ff-page dialog h2{margin:0 0 6px}.ff-page dialog ul{padding-left:18px;margin:8px 0;font-size:14px}.ff-page dialog p{font-size:14px;margin:6px 0}
.ff-page dialog .row{justify-content:flex-end;margin-top:12px}
@media (max-width:600px){.ff-head.sel{flex-direction:column;gap:2px}.ff-head.sel .ff-ctl{align-self:stretch;margin-top:6px}.ff-ctl select{flex:1;max-width:none}.bulk .btn{flex:1 1 140px}.ff-vals{font-size:13px}.ff-vals>div{padding:6px 8px}}
/* #324: autonomy tiers, name · short label with the subtitle always under it (models-and-autonomy design) */
.tier{display:inline-block}.tier .ds{display:block;font-size:13.5px;color:var(--mute)}
.ladder{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.ladder li{border:1px solid var(--line);border-radius:12px;padding:10px 12px}.ladder li.def{border:2px solid var(--ink)}
.ladder .deftag{display:inline-block;font-size:11.5px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;background:var(--ink);color:#fff;border-radius:5px;padding:0 6px;margin-bottom:4px}
.axis{display:flex;justify-content:space-between;gap:8px;font-size:12.5px;color:var(--mute);margin:6px 2px 0}
@media (max-width:600px){.ladder{grid-template-columns:1fr}}
/* #320 Work tab (docs/product/agent-pages/mockups/agent.html?tab=work). Words carry every outcome; color repeats it. */
.seeall{display:inline-flex;align-items:center;min-height:44px;font-weight:700;font-size:14px}
.wfilt{border:1px solid var(--line);border-radius:12px;background:#fff;margin-bottom:12px}
.wfilt>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;min-height:44px;padding:0 14px;font-weight:700;font-size:14.5px}
.wfilt>summary::-webkit-details-marker{display:none}.wfilt>summary::after{content:"▾";color:var(--mute)}.wfilt[open]>summary::after{content:"▴"}
.wfilt form{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr) auto;gap:10px;align-items:end;padding:0 14px 14px}
.wfilt label{font-size:13px;color:var(--mute);margin:0 0 4px;display:block}.wfilt select,.wfilt input{min-height:44px;width:100%}
.wfilt .acts2{display:flex;gap:8px}.wfilt .acts2 .btn{min-height:44px}
.wsum{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 12px;align-items:center;font-size:13.5px;color:var(--mute);margin:0 0 8px}
.wlist{list-style:none;margin:0;padding:0}.wunit{border:1px solid var(--line);border-radius:12px;background:#fff;margin-bottom:10px;overflow:hidden}
.wrun{padding:10px 14px;background:#f7f8f6;border-bottom:1px solid var(--line);font-size:14px}.wrun:last-child{border-bottom:0}
.wrun .t{font-weight:700}.wrun .m{color:var(--mute);font-size:13px;margin-top:2px;overflow-wrap:anywhere}.wrun.bad{background:var(--bad2)}
.wd{display:flex;flex-direction:column;gap:2px;padding:10px 14px;border-bottom:1px solid var(--line);color:var(--ink);min-height:44px;font-size:14px;overflow-wrap:anywhere}
.wd:last-child{border-bottom:0}a.wd:hover{background:#fafbf9;text-decoration:none}a.wd:focus-visible{outline:3px solid var(--ink);outline-offset:-3px}
.wd .m{color:var(--mute);font-size:13px}.wd .who{font-size:13px}.person{font-weight:700}
.oc{display:inline-block;font-size:12px;font-weight:800;border-radius:99px;padding:1px 9px;border:1px solid;white-space:nowrap;margin-right:4px}
.oc-sent{color:#174d34;border-color:#1f6f4a;background:#eef7f1}.oc-edit{color:#174d34;border-color:#1f6f4a;background:#fff}
.oc-rej{color:#7a1d14;border-color:var(--bad);background:var(--bad2)}.oc-auto{color:#1e3a8a;border-color:var(--info);background:var(--info2)}
.oc-held{color:#7a3a06;border-color:var(--warn);background:var(--warn2)}.oc-fail{color:#7a1d14;border-color:var(--bad);background:#fff;border-style:dashed}
.oc-wait{color:#3e4a45;border-color:#6b7280;background:#fff;border-style:dashed}.oc-info{color:#3e4a45;border-color:#c3cbc6;background:#f4f5f2}
.pager{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:6px}.pager .btn{min-height:44px}
.pager .btn[aria-disabled=true]{opacity:.45;pointer-events:none}
@media (max-width:760px){.wfilt form{grid-template-columns:1fr 1fr}.wfilt .f-out,.wfilt .acts2{grid-column:1/-1}.wfilt .acts2 .btn{flex:1;justify-content:center}}
/* #429 Changes tab: labeled cards; the owner's open the setting, which the Settings tab outlines (:target) */
.chg-list{display:grid;gap:8px}.chg-row{display:flex;justify-content:space-between;align-items:center;gap:10px;border:1px solid var(--line);border-radius:10px;padding:10px 14px;color:var(--ink);font-size:13.5px}
a.chg-row:hover{border-color:#aab6ae;text-decoration:none;box-shadow:0 2px 6px rgba(0,0,0,.07)}a.chg-row:focus-visible{outline:3px solid var(--ink);outline-offset:2px}a.chg-row .chev{color:var(--mute);font-size:22px}
.chg-dl{display:grid;grid-template-columns:auto 1fr;gap:2px 14px;margin:0;min-width:0}.chg-dl dt{color:var(--mute);font-weight:600}.chg-dl dd{margin:0;overflow-wrap:anywhere}
.item:has(:target),.item:target{outline:3px solid var(--accent);outline-offset:2px}.item :target{scroll-margin-top:140px}  /* clear the sticky header */
/* #325: "Needs a person: <category>" (dark, per the approved design) */
.b-np{background:var(--ink);color:#fff}.np-why{margin:0 0 12px;font-size:14px;color:var(--mute)}
.alog{list-style:none;margin:0;padding:0 16px}.alog li{padding:12px 0;border-bottom:1px solid var(--line)}.alog li:last-child{border-bottom:0}.alog .aw,.alog .ad,.alog .num-t{font-size:13px;color:var(--mute);margin-top:4px}.alog .aw b{font-weight:600}.alog .ad{overflow-wrap:anywhere}.alog .num-t{font-variant-numeric:tabular-nums}
/* #492 Activity log: one labeled "what" line, then the details; the send receipt behind a disclosure */
.what1{margin-top:2px}.what1 .k{color:var(--mute)}
.sendd{margin-top:4px}.sendd summary{cursor:pointer;color:var(--accent);font-size:13px;display:inline-flex;align-items:center;min-height:28px}
.sendd .jd-dl{font-size:13px;margin:4px 0 2px;gap:2px 12px}
.why1{color:var(--bad)}.empty{color:var(--mute);padding:18px 4px;margin:0}
@media (max-width:900px){.sendd summary{min-height:44px}}
/* #107 Undo toast: the shipped .flash (#7/#55: in the page, no timeout, 44 px close) with Undo and a sub-line.
   Neutral grey while nothing has gone (the hold, going out, undone); green only once the adapter accepted (Sent). */
.tst{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;outline-offset:3px;padding-right:52px;background:#eef0ee;border-color:#d3d9d3}
.tst.ok{background:var(--accent2);border-color:#bfe0cc}
.tst .flash-x{position:absolute;top:0;right:0;float:none;margin:0}
.tst .tbody{flex:1 1 320px;min-width:0}.tst .tbody b{display:block}
.tst .tsub{display:block;font-size:14px;margin-top:2px;color:#3e4a45}
.tst.err{background:var(--bad2);border-color:#f7c3bd}.tst.err .tsub{color:#7a1a12}
.tst .tacts{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.tst .tl{display:inline-flex;align-items:center;min-height:44px;font-weight:600;text-decoration:underline;color:inherit}
/* Undo: 44 x 44 minimum everywhere (2.5.8 asks 24; Baseline's floor for a truck is 44), outlined, not the green primary */
.btn.ub{min-height:44px;min-width:88px;font-weight:700;background:#fff;border:2px solid var(--ink);color:var(--ink)}
.btn.ub:disabled{opacity:.65;cursor:progress}
.uform{display:inline-flex;gap:8px;align-items:center;flex-wrap:wrap;margin:0}
.ubar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:0 8px 12px}
td .ubar,.dmain .ubar{padding:8px 0 0}
tr.held td{background:#fafbf9}
.guard.hold{border-left-color:#3e4a45;background:#eef0ee;margin:10px 0}
.guard.gbad{border-left-color:var(--bad);background:var(--bad2);color:#7a1a12;margin-bottom:10px}
.drow .attr.why{color:var(--bad);font-weight:600}
@media (max-width:480px){.tst .tacts,.tst .uform,.tst .btn.ub{width:100%}}
