/* SCHDL Control Tower — styled per docs/design/TOOL-VISUAL-GUIDE.md
   teal accents, slate structure, white ground, Montserrat, microlabels. */
:root{
  --brand:#1BC3D8; --teal-500:#14b8a6; --teal-600:#0d9488; --teal-50:#f0fdfa; --teal-100:#ccfbf1; --teal-200:#99f6e4; --teal-700:#0f766e;
  --ink:#0f172a; --s700:#334155; --s600:#475569; --s500:#64748b; --s400:#94a3b8; --s300:#cbd5e1; --s200:#e2e8f0; --s100:#f1f5f9; --s50:#f8fafc;
  --em-50:#ecfdf5; --em-100:#d1fae5; --em-700:#047857; --em-500:#10b981;
  --am-50:#fffbeb; --am-100:#fef3c7; --am-700:#b45309; --am-500:#f59e0b;
  --ro-50:#fff1f2; --ro-100:#ffe4e6; --ro-700:#be123c; --ro-500:#f43f5e;
  --ease:cubic-bezier(.22,1,.36,1);
  --font-display:"Montserrat",ui-sans-serif,system-ui,sans-serif;
  --font-body:"IBM Plex Sans",ui-sans-serif,system-ui,-apple-system,sans-serif;
  --font-mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  --fs-base:14px; --lh:1.6; --fs-micro:10.5px; --fs-small:11.5px; --fs-table:12.5px; --body-weight:400; --track:0;
  --shadow-xl:0 20px 25px -5px rgb(15 23 42 / .08), 0 8px 10px -6px rgb(15 23 42 / .06);
  --glow:0 16px 36px -14px rgba(20,184,166,.4), 0 0 22px -8px rgba(20,184,166,.25);
}
*{box-sizing:border-box}
html,body{margin:0;background:#fff;color:var(--s700);font-family:var(--font-body);font-size:var(--fs-base);line-height:var(--lh);font-weight:var(--body-weight);letter-spacing:var(--track);-webkit-font-smoothing:antialiased}
a{color:var(--teal-700)}
h1,h2,h3,h4{color:var(--ink);margin:0;letter-spacing:-.01em;font-family:var(--font-display)}
h1{font-size:26px;font-weight:700;line-height:1.15}
h2{font-size:16px;font-weight:600}
h3{font-size:13px;font-weight:600}
button{font:inherit;cursor:pointer}
input,select,textarea{font:inherit}
:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.micro{font-size:var(--fs-micro);text-transform:uppercase;letter-spacing:.08em;color:var(--s500);font-weight:600}
.num{font-variant-numeric:tabular-nums;font-weight:600}
.muted{color:var(--s500)}

/* shell */
.shell{display:grid;grid-template-columns:232px minmax(0,1fr);min-height:100vh}
.side{border-right:1px solid var(--s200);background:#fff;padding:18px 12px;display:flex;flex-direction:column;gap:14px;position:sticky;top:0;height:100vh;overflow:auto}
.brand{display:flex;align-items:center;gap:10px;padding:4px 8px}
.brand .logo{width:30px;height:30px;border-radius:8px;background:linear-gradient(135deg,var(--brand),var(--teal-600));display:grid;place-items:center;color:#fff}
.brand b{display:block;color:var(--ink);font-size:13px}
.brand span{font-size:10px;color:var(--s500)}
.nav{display:flex;flex-direction:column;gap:2px}
.nav .grp{margin:10px 8px 4px}
.nav button{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:none;border:0;border-radius:8px;padding:8px 10px;color:var(--s600);font-weight:500}
.nav button svg{width:15px;height:15px;color:var(--s400)}
.nav button:hover{background:var(--s50);color:var(--ink)}
.nav button[aria-current="page"]{background:var(--teal-50);color:var(--teal-700)}
.nav button[aria-current="page"] svg{color:var(--teal-600)}
.side .foot{margin-top:auto;font-size:11px;color:var(--s500);padding:0 8px;display:flex;flex-direction:column;gap:4px}
.side .foot .bad{color:var(--ro-700)}
.side .foot .pushnow{font:inherit;color:var(--am-700);background:var(--am-50);border:1px solid var(--am-100);border-radius:6px;padding:3px 7px;text-align:left;cursor:pointer}
.side .foot .pushnow:hover{background:var(--am-100)}
.side .foot .pushnow:disabled{opacity:.6;cursor:default}
.main{padding:28px 32px 80px;display:flex;flex-direction:column;gap:22px;min-width:0}
.hero{position:relative;padding:22px 24px;border:1px solid var(--s200);border-radius:16px;background:#fff;box-shadow:var(--shadow-xl);overflow:hidden}
.hero::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 50% 40% at 50% 20%, rgba(27,195,216,.06), transparent 60%),radial-gradient(ellipse 40% 40% at 80% 60%, rgba(59,130,246,.05), transparent 60%)}
.hero>*{position:relative}
.hero p{margin:6px 0 0;max-width:70ch;color:var(--s600)}
.facts{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--s200);border-radius:999px;padding:5px 11px;font-size:11px;background:#fff;color:var(--s700)}
.chip b{color:var(--ink);font-variant-numeric:tabular-nums}
.chip.teal{background:var(--teal-50);border-color:var(--teal-100);color:var(--teal-700)}
.chip.rose{background:var(--ro-50);border-color:var(--ro-100);color:var(--ro-700)}
.chip.amber{background:var(--am-50);border-color:var(--am-100);color:var(--am-700)}
.chip.em{background:var(--em-50);border-color:var(--em-100);color:var(--em-700)}
.dot{width:7px;height:7px;border-radius:50%;display:inline-block}
.dot.live{background:var(--teal-500);animation:pulse 1.6s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.35}}

/* cards & rows */
.card{background:#fff;border:1px solid var(--s200);border-radius:12px;overflow:hidden}
.card.hero-card{border-radius:16px;box-shadow:var(--shadow-xl);padding:20px 22px}
.card .head{padding:12px 16px;border-bottom:1px solid var(--s100);display:flex;justify-content:space-between;align-items:center;gap:12px;background:var(--s50)}
.card .body{padding:14px 16px}
.grid{display:grid;gap:16px;align-items:start}
.grid.c2{grid-template-columns:repeat(auto-fit,minmax(340px,1fr))}
.grid.c3{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.row{display:flex;align-items:center;gap:10px;padding:10px 12px;border-bottom:1px solid var(--s100)}
.row:last-child{border-bottom:0}
.row:hover{background:var(--s50)}
.row.active{background:rgba(240,253,250,.6)}
.pill{font-size:9px;text-transform:uppercase;letter-spacing:.06em;padding:2px 7px;border-radius:999px;border:1px solid;white-space:nowrap;font-weight:600}
.pill.real,.pill.works,.pill.validated,.pill.em{background:var(--em-50);color:var(--em-700);border-color:var(--em-100)}
.pill.part,.pill.gap,.pill.doubt,.pill.amber{background:var(--am-50);color:var(--am-700);border-color:var(--am-100)}
.pill.fach,.pill.broken,.pill.discard,.pill.rose{background:var(--ro-50);color:var(--ro-700);border-color:var(--ro-100)}
.pill.dead,.pill.note,.pill.slate{background:var(--s50);color:var(--s600);border-color:var(--s200)}
.pill.teal,.pill.decision{background:var(--teal-50);color:var(--teal-700);border-color:var(--teal-100)}
.stripe{width:4px;align-self:stretch;border-radius:2px}
.stripe.real{background:var(--em-500)} .stripe.part{background:var(--am-500)} .stripe.fach{background:var(--ro-500)} .stripe.dead{background:var(--s400)}
.avatar{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:10px;font-weight:600;flex:none}
.av0{background:linear-gradient(135deg,#2dd4bf,#0d9488)} .av1{background:linear-gradient(135deg,#38bdf8,#0284c7)} .av2{background:linear-gradient(135deg,#a78bfa,#7c3aed)} .av3{background:linear-gradient(135deg,#fbbf24,#d97706)} .av4{background:linear-gradient(135deg,#fb7185,#e11d48)} .av5{background:linear-gradient(135deg,#34d399,#059669)}
.btn{border:1px solid var(--s200);background:#fff;color:var(--s700);border-radius:6px;padding:6px 10px;font-size:12px;display:inline-flex;align-items:center;gap:6px}
.btn:hover{border-color:var(--s300);color:var(--ink)}
.btn.primary{background:var(--ink);color:#fff;border-color:var(--ink)}
.btn.primary:hover{background:#1e293b}
.btn.ai{background:var(--teal-50);color:var(--teal-700);border-color:var(--teal-100)}
.btn.sm{padding:3px 8px;font-size:11px}
.btn svg{width:13px;height:13px}
.count{font-size:10px;background:var(--s100);border-radius:999px;padding:1px 6px;color:var(--s600);font-variant-numeric:tabular-nums}
.count.has{background:var(--teal-100);color:var(--teal-700)}
table{border-collapse:collapse;width:100%;font-size:var(--fs-table)}
th{font-size:var(--fs-micro);text-transform:uppercase;letter-spacing:.06em;color:var(--s500);font-weight:600;text-align:left;padding:8px 10px;border-bottom:1px solid var(--s200);background:var(--s50)}
td{padding:8px 10px;border-bottom:1px solid var(--s100);vertical-align:top;color:var(--s700)}
td.n{color:var(--ink);font-weight:500}
td.r,th.r{text-align:right;font-variant-numeric:tabular-nums}
.scroll{overflow-x:auto}
/* prose stays narrow for reading; wide docs let their tables breathe */
.md.wide{max-width:none}
.md.wide>p,.md.wide>ul,.md.wide>ol,.md.wide>blockquote{max-width:74ch}
.md.wide table{font-size:var(--fs-table)}
.md{max-width:74ch;font-size:calc(var(--fs-base) + 0.5px);color:var(--s700);line-height:calc(var(--lh) + .08)}
.md h1{font-size:22px;margin:0 0 8px} .md h2{font-size:15px;margin:22px 0 8px} .md h3{font-size:13px;margin:16px 0 6px}
.md p{margin:8px 0} .md blockquote{margin:8px 0;padding:8px 14px;border-left:3px solid var(--teal-200);background:var(--teal-50);border-radius:0 8px 8px 0;color:var(--s600)}
.md table{font-size:var(--fs-table);margin:10px 0;display:block;overflow-x:auto;max-width:100%}
.md code{font-family:var(--font-mono);font-size:11.5px;background:var(--s100);padding:1px 5px;border-radius:4px;color:var(--ink)}
.md pre{background:var(--s50);border:1px solid var(--s200);border-radius:8px;padding:12px;overflow:auto;font-size:11.5px}
.md ul{padding-left:20px} .md li{margin:3px 0}
.md tr.noted td:first-child{box-shadow:inset 3px 0 0 var(--teal-500)}
.md .rowbtn{margin-left:6px;vertical-align:middle}

/* story workflow — one continuous rail, numbered steps */
.story{position:relative;max-width:780px;display:flex;flex-direction:column;gap:14px;padding:4px 0 8px}
.story::before{content:"";position:absolute;left:15px;top:18px;bottom:26px;width:2px;background:linear-gradient(var(--s200),var(--s200) 92%,transparent);border-radius:1px}
.sstep{display:grid;grid-template-columns:32px minmax(0,1fr);gap:12px;align-items:start}
.srail{position:relative;height:100%}
.snum{position:relative;z-index:1;width:26px;height:26px;border-radius:50%;background:#fff;border:2px solid var(--ink);color:var(--ink);display:grid;place-items:center;font-size:11px;font-weight:600;margin:12px 0 0 3px;box-shadow:0 0 0 4px #fff}
.snum.part{border-color:var(--am-500);color:var(--am-700)} .snum.fach{border-color:var(--ro-500);color:var(--ro-700)}
.scontent{display:flex;flex-direction:column;gap:8px;min-width:0}
.sedge{display:flex;gap:6px;align-items:center;font-size:10.5px;color:var(--s500);padding-left:2px}
.sedge::before{content:"→";color:var(--s400)}
.sedge i{font-style:normal;background:var(--teal-50);border:1px solid var(--teal-100);color:var(--teal-700);border-radius:999px;padding:1px 9px;font-weight:500}
.stepcard{position:relative;border:1px solid var(--s200);border-radius:12px;padding:12px 14px 12px 18px;background:#fff;display:flex;gap:12px;align-items:flex-start;cursor:pointer;transition:border-color .3s var(--ease),box-shadow .3s var(--ease),transform .4s var(--ease);overflow:hidden}
.stepcard:hover{border-color:var(--s300);box-shadow:0 8px 20px -12px rgb(15 23 42 / .25);transform:translateY(-1px)}
.sstripe{position:absolute;left:0;top:0;bottom:0;width:4px}
.sstripe.real{background:var(--em-500)} .sstripe.part{background:var(--am-500)} .sstripe.fach{background:var(--ro-500)}
.stepcard .txt{flex:1;min-width:0}
.stepcard .who{display:flex;align-items:center;gap:8px;margin-bottom:3px;flex-wrap:wrap}
.stepcard .say{color:var(--ink);font-size:13.5px;font-weight:500;line-height:1.45}
.stepcard .gapline{margin-top:7px;font-size:12px;color:var(--am-700);display:flex;gap:8px;align-items:flex-start;line-height:1.4}
.stepcard.fach .gapline{color:var(--ro-700)}
.gapnum{width:18px;height:18px;border-radius:50%;display:grid;place-items:center;font-size:10px;font-weight:600;flex:none;border:1px solid;margin-top:1px}
.gapnum.part{background:var(--am-50);color:var(--am-700);border-color:var(--am-100)} .gapnum.fach{background:var(--ro-50);color:var(--ro-700);border-color:var(--ro-100)}
.sgroup{border:1px dashed var(--s300);border-radius:14px;padding:10px 10px 10px;background:var(--s50)}
.sgroup-l{margin:0 0 8px 4px}
.parallel{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px}
.states{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.st{font-family:var(--font-mono);font-size:11px;border:1px solid var(--s200);border-radius:999px;padding:2px 9px;background:var(--s50);color:var(--ink)}
.st.ghost{border-style:dashed;color:var(--s500);background:#fff}
.gaps .row{align-items:flex-start}
.gaps .t{color:var(--ink);font-weight:500}
.gaps .d{font-size:12px;color:var(--s600)}
.gaps .conf{font-size:10px;color:var(--s500);white-space:nowrap}
.bl{font-family:var(--font-mono);font-size:10.5px;background:var(--s100);border-radius:4px;padding:0 5px;color:var(--ink)}

/* journeys */
.jstrip{position:relative}
.jstrip::after{content:'';position:absolute;right:0;top:0;bottom:12px;width:56px;background:linear-gradient(90deg,transparent,#fff);pointer-events:none;opacity:1;transition:opacity .3s var(--ease);z-index:1}
.jstrip.at-end::after{opacity:0}
.strip-head{display:flex;justify-content:space-between;align-items:center;margin:16px 0 2px}
.jscroll{display:flex;gap:4px}
.jscroll button{width:28px;height:28px;border-radius:50%;border:1px solid var(--s200);background:#fff;box-shadow:var(--shadow-xl);display:grid;place-items:center;color:var(--s600);padding:0}
.jscroll button:hover{color:var(--ink);border-color:var(--s300)}
.jcards{display:flex;gap:12px;overflow-x:auto;padding:4px 2px 12px;scroll-snap-type:x mandatory;scrollbar-width:thin}
.jcard{flex:0 0 250px;scroll-snap-align:start;border:1px solid var(--s200);border-radius:12px;padding:12px 14px;background:#fff;display:flex;flex-direction:column;gap:8px;cursor:pointer;transition:transform .4s var(--ease),box-shadow .4s var(--ease)}
.jcard:hover{transform:translateY(-2px);box-shadow:var(--shadow-xl)}
.jcard.active{border-color:var(--teal-200);box-shadow:0 0 0 4px rgba(27,195,216,.08)}
.jcard.fach{border-color:var(--ro-100)}
.jcard .n{font-size:10px;color:var(--s400)}
.jcard h3{font-size:13px}
.jcard .does{font-size:12px;color:var(--s600);min-height:3em}
.mood{display:flex;gap:4px;align-items:center}
.mood i{width:14px;height:6px;border-radius:3px;background:var(--s200)}
.mood i.on.neg{background:var(--ro-500)} .mood i.on.mid{background:var(--s400)} .mood i.on.pos{background:var(--em-500)}
.mood span{font-size:10px;color:var(--s500);margin-left:4px}
.jdetail{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}
.jdetail .k{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--s500);margin-bottom:3px;font-weight:600}
.jdetail p{margin:0 0 10px;color:var(--s700)}

/* lifecycles */
.lc{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px 24px}
@media (max-width:900px){.lc{grid-template-columns:1fr}}
.trans{display:flex;flex-direction:column;gap:6px}
.trans div{display:flex;align-items:center;gap:8px;font-size:12px;flex-wrap:wrap}
.trans .arrow{color:var(--s400)}
.trans .why{color:var(--s500)}
.trans.fach .why{color:var(--ro-700)}

/* packaging */
.ctl{display:flex;flex-direction:column;gap:4px;min-width:200px}
.ctl input[type=range]{accent-color:var(--teal-600);width:100%}
.pcard{border:1px solid var(--s200);border-radius:12px;padding:14px 16px;background:#fff;display:flex;flex-direction:column;gap:8px}
.pcard.proposed{border-color:var(--teal-200);box-shadow:0 0 0 4px rgba(27,195,216,.06)}
.pcard .price{font-size:24px;color:var(--ink);font-weight:600;font-variant-numeric:tabular-nums;line-height:1}
.pcard .price small{font-size:11px;color:var(--s500);font-weight:400}
.pcard .kv{display:flex;justify-content:space-between;font-size:12px;color:var(--s500);border-top:1px solid var(--s100);padding-top:6px}
.pcard .kv b{color:var(--ink);font-variant-numeric:tabular-nums;font-weight:500}
.pcard .kv b.bad{color:var(--ro-700)} .pcard .kv b.ok{color:var(--em-700)}
td.tg{text-align:center} td.tg input{accent-color:var(--teal-600)} td.tg.locked{color:var(--s400);font-size:10px}
td.on{color:var(--em-700);text-align:center;font-weight:600} td.off{color:var(--s300);text-align:center} td.on.facade{color:var(--ro-700)}
tr.cat td{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--s500);background:var(--s50);padding-top:10px}

/* notes drawer */
.drawer{position:fixed;top:0;right:0;height:100vh;width:min(420px,100vw);background:#fff;border-left:1px solid var(--s200);box-shadow:-20px 0 40px -30px rgb(15 23 42 / .3);transform:translateX(100%);transition:transform .45s var(--ease);display:flex;flex-direction:column;z-index:20}
.drawer.open{transform:none}
.drawer .dh{padding:16px 18px;border-bottom:1px solid var(--s100);display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.drawer .dh h2{font-size:14px}
.drawer .dh .item{font-family:var(--font-mono);font-size:10.5px;color:var(--s500)}
.drawer .list{flex:1;overflow:auto;padding:10px 18px;display:flex;flex-direction:column;gap:10px}
.note{border:1px solid var(--s200);border-radius:10px;padding:10px 12px;background:#fff;animation:rise .45s var(--ease)}
.note .meta{display:flex;gap:8px;align-items:center;font-size:10.5px;color:var(--s500);margin-bottom:4px}
.note .meta b{color:var(--ink);font-weight:600}
.note .txt{white-space:pre-wrap;font-size:12.5px;color:var(--s700)}
.drawer form{padding:12px 18px 18px;border-top:1px solid var(--s100);display:flex;flex-direction:column;gap:8px;background:var(--s50)}
.drawer form .two{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.drawer input,.drawer select,.drawer textarea{border:1px solid var(--s200);border-radius:6px;padding:7px 9px;font-size:12px;background:#fff;color:var(--ink)}
.drawer textarea{min-height:84px;resize:vertical}
.drawer input:focus,.drawer textarea:focus,.drawer select:focus{outline:none;border:2px solid var(--teal-200);box-shadow:0 0 0 4px rgba(27,195,216,.08);padding:6px 8px}
.toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%) translateY(20px) scale(.97);opacity:0;background:rgba(204,251,241,.85);backdrop-filter:blur(8px);border:1px solid var(--teal-200);color:var(--teal-700);border-radius:999px;padding:8px 16px;font-size:12px;box-shadow:var(--glow);transition:all .5s var(--ease);z-index:30;pointer-events:none}
.toast.show{transform:translateX(-50%);opacity:1}
.empty{padding:26px;text-align:center;color:var(--s500);font-size:12px}

/* motion */
@keyframes rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.rise{animation:rise .5s var(--ease) both}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
@media (max-width:860px){.shell{grid-template-columns:1fr}.side{position:static;height:auto;flex-direction:row;flex-wrap:wrap;align-items:center}.nav{flex-direction:row;flex-wrap:wrap}.nav .grp{display:none}.side .foot{display:none}.main{padding:18px 16px 60px}}

/* surfaces */
.surf{display:inline-flex;align-items:center;gap:4px;font-size:9.5px;letter-spacing:.02em;padding:2px 8px;border-radius:999px;border:1px solid var(--s200);background:#fff;color:var(--s600);white-space:nowrap}
.surf svg{width:10px;height:10px}
.surf.chat,.surf.both{background:var(--teal-50);border-color:var(--teal-100);color:var(--teal-700)}
.surf.sms,.surf.notify{background:#eff6ff;border-color:#dbeafe;color:#1d4ed8}
.surf.system{background:var(--s50);color:var(--s500)}
.surf.external{background:#f5f3ff;border-color:#ede9fe;color:#6d28d9}
.surf-legend{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px;padding-top:12px;border-top:1px solid var(--s100)}
code.tool{font-family:var(--font-mono);font-size:10.5px;background:var(--teal-50);border:1px solid var(--teal-100);color:var(--teal-700);border-radius:4px;padding:0 5px;display:inline-block;margin:1px 2px 1px 0}
#rel-filters .btn[aria-pressed="true"]{border-color:var(--s300);color:var(--ink)}
.relbar{display:flex;gap:18px;flex-wrap:wrap;align-items:center}
.relgroup{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.relgroup .micro{margin-right:2px}

.stepcard{position:relative}
.stepactions{position:absolute;top:10px;right:10px;opacity:0;transition:opacity .25s var(--ease)}
.stepcard:hover .stepactions,.stepcard:focus-within .stepactions{opacity:1}
#editdlg{z-index:25}
#editdlg .list label span.micro{margin-bottom:2px}
#editdlg input,#editdlg select,#editdlg textarea{border:1px solid var(--s200);border-radius:6px;padding:7px 9px;font-size:12px;background:#fff;color:var(--ink);width:100%}
#editdlg textarea{resize:vertical}

/* inline provenance marker: a dot + tiny label that does not break the line */
.src{display:inline-flex;align-items:center;gap:3px;font-size:9.5px;letter-spacing:.02em;text-transform:uppercase;color:var(--s400);white-space:nowrap;vertical-align:1px;margin-left:5px;font-weight:600}
.src i{width:5px;height:5px;border-radius:50%;background:var(--s300);display:inline-block}
.src.incode{color:var(--em-700)} .src.incode i{background:var(--em-500)}
.src.validated{color:var(--em-700)} .src.validated i{background:var(--em-500)}
.src.industry{color:#1d4ed8} .src.industry i{background:#3b82f6}
.src.assumed{color:var(--am-700)} .src.assumed i{background:var(--am-500)}

/* filter bar for long documents and tables */
.filterbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:10px 14px;border:1px solid var(--s200);border-radius:10px;background:rgba(255,255,255,.96);backdrop-filter:blur(10px);position:sticky;top:8px;z-index:5;box-shadow:0 6px 18px -14px rgb(15 23 42 / .35)}
.filterbar input[type=search]{flex:1;min-width:180px;border:1px solid var(--s200);border-radius:6px;padding:7px 10px;font-size:12px;background:#fff}
.filterbar input[type=search]:focus{outline:none;border:2px solid var(--teal-200);box-shadow:0 0 0 4px rgba(27,195,216,.08);padding:6px 9px}
.filterbar .hits{font-size:11px;color:var(--s500);font-variant-numeric:tabular-nums}
.md tr.hide,.md h2.hide,.md h3.hide,.md p.hide,.md table.hide,.md ul.hide{display:none}

/* open decisions list on the start page */
.dec{display:grid;grid-template-columns:auto 1fr;gap:4px 10px;padding:10px 12px;border-bottom:1px solid var(--s100);align-items:start}
.dec:last-child{border-bottom:0}
.dec .id{font-family:var(--font-mono);font-size:11px;color:var(--ink);background:var(--s100);border-radius:4px;padding:1px 6px}
.dec .t{color:var(--ink);font-weight:500;font-size:12.5px}
.dec .r{grid-column:2;font-size:11.5px;color:var(--s500)}
.dec .r b{color:var(--teal-700);font-weight:600}

/* mobile: the sidebar becomes a compact sticky bar */
.mobilenav{display:none}
@media (max-width:860px){
  .shell{grid-template-columns:1fr}
  .side{position:sticky;top:0;z-index:12;height:auto;flex-direction:row;align-items:center;gap:10px;padding:10px 14px;border-right:0;border-bottom:1px solid var(--s200);background:rgba(255,255,255,.92);backdrop-filter:blur(8px)}
  .side .brand{padding:0;flex:none}
  .side .brand span{display:none}
  .nav{display:none}
  .side .foot{display:none}
  .mobilenav{display:block;flex:1}
  .mobilenav select{width:100%;border:1px solid var(--s200);border-radius:8px;padding:9px 10px;font-size:13px;background:#fff;color:var(--ink);font-weight:500;min-height:40px}
  .main{padding:16px 14px 60px;gap:16px}
  h1{font-size:21px}
  .hero{padding:16px 16px;border-radius:12px}
  .drawer{width:100%}
  .wflayout{grid-template-columns:1fr!important}
  .wflayout>#wflist,.wflayout>#plist{order:2}
  .wflayout>#wfmain,.wflayout>#pmain{order:1}
  .relbar{gap:10px}
  .jcard{flex-basis:230px}
  .lc{grid-template-columns:1fr}
  .jdetail{grid-template-columns:1fr}
  .btn,.nav button{min-height:36px}
  .filterbar{top:64px}
}

.jtrack{display:inline-block;min-width:100%}
.jrow{display:flex;gap:12px}
.gapdot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--am-500);vertical-align:0}

/* reading presets — switchable from the sidebar, remembered per browser */

/* structure editor */
.lanes{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.lane-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--s200);border-radius:999px;padding:3px 6px 3px 4px;background:#fff}
.lane-chip input{border:0;font:inherit;font-size:12px;color:var(--ink);width:120px;background:transparent}
.lane-chip .x,.acts button,.gaprow button,.ord button{border:1px solid var(--s200);background:#fff;color:var(--s500);border-radius:6px;width:24px;height:24px;display:grid;place-items:center;font-size:12px;padding:0}
.lane-chip .x:disabled,.ord button:disabled{opacity:.3;cursor:not-allowed}
.acts button:hover,.gaprow button:hover,.ord button:hover:not(:disabled),.lane-chip .x:hover:not(:disabled){color:var(--ink);border-color:var(--s300)}
.steplist{display:flex;flex-direction:column;gap:8px}
.steprow{display:grid;grid-template-columns:34px minmax(0,1fr) 28px;gap:10px;border:1px solid var(--s200);border-radius:10px;padding:10px 12px;background:#fff;align-items:start}
.steprow.par{margin-left:34px;border-style:dashed;background:var(--s50)}
.ord{display:flex;flex-direction:column;align-items:center;gap:4px}
.fields{display:flex;flex-direction:column;gap:6px;min-width:0}
.frow{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.frow select,.frow input,.say{border:1px solid var(--s200);border-radius:6px;padding:6px 8px;font:inherit;font-size:12px;background:#fff;color:var(--ink)}
.say{width:100%;font-size:13.5px;font-weight:500}
.chk{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;color:var(--s600)}
.chk input{accent-color:var(--teal-600)}
.acts{display:flex;flex-direction:column;gap:4px}
.gaplist{display:flex;flex-direction:column;gap:6px;align-items:flex-start}
.gaprow{display:grid;grid-template-columns:44px auto minmax(120px,1fr) minmax(160px,2fr) 70px auto 24px;gap:6px;width:100%;align-items:center}
.gaprow input,.gaprow select{border:1px solid var(--s200);border-radius:6px;padding:5px 7px;font:inherit;font-size:12px;min-width:0}
@media (max-width:860px){.gaprow{grid-template-columns:1fr 1fr}.steprow{grid-template-columns:28px minmax(0,1fr) 24px}.steprow.par{margin-left:16px}}

/* sign-in gate */
.gate{position:fixed;inset:0;display:grid;place-items:center;background:#fff;z-index:50;padding:20px}
.gate[hidden]{display:none}
.gate::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 50% 40% at 50% 25%, rgba(27,195,216,.08), transparent 60%),radial-gradient(ellipse 40% 40% at 70% 70%, rgba(59,130,246,.06), transparent 60%)}
.gatecard{position:relative;width:min(400px,100%);border:1px solid var(--s200);border-radius:16px;box-shadow:var(--shadow-xl);background:#fff;padding:32px 28px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:10px}
.gatecard .logo{width:44px;height:44px;border-radius:12px;background:linear-gradient(135deg,var(--brand),var(--teal-600));display:grid;place-items:center;color:#fff;margin-bottom:4px}
.gatecard h1{font-size:19px}
.gatecard p{margin:0;color:var(--s600);font-size:13px;max-width:34ch}
.gatecard #gsi{margin-top:10px;min-height:44px}
.gate-err{color:var(--ro-700);background:var(--ro-50);border:1px solid var(--ro-100);border-radius:8px;padding:8px 12px;font-size:12.5px}
/* who am i */
.me{display:grid;grid-template-columns:26px 1fr;column-gap:8px;align-items:center;padding:10px 8px 6px;border-top:1px solid var(--s100);margin-top:4px}
.me img{width:26px;height:26px;border-radius:50%;flex:none}
.me .who{flex:1;min-width:0}
.me .who b{display:block;color:var(--ink);font-size:12px;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.me .who span{font-size:10px;color:var(--s500)}
.me button{grid-column:2;justify-self:start;border:0;background:none;color:var(--s500);font-size:11px;padding:2px 0;cursor:pointer}
.me button:hover{color:var(--ink);text-decoration:underline}
.readonly{opacity:.5;pointer-events:none}

/* ── versions, impact, tickets ─────────────────────────────────────────── */
.verbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 14px;border:1px solid var(--s200);border-radius:10px;background:#fff;font-size:12px;color:var(--s600);margin-top:-6px}
.verbar .vtext{flex:1;min-width:200px}
.verbar .vtext b{color:var(--ink);font-weight:600}
.verbar .vbtns{display:flex;gap:6px;flex-wrap:wrap}
.verbar .btn[disabled]{opacity:.45;pointer-events:none}
.drawer.wide{width:min(560px,100vw)}
.ibox{border:1px solid var(--s200);border-radius:10px;padding:10px 12px;background:#fff;animation:rise .45s var(--ease)}
.ibox+.ibox,#i-out .ibox{margin-top:10px}
.ient{padding:8px 0;border-top:1px solid var(--s100);font-size:12.5px;color:var(--s700)}
.ient:first-of-type{border-top:0}
.ient b{color:var(--ink);font-weight:600;margin:0 6px}
.ient p{margin:4px 0 0;font-size:12px}
.ient ul,.chlines{margin:4px 0 0;padding-left:18px;font-size:11.5px;color:var(--s600)}
.chlines li,.ient li{margin:1px 0}
.touch{margin-top:6px;font-size:11px;color:var(--s500);display:flex;gap:4px;flex-wrap:wrap;align-items:center}
.touch .st{font-size:10px;padding:1px 7px}
.iq{margin:4px 0 0;padding-left:18px;font-size:12.5px;color:var(--s700)}
.iq li{margin:3px 0}
.ticket{border:1px solid var(--s200);border-radius:10px;padding:10px 12px;background:#fff}
.ticket+.ticket{margin-top:10px}
.ticket .thead{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:13px}
.ticket .thead b{color:var(--ink);font-weight:600;flex:1;min-width:160px}
.ticket .tdesc{white-space:pre-wrap;font-size:12px;color:var(--s700);margin-top:6px}
.ticket .tacc{margin:2px 0 0;padding-left:18px;font-size:12px;color:var(--s700)}
.ticket .tfrom{font-size:10.5px;margin-top:6px}
.ticket .tbtns{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.filterbar .btn[aria-pressed="true"]{background:var(--ink);color:#fff;border-color:var(--ink)}
