/* DMOS – Gulf racing livery (the City Composites standards' powder blue #8CC6EA, orange #F37021 and navy #0B2545), light and dark.
   Colours are tokens: every pair below is checked for WCAG 2.1 AA contrast (4.5:1 text, 3:1 large text and UI). Theme follows the
   system setting unless chosen with the ◐ button (data-theme on <html>). */
:root{--ink:#0b2545;--bg:#f4f7fa;--card:#fff;--line:#d5dee7;--grey:#55606b;--pale:#e8f4fb;--soft:#eef2f6;--blue:#1b6698;--orange:#b4410a;--accent:#f37021;--gulf:#8cc6ea;
  --primary:#f37021;--on-primary:#0b2545;--solid:#0b2545;--on-solid:#fff;--teams:#5b5fc7;
  --ok:#1d6b3e;--ok-bg:#e3f3e9;--ok-line:#a9d9bb;--ok-soft:#eef8f1;--warn:#8a4b06;--warn-bg:#fdf0e1;--warn-line:#efc896;--warn-soft:#fdf8f0;--err:#b3261e;--err-bg:#fde3e3;--err-line:#f1b7b7;--vio:#4f3fa8;--vio-bg:#ece9fb;color-scheme:light}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--ink:#e8eef5;--bg:#0e1620;--card:#17212c;--line:#2c3b4b;--grey:#a8b5c2;--pale:#183049;--soft:#1e2a37;--blue:#8cc6ea;--orange:#ffa36b;--accent:#f37021;--gulf:#8cc6ea;
  --primary:#f37021;--on-primary:#0b2545;--solid:#8cc6ea;--on-solid:#0b2545;
  --ok:#72d39c;--ok-bg:#112d1d;--ok-line:#24573a;--ok-soft:#14261b;--warn:#f5b86b;--warn-bg:#36230d;--warn-line:#6a4518;--warn-soft:#2b1f12;--err:#ff8f8a;--err-bg:#3b1517;--err-line:#6f2a2d;--vio:#bdb4ff;--vio-bg:#252047;color-scheme:dark}}
:root[data-theme=dark]{--ink:#e8eef5;--bg:#0e1620;--card:#17212c;--line:#2c3b4b;--grey:#a8b5c2;--pale:#183049;--soft:#1e2a37;--blue:#8cc6ea;--orange:#ffa36b;--accent:#f37021;--gulf:#8cc6ea;
  --primary:#f37021;--on-primary:#0b2545;--solid:#8cc6ea;--on-solid:#0b2545;
  --ok:#72d39c;--ok-bg:#112d1d;--ok-line:#24573a;--ok-soft:#14261b;--warn:#f5b86b;--warn-bg:#36230d;--warn-line:#6a4518;--warn-soft:#2b1f12;--err:#ff8f8a;--err-bg:#3b1517;--err-line:#6f2a2d;--vio:#bdb4ff;--vio-bg:#252047;color-scheme:dark}
*{box-sizing:border-box}
body{margin:0;font:14px/1.45 "Segoe UI",system-ui,-apple-system,Arial,sans-serif;color:var(--ink);background:var(--bg)}
a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}
header.top{display:flex;align-items:center;gap:18px;padding:8px 18px;background:var(--card);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}
.brand{display:flex;align-items:center;gap:8px;font-weight:700;color:var(--ink);font-size:16px}.brand.big{font-size:24px;margin-bottom:6px}
.logo{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:6px;background:var(--solid);color:var(--on-solid);font-size:11px;font-family:ui-monospace,Consolas,monospace}
.ver{font-size:11px;color:var(--orange);font-weight:600}
header nav{display:flex;gap:4px;flex:1}header nav a{padding:6px 10px;border-radius:6px;color:var(--grey)}header nav a.on{background:var(--pale);color:var(--ink);font-weight:600}
.who{display:flex;align-items:center;gap:8px;font-size:13px}.who small{color:var(--grey)}
main{max-width:1280px;margin:0 auto;padding:16px 18px 40px}
footer{text-align:center;color:var(--grey);font-size:12px;padding:20px}
h1{font-size:22px;margin:8px 0 10px}h2{font-size:16px;margin:0 0 10px}h3{font-size:14px;margin:14px 0 6px}
.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:14px 16px;margin-bottom:14px}
.narrow{max-width:460px;width:100%}.narrow-l{max-width:900px}
.centre{display:grid;place-items:center;min-height:100vh;padding:16px}
.grid.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;margin-bottom:14px}
.card.proj{display:block;color:var(--ink);margin:0}.card.proj:hover{border-color:var(--blue);text-decoration:none}
.pname{font-weight:400;color:var(--grey)}h1 .pname{font-size:18px}
.two{display:grid;grid-template-columns:1fr 1fr;gap:14px}@media(max-width:900px){.two{grid-template-columns:1fr}}
.row{display:flex;align-items:center}.between{justify-content:space-between}.gap{gap:8px}.wrap{flex-wrap:wrap}
.stack{display:flex;flex-direction:column;gap:10px}.stack label{display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--grey)}
.muted{color:var(--grey)}.small{font-size:12px}
.phead{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}
input,select,textarea{font:inherit;padding:6px 8px;border:1px solid var(--line);border-radius:6px;background:var(--card);color:var(--ink);max-width:100%}
textarea{width:100%}
.btn{display:inline-block;font:inherit;padding:6px 12px;border:1px solid var(--line);border-radius:6px;background:var(--card);color:var(--ink);cursor:pointer;white-space:nowrap}
.btn:hover{border-color:var(--blue);text-decoration:none}.btn.pri{background:var(--primary);border-color:var(--primary);color:var(--on-primary);font-weight:600}.btn.wide{display:block;text-align:center;margin:10px 0}
table.t{width:100%;border-collapse:collapse}table.t th{text-align:left;font-size:12px;color:var(--grey);font-weight:600;border-bottom:1px solid var(--line);padding:6px}
table.t td{border-bottom:1px solid var(--line);padding:6px;vertical-align:middle}.num{text-align:right;font-variant-numeric:tabular-nums}
table.kv th{text-align:left;color:var(--grey);font-weight:400;padding:4px 12px 4px 0;white-space:nowrap}table.kv td{padding:4px 0}
.chip{display:inline-block;font-size:11px;padding:1px 8px;border-radius:999px;border:1px solid var(--line);font-family:ui-monospace,Consolas,monospace;color:var(--grey)}
.chip.on{background:var(--solid);color:var(--on-solid);border-color:var(--solid)}.chips{display:flex;gap:4px}
.st-released{background:var(--ok-bg);color:var(--ok);border-color:var(--ok-line)}.st-ready,.st-checked{background:var(--warn-bg);color:var(--warn);border-color:var(--warn-line)}
.st-collector{background:var(--vio-bg);color:var(--vio)}.st-cancelled,.st-obsolete{text-decoration:line-through}
.code{font-family:ui-monospace,Consolas,monospace;font-size:12px;background:var(--pale);padding:1px 6px;border-radius:4px}
.tier{font-size:11px;font-weight:700;padding:2px 7px;border-radius:4px;margin-left:6px}.t0{background:var(--ok-bg);color:var(--ok)}.t1{background:var(--pale);color:var(--blue)}.t2{background:var(--warn-bg);color:var(--warn)}.t3{background:var(--err-bg);color:var(--err)}
.flash{padding:8px 12px;border-radius:8px;margin-bottom:12px}.flash.ok{background:var(--ok-bg);color:var(--ok)}.flash.err{background:var(--err-bg);color:var(--err)}.flash.warn{background:var(--warn-bg);color:var(--warn)}
.thumb{display:inline-block;border-radius:6px;overflow:hidden;background:var(--soft);border:1px solid var(--line);vertical-align:middle;flex:none}
.thumb img,.thumb svg{width:100%;height:100%;object-fit:cover;display:block}
.tgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}
.tcard{display:flex;flex-direction:column;gap:3px;padding:6px;border:1px solid var(--line);border-radius:8px;color:var(--ink);font-size:12px}.tcard:hover{border-color:var(--blue);text-decoration:none}
.tcard b{font-family:ui-monospace,Consolas,monospace;font-size:12px}
.bomhead{display:flex;gap:12px;align-items:center;margin:6px 0 10px}
.tree details>summary{list-style:none;cursor:pointer}.tree details>summary::-webkit-details-marker{display:none}
.tree summary::before{content:"▸";display:inline-block;width:14px;color:var(--grey)}.tree details[open]>summary::before{content:"▾"}
.tree .leaf{padding-left:14px}.tree .sub{margin-left:22px;border-left:1px dashed var(--line);padding-left:6px}
.tl{display:inline-flex;align-items:center;gap:8px;padding:3px 0}.tl a{font-family:ui-monospace,Consolas,monospace}.tl .q{color:var(--grey);font-size:12px}
ul.feed{list-style:none;padding:0;margin:0}ul.feed li{padding:6px 0;border-bottom:1px solid var(--line)}.when{font-size:11px;color:var(--grey);margin-right:6px;font-family:ui-monospace,Consolas,monospace}
.comment{border-bottom:1px solid var(--line);padding:6px 0}.comment p{margin:4px 0}
.devlogin{display:grid;gap:6px}.userbtn{display:grid;grid-template-columns:1fr;text-align:left;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--ink);cursor:pointer;font:inherit}
.userbtn:hover{border-color:var(--teams)}.userbtn span,.userbtn small{color:var(--grey);font-size:12px}
@media(max-width:700px){header.top{flex-wrap:wrap}header nav{order:3;width:100%;overflow-x:auto}main{padding:12px}}
/* v0.2: faults and admin */
.chips{flex-wrap:wrap;margin:6px 0 14px}.chips a.chip{padding:4px 12px;font-family:inherit;font-size:13px}
.sev-crit{background:var(--err-bg);color:var(--err);border-color:var(--err-line);font-weight:700}.sev-major{background:var(--warn-bg);color:var(--warn);border-color:var(--warn-line)}.sev-minor{background:var(--pale);color:var(--blue)}
.grid.stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-bottom:14px}
.stat{display:flex;flex-direction:column;margin:0}.stat b{font-size:26px}.stat span{color:var(--grey);font-size:12px}.stat.crit b{color:var(--err)}.stat.major b{color:var(--warn)}
ol.steps{display:flex;flex-wrap:wrap;gap:4px;list-style:none;padding:0;margin:8px 0 14px}
ol.steps li{padding:4px 12px;border-radius:999px;border:1px solid var(--line);font-size:12px;color:var(--grey)}
ol.steps li.done{background:var(--ok-bg);color:var(--ok);border-color:var(--ok-line)}ol.steps li.now{background:var(--solid);color:var(--on-solid);border-color:var(--solid)}
td.overdue{color:var(--err);font-weight:700}.pre{white-space:pre-wrap}
fieldset{border:0;padding:0;margin:0;min-width:0}fieldset[disabled]{opacity:.75}
.btn.sm{padding:2px 8px;font-size:12px}.btn.danger{color:var(--err);border-color:var(--err-line)}.btn.danger:hover{background:var(--err-bg)}
tr.muted td{color:var(--grey)}
/* v0.3: library */
.hsearch input{width:170px;padding:4px 8px;font-size:13px}
.doctext p{max-width:80ch;line-height:1.55}.doctext h3{margin:18px 0 4px}
.notes .nl{display:flex;gap:10px;font-family:ui-monospace,Consolas,monospace;font-size:13px;padding:1px 0}.notes .nn{width:2.2em;text-align:right;color:var(--grey);flex:none}
.notes .nl.hint{color:var(--grey);font-style:italic}
.mono,textarea.mono{font-family:ui-monospace,Consolas,monospace;font-size:13px;white-space:pre-wrap}
.sheetpick{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:4px 14px;margin:6px 0 10px}
.sheetpick label{display:flex;gap:8px;align-items:baseline;margin:0;font-weight:normal}.sheetpick label input{width:auto;margin:0;flex:none}.sheetpick label b{font-weight:600}
details>summary{cursor:pointer;padding:4px 0}
/* v0.4 library finders */
.finder .fbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:10px 12px}
.finder .fbar input[name=q]{flex:1 1 320px;min-width:200px}
.fgrid{display:grid;grid-template-columns:270px minmax(0,1fr);gap:14px;align-items:start}
@media (max-width:820px){.fgrid{grid-template-columns:1fr}}
.facets{background:var(--card,#fff);border:1px solid var(--line,var(--line));border-radius:10px;padding:6px 10px;margin-bottom:12px}
.facets details{border-bottom:1px solid var(--line,var(--soft));padding:4px 0}
.facets details:last-of-type{border-bottom:0}
.facets summary{display:flex;justify-content:space-between;align-items:center;font-size:14px}
.fvals{max-height:260px;overflow:auto;padding:2px 0 6px}
.fval{display:flex;gap:8px;align-items:center;font-size:13px;padding:2px 0;margin:0;font-weight:normal;cursor:pointer}
.fval input{width:auto;margin:0;flex:none}
.fval span:nth-child(2){flex:1}
.fval .cnt{color:var(--grey,var(--grey));font-size:12px;min-width:2em;text-align:right}
.fval.zero{opacity:.45}
.ranges{display:flex;flex-direction:column;gap:6px;padding:4px 0 8px}
.rng{display:grid;grid-template-columns:96px 1fr auto;gap:6px;align-items:center;font-size:13px;margin:0;font-weight:normal}
.rng input{width:100%;padding:3px 6px}
.achips{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:0 0 10px}
.related h4{margin:8px 0 2px;font-size:13px}
.empty{padding:14px;border:1px dashed var(--line,var(--line));border-radius:8px;margin:8px 0}
.t td a.code,.t td>.code{white-space:nowrap}
/* v0.4 parts finder, shop floor, stores, Teams tab */
.ptgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.ptgroup h3{margin:6px 0}
.ptcard{display:flex;flex-direction:column;gap:2px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;margin-bottom:6px;color:inherit;text-decoration:none}
.ptcard:hover{border-color:var(--ink);background:var(--soft)}
.grid3{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px 14px;align-items:end}
.grid3 label{display:flex;flex-direction:column;gap:3px;font-size:13px}
.mono.big{font-size:15px;padding:8px 10px;background:var(--soft);border-radius:6px}
.btn.big{font-size:15px;padding:10px 16px}
.tiles{display:flex;gap:12px;flex-wrap:wrap;margin:0 0 12px}
.tile{display:flex;flex-direction:column;padding:10px 16px;border:1px solid var(--line);border-radius:10px;background:var(--card,#fff);min-width:150px;color:inherit;text-decoration:none}
.tile b{font-size:22px}.tile span{font-size:12px;color:var(--grey)}.tile.bad b{color:var(--err)}
td.late,.late{color:var(--err);font-weight:600}td.warn{color:var(--warn);font-weight:600}
.st-hold{background:var(--warn-bg);color:var(--warn)}
.chip.hold{background:var(--warn-bg);color:var(--warn);border-color:var(--warn-line);font-size:11px}
table.ops tr.nextop{background:var(--soft)}table.ops tr.hold td:first-child{border-left:3px solid var(--warn)}
table.ops td{vertical-align:top}
progress{width:90px;height:8px;vertical-align:middle}
ol.howto{padding-left:20px;margin:6px 0}ol.howto li{margin:6px 0;font-size:14px;line-height:1.45}
/* v0.4 header: more sections, keep it on one line */
header.top nav{display:flex;flex-wrap:nowrap;overflow-x:auto;min-width:0;flex:1 1 auto;scrollbar-width:none}
header.top nav a{white-space:nowrap;padding-left:9px;padding-right:9px}
header.top .hsearch{flex:0 1 190px;min-width:120px}header.top .hsearch input{width:100%}
.who{white-space:nowrap;flex:none}
@media(max-width:1180px){.who small{display:none}}
.grid3{align-items:start}.grid3>div{grid-column:1/-1}
details.more{position:relative;flex:none}
details.more summary{list-style:none;cursor:pointer;padding:6px 10px;border-radius:6px;color:var(--grey);white-space:nowrap}
details.more summary::-webkit-details-marker{display:none}
details.more summary.on,details.more[open] summary{background:var(--pale);color:var(--ink);font-weight:600}
details.more .menu{position:absolute;top:110%;left:0;background:var(--card,#fff);border:1px solid var(--line);border-radius:8px;box-shadow:0 6px 18px rgba(0,0,0,.08);padding:6px;display:flex;flex-direction:column;min-width:190px;z-index:20}
details.more .menu a{padding:7px 10px;border-radius:6px;color:var(--ink);white-space:nowrap}
details.more .menu a:hover,details.more .menu a.on{background:var(--pale)}
/* v0.5 fasteners */
.compat{display:inline-block;padding:1px 8px;border-radius:999px;font-size:12px;white-space:nowrap}
.compat.ok{background:var(--ok-bg);color:var(--ok)}.compat.mid{background:var(--warn-bg);color:var(--warn)}.compat.bad{background:var(--err-bg);color:var(--err)}
.bar{height:4px;background:var(--soft);border-radius:3px;margin-top:3px}.bar span{display:block;height:4px;background:var(--ink);border-radius:3px}
table.fast td{vertical-align:top}
.grid3 label.wide{grid-column:1/-1}
/* v0.5 faults: hand-over and meeting notes */
.mnotes{display:flex;flex-direction:column;gap:8px;margin:6px 0 10px}
.mnote{border-left:3px solid var(--line);padding:2px 0 2px 10px}.mnote p{margin:3px 0}
.notef textarea{width:100%}
section.rv{border-left:4px solid var(--ink)}
/* v0.5 home: simple, big, friendly */
.hero{max-width:880px;margin:18px auto 22px;text-align:center}
.hero .hello{font-size:34px;font-weight:700;letter-spacing:-.02em;margin:4px 0 16px}
.bigsearch{display:flex;gap:8px;max-width:640px;margin:0 auto}
.bigsearch input{flex:1;font-size:17px;padding:12px 18px;border-radius:999px;border:1px solid var(--line);background:var(--card,#fff)}
.bigsearch .btn{border-radius:999px;padding:0 20px;font-size:15px}
.tilegrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:16px;max-width:1080px;margin:0 auto 26px}
.tile2{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;padding:22px 14px 18px;border-radius:22px;background:var(--card,#fff);
  border:1px solid var(--line);color:var(--ink);text-decoration:none;box-shadow:0 1px 2px rgba(16,24,40,.04);transition:transform .08s,box-shadow .12s}
.tile2:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(16,24,40,.10);text-decoration:none}
.tile2 .tlabel{font-size:16px;font-weight:600;line-height:1.25}
.tile2 .thint{font-size:12.5px;color:var(--grey);line-height:1.3}
.tile2.edit{background:transparent;border-style:dashed;box-shadow:none}
.ticon{display:flex;align-items:center;justify-content:center;width:58px;height:58px;border-radius:16px;color:#fff;margin-bottom:4px}
.ticon.small{width:36px;height:36px;border-radius:10px;margin:0}.ticon.small svg{width:20px;height:20px}
.ticon.blue{background:linear-gradient(160deg,#3b82f6,#2563eb)}.ticon.indigo{background:linear-gradient(160deg,#6366f1,#4f46e5)}
.ticon.teal{background:linear-gradient(160deg,#14b8a6,#0d9488)}.ticon.green{background:linear-gradient(160deg,#22c55e,#16a34a)}
.ticon.orange{background:linear-gradient(160deg,#fb923c,#f97316)}.ticon.red{background:linear-gradient(160deg,#f87171,#ef4444)}
.ticon.grey{background:linear-gradient(160deg,#94a3b8,var(--grey))}
.tbadge{position:absolute;top:12px;right:14px;min-width:24px;height:24px;padding:0 7px;border-radius:999px;background:#ef4444;color:#fff;font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:center}
.card.soft{max-width:1080px;margin-left:auto;margin-right:auto;border-radius:18px}
.plist{display:flex;flex-direction:column}
.pitem{display:flex;gap:12px;align-items:baseline;padding:10px 4px;border-bottom:1px solid var(--line);color:var(--ink)}
.pitem:last-child{border-bottom:0}.pitem span:nth-child(2){flex:1}
.chip.ex{background:var(--soft);color:var(--grey);font-size:11px}
ul.todo{list-style:none;padding:0;margin:0}ul.todo li{display:flex;justify-content:space-between;gap:12px;padding:10px 2px;border-bottom:1px solid var(--line)}
ul.todo li:last-child{border-bottom:0}
p.big{font-size:18px}
.editlist{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:8px;margin:10px 0 16px}
.editrow{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:12px;background:var(--card,#fff);font-weight:normal;margin:0}
.editrow input[type=checkbox]{width:20px;height:20px;flex:none}.editrow .tl{display:flex;flex-direction:column;flex:1}.editrow .ord{width:3em;text-align:center}
/* header: examples switch, update notice */
.exsw{flex:none}.exsw button{display:flex;align-items:center;gap:6px;background:none;border:0;padding:4px 6px;color:var(--grey);font-size:13px;cursor:pointer;white-space:nowrap}
.exsw .sw{position:relative;width:30px;height:18px;border-radius:999px;background:var(--line);transition:background .15s;flex:none}
.exsw .sw span{position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:#fff;transition:left .15s;box-shadow:0 1px 2px rgba(0,0,0,.2)}
.exsw button.on{color:var(--ink)}.exsw button.on .sw{background:#22c55e}.exsw button.on .sw span{left:14px}
a.upd{flex:none;color:var(--warn);background:var(--warn-bg);border:1px solid var(--warn-line);border-radius:999px;padding:3px 10px;font-weight:600;white-space:nowrap}
@media(max-width:1500px){a.upd span{display:none}}
@media(max-width:1400px){.who small{display:none}header.top .hsearch{flex-basis:150px}}
@media(max-width:1250px){header.top nav a{padding-left:7px;padding-right:7px}.exsw button{font-size:0;gap:0}.exsw .sw{margin:0}}
/* larger text for anyone who wants it */
body.big{font-size:17.5px}body.big .small,body.big .muted.small{font-size:15px}body.big .btn{font-size:16px;padding:9px 16px}
body.big input,body.big select,body.big textarea{font-size:16.5px}body.big .t td,body.big .t th{font-size:15.5px}body.big .tile2 .tlabel{font-size:18px}body.big header nav a{font-size:16px}
/* v0.6 category intelligence */
.catgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px}
.catcard{display:flex;flex-direction:column;gap:8px;color:var(--ink);text-decoration:none}.catcard:hover{border-color:var(--ink);text-decoration:none}
.catstats{display:flex;flex-direction:column;gap:2px;font-size:13px}
.chip.warnc{background:var(--warn-bg);color:var(--warn);border-color:var(--warn-line);font-size:12px}
.wchip{font-size:11px;padding:1px 7px;border-radius:999px;background:var(--soft);color:var(--grey)}.wchip.major{background:var(--err-bg);color:var(--err)}.wchip.medium{background:var(--warn-bg);color:var(--warn)}
.chg{font-variant-numeric:tabular-nums}.chg.up{color:var(--warn)}.chg.down{color:#047857}.chg.big{font-weight:700}
svg.spark{color:var(--ink);vertical-align:middle}
.sbar{width:70px;height:8px;background:var(--soft);border-radius:4px}.sbar span{display:block;height:8px;border-radius:4px;background:linear-gradient(90deg,#3b82f6,#22c55e)}
.chip.riskLow{background:var(--ok-bg);color:var(--ok)}.chip.riskMedium{background:var(--warn-bg);color:var(--warn)}.chip.riskHigh{background:var(--err-bg);color:var(--err)}
ul.cols{columns:2}
.mbars{display:flex;align-items:flex-end;gap:6px;height:140px;padding-top:8px}
.mbar{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;height:100%}.mbar span{display:block;width:100%;background:var(--ink);border-radius:4px 4px 0 0;min-height:2px}.mbar small{font-size:11px;color:var(--grey)}
.certs{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}
.cert{font-size:12px;padding:2px 9px;border-radius:999px}.cert.ok{background:var(--ok-bg);color:var(--ok)}.cert.mid{background:var(--warn-bg);color:var(--warn)}.cert.bad{background:var(--err-bg);color:var(--err)}
.catpick{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:2px 12px}
/* v0.6.1 document viewer */
iframe.pdf{width:100%;border:0;background:#525659;display:block}
iframe.pdf.inpage{height:82vh;border-radius:8px}
a.openwin{display:inline-block;font-size:14px;line-height:1;padding:2px 5px;border-radius:5px;color:var(--grey);border:1px solid transparent;text-decoration:none}
a.openwin:hover{border-color:var(--line);color:var(--ink);background:var(--card,#fff)}
td.nowrap{white-space:nowrap}
.chip.ok{background:var(--ok-bg);color:var(--ok);font-size:12px;margin-left:8px;font-weight:normal}
body.viewer{margin:0;display:flex;flex-direction:column;height:100vh;background:var(--soft)}
.vbar{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px 14px;background:var(--card,#fff);border-bottom:1px solid var(--line);flex-wrap:wrap}
.vtitle{display:flex;align-items:center;gap:10px;min-width:0;flex-wrap:wrap}.vtitle .vname{font-weight:600}
.vtitle .logo{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:6px;background:var(--solid);color:var(--on-solid);font-size:11px;font-weight:700}
.vacts{display:flex;gap:6px;flex-wrap:wrap}
.vbody{flex:1;display:flex;flex-direction:column;min-height:0;overflow:auto}
.vbody iframe.pdf{flex:1;height:auto;min-height:0}
.vfallback{text-align:center;margin:4px 0;color:var(--grey)}
article.sheet,article.reading{background:#fff;max-width:860px;width:100%;margin:22px auto;padding:36px 44px;box-shadow:0 2px 14px rgba(16,24,40,.10);border-radius:4px;box-sizing:border-box}
article.reading h2{font-size:18px;margin:22px 0 6px}article.reading p{line-height:1.6}
.sheethead{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;border-bottom:2px solid var(--ink);padding-bottom:10px;margin-bottom:14px}
.sheethead h1{margin:2px 0;font-size:24px}.code.big{font-size:16px;padding:4px 10px}
article.sheet h2{font-size:15px;text-transform:uppercase;letter-spacing:.04em;color:var(--grey);margin:20px 0 6px}
table.props td{padding:4px 8px}
.dnotes{font-size:14px}.dnotes .nl{padding:2px 0}
@media print{.vbar{display:none}body.viewer{background:#fff;height:auto}article.sheet{box-shadow:none;margin:0;padding:0;max-width:none}}
@media(max-width:700px){article.sheet,article.reading{padding:18px;margin:0}}
.code.big{white-space:nowrap}
/* v0.7 risk and decisions */
a.ideabtn{flex:none;font-size:18px;line-height:1;padding:4px 6px;border-radius:8px;text-decoration:none}a.ideabtn:hover{background:var(--pale)}
.notebar{display:flex;flex-direction:column;gap:6px;margin:6px 0 10px}.notebar input[name=body]{flex:1}
.kinds{display:flex;flex-wrap:wrap;gap:4px}
.kind{margin:0;font-weight:normal}.kind input{display:none}.kind span{display:inline-block;padding:3px 10px;border-radius:999px;border:1px solid var(--line);font-size:13px;cursor:pointer;background:var(--card,#fff)}
.kind input:checked+span{background:var(--solid);color:var(--on-solid);border-color:var(--solid)}
ul.enotes{list-style:none;padding:0;margin:0}ul.enotes li{display:flex;gap:10px;align-items:flex-start;padding:7px 2px;border-bottom:1px solid var(--line)}
ul.enotes li.done,ul.enotes li.promoted{opacity:.6}.eic{width:24px;height:24px;flex:none;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;background:var(--soft)}
li.risk .eic{background:var(--err-bg);color:var(--err)}li.decision .eic{background:var(--ok-bg);color:var(--ok)}li.question .eic{background:var(--pale);color:#2563eb}li.action .eic{background:var(--warn-bg);color:var(--warn)}
.ebody{flex:1}
.ap{display:inline-block;padding:1px 8px;border-radius:999px;font-size:12px;font-weight:600}.ap.apH{background:var(--err-bg);color:var(--err)}.ap.apM{background:var(--warn-bg);color:var(--warn)}.ap.apL{background:var(--ok-bg);color:var(--ok)}
.ap.mini{font-size:10px;padding:0 5px;margin-left:3px}
.fmtree{display:flex;flex-direction:column;gap:1px;max-height:75vh;overflow:auto}
.fmtree a.tn{display:flex;justify-content:space-between;gap:6px;padding:4px 6px;border-radius:6px;color:var(--ink);font-size:13px;text-decoration:none}.fmtree a.tn.on,.fmtree a.tn:hover{background:var(--pale)}
.fmtree .cnt{color:var(--grey);font-size:12px;white-space:nowrap}
table.matrix{border-collapse:collapse}table.matrix td,table.matrix th{width:34px;height:28px;text-align:center;font-size:12px}
table.matrix td{border:1px solid #fff}table.matrix td.mH{background:var(--err-line)}table.matrix td.mM{background:var(--warn-line)}table.matrix td.mL{background:var(--ok-line)}
table.fmea td{vertical-align:top}
.sugg{border-left:4px solid var(--warn)}
.fmform .wide{grid-column:1/-1}
.headline p.big{font-size:17px;line-height:1.5}
details.recpart{border-bottom:1px solid var(--line);padding:6px 0}details.recpart summary{cursor:pointer}
ul.rec{list-style:none;padding:4px 0 6px 14px;margin:0}ul.rec li{padding:3px 0;font-size:14px}
.rkk{display:inline-block;min-width:70px;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--grey)}
li.rk.risk .rkk{color:var(--err)}li.rk.decision .rkk{color:var(--ok)}li.rk.fmea .rkk{color:#6366f1}li.rk.stress .rkk{color:#0d9488}li.rk.fault .rkk{color:var(--warn)}
.pri{font-size:12px;padding:1px 8px;border-radius:999px;background:var(--soft)}.pri.urgent{background:var(--err-bg);color:var(--err)}.pri.high{background:var(--warn-bg);color:var(--warn)}
.ideas{display:flex;flex-direction:column}.idea{display:flex;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}.ibody{flex:1}
.vote button{display:flex;flex-direction:column;align-items:center;width:46px;padding:4px 0;border:1px solid var(--line);border-radius:10px;background:var(--card,#fff);cursor:pointer;color:var(--grey)}
.vote button.on{border-color:var(--ink);color:var(--ink)}.vote b{font-size:15px;color:var(--ink)}
.chip.stnew{background:var(--pale);color:#2563eb}.chip.stplanned{background:var(--warn-bg);color:var(--warn)}.chip.stbuilt{background:var(--ok-bg);color:var(--ok)}.chip.stnot_doing{background:var(--soft);color:var(--grey)}
.resp{background:var(--soft);padding:6px 10px;border-radius:8px}
/* v0.8 – Test Drive parity: project control, parts, review, stores extras, quality, concept board */
@media(max-width:1500px){header.top nav a{padding-left:7px;padding-right:7px}}
@media(max-width:1350px){header nav{gap:0}header.top nav a{font-size:13px;padding-left:5px;padding-right:5px}}
.pnav{display:flex;flex-wrap:wrap;gap:2px;border-bottom:1px solid var(--line);margin:0 0 12px}.pnav a{padding:7px 12px;color:var(--grey);border-bottom:2px solid transparent}.pnav a.on{color:var(--ink);border-color:var(--orange);font-weight:600}.pnav a:hover{text-decoration:none;color:var(--ink)}
.chip.late{background:var(--err-bg);color:var(--err);border-color:var(--err-line);font-family:inherit}
.kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;margin-bottom:14px}.kpi{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:10px 14px}.kpi b{display:block;font-size:20px}.kpi span{font-size:12px;color:var(--grey)}.kpi.bad b{color:var(--err)}.kpi.warn b{color:var(--warn)}
.lane{display:flex;gap:6px;flex-wrap:wrap}.lane .step{flex:1;min-width:130px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;color:var(--ink);position:relative}.lane .step span{display:block;font-size:12px;color:var(--grey)}.lane .step.started{border-color:var(--warn-line);background:var(--warn-soft)}.lane .step.ok{border-color:var(--ok-line);background:var(--ok-soft)}.lane .step.ok b::before{content:"✓ ";color:var(--ok)}
.gantt{width:100%;height:auto;display:block}.gantt .gm{stroke:var(--line)}.gantt .gl{font-size:10px;fill:var(--grey)}.gantt .gt{font-size:11px;font-weight:700;fill:var(--ink);text-anchor:middle}.gantt text.gl{text-anchor:middle}.gantt .today{stroke:var(--orange);stroke-dasharray:4 3}.gantt .tdy{fill:var(--orange)}
.gb{fill:var(--pale)}.gb.gp{fill:var(--ok-line)}.gb.gx{fill:var(--err-line)}.gb.gw{fill:var(--warn-line)}.gd{stroke:#fff;stroke-width:1.5}.gd.gp{fill:var(--ok)}.gd.gx{fill:var(--err)}.gd.gw{fill:var(--orange)}.gd.gn{fill:var(--blue)}
.tdo{fill:var(--blue)}.tdn{fill:var(--ok)}.tlt{fill:var(--err)}
.legend{margin-top:4px}.lg{display:inline-block;width:10px;height:10px;border-radius:2px;margin:0 4px 0 10px;vertical-align:middle}.lg.gp{background:var(--ok)}.lg.gx{background:var(--err)}.lg.gw{background:var(--orange)}.lg.gn{background:var(--blue)}
form.gate{border:1px solid var(--line);border-radius:8px;padding:10px 12px;margin-bottom:8px}.gate .gh{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.gate .sp,.sp{flex:1}ul.crit{list-style:none;padding:0;margin:6px 0}ul.crit li{padding:2px 0}
.chip.g-passed,.chip.g-waived{background:var(--ok-bg);color:var(--ok)}.chip.g-late{background:var(--err-bg);color:var(--err)}.chip.g-ready{background:var(--pale);color:var(--blue)}.chip.g-at{background:var(--warn-bg);color:var(--warn)}
.bar{height:8px;border-radius:4px;background:var(--line);overflow:hidden;min-width:80px;margin:3px 0}.bar span{display:block;height:100%;background:var(--ok)}.bar span.warn{background:var(--orange)}.bar span.over{background:var(--err)}.bar.big{height:14px}
button.tick{width:24px;height:24px;border-radius:50%;border:2px solid var(--line);background:var(--card);cursor:pointer;color:#fff;font-weight:700;padding:0;line-height:20px}button.tick.on{background:var(--ok);border-color:var(--ok)}
ul.todo li .grow,.grow{flex:1}.done{text-decoration:line-through;color:var(--grey)}form.inline{display:inline}
ul.todo.big li{font-size:15px;padding:8px 0}
.form2 label{display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--grey)}.form2 label.grow{flex:1}.form2 input,.form2 select{font-size:14px}
fieldset{border:1px solid var(--line);border-radius:8px;padding:8px 12px}legend{font-size:12px;color:var(--grey);padding:0 4px}
.rolegrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:2px 12px}label.ck{flex-direction:row!important;align-items:center;gap:6px;color:var(--ink)!important;font-size:13px!important}
.actions{display:flex;gap:6px;flex-wrap:wrap;margin:4px 0 12px}
.preview{display:grid;grid-template-columns:auto 1fr;gap:2px 12px;background:var(--pale);border-radius:8px;padding:10px 14px;align-items:baseline}.preview b{font-size:18px;font-family:ui-monospace,Consolas,monospace}#pvdesc{font-family:inherit;font-size:15px}
.conseq{background:var(--warn-soft);border-left:3px solid var(--orange);padding:6px 10px;border-radius:4px;margin:0}.conseq:empty{display:none}
.btn.sm{padding:3px 8px;font-size:12px}
.kanban{display:grid;grid-template-columns:repeat(4,minmax(220px,1fr));gap:12px;overflow-x:auto}.kanban .col{background:var(--pale);border-radius:10px;padding:8px}.kanban h3{margin:4px 4px 8px}
.kcard{display:block;background:var(--card);border:1px solid var(--line);border-radius:8px;padding:8px 10px;margin-bottom:6px;color:var(--ink)}.kcard:hover{border-color:var(--blue);text-decoration:none}
@media(max-width:900px){.kanban{grid-template-columns:1fr 1fr}}
.stdlist{columns:2;padding-left:18px}@media(max-width:900px){.stdlist{columns:1}}
.chip.d-received,.chip.d-delivered{background:var(--ok-bg);color:var(--ok)}.chip.d-delayed{background:var(--err-bg);color:var(--err)}.chip.d-in_transit,.chip.d-despatched,.chip.d-packed{background:var(--pale);color:var(--blue)}.chip.d-arrived{background:var(--warn-bg);color:var(--warn)}
.chip.st-sign2{background:var(--vio-bg);color:var(--vio)}.chip.st-scheme{background:var(--soft);color:var(--grey)}
.masonry{columns:4 240px;column-gap:12px}.pin{break-inside:avoid;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:10px;margin-bottom:12px;display:flex;flex-direction:column;gap:6px}.pin img{width:100%;border-radius:6px}.pin .sk svg{width:100%;border-radius:6px}
.tag{display:inline-block;font-size:11px;background:var(--pale);border-radius:4px;padding:1px 6px;margin:0 3px 3px 0}
.rolecards{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px;margin-top:10px}.rolecard{border:1px solid var(--line);border-radius:10px;padding:10px 14px;background:var(--card)}.rolecard h4{margin:8px 0 2px;font-size:12px;color:var(--grey)}
.pmap{width:100%;height:auto;background:var(--card)}.pmap .gm{stroke:var(--line)}.pmap .gl{font-size:10px;fill:var(--grey)}.pmap .gt{font-size:12px;fill:var(--ink)}
.pmap .ma{fill:#c3ccd6}.pmap .mm{fill:var(--blue);opacity:.75}.pmap .ms{fill:var(--orange)}.pmap .mf{fill:var(--err);stroke:#fff}.lg.ma{background:#c3ccd6}.lg.mm{background:var(--blue)}.lg.ms{background:var(--orange)}.lg.mf{background:var(--err)}
pre.notes{white-space:pre-wrap;font:inherit;font-size:13px;background:var(--pale);padding:8px;border-radius:6px}
.mono{font-family:ui-monospace,Consolas,monospace}
@media print{header.top,footer,.noprint,.pnav,.actions{display:none!important}body{background:#fff}.card{border:none;padding:0}}

/* v0.9 – PDF viewer (pdf.js) that works inside Teams */
.pdfv{border:1px solid var(--line);border-radius:8px;background:#525659;display:flex;flex-direction:column;min-height:300px}
.pdfv.inpage{height:80vh}.pdfv.full{height:calc(100vh - 70px);border:0;border-radius:0}
.pdfbar{display:flex;gap:6px;align-items:center;flex-wrap:wrap;padding:6px 8px;background:var(--card);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:2}
.pdfbar .pdfinfo{font-size:12px;color:var(--grey)}.pdffind{width:180px}
.pdfpages{overflow:auto;flex:1;padding:12px;display:flex;flex-direction:column;align-items:center;gap:12px}
.pdfpage{background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.4);max-width:100%}.pdfpage canvas{display:block}
/* v0.9 – Gulf livery and accessibility */
header.top{border-bottom:0;box-shadow:none;margin-bottom:6px}
header.top::after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:6px;background:linear-gradient(var(--gulf) 0 2px,var(--accent) 2px 4px,var(--gulf) 4px 6px);pointer-events:none}
.logo,.vtitle .logo{background:var(--accent)!important;color:#0b2545!important;font-weight:700}
.ver{color:var(--orange)}
header nav a.on{background:var(--pale);color:var(--ink);box-shadow:inset 0 -3px 0 var(--accent)}
header nav a:hover{background:var(--soft);text-decoration:none}
.themebtn{border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:999px;width:32px;height:32px;cursor:pointer;font-size:15px;line-height:1}
.skip{position:absolute;left:-9999px;top:4px;z-index:20;background:var(--solid);color:var(--on-solid);padding:8px 14px;border-radius:6px}.skip:focus{left:12px}
:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
:is(p,li,td,.small,.muted,.vfallback) a:not(.btn):not(.chip):not(.tile2):not(.pitem):not(.kcard):not(.tcard){text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:1px}
.btn.pri:hover{filter:brightness(1.06);border-color:var(--primary)}
.hero{position:relative}.hero::after{content:"";display:block;width:120px;height:6px;margin:14px auto 0;border-radius:3px;background:linear-gradient(90deg,var(--gulf) 0 40%,var(--accent) 40% 60%,var(--gulf) 60% 100%)}
h1{border-left:0}
.card h2::first-letter{color:inherit}
.pnav a.on{border-color:var(--accent)}
.tbadge{background:var(--err)!important;color:var(--card)!important}
.ticon.gulf{background:linear-gradient(135deg,#8cc6ea,#5aa8d8);color:#0b2545}.ticon.orange{background:linear-gradient(135deg,#f78b47,#f37021);color:#0b2545}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* colour-blind safe plan colours: blue = passed, orange = due soon, red + "!" = late, grey = planned; each also has a glyph */
.gb{fill:var(--soft)}.gb.gp{fill:var(--gulf);opacity:.55}.gb.gx{fill:var(--err-line)}.gb.gw{fill:var(--warn-line)}
.gd.gp{fill:var(--blue)}.gd.gx{fill:var(--err)}.gd.gw{fill:var(--accent)}.gd.gn{fill:var(--grey)}
.gantt .gg{font-size:13px;font-weight:700;text-anchor:middle}.gg.gp{fill:var(--blue)}.gg.gx{fill:var(--err)}.gg.gw{fill:var(--orange)}
.lg.gp{background:var(--blue)}.lg.gx{background:var(--err)}.lg.gw{background:var(--accent)}.lg.gn{background:var(--grey)}
.tdo{fill:var(--blue)}.tdn{fill:var(--grey)}.tlt{fill:var(--err)}
.chip.g-passed,.chip.g-waived{background:var(--pale);color:var(--blue)}
.lane .step.ok{border-color:var(--gulf);background:var(--pale)}.lane .step.ok b::before{color:var(--blue)}
.bar span{background:var(--blue)}.bar span.warn{background:var(--accent)}.bar span.over{background:repeating-linear-gradient(45deg,var(--err) 0 6px,var(--err-line) 6px 9px)}

/* View as */
.viewas select{max-width:190px;font-size:13px;padding:4px 6px}.sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.lens{display:flex;justify-content:space-between;align-items:center;gap:10px;background:var(--pale);border-left:4px solid var(--accent);padding:6px 12px;border-radius:6px;margin-bottom:12px;font-size:13px}
@media(max-width:1350px){.viewas select{max-width:130px}}
.kbhelp{position:fixed;right:18px;bottom:18px;z-index:30;background:var(--card);border:1px solid var(--line);border-top:4px solid var(--accent);border-radius:10px;padding:12px 16px;box-shadow:0 6px 24px rgba(0,0,0,.25);max-width:420px;font-size:13px}
kbd{font-family:ui-monospace,Consolas,monospace;font-size:12px;border:1px solid var(--line);border-bottom-width:2px;border-radius:4px;padding:0 5px;background:var(--soft)}

/* scan data – explorer views and 3D viewer */
form.explorer{display:flex;gap:10px;flex-wrap:wrap;align-items:center}form.explorer label{font-size:12px;color:var(--grey);display:flex;gap:6px;align-items:center}
.scangrid{display:grid;gap:12px}.scangrid.xl{grid-template-columns:repeat(auto-fill,minmax(310px,1fr))}.scangrid.large{grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}.scangrid.medium{grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}
.scancard{display:flex;flex-direction:column;gap:4px;padding:8px;border:1px solid var(--line);border-radius:8px;color:var(--ink);background:var(--card)}.scancard:hover{border-color:var(--accent);text-decoration:none}
img.scanthumb{background:var(--soft);border-radius:6px;object-fit:contain;max-width:100%;height:auto}img.scanthumb:not(.ready){background:repeating-linear-gradient(45deg,var(--soft) 0 10px,var(--pale) 10px 20px)}
.scantile{display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:6px;background:var(--pale);color:var(--ink);max-width:100%}.scantile b{font-family:ui-monospace,Consolas,monospace;font-size:16px}.scantile small{color:var(--grey)}
.scantile.k-point_cloud{background:linear-gradient(135deg,var(--pale),var(--soft))}.scantile.k-volume{background:var(--vio-bg)}.scantile.k-project{background:var(--warn-bg)}
.scanview{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:8px;overflow:hidden}.scanbar{display:flex;gap:6px;flex-wrap:wrap;align-items:center;padding:6px 8px;border-bottom:1px solid var(--line);background:var(--card)}
.scanbar [aria-pressed=true]{background:var(--solid);color:var(--on-solid);border-color:var(--solid)}.scanstage{height:520px;background:radial-gradient(circle at 50% 40%,var(--card),var(--soft))}.scanstage canvas{display:block}

/* header: on narrower screens the menu gets its own row instead of being cut off */
@media(max-width:1480px){header.top{flex-wrap:wrap;row-gap:4px}header.top nav{order:5;flex-basis:100%;overflow-x:auto}header.top .brand{margin-right:auto}}
/* v0.9.1 serial builds */
.bsteps{display:inline-flex;gap:2px;vertical-align:middle;margin-left:6px}.bsteps i{width:9px;height:9px;border-radius:2px;background:var(--line);display:inline-block}.bsteps i.on{background:var(--accent,#F37021)}
ol.bpath{list-style:none;display:flex;flex-wrap:wrap;gap:6px;padding:0;margin:0 0 12px}ol.bpath li{border:1px solid var(--line);border-radius:8px;padding:6px 10px;display:flex;flex-direction:column;min-width:120px}
ol.bpath li.ok{border-color:var(--accent,#F37021);background:color-mix(in srgb,var(--accent,#F37021) 10%,transparent)}
ul.timeline{list-style:none;padding:0;margin:0}ul.timeline li{border-left:3px solid var(--line);padding:4px 0 8px 12px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
tr.muted td{opacity:.7}
/* v0.9.6 customer requirements */
.chip.cust{background:#0b2545;color:#fff;border-color:#0b2545;font-weight:600}
:root[data-theme=dark] .chip.cust{background:#8cc6ea;color:#0b2545;border-color:#8cc6ea}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .chip.cust{background:#8cc6ea;color:#0b2545;border-color:#8cc6ea}}
.custcard{border-left:4px solid #0b2545}
.lk{display:inline-flex;align-items:center;gap:2px;margin:0 4px 2px 0}.lk .x{border:0;background:none;color:var(--grey);cursor:pointer;padding:0 2px;font-size:11px}
.tree .tn{margin:2px 0}.tree .tn>details{display:block;margin-left:14px}.tree .tn>details>summary{display:inline-block;color:var(--grey);padding:0 6px;border-radius:6px}
.tree .tn>details>summary:hover{background:var(--soft)}
td a[href^="/i/"],td a[href^="/builds/"],td a[href^="/buy/"],td a[href^="/shop/"]{white-space:nowrap}
/* v1.1 dark-mode contrast fixes: no hard-coded colours on themed surfaces; paper-like surfaces carry their own light tokens */
article.sheet,article.reading,body.viewer article,.pdfpage{--ink:#0b2545;--grey:#55606b;--line:#d5dee7;--pale:#e8f4fb;--soft:#eef2f6;--blue:#1b6698;--card:#fff;color:#0b2545;color-scheme:light}
@media print{:root,:root[data-theme=dark]{--ink:#0b2545!important;--bg:#fff!important;--card:#fff!important;--line:#d5dee7!important;--grey:#55606b!important;--pale:#e8f4fb!important;--soft:#eef2f6!important;--blue:#1b6698!important;color-scheme:light}}
li.question .eic,.chip.stnew{color:var(--blue)}
li.rk.fmea .rkk{color:var(--vio)}li.rk.stress .rkk{color:var(--ok)}
.chg.down{color:var(--ok)}
table.matrix td{border-color:var(--card)}
button.tick{color:var(--card)}button.tick.on{color:var(--on-solid);background:var(--ok);border-color:var(--ok)}
:root{--on-ok:#fff}
/* selection and hover states stay readable in both themes */
.chip.on,.kind input:checked+span,.seg a.on,.seg button.on{background:var(--solid);color:var(--on-solid)!important;border-color:var(--solid)}
.btn:hover{background:var(--soft);color:var(--ink)}
.btn.pri,.btn.pri:hover{color:var(--on-primary);background:var(--primary)}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
input[type=checkbox],input[type=radio]{accent-color:var(--accent)}
::selection{background:var(--gulf);color:#0b2545}
/* v1.1 record header: stage bar (Odoo status bar), next steps, smart buttons, Create menu */
.rechead{display:flex;flex-direction:column;gap:8px;margin:2px 0 12px}
.stagerow{display:flex;flex-wrap:wrap;align-items:center;gap:10px;justify-content:space-between}
ol.stagebar{display:flex;flex-wrap:wrap;list-style:none;margin:0;padding:0;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--card)}
ol.stagebar li{position:relative;padding:6px 14px 6px 20px;font-size:13px;color:var(--grey);background:var(--card)}
ol.stagebar li:first-child{padding-left:12px}
ol.stagebar li+li::before{content:"";position:absolute;left:-1px;top:0;bottom:0;border-left:1px solid var(--line)}
ol.stagebar li.sb-done{text-decoration:none;color:var(--ink)}
ol.stagebar li.sb-cur{background:var(--solid);color:var(--on-solid);font-weight:700}
ol.stagebar li.sb-side{background:var(--warn-bg);color:var(--warn);font-weight:700}
form.nextsteps{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:0}form.nextsteps input[name=reason]{min-width:260px}
nav.smart{display:flex;flex-wrap:wrap;gap:6px}
a.sbtn{display:inline-flex;align-items:baseline;gap:6px;padding:5px 10px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--ink);font-size:13px;text-decoration:none}
a.sbtn b{font-size:15px;font-variant-numeric:tabular-nums}a.sbtn:hover{border-color:var(--accent);background:var(--soft)}
a.sbtn.zero{color:var(--grey)}a.sbtn.zero b{font-weight:400}
details.create{display:inline-block;position:relative}details.create summary{list-style:none;cursor:pointer}details.create summary::-webkit-details-marker{display:none}
details.create .menu a{color:var(--ink);padding:6px 10px;border-radius:6px;text-decoration:none}
form.inline{display:inline}
.btn.star[aria-pressed=true]{border-color:var(--accent);color:var(--ink)}.btn.star[aria-pressed=true] span{color:var(--accent)}
ul.favlist{list-style:none;padding:0;margin:0;columns:2 220px}ul.favlist li{padding:3px 0;break-inside:avoid}ul.favlist span[aria-hidden]{color:var(--accent)}
/* saved views bar (added by dmos.js) */
.viewsbar{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:0 0 8px}
.viewsbar .vchip{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border:1px solid var(--line);border-radius:999px;background:var(--card);color:var(--ink);font-size:13px;text-decoration:none}
.viewsbar .vchip.on{background:var(--solid);color:var(--on-solid);border-color:var(--solid)}
.viewsbar .vchip small{color:inherit;opacity:.85}
.viewsbar details{position:relative}.viewsbar details .menu{min-width:280px;padding:10px;gap:8px}
.viewsbar details .menu label{display:flex;gap:6px;align-items:center;font-size:13px;color:var(--ink)}
.nextwrap{display:flex;flex-wrap:wrap;gap:6px;align-items:center}ol.stagebar li{text-decoration:none!important}
/* .pri is also the priority pill: keep primary buttons full size */
.btn.pri{font-size:inherit;padding:6px 12px;border-radius:6px}.btn.pri.sm,.btn.pri.small{padding:3px 8px;font-size:12px}
/* v1.1.1 back / forward and search anything (command palette) */
.navbtns{display:flex;gap:2px;flex:none}
button.navb{width:30px;height:30px;border:1px solid var(--line);border-radius:6px;background:var(--card);color:var(--ink);cursor:pointer;font-size:15px;line-height:1;padding:0}
button.navb:hover{border-color:var(--accent);background:var(--soft)}button.navb:disabled{opacity:.45;cursor:default}
header.top .hsearch{position:relative;flex:0 1 320px;min-width:160px}
@media(max-width:1400px){header.top .hsearch{flex-basis:230px}}
.palres{position:absolute;top:calc(100% + 4px);left:0;width:min(520px,92vw);max-height:70vh;overflow:auto;background:var(--card);border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 30px rgba(0,0,0,.18);padding:6px;z-index:60}
.palres h4{margin:6px 8px 2px;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--grey)}
.palres a{display:flex;gap:8px;align-items:baseline;padding:6px 8px;border-radius:6px;color:var(--ink);text-decoration:none}
.palres a .k{font-size:11px;color:var(--grey);min-width:86px}.palres a .s{color:var(--grey);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.palres a[aria-selected=true],.palres a:hover{background:var(--pale)}
.palres .act .k{color:var(--accent)}
.instgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.instgrid h3{margin:4px 0 6px}
[hidden]{display:none!important}
/* compare: cards side by side, scroll sideways, rows line up */
.cmpgrid{display:flex;gap:12px;overflow-x:auto;align-items:flex-start;padding-bottom:8px;scroll-snap-type:x proximity}
.cmpcard{flex:0 0 min(520px,90vw);margin:0;scroll-snap-align:start;cursor:grab}.cmpcard:active{cursor:grabbing}
.cmphead{display:flex;justify-content:space-between;gap:8px;align-items:flex-start;min-height:64px}.cmpbtns{display:flex;gap:4px;align-items:center;flex:none}
table.cmpt td{height:34px;max-width:260px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}table.cmpt td:first-child{max-width:300px}
table.cmpt tr.d-add td{background:var(--ok-bg)}table.cmpt tr.d-del td{background:var(--err-bg)}table.cmpt tr.d-chg td{background:var(--warn-bg)}
table.cmpt tr.d-add td:last-child{color:var(--ok);font-weight:600}table.cmpt tr.d-del td:last-child{color:var(--err);font-weight:600}table.cmpt tr.d-chg td:last-child{color:var(--warn);font-weight:600}
table.cmpt tr.d-none td{color:var(--grey)}
.cmpsum{min-height:20px}.cmpsum .d-add{color:var(--ok)}.cmpsum .d-del{color:var(--err)}.cmpsum .d-chg{color:var(--warn)}
.mapgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px}.mapgrid label{display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--grey)}
.tblbar{display:flex;justify-content:flex-end;gap:6px;margin:4px 0}
.seg{display:inline-flex;gap:0;margin-right:auto}.seg .btn{border-radius:0}.seg .btn:first-child{border-radius:6px 0 0 6px}.seg .btn:last-child{border-radius:0 6px 6px 0}.seg .btn+.btn{margin-left:-1px}
.seg .btn.on{background:var(--solid);color:var(--on-solid);border-color:var(--solid)}
.calhead{display:flex;gap:10px;align-items:center;margin:4px 0 8px}
.calgrid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.caldow{font-size:12px;color:var(--grey);text-align:center}
.calday{min-height:84px;border:1px solid var(--line);border-radius:6px;padding:4px;background:var(--card);font-size:12px;overflow:hidden}
.calday.blank{border:none;background:none}.calday.today{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.calday .n{color:var(--grey);font-size:11px}.calitem{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bulkbar{display:flex;flex-wrap:wrap;gap:8px;align-items:end;padding:8px 10px;border:1px dashed var(--line);border-radius:8px;margin:8px 0;background:var(--card)}.bulkbar label{display:flex;flex-direction:column;font-size:12px;color:var(--grey)}
.btn.follow[aria-pressed=true]{border-color:var(--accent)}
.flash a,.lens a:not(.btn),p a:not(.btn){text-decoration:underline}
.pmap .mref path{fill:var(--accent);stroke:var(--ink);stroke-width:1}
/* v1.1.5 workload, approval routes, carbon sources */
.wl td{text-align:center;min-width:3.2em}.wl td:first-child{text-align:left}
.wl .wl-over{background:var(--err-bg);color:var(--err);font-weight:700;outline:1px solid var(--err-line)}
.wl .wl-mid{background:var(--warn-bg);color:var(--ink)}
.wl .wl-low{background:var(--ok-bg);color:var(--ink)}
.routesteps{display:flex;flex-direction:column;gap:6px;padding-left:1.4em}.routesteps li{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.refs{margin:0;padding-left:1.2em}.refs li{margin:2px 0}
.scrollx{overflow-x:auto}
.scrollx select{max-width:15em}
/* v1.1.6 create strip, people suggestions, information tips */
.createstrip{border-left:4px solid var(--ok);padding:12px 16px}
.pplwrap{position:relative;display:inline-block}
.pplsug{position:absolute;z-index:60;left:0;top:100%;min-width:100%;max-width:min(30rem,92vw);margin:2px 0 0;padding:4px;list-style:none;background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:8px;box-shadow:0 6px 20px rgba(0,0,0,.25)}
.pplsug li{padding:6px 8px;border-radius:6px;cursor:pointer;display:flex;flex-direction:column;gap:1px}
.pplsug li[aria-selected=true],.pplsug li:hover{background:var(--pale)}
.pplsug .pn{font-weight:600}.pplsug .pe{font-size:.85em;color:var(--grey)}
.pplsug .tag{font-size:.75em;border:1px solid var(--line);border-radius:999px;padding:0 6px;align-self:flex-start}
.pplsug .tag.inv{border-color:var(--warn-line);background:var(--warn-bg);color:var(--ink)}
.pplnote{font-size:.85em;margin-left:4px;align-self:center}
.pplnote.ok{color:var(--ok)}.pplnote.warn{color:var(--warn)}.pplnote.bad{color:var(--err)}
.infobtn{display:inline-flex;align-items:center;justify-content:center;width:1.35em;height:1.35em;margin-left:4px;padding:0;border-radius:50%;border:1px solid var(--blue);background:transparent;color:var(--blue);font:italic 700 .8em/1 Georgia,serif;cursor:help;vertical-align:middle;flex:none}
.infobtn:hover,.infobtn:focus-visible,.infobtn[aria-expanded=true]{background:var(--blue);color:var(--bg)}
.infopop{position:absolute;z-index:80;max-width:min(26rem,92vw);max-height:60vh;overflow:auto;padding:10px 12px;background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.3);font-size:.9em;line-height:1.35}
.infopop h3{margin:0 0 4px;font-size:1em}.infopop p{margin:0 0 6px}
.infopop dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:3px 8px}.infopop dt{font-weight:700;white-space:nowrap}.infopop dd{margin:0}
.infopop .cur{background:var(--pale);border-radius:4px;padding:0 3px}
.labtip{display:inline-flex;align-items:center;gap:2px}
/* v1.2.0 workbench ribbon */
header.top{flex-wrap:wrap;row-gap:0}
header.top .brand{order:0}
header.top .wb{display:contents}
header.top .wbtabs{order:1;display:flex;gap:2px;flex:1 1 auto;min-width:0;overflow-x:auto;scrollbar-width:none}
header.top .navbtns,header.top .hsearch,header.top .upd,header.top .ideabtn,header.top .bellbtn,header.top .exsw,header.top .viewas,header.top .themebtn,header.top .who{order:2}
.wbtabs [role=tab]{background:none;border:0;border-bottom:3px solid transparent;border-radius:6px 6px 0 0;padding:7px 10px 5px;color:var(--grey);font:inherit;white-space:nowrap;cursor:pointer}
.wbtabs [role=tab]:hover{color:var(--ink);background:var(--pale)}
.wbtabs [role=tab][aria-selected=true]{color:var(--ink);font-weight:600;border-bottom-color:var(--accent);background:var(--pale)}
header.top nav.ribbon{order:3;flex:1 1 100%;display:block;overflow-x:auto;margin:4px -18px -8px;padding:6px 18px 4px;background:var(--pale);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.wbpanel{display:flex;gap:0;align-items:stretch;min-width:max-content}.wbpanel[hidden]{display:none}
.wbgroup{display:flex;flex-direction:column;justify-content:space-between;padding:0 12px;border-right:1px solid var(--line)}.wbgroup:first-child{padding-left:0}.wbgroup:last-child{border-right:0}
.wbcmds{display:flex;flex-wrap:wrap;gap:2px 4px;max-width:46rem}
header.top nav.ribbon a{padding:4px 8px;border-radius:6px;color:var(--ink);white-space:nowrap;font-size:13.5px}
header.top nav.ribbon a:hover{background:var(--card)}
header.top nav.ribbon a.on{background:var(--card);font-weight:600;box-shadow:inset 0 -2px 0 var(--accent)}
.wblabel{font-size:11px;color:var(--grey);text-align:center;margin-top:2px;text-transform:uppercase;letter-spacing:.04em}
@media(max-width:700px){header.top .wbtabs{order:3;flex-basis:100%}header.top nav.ribbon{order:4}.wblabel{display:none}}
body.big .wbtabs [role=tab]{font-size:16px}body.big header.top nav.ribbon a{font-size:15.5px}
@media print{header.top nav.ribbon{display:none}}
details.usermenu{position:relative;order:2;flex:none}
details.usermenu summary{list-style:none;cursor:pointer;padding:6px 10px;border-radius:6px;white-space:nowrap;color:var(--ink)}
details.usermenu summary::-webkit-details-marker{display:none}
details.usermenu[open] summary,details.usermenu summary:hover{background:var(--pale)}
details.usermenu .menu{position:absolute;right:0;top:110%;z-index:30;display:flex;flex-direction:column;gap:6px;min-width:240px;padding:10px;background:var(--card);border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.18)}
details.usermenu .menu a{padding:6px 8px;border-radius:6px;color:var(--ink)}details.usermenu .menu a:hover{background:var(--pale)}
details.usermenu .themebtn{text-align:left;width:100%;border-radius:6px;padding:6px 8px;font-size:14px;width:auto;height:auto}
details.usermenu .viewas select{width:100%}
@media(max-width:1400px){.wbtabs [role=tab]{padding:7px 7px 5px;font-size:14px}header.top{gap:10px}header.top .hsearch{flex-basis:160px}}
@media(max-width:1150px){header.top .ideabtn{display:none}}
/* v1.2.0 sector hubs and pathways */
.sectorgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;margin:12px 0}
.sectorcard{display:block;color:var(--ink);text-decoration:none}.sectorcard:hover{border-color:var(--accent)}
ol.steps li{margin:6px 0}sup.refs{font-size:.72em;margin-left:2px}sup.refs a{text-decoration:none}
details.pathway{border:1px solid var(--line);border-radius:8px;padding:8px 12px;margin:8px 0}details.pathway summary{cursor:pointer}
ol.refs li{margin:3px 0;font-size:.9em}
ul.cols{columns:2;column-gap:24px}@media(max-width:700px){ul.cols{columns:1}}
.pwchart{display:flex;flex-direction:column;gap:4px;margin:10px 0}
.pwrow{display:grid;grid-template-columns:minmax(120px,240px) 1fr;gap:8px;align-items:center}
.pwname{font-size:.85em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pwtrack{position:relative;height:14px;background:var(--pale);border-radius:7px}
.pwbar{position:absolute;top:0;bottom:0;border-radius:7px;background:var(--blue)}.pwbar.done{background:var(--ok)}.pwbar.now{background:var(--accent)}
.chip.warnc{background:var(--warn-bg);border-color:var(--warn-line);color:var(--ink)}
.sectorcard .chip{white-space:nowrap;flex:none;margin-left:8px}

/* drawing frame editor (v1.4.0) */
.frameedit .fe-sheet { position: relative; max-width: 900px; border: 1px solid var(--line); background: #fff; touch-action: none; }
.frameedit .fe-img { display: block; width: 100%; height: auto; }
.frameedit .fe-box { position: absolute; box-sizing: border-box; display: flex; align-items: flex-start; justify-content: flex-start; padding: 2px 4px; font: 600 11px/1.2 system-ui, sans-serif; letter-spacing: .03em; }
.frameedit .fe-notes { border: 2px dashed #0b6bcb; background: rgba(11,107,203,.10); color: #08457f; cursor: move; }
.frameedit .fe-rev { border: 2px dashed #b3261e; background: rgba(179,38,30,.08); color: #7a1912; cursor: move; }
.frameedit .fe-tb { border: 2px solid #555; background: rgba(0,0,0,.04); color: #333; pointer-events: none; }
.frameedit .fe-grip { position: absolute; right: -6px; bottom: -6px; width: 14px; height: 14px; background: #0b6bcb; border: 2px solid #fff; border-radius: 2px; cursor: nwse-resize; }
.frameedit .fe-nums { border: 1px solid var(--line); border-radius: 6px; padding: 4px 8px; }
.frameedit .fe-nums input { width: 5.5em; }
.frameedit select[multiple] { width: 100%; min-width: 0; }
fieldset.card select, #drawings select { max-width: 100%; }
fieldset.card label, #drawings label { max-width: 100%; min-width: 0; }

/* never let a drop-down push the page sideways on a phone (1.4.0) */
select { max-width: 100%; }

/* materials property map (v1.4.0): family colours, focus and similar rings, zoom, tooltip */
.pmapwrap { position: relative; }
.pmaptools { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; margin-bottom: 6px; }
.pmap { cursor: grab; touch-action: none; }
.pmap.panning { cursor: grabbing; }
.pmap .pt { stroke: #fff; stroke-width: .8; opacity: .85; transition: opacity .1s; }
.pmap .pt.ma { opacity: .14; }
.pmap .pt.ms { stroke: #111; stroke-width: 1.6; opacity: 1; }
.pmap .pt.mf { stroke: #111; stroke-width: 2.6; opacity: 1; }
.pmap a:hover .pt, .pmap a:focus .pt { stroke: #111; stroke-width: 2; opacity: 1; }
.pmap .plabel text { font-size: 10px; fill: var(--ink); paint-order: stroke; stroke: var(--card); stroke-width: 3px; }
.pmap .plabel.focus text { font-size: 12px; font-weight: 700; }
.pmaptip { position: absolute; z-index: 5; pointer-events: none; background: var(--ink); color: var(--card); font-size: 12px; padding: 4px 8px; border-radius: 4px; max-width: 360px; box-shadow: 0 2px 8px rgba(0,0,0,.25); }
.legend .lgf { display: inline-flex; align-items: center; gap: 2px; margin-right: 10px; text-decoration: none; color: inherit; }
.legend .lgf.on { font-weight: 700; text-decoration: underline; }
.legend .lgf .lg { margin-left: 0; }

/* v1.5.0 Report a problem – always there, bottom right, out of the way */
details.probrep{position:fixed;right:12px;bottom:12px;z-index:40;max-width:min(360px,calc(100vw - 24px))}
details.probrep>summary{list-style:none;cursor:pointer;background:var(--card,#fff);border:1px solid var(--line,#ccd);border-radius:999px;padding:4px 12px;font-size:.85rem;box-shadow:0 1px 4px rgba(0,0,0,.15);color:var(--ink,#123)}
details.probrep>summary::-webkit-details-marker{display:none}
details.probrep[open]>summary{border-radius:8px 8px 0 0}
details.probrep form{background:var(--card,#fff);border:1px solid var(--line,#ccd);border-radius:0 8px 8px 8px;padding:10px;display:grid;gap:6px;box-shadow:0 4px 16px rgba(0,0,0,.2)}
details.probrep textarea{width:100%}
@media print{details.probrep{display:none}}
footer{padding-bottom:44px}
/* v1.6.0 thread library */
.twocol{display:grid;grid-template-columns:minmax(200px,260px) 1fr;gap:14px;align-items:start}
.twocol>*{min-width:0}
@media (max-width:760px){.twocol{grid-template-columns:1fr}}
ul.plain{list-style:none;padding:0;margin:0 0 8px}
ul.plain li{padding:2px 0}
ul.plain a.on{font-weight:600;text-decoration:underline}
pre.callout{font:600 15px/1.5 ui-monospace,Consolas,monospace;background:var(--soft);border:1px solid var(--line);border-radius:6px;padding:10px 14px;white-space:pre-wrap}
dl.kv{display:grid;grid-template-columns:max-content 1fr;gap:6px 18px;margin:0}
dl.kv dt{color:var(--grey)}
dl.kv dd{margin:0}
@media (max-width:560px){dl.kv{grid-template-columns:1fr;gap:2px}dl.kv dd{margin-bottom:8px}}
.card code{overflow-wrap:anywhere}
.usermenu .menu .linkbtn{display:block;width:100%;text-align:left;background:none;border:0;font:inherit;padding:6px 8px;border-radius:6px;color:var(--ink);cursor:pointer}
.usermenu .menu .linkbtn:hover{background:var(--pale)}
footer a { text-decoration: underline; }
.kv dd a { text-decoration: underline; }

/* v1.8.0 info switch: a small "i" beside menus and buttons explaining what they do (static/help.json) */
.infoswitch{flex:none;display:inline-flex;align-items:center;gap:2px;font:600 13px/1 system-ui,sans-serif;padding:5px 9px;border-radius:999px;border:1px solid var(--line,#c9d4de);background:transparent;color:inherit;cursor:pointer}
.infoswitch:hover{background:var(--pale)}
.infoswitch[aria-pressed="true"]{background:#0b2545;color:#fff;border-color:#0b2545}
:root[data-theme="dark"] .infoswitch[aria-pressed="true"]{background:#8cc6ea;color:#0b2545;border-color:#8cc6ea}
header.top .infoswitch{order:2}
.infoi{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;margin:0 2px 0 4px;border-radius:50%;font:700 11px/1 Georgia,serif;font-style:italic;background:#e8f2fa;color:#0b2545;border:1px solid #8cc6ea;cursor:help;vertical-align:middle;flex:none;position:relative}
.infoi:focus-visible{outline:2px solid #f37021;outline-offset:2px}
.infotip{position:fixed;z-index:9999;max-width:300px;padding:8px 10px;border-radius:8px;background:#0b2545;color:#fff;font:13px/1.4 system-ui,sans-serif;box-shadow:0 6px 20px rgba(0,0,0,.25);pointer-events:none}
.infotip b{display:block;margin-bottom:2px}
@media print{.infoi,.infotip,.infoswitch{display:none!important}}
@media(max-width:1500px){.infoswitch .infolab{display:none}.infoswitch{padding:4px 8px;font-family:Georgia,serif;font-style:italic}}

/* v1.8.0 organisation roles as chips with their own remove button */
.rolechips{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:4px}
.rolechip{display:inline-flex;align-items:center;gap:2px;padding:2px 4px 2px 8px;border-radius:999px;background:#e8f2fa;border:1px solid #8cc6ea;font-size:12px;color:#0b2545}
.rolechip form.inline{display:inline}
.rolechip .rmx{border:0;background:transparent;font-size:14px;line-height:1;padding:0 4px;cursor:pointer;color:#0b2545;border-radius:50%}
.rolechip .rmx:hover,.rolechip .rmx:focus-visible{background:#f37021;color:#fff}
.rolegrant select{max-width:260px}
:root[data-theme="dark"] .rolechip{background:#16324f;color:#e8f2fa;border-color:#2f5b85}:root[data-theme="dark"] .rolechip .rmx{color:#e8f2fa}
/* the drop-down option explainers (i) also follow the Info switch */
html:not(.info-on) .infobtn{display:none}

/* v1.9.0 extra roles picker */
.rolepick{display:inline-block;position:relative;font-size:13px}
.rolepick summary{cursor:pointer;padding:5px 9px;border:1px solid var(--line);border-radius:8px;background:var(--card);list-style:none}
.rolepick summary::after{content:" ▾"}
.rolepick[open] .rolepick-list{position:absolute;z-index:20;background:var(--card);border:1px solid var(--line);border-radius:8px;box-shadow:0 6px 20px rgba(0,0,0,.15);padding:6px 10px;max-height:300px;overflow:auto;min-width:280px}
.rolepick-list label{display:block;padding:2px 0;white-space:nowrap}
/* v1.10.0 comments, tags and requests on notes; the bell */
.bellbtn{position:relative;font-size:18px;text-decoration:none;line-height:1;padding:4px;border-radius:6px;color:var(--ink)}.bellbtn:hover{background:var(--soft);text-decoration:none}
.bellbtn .bcount{position:absolute;top:-4px;right:-6px;min-width:17px;height:17px;padding:0 4px;border-radius:999px;background:var(--err);color:#fff;font-size:11px;font-weight:700;line-height:17px;text-align:center;font-family:system-ui,sans-serif}
:root[data-theme=dark] .bellbtn .bcount{color:#2a0b0b}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .bellbtn .bcount{color:#2a0b0b}}
.chip.warn{background:var(--warn-bg);color:var(--warn);border-color:var(--warn-line)}
.ethread{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:2px 0}
.notebody{font-size:16px;white-space:pre-wrap}.crumbs{margin:0 0 8px}
.onenote{margin-top:8px;align-items:flex-start}
ol.thread{list-style:none;padding:0;margin:0 0 12px}
ol.thread li.cm{border-left:3px solid var(--line);padding:6px 10px;margin:8px 0;background:var(--soft);border-radius:0 8px 8px 0}
ol.thread li.cm.me{border-left-color:var(--blue)}ol.thread li.cm:target{outline:2px solid var(--accent);outline-offset:2px}
.cmbody{white-space:pre-wrap;margin:3px 0}.cmhead{font-size:13px}b.at{color:var(--blue)}
.tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}.tags .tag{font-size:12px;background:var(--pale);color:var(--blue);border-radius:999px;padding:1px 8px}
.cmform textarea{width:100%}
.tagpick{position:relative;display:flex;flex-direction:column;gap:4px;max-width:640px}
.tagres{position:absolute;top:100%;left:0;right:0;z-index:6;list-style:none;margin:2px 0 0;padding:4px;background:var(--card);border:1px solid var(--line);border-radius:8px;box-shadow:0 6px 20px rgba(0,0,0,.15);max-height:300px;overflow:auto}
.tagres li{padding:6px 8px;border-radius:6px;cursor:pointer}.tagres li:hover,.tagres li.on{background:var(--pale)}
.chosen{display:flex;gap:6px;flex-wrap:wrap}.tagchip{font-family:inherit;font-size:13px;padding:2px 4px 2px 10px;color:var(--ink)}
.tagchip button{border:0;background:none;color:inherit;cursor:pointer;font-size:15px;line-height:1;padding:0 4px}
ul.bell,ul.asked{list-style:none;padding:0;margin:0}ul.bell li{border-bottom:1px solid var(--line)}
ul.bell li a{display:flex;gap:10px;padding:8px 4px;color:var(--ink)}ul.bell li a:hover{background:var(--soft);text-decoration:none}
ul.bell li a>span:last-child{display:flex;flex-direction:column;gap:2px}ul.bell li.unread{background:var(--pale)}ul.bell li.unread b{color:var(--blue)}
ul.bell .bic{width:24px;text-align:center;flex:none;font-weight:700}ul.asked li{padding:5px 0;border-bottom:1px solid var(--line)}
.stack label.tick,.cmform fieldset label{flex-direction:row;align-items:center;gap:6px}.cmform fieldset{border:1px solid var(--line);border-radius:8px;display:flex;flex-direction:column;gap:4px}
h1.notehd{display:flex;gap:8px;align-items:center;margin:0}
ul.bell li a,ul.asked li a{text-decoration:none}ul.bell li a:hover b,ul.asked li a:hover b{text-decoration:underline}
blockquote.answer{margin:8px 0;padding:8px 12px;border-left:4px solid var(--ok);background:var(--ok-soft);border-radius:0 8px 8px 0}
.chip.ok{background:var(--ok-bg);color:var(--ok);border-color:var(--ok-line)}
.cmtail{margin-top:6px;align-items:center}.cmacts .btn{font-size:12px;padding:2px 8px}
details.noteedit{margin-top:10px}details.noteedit textarea{width:100%}ul.hist{margin:6px 0;padding-left:18px}
.newcm{display:flex;gap:10px;align-items:center}
.noteedit .stack>.btn,.onenote .stack>.btn,#channels+form>.btn{align-self:flex-start}
/* v1.11.0 improvement reviews */
ol.stages{display:flex;flex-wrap:wrap;gap:6px;list-style:none;padding:0;margin:6px 0 14px}ol.stages li{padding:3px 12px;border:1px solid var(--line);border-radius:999px;font-size:13px;color:var(--grey)}
ol.stages li.on{background:var(--ink);color:var(--card);border-color:var(--ink);font-weight:600}
textarea.prompt{width:100%;font-family:ui-monospace,Consolas,monospace;font-size:12px;margin:8px 0}
article.opt{border:1px solid var(--line);border-radius:10px;padding:10px 14px;margin:10px 0}article.opt.pilot{border-color:var(--warn-line);background:var(--warn-soft)}
article.opt.selected{border-color:var(--ok-line);background:var(--ok-soft)}article.opt.rejected{opacity:.75}article.opt h4{margin:0}
article.opt .score{font-size:18px;min-width:44px;text-align:right}dl.optdl{display:grid;grid-template-columns:max-content 1fr;gap:2px 10px;margin:6px 0}dl.optdl dt{color:var(--grey)}dl.optdl dd{margin:0}
.scores label{display:flex;flex-direction:column;gap:2px;max-width:170px}
.planform>.btn{align-self:flex-start}
