:root{--ink:#10201C;--muted:#56615A;--line:#DCE6E2;--ground:#F7F9F8;--green:#1F6F5C;--blue:#1F5F99}
*{box-sizing:border-box}body{margin:0;font-family:"IBM Plex Sans",system-ui,sans-serif;color:var(--ink);background:var(--ground);font-size:15px}
a{color:#164F42}.top{display:flex;gap:12px;align-items:center;padding:12px 20px;background:#fff;border-bottom:1px solid var(--line)}
.logo{width:28px;height:28px;border-radius:7px;background:var(--green);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-weight:600}
.spacer{flex:1}.muted{color:var(--muted)}.small{font-size:13px}.mono{font-family:"IBM Plex Mono",monospace}.big{font-size:20px;letter-spacing:2px}
.body{display:flex;min-height:calc(100vh - 53px)}nav{width:200px;background:#fff;border-right:1px solid var(--line);padding:14px 10px;display:flex;flex-direction:column;gap:2px}
nav a{padding:8px 10px;border-radius:7px;color:var(--ink);text-decoration:none}nav a:hover{background:#EEF4F1}
main{flex:1;padding:22px 28px;display:flex;flex-direction:column;gap:14px;min-width:0}h1{margin:0;font-size:24px;font-weight:600}.serif{font-family:Newsreader,Georgia,serif;font-weight:500}
.card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px;overflow:auto}.narrow{max-width:560px}
.row{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap}.stack{display:flex;flex-direction:column;gap:10px}.grid2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px}
button.linkish{background:none;border:0;padding:0;color:var(--green-ink,#164F42);text-decoration:underline;font:inherit;cursor:pointer;box-shadow:none}
.wrap{display:flex;flex-wrap:wrap;gap:6px 14px}.inline{display:inline-flex;gap:6px;align-items:center}
table{border-collapse:collapse;width:100%;font-size:14px}th{text-align:left;font-size:12.5px;color:var(--muted);background:#F6F8F7;padding:8px 10px;border-bottom:1px solid #E3EAE7}td{padding:8px 10px;border-bottom:1px solid #EEF3F1;vertical-align:top}
.pill{padding:3px 10px;border-radius:999px;font-size:12.5px;font-weight:600;display:inline-block}.g{background:#E6F2EE;color:#164F42}.b{background:#E3EDF7;color:var(--blue)}.n{background:#EEF2F0;color:#46524A}.a{background:#FFF1DA;color:#7A4800}
button,.btn{font:inherit;font-weight:600;padding:9px 16px;border-radius:8px;border:0;background:var(--green);color:#fff;cursor:pointer;text-decoration:none;display:inline-block}
.btn2,button.btn2{background:#fff;color:var(--ink);border:1px solid #C8D5D0;font-weight:400;padding:8px 14px;border-radius:8px;text-decoration:none}button.small{padding:5px 10px;font-size:13px}
input,select,textarea{font:inherit;padding:8px 10px;border:1px solid #C8D5D0;border-radius:8px;background:#fff}label{display:flex;flex-direction:column;gap:4px;font-size:14px}
label.check{flex-direction:row;align-items:flex-start;gap:8px}.warn{padding:10px 14px;border-radius:10px;background:#FFF6E5;border:1px solid #F0D9A8;color:#5C3D00}
.notice{padding:8px 14px;border-radius:10px;background:#F1F7F5;border:1px solid #C9E2D9;font-size:14px}
.help{display:flex;gap:10px;padding:10px 14px;border-radius:10px;background:#EEF4FB;border:1px solid #C9DAEE;color:#1D3A57;font-size:14px;line-height:1.5}
.help .q{flex-shrink:0;width:22px;height:22px;border-radius:999px;background:var(--blue);color:#fff;font-weight:700;display:inline-flex;align-items:center;justify-content:center}
.model{flex-direction:row;align-items:center;gap:10px;border:1px solid var(--line);border-radius:10px;padding:8px 12px}.model span:nth-child(2){flex:1}.model.off{opacity:.45}
.chk{padding:8px 0;border-bottom:1px solid #EEF3F1}.chk.bad b{color:#9A5B00}.answer{margin-top:6px;padding:8px 10px;background:#F1F7F5;border-radius:8px}
.rules{background:#F7F9F8;border-radius:8px;padding:8px 12px;font-size:13px}.rules pre{white-space:pre-wrap;margin:4px 0 0}.revoked{opacity:.5}
/* protected viewer */
body.viewer{background:#2B332E;color:#E1E8E3;user-select:none;-webkit-user-select:none;display:flex;flex-direction:column;height:100vh}
.viewer header,.viewer footer{display:flex;gap:14px;align-items:center;padding:12px 20px;background:#1D2420}.viewer footer{justify-content:center;font-size:14px}
.viewer a{color:#7FD1B9}.pill.dark{background:#34443A;color:#E1E8E3}.stage{flex:1;display:flex;align-items:center;justify-content:center;gap:24px;min-height:0}
.stage img{max-height:100%;max-width:70vw;background:#fff;pointer-events:none}.nav-btn{font-size:28px;text-decoration:none;border:1px solid #56615A;border-radius:999px;width:48px;height:48px;display:flex;align-items:center;justify-content:center}
#brief{position:fixed;right:16px;top:64px;width:300px;max-height:calc(100vh - 120px);overflow:auto;background:#34443A;border-radius:10px;padding:14px;font-size:14px;line-height:1.45;user-select:text}#brief p{margin:8px 0}#brief .imp{display:inline-block;padding:1px 8px;border-radius:999px;background:#56615A;font-size:12px}#brief .imp.High{background:#8A3B2E}#brief .note{color:#A9B4AD;font-size:12px}@media(max-width:1100px){#brief{position:static;width:auto;margin:8px 16px;max-height:none}}
#shield{display:none;position:fixed;inset:0;background:#1D2420;color:#E1E8E3;align-items:center;justify-content:center;font-size:20px}body.hidden #shield{display:flex}body.hidden .stage{filter:blur(30px)}
@media print{body{display:none!important}}
.row input{flex:1}
.pagebox{position:relative;line-height:0}#pg{background:#fff;display:block}#fence{position:absolute;left:0;top:0;pointer-events:none}
@media print{body *{display:none!important}body::after{content:"Printing is not allowed in this room.";display:block}}
.flagged{font-size:17px;background:#FFF3B0;padding:8px 10px;border-radius:6px}.flagrow{margin-top:4px}
.emergency{border:1px solid #E7B8A8}.danger{background:#9A2A00;color:#fff}
.board{display:grid;grid-template-columns:repeat(5,minmax(170px,1fr));gap:12px;overflow-x:auto}.col{background:#EEF3F1;border-radius:12px;padding:10px;display:flex;flex-direction:column;gap:8px;min-height:160px}
.colhead{display:flex;justify-content:space-between;align-items:center}.dealcard{background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px;display:flex;flex-direction:column;gap:3px;color:var(--ink);text-decoration:none}.dealcard:hover{border-color:var(--green)}
@media(max-width:900px){.board{grid-template-columns:repeat(5,200px)}.grid2{grid-template-columns:1fr}}
/* owner view: the seller's own documents, page image beside selectable text */
body.owner-viewer{display:flex;flex-direction:column;height:100vh;margin:0;background:#F7F9F8;color:#10201C}
.owner-viewer header{display:flex;gap:14px;align-items:center;padding:12px 20px;background:#FFFFFF;border-bottom:1px solid #DCE6E2;flex-wrap:wrap}
.ov-body{flex:1;display:flex;gap:20px;padding:16px 20px;min-height:0;flex-wrap:wrap}
.ov-page{flex:1 1 420px;display:flex;flex-direction:column;justify-content:flex-start;align-items:flex-start;gap:8px;min-height:0;overflow:auto}
.ov-page img{flex:none;display:block;max-width:100%;height:auto;border:1px solid #DCE6E2;background:#fff}
.owner-viewer header .ov-nav{gap:14px;justify-content:flex-start}.owner-viewer header{padding:8px 20px}
.ov-nav{display:flex;justify-content:space-between;align-items:center}
.ov-text{flex:1 1 420px;display:flex;flex-direction:column;gap:8px;min-height:0;overflow:auto;background:#fff;border:1px solid #DCE6E2;border-radius:8px;padding:14px}
.ov-tools{display:flex;gap:12px;align-items:center;position:sticky;top:-14px;background:#fff;padding:6px 0}
#doc-text pre{white-space:pre-wrap;font:15px/1.5 Georgia,serif;margin:0 0 16px;user-select:text}
#doc-text mark{background:#FFE58A;outline:2px solid #E6A000}
.ov-flag{background:#FFF7D6;border:1px solid #F0D27A;padding:6px 10px;border-radius:6px;margin:0}
/* spacing: siblings inside cards and pages never touch */
.card:not(.stack)>*+*{margin-top:14px}.card>p:first-child,.card>h1:first-child{margin-top:0}
main>form+form,.toolbar{margin-top:4px}.toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:12px 0 0;border-top:1px solid #EEF3F1}
.toolbar .lbl{font-weight:600;font-size:14px;min-width:120px}.toolbar select{min-width:150px}
.empty{padding:22px;text-align:center;color:var(--muted);font-size:14px}
/* index tree */
tr.folder td{background:#F3F7F5;font-weight:600;cursor:pointer;border-bottom:1px solid #DCE6E2}tr.folder .count{font-weight:400;color:var(--muted);font-size:13px;margin-left:6px}
tr.folder .caret{display:inline-block;width:14px;transition:transform .15s}tbody.closed .caret{transform:rotate(-90deg)}tbody.closed tr.file{display:none}
td.indent{padding-left:26px}.viewers{font-size:12.5px;color:var(--muted)}.selcount{font-size:13px;color:var(--muted)}
details.more>summary{cursor:pointer;color:#164F42;font-size:14px}details.more[open]>summary{margin-bottom:10px}
.qr{display:flex;gap:18px;align-items:flex-start;flex-wrap:wrap}.qr svg{width:180px;height:180px;background:#fff;border:1px solid var(--line);border-radius:8px;padding:6px}
ol.steps{margin:0;padding-left:20px;line-height:1.6;font-size:14px}.doclink{font-size:13px;margin-left:4px}
.grid-users{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(280px,1fr);gap:14px}.nowrap{white-space:nowrap}
@media(max-width:1000px){.grid-users{grid-template-columns:1fr}}
[hidden]{display:none!important}
/* v0.10: menu groups, 1-2-3 steps, test banner, model groups, folder browser */
nav .navh{display:block;margin:18px 0 4px;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#7a857c}
nav .navh:first-child{margin-top:0}
nav a.on{font-weight:700;color:#164F42}
.testbar{background:#fff4d6;border:1px solid #e8c766;border-radius:10px;padding:10px 14px;margin-bottom:14px;font-size:14px}
ol.steps3{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:0;margin:0 0 18px}
ol.steps3 li a{display:flex;gap:10px;align-items:center;padding:10px 12px;border:1px solid #DCE6E2;border-radius:10px;background:#fff;text-decoration:none;color:inherit;height:100%}
ol.steps3 li .n{flex:none;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-weight:700;background:#EEF3F1;color:#55605a}
ol.steps3 li.now a{border-color:#1F6F5C;box-shadow:0 0 0 2px #1F6F5C22}
ol.steps3 li.now .n{background:#1F6F5C;color:#fff}
ol.steps3 li.done .n{background:#E3F1EC;color:#164F42}
ol.steps3 li.next{opacity:.75}
ol.steps3 li{display:flex;flex-direction:column;gap:6px}ol.steps3 li a{flex:1}ol.steps3 li form.inline,ol.steps3 li>button{align-self:flex-start;margin-left:12px}
@media (max-width:760px){ol.steps3{grid-template-columns:1fr}}
.mgroup{border:1px solid #E1E9E6;border-radius:10px;padding:10px 12px}
.mgroup>b{display:block;margin-bottom:6px}
.mstate{font-size:13px;margin:0 0 6px}
.mstate.ok{color:#164F42}.mstate.no{color:#9a5b00}
table.folders td{padding:6px 8px}
.blockers li{margin:6px 0}
.stack.wide{max-width:860px}
.tabs{display:flex;gap:6px;margin:0 0 14px;border-bottom:1px solid #DCE6E2}.tabs a{padding:8px 14px;text-decoration:none;color:#55605a;border-bottom:2px solid transparent}.tabs a.on{color:#164F42;border-bottom-color:#1F6F5C;font-weight:700}
.heat{display:flex;flex-wrap:wrap;gap:2px}.heat span{display:inline-block;min-width:22px;padding:2px 3px;font-size:11px;text-align:center;background:#b3541e;color:#fff;border-radius:3px}
.card.signed{border-color:#1F6F5C;background:#F1F7F5}b.ok{color:#164F42}
input.find{width:100%;max-width:420px;margin:0 0 8px}
.findinfo{margin-left:8px}
tbody.grp.closed tr.file[hidden]{display:none}
header.top a.brand{display:flex;align-items:center;gap:8px;color:inherit;text-decoration:none}
.deal{border-left:6px solid #2563eb}.deal.g{border-left-color:#1F6F5C}.deal.a{border-left-color:#d97706}
.big{font-size:1.2em}.kpis{display:flex;gap:18px;flex-wrap:wrap}.kpis div{display:flex;flex-direction:column}
.kv{font-size:1.4em;font-weight:600}a.attn{display:block;color:#b45309}
ol.steps3.mini{margin:4px 0}
.answer{white-space:pre-line}
.progress{height:10px;background:#E3EAE7;border-radius:6px;overflow:hidden}.progress span{display:block;height:100%;background:#1F6F5C;transition:width .5s}
button.ready{box-shadow:0 0 0 3px #C9E5DB}
.tabs a{margin-right:4px}

.vwrap{flex:1;display:flex;min-height:0}.vwrap .stage{flex:1}
.vside{width:290px;flex:none;overflow:auto;padding:14px;background:#232B26;font-size:14px}.vside.left{border-right:1px solid #34443A}.vside.right{border-left:1px solid #34443A}
.vside textarea,.vside select{width:100%;background:#1D2420;color:#E1E8E3;border:1px solid #46524A;border-radius:6px;padding:6px;user-select:text;-webkit-user-select:text}
.vflag{margin:8px 0;line-height:1.35}.pill.r{background:#F7D9D4;color:#7A1F12}
@media (max-width:1100px){.vside{width:220px}}
.quick{border-left:6px solid #1F6F5C;background:#FAFCFB}.quick.done{border-left-color:#1F6F5C}
/* v0.20 seller: equal-height default cards, wide seller Q&A, steps grid for any number of steps, request matching */
ol.steps3{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
.defaults{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;align-items:stretch}
.defaults .dcard{display:flex;flex-direction:column;gap:6px;border:1px solid var(--line);border-radius:10px;padding:12px 14px;background:#FAFBF9}
.defaults .dcard>b{line-height:1.3}.defaults .dcard>p{flex:1;margin:0}.defaults .dlinks{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:auto}
.qa-seller{display:block}.qa-seller>.stack{display:none}.qa-seller>.card{width:100%}
details.prep>summary{cursor:pointer}.prepgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;margin-top:10px}
form.draftform{display:flex;flex-wrap:wrap;gap:6px;align-items:flex-start;margin-top:6px}
form.draftform textarea.draft{flex:1 1 320px;max-width:640px;min-height:2.6em;font-size:13px}
.matchtbl select{max-width:320px}.conf{font-variant-numeric:tabular-nums}
/* v0.20 buyer: live round progress (a real <progress>, no inline styles under the CSP) and sticky results tabs */
progress.bar{width:100%;height:12px;border:0;border-radius:6px;background:#E3EAE7;accent-color:#1F6F5C;overflow:hidden;-webkit-appearance:none;appearance:none}
progress.bar::-webkit-progress-bar{background:#E3EAE7;border-radius:6px}progress.bar::-webkit-progress-value{background:#1F6F5C;border-radius:6px;transition:width .5s}
progress.bar::-moz-progress-bar{background:#1F6F5C;border-radius:6px}
.progress-card.paused{border-color:#E0B354;background:#FFFBF0}.progress-card.paused progress.bar::-webkit-progress-value{background:#C58B12}.progress-card.paused progress.bar::-moz-progress-bar{background:#C58B12}
.tabs.reptabs{position:sticky;top:0;z-index:20;background:var(--ground);padding-top:6px;margin-top:-6px}
.agreements td.fp{cursor:help;white-space:nowrap}.agreements th{white-space:nowrap}
/* v23 workflow: stage strip, preset cards, task inbox */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}
.grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}
.preset{cursor:pointer}.preset.on{border-color:#164F42;box-shadow:0 0 0 1px #164F42}fieldset{border:0;padding:0;margin:0}
.wf-strip{margin:4px 0 12px}.wf-steps{list-style:none;display:flex;flex-wrap:wrap;gap:6px;padding:0;margin:0}
.wf-step{display:flex;gap:8px;align-items:flex-start;padding:6px 10px;border:1px solid #DCE6E2;border-radius:10px;background:#fff;min-width:130px}
.wf-mark{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:#EEF2F0;color:#26302A;font-size:12px;font-weight:700;flex:none}
.wf-done .wf-mark{background:#E6F2EE;color:#164F42}.wf-running .wf-mark,.wf-waiting .wf-mark{background:#E3EDF7;color:#1D4F82}
.wf-waiting_review .wf-mark,.wf-needs_input .wf-mark{background:#FFF1DA;color:#7A4800}.attn-card{border-left:4px solid #D98E04}.wf-failed .wf-mark,.wf-stopped .wf-mark{background:#F7D9D4;color:#7A1F12}
.wf-current{border-color:#26302A;border-width:2px}.wf-skipped{opacity:.8}
/* ===================================================================== v23 design layer
   Calm and focused: one accent colour for the one primary action on a page, everything else quiet.
   Typography carries hierarchy; colour is never the only signal; contrast >= 4.5:1. */
:root{--ink:#14201A;--ink2:#3F4B44;--muted:#5B665F;--line:#E2E6DF;--line2:#EEF3F1;--ground:#F7F8F5;--paper:#FFFFFF;
  --green:#1F6F5C;--green-ink:#164F42;--green-soft:#E6F2EE;--blue:#1E5A91;--amber-soft:#FFF4DF;--amber-ink:#6E4300;
  --red-soft:#FBE6E2;--red-ink:#7A1F12;--radius:12px;--shadow:0 1px 2px rgba(20,32,26,.05),0 2px 8px rgba(20,32,26,.04);
  --focus:0 0 0 3px rgba(31,111,92,.35)}
body{font-family:Inter,"IBM Plex Sans","Segoe UI",system-ui,-apple-system,sans-serif;font-size:15px;line-height:1.5;
  -webkit-font-smoothing:antialiased;background:var(--ground)}
a{color:var(--green-ink);text-underline-offset:2px}a:hover{color:var(--green)}
:focus-visible{outline:none;box-shadow:var(--focus);border-radius:6px}
h1{font-size:26px;font-weight:650;letter-spacing:-.01em;line-height:1.25}h2{font-size:17px;font-weight:650;margin:0 0 4px}
.lead{font-size:16px;color:var(--ink2);max-width:72ch;margin:0}
/* top bar */
.top{height:56px;padding:0 22px;background:rgba(255,255,255,.92);backdrop-filter:saturate(1.4) blur(8px);
  border-bottom:1px solid var(--line);position:sticky;top:0;z-index:30}
.top .brand b{font-size:16px;letter-spacing:-.01em}.logo{border-radius:8px;background:var(--ink)}
/* left navigation: quiet groups, clear current page */
.body{min-height:calc(100vh - 56px)}
nav{width:232px;background:transparent;border-right:1px solid var(--line);padding:18px 12px;gap:1px;position:sticky;top:56px;
  height:calc(100vh - 56px);overflow-y:auto}
nav a{padding:7px 12px;border-radius:8px;color:var(--ink2);font-size:14.5px;position:relative}
nav a:hover{background:#EDF1EA;color:var(--ink)}
nav a.on{background:var(--paper);color:var(--ink);font-weight:650;box-shadow:var(--shadow)}
nav a.on::before{content:"";position:absolute;left:-12px;top:8px;bottom:8px;width:3px;border-radius:3px;background:var(--green)}
nav .navh{margin:20px 12px 6px;font-size:11px;letter-spacing:.08em;color:#6B766F}
main{padding:28px 36px 48px;gap:16px;max-width:1280px}
/* surfaces */
.card{border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)}
table{font-size:14px}th{background:transparent;font-weight:600;color:var(--muted);border-bottom:1px solid var(--line);
  text-transform:none;letter-spacing:0}td{border-bottom:1px solid var(--line2)}tbody tr:hover td{background:#F9FBFA}
/* buttons: one primary per page, the rest secondary */
button,.btn{border-radius:9px;padding:9px 16px;font-weight:600;background:var(--green);transition:background .15s,box-shadow .15s}
button:hover,.btn:hover{background:var(--green-ink)}
button.secondary,.btn.secondary,.btn2,button.btn2{background:var(--paper);color:var(--ink);border:1px solid #C8D5D0;font-weight:550}
button.secondary:hover,.btn2:hover{background:#F1F5F3;border-color:#B9C2B4}
button.small,button.secondary.small{padding:5px 10px;font-size:13px}
button.danger,.danger{background:#9A2A00}button:disabled{opacity:.5;cursor:not-allowed}
input,select,textarea{border:1px solid #C8D5D0;border-radius:9px;padding:9px 11px;transition:border-color .15s,box-shadow .15s}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--green);box-shadow:var(--focus)}
label{color:var(--ink2);font-weight:500}
/* status */
.pill{font-weight:600;font-size:12px;padding:2px 9px}
.g{background:var(--green-soft);color:var(--green-ink)}.a{background:var(--amber-soft);color:var(--amber-ink)}
.r,.pill.r{background:var(--red-soft);color:var(--red-ink)}
.warn{border-radius:10px;background:var(--amber-soft);border-color:#EED7A6;color:#4F3300}
.notice{background:var(--green-soft);border-color:#C9E2D9}
.help{background:#EEF4FA}
/* "simple first": advanced options folded away */
details.advanced{border-top:1px solid var(--line);padding-top:12px}
details.advanced>summary{cursor:pointer;color:var(--ink2);font-weight:600;list-style:none}
details.advanced>summary::before{content:"+ ";color:var(--green)}details.advanced[open]>summary::before{content:"– "}
.hero{display:flex;gap:16px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:22px;
  background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.hero .primary{font-size:16px;padding:12px 22px}
pre.report-text{white-space:pre-wrap;font:14px/1.55 inherit;background:#F9FBFA;border:1px solid var(--line2);border-radius:8px;padding:12px}
.legal{max-height:320px;overflow:auto;border:1px solid var(--line);border-radius:8px;padding:12px 16px;background:#FCFCFA}
@media (max-width:900px){nav{position:static;height:auto;width:100%;border-right:0;border-bottom:1px solid var(--line);flex-direction:row;flex-wrap:wrap}
  nav .navh{width:100%;margin:10px 4px 2px}.body{flex-direction:column}main{padding:20px 16px}}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
/* only the side menu is a column: other <nav> elements (workflow strip, tabs) stay inline */
nav.wf-strip,nav.tabs,main nav{width:auto;height:auto;position:static;border:0;padding:0;background:transparent;display:block;overflow:visible}
.wf-steps{gap:8px}.wf-step{flex:1 1 150px}
ol.steps3.alldone{display:none}
button.is-busy,button.is-busy:hover{background:#9AA59D;color:#fff;cursor:progress}
a.btn.is-busy{background:#9AA59D;cursor:progress;pointer-events:none}

/* v25 structure */
.admin-link{display:block;padding:8px 10px;border-radius:8px;text-decoration:none;color:inherit}.admin-link:hover{background:#F1F5F3}
ol.onboard{list-style:none;padding:0;display:grid;gap:10px}ol.onboard li.on{border-color:#1F6F5C;box-shadow:0 0 0 2px rgba(31,111,92,.25)}ol.onboard li.done{opacity:.85}
ol.onboard .n{display:inline-flex;width:26px;height:26px;border-radius:50%;background:#EEF3F1;align-items:center;justify-content:center;font-weight:650;font-size:13px}
nav .navh.proj{margin-top:14px}nav a.step{display:flex;gap:8px;align-items:center}nav a.step .sn{display:inline-flex;width:20px;height:20px;border-radius:50%;background:#EEF3F1;font-size:11.5px;font-weight:650;align-items:center;justify-content:center;flex:none}nav a.step.done .sn{background:#E6F2EE;color:#164F42}
/* v26 seller Q&A */
.qa-filter{display:flex;gap:6px;flex-wrap:wrap;margin:6px 0 12px}.qa-filter a{padding:6px 12px;border-radius:999px;border:1px solid #DCE6E2;text-decoration:none;color:inherit;font-size:14px;background:#fff}
.qa-filter a.on{background:#E6F2EE;border-color:#1F6F5C;color:#164F42;font-weight:600}.qa-filter .n{display:inline-block;min-width:18px;padding:0 6px;border-radius:9px;background:#EEF3F1;font-size:12px;text-align:center}
.qa-actbar{gap:10px;justify-content:flex-start}.qmeta{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:4px}.qmeta select{font-size:13px;padding:3px 6px}
.qtext{line-height:1.5}.draftform{display:flex;gap:8px;align-items:flex-start;margin-top:8px}.draftform textarea{flex:1}.approveform{margin-top:6px;gap:6px}
.tablewrap{overflow-x:auto}table.experts td,table.experts th{text-align:center}table.experts td:first-child,table.experts th:first-child{text-align:left}
/* v26 document by document */
.doccard{padding:16px 18px;margin-bottom:12px}.dochead{display:grid;grid-template-columns:auto 1fr auto auto;gap:6px 14px;align-items:center}
.docno{font-size:13px;color:#56615A;background:#EEF3F1;border-radius:6px;padding:2px 8px}.docname{min-width:0;overflow-wrap:anywhere}
.docstatus,.docrev{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.docstatus input{width:200px}
.docsum{margin:10px 0 6px;color:#3F4B44;line-height:1.5}
.flags{border-top:1px solid #EEF3F1}.flag{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,44%);gap:10px 18px;padding:10px 0;border-bottom:1px solid #EEF3F1}
.flag:last-child{border-bottom:0}.flagtext{line-height:1.5;overflow-wrap:anywhere}.flagform{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.flagform input{flex:1;min-width:140px}.flagform .saved{flex-basis:100%}.flagqs{margin:6px 0 0 0;padding-left:18px;font-size:13px}
table.compact td,table.compact th{padding:6px 8px}.review-split progress{width:120px;vertical-align:middle}
@media (max-width:1000px){.dochead{grid-template-columns:auto 1fr}.dochead form{grid-column:1/-1}.flag{grid-template-columns:1fr}}
.reviewgo{display:flex;gap:8px;flex-wrap:wrap;margin:6px 0 10px}

/* v27 nav sub-items under a step */
nav a.sub{padding-left:26px;font-size:13.5px;color:var(--ink2)}nav a.sub.on::before{left:-12px}
form[role=search] input.grow{flex:1;min-width:220px}
/* v27 seller preparation */
.prepflag{display:grid;grid-template-columns:minmax(0,1fr) minmax(200px,260px);gap:12px;align-items:start;padding:10px 0;border-top:1px solid #EEF3F1}.flagrev input,.flagrev select{width:100%}.prepflag textarea{width:100%;margin-top:4px}
.prepflagrev{display:flex;flex-direction:column;gap:6px}.prepflagrev input,.prepflagrev select{width:100%}.prepq textarea{width:100%}.prep-lock{border-left:4px solid var(--green)}
@media (max-width:760px){.prepflag{grid-template-columns:1fr}}
.hubgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}.hubg{border:1px solid var(--line,#E1E9E6);border-radius:10px;padding:12px 14px}.hublist{margin:8px 0 0;padding-left:18px}.hublist li{margin:4px 0}
.grid-users select[name=team]{width:auto;max-width:130px;padding-right:22px}.grid-users td{vertical-align:top}
.grid-users{grid-template-columns:minmax(0,2.3fr) minmax(250px,1fr)}@media (max-width:1100px){.grid-users{grid-template-columns:1fr}}
.askgrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:start}.askgrid h2{margin:0}@media (max-width:1000px){.askgrid{grid-template-columns:1fr}}
/* v28 background jobs */
.jobs{background:var(--paper,#fff);border:1px solid #C9E2D9;border-radius:10px;padding:10px 14px;margin:0 0 14px;display:grid;gap:6px}
.job{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.job .jl{font-weight:600}.job progress{width:180px;max-width:40vw}
.spin{width:12px;height:12px;border:2px solid #8FB8AC;border-top-color:transparent;border-radius:50%;display:inline-block;animation:sp 1s linear infinite}
@keyframes sp{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spin{animation:none}}
button.is-busy,button:disabled{background:#c9cfc5!important;border-color:#c9cfc5!important;color:#3d463f!important;cursor:progress}
.dothis .dtn-list{display:grid;gap:4px}.setbtn{display:grid;gap:2px;padding:10px 12px;border:1px solid #DCE6E2;border-radius:9px;text-decoration:none;color:inherit}.setbtn:hover{border-color:#164F42}
.modelgrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,280px);gap:18px;align-items:start}.mside{position:sticky;top:12px}@media (max-width:860px){.modelgrid{grid-template-columns:1fr}}
/* v29 support requests: one request per block, question and reply never overlap */
.support .ticket{border-top:1px solid #DCE6E2;padding-top:8px}.support .ticket:first-of-type{border-top:0}
.support .ticket p{margin:0}.support .answer{display:block;position:static;background:#F1F7F5;border-radius:6px;padding:6px 8px}
.folderlist{gap:2px}
select{max-width:100%}.grid2>*{min-width:0}

.nextbar{display:flex;gap:12px;align-items:center;justify-content:flex-end;flex-wrap:wrap;margin-top:18px}.nextbar .small{margin-right:auto}
.filterbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:flex-start}.filterbar .small{margin-left:8px}
.pill{white-space:nowrap}

/* v32: three jumping dots after "Running" (static CSS, CSP-safe); still dots under reduced motion */
.dots{display:inline-flex;gap:2px;margin-left:3px;vertical-align:middle}
.dots i{width:4px;height:4px;border-radius:50%;background:currentColor;opacity:.75;animation:dotjump 1.2s infinite ease-in-out}
.dots i:nth-child(2){animation-delay:.15s}.dots i:nth-child(3){animation-delay:.3s}
@keyframes dotjump{0%,60%,100%{transform:translateY(0)}30%{transform:translateY(-4px)}}
@media (prefers-reduced-motion: reduce){.dots i{animation:none}}
.jeta{color:var(--ink,#222)}
/* v32 readiness: in-place saves, decided flags fold, High / All tabs, highest-impact risks */
.js .js-inplace .save{display:none}
.js .js-inplace.dirty .save,.js .js-inplace .save.always{display:inline-block}
.saved{color:#2e7d32}
.prepflag .flagline{display:none}
.prepflag.decided .flagline{display:block;padding:4px 0}
.js .prepflag.decided:not(.editing) .flagbody{display:none}
.flags.only-high .prepflag:not(.sev-high){display:none}
.doctabs{display:flex;gap:6px;margin:6px 0}
.doctab{font-size:.85em;padding:2px 10px;border:1px solid var(--line,#ccc);background:transparent;border-radius:12px;cursor:pointer}
.doctab.on{background:var(--ink,#222);color:#fff;border-color:var(--ink,#222)}
.toplist{margin:0;padding-left:1.4em;display:flex;flex-direction:column;gap:10px}
.topitem{display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between;align-items:flex-start}
.topitem .toptext{flex:1 1 420px;min-width:0}
.topitem.decided .toptext b{font-weight:normal;color:var(--muted,#666)}
.misslist{width:100%;table-layout:fixed}
.misslist td{vertical-align:top;overflow-wrap:anywhere}
.misslist th:nth-child(1){width:90px}.misslist th:nth-child(3){width:30%}.misslist th:nth-child(4){width:22%}
details.inline{display:inline}
.docdone{opacity:.85}
.tabs .tabgroup{font-size:.75em;text-transform:uppercase;letter-spacing:.04em;color:var(--muted,#666);align-self:center;margin-left:10px}
.pager{flex-wrap:wrap;gap:4px}

.askgrid.one-col{grid-template-columns:1fr}
table.hits{width:100%;table-layout:fixed}table.hits td{overflow-wrap:anywhere;vertical-align:top}
table.hits th:nth-child(1){width:70px}table.hits th:nth-child(4){width:90px}
/* v32: the owner's viewer header is a row, not the sidebar nav */
.owner-viewer header nav.ov-nav,header nav.ov-nav{width:auto;height:auto;position:static;border:0;padding:0;background:transparent;flex-direction:row;display:flex;align-items:center;gap:8px;min-height:0}

.qtable{width:100%;table-layout:fixed}.qtable td{vertical-align:top;overflow-wrap:anywhere}
.qtable th:nth-child(1){width:60px}.qtable th:nth-child(2){width:120px}.qtable th:nth-child(4){width:190px}.qtable th:nth-child(5){width:32%}
.qtable th a{color:inherit;text-decoration:none}.qtable th a.on{text-decoration:underline}

.fixpath{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:4px}.fixpath .fixphase{margin-top:6px;text-transform:uppercase;letter-spacing:.04em}
.fixpath .fix-skipped a{color:var(--muted,#666)}.fixbar{gap:8px;align-items:center;padding:8px 12px}

.is-disabled{opacity:.5;pointer-events:none;cursor:not-allowed}.steps3 li.locked a{cursor:not-allowed;opacity:.6}
fieldset.plain{border:0;padding:0;margin:0;min-width:0;display:flex;flex-direction:column;gap:8px}
/* v35 (item 50): a project step heading in the menu ("1. Readiness") with its stage pages under it */
nav .navstep{display:block;padding:7px 12px 2px;font-size:14.5px;color:var(--ink2,#333);font-weight:600}
.readystrip{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.readystrip a.pill{text-decoration:none}
/* v36 (item 53a): compact "Next steps": names and state in one row, details on click */
.setupnext.compact{gap:6px}.setupnext .sn-list li{display:flex;gap:8px;align-items:flex-start;min-width:0}
.setupnext .sn-list .n{flex:none;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-weight:700;background:#EEF3F1;color:#55605a;font-size:.85em}
.setupnext .sn-list li.now .n{background:#1F6F5C;color:#fff}.setupnext .sn-list li.done .n{background:#E3F1EC;color:#164F42}
.setupnext .sn-more{min-width:0}.setupnext .sn-more>summary{cursor:pointer;list-style:none}.setupnext .sn-more>summary::-webkit-details-marker{display:none}
.setupnext .sn-more>summary::after{content:" ▸";color:#6b756e;font-size:.85em}.setupnext .sn-more[open]>summary::after{content:" ▾"}
.setupnext .sn-more[open]{display:flex;flex-direction:column;gap:6px}
/* v36 (item 53b): a running stage's mark jumps (the dots) and its card pulses; still under reduced motion */
.wf-running .wf-mark .dots{margin:0;gap:1px}.wf-running .wf-mark .dots i{width:3px;height:3px}
.wf-running{animation:wfpulse 1.8s ease-in-out infinite}
@keyframes wfpulse{0%,100%{box-shadow:0 0 0 0 #1D4F8200}50%{box-shadow:0 0 0 3px #1D4F8233}}
@media (prefers-reduced-motion: reduce){.wf-running{animation:none}.wf-running .wf-mark .dots i{animation:none}}
/* v36 (item 53c): the one progress box */
.jobs .jpos{font-weight:400}.jobs .jleave{margin:2px 0 0}.jobs .job .jeta{font-weight:600}
/* v36 (item 53f): the Q&A workflow panel */
.qaflow{margin:0 0 12px}.qaflow ol.steps3{margin:4px 0 0;grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}
.qaflow ol.steps3 li{display:flex;gap:8px;align-items:flex-start;padding:8px 10px;border:1px solid #DCE6E2;border-radius:10px;background:#fff;min-width:0}
.qaflow ol.steps3 li .n{width:24px;height:24px;font-size:.85em}
.qaflow ol.steps3 li.now{border-color:#1F6F5C;box-shadow:0 0 0 2px #1F6F5C22}
/* v36 (item 53g): document references under a question (seller Q&A) */
.qrefs{display:flex;flex-wrap:wrap;gap:4px 10px;margin:2px 0 4px}.qrefs a{overflow-wrap:anywhere}
/* v38 (C10): the progress strip under the header (pathway step, running work, next task) */
.pathstrip{background:#fff;border-bottom:1px solid var(--line);padding:8px 28px;display:grid;gap:6px}
.pathstrip .ps-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px}
.pathstrip .ps-steps{list-style:none;display:flex;flex-wrap:wrap;gap:4px;margin:0;padding:0}
.pathstrip .ps-steps li{font-size:13px;padding:2px 10px;border-radius:999px;background:#EEF3F1;color:#56615A;white-space:nowrap}
.pathstrip .ps-steps li a{color:inherit;text-decoration:none}
.pathstrip .ps-steps li.ps-done{background:#E3F1EC;color:#164F42}
.pathstrip .ps-steps li.ps-now{background:#1F6F5C;color:#fff;font-weight:650}
.pathstrip .ps-n{font-weight:700}
.pathstrip .ps-next{margin-left:auto}
.pathstrip .ps-next .btn{white-space:normal}
.pathstrip .jobs{margin:0;padding:6px 10px}
@media (max-width:760px){.pathstrip{padding:8px 16px}.pathstrip .ps-next{margin-left:0}}
/* v38 (C4, C5): Required / Optional readiness steps, the Paid option tag */
.navpaid{font-size:11px;font-weight:600;color:#7A4B00;margin:-2px 0 4px 24px}
.req-tag{background:#1F6F5C;color:#fff}
.steps3 li .stepact{display:flex;gap:8px;align-items:center;margin:4px 2px 0}
.steps3 li.skipped{opacity:.6}
.optional-offer{display:flex;flex-wrap:wrap;gap:4px 6px;align-items:center}
.paywall .btn[disabled],.paywall button[disabled]{opacity:.55;cursor:not-allowed}

/* ===================================================================== v40 design layer
   Calm and professional: white surfaces on a near-white ground, one teal accent (Haihtuva palette), thin light
   lines, small radius, no heavy colour blocks. Mint is a highlight only. Contrast >= 4.5:1 for all text. */
:root{--ink:#10201C;--ink2:#33443F;--muted:#55665F;--line:#DCE6E2;--line2:#EAF0EE;--ground:#F7F9F8;--paper:#FFFFFF;
  --teal:#1F6F5C;--teal-hover:#164F42;--mint:#7FD1B9;--mint-soft:#EAF7F2;
  --green:#1F6F5C;--green-ink:#164F42;--green-soft:#E6F2EE;--blue:#2A5C8A;
  --amber-soft:#FFF7E6;--amber-ink:#6B4500;--amber-line:#F1DFB4;--red-soft:#FCEDEA;--red-ink:#8A2A1C;--red-line:#F0C9C1;
  --radius:10px;--shadow:none;--shadow-hover:0 2px 12px rgba(16,32,28,.08);--focus:0 0 0 3px rgba(31,111,92,.32)}
body{background:var(--ground);color:var(--ink);font-size:14.5px;line-height:1.5}
a{color:var(--green-ink)}a:hover{color:var(--teal)}
:focus-visible{outline:2px solid var(--teal);outline-offset:2px;box-shadow:none}
.skip{position:absolute;left:-9999px;top:8px;z-index:100;background:var(--paper);padding:8px 12px;border-radius:8px;border:1px solid var(--line)}
.skip:focus{left:12px}
#main:focus{outline:none}
/* headings: one scale */
h1{font-size:24px;font-weight:600;letter-spacing:-.01em;line-height:1.25;margin:0}
h2{font-size:18px;font-weight:600;letter-spacing:-.005em;line-height:1.3;margin:0 0 4px}
h3{font-size:15px;font-weight:600;margin:0 0 4px}
.card h2,.ct,.big{font-size:16px;font-weight:600;letter-spacing:0;line-height:1.35;margin:0}
.ct{display:flex;gap:8px;align-items:center}
.eyebrow{display:block;font-size:11.5px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);margin:0}
.lead{color:var(--ink2)}
.muted{color:var(--muted)}
/* icons */
svg.ic{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;vertical-align:-3px}
/* buttons: primary teal solid, secondary white with a border; smaller and lighter */
button,.btn,a.btn{font:inherit;font-size:14px;font-weight:600;line-height:1.35;padding:8px 14px;border-radius:8px;
  border:1px solid var(--teal);background:var(--teal);color:#fff;text-decoration:none;cursor:pointer;display:inline-block}
a.btn:visited{color:#fff}
button:hover,.btn:hover,a.btn:hover,a.btn:focus-visible{background:var(--teal-hover);border-color:var(--teal-hover);color:#fff}
.btn2,a.btn2,button.btn2,button.secondary,.btn.secondary{background:var(--paper);color:var(--ink);border:1px solid #C3D2CC;font-weight:600}
.btn2:hover,a.btn2:hover,button.btn2:hover,button.secondary:hover{background:#F1F6F4;color:var(--ink);border-color:#9DB6AD}
button.small,.btn.small,.btn2.small,a.btn.small,a.btn2.small,button.secondary.small{padding:5px 10px;font-size:13px}
button.linkish,button.linkish:hover{background:none;border:0;padding:0;color:var(--green-ink);box-shadow:none;font-weight:inherit}
button.danger,.danger,a.danger{background:#A3341F;border-color:#A3341F;color:#fff}button.danger:hover,.danger:hover{background:#7E2716;border-color:#7E2716}
.hero .primary{font-size:15px;padding:10px 18px}
input,select,textarea{border:1px solid #C3D2CC;border-radius:8px;padding:8px 10px;font-size:14px}
input:focus,select:focus,textarea:focus{border-color:var(--teal);box-shadow:var(--focus);outline:none}
/* surfaces */
.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px;box-shadow:none}
a.card:hover,a.setbtn:hover,a.dealcard:hover,a.tile:hover,a.admin-link:hover{box-shadow:var(--shadow-hover);border-color:#B9CEC6}
.quick{border-left:3px solid var(--teal);background:var(--paper)}.quick.done{border-left-color:var(--mint)}
.deal{border-left:3px solid var(--blue)}.deal.g{border-left-color:var(--teal)}.deal.a{border-left-color:#C98A12}
.hero{box-shadow:none}
.setbtn{border-color:var(--line);border-radius:8px}
.warn{background:var(--amber-soft);border:1px solid var(--amber-line);color:#4A3200;border-radius:8px}
.testbar{background:var(--amber-soft);border:1px solid var(--amber-line);border-radius:8px;color:#4A3200;margin-bottom:4px}
.notice{background:var(--green-soft);border:1px solid #CBE3DA;border-radius:8px}
.help{background:#F1F6FA;border-color:#D5E2EE;border-radius:8px}
.jobs{border-color:#CBE3DA;border-radius:8px}
/* status pills, softened */
.pill{font-size:12px;font-weight:600;padding:2px 9px;border-radius:999px;line-height:1.5}
.g,.pill.g{background:var(--green-soft);color:var(--green-ink)}
.n,.pill.n{background:#EEF2F0;color:#3E4E49}
.b,.pill.b{background:#E9F1F8;color:#24527D}
.a,.pill.a{background:var(--amber-soft);color:var(--amber-ink)}
.r,.pill.r{background:var(--red-soft);color:var(--red-ink)}
.req-tag{background:var(--teal);color:#fff}
a.attn{color:#7A4A00}
/* top bar: brand, room, global search, Ask AI, the person */
.top{height:60px;gap:12px;padding:0 20px;background:var(--paper);backdrop-filter:none;border-bottom:1px solid var(--line);z-index:40}
.logo{width:28px;height:28px;border-radius:7px;background:var(--teal);color:#fff;font-size:14px;font-weight:600}
.top .brand b{font-size:16px;font-weight:650;color:var(--ink);letter-spacing:-.01em}
.top .roomid{font-size:12.5px}
.gsearch{flex:1 1 320px;max-width:560px;margin:0 auto;position:relative;display:flex;align-items:center;min-width:180px}
.gsearch svg.ic{position:absolute;left:11px;width:16px;height:16px;color:var(--muted);pointer-events:none}
.gsearch input{width:100%;height:38px;padding:7px 12px 7px 34px;border-radius:8px;border:1px solid #C3D2CC;background:var(--ground)}
.gsearch input:focus{background:var(--paper)}
.top .who{display:flex;gap:12px;align-items:center;margin-left:auto;white-space:nowrap}
.top .who b{font-weight:600;font-size:14px}
.top .signout{font-size:14px}
.btn-ai{display:inline-flex;gap:6px;align-items:center;padding:6px 12px;border-radius:8px;border:1px solid #A9DCCB;background:var(--mint-soft);
  color:var(--green-ink);font-weight:600;font-size:14px;text-decoration:none}
.btn-ai:hover,.btn-ai[aria-expanded="true"]{background:#DCF1E9;color:var(--green-ink);border-color:var(--mint)}
.btn-ai svg.ic{width:16px;height:16px}
@media (max-width:1100px){.top .who .muted{display:none}.top .roomid{display:none}}
@media (max-width:900px){.top{height:auto;flex-wrap:wrap;padding:10px 16px;row-gap:8px}.gsearch{order:5;flex-basis:100%;max-width:none}
  nav{top:0}}
/* left navigation: quiet, compact, clear current page */
.body{min-height:calc(100vh - 60px)}
nav{width:228px;background:var(--paper);border-right:1px solid var(--line);padding:14px 10px 24px;top:60px;height:calc(100vh - 60px)}
nav a{font-size:13.5px;padding:6px 10px 6px 12px;border-radius:6px;color:var(--ink2);line-height:1.4}
nav a:hover{background:#F1F6F4;color:var(--ink)}
nav a.on{background:var(--green-soft);color:var(--green-ink);font-weight:600;box-shadow:none}
nav a.on::before{content:"";position:absolute;left:-10px;top:5px;bottom:5px;width:3px;border-radius:2px;background:var(--teal)}
nav a.sub{padding-left:24px;font-size:13px;color:var(--muted)}nav a.sub.on{color:var(--green-ink)}nav a.sub.on::before{left:-10px}
nav .navh{margin:18px 12px 4px;font-size:11px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
nav .navh:first-child{margin-top:4px}
nav .navstep{padding:8px 12px 2px;font-size:13.5px;font-weight:600;color:var(--ink)}
.navpaid{margin:-2px 0 4px 24px;font-size:11px;color:#7A4B00}
main{padding:24px 32px 48px;gap:16px;max-width:1280px}
/* v38 progress strip as a slim stepper */
.pathstrip{background:var(--paper);border-bottom:1px solid var(--line);padding:8px 24px;gap:6px}
.pathstrip .ps-row{gap:8px 16px}
.pathstrip .ps-steps{gap:0;align-items:center}
.pathstrip .ps-steps li{display:flex;align-items:center;gap:6px;background:none;padding:0;border-radius:0;font-size:13px;color:var(--muted);font-weight:400}
.pathstrip .ps-steps li+li::before{content:"";display:inline-block;width:22px;height:1px;background:#C3D2CC;margin:0 8px 0 4px}
.pathstrip .ps-steps li a{display:inline-flex;align-items:center;gap:6px;color:inherit;text-decoration:none;border-radius:6px;padding:2px 2px}
.pathstrip .ps-steps li a:hover{color:var(--ink)}
.pathstrip .ps-n{display:inline-flex;width:22px;height:22px;border-radius:50%;align-items:center;justify-content:center;font-size:12px;font-weight:600;
  border:1px solid #B5C8C0;background:var(--paper);color:var(--muted);flex:none}
.pathstrip .ps-steps li.ps-done{background:none;color:var(--ink2)}
.pathstrip .ps-steps li.ps-done .ps-n{background:var(--green-soft);border-color:#9CCBBB;color:var(--green-ink)}
.pathstrip .ps-steps li.ps-now{background:none;color:var(--ink);font-weight:650}
.pathstrip .ps-steps li.ps-now .ps-n{background:var(--teal);border-color:var(--teal);color:#fff}
.pathstrip .ps-cur{color:var(--muted)}
.pathstrip .ps-next .btn{padding:5px 12px;font-size:13px;max-width:440px;white-space:normal;line-height:1.35}
.pathstrip .jobs{border-radius:8px}
/* tables and filters */
table{font-size:14px}
th{background:#F3F6F5;color:var(--ink2);font-size:12.5px;font-weight:600;padding:8px 10px;border-bottom:1px solid var(--line);text-transform:none;letter-spacing:0}
td{border-bottom:1px solid var(--line2);padding:8px 10px}
tbody tr:hover td{background:#F6FAF8}
th.num,td.num,.num{text-align:right;font-variant-numeric:tabular-nums}
.conf,.kv,.tv{font-variant-numeric:tabular-nums}
.qa-filter a,.doctab,.chip{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:999px;border:1px solid #C3D2CC;background:var(--paper);
  color:var(--ink2);font-size:13px;font-weight:500;text-decoration:none;line-height:1.4}
.qa-filter a:hover,.doctab:hover,.chip:hover{border-color:var(--teal);color:var(--ink);background:var(--paper)}
.qa-filter a.on,.doctab.on,.chip.on,.qa-filter a[aria-current]{background:var(--teal);border-color:var(--teal);color:#fff;font-weight:600}
.qa-filter a.on .n{background:rgba(255,255,255,.22);color:#fff}
.qa-filter .n{background:#EEF2F0;color:var(--ink2)}
.filterbar a.btn.small,.filterbar a.btn2.small{border-radius:999px;font-weight:500;padding:5px 12px}
.filterbar a.btn.small{font-weight:600}
.tabs{border-bottom-color:var(--line)}.tabs a{color:var(--muted)}.tabs a.on{color:var(--green-ink);border-bottom-color:var(--teal);font-weight:600}
.tabs.reptabs{background:var(--ground)}
/* step lists (set-up pages, dashboard deal card) */
ol.steps3 li a{border-color:var(--line);border-radius:10px}
ol.steps3 li .n{background:#EEF2F0;color:var(--muted);font-weight:600}
ol.steps3 li.now a{border-color:var(--teal);box-shadow:none}
ol.steps3 li.now .n{background:var(--teal);color:#fff}
ol.steps3 li.done .n{background:var(--green-soft);color:var(--green-ink)}
.wf-step{border-color:var(--line)}.wf-current{border-color:var(--teal)}
progress.bar,progress{accent-color:var(--teal)}
/* v40 dashboard: at a glance, data coverage */
.glance{display:flex;flex-direction:column;gap:8px}
.tiles{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:12px}
.tile{display:grid;grid-template-columns:auto 1fr;grid-template-areas:"ic ic" "v v" "l l" "h h";gap:2px;padding:14px 16px;height:100%;
  background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);color:var(--ink);text-decoration:none;transition:box-shadow .15s,border-color .15s}
a.tile:hover{color:var(--ink)}
.tile .ti{grid-area:ic;display:inline-flex;width:30px;height:30px;border-radius:8px;align-items:center;justify-content:center;background:var(--mint-soft);color:var(--teal);margin-bottom:6px}
.tile .ti.r{background:var(--red-soft);color:var(--red-ink)}
.tile .tv{grid-area:v;font-size:26px;font-weight:600;line-height:1.15;letter-spacing:-.01em}
.tile .tl{grid-area:l;font-size:13px;color:var(--ink2)}
.tile .th{grid-area:h}
a.tile .tl{text-decoration:underline;text-decoration-color:transparent;text-underline-offset:2px}
a.tile:hover .tl,a.tile:focus .tl{text-decoration-color:currentColor}
.coverage table td{vertical-align:middle}
.coverage .inline svg.ic{color:var(--teal)}
.helprow{justify-content:flex-start;gap:8px 18px}
.dothis .dtn-list{gap:6px}
.kpis .kv{font-size:20px}
/* v40 search page */
.pagehead{display:flex;flex-direction:column;gap:4px}
.searchbox input{flex:1}
table.hitlist{table-layout:fixed}table.hitlist td{overflow-wrap:anywhere}
table.hitlist th:first-child{width:110px}
.ct svg.ic{color:var(--teal)}
/* v40 AI drawer */
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(440px,100vw);z-index:60;background:var(--paper);border-left:1px solid var(--line);
  box-shadow:-8px 0 28px rgba(16,32,28,.12);display:flex;flex-direction:column}
.drawer-scrim{position:fixed;inset:0;z-index:55;background:rgba(16,32,28,.18)}
.dr-head{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:start;padding:18px 18px 14px;border-bottom:1px solid var(--line)}
.dr-head h2{font-size:17px;margin:0}
.dr-mark{display:inline-flex;width:34px;height:34px;border-radius:9px;align-items:center;justify-content:center;background:var(--mint-soft);color:var(--teal)}
.dr-promise{margin:2px 0 0;font-size:13.5px;color:var(--ink2)}
.dr-close{background:none;border:1px solid transparent;color:var(--ink2);font-size:22px;line-height:1;padding:2px 8px;border-radius:6px}
.dr-close:hover{background:#F1F6F4;color:var(--ink);border-color:var(--line)}
.dr-body{flex:1;overflow:auto;padding:16px 18px;display:flex;flex-direction:column;gap:10px}
.dr-sugg{display:flex;flex-direction:column;gap:8px}
.dr-sugg button{display:flex;gap:10px;align-items:center;justify-content:space-between;text-align:left;width:100%;background:var(--paper);color:var(--ink);
  border:1px solid var(--line);border-radius:8px;padding:10px 12px;font-weight:500;font-size:14px}
.dr-sugg button:hover{background:var(--mint-soft);border-color:#A9DCCB;color:var(--ink)}
.dr-sugg button svg.ic{color:var(--teal)}
.dr-recent{margin:0;padding-left:18px;font-size:13.5px;display:flex;flex-direction:column;gap:4px}
.dr-foot{border-top:1px solid var(--line);padding:14px 18px 16px;display:flex;flex-direction:column;gap:10px;background:var(--ground)}
.dr-ask{display:flex;gap:8px}
.dr-ask input{flex:1;background:var(--paper)}
.dr-ask button{padding:8px 12px;display:inline-flex;align-items:center}
.dr-ask button svg.ic{width:18px;height:18px}
.dr-foot .row{gap:6px 12px}
body.drawer-open{overflow:hidden}
@media (prefers-reduced-motion:no-preference){.drawer:not([hidden]){animation:drin .18s ease-out}@keyframes drin{from{transform:translateX(24px);opacity:.6}to{transform:none;opacity:1}}}
@media (max-width:760px){main{padding:18px 16px 40px}.pathstrip{padding:8px 16px}.pathstrip .ps-steps li+li::before{width:10px}.tile .tv{font-size:22px}}
/* v40 review fixes: the deal card stays white, compact mini steps, aligned tiles, no stacked margins in row cards */
.card.deal{background:var(--paper);color:var(--ink)}
ol.steps3.mini{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:6px}
ol.steps3.mini li a{padding:6px 10px;font-size:13px;gap:8px}ol.steps3.mini li a b{font-weight:600}ol.steps3.mini li .n{width:22px;height:22px;font-size:12px}
.tile{align-content:start}
.card.row>*+*,.card.helprow>*+*{margin-top:0}
.jumpnav{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
#main{position:absolute;width:1px;height:1px;overflow:hidden}

/* View only (no AI) access level */
.vo,.pill.vo{background:#EFE9F7;color:#4A2F7A}.pill.noai{background:#FBE9E7;color:#7A2A1C;border:1px solid #E7B8B0}

.wm{display:inline-flex;align-items:center;font-weight:700;letter-spacing:-.01em;line-height:1}.wm-ai{display:inline-flex;align-items:center;justify-content:center;width:1.95em;height:1.95em;box-sizing:border-box;border:2px solid #1F6F5C;border-radius:50%;color:#1F6F5C;font-size:.8em;letter-spacing:0;margin:0 .2em}.wm-f1{opacity:.85}.wm-f2{opacity:.68;filter:blur(.3px)}.wm-f3{opacity:.54;filter:blur(.5px)}.wm-f4{opacity:.4;filter:blur(.8px)}.wm-f5{opacity:.28;filter:blur(1.1px)}
/* Step-card tags: the "Optional" pill carries class n, which the round step-number rules above also match; keep it a pill */
ol.steps3 li[class] .pill.n{width:auto;height:auto;display:inline-block;border-radius:999px;background:#EEF2F0;color:#3E4E49;font-size:12px;font-weight:600}
/* A tag inside the tab row (e.g. "Paid option") is a small pill, not a flex item stretched to the row height */
.tabs .pill{align-self:center;height:auto;line-height:1.5;padding:2px 9px;font-size:11.5px}
details.card>summary{cursor:pointer;list-style:none}details.card>summary h2.inline{display:inline;margin:0}details.card>summary::-webkit-details-marker{display:none}
a.admin-link>b:first-child{display:block;margin-bottom:4px}   /* v42: title on its own line above the description */
.navcredits{display:block;margin:14px 8px 4px;padding:8px 10px;border:1px solid #DCE6E2;border-radius:8px;font-size:13px;text-decoration:none;color:inherit}.navcredits span{color:#1F6F5C;font-weight:600}.navcredits.low{border-color:#E6A000;background:#FFF7E0}
.pager{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:8px 0}.pager a{flex:none;min-width:2.4em;text-align:center;white-space:nowrap}
a.is-opening{background:#FFF0B8 !important;border-color:#E6A000 !important;color:#10201C !important;cursor:progress}
form.needs-text textarea{outline:3px solid #E6A000;background:#FFF7E0}.autosave-state{display:block;min-height:1em}
.reviewpath{margin-bottom:12px}.reviewpath .steps3{margin:6px 0}
.needs-tick{outline:3px solid #E6A000;background:#FFF7E0;padding:4px;border-radius:6px}
/* v52: the storage choices side by side; a green confirmation box */
.grid3.conn{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));align-items:start}
div.ok{padding:10px 14px;border-radius:10px;background:#EAF5F1;border:1px solid #9ACDBE;color:#164F42}

.wfwhy{color:#4A3200}

/* v58: buyer Q&A: the new-question box left, the question list right (order swap only; one column on small screens shows the box first) */
.qa-ask-left>.card{order:2}.qa-ask-left>.stack{order:1}

#idlebar{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);z-index:90;display:flex;gap:12px;align-items:center;padding:10px 16px;border-radius:10px;background:#5A4E1E;color:#FFF6D6;font-size:14px;box-shadow:0 4px 18px rgba(0,0,0,.25)}#idlebar button{background:#FFF6D6;color:#3A3010;border:0;border-radius:8px;padding:6px 12px;cursor:pointer}

/* v87 (Juhani, 23 Oct 2026: "enhance the mobile usability of the pages"): the room on a phone. One block, no
   template changes: the page never scrolls sideways, wide tables scroll inside their card, the side menu and the
   workflow strip become one scrollable row, and everything you tap is big enough to hit. */
@media (max-width:760px){
  html,body{overflow-x:hidden}
  main{padding:16px 14px}
  h1{font-size:22px;line-height:1.25}h2{font-size:18px}
  /* the top bar: brand and person on the first row, the search on its own */
  header.top{flex-wrap:wrap;gap:8px 10px;padding:10px 14px;position:sticky;top:0;z-index:60}
  header.top .roomid,header.top .pill{font-size:11px}
  header.top .gsearch{order:9;flex:1 1 100%;max-width:none}
  header.top .who{order:8;margin-left:auto;gap:8px}
  header.top .who .muted{display:none}
  /* the side menu: one scrollable row of big targets, its group headings out of the way */
  nav{flex-wrap:nowrap;overflow-x:auto;gap:4px;padding:8px 10px;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
  nav .navh{display:none}
  nav a{white-space:nowrap;padding:10px 12px;border-radius:8px;min-height:40px;display:flex;align-items:center}
  nav a.on{background:#EEF3F1}
  /* the workflow strip and the step row scroll instead of stacking into a wall */
  .wf-steps{flex-wrap:nowrap;overflow-x:auto;gap:6px;padding-bottom:4px}
  .wf-step{flex:0 0 auto;min-width:150px}
  ol.steps3{grid-template-columns:1fr;gap:6px}
  /* wide tables: scroll inside the card, never the page */
  .card{overflow-x:auto}
  table{display:block;width:100%;overflow-x:auto;white-space:normal}
  table.compact td,table.compact th{padding:6px 8px}
  td,th{word-break:break-word}
  /* one column for every side-by-side layout */
  .grid2,.grid3,.defaults,.prepgrid,.grid-users{grid-template-columns:1fr}
  .board{grid-template-columns:repeat(5,86vw)}
  .row{flex-wrap:wrap}
  .stack.wide,.stack{max-width:100%}
  /* forms and buttons: no iOS zoom on focus, thumb-sized targets */
  input,select,textarea{font-size:16px}
  button,.btn,.btn2,a.btn,a.btn2{min-height:44px;padding:10px 16px}
  .row>form,.row>form>button,.row>.btn,.row>.btn2{flex:1 1 auto}
  label.check{align-items:flex-start}
  /* the progress and "what the room is doing now" box stay readable */
  .progress-card .small,.jobline .small{line-height:1.45}
  progress.bar{width:100%}
  /* the Ask AI drawer takes the screen rather than a 300px column */
  #brief,#aidrawer{width:auto;margin:8px 0}
  /* the report reading view */
  .reportbody{font-size:15px}
  .tabs{overflow-x:auto;flex-wrap:nowrap}.tabs a{white-space:nowrap}
}
@media (max-width:420px){
  header.top .roomid,header.top .pill{display:none}
  main{padding:14px 12px}
  .btn,.btn2,button{width:100%}
  .row>a.small,.row>span.small{width:auto}
}

/* v88.3: a gap removed from an expert-review package stays visible to the team, greyed */
tr.off td{opacity:.5}

/* v90.1 (Juhani, 25 Oct 2026, from a phone: "Can we hide the left panel or make it narrower ... Now its blocked
   view"): the side menu kept its desktop height (100vh) on a phone, so the one row of links sat inside a screen-tall
   box. Below 900px it is one slim row - a little taller than its text - that scrolls sideways. */
@media (max-width:900px){
  nav{width:100%;height:auto;max-height:none;min-height:0;top:auto;position:static;align-items:center;
      padding:6px 10px;overflow-y:hidden}
  nav a{min-height:0;padding:7px 11px;line-height:1.3}
  nav .navstep{display:none}
}
/* Wide tables on a narrow screen (ui.js marks them "stackable"): each row is a small card and each cell says which
   column it is. Tables of three columns or fewer keep their columns. */
@media (max-width:760px){
  table.stackable{display:block;overflow:visible;border:0}
  table.stackable thead,table.stackable tr.stack-head{display:none}
  table.stackable tbody{display:block}
  table.stackable tr{display:block;border:1px solid var(--line);border-radius:10px;padding:8px 10px;margin:0 0 10px;
                     background:var(--paper,#fff)}
  table.stackable td{display:block;border:0;padding:3px 0;text-align:left;word-break:normal;overflow-wrap:anywhere}
  table.stackable td[data-label]::before{content:attr(data-label);display:block;font-size:11.5px;font-weight:650;
                                         letter-spacing:.02em;color:var(--muted,#6b746d);text-transform:none}
  table.stackable td:empty{display:none}
  table.stackable td.num{text-align:left}
}

/* Board workspace tab strip (v101.12). One row of subpages, never a stack: the links are laid out by the
   strip itself rather than by .row, whose space-between stretched them onto a line each. */
.btabs{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:flex-start;gap:2px 4px;
       margin:0 0 16px;padding:0;border-bottom:1px solid var(--line,#DDE4DF)}
.btabs a.btab{display:inline-block;white-space:nowrap;padding:7px 13px 8px;margin-bottom:-1px;
              font-size:14px;font-weight:550;line-height:1.3;color:var(--muted,#6b746d);text-decoration:none;
              background:transparent;border:1px solid transparent;border-bottom:2px solid transparent;
              border-radius:8px 8px 0 0}
.btabs a.btab:hover{color:var(--ink,#1d2420);background:#F1F6F4;border-bottom-color:#C8D5D0}
.btabs a.btab.on{color:var(--ink,#1d2420);font-weight:650;background:transparent;
                 border-bottom-color:var(--green,#1f7a5a)}
.btabs a.btab:focus-visible{outline:2px solid var(--green,#1f7a5a);outline-offset:2px}
@media (max-width:560px){.btabs{gap:0 2px}.btabs a.btab{padding:7px 9px 8px;font-size:13.5px}}
