:root{
  --font-body:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--font-head:var(--font-body);
  --bg:#080C18;--side:rgba(9,14,28,.88);--topbar:rgba(10,16,32,.72);--surface:#101A2C;--surface-2:#0C1424;
  --edge:rgba(150,185,255,.12);--line:rgba(150,185,255,.08);--edge-input:#606673;
  --ink:#E8ECF4;--ink-soft:#9AA4B6;--ink-faint:#6F7A92;
  --accent:#DD7A3F;--accent-soft:rgba(221,122,63,.16);--on-accent:#140A04;
  --accent2:#5FA6CE;--ok:#46E0A2;--warn:#E8B04B;--bad:#EE7E64;
  --radius:14px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{color-scheme:dark}
body{min-height:100vh;color:var(--ink);font:13.5px/1.5 var(--font-body);-webkit-font-smoothing:antialiased;
  background:radial-gradient(1200px 600px at 85% -10%,rgba(95,166,206,.12),transparent 60%),
             radial-gradient(900px 500px at 15% 110%,rgba(221,122,63,.09),transparent 60%),var(--bg);background-attachment:fixed}
a{color:inherit}
h1,h2,h3,.disp{font-family:var(--font-head);letter-spacing:-.01em;font-weight:600}
.mono{font-family:"IBM Plex Mono",monospace}
.muted{color:var(--ink-soft)}.faint{color:var(--ink-faint)}
.ic-svg{flex:none;vertical-align:middle}

/* layout */
.app{display:grid;grid-template-columns:240px minmax(0,1fr);min-height:100vh}
.side{background:var(--side);border-right:1px solid var(--edge);display:flex;flex-direction:column;padding:18px 14px;position:sticky;top:0;height:100vh;overflow:auto}
.brand{display:flex;align-items:center;gap:10px;padding:4px 8px 18px;border-bottom:1px solid var(--edge);margin-bottom:10px;text-decoration:none}
.brand img{width:30px;height:30px}
.brand .n{font-family:var(--font-head);font-weight:700;font-size:17px;line-height:1.1}
.brand .s{font-family:"IBM Plex Mono";font-size:10px;color:var(--ink-faint);letter-spacing:.1em;text-transform:uppercase}
.navh{font-family:"IBM Plex Mono";font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);padding:14px 10px 6px}
.nav a{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;color:var(--ink-soft);text-decoration:none;font-weight:500}
.nav a:hover{background:color-mix(in srgb,var(--ink) 5%,transparent);color:var(--ink)}
.nav a.on{background:var(--accent-soft);color:var(--ink)}
.nav a.on .ic-svg{color:var(--accent-text,var(--accent))}
.badge{margin-left:auto;background:var(--accent);color:var(--on-accent);font:600 10px "IBM Plex Mono";padding:1px 7px;border-radius:10px}
.side .foot{margin-top:auto;padding:12px 6px 0;border-top:1px solid var(--edge);display:flex;align-items:center;gap:10px}
.side .foot form{margin-left:auto}
.av{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font-weight:600;font-size:12px;background:var(--accent-soft);color:var(--accent-text,var(--accent));flex:none}
.main{display:flex;flex-direction:column;min-width:0}
.top{height:60px;display:flex;align-items:center;gap:14px;padding:0 28px;border-bottom:1px solid var(--edge);background:var(--topbar);backdrop-filter:blur(10px);position:sticky;top:0;z-index:5}
.crumb{font:11px "IBM Plex Mono";color:var(--ink-faint);letter-spacing:.04em}
.crumb a{text-decoration:none}.crumb b{color:var(--ink);font-weight:500}
.top .right{margin-left:auto;display:flex;gap:10px;align-items:center}
.envtag{font:600 10.5px "IBM Plex Mono";letter-spacing:.08em;text-transform:uppercase;padding:4px 10px;border-radius:7px;background:var(--accent-soft);color:var(--accent-text,var(--accent))}
.envtag.staging{background:rgba(95,166,206,.16);color:var(--accent2)}
.envtag.dev{background:rgba(232,176,75,.16);color:var(--warn)}
.content{padding:24px 28px 40px;display:flex;flex-direction:column;gap:18px}
.hello{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap}
.hello h1{font-size:28px}
.hello p{color:var(--ink-soft);margin-top:4px}
.eyebrow{font:11px "IBM Plex Mono";letter-spacing:.14em;text-transform:uppercase;color:var(--accent-text,var(--accent));margin-bottom:6px}
.grid{display:grid;gap:18px}
.g2{grid-template-columns:1.7fr 1fr}.g2e{grid-template-columns:1fr 1fr}.g3{grid-template-columns:repeat(3,1fr)}
@media (max-width:1100px){.g2,.g2e,.g3{grid-template-columns:1fr}}
@media (max-width:820px){.app{grid-template-columns:1fr}.side{position:static;height:auto}.kpis{grid-template-columns:repeat(2,1fr)!important}}

/* cards & kpis */
.kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}
.kpi{background:var(--surface);border:1px solid var(--edge);border-radius:var(--radius);padding:16px 18px;position:relative;overflow:hidden}
.kpi .l{font:10.5px "IBM Plex Mono";letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint)}
.kpi .v{font:600 30px/1 var(--font-head);margin-top:10px}
.kpi .v small{font-size:14px;color:var(--ink-faint);font-weight:500;margin-left:4px}
.kpi .d{font-size:12px;color:var(--ink-soft);margin-top:8px}
.kpi .glow{position:absolute;right:-30px;top:-30px;width:110px;height:110px;border-radius:50%;opacity:.12;filter:blur(8px)}
.card{background:var(--surface);border:1px solid var(--edge);border-radius:var(--radius);padding:18px 20px;min-width:0}
.card h3{font-size:15px;display:flex;align-items:center;gap:10px}
.card h3 .sub{font-family:var(--font-body);font-size:12px;color:var(--ink-faint);font-weight:400;margin-left:auto}
.card h3 .ic-svg{color:var(--accent-text,var(--accent))}
.empty{padding:22px;text-align:center;color:var(--ink-faint);border:1px dashed var(--edge);border-radius:10px;margin-top:12px}

/* tables */
.tbl{width:100%;border-collapse:collapse;margin-top:10px}
.tbl th{font:500 10px "IBM Plex Mono";letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);text-align:left;padding:8px 10px;border-bottom:1px solid var(--edge);white-space:nowrap}
.tbl td{padding:11px 10px;border-bottom:1px solid var(--line);vertical-align:middle}
.tbl tr:last-child td{border-bottom:0}
.tbl tr.link:hover td{background:color-mix(in srgb,var(--ink) 5%,transparent);cursor:pointer}
.who{display:flex;align-items:center;gap:10px;text-decoration:none}
.lg{width:32px;height:32px;border-radius:9px;display:grid;place-items:center;font:700 12px var(--font-head);flex:none;overflow:hidden}
.lg img{width:100%;height:100%;object-fit:contain}
.who b{font-weight:600;display:block}
.who span{font-size:11.5px;color:var(--ink-faint)}
.nowrap{white-space:nowrap}

/* tags & buttons */
.tag{display:inline-flex;align-items:center;gap:5px;font:600 10.5px "IBM Plex Mono";padding:3px 8px;border-radius:6px;white-space:nowrap;background:var(--line);color:var(--ink-soft)}
.t-ok{background:rgba(70,224,162,.14);color:var(--ok)}.t-warn{background:rgba(232,176,75,.16);color:var(--warn)}
.t-bad{background:rgba(238,126,100,.15);color:var(--bad)}.t-acc{background:var(--accent-soft);color:var(--accent-text,var(--accent))}
.t-2{background:rgba(95,166,206,.15);color:var(--accent2)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:34px;padding:0 14px;border-radius:8px;font:600 12.5px var(--font-body);border:1px solid var(--edge);color:var(--ink);background:transparent;cursor:pointer;text-decoration:none;white-space:nowrap}
.btn:hover{border-color:color-mix(in srgb,var(--ink) 22%,transparent)}
.btn.p{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}
.btn.p:hover{filter:brightness(1.08)}
.btn.sm{height:28px;padding:0 10px;font-size:11.5px}
.btn.danger{color:var(--bad);border-color:rgba(238,126,100,.35)}
.btn.ghost{border-color:transparent}
.pill{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 11px;border-radius:14px;font-size:11.5px;font-weight:500;border:1px solid var(--edge);color:var(--ink-soft);background:var(--surface)}
.dot{width:7px;height:7px;border-radius:50%;background:var(--ok);box-shadow:0 0 8px var(--ok)}
.dot.warn{background:var(--warn);box-shadow:0 0 8px var(--warn)}.dot.bad{background:var(--bad);box-shadow:0 0 8px var(--bad)}
.bar{height:6px;border-radius:3px;background:var(--line);width:110px;overflow:hidden;display:inline-block;vertical-align:middle}
.bar i{display:block;height:100%;border-radius:3px}

/* forms */
.form{display:grid;gap:14px}
.form .row2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px}
.form input,.form select,.form textarea{min-width:0;max-width:100%}
.form .row3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px}
label.f{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--ink-soft);font-weight:500}
label.f .hint,div.f .hint{font-size:11.5px;color:var(--ink-faint);font-weight:400}
input[type=text],input[type=email],input[type=password],input[type=number],input[type=search],input[type=url],input[type=tel],input[type=time],input[type=date],input[type=datetime-local],input:not([type]),select,textarea{
  width:100%;height:38px;padding:0 12px;border-radius:9px;border:1px solid var(--edge-input);background:var(--surface-2);color:var(--ink);font:13.5px var(--font-body);outline:none}
textarea{height:auto;min-height:84px;padding:10px 12px;resize:vertical}
input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
input[type=color]{width:46px;height:38px;border:1px solid var(--edge-input);border-radius:9px;background:var(--surface-2);padding:4px;cursor:pointer}
input[type=file]{font:12.5px var(--font-body);color:var(--ink-soft)}
input[type=file]::file-selector-button{height:32px;padding:0 12px;margin-right:10px;border-radius:8px;border:1px solid var(--edge-input);background:var(--surface-2);color:var(--ink);font:500 12.5px var(--font-body);cursor:pointer}
.form .card{display:grid;gap:12px;align-content:start}
label.f .mini{font-weight:400}
fieldset[disabled] input,fieldset[disabled] select,fieldset[disabled] textarea,input:disabled,select:disabled,textarea:disabled{opacity:.7;cursor:not-allowed}
label.chip input{accent-color:var(--accent)}
.check-row input[type=checkbox]{accent-color:var(--accent);width:16px;height:16px;flex:none}
.colorpair{display:flex;gap:8px;align-items:center}
.check{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-soft)}
.inline{display:inline}
.actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.code-input{font:600 24px "IBM Plex Mono";letter-spacing:.4em;text-align:center;height:56px!important}

/* flash */
.flashes{display:flex;flex-direction:column;gap:8px}
.flash{padding:11px 14px;border-radius:10px;border:1px solid var(--edge);background:var(--surface);font-size:13px}
.flash.ok{border-color:rgba(70,224,162,.35);color:var(--ok)}
.flash.bad{border-color:rgba(238,126,100,.4);color:var(--bad)}
.flash.warn{border-color:rgba(232,176,75,.4);color:var(--warn)}
.flash.info{border-color:rgba(95,166,206,.4);color:var(--accent2)}

/* lists */
.list .it{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);align-items:flex-start}
.list .it:last-child{border-bottom:0}
.ico{width:32px;height:32px;border-radius:9px;flex:none;display:grid;place-items:center}
.it .t{font-weight:600}
.it .m{font-size:12px;color:var(--ink-faint);margin-top:2px}

/* ledger */
.ledger{font:11px/1.8 "IBM Plex Mono";color:#7E8AA2;white-space:nowrap;overflow:hidden}
.ledger .a{color:var(--ok)}.ledger .w{color:var(--accent-text,var(--accent))}.ledger .x{color:var(--bad)}
.hash{font:10.5px "IBM Plex Mono";color:var(--ink-faint)}

/* tabs */
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--edge);margin-bottom:4px;flex-wrap:wrap}
.tabs a{padding:10px 14px;text-decoration:none;color:var(--ink-soft);font-weight:500;border-bottom:2px solid transparent;margin-bottom:-1px}
.tabs a.on{color:var(--ink);border-color:var(--accent)}

/* dns records */
.rec{display:grid;grid-template-columns:80px 1fr 1fr;gap:10px;align-items:center;font:12px "IBM Plex Mono";background:var(--surface-2);border:1px solid var(--edge);border-radius:9px;padding:10px 12px;margin-top:8px}
.rec span:first-child{color:var(--accent-text,var(--accent));font-weight:600}
.rec .val{color:var(--ink);word-break:break-all}

/* invite link box */
.secretbox{font:12.5px "IBM Plex Mono";background:var(--surface-2);border:1px solid var(--accent);border-radius:10px;padding:12px 14px;word-break:break-all;color:var(--ink)}

/* auth screens */
.auth{min-height:100vh;display:grid;place-items:center;padding:30px}
.auth .box{width:100%;max-width:420px;background:var(--surface);border:1px solid var(--edge);border-radius:18px;padding:30px 30px 26px;box-shadow:0 30px 80px -40px rgba(0,0,0,.8)}
.auth .box.wide{max-width:520px}
.auth .lockup{display:flex;align-items:center;gap:12px;margin-bottom:22px}
.auth .lockup img{width:40px;height:40px}
.auth h1{font-size:22px;margin-bottom:6px}
.auth p.lead{color:var(--ink-soft);margin-bottom:18px}
.auth .tag-line{font:11px "IBM Plex Mono";letter-spacing:.14em;color:var(--accent-text,var(--accent));text-transform:uppercase}
.qr{background:#fff;border-radius:12px;padding:10px;width:200px;height:200px;margin:6px auto 12px}
.qr svg{width:100%;height:100%}
.codes{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:14px 0}
.codes span{font:600 14px "IBM Plex Mono";background:var(--surface-2);border:1px solid var(--edge);border-radius:8px;padding:9px;text-align:center;letter-spacing:.06em}
.mockfoot{font:10px "IBM Plex Mono";letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);text-align:center;margin-top:20px}

/* brand preview */
.bp{border-radius:14px;overflow:hidden;border:1px solid var(--edge);display:grid;grid-template-columns:150px 1fr;height:260px;font-size:11px}
.bp .bs{padding:14px 10px;display:flex;flex-direction:column;gap:6px}
.bp .bm{padding:16px}
.bp .bl{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.bp .blg{width:26px;height:26px;border-radius:7px;display:grid;place-items:center;font:700 11px var(--font-head);overflow:hidden}
.bp .blg img{width:100%;height:100%;object-fit:contain}
.bp .bn{padding:6px 8px;border-radius:6px}
.bp .bk{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}
.bp .bk>div{border-radius:8px;padding:10px;height:58px}
.htmx-indicator{opacity:0;transition:opacity .2s}.htmx-request .htmx-indicator,.htmx-request.htmx-indicator{opacity:1}
a.pill{text-decoration:none}
.btn[disabled]{opacity:.55;cursor:not-allowed;filter:none}

/* ===================== v0.2 design system additions ===================== */
.side{padding:16px 12px}
.side .nav a{padding:6px 10px;font-size:13px;gap:9px}
.side .navh{padding:12px 10px 4px}
.side .fn{font-weight:600;font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.side .foot .av{text-decoration:none}
.side .nav a span:first-of-type{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
kbd{margin-left:auto;font:10px "IBM Plex Mono";border:1px solid var(--edge);padding:1px 6px;border-radius:5px;color:var(--ink-faint)}
.menu-btn{display:none}
@media (max-width:820px){.menu-btn{display:inline-flex}.side{display:none}.side-open .side{display:flex;position:fixed;inset:0 30% 0 0;z-index:30;height:100vh}}

/* menus */
details.menu{position:relative}
details.menu>summary{list-style:none}
details.menu>summary::-webkit-details-marker{display:none}
.menu-pop{position:absolute;right:0;top:40px;min-width:210px;background:var(--surface);border:1px solid var(--edge);border-radius:12px;padding:6px;box-shadow:0 24px 60px -20px rgba(0,0,0,.7);z-index:20}
.menu-pop.wide{width:380px;max-height:460px;overflow:auto;padding:0}
.menu-pop a{display:flex;gap:9px;align-items:center;padding:8px 10px;border-radius:8px;text-decoration:none;color:var(--ink-soft);font-size:13px}
.menu-pop a:hover{background:color-mix(in srgb,var(--ink) 5%,transparent);color:var(--ink)}
.bell{position:relative}
.dotn{position:absolute;top:-4px;right:-4px;min-width:16px;height:16px;border-radius:8px;background:var(--bad);color:#fff;font:600 9.5px/16px "IBM Plex Mono";text-align:center;padding:0 4px}
.notif-item{display:flex;gap:10px;padding:11px 14px;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink)}
.notif-item:hover{background:color-mix(in srgb,var(--ink) 5%,transparent)}
.notif-item.unread{background:rgba(221,122,63,.05)}
.notif-item .nd{width:8px;height:8px;border-radius:50%;margin-top:6px;flex:none;background:var(--accent2)}
.notif-item.success .nd{background:var(--ok)}.notif-item.warn .nd{background:var(--warn)}.notif-item.danger .nd{background:var(--bad)}

/* command palette */
dialog{border:0;padding:0;background:transparent;color:var(--ink);margin:auto;max-width:calc(100vw - 32px)}
dialog:focus,dialog:focus-visible{outline:none}
dialog::backdrop{background:rgba(3,6,14,.65);backdrop-filter:blur(3px)}
.cmdk{width:min(680px,92vw);margin:12vh auto auto}
.cmdk-in{background:var(--surface);border:1px solid var(--edge);border-radius:16px;overflow:hidden;box-shadow:0 40px 100px -30px rgba(0,0,0,.9)}
.cmdk input{border:0!important;border-bottom:1px solid var(--edge)!important;border-radius:0!important;height:54px!important;font-size:15px!important;padding:0 18px!important;background:transparent!important;box-shadow:none!important}
#cmdk-results{max-height:56vh;overflow:auto;padding:6px}
.cmdk-g{font:10px "IBM Plex Mono";letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);padding:10px 12px 4px}
.cmdk-r{display:flex;gap:10px;align-items:center;padding:9px 12px;border-radius:9px;text-decoration:none;color:var(--ink)}
.cmdk-r .s{color:var(--ink-faint);font-size:12px;margin-left:auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:55%}
.cmdk-r:hover,.cmdk-r.sel{background:var(--accent-soft)}
.cmdk-foot{display:flex;gap:16px;padding:9px 14px;border-top:1px solid var(--edge);font-size:11px;color:var(--ink-faint)}
.cmdk-foot kbd{margin:0 2px}

/* modal dialogs */
dialog.modal{width:min(640px,94vw)}
dialog.modal.wide{width:min(900px,96vw)}
dialog.modal.xl{width:75vw}
dialog.modal.xl .form.cols2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px 22px}
dialog.modal.xl .form.cols2>label.f:first-of-type,dialog.modal.xl .form.cols2>label.f:has(textarea),dialog.modal.xl .form.cols2>.modal-actions{grid-column:1/-1}
@media (max-width:900px){dialog.modal.xl{width:94vw}}
.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:6px}
.modal-in{background:var(--surface);border:1px solid var(--edge);border-radius:16px;padding:22px 24px;box-shadow:0 40px 100px -30px rgba(0,0,0,.9);max-height:86vh;overflow:auto}
.modal-in h3{font-size:17px;margin-bottom:14px;display:flex;align-items:center;gap:10px}
.modal-in h3 .x{margin-left:auto}

/* page header */
.ph{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap}
.ph h1{font-size:26px}
.ph p{color:var(--ink-soft);margin-top:4px;max-width:760px}
.ph .actions{flex-wrap:wrap}

/* stat strip */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}
.stat{background:var(--surface);border:1px solid var(--edge);border-radius:12px;padding:14px 16px;position:relative;overflow:hidden;text-decoration:none;color:var(--ink);display:block}
a.stat:hover{border-color:color-mix(in srgb,var(--ink) 22%,transparent)}
.stat .l{font:10px "IBM Plex Mono";letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint)}
.stat .v{font:600 24px/1.1 var(--font-head);margin-top:8px}
.stat .v small{font-size:13px;color:var(--ink-faint);font-weight:500;margin-left:3px}
.stat .d{font-size:11.5px;color:var(--ink-soft);margin-top:6px}
.stat .spark{position:absolute;right:12px;top:14px;opacity:.9}
.stat.ok .v{color:var(--ok)}.stat.bad .v{color:var(--bad)}.stat.warn .v{color:var(--warn)}

/* filter bar */
.fbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:6px}
.fbar input[type=search]{max-width:300px}
.fbar select{width:auto;min-width:140px}
.chips{display:flex;gap:6px;flex-wrap:wrap}
.chip{display:inline-flex;gap:6px;align-items:center;height:28px;padding:0 11px;border-radius:14px;border:1px solid var(--edge);color:var(--ink-soft);font-size:12px;font-weight:500;text-decoration:none;background:var(--surface)}
.chip.on{border-color:var(--accent);color:var(--accent-text,var(--accent));background:var(--accent-soft)}
.chip b{font:600 10.5px "IBM Plex Mono";color:var(--ink-faint)}
.chip.on b{color:var(--accent-text,var(--accent))}

/* key-value grid */
.kv{display:grid;grid-template-columns:fit-content(45%) minmax(0,1fr);gap:8px 18px;font-size:13px;margin-top:10px}.kv dd{margin:0}
.kv dt{color:var(--ink-faint)}
.kv dd{color:var(--ink);min-width:0;overflow-wrap:anywhere}

/* timeline */
.tl{position:relative;margin-top:8px}
.tl .ev{display:flex;gap:12px;padding:10px 0;position:relative}
.tl .ev:not(:last-child)::before{content:"";position:absolute;left:15px;top:40px;bottom:-6px;width:1px;background:var(--edge)}
.tl .ev .ico{width:30px;height:30px}
.tl .ev .b{flex:1;min-width:0}
.tl .ev .t{font-weight:600}
.tl .ev .m{font-size:11.5px;color:var(--ink-faint);margin-top:1px}
.tl .ev .body{font-size:13px;color:var(--ink-soft);margin-top:6px;white-space:pre-wrap}
.tl .ev.system .t{font-weight:500;color:var(--ink-soft)}

/* kanban */
.kanban{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(180px,1fr);gap:12px;overflow-x:auto;padding-bottom:6px}
.kcol{background:var(--surface-2);border:1px solid var(--edge);border-radius:12px;padding:10px;min-height:200px}
.kcol h4{font:600 12px "IBM Plex Mono";letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);display:flex;justify-content:space-between;margin:2px 4px 10px}
.kcard{display:block;background:var(--surface);border:1px solid var(--edge);border-radius:10px;padding:10px 12px;margin-bottom:8px;text-decoration:none;color:var(--ink)}
.kcard:hover{border-color:color-mix(in srgb,var(--ink) 22%,transparent)}
.kcard .t{font-weight:600;font-size:13px}
.kcard .m{font-size:11.5px;color:var(--ink-faint);margin-top:4px;display:flex;gap:8px;flex-wrap:wrap}

/* charts */
.vbars{display:flex;align-items:flex-end;gap:6px;border-bottom:1px solid var(--edge);padding-top:6px}
.vbars .vb{flex:1;height:100%;display:flex;align-items:flex-end}
.vbars .vb i{display:block;width:100%;border-radius:4px 4px 0 0;min-height:2px;opacity:.88}
.vbars .vb:hover i{opacity:1}
.vbars-l{display:flex;gap:6px;margin-top:5px}
.vbars-l span{flex:1;text-align:center;font:10px "IBM Plex Mono";color:var(--ink-faint);white-space:nowrap;overflow:hidden}
.mv{display:flex;gap:6px;align-items:stretch}
.mvc{flex:1;display:flex;flex-direction:column}
.mvc .up,.mvc .dn{flex:1;display:flex;flex-direction:column}
.mvc .up{justify-content:flex-end;border-bottom:1px solid var(--edge2,color-mix(in srgb,var(--ink) 22%,transparent))}
.mvc i{display:block;width:100%}
.mvc .up i:first-child{border-radius:4px 4px 0 0}
.mvc .dn i:last-child{border-radius:0 0 4px 4px}
i.nw,.legend i.nw{background:var(--ok)}i.ex,.legend i.ex{background:var(--accent2)}i.re,.legend i.re{background:#9F8CFF}
i.co,.legend i.co{background:var(--warn)}i.ch,.legend i.ch{background:var(--bad)}
.legend{display:flex;gap:14px;flex-wrap:wrap;margin-top:10px;font-size:11.5px;color:var(--ink-soft)}
.legend span{display:flex;align-items:center;gap:6px}
.legend i{width:9px;height:9px;border-radius:2px;display:inline-block}
.donut-wrap{display:flex;gap:18px;align-items:center}
.donut{border-radius:50%;display:grid;place-items:center;flex:none}
.donut-in{width:68%;height:68%;border-radius:50%;background:var(--surface);display:flex;flex-direction:column;align-items:center;justify-content:center}
.donut-in b{font:600 20px var(--font-head)}
.donut-in span{font-size:10.5px;color:var(--ink-faint)}
.donut-l{display:flex;flex-direction:column;gap:6px;font-size:12.5px;color:var(--ink-soft);flex:1}
.donut-l div{display:flex;align-items:center;gap:8px}
.donut-l i{width:9px;height:9px;border-radius:3px;flex:none}
.donut-l b{margin-left:auto;font-family:"IBM Plex Mono";color:var(--ink)}
.meter{display:inline-block;width:100%;height:6px;background:var(--line);border-radius:3px;overflow:hidden;vertical-align:middle}
.meter i{display:block;height:100%;border-radius:3px}

/* work queue */
.wq{display:flex;flex-direction:column}
.wq a{display:flex;gap:12px;align-items:center;padding:11px 6px;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink);border-radius:8px}
.wq a:hover{background:color-mix(in srgb,var(--ink) 5%,transparent)}
.wq .sev{width:6px;align-self:stretch;border-radius:3px;flex:none}
.wq .sev.s3{background:var(--bad)}.wq .sev.s2{background:var(--warn)}.wq .sev.s1{background:var(--accent2)}
.wq .t{font-weight:600;font-size:13px}
.wq .m{font-size:11.5px;color:var(--ink-faint);margin-top:1px}
.wq .k{margin-left:auto}

/* checklist */
.check-list{display:flex;flex-direction:column;gap:2px;margin-top:8px}
.check-row{display:flex;gap:10px;align-items:center;padding:7px 8px;border-radius:8px;width:100%;text-align:left;background:none;border:0;color:var(--ink-soft);font:13px var(--font-body);cursor:pointer}
.check-row:hover{background:color-mix(in srgb,var(--ink) 5%,transparent)}
.check-row .box{width:18px;height:18px;border-radius:5px;border:1.5px solid var(--edge2,color-mix(in srgb,var(--ink) 22%,transparent));flex:none;display:grid;place-items:center}
.check-row.done{color:var(--ink)}
.check-row.done .box{background:var(--ok);border-color:var(--ok);color:#06140d}
.check-row .when{margin-left:auto;font:10.5px "IBM Plex Mono";color:var(--ink-faint)}

/* misc */
.split{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:18px;align-items:start}
@media (max-width:1180px){.split{grid-template-columns:1fr}}
.sticky{position:sticky;top:78px}
.prose{font-size:14px;line-height:1.65;color:var(--ink)}
.prose h1{font-size:24px;margin:6px 0 12px}.prose h2{font-size:18px;margin:22px 0 8px}.prose h3{font-size:15px;margin:18px 0 6px}
.prose p{margin:0 0 12px}.prose ul,.prose ol{margin:0 0 12px 22px}.prose li{margin:3px 0}
.prose table{border-collapse:collapse;margin:12px 0;width:100%}.prose td,.prose th{border:1px solid var(--edge);padding:7px 10px;text-align:left}
.prose code{font:12.5px "IBM Plex Mono";background:var(--surface-2);padding:1px 5px;border-radius:4px}
.prose pre{background:var(--surface-2);padding:12px;border-radius:9px;overflow:auto}
.prose blockquote{border-left:3px solid var(--accent);padding:2px 12px;color:var(--ink-soft);margin:0 0 12px}
.prose a{color:var(--accent2)}
.editor{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px}.editor .pv table{table-layout:fixed;width:100%}.editor .pv td{overflow-wrap:anywhere}
.editor textarea{min-height:520px;font:13px/1.6 "IBM Plex Mono"}
.editor .pv{border:1px solid var(--edge);border-radius:9px;padding:14px 18px;max-height:560px;overflow:auto;background:var(--surface-2)}
@media (max-width:1000px){.editor{grid-template-columns:1fr}}
.tierrow{display:grid;grid-template-columns:1fr 1fr 34px;gap:8px;align-items:center;margin-bottom:8px}
.money{font-family:"IBM Plex Mono";white-space:nowrap}
.right{text-align:right}
td.right,th.right{text-align:right}
.sub-tabs{display:flex;gap:6px;margin-bottom:12px}
.notice{background:rgba(232,176,75,.08);border:1px solid rgba(232,176,75,.3);color:var(--ink-soft);border-radius:10px;padding:11px 14px;font-size:12.5px}
.notice b{color:var(--warn)}
.notice.info{background:rgba(95,166,206,.08);border-color:rgba(95,166,206,.3)}
.notice.info b{color:var(--accent2)}
.pill-row{display:flex;gap:6px;flex-wrap:wrap}
.mini{font-size:11.5px;color:var(--ink-faint)}
.grid.g4{grid-template-columns:repeat(4,1fr)}
@media (max-width:1100px){.grid.g4{grid-template-columns:repeat(2,1fr)}}
.code{font:12px/1.55 "IBM Plex Mono";background:var(--surface-2);border:1px solid var(--edge);border-radius:9px;padding:12px;white-space:pre-wrap;overflow:auto;max-height:420px}
.statusdot{width:9px;height:9px;border-radius:50%;display:inline-block;flex:none}
.sd-operational{background:var(--ok)}.sd-degraded{background:var(--warn)}.sd-partial_outage{background:#F09A55}.sd-major_outage{background:var(--bad)}.sd-maintenance{background:var(--accent2)}
.thread .msg{border:1px solid var(--edge);border-radius:12px;padding:12px 14px;margin-bottom:10px;background:var(--surface-2)}
.thread .msg.internal{border-style:dashed;border-color:rgba(232,176,75,.45);background:rgba(232,176,75,.05)}
.thread .msg .h{display:flex;gap:8px;align-items:center;font-size:12px;color:var(--ink-faint);margin-bottom:6px}
.thread .msg .h b{color:var(--ink);font-size:12.5px}
.thread .msg .body{white-space:pre-wrap;font-size:13.5px}
.tabs{overflow-x:auto;flex-wrap:nowrap}
.tabs a{white-space:nowrap}
.tabs a .badge{margin-left:6px}
.inv-total td{font-weight:600}
.big-num{font:600 34px/1 var(--font-head)}

/* sidebar: everything open, compact, no visible scrollbar */
.side{scrollbar-width:none}
.side::-webkit-scrollbar{display:none}
.side .nav{margin-top:4px}
.side{padding-top:12px;padding-bottom:12px}
.side .brand{padding-bottom:10px}
.side .nav a{padding:4px 10px;font-size:12.5px}
.side .navh{padding:8px 10px 2px;font-size:9.5px}
.side .foot{padding-top:8px}
.pagetabs{margin:-6px 0 18px}

/* full-page forms: labeled sections, one column, sticky action bar */
.fpage{max-width:1240px}
.fsecs{padding:0}
.fmore{border-top:1px solid var(--edge)}.fmore>summary{cursor:pointer;padding:18px 28px;font-weight:600;list-style:none;display:flex;gap:10px;align-items:baseline}.fmore>summary::-webkit-details-marker{display:none}
.fmore>summary::before{content:"\25B8";color:var(--ink-soft)}.fmore[open]>summary::before{content:"\25BE"}.fmore>summary .mini{font-weight:400}
.fsec{display:grid;grid-template-columns:260px minmax(0,1fr);gap:32px;padding:26px 28px;border-top:1px solid var(--edge)}
.fsec:first-child{border-top:0}
.fsec-h h3{font-size:14.5px;margin:0 0 6px}
.fsec-h p{color:var(--ink-faint);font-size:12.5px;line-height:1.5;margin:0}
.fsec-b{display:grid;gap:16px;align-content:start}
.fsec-b .row2{margin:0}
.addr{display:flex;align-items:stretch;max-width:520px}
.addr input{border-top-right-radius:0!important;border-bottom-right-radius:0!important;flex:1}
.addr-suffix{display:flex;align-items:center;padding:0 12px;border:1px solid var(--edge);border-left:0;border-radius:0 9px 9px 0;background:var(--surface-2);color:var(--ink-faint);font:12px "IBM Plex Mono";white-space:nowrap}
.trialrow{align-items:end}
.trialrow .check-row{padding-bottom:10px}
.fbar{position:sticky;bottom:16px;margin:16px 0 0 auto;width:fit-content;max-width:100%;display:flex;align-items:center;gap:12px;padding:8px 8px 8px 14px;background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:blur(8px);border:1px solid var(--edge);border-radius:12px;box-shadow:0 6px 20px -8px rgba(0,0,0,.35);z-index:5}
.fbar .mini{color:var(--ink-faint)}.fbar .mini:empty{display:none}
.fbar .actions{display:flex;gap:8px;margin:0}
@media (max-width:900px){.fsec{grid-template-columns:1fr;gap:14px;padding:20px}.fbar{bottom:10px}.fbar .mini{display:none}}

/* tab bars never show a scrollbar (Edge drew arrows at the far right) */
.tabs{scrollbar-width:none}
.tabs::-webkit-scrollbar{display:none}

/* agreement document link, template import */
.doclink{margin-top:14px;padding-top:12px;border-top:1px solid var(--edge);display:grid;gap:10px}
.doclink-form{display:grid;gap:8px}
.import-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:28px;align-items:start}
.import-help{background:var(--surface-2);border:1px solid var(--edge);border-radius:12px;padding:16px 18px}
.import-help h4{font-size:13.5px;margin:0 0 8px}
.import-help ol{margin:0;padding-left:18px;display:grid;gap:6px;color:var(--ink-soft);font-size:12.5px;line-height:1.5}
.import-help .prompt{white-space:pre-wrap;font:11.5px/1.55 "IBM Plex Mono";background:var(--bg,#070b14);border:1px solid var(--edge);border-radius:8px;padding:10px 12px;color:var(--ink-soft);margin:0 0 8px;max-height:180px;overflow:auto}
@media (max-width:900px){.import-grid{grid-template-columns:1fr}}
.import-grid .form{display:grid;gap:14px}

/* top bar: icon buttons are square and spaced so the visible gaps match
   (New edge to search icon = search icon to bell icon = 20px) */
.top .right .iconbtn,.top .right #notif-menu>summary{width:32px;height:32px;padding:0;display:inline-flex;align-items:center;justify-content:center}
.top .right .iconbtn{margin-left:2px}
.top .right #notif-menu{margin-left:-6px}

/* integrations: grouped table, configure in a dialog */
.int-stats{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:16px}
.int-card{padding:0;overflow:hidden}
.int-tbl{width:100%}
.int-tbl th{padding:12px 18px}
.int-tbl td{padding:13px 18px;vertical-align:middle}
.int-tbl td:first-child{width:50%}
.int-tbl .int-group td{padding:16px 18px 6px;font:10px "IBM Plex Mono";letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);border-bottom:1px solid var(--edge);background:transparent}
.int-tbl tbody:first-of-type .int-group td{padding-top:12px}
.int-name{display:flex;align-items:center;gap:8px;margin-bottom:2px}
.int-name .ic-svg{color:var(--accent-text,var(--accent))}
.int-dlg-state{margin-left:6px;font-size:12px}
.int-form{display:grid;gap:14px}
.int-fields{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px}
.int-checks{display:flex;gap:18px;flex-wrap:wrap}
.int-checks .check-row{width:auto;padding-left:0}
@media (max-width:900px){.int-fields{grid-template-columns:1fr}.int-stats{grid-template-columns:1fr}}

/* connectors: fixed columns so everything lines up across groups */
.conn-tbl{table-layout:fixed}
.conn-tbl col.c-name{width:auto}
.conn-tbl col.c-auth{width:22%}
.conn-tbl col.c-ctl{width:96px}
.conn-tbl col.c-stage{width:170px}
.conn-tbl col.c-act{width:128px}
.conn-tbl td:first-child{width:auto}
.conn-tbl td{overflow:hidden;text-overflow:ellipsis}
.conn-tbl .int-name .mini{margin-left:2px}
.conn-tbl tr.killed td{background:rgba(240,90,90,.06)}
.conn-tbl .killbtn{min-width:64px;justify-content:center}
.conn-tbl col.c-act{width:150px}
.conn-tbl td:last-child{overflow:visible;text-overflow:clip}
.conn-tbl td:last-child form.inline{display:inline-block;margin-left:6px}

/* category boxes (integrations, connectors): one card per group, shared column widths */
.catboxes{display:grid;gap:16px}
.catbox-h{display:flex;align-items:center;gap:10px;padding:16px 18px 6px}
.catbox-h h3{font-size:15px;margin:0}
.catbox-h .ic-svg{color:var(--accent-text,var(--accent))}
.catbox-h .mini{margin-left:auto}
.catbox .int-tbl thead th{padding-top:8px}
.catbox .int-tbl tbody tr:last-child td{border-bottom:0}
.int-fixed{table-layout:fixed}
.int-fixed col.c-status{width:170px}
.int-fixed col.c-secret{width:110px}
.int-fixed col.c-by{width:22%}
.int-fixed col.c-act{width:130px}
.int-fixed td{overflow:hidden;text-overflow:ellipsis}

/* releases and flags tables */
.rel-tbl col.c-ver{width:110px}
.rel-tbl col.c-chan{width:130px}
.rel-tbl col.c-vis{width:130px}
.rel-tbl col.c-date{width:130px}
.rel-tbl col.c-act{width:200px}
.rel-tbl td:last-child,.flag-tbl td:last-child{overflow:visible}
.rel-tbl td:last-child form.inline{display:inline-block;margin-left:6px}
.flag-tbl col.c-state{width:180px}
.flag-tbl col.c-acct{width:22%}
.flag-tbl col.c-by{width:200px}
.flag-tbl col.c-act{width:110px}
.flag-tbl tr.killed td{background:rgba(240,90,90,.06)}

/* unit economics */
.ue-tbl col.c-band{width:150px}
.ue-tbl col.c-n{width:90px}
.ue-tbl col.c-money{width:110px}
.ue-tbl col.c-m{width:100px}

/* plans & pricing */
.plan-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}
.plan-card{display:flex;flex-direction:column;gap:6px;padding:20px 20px 16px}
.plan-top{display:flex;align-items:center;gap:10px}
.plan-top h3{font-size:17px;margin:0}
.plan-top .chips{margin-left:auto;display:flex;gap:6px}
.plan-model{color:var(--accent-text,var(--accent));font:10.5px "IBM Plex Mono";letter-spacing:.08em;text-transform:uppercase}
.plan-price{font:600 28px/1.15 var(--font-head);margin-top:4px;display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 0}
.plan-price .to{font-size:16px;color:var(--ink-faint);margin:0 6px}
.plan-price small{flex-basis:100%;font:12px var(--font-body);color:var(--ink-faint);margin-top:2px}
.plan-desc{margin:4px 0 2px;line-height:1.5}
.plan-bands{margin-top:6px}
.plan-bands td{padding:7px 0}
.plan-foot{margin-top:auto;padding-top:12px;display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--edge)}
.tblwrap{overflow-x:auto}
.cmp-tbl td:first-child{color:var(--ink-soft);font-weight:500;width:200px}
.cmp-tbl th:not(:first-child),.cmp-tbl td:not(:first-child){min-width:140px}
.ok-dot .ic-svg{color:var(--ok)}
.plan-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:18px;align-items:start}
.plan-layout .fpage{max-width:none}
.calc-card{position:sticky;top:78px;padding:18px;display:grid;gap:12px}
.calc-h{font:10px "IBM Plex Mono";letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);margin:14px 0 4px}
.model-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.model-card{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border:1px solid var(--edge);border-radius:10px;cursor:pointer;background:var(--surface-2)}
.model-card span{display:grid;gap:3px}
.model-card input{margin-top:3px;accent-color:var(--accent)}
.model-card:has(input:checked){border-color:var(--accent);background:var(--accent-soft)}
.band-head{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr) 34px;gap:8px;color:var(--ink-faint)}
.band-head.tiers{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 34px}
#bands,#tiers{display:grid;gap:8px}
.bandrow{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr) 34px;gap:8px;align-items:center}
.seatrow{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 34px;gap:8px;align-items:center}
[data-show-model][hidden]{display:none!important}
@media (max-width:1100px){.plan-layout{grid-template-columns:1fr}.calc-card{position:static}}
@media (max-width:700px){.model-cards{grid-template-columns:1fr}}

/* settings */
fieldset.bare{border:0;padding:0;margin:0;min-width:0}
.sla-tbl th,.sla-tbl td{padding:8px 10px}
.sla-tbl thead tr.sub th{font-size:10px;color:var(--ink-faint);padding-top:0}
.sla-tbl input{width:100%;max-width:110px}
.sla-tbl th[colspan]{text-align:left;border-bottom:1px solid var(--edge)}

/* staff & roles */
.staff-tbl col.c-role{width:130px}
.staff-tbl col.c-mfa{width:150px}
.staff-tbl col.c-last{width:140px}
.staff-tbl col.c-st{width:110px}
.staff-tbl col.c-act{width:120px}
.staff-tbl td{overflow:visible}
.role-tbl td.center,.role-tbl th.center{text-align:center;width:96px}
.role-tbl td:first-child{min-width:280px}
.role-notes{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px 18px;padding:14px 18px 18px;border-top:1px solid var(--edge)}
.role-notes div,.role-hint div{display:grid;gap:2px}
.role-hint{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 18px;padding:12px 14px;background:var(--surface-2);border:1px solid var(--edge);border-radius:10px;color:var(--ink-soft)}
.role-hint div{display:block}
.invite-card{border-color:var(--accent);margin-bottom:16px;padding:18px}
.staff-kv{margin:-4px 0 16px}
.danger-zone{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-top:18px;padding-top:16px;border-top:1px solid var(--edge)}
.danger-zone>div:first-child{display:grid;gap:2px}
.danger-zone .actions{display:flex;gap:8px;flex-wrap:wrap}
.modal-in h3 .who .av{width:28px;height:28px;font-size:11px}
/* QA pass 2026-10-01: long values (domains, JSON, hashes) wrap instead of widening their table */
.tbl td{overflow-wrap:anywhere}
.tbl td.money,.tbl td.nowrap,.tbl td.right{overflow-wrap:normal}
/* phone width: top bar fits, wide tables scroll inside their box instead of widening the page */
@media (max-width:700px){
  .top{padding:0 12px;gap:8px}.top .crumb,.top .envtag{display:none}
  .content{padding:16px 16px 32px}
  .tbl{display:block;overflow-x:auto;max-width:100%}
  .ph{flex-wrap:wrap;gap:12px}.ph .actions{flex-wrap:wrap}
  .kanban{overflow-x:auto}
  .grid,.split,.fpage{min-width:0}
}
/* v0.4.0: invite link box (console and portal) */
.linkbox{display:flex;gap:8px;align-items:center;background:var(--surface-2);border:1px dashed var(--accent);border-radius:10px;padding:10px 12px;margin-top:10px}
.linkbox input{flex:1;font-family:"IBM Plex Mono",monospace;font-size:12px}

/* ================================================================
   UI pass 2026-10-07, part 1: typography. Inter for everything people read; the typewriter face only for codes,
   hashes and money columns. Labels in sentence case instead of spaced capitals.
   ================================================================ */
body,input,select,textarea,button{font-family:var(--font-body)}
body{font-size:14px;line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
h1,h2,h3,.disp,.brand .n{font-family:var(--font-head);letter-spacing:-.015em;font-weight:600}
h1{font-size:26px;letter-spacing:-.02em}
.card h3{font-size:14.5px}
.navh,.eyebrow,.kpi .l,.stat .l,.tbl th,.cmdk-g,.kcol h4,.int-tbl .int-group td,.plan-model,.calc-h,.crumb,.brand .s,.mockfoot,.auth .tag-line,.envtag{font-family:var(--font-body);text-transform:none;letter-spacing:0}
.navh{font-size:11.5px;font-weight:600;color:var(--ink-faint);padding:16px 10px 6px}
.eyebrow{font-size:12.5px;font-weight:600;letter-spacing:.01em}
.kpi .l,.stat .l{font-size:12.5px;font-weight:500;color:var(--ink-soft)}
.kpi .v{font:600 28px/1 var(--font-body);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.stat .v{font:600 24px/1.1 var(--font-body);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.big-num{font:600 32px/1 var(--font-body);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.tbl th{font-size:12px;font-weight:600;color:var(--ink-soft);letter-spacing:0}
.crumb{font-size:13px}.crumb b{font-weight:600}
.brand .s,.pbrand .s{font-size:11.5px}
.kcol h4{font-size:13px}
.envtag{font-size:11px;font-weight:600;letter-spacing:.02em;text-transform:none}
.tag{font-family:var(--font-body);font-size:11.5px;font-weight:600;letter-spacing:0}
.money,.donut-l b{font-family:var(--font-body);font-variant-numeric:tabular-nums}
.mono,.hash,.code,code,kbd,.code-input{font-family:"IBM Plex Mono",ui-monospace,monospace}
.auth .tag-line{font-size:12.5px;color:var(--ink-soft)}

/* part 2: motion and feedback. Calm by default; everything off under reduced motion. */
#loadbar{position:fixed;top:0;left:0;height:2px;width:0;background:linear-gradient(90deg,var(--accent),var(--accent2));z-index:100;opacity:0;transition:width .3s ease,opacity .3s ease;pointer-events:none}
html.loading #loadbar{opacity:1;width:70%;transition:width 6s cubic-bezier(.1,.6,.2,1),opacity .2s}
html.loaded #loadbar{width:100%;opacity:0;transition:width .2s ease,opacity .5s ease .2s}
.btn[aria-busy="true"]{position:relative;color:transparent!important;pointer-events:none}
.btn[aria-busy="true"]::after{content:"";position:absolute;inset:0;margin:auto;width:14px;height:14px;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;color:var(--ink);animation:spin .7s linear infinite}
.btn.p[aria-busy="true"]::after{color:var(--on-accent)}
@keyframes spin{to{transform:rotate(360deg)}}
.content>.flashes{position:fixed;right:22px;bottom:22px;z-index:70;max-width:400px;pointer-events:none}
.content>.flashes .flash{pointer-events:auto;box-shadow:0 10px 30px rgba(0,0,0,.35);background:var(--surface);display:flex;gap:10px;align-items:flex-start;animation:toast-in .25s ease-out;padding-right:36px;position:relative}
.content>.flashes .flash.gone{animation:toast-out .3s ease-in forwards}
.flash .x{position:absolute;right:8px;top:7px;background:none;border:0;color:inherit;opacity:.6;cursor:pointer;font-size:14px;line-height:1;padding:4px}
@keyframes toast-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes toast-out{to{opacity:0;transform:translateY(8px)}}
dialog.modal[open],dialog.cmdk[open]{animation:dlg-in .18s ease-out}
dialog.modal::backdrop,dialog.cmdk::backdrop{background:rgba(4,8,16,.55);backdrop-filter:blur(3px);animation:fade-in .18s ease-out}
@keyframes dlg-in{from{opacity:0;transform:translateY(8px) scale(.985)}to{opacity:1;transform:none}}
@keyframes fade-in{from{opacity:0}to{opacity:1}}
.content{animation:page-in .22s ease-out}
@keyframes page-in{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
.tbl tbody tr{transition:background .12s}
.tbl tbody tr:hover td{background:color-mix(in srgb,var(--surface-2) 70%,transparent)}
.card,.kpi,.stat,.catbox{transition:border-color .15s}
.card:hover,.kpi:hover,.stat:hover{border-color:color-mix(in srgb,var(--edge) 40%,var(--accent) 25%)}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}
.btn{transition:transform .08s ease,filter .12s ease}.btn:active{transform:translateY(1px)}
.kpi{background:linear-gradient(160deg,color-mix(in srgb,var(--surface) 92%,var(--accent) 8%),var(--surface) 55%)}
.kpi .glow{display:none}
.empty{border:1px dashed var(--edge);border-radius:12px;padding:22px;text-align:center;color:var(--ink-faint)}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}#loadbar{display:none}}

/* Sign in with Microsoft (portal login, 2026-10-07) */
.ms-btn{display:flex;align-items:center;justify-content:center;gap:10px;height:42px;width:100%;margin:6px 0 14px;font-weight:600}
.ms-btn svg{flex:none}
.alt-signin{border-top:1px solid var(--line);padding-top:12px;margin-top:4px}
.alt-signin summary{cursor:pointer;color:var(--ink-soft);font-size:13px;list-style:none;display:flex;align-items:center;gap:6px}
.alt-signin summary::-webkit-details-marker{display:none}
.alt-signin summary::before{content:"";width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(-45deg);transition:transform .15s}
.alt-signin[open] summary::before{transform:rotate(45deg)}
.alt-signin .form{margin-top:12px}

.stepdot{display:inline-block;width:14px;height:14px;border-radius:50%;border:1.5px solid var(--ink-faint);opacity:.6;vertical-align:middle}
.catbox-h .sub,.card h3 .sub{margin-left:auto}

/* the connector catalog (portal integrations, 2026-10-07) */
.catgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;max-height:62vh;overflow:auto;padding:2px}
.catcol-h{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faint);margin:0 0 6px 2px;font-weight:600}
.catitem{display:block;width:100%;text-align:left;background:var(--surface-2);border:1px solid var(--edge);border-radius:10px;padding:9px 11px;margin-bottom:6px;color:var(--ink);cursor:pointer;font:inherit}
.catitem b{display:inline-flex;align-items:center;gap:6px}
.catitem>b+.tag,.catitem>.tag{float:right;margin-left:6px}
.catitem .mini{clear:both;margin-top:3px;color:var(--ink-faint)}
.catitem:hover{border-color:var(--accent);background:var(--accent-soft)}
.catitem.have{border-color:var(--ok)}
.catitem.via{cursor:default;opacity:.7}
.ctl-read{margin-top:4px;font-size:12px;color:var(--ink-soft)}
.ctl-read b{color:var(--ink)}
.drift{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:var(--warn);font-weight:600}

/* lifecycle: contracts, assets and licences, renewals, the calendar (portal, 2026-10-07) */
.ell{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ic-svg.flip,svg.flip{transform:rotate(180deg)}
.btn-group{display:inline-flex}.btn-group .btn{border-radius:0;margin-left:-1px}.btn-group .btn:first-child{border-radius:9px 0 0 9px;margin-left:0}.btn-group .btn:last-child{border-radius:0 9px 9px 0}
.kpi-bad{border-color:color-mix(in srgb,var(--bad) 45%,var(--edge))}.kpi-bad .v{color:var(--bad)}
.kpi-warn{border-color:color-mix(in srgb,var(--warn) 40%,var(--edge))}.kpi-warn .v{color:var(--warn)}
.money-in{display:flex;align-items:stretch}.money-in span{display:flex;align-items:center;padding:0 10px;border:1px solid var(--edge);border-right:0;border-radius:9px 0 0 9px;background:var(--surface-2);color:var(--ink-faint);font-size:13px}
.money-in input{border-top-left-radius:0!important;border-bottom-left-radius:0!important;flex:1;min-width:0}
.sla-edit td{padding:4px 6px}.sla-edit input,.sla-edit select{width:100%;min-width:0}
.src-pick{display:flex;gap:8px;flex-wrap:wrap}
.src-opt{display:inline-flex;align-items:center;cursor:pointer}.src-opt input{position:absolute;opacity:0;pointer-events:none}
.src-opt span{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border:1px solid var(--edge);border-radius:9px;font-size:13px;color:var(--ink-soft);background:var(--surface-2)}
.src-opt input:checked+span{border-color:var(--accent);color:var(--ink);background:var(--accent-soft)}
.src-opt input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}

/* contract cards */
.kgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:14px}
.kcard-c{display:flex;flex-direction:column;gap:10px;padding:16px 18px;border:1px solid var(--edge);border-radius:14px;background:var(--surface);color:var(--ink);text-decoration:none;position:relative;overflow:hidden;transition:border-color .15s,transform .15s}
.kcard-c::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--ok)}
.kcard-c.stage-expiring::before{background:var(--warn)}.kcard-c.stage-notice::before,.kcard-c.stage-expired::before{background:var(--bad)}
.kcard-c.stage-draft::before,.kcard-c.stage-ended::before,.kcard-c.stage-terminated::before{background:var(--ink-faint)}.kcard-c.stage-sent::before,.kcard-c.stage-renewed::before{background:var(--accent2)}
.kcard-c:hover{border-color:var(--accent);transform:translateY(-1px)}
.kc-top{display:flex;justify-content:space-between;align-items:center;gap:8px}
.kc-kind{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-soft);font-weight:500}
.kc-title{font-size:15.5px;font-weight:600;letter-spacing:-.01em;line-height:1.3}
.kc-ref{margin-top:-6px;min-height:0}
.kc-term .mini{display:block}.kc-term b{font-weight:600}
.termbar{position:relative;height:6px;border-radius:3px;background:var(--line);margin-top:8px}
.termbar span{position:absolute;left:0;top:0;bottom:0;border-radius:3px;background:linear-gradient(90deg,var(--accent),var(--accent2))}
.termbar i{position:absolute;top:-3px;width:2px;height:12px;background:var(--warn);border-radius:1px}
.kc-foot{display:grid;grid-template-columns:repeat(4,auto);justify-content:space-between;gap:8px;border-top:1px solid var(--line);padding-top:10px}
.kc-foot .mini{display:block;font-size:11px}.kc-foot b{font-size:13.5px}

/* one contract */
.khead{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap}
.kh-money{display:flex;gap:28px}.kh-money>div{text-align:right}.kh-money .mini{display:block}.kh-money b{font-size:20px;font-weight:600;letter-spacing:-.01em}
.inline-status{display:inline-flex;gap:4px;align-items:center;margin-left:6px}.inline-status select{height:28px;padding:0 8px;font-size:12px}
.timeline{margin:18px 4px 4px}
.tl-bar{position:relative;height:10px;border-radius:5px;background:var(--line)}
.tl-bar span{position:absolute;left:0;top:0;bottom:0;border-radius:5px;background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 70%,transparent),var(--accent))}
.tl-notice{position:absolute;top:-5px;width:3px;height:20px;background:var(--warn);border-radius:2px;transform:translateX(-50%)}
.tl-today{position:absolute;top:-4px;width:18px;height:18px;border-radius:50%;background:var(--surface);border:3px solid var(--accent);transform:translateX(-50%);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 20%,transparent)}
.tl-marks{position:relative;height:42px;margin-top:10px}
.tl-marks>div{position:absolute;top:0}.tl-marks>div.mid{transform:translateX(-50%);text-align:center}
.tl-marks .mini{display:block;font-size:11px}.tl-marks b{font-size:13px;font-weight:600}
.kv4{display:grid;grid-template-columns:auto 1fr auto 1fr;gap:8px 18px}.kv4 dt{color:var(--ink-faint);font-size:12.5px}.kv4 dd{margin:0;font-size:13.5px}
.prio{display:inline-flex;align-items:center;gap:6px;font-weight:600}.prio::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--ink-faint)}
.prio-1::before{background:var(--bad)}.prio-2::before{background:var(--warn)}.prio-3::before{background:var(--accent2)}.prio-4::before{background:var(--ok)}
.excl{margin-top:12px;padding:10px 12px;border-radius:10px;background:color-mix(in srgb,var(--warn) 8%,transparent);border:1px solid color-mix(in srgb,var(--warn) 25%,transparent)}
.excl b{font-size:12.5px}.excl p{margin:4px 0 0;font-size:13px;color:var(--ink-soft);white-space:pre-wrap}
.airead{border-color:color-mix(in srgb,var(--accent2) 45%,var(--edge));background:linear-gradient(160deg,color-mix(in srgb,var(--surface) 90%,var(--accent2) 10%),var(--surface) 60%)}
.doclist{display:grid;gap:6px;margin:8px 0 12px}
.docrow{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2)}
.docrow a{font-weight:600;color:var(--ink);text-decoration:none;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.docrow a:hover{color:var(--accent-text,var(--accent))}
.docsrc{flex:none;width:34px;height:34px;border-radius:8px;display:grid;place-items:center;font:700 10px var(--font-body);background:var(--line);color:var(--ink-soft)}
.docsrc.src-upload{background:rgba(238,126,100,.15);color:var(--bad)}.docsrc.src-sharepoint{background:rgba(3,131,135,.18);color:#2fb5b9}.docsrc.src-onedrive{background:rgba(40,120,220,.18);color:#5aa2f0}
.docsrc.src-itglue{background:rgba(70,224,162,.14);color:var(--ok)}.docsrc.src-autotask,.docsrc.src-datto{background:rgba(95,166,206,.15);color:var(--accent2)}
.docadd{border-top:1px solid var(--line);padding-top:10px;display:grid;gap:8px}
.docadd input[type=url],.docadd input[type=text]{width:100%}
.agenda-mini{display:grid;gap:6px;margin-top:6px}.agenda-mini>div{display:grid;grid-template-columns:62px 1fr auto;gap:8px;align-items:center;font-size:13px}
.agenda-mini .ad{font-weight:600;font-variant-numeric:tabular-nums}

/* assets and licences */
.life-what{display:flex;gap:10px;align-items:center}
.life-ic{flex:none;width:30px;height:30px;border-radius:8px;display:grid;place-items:center;background:var(--line);color:var(--ink-soft)}
.life-ic.k-warranty,.life-ic.k-hardware{background:rgba(167,139,250,.15);color:#b9a2fb}.life-ic.k-license,.life-ic.k-subscription{background:rgba(95,166,206,.15);color:var(--accent2)}
.life-ic.k-security_service{background:rgba(238,126,100,.14);color:var(--bad)}.life-ic.k-support{background:rgba(70,224,162,.14);color:var(--ok)}.life-ic.k-domain,.life-ic.k-certificate{background:rgba(45,212,191,.14);color:#3dd9c4}
.life-tbl tr.row-due td:first-child,.life-tbl tr.row-expired td:first-child{box-shadow:inset 3px 0 0 var(--bad)}.life-tbl tr.row-expiring td:first-child{box-shadow:inset 3px 0 0 var(--warn)}
.life-tbl tr.row-retired,.life-tbl tr.row-replaced{opacity:.55}
.life-tbl tr:target td{background:var(--accent-soft)}
.seat{width:80px;height:6px;border-radius:3px;background:var(--line);overflow:hidden;margin-bottom:3px}.seat span{display:block;height:100%;background:var(--ok)}.seat .full{background:var(--warn)}.seat .over{background:var(--bad)}
.chip.ghost{opacity:.7;cursor:default}
.import-cards{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.imp-card{border:1px solid var(--edge);border-radius:12px;padding:14px;background:var(--surface-2);display:grid;gap:8px;align-content:start}
.imp-h{display:flex;align-items:center;gap:8px}.imp-card p{margin:0}

/* renewals */
.actlist{display:grid;gap:6px;margin-top:8px}
.actrow{display:flex;align-items:center;gap:14px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;color:var(--ink);text-decoration:none;background:var(--surface-2)}
.actrow:hover{border-color:var(--accent)}.actrow .mini{display:block}.actrow .right{text-align:right;display:grid;gap:3px;justify-items:end;white-space:nowrap}.actrow .right .mini{display:inline}
.act-date{flex:none;width:76px;display:grid}.act-date b{font-size:14px}.act-date span{font-size:11.5px}
.pipe{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:10px}
.pipe-col{background:var(--surface-2);border:1px solid var(--line);border-radius:12px;padding:10px;display:grid;gap:8px;align-content:start;min-height:120px}
.pipe-h{display:flex;justify-content:space-between;align-items:baseline;padding:0 2px 4px;border-bottom:1px solid var(--line)}
.pipe-card{display:grid;gap:3px;padding:9px 10px;border-radius:9px;background:var(--surface);border:1px solid var(--edge);color:var(--ink);text-decoration:none}
.pipe-card:hover{border-color:var(--accent)}.pipe-card b{font-size:13px;line-height:1.3}.pipe-card .mini{display:flex;gap:5px;align-items:center}
.pc-f{display:flex;justify-content:space-between;font-size:12px;color:var(--ink-soft)}
.pipe-empty{color:var(--ink-faint);font-size:12.5px;text-align:center;padding:16px 0}

/* the calendar */
.calfilters{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
.calfilters select{height:34px;width:auto;min-width:200px;max-width:280px;flex:none}
.kindpick{display:flex;gap:6px;flex-wrap:wrap}
.kp{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border:1px solid var(--edge);border-radius:999px;font-size:12px;color:var(--ink-faint);cursor:pointer;background:var(--surface)}
.kp input{position:absolute;opacity:0;pointer-events:none}
.kp.on,.kp:has(input:checked){color:var(--ink);border-color:color-mix(in srgb,var(--accent) 40%,var(--edge))}
.kp:has(input:focus-visible){outline:2px solid var(--accent)}
.evd{display:inline-block;width:8px;height:8px;border-radius:50%;flex:none;background:var(--ev,var(--ink-faint))}
.ev-contract{--ev:var(--accent)}.ev-warranty{--ev:#a78bfa}.ev-license{--ev:var(--accent2)}.ev-domain{--ev:#2dd4bf}.ev-plan{--ev:var(--warn)}.ev-policy{--ev:#f472b6}
.ev-microsoft{--ev:#0078d4}.ev-qbr{--ev:var(--ok)}.ev-maintenance{--ev:#94a3b8}.ev-meeting{--ev:#60a5fa}.ev-audit{--ev:#f59e0b}.ev-renewal{--ev:#22d3ee}.ev-reminder{--ev:#e879f9}.ev-other{--ev:var(--ink-faint)}
.calwrap{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:14px;align-items:start}
.calcard{overflow:hidden}
.calgrid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.calhead div{padding:9px 10px;font-size:12px;font-weight:600;color:var(--ink-faint);border-bottom:1px solid var(--edge)}
.calday{min-height:118px;padding:6px 6px 8px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:3px;min-width:0;position:relative}
.calday:nth-child(7n){border-right:0}
.calday.wkend{background:color-mix(in srgb,var(--surface-2) 45%,transparent)}
.calday.other .cd-n{opacity:.35}.calday.other .evchip{opacity:.55}
.cd-h{display:flex;justify-content:space-between;align-items:center;height:22px}
.cd-n{font-size:12.5px;font-weight:600;color:var(--ink-soft);width:22px;height:22px;display:grid;place-items:center;border-radius:50%;font-variant-numeric:tabular-nums}
.calday.today .cd-n{background:var(--accent);color:var(--on-accent,#06121f)}
.cd-add{opacity:0;border:0;background:none;color:var(--ink-faint);cursor:pointer;padding:2px;border-radius:5px;line-height:0}
.calday:hover .cd-add,.cd-add:focus-visible{opacity:1}.cd-add:hover{color:var(--accent-text,var(--accent));background:var(--accent-soft)}
.evchip{display:block;font-size:11.5px;line-height:1.3;padding:3px 6px 3px 8px;border-radius:5px;color:var(--ink);text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  background:color-mix(in srgb,var(--ev,var(--ink-faint)) 14%,transparent);box-shadow:inset 2px 0 0 var(--ev,var(--ink-faint))}
.evchip:hover{background:color-mix(in srgb,var(--ev,var(--ink-faint)) 26%,transparent)}
.evchip.sev-3{background:color-mix(in srgb,var(--bad) 16%,transparent);box-shadow:inset 2px 0 0 var(--bad)}
.evchip .et{font-variant-numeric:tabular-nums;color:var(--ink-soft);margin-right:4px}
.evchip .em{display:block;overflow:hidden;text-overflow:ellipsis;font-weight:600}.evchip .ec{display:block;font-size:10.5px;color:var(--ink-soft);overflow:hidden;text-overflow:ellipsis}
.cd-more summary{font-size:11px;color:var(--ink-faint);cursor:pointer;list-style:none;padding:1px 6px}.cd-more summary::-webkit-details-marker{display:none}
.cd-more summary:hover{color:var(--accent-text,var(--accent))}
.cd-pop{position:absolute;z-index:5;left:4px;right:-60px;top:100%;margin-top:-20px;background:var(--surface);border:1px solid var(--edge);border-radius:10px;padding:6px;display:grid;gap:3px;box-shadow:0 12px 30px rgba(0,0,0,.35)}
.agenda{position:sticky;top:14px;max-height:calc(100vh - 120px);overflow:auto}
.ag{display:grid;gap:2px;margin-top:6px}
.ag-d{display:flex;justify-content:space-between;align-items:baseline;padding:10px 2px 4px;border-bottom:1px solid var(--line);font-size:12.5px}
.ag-d.today b{color:var(--accent-text,var(--accent))}
.ag-e{display:grid;grid-template-columns:8px minmax(0,1fr) auto;gap:10px;align-items:center;padding:7px 4px;border-radius:8px;color:var(--ink);text-decoration:none}
.ag-e:hover{background:var(--surface-2)}.ag-e b{font-size:13px;font-weight:600}.ag-e .mini{font-size:11.5px}
.newfeed{border:1px solid color-mix(in srgb,var(--ok) 40%,var(--edge));background:color-mix(in srgb,var(--ok) 7%,transparent);border-radius:12px;padding:12px;margin-bottom:12px}
.newfeed .linkbox input{font-family:"IBM Plex Mono",monospace;font-size:12px}
.howto{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.howto>div{border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:var(--surface-2);font-size:13px}
.howto ol{margin:6px 0 0;padding-left:18px;color:var(--ink-soft);font-size:12.5px;line-height:1.7}
.dash-coming .ag-e{padding:6px 2px}
@media (max-width:1100px){.calwrap{grid-template-columns:1fr}.agenda{position:static;max-height:none}.pipe{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:700px){.calday{min-height:70px}.evchip .ec{display:none}.import-cards,.howto{grid-template-columns:1fr}.kv4{grid-template-columns:auto 1fr}.kh-money{gap:16px}.kc-foot{grid-template-columns:repeat(2,auto)}}
.tl-note{position:relative;height:26px;margin-top:-8px}
.tl-note>span{position:absolute;left:clamp(0px,calc(var(--x) - 110px),calc(100% - 260px));font-size:12px;color:var(--ink-soft);white-space:nowrap;padding:3px 9px;border-radius:7px;background:var(--surface-2);border:1px solid var(--line)}
.tl-note.soon>span{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 35%,transparent)}.tl-note.late>span{color:var(--ink-faint)}
.docadd>.btn{justify-self:start}
.pagetabs{gap:0;scrollbar-width:thin}.pagetabs a{padding:10px 12px;font-size:13.5px}
@media (max-width:700px){
  .pipe{grid-template-columns:1fr}.actrow{flex-wrap:wrap;gap:8px}.act-date{width:auto}
  .fsec{grid-template-columns:1fr;gap:12px;padding:18px 16px}.form .row3{grid-template-columns:1fr}
  .sla-edit{display:block;overflow-x:auto}.khead{flex-direction:column;align-items:flex-start}.kh-money>div{text-align:left}
  .tl-note>span{position:static;display:inline-block;white-space:normal}.calfilters select{max-width:100%}
  .split{grid-template-columns:minmax(0,1fr)!important}.split>*{min-width:0}.card{overflow-x:auto}.tbl td{overflow-wrap:break-word}
}

/* UI pass 1 (2026-10-08): links in tables read as text until hovered; one link style for card headers */
.tbl td a:not(.btn){text-decoration:none;color:var(--ink)}.tbl td a:not(.btn):hover{color:var(--accent-text,var(--accent))}
.card h3 a.sub,.card h3 .sub a{text-decoration:none;color:var(--ink-soft);font-size:12.5px;font-weight:500}
.card h3 a.sub:hover{color:var(--accent-text,var(--accent))}
.fleet-list{display:grid;margin-top:6px}
.fleet-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:14px;align-items:center;padding:10px 6px;border-bottom:1px solid var(--line);color:var(--ink);text-decoration:none;border-radius:8px}
.fleet-row:last-child{border-bottom:0}.fleet-row:hover{background:var(--surface-2)}
.fr-n b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fr-n .stage-t::first-letter{text-transform:uppercase}
.fr-m{display:grid;gap:4px}.meter.thin{width:100%;height:6px;min-width:0}
.statrows{display:grid;margin-top:6px}
.statrows>div{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:8px 2px;border-bottom:1px solid var(--line);font-size:13px}
.statrows>div:last-child{border-bottom:0}.statrows span{color:var(--ink-soft)}.statrows b{font-weight:600;font-variant-numeric:tabular-nums}
.statrows b.bad{color:var(--bad)}.statrows b.warn{color:var(--warn)}.statrows b .mini{color:var(--ink-faint);font-weight:500}
.side-k{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:8px 0 4px;padding:10px 12px;border-radius:10px;background:var(--surface-2);border:1px solid var(--line);color:var(--ink);text-decoration:none}
.side-k:hover{border-color:var(--accent)}.side-k b{font-size:13.5px}
.side-due{display:grid;gap:4px;margin-top:8px}
.side-due a{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:10px;align-items:center;padding:6px 4px;border-radius:8px;color:var(--ink);text-decoration:none}
.side-due a:hover{background:var(--surface-2)}.side-due .mini{display:block}.side-due b{font-size:13px}
.card h3 button.sub{margin-left:auto}
.listbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;flex-wrap:wrap}
.searchbox{display:flex;align-items:center;gap:8px;height:36px;padding:0 12px;border:1px solid var(--edge);border-radius:9px;background:var(--surface-2);color:var(--ink-faint);min-width:240px}
.searchbox input{border:0!important;background:none!important;height:34px!important;padding:0!important;box-shadow:none!important;min-width:0}
.searchbox:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.cl-n{display:flex;align-items:center;gap:10px}
.cl-av{flex:none;width:32px;height:32px;border-radius:9px;display:grid;place-items:center;font-weight:700;font-size:13px;background:var(--accent-soft);color:var(--accent-text,var(--accent))}
.clients-tbl td{vertical-align:middle}.clients-tbl th:first-child,.clients-tbl td:first-child{padding-left:20px}.clients-tbl th:last-child,.clients-tbl td:last-child{padding-right:20px}
.stage{text-transform:capitalize}
.chips .chip b{margin-left:4px;font-weight:600;color:var(--ink-faint)}
.filterbar{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 14px}
button.chip{font:inherit;cursor:pointer}
.grp-meter{margin-left:auto;display:flex;align-items:center;gap:10px}.grp-meter .meter{width:120px}
.catbox-h .grp-meter .mini{white-space:nowrap}
.posture-head2{display:grid;gap:12px}
.ph2-top{display:flex;justify-content:space-between;align-items:flex-end;gap:16px}
.ph2-big{text-align:right;white-space:nowrap}.ph2-big b{font-size:30px;font-weight:600;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.ph2-big span{display:block;font-size:12px;color:var(--ink-faint)}
.meter.big{width:100%;height:12px;border-radius:6px}
.legend2{display:flex;gap:16px;flex-wrap:wrap;font-size:12px;color:var(--ink-soft)}
.legend2 i{display:inline-block;width:9px;height:9px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.legend2 .ok{background:var(--ok)}.legend2 .warn{background:var(--warn)}.legend2 .bad{background:var(--bad)}.legend2 .unk{background:var(--ink-faint);opacity:.45}
.tilegrp{margin-bottom:20px}.tilegrp h4{font-size:12.5px;font-weight:600;color:var(--ink-soft);margin:0 0 8px 2px;display:flex;gap:8px;align-items:baseline}
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}
.tile{display:flex;flex-direction:column;gap:10px;padding:14px;border:1px solid var(--edge);border-radius:12px;background:var(--surface);transition:border-color .15s}
.tile:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--edge))}.tile.have{border-color:color-mix(in srgb,var(--ok) 40%,var(--edge))}
.tile-h{display:flex;gap:10px;align-items:center}.tile-h .mini{display:block}
.tile-lg{flex:none;width:36px;height:36px;border-radius:9px;display:grid;place-items:center;font-weight:700;font-size:13px;letter-spacing:-.02em;color:hsl(var(--h) 70% 72%);background:hsl(var(--h) 45% 22% / .55);border:1px solid hsl(var(--h) 45% 40% / .4)}
.tile-r{margin:0;font-size:12.5px;color:var(--ink-faint);line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:36px}
.tile-f{display:flex;gap:6px;align-items:center;margin-top:auto}.tile-f .btn{margin-left:auto}
.life2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;align-items:start}
@media (max-width:1100px){.life2{grid-template-columns:minmax(0,1fr)}}
.statrows.linkrows>a{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:7px 4px;border-bottom:1px solid var(--line);font-size:13px;color:var(--ink);text-decoration:none;border-radius:6px}
.statrows.linkrows>a:last-child{border-bottom:0}.statrows.linkrows>a:hover{background:var(--surface-2)}.statrows.linkrows>a:hover span{color:var(--accent-text,var(--accent))}
.statrows.linkrows b.bad{color:var(--bad)}.statrows.linkrows b.warn{color:var(--warn)}
.tr-page{display:contents}
@media (max-width:700px){.tr-page{display:none}.envtag{display:none}}
.seclist{display:grid;margin-top:6px}
.seclist>div{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px 2px;border-bottom:1px solid var(--line)}
.seclist>div:last-child{border-bottom:0}.seclist b{display:block;font-size:13.5px}.seclist .mini{display:block}
.next-row{display:grid;grid-template-columns:32px minmax(0,1fr) minmax(0,1fr) 18px;gap:12px;align-items:center;padding:10px 6px;border-bottom:1px solid var(--line);color:var(--ink);text-decoration:none;border-radius:8px}
.next-row:last-child{border-bottom:0}.next-row:hover{background:var(--surface-2)}.next-row .mini{display:block}
.nr-what{font-size:13px;color:var(--ink-soft)}.next-row:hover .nr-what{color:var(--ink)}.nr-go{color:var(--ink-faint)}.next-row:hover .nr-go{color:var(--accent-text,var(--accent))}
@media (max-width:700px){.next-row{grid-template-columns:32px minmax(0,1fr) 18px}.nr-what{grid-column:2}}
.getstarted{margin-bottom:16px;background:linear-gradient(135deg,color-mix(in srgb,var(--surface) 88%,var(--accent) 12%),var(--surface) 60%)}
.gs-h{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:12px}
.gs-steps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.gs-step{display:flex;gap:10px;align-items:flex-start;padding:12px;border-radius:10px;border:1px solid var(--edge);background:var(--surface-2);color:var(--ink);text-decoration:none}
.gs-step:hover{border-color:var(--accent)}.gs-step b{display:block;font-size:13px;line-height:1.35}.gs-step .mini{display:block;margin-top:3px}
.gs-step.ok{opacity:.65}.gs-step.ok b{text-decoration:line-through;text-decoration-color:var(--ink-faint)}
.gs-dot{flex:none;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:700;border:1.5px solid var(--edge);color:var(--ink-soft)}
.gs-step.ok .gs-dot{background:var(--ok);border-color:var(--ok);color:#06140d}
@media (max-width:1100px){.gs-steps{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:700px){.gs-steps{grid-template-columns:minmax(0,1fr)}.gs-h .meter{display:none}}
.prose table{box-sizing:border-box;max-width:100%}.prose td,.prose th{overflow-wrap:break-word}.prose td:first-child{white-space:nowrap}
.ask-reply{border-left:3px solid var(--accent2)}.ask-from{font-size:11.5px;font-weight:600;color:var(--ink-soft);margin-bottom:4px;display:flex;align-items:center;gap:5px}
.auth .box.ackbox{max-width:760px}
.ack-pols{display:grid;gap:6px}
.ack-pol{border:1px solid var(--edge);border-radius:10px;background:var(--surface-2)}
.ack-pol summary{display:flex;gap:10px;align-items:baseline;padding:11px 14px;cursor:pointer;list-style:none}.ack-pol summary::-webkit-details-marker{display:none}
.ack-pol summary b{flex:1}.ack-pol .prose{padding:4px 16px 14px;max-height:50vh;overflow:auto;font-size:13.5px}
.req{padding:12px 0;border-bottom:1px solid var(--line)}.req:last-of-type{border-bottom:0}
.req-h{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}.req-h b{flex:1;min-width:200px}
.req-ask{margin:6px 0 4px;font-size:13.5px;color:var(--ink);white-space:pre-wrap}
.req-form{margin-top:10px;display:grid;gap:8px;padding:12px;border-radius:10px;background:var(--surface-2);border:1px solid var(--line)}
.req-form input[type=url],.req-form textarea{width:100%}
.quote{padding:12px;border:1px solid var(--edge);border-radius:12px;background:var(--surface-2);margin-top:10px}
.q-top{display:flex;justify-content:space-between;gap:12px;align-items:baseline}.q-amt{font-size:18px;font-weight:600}
.linklike{background:none;border:0;padding:0;color:var(--ink-soft);text-decoration:underline;cursor:pointer;font:inherit}
.ev-block{margin-top:16px;padding-top:14px;border-top:1px solid var(--line);display:grid;gap:8px}
.ev-add{display:grid;gap:8px}.ev-add input[type=url],.ev-add input[type=text]{width:100%}
.ev-ask{font-size:13px;padding:8px 10px;border-radius:9px;background:color-mix(in srgb,var(--warn) 8%,transparent);border:1px solid color-mix(in srgb,var(--warn) 25%,transparent)}
.ev-askform summary{cursor:pointer;font-size:13px;color:var(--ink-soft);list-style:none;display:flex;gap:6px;align-items:center}.ev-askform summary::-webkit-details-marker{display:none}
.ev-askform summary:hover{color:var(--accent-text,var(--accent))}
.statrows>div.seatsync{font-size:12px;align-items:center;background:color-mix(in srgb,var(--accent2) 8%,transparent);border-radius:8px;padding:6px 8px}
.seatsync span{color:var(--ink-soft);display:flex;gap:6px;align-items:center}
.auth:has(.ackbox){place-items:start center}.auth:has(.ackbox) .powered{position:static!important;margin-top:18px}

/* themed form controls (2026-10-08): every select, option list, checkbox, radio, date and file picker follows the theme tokens */
select{appearance:none;-webkit-appearance:none;padding-right:34px!important;cursor:pointer;
  background-color:var(--surface-2);color:var(--ink);
  background-image:linear-gradient(45deg,transparent 50%,var(--ink-soft) 50%),linear-gradient(135deg,var(--ink-soft) 50%,transparent 50%);
  background-position:calc(100% - 17px) 50%,calc(100% - 12px) 50%;background-size:5px 5px,5px 5px;background-repeat:no-repeat}
select:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--edge-input))}
select:focus{background-image:linear-gradient(45deg,transparent 50%,var(--accent) 50%),linear-gradient(135deg,var(--accent) 50%,transparent 50%)}
select[multiple]{background-image:none;padding-right:12px!important}
option,optgroup{background-color:var(--surface);color:var(--ink)}
option:checked{background-color:var(--accent-soft);color:var(--ink)}
option:disabled{color:var(--ink-faint)}
input[type=checkbox],input[type=radio]{accent-color:var(--accent)}
input[type=date],input[type=time],input[type=datetime-local]{color-scheme:inherit}
input::placeholder,textarea::placeholder{color:var(--ink-faint);opacity:1}
input[type=file]::file-selector-button:hover{border-color:var(--accent)}
input:disabled,select:disabled,textarea:disabled{opacity:.6;cursor:not-allowed}
::selection{background:var(--accent-soft)}
*{scrollbar-color:var(--edge) transparent}

/* the console in light (2026-10-08): a person picks it on their profile; the default stays dark */
html[data-theme=light]{--bg:#F4F5F8;--side:#FFFFFF;--topbar:rgba(255,255,255,.86);--surface:#FFFFFF;--surface-2:#F4F5F8;--edge:rgba(20,30,60,.14);--line:rgba(20,30,60,.08);--edge-input:#8A8C90;--ink:#151922;--ink-soft:#4A5263;--ink-faint:#687083;--accent:#AE511D;--accent-soft:rgba(174,81,29,.11);--on-accent:#FFFFFF;--accent2:#2A6F98;--ok:#15803D;--warn:#9A5B06;--bad:#B42318;color-scheme:light}
@media (prefers-color-scheme: light){html[data-theme=system]{--bg:#F4F5F8;--side:#FFFFFF;--topbar:rgba(255,255,255,.86);--surface:#FFFFFF;--surface-2:#F4F5F8;--edge:rgba(20,30,60,.14);--line:rgba(20,30,60,.08);--edge-input:#8A8C90;--ink:#151922;--ink-soft:#4A5263;--ink-faint:#687083;--accent:#AE511D;--accent-soft:rgba(174,81,29,.11);--on-accent:#FFFFFF;--accent2:#2A6F98;--ok:#15803D;--warn:#9A5B06;--bad:#B42318;color-scheme:light}}
html[data-theme=light] .t-ok,html[data-theme=light] .t-warn,html[data-theme=light] .t-bad{filter:saturate(1.1)}
html[data-theme=light] .kpi{box-shadow:0 1px 2px rgba(20,30,60,.05)}
html[data-theme=light] .card{box-shadow:0 1px 2px rgba(20,30,60,.05)}
.themepick{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.tp{display:grid;gap:4px;padding:10px;border:1px solid var(--edge);border-radius:12px;cursor:pointer;background:var(--surface-2)}
.tp input{position:absolute;opacity:0;pointer-events:none}.tp:has(input:checked),.tp.on{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.tp:has(input:focus-visible){outline:2px solid var(--accent)}
.tp b{font-size:13px}.tp-sw{display:grid;grid-template-columns:1fr 2fr;grid-template-rows:1fr 1fr;gap:3px;height:46px;border-radius:8px;padding:4px;margin-bottom:4px}
.tp-sw i:first-child{grid-row:span 2;border-radius:4px}.tp-sw i{border-radius:4px}
.tp-dark{background:#0C1220}.tp-dark i{background:#162036}.tp-dark i:nth-child(2){background:var(--accent)}
.tp-light{background:#F4EFE4}.tp-light i{background:#FCFAF3;border:1px solid #E5DECF}.tp-light i:nth-child(2){background:var(--accent);border:0}
.tp-system{background:linear-gradient(135deg,#0C1220 50%,#F4EFE4 50%)}.tp-system i{background:color-mix(in srgb,#888 35%,transparent)}.tp-system i:nth-child(2){background:var(--accent)}
@media (max-width:700px){.themepick{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* footer and finishing (2026-10-08) */
.pfoot{display:flex;gap:18px;flex-wrap:wrap;align-items:center;margin-top:36px;padding:16px 2px 4px;border-top:1px solid var(--line);font-size:12px;color:var(--ink-faint)}
.pfoot a{color:var(--ink-faint);text-decoration:none}.pfoot a:hover{color:var(--ink-soft)}.pfoot .pf-r{margin-left:auto}
.crumb{color:var(--ink-faint)}.crumb a{color:var(--ink-soft)}.crumb a:hover{color:var(--ink)}
.auth-help{margin-top:18px;padding-top:14px;border-top:1px solid var(--line);font-size:12px;color:var(--ink-faint);text-align:center}.auth-help a{color:var(--ink-soft)}
.jumpbtn{gap:8px;color:var(--ink-faint)!important;border:1px solid var(--edge)!important;padding:0 10px!important}.jumpbtn kbd{font:600 10px var(--font-body);padding:1px 5px;border:1px solid var(--edge);border-radius:4px;color:var(--ink-faint)}
.cmdk-list{max-height:52vh;overflow:auto;padding:6px}.cmdk-list .cmdk-r{display:flex;gap:10px;align-items:center;text-decoration:none;color:var(--ink)}.cmdk-list .cmdk-r .mini{margin-left:auto}
@media (max-width:700px){.jumpbtn span,.jumpbtn kbd{display:none}}
[hidden]{display:none!important}

/* agreement templates (v0.7.0) */
.tplgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}
.tplcard{display:flex;flex-direction:column;gap:6px;padding:12px 14px;border:1px solid var(--edge);border-radius:12px;background:var(--surface-2);min-width:0;color:var(--ink);text-decoration:none}
.tplcard.link:hover{border-color:var(--accent)}
.tplcard-h{display:flex;align-items:center;gap:10px;min-width:0}.tplcard-h b{font-size:13.5px;line-height:1.3}
.tplcard-h .docsrc{width:auto;min-width:34px;padding:0 6px;height:24px;border-radius:6px;font-size:9.5px;letter-spacing:.03em}
.tplcard p{margin:0;line-height:1.45}
.tplcard-a{display:flex;gap:6px;flex-wrap:wrap;margin-top:auto;padding-top:4px}
.note-bar{display:flex;gap:8px;align-items:flex-start;padding:10px 14px;margin:0 0 14px;border:1px solid var(--edge);border-left:3px solid var(--warn);border-radius:10px;background:var(--surface);font-size:13px;color:var(--ink-soft)}
.note-bar svg{flex:none;margin-top:2px;color:var(--warn)}.note-bar.warn{font-size:12.5px}
.agreement-doc{max-width:760px;font-size:14px}
.agreement-doc h1{font-size:22px;margin:0 0 14px;letter-spacing:-.01em}
.agreement-doc h2{font-size:15px;margin:22px 0 6px}
.agreement-doc p{margin:0 0 10px}
mark.blank{background:color-mix(in srgb,var(--warn) 22%,transparent);color:var(--ink);border-radius:4px;padding:0 4px;font-weight:600;box-decoration-break:clone}
.chips-wrap{display:flex;flex-wrap:wrap;gap:6px}
.chip-s{font-size:11.5px;padding:3px 8px;border-radius:999px;border:1px solid var(--edge);background:var(--surface-2);color:var(--ink-soft)}
.asklist{margin:0;padding-left:18px}.asklist li{margin:3px 0}
.steps-mini{margin:6px 0 0;padding-left:18px;font-size:13px;line-height:1.5;color:var(--ink-soft)}.steps-mini li{margin:0 0 8px}.steps-mini b{color:var(--ink)}
@media (max-width:700px){.tplgrid{grid-template-columns:1fr}}
@media (max-width:700px){.hide-sm{display:none!important}}

.wel-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.wel-steps li{display:flex;gap:10px;padding:10px 12px;border:1px solid var(--edge);border-radius:10px;background:var(--surface-2);min-width:0}
.wel-steps li b{display:block;font-size:13px}.wel-steps li .mini{display:block;margin-top:2px;line-height:1.4}
.wel-steps li.now{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}
.wel-steps li.done{opacity:.7}.wel-steps li.done .wel-n{background:var(--ok);color:#06140c}
.wel-n{flex:none;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:var(--line);font-size:11px;font-weight:700}
@media (max-width:900px){.wel-steps{grid-template-columns:1fr 1fr}}@media (max-width:520px){.wel-steps{grid-template-columns:1fr}}

.font-prev{border:1px solid var(--edge);border-radius:10px;background:var(--surface-2);padding:12px 14px;margin:2px 0 12px;font-family:var(--font-body)}
.font-prev h4{margin:0 0 4px;font:600 17px/1.25 var(--font-head);letter-spacing:-.01em}.font-prev p{margin:0;font-size:13.5px;color:var(--ink-soft)}

/* the menu across the top (Settings > Brand > Menu) */
@media (min-width:821px){
.app.navtop{grid-template-columns:minmax(0,1fr);grid-template-rows:auto 1fr}
.app.navtop .side{flex-direction:row;align-items:center;gap:6px;height:auto;position:sticky;top:0;z-index:20;padding:10px 24px;border-right:0;border-bottom:1px solid var(--edge);overflow:visible;backdrop-filter:blur(10px)}
.app.navtop .pbrand{border:0;padding:0;margin:0 18px 0 0;flex:none}
.app.navtop .pbrand .s{display:none}
.app.navtop .nav{display:flex;align-items:center;gap:2px;margin:0;flex:1;min-width:0;flex-wrap:wrap}
.app.navtop .navh{display:none}
.app.navtop .nav a{padding:7px 12px;font-size:13px;gap:7px}
.app.navtop .nav a span:first-of-type{flex:none}
.app.navtop .nav a .badge{margin-left:2px}
.app.navtop .side .foot{margin:0 0 0 auto;padding:0;border:0;flex:none}
.app.navtop .side .foot .fn,.app.navtop .side .foot .faint{max-width:150px}
.app.navtop .powered{display:none}
.app.navtop .main .top{position:static}
}

/* ---------------------------------------------------------------- v0.8: the client workspace, glass, motion */
:root{--shadow:0 1px 0 rgba(255,255,255,.03) inset,0 10px 30px -18px rgba(0,0,0,.6);--glass:color-mix(in srgb,var(--surface) 70%,transparent)}
.card{box-shadow:var(--shadow);background:linear-gradient(180deg,color-mix(in srgb,var(--surface) 96%,var(--ink) 4%) 0,var(--surface) 64px)}
.top{background:var(--glass);backdrop-filter:saturate(1.4) blur(14px);-webkit-backdrop-filter:saturate(1.4) blur(14px)}
.side{backdrop-filter:saturate(1.3) blur(12px)}
.ph h1{font-size:28px;letter-spacing:-.022em;line-height:1.15}
.ph .eyebrow{margin-bottom:8px}
.client-ph{padding-bottom:4px}
.lead-mini{color:var(--ink-soft);margin:-4px 0 4px;max-width:760px;font-size:13.5px}
@media (prefers-reduced-motion:no-preference){
  .content>*{animation:rise .32s cubic-bezier(.2,.7,.2,1) both}
  .content>*:nth-child(2){animation-delay:.03s}.content>*:nth-child(3){animation-delay:.06s}.content>*:nth-child(4){animation-delay:.09s}.content>*:nth-child(5){animation-delay:.12s}.content>*:nth-child(n+6){animation-delay:.15s}
  .card,.hs,.tool,.tplcard{transition:border-color .15s,transform .15s,box-shadow .15s}
  a.card:hover,a.hs:hover,a.tool:hover,a.tplcard:hover{transform:translateY(-1px)}
}
@keyframes rise{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
/* the client's menu and, inside an assessment, its own menu */
.ws-tabs{margin:2px 0 10px}
.subtabs{display:flex;align-items:center;gap:2px;flex-wrap:wrap;margin:-2px 0 16px;padding:5px;border:1px solid var(--edge);border-radius:12px;background:var(--glass);backdrop-filter:blur(10px);box-shadow:var(--shadow)}
.subtabs a{padding:6px 12px;border-radius:8px;color:var(--ink-soft);text-decoration:none;font-size:13px;font-weight:500;white-space:nowrap;display:inline-flex;align-items:center;gap:6px}
.subtabs a:hover{color:var(--ink);background:color-mix(in srgb,var(--ink) 5%,transparent)}
.subtabs a.on{color:var(--ink);background:var(--accent-soft)}
.subtabs .sub-k{color:var(--ink);font-weight:600;padding-right:14px;margin-right:4px;border-right:1px solid var(--edge);border-radius:8px 0 0 8px}
.subtabs .sub-k svg{color:var(--accent-text,var(--accent))}
.subtabs .sub-r{margin-left:auto}
/* hero numbers */
.hero-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.hs{display:flex;flex-direction:column;gap:4px;padding:16px 18px;border:1px solid var(--edge);border-radius:var(--radius);background:linear-gradient(180deg,color-mix(in srgb,var(--surface) 94%,var(--ink) 6%),var(--surface));box-shadow:var(--shadow);text-decoration:none;color:var(--ink);min-width:0;position:relative;overflow:hidden}
.hs::before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--line)}
.hs.good::before{background:var(--ok)}.hs.warn::before{background:var(--warn)}
a.hs:hover{border-color:color-mix(in srgb,var(--accent) 55%,var(--edge))}
.hs-l{font-size:12px;color:var(--ink-faint);font-weight:500}
.hs b{font:600 26px/1.15 var(--font-head);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.hs b small{font-size:14px;color:var(--ink-faint);font-weight:500;letter-spacing:0}.hs b .sm,.hs b.sm{font-size:17px}
.hs .mini{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hs.good b{color:var(--ok)}
/* overview cards */
.ov-asm+.ov-asm{border-top:1px solid var(--line);margin-top:12px;padding-top:12px}
.ov-asm-h{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:6px 0 8px}
.asm-steps{display:flex;gap:4px;flex-wrap:wrap}
.asm-steps span{flex:1;min-width:76px;text-align:center;font-size:11.5px;font-weight:600;padding:6px 8px;border-radius:7px;background:var(--surface-2);border:1px solid var(--edge);color:var(--ink-faint)}
.asm-steps span.done{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 35%,var(--edge))}
.asm-steps span.now{color:var(--ink);border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}
.asm-steps.sm span{padding:4px 6px;font-size:11px}
.tbl.compact td{padding:7px 8px}
.env-facts,.ov-fnd,.ov-next{display:grid;gap:6px;margin-top:8px}
.env-facts a,.ov-fnd a,.ov-next a{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2);color:var(--ink);text-decoration:none;font-size:13px;min-width:0}
.env-facts a:hover,.ov-fnd a:hover,.ov-next a:hover{border-color:var(--edge);background:color-mix(in srgb,var(--surface-2) 80%,var(--ink) 4%)}
.env-facts span{color:var(--ink-soft);flex:none;font-size:12.5px}.env-facts b{font-weight:500;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ov-fnd span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ov-fnd b{color:var(--ok);flex:none}
.ov-next a svg{flex:none;color:var(--ink-faint)}
/* assessments */
.asm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(420px,1fr));gap:14px}
a.asm{display:flex;flex-direction:column;gap:12px;color:var(--ink);text-decoration:none}a.asm:hover{border-color:color-mix(in srgb,var(--accent) 50%,var(--edge))}
.asm-h{display:flex;align-items:center;gap:12px}.asm-h b{display:block;font-size:15px}.asm-h .mini{display:block}.asm-h .tag{margin-left:auto}
.asm-ic,.tool-ic{flex:none;width:38px;height:38px;border-radius:10px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent-text,var(--accent))}
.tool-ic.big{width:48px;height:48px;border-radius:12px}
.meter.wide{width:100%;height:9px}
.asm-meter{display:grid;gap:6px}
.asm-nums{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.asm-nums div{padding:8px 10px;border-radius:9px;background:var(--surface-2);border:1px solid var(--line)}
.asm-nums b{display:block;font:600 18px/1.2 var(--font-head)}.asm-nums span{font-size:11.5px;color:var(--ink-faint)}
.tplcard.planned{opacity:.85;border-style:dashed}
/* environment */
.env-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(460px,1fr));gap:14px;align-items:start}
.env-h{display:flex;align-items:baseline;justify-content:space-between;gap:10px;flex-wrap:wrap}.env-h h3{margin:0}
.env .mini:first-of-type{margin-top:2px}
.env-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:12px 0}
.env-stat{padding:10px 12px;border-radius:10px;background:var(--surface-2);border:1px solid var(--line);min-width:0}
.env-stat b{display:block;font:600 20px/1.15 var(--font-head);font-variant-numeric:tabular-nums}.env-stat span{font-size:11.5px;color:var(--ink-faint);line-height:1.3;display:block}
.env-stat.ok b{color:var(--ok)}.env-stat.warn b{color:var(--warn)}.env-stat.bad b{color:var(--bad)}
.env-kv{grid-template-columns:150px minmax(0,1fr)!important;row-gap:8px!important}.env-kv dd{min-width:0}
.env-names{display:inline-flex;flex-wrap:wrap;gap:4px;vertical-align:middle}.env-names code{font:11.5px "IBM Plex Mono",monospace;padding:1px 6px;border-radius:5px;background:var(--surface-2);border:1px solid var(--line)}
.warn-t{color:var(--warn)}.bad-t{color:var(--bad)}
.env-more{display:grid;gap:8px}.env-add{display:flex;justify-content:space-between;gap:12px;padding:10px 12px;border:1px dashed var(--edge);border-radius:10px;color:var(--ink);text-decoration:none}.env-add:hover{border-color:var(--accent)}
.hero-empty{text-align:left;max-width:760px}.hero-empty p{color:var(--ink-soft);margin:8px 0 14px;line-height:1.55}
/* tools */
.tool-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px}
a.tool{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border:1px solid var(--edge);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);text-decoration:none;color:var(--ink)}
a.tool:hover{border-color:color-mix(in srgb,var(--accent) 50%,var(--edge))}
a.tool p{margin:3px 0 0;line-height:1.45}a.tool.planned{border-style:dashed;box-shadow:none;background:transparent}a.tool.planned .tool-ic{background:var(--surface-2);color:var(--ink-faint)}
/* findings */
.fnd{padding:12px 0;border-top:1px solid var(--line)}.fnd:first-of-type{border-top:0}
.fnd-h{display:flex;justify-content:space-between;gap:12px;align-items:baseline}.fnd-h b{font-size:14px}
.fnd-m{font:600 17px var(--font-head);color:var(--ok);white-space:nowrap}.fnd-m small{font-size:11px;color:var(--ink-faint)}
.fnd p{margin:4px 0 6px;line-height:1.5}
.fnd-items ul{margin:6px 0 0;padding-left:16px}.fnd-items li{margin:2px 0}
.fnd-a{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:6px}
.fnd-f{display:flex;gap:6px;flex-wrap:wrap;align-items:center;flex:1;justify-content:flex-end}.fnd-f input{max-width:220px;height:32px}
.money-in.sm input{height:30px;width:84px;text-align:right}
@media (max-width:1100px){.hero-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:700px){.hero-stats{grid-template-columns:1fr 1fr}.env-grid,.asm-grid{grid-template-columns:1fr}.env-stats,.asm-nums{grid-template-columns:1fr 1fr}.env-kv{grid-template-columns:1fr!important}.subtabs{overflow-x:auto;flex-wrap:nowrap}}

.money-in input::placeholder{color:var(--ink-faint);opacity:1}
/* actions: the resolve loop */
.loop{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;margin:0 0 16px;border:1px solid var(--edge);border-radius:var(--radius);background:var(--glass,var(--surface));box-shadow:var(--shadow);overflow:hidden}
.loop-s{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-left:1px solid var(--line);min-width:0}.loop-s:first-child{border-left:0}
.loop-s b{display:block;font-size:13px}.loop-s .mini{display:block;line-height:1.35;margin-top:2px}
.loop-n{flex:none;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font:600 12px var(--font-head);background:var(--accent-soft);color:var(--accent-text,var(--accent))}
.act-grp{margin:18px 0 0}.act-grp summary{cursor:pointer;list-style:none}.act-grp summary::-webkit-details-marker{display:none}
.act-list{display:grid;gap:10px;margin-top:8px}
.act{position:relative;padding:14px 16px 12px 19px;border:1px solid var(--edge);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);animation:rise .35s ease both}
.act::before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:3px;border-radius:0 3px 3px 0;background:var(--edge)}
.act.risk-low::before{background:var(--ok)}.act.risk-medium::before{background:var(--warn)}.act.risk-high::before{background:var(--bad)}
.act.st-verified{background:color-mix(in srgb,var(--ok) 4%,var(--surface))}.act.st-rejected,.act.st-cancelled{opacity:.72}
.act-h{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.act-t{min-width:0}.act-t>b{font-size:14.5px}
.act-meta{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}
.act-r{display:flex;align-items:center;gap:10px;flex:none}
.act-why{margin:8px 0 0;line-height:1.5;max-width:900px}
.act-body{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:16px;margin-top:10px}
.act-steps{margin:0;padding-left:20px;font-size:13px;line-height:1.5}.act-steps li{margin:2px 0}.act-steps li::marker{color:var(--ink-faint)}
.act-tg{display:flex;flex-direction:column;gap:6px}
.act-trail{margin-top:10px;padding-top:8px;border-top:1px dashed var(--line);line-height:1.5}
.act-a{display:flex;justify-content:flex-end;align-items:center;gap:8px;flex-wrap:wrap;margin-top:8px}.act-a:empty{display:none}.act-a input[type=text]{max-width:280px;height:32px;flex:1}
.chip-s.r-low{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 40%,var(--edge))}
.chip-s.r-medium{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 40%,var(--edge))}
.chip-s.r-high{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 40%,var(--edge))}
.ok-t{color:var(--ok)}
.act-tbl td{vertical-align:middle}.act-tbl a{color:var(--ink);text-decoration:none}.act-tbl a:hover b{color:var(--accent-text,var(--accent))}
.receipt{padding:22px 24px}.rc-h{display:flex;gap:14px;align-items:center;margin-bottom:14px;padding-bottom:14px;border-bottom:1px solid var(--line)}
.rc-kv{grid-template-columns:130px minmax(0,1fr)!important;row-gap:10px!important}.rc-kv .act-steps{padding-left:18px}
.mono{font-family:"IBM Plex Mono",monospace;word-break:break-all}
@media (max-width:900px){.loop{grid-template-columns:1fr 1fr}.loop-s{border-left:0;border-top:1px solid var(--line)}.act-body{grid-template-columns:1fr}.act-h{flex-direction:column}}
@media print{.act-a,.loop{display:none}}
a.dash-loop{display:flex;align-items:center;gap:18px;flex-wrap:wrap;text-decoration:none;color:var(--ink)}a.dash-loop:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--edge))}
.dl-h{display:flex;gap:12px;align-items:center;min-width:240px}.dl-h b{display:block;font-size:14.5px}.dl-h .mini{display:block;max-width:260px;line-height:1.35}
.dl-s{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;flex:1;min-width:0}
.dl-s span{padding:8px 12px;border-radius:10px;background:var(--surface-2);border:1px solid var(--line);font-size:11.5px;color:var(--ink-faint);line-height:1.3}
.dl-s b{display:block;font:600 20px/1.15 var(--font-head);color:var(--ink);font-variant-numeric:tabular-nums}
.dl-s .warn b{color:var(--warn)}.dl-s .good b{color:var(--ok)}
@media (max-width:900px){.dl-s{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* portfolio */
.pf-map{margin-top:14px}.pf-map .pf-scroll>svg{width:100%;height:auto;display:block;margin-top:10px}
.pf-map .q-hot{fill:color-mix(in srgb,var(--bad) 7%,transparent)}
.pf-map .ax{stroke:var(--edge);stroke-dasharray:4 5}.pf-map .tk{font-size:9px;fill:var(--ink-faint);font-family:var(--font-body)}
.pf-map .ql{font-size:9.5px;fill:var(--ink-faint);font-weight:600;letter-spacing:.02em;font-family:var(--font-body)}
.pf-map .dot circle{stroke:var(--surface);stroke-width:2;opacity:.9;transition:opacity .15s}.pf-map .dot text{font-size:10px;fill:var(--ink);font-weight:600;font-family:var(--font-body)}
.pf-map .d-bad circle{fill:var(--bad)}.pf-map .d-warn circle{fill:var(--warn)}.pf-map .d-ok circle{fill:var(--ok)}
.pf-map a:hover circle{opacity:1;stroke:var(--accent)}
.pf-tbl th a{color:inherit;text-decoration:none}.pf-tbl th a.on{color:var(--accent-text,var(--accent))}.pf-tbl th a:hover{color:var(--ink)}
.pf-sc{font:600 15px var(--font-head)}.pf-flags{display:flex;flex-wrap:wrap;gap:4px}
/* crosswalk */
.cw-head{display:flex;justify-content:space-between;gap:18px;align-items:center}
.cw-score{text-align:right;flex:none}.cw-score b{display:block;font:600 34px/1 var(--font-head);color:var(--ok)}.cw-score b small{font-size:15px;color:var(--ink-faint)}
.cw-sec{margin-top:14px}.cw-sec h3{display:flex;justify-content:space-between;align-items:baseline}
.cw-i{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 14px;padding:12px 0 12px 12px;border-top:1px solid var(--line);position:relative}.cw-i:first-of-type{border-top:0}
.cw-i::before{content:"";position:absolute;left:0;top:14px;bottom:14px;width:3px;border-radius:3px;background:var(--edge)}
.cw-i.st-met::before{background:var(--ok)}.cw-i.st-partial::before{background:var(--warn)}.cw-i.st-gap::before{background:var(--bad)}.cw-i.st-na{opacity:.65}
.cw-t{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px}.cw-t b{font-size:13.5px}.cw-cite{font-size:11px;color:var(--ink-faint)}
.cw-s{display:flex;gap:6px;align-items:center;justify-content:flex-end}
.cw-b{grid-column:1/-1}.cw-ctl{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}.cw-ctl a{text-decoration:none}
.cw-note{color:var(--ink-soft)}.cw-note span{color:var(--ink-faint)}
.cw-rec{margin-top:6px}.cw-rec summary{list-style:none;display:inline}.cw-rec summary::-webkit-details-marker{display:none}
.cw-f{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}.cw-f select{height:32px;width:auto}.cw-f input{flex:1;min-width:220px;height:32px}
@media (max-width:700px){.cw-head{flex-direction:column;align-items:flex-start}.cw-score{text-align:left}}
/* console: outcomes across portals */
.out-g{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-top:12px}
.out-g div{padding:10px 12px;border-radius:10px;background:var(--surface-2);border:1px solid var(--line)}
.out-g b{display:block;font:600 20px/1.15 var(--font-head);font-variant-numeric:tabular-nums}.out-g b small{font-size:11px;color:var(--ink-faint)}
.out-g span{font-size:11.5px;color:var(--ink-faint);line-height:1.3;display:block;margin-top:2px}.out-g .ok b{color:var(--ok)}
@media (max-width:1100px){.out-g{grid-template-columns:repeat(2,minmax(0,1fr))}}
.btn.sample-b{border-style:dashed}
.pf-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
@media (max-width:700px){.pf-scroll>svg{min-width:620px}.pf-tbl .meter{width:70px!important}}
.prog-s{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 6px}.prog-s div{flex:1;min-width:110px;padding:9px 12px;border-radius:10px;background:var(--surface-2);border:1px solid var(--line)}
.prog-s b{display:block;font:600 19px/1.15 var(--font-head);font-variant-numeric:tabular-nums}.prog-s b small{font-size:11px;color:var(--ink-faint)}.prog-s span{font-size:11.5px;color:var(--ink-faint)}
.prog-s .up b{color:var(--ok)}.prog-s .down b{color:var(--bad)}
.prog-r{display:flex;gap:8px;align-items:center;padding:7px 2px;border-top:1px solid var(--line);color:var(--ink);text-decoration:none;font-size:13px}.prog-r:hover{color:var(--accent-text,var(--accent))}.prog-r .ell{flex:1;min-width:0}
/* v0.9.6: the lab's look for remediate, fleet and assess (no traffic lights, counts not scores) */
.lab-eb{font:600 11px/1.2 "IBM Plex Mono",monospace;letter-spacing:.12em;text-transform:uppercase;color:var(--accent-text,var(--accent));margin:2px 0 6px}
.lab-note{margin:0 0 12px;padding:2px 0 2px 12px;border-left:2px solid var(--edge);color:var(--ink-soft);font-size:13px;max-width:900px}
.asof{display:flex;flex-wrap:wrap;gap:6px 22px;align-items:baseline;padding:10px 0;margin:0 0 4px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:12px;color:var(--ink)}
.asof i{font-style:normal;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);margin-right:6px}.asof b{font-weight:600}.asof b.on{color:var(--accent-text,var(--accent))}
.lab-tabs{display:flex;gap:4px;flex-wrap:wrap;margin:14px 0 0;border-bottom:1px solid var(--line)}
.lab-tabs a{padding:8px 14px;color:var(--ink-soft);text-decoration:none;font-size:13.5px;border-bottom:2px solid transparent;margin-bottom:-1px}.lab-tabs a:hover{color:var(--ink)}
.lab-tabs a.on{color:var(--ink);font-weight:600;border-bottom-color:var(--accent)}.lab-tabs sup{font-size:10px;margin-left:3px;color:var(--ink-faint);font-weight:500}
.lab-empty{padding:22px 4px;color:var(--ink-soft)}
.lab-counts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:0;margin:12px 0 14px;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--surface)}
.lab-counts a{padding:12px 14px;border-left:1px solid var(--line);text-decoration:none;color:var(--ink);min-width:0}.lab-counts a:first-child{border-left:0}.lab-counts a:hover{background:var(--surface-2)}
.lab-counts b{display:block;font:600 22px/1.15 var(--font-head);font-variant-numeric:tabular-nums}.lab-counts b small{font-size:12px;color:var(--ink-faint);font-weight:500}
.lab-counts span{display:block;font-size:12.5px;margin-top:2px}.lab-counts small{display:block;font-size:11px;color:var(--ink-faint);margin-top:1px}
.lab-tbl th{font:600 10.5px "IBM Plex Mono",monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint)}.lab-tbl td a{color:var(--ink)}
/* the state mark: a small square, filled for what needs a decision (accent), outlined for in hand, ink for a receipt, faint when closed */
.mk{display:inline-block;width:8px;height:8px;margin-right:7px;vertical-align:1px;border:1.5px solid var(--ink-faint);border-radius:1px}
.mk-decide .mk{background:var(--accent);border-color:var(--accent)}.mk-hand .mk{border-color:var(--ink-soft)}.mk-receipt .mk{background:var(--ink);border-color:var(--ink)}
.pr-st{font-size:12.5px;white-space:nowrap;color:var(--ink-soft)}.mk-decide .pr-st,.pr-st.mk-decide{color:var(--ink);font-weight:600}
/* proposals: rows that open */
.pr-wrap{display:grid;grid-template-columns:minmax(0,1fr);gap:18px;align-items:start}.pr-wrap.has-rail{grid-template-columns:minmax(0,1fr) 280px}
.pr-h,.pr-s{display:grid;grid-template-columns:110px minmax(0,1fr) 70px 100px 170px;gap:12px;align-items:baseline}
.pr-h{padding:10px 12px 8px;font:600 10.5px "IBM Plex Mono",monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);border-bottom:1.5px solid var(--ink-soft)}
.pr{border-bottom:1px solid var(--line)}.pr[open]{background:var(--surface)}
.pr-s{padding:11px 12px;cursor:pointer;list-style:none}.pr-s::-webkit-details-marker{display:none}.pr-s:hover{background:var(--surface-2)}
.pr-f{font-size:12px;color:var(--accent-text,var(--accent))}.pr-t b{font-weight:500;font-size:13.5px}.pr-t .mini{display:block;margin-top:2px}.pr-p{font-size:11.5px;color:var(--ink-soft)}.pr-o{font-size:12.5px;color:var(--ink-soft)}
.mk-closed .pr-t b,.mk-closed .pr-f{color:var(--ink-faint)}
.pr-b{padding:4px 12px 14px 134px}.pr-meta{display:flex;flex-wrap:wrap;gap:4px 16px;font-size:11px;color:var(--ink-faint);margin-bottom:6px}
.pr-why{margin:0 0 4px;color:var(--ink-soft);font-size:13px;line-height:1.5;max-width:860px}.pr-ev{color:var(--ink)}
.eyebrow-m{font:600 10px "IBM Plex Mono",monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint)}
.pr-rail{position:sticky;top:16px;padding:14px 16px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}
.rail-n{font-size:15px;padding-bottom:10px;border-bottom:1.5px solid var(--ink-soft);margin-bottom:4px}
.rail-i{padding:10px 0;border-bottom:1px solid var(--line)}.rail-i a.mono{font-size:12px;color:var(--accent-text,var(--accent));text-decoration:none}.rail-i p{margin:3px 0 8px;font-size:13px;line-height:1.4}
.rail-i form{display:flex;gap:14px;align-items:center}
.lab-btn{background:none;border:0;padding:0 0 2px;font:600 11px "IBM Plex Mono",monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--ink);border-bottom:1.5px solid var(--accent);cursor:pointer;text-decoration:none}
.lab-btn.ghost{border-bottom-color:var(--edge);color:var(--ink-soft)}
@media (max-width:1100px){.pr-wrap.has-rail{grid-template-columns:1fr}.pr-rail{position:static;order:-1}}
@media (max-width:700px){.pr-h,.pr-s{grid-template-columns:80px minmax(0,1fr) 120px}.pr-b{padding-left:12px}}
/* client proposals: the person's chosen columns (table system) set the grid */
.pr-dyn .pr-h,.pr-dyn .pr-s{grid-template-columns:var(--prc)}.pr-dyn .pr-h .tb-sort{color:inherit}.pr-dyn .pr-h .right,.pr-dyn .pr-s .right{text-align:right}
@media (max-width:700px){.pr-dyn .pr-h,.pr-dyn .pr-s{grid-template-columns:var(--prc-sm)}}
/* neutral marks in place of colour (overrides the v0.9 styles) */
.chip-s.r-low,.chip-s.r-medium{color:var(--ink-soft);border-color:var(--edge)}.chip-s.r-high,.chip-s.k-on{color:var(--ink);border-color:var(--ink-soft)}
.cw-i.st-met::before,.cw-i.st-partial::before,.cw-i.st-gap::before{background:var(--edge)}.cw-i.st-gap::before,.cw-i.st-own::before{background:var(--accent)}
.cw-score b{color:var(--ink)}
.pf-map .dot circle{fill:var(--ink-soft);stroke:var(--surface);opacity:.75}.pf-map .dot.hot circle{fill:var(--accent);opacity:.95}
.pf-map .q-hot{fill:color-mix(in srgb,var(--accent) 6%,transparent)}.pf-map .ql.on{fill:var(--accent)}
.dl-s .warn b,.dl-s .good b,.prog-s .up b,.prog-s .down b{color:var(--ink)}
.lab-counts b{white-space:nowrap}.pf-flags .chip-s{border-radius:6px;line-height:1.35}
@media (max-width:1560px){.app.navtop .nav a{padding:7px 10px}.app.navtop .nav a svg{display:none}}
/* recommendations and signed declines */
.lab-tab-n{padding:8px 0;color:var(--ink-faint);font-size:13.5px}.lab-tab-n sup{font-size:10px;margin-left:3px}
.rec-list{display:grid;gap:0;margin-top:4px}
.rcm{padding:14px 4px;border-bottom:1px solid var(--line)}
.rec-h{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.rec-h b{font-size:14.5px;font-weight:600}
.rec-risk{margin:8px 0 6px;color:var(--ink-soft);font-size:13px;line-height:1.5;max-width:880px}.rec-risk .eyebrow-m{margin-right:8px}
.rec-sig{color:var(--ink-soft);display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline}.rec-sig a{color:var(--accent-text,var(--accent))}
.rec-f{margin-top:8px}.rec-acc{display:flex;gap:12px;align-items:center}
.rec-dec{margin-top:8px}.rec-dec summary{list-style:none;display:inline}.rec-dec summary::-webkit-details-marker{display:none}
.rec-dec-b{display:grid;grid-template-columns:1fr 1fr;gap:8px 14px;max-width:720px;margin-top:8px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}
.rec-dec-b .chk,.rec-dec-b label.f:nth-of-type(3),.rec-dec-b button{grid-column:1/-1}.rec-dec-b button{justify-self:start}
.chk{display:flex;gap:8px;align-items:flex-start;font-size:13px;line-height:1.45}.chk input{margin-top:3px}
.rec-mx td,.rec-mx th{white-space:nowrap;padding-left:8px;padding-right:8px}.rec-mx a.pr-st{text-decoration:none;font-size:11.5px}
.rec-mx th{white-space:normal;font-size:10px;line-height:1.25;vertical-align:bottom;max-width:92px}.rec-mx td:first-child,.rec-mx th:first-child{position:sticky;left:0;background:var(--surface);z-index:1;max-width:200px}
.rec-mx td:first-child b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.env-names code,.env-kv dd{overflow-wrap:anywhere;min-width:0}
@media (max-width:700px){.rec-dec-b{grid-template-columns:1fr}}
/* relationship */
.rel-top{display:flex;gap:16px;align-items:center;margin:10px 0 8px}
.rel-fig b{display:block;font:600 34px/1 var(--font-head);font-variant-numeric:tabular-nums}.rel-fig span{font-size:11.5px;color:var(--ink-faint)}
.rel-kinds{display:grid;gap:3px;flex:1}.rel-kinds div{display:flex;justify-content:space-between;font-size:12.5px;color:var(--ink-soft);border-bottom:1px dashed var(--line);padding-bottom:2px}
.rel-pts{color:var(--accent-text,var(--accent));min-width:28px}.rel-str{margin:8px 0 0;color:var(--ink-soft)}
/* the celebration moment */
.cel{position:fixed;inset:0;pointer-events:none;z-index:200;overflow:hidden}
.cel i{position:absolute;top:-12px;width:7px;height:11px;border-radius:1px;background:var(--accent);animation:cel-fall 1.9s cubic-bezier(.2,.6,.4,1) forwards;opacity:.95}
.cel i.c1{background:var(--ink);width:6px;height:6px}.cel i.c2{background:var(--ink-faint);height:8px}
@keyframes cel-fall{0%{transform:translate(0,0) rotate(0)}100%{transform:translate(var(--dx),78vh) rotate(var(--r));opacity:0}}
/* onboarding */
.ob-head{display:flex;gap:18px;align-items:center;margin:4px 0 14px}.ob-fig b{font:600 28px/1 var(--font-head);font-variant-numeric:tabular-nums;margin-right:6px}.ob-fig span{font-size:12.5px;color:var(--ink-soft)}
.ob-stages{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px;align-items:start}
.ob-st{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:12px 14px}
.ob-sh{display:flex;justify-content:space-between;align-items:baseline;padding-bottom:8px;border-bottom:1.5px solid var(--ink-soft);margin-bottom:2px}
.ob-i{display:grid;grid-template-columns:20px minmax(0,1fr) auto;gap:10px;align-items:start;padding:9px 0;border-bottom:1px solid var(--line)}.ob-i:last-child{border-bottom:0}
.ob-box{width:16px;height:16px;border:1.5px solid var(--ink-faint);border-radius:3px;display:grid;place-items:center;margin-top:2px;color:var(--surface)}
.ob-i.done .ob-box{background:var(--ink);border-color:var(--ink)}.ob-i.done .ob-t b{color:var(--ink-soft);font-weight:500}.ob-i.skip{opacity:.55}.ob-i.skip .ob-t b{text-decoration:line-through}
.ob-t b{font-size:13.5px;font-weight:500}.ob-t a{color:var(--ink);text-decoration:none}.ob-t a:hover{color:var(--accent-text,var(--accent))}
.ob-a{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.ob-more summary{list-style:none}.ob-more summary::-webkit-details-marker{display:none}
.ob-more{position:relative}.ob-more-b{display:grid;gap:6px;margin-top:6px;padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--surface);width:240px;position:absolute;right:0;z-index:5;box-shadow:0 8px 24px rgba(0,0,0,.08);text-align:left}
.rel-why .ell{white-space:normal;overflow:visible;text-overflow:clip;line-height:1.35}.rel-why .prog-r{align-items:flex-start}
.lab-counts>div{padding:12px 14px;border-left:1px solid var(--line);min-width:0}.lab-counts>div:first-child{border-left:0}
.pb-parts{display:flex;flex-wrap:wrap;gap:4px 18px;margin:2px 0 8px}
/* proof of delivery */
.dv-list{display:grid;gap:0;margin-top:10px}.dv{padding:12px 4px;border-bottom:1px solid var(--line)}
.dv-h{display:flex;justify-content:space-between;gap:12px;align-items:baseline}.dv-h b{font-size:14.5px;font-weight:600}
.dv-ev{margin:6px 0 0;padding-left:18px;font-size:13px;color:var(--ink-soft)}.dv-ev li{margin:2px 0}.dv-gap li{color:var(--ink)}
.asof a{color:var(--ink-soft);text-decoration:none}.asof a.on{color:var(--accent-text,var(--accent));font-weight:600}
/* vendor marks */
.vm{flex:none;width:36px;height:36px;border-radius:9px;display:grid;place-items:center;font:700 12.5px/1 var(--font-head,inherit);letter-spacing:-.02em;color:color-mix(in srgb,hsl(var(--h) 65% 50%) 70%,var(--ink));background:color-mix(in srgb,hsl(var(--h) 70% 55%) 13%,var(--surface));border:1px solid color-mix(in srgb,hsl(var(--h) 60% 50%) 28%,var(--edge))}
.vm[data-n="3"]{font-size:10.5px;letter-spacing:-.03em}
.vm.vm-sm{width:24px;height:24px;border-radius:6px;font-size:9.5px}
.vm-img{background:#fff;border-color:var(--edge);box-shadow:none;padding:5px}.vm-img img{max-width:100%;max-height:100%;display:block}
/* connections page */
.cx-counts{grid-template-columns:repeat(4,minmax(0,1fr))}.cx-counts>div{display:flex;flex-direction:column;gap:2px}.cx-counts b{font-size:22px;font-family:var(--font-head,inherit);font-weight:600}
@media (max-width:760px){.cx-counts{grid-template-columns:1fr 1fr}}
.cx-have{margin:4px 0 18px}.cx-have-g{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px;margin-top:8px}
.cx-hc{display:flex;gap:12px;align-items:center;padding:12px 14px;border:1px solid var(--edge);border-radius:12px;background:var(--surface);text-decoration:none;color:var(--ink);transition:border-color .15s,transform .15s}
.cx-hc:hover{border-color:color-mix(in srgb,var(--accent) 50%,var(--edge));transform:translateY(-1px)}
.cx-hc-t{display:flex;flex-direction:column;min-width:0;flex:1;gap:1px}.cx-hc-w{color:var(--ink-faint);font-size:11px}
.cx-hc.st-error{border-color:color-mix(in srgb,var(--bad) 35%,var(--edge))}
.cx-bar{position:sticky;top:0;z-index:5;display:flex;flex-wrap:wrap;gap:10px 14px;align-items:center;padding:12px 0 10px;margin:0 0 6px;background:var(--bg);border-bottom:1px solid var(--line)}
.cx-search{flex:1 1 340px;height:40px;min-width:0}.cx-search input{font-size:14px}.cx-search kbd{border:1px solid var(--edge);border-radius:5px;padding:1px 6px;color:var(--ink-faint);font-family:var(--font-mono,monospace)}
.cx-jump{flex-basis:100%;display:flex;gap:16px;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;font-size:12.5px;white-space:nowrap;padding-bottom:2px}.cx-jump::-webkit-scrollbar{display:none}.cx-jump a{color:var(--ink-soft);text-decoration:none;padding:2px 0;border-bottom:1px solid transparent}.cx-jump a:hover,.cx-jump a.on{color:var(--ink);border-bottom-color:var(--accent)}
.cx-jump a.dim{opacity:.35;pointer-events:none}
.tilegrp{scroll-margin-top:130px}
.cx-tiles{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px}
.cx-t{gap:8px;padding:12px}.cx-t .tile-r{min-height:0;-webkit-line-clamp:1}
.cx-lite{background:color-mix(in srgb,var(--surface) 60%,transparent)}.cx-lite .tile-r{opacity:.85}
.cx-g{font-size:10px;letter-spacing:.04em;text-transform:uppercase;color:var(--accent-text,var(--accent));border:1px solid color-mix(in srgb,var(--accent) 40%,transparent);border-radius:5px;padding:2px 6px;flex:none}
.cx-why{color:var(--ink-faint);font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.cx-t mark{background:color-mix(in srgb,var(--accent) 22%,transparent);color:inherit;border-radius:3px;padding:0 1px}
.h1-vm{display:flex;align-items:center;gap:12px}
.act-l{font-size:12.5px;font-weight:500;color:var(--ink)}
.kvs{display:flex;flex-wrap:wrap;gap:4px 6px}.kvc{display:inline-flex;gap:5px;align-items:baseline;font-size:11.5px;padding:1px 7px;border-radius:5px;background:var(--surface-2);border:1px solid var(--line);color:var(--ink-soft);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kvc i{font-style:normal;color:var(--ink-faint);font-family:var(--font-mono,ui-monospace,monospace);font-size:10.5px}
/* one page-header voice across the portal: the lab eyebrow */
.ph .eyebrow{font:600 11px/1.2 "IBM Plex Mono",ui-monospace,monospace;letter-spacing:.12em;text-transform:uppercase;color:var(--accent-text,var(--accent));margin-bottom:8px}
.ph .eyebrow::before{content:"// "}
.signin-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.signin-cards b .ic,.signin-cards b svg{vertical-align:-2px;margin-right:4px}@media (max-width:700px){.signin-cards{grid-template-columns:1fr}}
/* projects and hours */
.ic-svg.flip{transform:rotate(180deg)}
.pj-list{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--surface)}
.pj{display:grid;grid-template-columns:72px minmax(0,1fr) 150px 150px;gap:14px;align-items:center;padding:12px 16px;border-top:1px solid var(--line);text-decoration:none;color:var(--ink)}
.pj:first-child{border-top:0}.pj:hover{background:var(--surface-2)}.pj-ref{font-size:11.5px;color:var(--accent-text,var(--accent))}.pj-t{display:flex;flex-direction:column;min-width:0;gap:2px}
.pj-prog{display:flex;align-items:center;gap:8px}.pj-prog .meter{flex:1}
@media (max-width:760px){.pj{grid-template-columns:minmax(0,1fr) auto}.pj-ref,.pj-prog{display:none}}
.pj-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin:4px 0 14px}.pj-head h2{font-size:20px;margin:0 0 6px}
.pj-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:14px}@media (max-width:900px){.pj-grid{grid-template-columns:1fr}}
.pj-scope-t{white-space:pre-wrap;font-size:13.5px;line-height:1.55;color:var(--ink-soft);margin:8px 0 12px}
.pj-dec{border-top:1px solid var(--line);padding-top:12px;display:flex;flex-direction:column;gap:8px}.pj-dec-a{display:flex;gap:14px;align-items:flex-start;flex-wrap:wrap}
.pj-te{display:grid;grid-template-columns:52px minmax(0,1fr) auto;gap:8px;padding:6px 0;border-top:1px solid var(--line);font-size:13px}
.kb{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:8px}@media (max-width:900px){.kb{grid-template-columns:1fr}}
.kb-c{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius);padding:10px;display:flex;flex-direction:column;gap:8px;min-height:120px}
.kb-c h4{margin:2px 4px 2px;font-size:12px;font-weight:600;color:var(--ink-soft);display:flex;gap:6px;align-items:baseline;text-transform:uppercase;letter-spacing:.06em;font-family:"IBM Plex Mono",ui-monospace,monospace}
.kb-doing h4{color:var(--accent-text,var(--accent))}
.kb-t{background:var(--surface);border:1px solid var(--edge);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:4px;font-size:13.5px}
.kb-done .kb-t{opacity:.72}.kb-done .kb-t b{text-decoration:line-through;text-decoration-color:var(--ink-faint)}
.kb-mv{display:flex;gap:6px;justify-content:flex-end;margin-top:4px}.kb-e{padding:6px 4px;color:var(--ink-faint)}
.kb-add{display:flex;gap:6px}.kb-add input{flex:1;min-width:0;height:32px}
.pj-pick-l{max-height:220px;overflow:auto;display:flex;flex-direction:column;gap:4px;margin-top:8px;padding:8px;border:1px solid var(--line);border-radius:8px}
.hr-mo{display:flex;align-items:center;gap:10px;margin:12px 0 4px}.hr-mo b{min-width:130px;text-align:center}
.hr-bar{display:flex;align-items:center;gap:10px;margin:-6px 0 6px}.hr-bar .meter{flex:1;height:8px}
.hr-blk{display:grid;grid-template-columns:minmax(0,1fr) 150px 150px auto;gap:10px;align-items:end;padding:10px 0;border-top:1px solid var(--line)}.hr-blk:first-of-type{border-top:0}
@media (max-width:700px){.hr-blk{grid-template-columns:1fr 1fr}}
.lab-counts>div{padding:12px 14px;border-left:1px solid var(--line);display:flex;flex-direction:column;gap:2px;min-width:0}.lab-counts>div:first-child{border-left:0}.lab-counts>div b{font-size:22px;font-weight:600}
.ws-tabs{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.ws-tabs::-webkit-scrollbar{display:none}.ws-tabs a{white-space:nowrap;flex:none}@media (max-width:1500px){.ws-tabs a{padding:10px 9px;font-size:13px}}
/* a quiet mark on empty states, so an empty page reads as finished rather than broken */
div.lab-empty{display:flex;align-items:center;gap:12px;padding:18px 16px;border:1px dashed var(--edge);border-radius:var(--radius);background:color-mix(in srgb,var(--surface) 55%,transparent)}
div.lab-empty::before{content:"";flex:none;width:30px;height:30px;border-radius:8px;background:var(--accent);opacity:.75;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round'%3E%3Crect x='3.5' y='3.5' width='17' height='17' rx='3' stroke-dasharray='3 2.4'/%3E%3Cpath d='M9 12h6M12 9v6'/%3E%3C/svg%3E") center/22px no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round'%3E%3Crect x='3.5' y='3.5' width='17' height='17' rx='3' stroke-dasharray='3 2.4'/%3E%3Cpath d='M9 12h6M12 9v6'/%3E%3C/svg%3E") center/22px no-repeat}
div.lab-empty[hidden]{display:none}
.pf-below{color:var(--accent-text,var(--accent));font-weight:600}
.hr-rate{margin:4px 0 10px}
/* coverage, email security, refresh, budget */
.cv-tbl td{vertical-align:top}.cv-tbl tr.cv-gap td:first-child{box-shadow:inset 3px 0 0 var(--accent)}
.cv-m{display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:6px;vertical-align:0;border:1.5px solid var(--ink-faint)}
.cv-ok .cv-m{background:var(--ink-soft);border-color:var(--ink-soft)}.cv-warn .cv-m{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 30%,transparent)}
.cv-gap .cv-m{border-color:var(--accent);background:var(--accent)}.cv-gap .mini{color:var(--ink)}.cv-na .cv-m,.cv-unk .cv-m{border-style:dashed;opacity:.5}
.cv-counts{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}
.es-stages{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;margin:6px 0 12px}
.es-st{padding:12px 14px;border-left:1px solid var(--line);display:flex;flex-direction:column;gap:3px;opacity:.55}.es-st:first-child{border-left:0}
.es-st.on{opacity:1;background:var(--surface);box-shadow:inset 0 -3px 0 var(--accent)}@media (max-width:760px){.es-stages{grid-template-columns:1fr 1fr}}
.es-next{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}.es-next>div{display:flex;flex-direction:column;gap:4px}.es-next b{font-size:15px}
.lab-act{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 10px}
.rf-tbl td:first-child{min-width:230px}.rf-tbl td:nth-child(2){white-space:nowrap}.rf-notes{margin:6px 0 0}.rf-notes dd{max-width:760px}
.rf-qs{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px;margin:4px 0}.rf-q{display:flex;flex-direction:column;gap:4px}.rf-q b{font-size:20px}.rf-q form{margin-top:6px}
.eol-list{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--surface)}
.eol-i{display:grid;grid-template-columns:120px minmax(0,1fr);gap:14px;padding:12px 16px;border-top:1px solid var(--line)}.eol-i:first-child{border-top:0}
.eol-i>div{display:flex;flex-direction:column;gap:2px}.eol-d{color:var(--accent-text,var(--accent));font-size:12.5px}.eol-i.past .eol-d{color:var(--ink-faint);text-decoration:line-through}
.bd-tbl td,.bd-tbl th{white-space:nowrap}.bd-tbl td:first-child{white-space:normal;min-width:200px}.bd-savings td{color:var(--accent-text,var(--accent))}.bd-tot td{border-top:2px solid var(--edge)}
.ag-rec{display:flex;flex-direction:column;gap:3px;padding:8px 0;border-top:1px solid var(--line)}
.fnd-tier{display:flex;gap:10px;align-items:baseline;margin:14px 0 4px;padding-top:10px;border-top:1px solid var(--line)}.fnd-tier:first-of-type{border-top:0;margin-top:6px}
.fnd-when{display:flex;gap:6px;align-items:flex-start;color:var(--ink-soft);margin:4px 0 0}.fnd-when svg{flex:none;margin-top:2px}
.ins-tbl td:first-child{width:auto}.ins-v{display:inline-block;min-width:92px;font-weight:600;font-size:12.5px}
.ins-yes{color:var(--ink)}.ins-partly{color:var(--warn)}.ins-no{color:var(--accent-text,var(--accent))}.ins-unknown{color:var(--ink-faint)}
.ins-b{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;padding:2px 6px;border-radius:5px;border:1px solid var(--line)}
.ins-b-verified{border-color:color-mix(in srgb,var(--ink) 40%,transparent);color:var(--ink)}.ins-b-declared{color:var(--ink-soft)}.ins-b-claimed{color:var(--ink-faint);border-style:dashed}
.ins-fix{color:var(--accent-text,var(--accent));margin-top:3px;display:flex;gap:4px;align-items:flex-start}
.ins-tbl{table-layout:fixed}.ins-tbl td:nth-child(2){width:130px}.ins-tbl td:nth-child(3){width:110px}
/* portfolio: the board (v1.0.6) */
.pf-board{min-width:960px;table-layout:fixed}.pf-board th,.pf-board td{padding:8px 10px}.pf-board .pb-name{width:210px}.pf-board .pb-area{width:64px;text-align:center}.pf-board .pb-flags{width:150px}.pf-board .pb-rel{width:108px}
.pf-board th a small{display:block;font:500 10px var(--font-mono);color:var(--ink-faint);letter-spacing:0}
.pf-board th a{color:inherit;text-decoration:none}.pf-board th a.on{color:var(--accent-text,var(--accent))}.pf-board th a:hover{color:var(--ink)}
.pf-board .pb-name b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pf-board .pb-cell{text-align:center;font:600 13px var(--font-mono);background:color-mix(in srgb,var(--accent-text,var(--accent)) calc(var(--sh) * 42%),transparent);border-left:1px solid var(--surface);border-right:1px solid var(--surface)}
.pf-board .pb-cell a{color:var(--ink);text-decoration:none;display:block}.pf-board .pb-cell a:hover{text-decoration:underline}
.pf-board .pb-cell.right{text-align:right}.pf-board .pb-none{background:transparent}
.pf-board thead th{position:sticky;top:0;background:var(--surface);z-index:1}
.pager{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 0;justify-content:center}
.actrow-old{opacity:.75}
.pk summary{cursor:pointer;list-style:none;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px}.pk summary::-webkit-details-marker{display:none}
.pk summary::before{content:"";display:inline-block;width:6px;height:6px;border-right:1.5px solid var(--ink-faint);border-bottom:1.5px solid var(--ink-faint);transform:rotate(-45deg);margin-right:8px;transition:transform .15s}
.pk[open] summary::before{transform:rotate(45deg)}
.pk-list{list-style:none;margin:8px 0 2px 16px;padding:0;display:grid;gap:5px;font-size:12.5px}.pk-list a{font-weight:600;color:var(--ink);text-decoration:none}.pk-list a:hover{color:var(--accent-text,var(--accent))}
.tbl-more>summary{cursor:pointer;list-style:none;padding:11px 14px;font:600 12.5px var(--font-body);color:var(--ink-soft);border-top:1px solid var(--line);display:flex;align-items:center;gap:8px}
.tbl-more>summary::-webkit-details-marker{display:none}.tbl-more>summary::before{content:"";width:6px;height:6px;border-right:1.5px solid var(--ink-faint);border-bottom:1.5px solid var(--ink-faint);transform:rotate(-45deg);transition:transform .15s}
.tbl-more[open]>summary::before{transform:rotate(45deg)}.tbl-more:first-child>summary{border-top:0}.tbl-more>summary:hover{color:var(--ink)}
.eol-who summary{list-style:none;cursor:pointer;display:inline-block;margin-top:2px}.eol-who summary::-webkit-details-marker{display:none}.eol-who .chip-s{text-decoration:none}
.chip-sep{width:1px;height:18px;background:var(--line);align-self:center;margin:0 4px}
@media (max-width:700px){.card:has(> table.tbl),.card:has(> .tbl),.card:has(> details > table.tbl){overflow-x:auto!important}.card>table.tbl{min-width:560px}}
/* service health (v1.0.7) */
.sh-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px;margin-top:12px}
.sh-tile{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:8px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}
.sh-tile .mk{grid-row:1/3;width:9px;height:9px;border-radius:2px;border:1.5px solid var(--ink-soft);display:block}.sh-tile.bad .mk{background:var(--accent);border-color:var(--accent)}
.sh-tile b{font-size:13px;line-height:1.2}.sh-tile .mini{line-height:1.2}.sh-tile.bad .mini{color:var(--ink);font-weight:600}
.sh-list{display:grid;gap:8px;margin-top:8px}
.sh-card{border:1px solid var(--line);border-radius:10px;background:var(--surface);padding:0}.sh-card>summary{list-style:none;cursor:pointer;padding:11px 14px}.sh-card>summary::-webkit-details-marker{display:none}
.sh-card .sh-head{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:12px;align-items:center}.sh-card .sh-head>.pr-st,.sh-card .sh-head>.sh-date{grid-row:1/3}
.sh-card .sh-head b{font-size:13.5px}.sh-card .sh-head .mini{line-height:1.3}
.sh-date{display:flex;flex-direction:column;align-items:center;min-width:52px;font-family:var(--font-mono)}.sh-date b{font-size:13px}.sh-date span{font-size:10.5px;color:var(--ink-faint)}
.sh-body{padding:0 14px 12px 14px;border-top:1px solid var(--line)}.sh-body p{margin:10px 0 6px;white-space:pre-line;font-size:13px;line-height:1.5}.sh-act{margin-top:6px}
.sh-card.mk-closed{opacity:.75}
.sh-strip{display:flex;gap:4px}.sh-dot{width:10px;height:10px;border-radius:2px;border:1.5px solid var(--ink-soft);display:block}.sh-dot.bad{background:var(--accent);border-color:var(--accent)}
.price-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px 14px;margin:8px 0}
/* charts: the dashboard and the clients list (portal/_charts.html) */
.ch-grid4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.ch-grid3{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1.4fr) minmax(0,1fr);gap:14px}
.ch-card{background:var(--surface);border:1px solid var(--edge);border-radius:var(--radius);padding:16px 18px;min-width:0;display:flex;flex-direction:column}
.ch-card h4{margin:0;font-size:12px;font-weight:600;letter-spacing:.02em;color:var(--ink-soft);display:flex;justify-content:space-between;gap:8px;align-items:baseline}
.ch-card h4 a{font-weight:500;color:var(--ink-faint);text-decoration:none}.ch-card h4 a:hover{color:var(--accent-text,var(--accent))}
.ch-card .ch-body{margin-top:12px;flex:1;display:flex;flex-direction:column;justify-content:flex-end}
.ch-big{font-size:28px;font-weight:650;letter-spacing:-.02em;line-height:1.1;color:var(--ink)}.ch-big small{font-size:13px;font-weight:500;color:var(--ink-faint);margin-left:4px}
.ch-sub{font-size:12px;color:var(--ink-faint);margin-top:4px}
.ch-cols{display:flex;align-items:flex-end;gap:8px;height:118px}
.ch-col{flex:1;min-width:0;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:4px;cursor:default}
.ch-bar{width:100%;max-width:38px;background:var(--accent);border-radius:4px 4px 0 0;transition:opacity .15s}.ch-bar.mut{background:color-mix(in srgb,var(--ink-faint) 45%,var(--surface))}
.ch-col:hover .ch-bar{opacity:.78}
.ch-v{font-size:12px;font-weight:600;color:var(--ink-soft)}.ch-l{font-size:10.5px;line-height:1.25;min-height:2.6em;letter-spacing:-.01em;color:var(--ink-faint);border-top:1px solid var(--line);width:100%;text-align:center;padding-top:5px}
.ch-stack{display:flex;gap:2px;height:14px;border-radius:4px;overflow:hidden;background:var(--line)}
.ch-seg{min-width:3px;cursor:default}.ch-seg:hover{filter:brightness(1.08)}
.ch-legend{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:10px;font-size:12px;color:var(--ink-soft)}
.ch-legend span{display:inline-flex;align-items:center;gap:6px}.ch-legend i{width:10px;height:10px;border-radius:3px;display:inline-block}.ch-legend b{color:var(--ink);font-weight:600}.ch-legend .dim{opacity:.5}
.ch-ring{flex:none}.ch-ring-t{font-size:8.5px;font-weight:650;fill:var(--ink)}.ch-ring-t.sm{font-size:7px}
.ch-ringrow{display:flex;align-items:center;gap:16px}
.ch-keys{display:grid;gap:6px;font-size:12px;color:var(--ink-soft)}.ch-keys div{display:flex;align-items:center;gap:7px}.ch-keys i{width:10px;height:10px;border-radius:3px;display:inline-block;flex:none}.ch-keys b{color:var(--ink);margin-left:auto;padding-left:10px}
.ch-trend{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;height:118px;overflow:hidden}
.ch-ty{display:flex;flex-direction:column;justify-content:space-between;font-size:10.5px;line-height:1;color:var(--ink-faint);height:92px;text-align:right}
.ch-tp{display:flex;flex-direction:column;min-width:0;min-height:0}.ch-tp svg{display:block;width:100%;height:92px;overflow:hidden}
.ch-area{fill:color-mix(in srgb,var(--accent) 16%,transparent)}.ch-line{fill:none;stroke:var(--accent);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.ch-grid{stroke:var(--line);stroke-width:1;stroke-dasharray:3 3}
.ch-tx{display:flex;justify-content:space-between;font-size:11px;color:var(--ink-faint);padding-top:6px}
.ch-empty{font-size:12px;color:var(--ink-faint);padding:24px 0;text-align:center}
.ch-hbars{display:grid;gap:7px}.ch-hb{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) 24px;align-items:center;gap:8px;font-size:12px;color:var(--ink-soft);cursor:default}
.ch-hb b{text-align:right;color:var(--ink);font-weight:600}.ch-ht{height:8px;background:var(--line);border-radius:4px;overflow:hidden;display:block}.ch-ht span{display:block;height:100%;background:var(--accent);border-radius:4px}.ch-ht span.mut{background:color-mix(in srgb,var(--ink-faint) 45%,var(--surface))}
.ch-pipe{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-top:14px}
.ch-ps{display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--ink-soft);min-width:0}.ch-ps b{font-size:20px;font-weight:650;color:var(--ink);line-height:1.1}
.ch-ps.zero b{color:var(--ink-faint)}.ch-ps.warn b{color:var(--warn)}.ch-ps.good b{color:var(--ok)}
.ch-pbar{display:block;height:4px;background:var(--line);border-radius:2px;overflow:hidden;margin-top:4px}.ch-pbar span{display:block;height:100%;background:var(--accent)}
.ch-ps.warn .ch-pbar span{background:var(--warn)}.ch-ps.good .ch-pbar span{background:var(--ok)}
@media (max-width:1100px){.ch-grid4{grid-template-columns:repeat(2,minmax(0,1fr))}.ch-grid3{grid-template-columns:1fr 1fr}.ch-grid3>:first-child{grid-column:1/-1}}
@media (max-width:640px){.ch-grid4,.ch-grid3{grid-template-columns:1fr}.ch-pipe{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* table system (portal/_table.html) */
.tb-bar{display:flex;align-items:center;justify-content:space-between;gap:10px 14px;flex-wrap:wrap;margin:0 0 12px}
.tb-filters{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0}
.tb-search{display:inline-flex;align-items:center;gap:7px;background:var(--surface);border:1px solid var(--edge);border-radius:9px;padding:0 10px;color:var(--ink-faint);height:34px}
.tb-search input{border:0;background:transparent;outline:0;color:var(--ink);font:inherit;font-size:13px;width:200px;height:32px}
.tb-filters select,.tb-per select{height:34px;border:1px solid var(--edge);border-radius:9px;background:var(--surface);color:var(--ink-soft);font:inherit;font-size:13px;padding:0 28px 0 10px}
.tb-filters select.on{border-color:var(--accent);color:var(--ink);box-shadow:0 0 0 1px var(--accent) inset}
.tb-clear{font-size:12.5px;color:var(--ink-faint)}.tb-clear:hover{color:var(--accent-text,var(--accent))}
.tb-right{display:flex;align-items:center;gap:8px;margin-left:auto}.tb-per{margin:0}
.tb-count{font-size:12.5px;color:var(--ink-soft);white-space:nowrap}.tb-dim{color:var(--ink-faint)}
.tb-cols{position:relative}.tb-cols>summary{list-style:none;cursor:pointer}.tb-cols>summary::-webkit-details-marker{display:none}
.tb-pop{position:absolute;right:0;top:calc(100% + 6px);z-index:40;width:280px;background:var(--surface);border:1px solid var(--edge);border-radius:12px;box-shadow:var(--shadow,0 10px 30px rgba(0,0,0,.18));padding:12px;margin:0}
.tb-pop-h{font-size:12px;font-weight:600;color:var(--ink-soft);display:flex;justify-content:space-between;margin-bottom:8px}.tb-pop-h span{font-weight:400;color:var(--ink-faint)}
.tb-pop ul{list-style:none;margin:0;padding:0;max-height:340px;overflow:auto}
.tb-pop li{display:flex;align-items:center;gap:8px;padding:5px 6px;border-radius:7px;font-size:13px;color:var(--ink)}.tb-pop li:hover{background:var(--surface-2)}.tb-pop li.dragging{opacity:.4}
.tb-pop li label{flex:1;display:flex;align-items:center;gap:8px;cursor:pointer;margin:0}.tb-grip{color:var(--ink-faint);cursor:grab;font-size:11px;letter-spacing:-3px}
.tb-mv{display:flex;gap:2px;opacity:0}.tb-pop li:hover .tb-mv,.tb-pop li:focus-within .tb-mv{opacity:1}
.tb-mv button{border:0;background:transparent;color:var(--ink-faint);cursor:pointer;padding:2px 4px;border-radius:4px;font-size:12px}.tb-mv button:hover{background:var(--line);color:var(--ink)}
.tb-pop-a{display:flex;justify-content:flex-end;gap:8px;margin-top:10px;border-top:1px solid var(--line);padding-top:10px}
.tb-sort{color:inherit;text-decoration:none;display:inline-flex;align-items:center;gap:4px;white-space:nowrap}.tb-sort:hover{color:var(--ink)}
.tb-ar{font-size:10px;color:var(--ink-faint);opacity:.5}.tb-sorted .tb-ar{opacity:1;color:var(--accent-text,var(--accent))}.tb-sorted .tb-sort{color:var(--ink)}
th.right .tb-sort{flex-direction:row-reverse}
.tb-empty{padding:22px;text-align:center;color:var(--ink-faint);font-size:13px}
.tb-pager{display:flex;align-items:center;justify-content:center;gap:4px;padding:12px;flex-wrap:wrap}
.tb-pager>a:not(.btn),.tb-pager>span{min-width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;font-size:13px;color:var(--ink-soft);text-decoration:none}
.tb-pager>a:not(.btn):hover{background:var(--surface-2)}.tb-pager>a.on{background:var(--accent);color:var(--on-accent,#fff);font-weight:600}.tb-pager .dis{opacity:.4;pointer-events:none}
@media (max-width:700px){.tb-search input{width:140px}.tb-right{margin-left:0;width:100%;justify-content:space-between}}
.badge.quiet{background:transparent;color:var(--ink-faint);box-shadow:0 0 0 1px var(--edge) inset}.badge.bad{background:var(--bad);color:#fff}
.tb-bar select,.tb-bar input[type=search]{width:auto;min-width:0;margin:0;display:inline-block}
.tb-search input[type=search]{border:0!important;padding:0!important;background:transparent!important;box-shadow:none!important;height:32px!important}
.tb-filters select{max-width:200px}.tb-per select{width:auto}
.clients-tbl .stage{white-space:nowrap}
.dash-sec+.dash-sec{margin-top:16px}.dash-sec>*{margin-top:0!important}
.pf-board td.pb-flags{white-space:normal}.pf-board td.pb-flags .tag{white-space:normal;max-width:100%;display:inline-block;margin:2px 0}.pf-board{width:100%}
.tplpick{display:grid;gap:8px;max-height:420px;overflow:auto}.tplopt{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--edge);border-radius:10px;padding:10px 12px;cursor:pointer}
.tplopt:has(input:checked){border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}.tplopt input{margin-top:3px}.tplopt b{display:block;font-size:13.5px}.tplopt .mini{display:block;margin-top:2px}
.doc-frame{width:100%;height:72vh;min-height:480px;border:1px solid var(--edge);border-radius:10px;background:#fff}.doc-img{max-width:100%;border:1px solid var(--edge);border-radius:10px;display:block}
.doc-docx{max-height:72vh;overflow:auto;border:1px solid var(--edge);border-radius:10px;padding:16px 20px;background:var(--surface-2)}
.imp-grid input[type=text]{min-width:170px;width:100%}.imp-grid input.imp-sug{border-color:var(--accent)}
/* ask anywhere dock */
.askdock{position:fixed;right:20px;bottom:20px;z-index:60}.askdock>summary{list-style:none}.askdock>summary::-webkit-details-marker{display:none}
.ad-btn{display:inline-flex;align-items:center;gap:7px;cursor:pointer;background:var(--accent);color:var(--on-accent,#fff);border-radius:999px;padding:10px 16px;font-weight:600;font-size:13px;box-shadow:0 8px 24px rgba(0,0,0,.18)}
.askdock[open] .ad-btn{opacity:.85}
.ad-panel{position:absolute;right:0;bottom:calc(100% + 10px);width:380px;max-width:calc(100vw - 32px);max-height:70vh;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--edge);border-radius:14px;box-shadow:0 18px 50px rgba(0,0,0,.22);overflow:hidden}
.ad-h{display:flex;justify-content:space-between;align-items:baseline;padding:12px 14px;border-bottom:1px solid var(--line)}
.ad-form{padding:12px 14px;border-bottom:1px solid var(--line);margin:0}.ad-form textarea{width:100%;resize:vertical;font:inherit;font-size:13px;border:1px solid var(--edge);border-radius:9px;padding:8px 10px;background:var(--surface-2);color:var(--ink)}
.ad-row{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:8px}.ad-row label{display:flex;gap:6px;align-items:center}
.ad-thread{overflow:auto;padding:4px 14px 12px;flex:1}.ad-item{padding:10px 0;border-bottom:1px solid var(--line)}.ad-item:last-child{border-bottom:0}
.ad-q{font-weight:600;font-size:13px;color:var(--ink)}.ad-meta{font-size:11px;color:var(--ink-faint);margin-top:2px}
.ad-a{font-size:13px;line-height:1.55;white-space:pre-line;margin-top:6px;background:var(--surface-2);border-radius:9px;padding:8px 10px;color:var(--ink)}
.ad-links{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px;white-space:normal}.ad-links a{font-size:12px;border:1px solid var(--edge);border-radius:999px;padding:2px 9px;text-decoration:none}
.ad-fu{font-size:12px;color:var(--ink-faint);margin-top:6px;white-space:normal}.ad-wait{font-size:12px;color:var(--ink-faint);margin-top:6px;display:flex;align-items:center;gap:6px}
.ad-wait .dot{width:7px;height:7px;border-radius:50%;background:var(--accent);animation:adp 1.2s infinite}@keyframes adp{50%{opacity:.3}}
.ad-empty{font-size:12.5px;color:var(--ink-faint);padding:12px 0}.ad-err{font-size:12.5px;color:var(--bad);padding:8px 0}
@media print{.askdock{display:none}}
/* ===== design-d: client environment, licensing, work and contract pages ===== */
.dd-down{transform:rotate(90deg)}
details.menu.ddm{display:inline-block;vertical-align:middle}
details.menu.ddm>summary{cursor:pointer}
details.menu.ddm[open]>summary{border-color:color-mix(in srgb,var(--ink) 22%,transparent)}
.ddm .menu-pop{top:calc(100% + 6px);min-width:220px;text-align:left}
.ddm .menu-pop form{margin:0;display:block}
.ddm-i{display:flex!important;width:100%;gap:9px;align-items:center;padding:8px 10px;border:0;border-radius:8px;background:transparent;text-decoration:none;color:var(--ink-soft);font:500 13px var(--font-body);cursor:pointer;text-align:left;white-space:nowrap}
.ddm-i:hover{background:color-mix(in srgb,var(--ink) 5%,transparent);color:var(--ink)}
.ddm-i.danger{color:var(--bad)}.ddm-i.danger:hover{background:color-mix(in srgb,var(--bad) 9%,transparent);color:var(--bad)}
.ddm-sep{height:1px;background:var(--line);margin:5px 4px}
.dd-ch{display:flex;align-items:center;justify-content:space-between;gap:10px 14px;flex-wrap:wrap}
.dd-ch>h3{margin:0}
.dd-cha{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-left:auto}
.dd-cha form{margin:0;display:inline-flex}
.dd-sub{font-size:12.5px;color:var(--ink-faint);margin:6px 0 12px;max-width:760px}
.dd-foot{display:flex;align-items:center;justify-content:space-between;gap:10px 14px;flex-wrap:wrap;border-top:1px solid var(--line);margin-top:12px;padding-top:12px}
.dd-foot form{margin:0}
.dd-ib{display:inline-flex;align-items:center;gap:2px;justify-content:flex-end}
.dd-ib form{margin:0;display:inline-flex}
.dd-ib .btn.sm.ghost{width:30px;padding:0}
.dd-counts b small{display:inline;margin-left:2px}
.dd-modal .dd-sec{font:600 10.5px/1.2 "IBM Plex Mono",monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);margin:16px 0 8px;padding-top:12px;border-top:1px solid var(--line)}
.dd-modal .dd-sec.first{margin-top:4px;padding-top:0;border-top:0}
.dd-modal .dd-lead{font-size:12.5px;color:var(--ink-soft);margin:-6px 0 12px;line-height:1.5}
.dd-modal .modal-actions{border-top:1px solid var(--line);padding-top:14px;margin-top:16px}
.dd-seg{display:inline-flex;border:1px solid var(--edge);border-radius:9px;overflow:hidden;background:var(--surface)}
.dd-seg a{padding:5px 11px;font-size:12px;color:var(--ink-soft);text-decoration:none;border-left:1px solid var(--edge)}.dd-seg a:first-child{border-left:0}
.dd-seg a.on{background:var(--accent);color:var(--on-accent,#fff);font-weight:600}
.dd-seg a:not(.on):hover{background:var(--surface-2)}

/* ===== design-a: dashboard, clients, portfolio, proposals, receipts, recommendations, calendar, renewals, projects, import, setup ===== */
/* dashboard */
.dash-health .dl-s{grid-template-columns:repeat(3,minmax(0,1fr))}
.next-row{grid-template-columns:32px minmax(140px,1fr) auto 18px}
.next-row .nr-what{display:flex;flex-wrap:wrap;gap:4px;justify-content:flex-end}
.next-row .nr-what .tag{white-space:nowrap}
.dash-cust-a{justify-content:space-between}.dash-cust-a>span{display:flex;gap:8px}
@media (max-width:700px){.dash-health .dl-s{grid-template-columns:1fr}.next-row{grid-template-columns:32px minmax(0,1fr) 18px}.next-row .nr-what{justify-content:flex-start}.dl-h{min-width:0}}
/* clients */
.btn.icon-only{width:28px;padding:0;justify-content:center;color:var(--ink-faint)}
tr:hover .btn.icon-only{color:var(--ink);background:var(--surface-2)}
.clients-tbl td.cl-go{width:40px;padding-left:4px}
.clients-tbl .cl-n b{white-space:nowrap}
.clients-tbl .cl-n>div{min-width:180px}
@media (max-width:700px){.clients-tbl .cl-n b{white-space:normal}.clients-tbl .cl-n>div{min-width:140px}}
/* portfolio */
.pf-board .pf-flags .chip-s{white-space:normal;max-width:100%;overflow-wrap:anywhere}
.pf-note{margin-top:8px;color:var(--ink-faint)}
.pf-board .pb-name{width:205px}.pf-board .pb-area{width:64px}.pf-board .pb-flags{width:150px}.pf-board .pb-rel{width:110px}
/* calendar */
.cal-actions{flex-wrap:nowrap}
.cal-filt{flex-wrap:nowrap;align-items:flex-start}.cal-filt select{min-width:180px;height:30px;font-size:12.5px}.cal-filt .kindpick{gap:5px;flex:1;min-width:0}.cal-filt .kp{padding:3px 9px;font-size:11.5px}
@media (max-width:900px){.cal-actions{flex-wrap:wrap}.cal-filt{flex-wrap:wrap}}
/* renewals */
.life-more{margin-top:8px}
.life-more>summary{list-style:none;cursor:pointer;font-size:12.5px;font-weight:500;color:var(--ink-soft);padding:8px 12px;border:1px dashed var(--edge);border-radius:10px;text-align:center}
.life-more>summary::-webkit-details-marker{display:none}
.life-more>summary:hover{color:var(--ink);border-color:var(--accent)}
.life-more[open]>summary{margin-bottom:8px}
.life-more .actlist{display:grid;gap:8px}
.pipe-more>summary{padding:6px 8px;font-size:12px;background:var(--surface)}
.pipe-more-in{display:grid;gap:8px}
.tb-tight .tb-filters select{max-width:150px}.tb-tight .tb-search input{width:170px}
.life-assets-bar .tb-filters select{max-width:132px}.life-assets-bar .tb-search input{width:185px}
/* projects and hours */
.hr-tbl{margin:0}
.hr-mo{margin:14px 0 2px}
/* import, price book: primary action bottom right */
.imp-foot{justify-content:flex-end;margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
.imp-runs .statrows>div{align-items:center}.imp-runs .tag{flex:none;white-space:nowrap}
/* setup */
.setup-foot{justify-content:space-between;margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}
.setup-inline{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end}
.setup-inline.setup-invite{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr) minmax(0,1fr) auto}
.setup-inline .btn{height:38px}
.setup-hint{display:block;margin-top:6px;font-size:12px;color:var(--ink-faint)}
@media (max-width:820px){.setup-inline,.setup-inline.setup-invite{grid-template-columns:1fr}.setup-inline .btn{justify-self:start}}
/* ===== end design-a ===== */

/* ---- design-b: settings, connections, templates, fleet ---- */
/* floating save bar: keep it above the Ask button when it sticks to the bottom */
.set-form .fbar,.cx-map .fbar{bottom:78px}
.cx-map .fbar{gap:16px}.cx-map .fbar .check-row{width:auto;padding:0;display:flex;align-items:center;gap:8px;color:var(--ink-soft);font-size:12.5px;margin:0}
@media (max-width:900px){.set-form .fbar,.cx-map .fbar{bottom:76px}.cx-map .fbar{flex-wrap:wrap;justify-content:flex-end}}
/* brand tab: label the font sample */
.prev-lbl{display:block;font-size:12.5px;font-weight:500;color:var(--ink-soft);margin:6px 0 6px}
/* fleet: note on the left, the tab's one action on the right */
.fl-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin:0 0 12px}
.fl-head .lab-note{margin:0}.fl-head form{margin:0;flex:none;display:flex;gap:8px}
.fl-head .fl-sub{margin:6px 0 0 14px;color:var(--ink-faint)}
@media (max-width:700px){.fl-head{flex-direction:column;gap:10px}}
/* count tiles: "56/59" stays on one line */
.lab-counts b small{display:inline;margin:0 0 0 1px}
/* seats empty state with its action */
div.lab-empty .btn{flex:none}
.dd-scroll{overflow-x:auto}
.dd-empty{margin-top:4px;padding:18px}
.dd-est{margin-top:16px}
.dd-est .dd-sub{margin-bottom:10px}
.dd-sug{background:var(--surface-2);border:1px solid var(--line);border-radius:10px;padding:12px 14px;margin:0 0 14px}
.dd-sug .dd-ch{margin-bottom:6px}.dd-sug .dd-ch>b{display:inline-flex;align-items:center;gap:7px}
.dd-pjrow{flex-direction:row!important;align-items:center!important;justify-content:space-between;flex-wrap:wrap}
.dd-pjrow .mini{display:inline-flex;align-items:center;gap:6px}
.dd-boardh{margin:22px 0 10px}
/* design-b: buttons placed in a card header keep normal button styling */
.card h3 .btn.sub{font-family:var(--font-body);font-size:12.5px;font-weight:600;color:var(--ink)}
.card h3 .btn.p.sub{color:var(--on-accent)}
.fsec-b .prev-lbl{margin:0 0 -10px}
.dd-imp .imp-card{display:flex;flex-direction:column;gap:8px}
.dd-imp-a{margin-top:auto;padding-top:4px}
.dd-imp-csv{margin-top:14px}.dd-imp-csv .form{display:grid;gap:12px}.dd-imp-csv .dd-foot{margin-top:0}
.dd-modal .modal-in h3 .ell{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dd-modal .check-row{margin:8px 0 2px}
/* design-b: connections category strip scrolls sideways; fade the cut-off edge */
.cx-jump{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 48px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 48px),transparent);padding-right:40px}
.dd-docadd{border-top:0!important;padding-top:0!important;gap:12px!important}
.dd-docadd .src-opt span{padding:7px 12px}
.dd-cal{display:inline-flex;align-items:center;gap:5px;margin-top:10px}
.dd-fnd{gap:6px}
.dd-dis{position:relative}.dd-dis>summary{list-style:none;cursor:pointer}.dd-dis>summary::-webkit-details-marker{display:none}
.dd-dis[open]>summary{background:var(--surface-2)}
.dd-dis-p{position:absolute;right:0;top:calc(100% + 6px);z-index:15;display:flex;gap:6px;align-items:center;width:320px;max-width:80vw;background:var(--surface);border:1px solid var(--edge);border-radius:10px;padding:8px;box-shadow:0 18px 40px -18px rgba(0,0,0,.45)}
.dd-dis-p input{flex:1;min-width:0;max-width:none!important;height:30px}
.dd-more{margin-top:6px}.dd-more>summary{cursor:pointer;color:var(--ink-soft)}.dd-more p{margin:6px 0 0;line-height:1.5}
.card h3 .btn .ic-svg{color:inherit}
@media (max-width:700px){.cx-map-tbl select{min-width:150px}.cx-map-tbl td:first-child{min-width:140px}}
@media (max-width:700px){nav.lab-tabs[aria-label="Fleet"]{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;white-space:nowrap}nav.lab-tabs[aria-label="Fleet"]::-webkit-scrollbar{display:none}nav.lab-tabs[aria-label="Fleet"] a{flex:none}}
.dd-tcard{padding:0;overflow:auto;margin-top:12px}
.dd-blk{margin-top:16px}
.dd-blk-l{display:grid;gap:0;margin-top:8px}.dd-blk-l>div{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:9px 0;border-top:1px solid var(--line)}.dd-blk-l>div:first-child{border-top:0}
.dd-hrblk{grid-template-columns:1fr!important;gap:10px!important;padding:12px 0!important;border-top:1px solid var(--line)}
.dd-hrblk:first-of-type{border-top:0}.dd-hrblk-a{display:flex;justify-content:flex-end}
.dd-cov{display:grid;grid-template-columns:minmax(0,300px) minmax(0,1fr);gap:12px;margin:12px 0 14px;align-items:stretch}
.dd-cov .dd-cov-sum{margin:0;grid-template-columns:1fr}
.dd-cov .dd-cov-sum>div{border-left:0;border-top:1px solid var(--line)}.dd-cov .dd-cov-sum>div:first-child{border-top:0}
.dd-layers{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:8px}
.dd-ly{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:3px;min-width:0}
.dd-ly .eyebrow-m{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dd-ly b{font:600 19px/1.15 var(--font-head);font-variant-numeric:tabular-nums}.dd-ly b small{font-size:12px;color:var(--ink-faint);font-weight:500;margin-left:1px}
.dd-bar{display:block;height:4px;border-radius:3px;background:var(--line);overflow:hidden;margin:3px 0 1px}.dd-bar i{display:block;height:100%;background:var(--warn);border-radius:3px}
.dd-ly.full .dd-bar i{background:var(--ok)}.dd-ly.low .dd-bar i{background:var(--bad)}
@media (max-width:900px){.dd-cov{grid-template-columns:1fr}.dd-cov .dd-cov-sum{grid-template-columns:1fr 1fr}.dd-cov .dd-cov-sum>div{border-top:0;border-left:1px solid var(--line)}.dd-cov .dd-cov-sum>div:first-child{border-left:0}}
.dd-rfq{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))!important;gap:12px!important;margin:4px 0 6px!important}
.dd-rfq .rf-q{padding:14px 16px}
.dd-rfq .rf-q form{margin-top:auto;padding-top:8px;border-top:1px solid var(--line)}
.dd-rfq .rf-q form .btn{padding:0 6px;margin-left:-6px}
.dd-envg{display:block!important;columns:2 440px;column-gap:14px}
.dd-envg>.card{break-inside:avoid;margin:0 0 14px;display:block;width:100%}
.dd-envh{display:block!important}.dd-envh h3{margin:0 0 3px!important}.dd-envh>.mini{display:block;color:var(--ink-faint)}
.dd-envg .env-stat b small{font-size:12px;color:var(--ink-faint);font-weight:500;margin-left:1px}
.dd-envg .env-stats{grid-template-columns:repeat(auto-fit,minmax(96px,1fr))}
.dd-dv{padding:4px 18px;margin-top:12px}.dd-dv .dv-list{margin-top:0}.dd-dv .dv:last-child{border-bottom:0}
.dd-dv .dv{padding:14px 0}
.dd-gapl{font:600 10px/1.2 "IBM Plex Mono",monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--warn);margin:10px 0 0}
.dd-dv .dv-gap{color:var(--ink)}
.asof .dd-seg a{margin:0}

/* ===== design-c: client overview, assessment pages, insurance, onboarding, requests, recommendations, activity, documents ===== */
/* assessment progress as a quiet stepper, not a row of buttons */
.asm-steps.stepline{display:flex;flex-wrap:nowrap;gap:0;margin:2px 0 4px}
.asm-steps.stepline>span{flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;gap:6px;position:relative;padding:0;border:0;background:none;box-shadow:none;border-radius:0;font-size:11.5px;font-weight:500;color:var(--ink-faint);text-align:center;white-space:nowrap}
.asm-steps.stepline>span::before{content:"";width:10px;height:10px;border-radius:50%;background:var(--surface);border:2px solid var(--edge);position:relative;z-index:1;box-sizing:border-box}
.asm-steps.stepline>span:not(:last-child)::after{content:"";position:absolute;top:4px;left:calc(50% + 5px);right:calc(-50% + 5px);height:2px;background:var(--edge)}
.asm-steps.stepline>span.done{color:var(--ink-soft)}
.asm-steps.stepline>span.done::before{background:var(--ok);border-color:var(--ok)}
.asm-steps.stepline>span.done:not(:last-child)::after{background:color-mix(in srgb,var(--ok) 55%,var(--edge))}
.asm-steps.stepline>span.now{color:var(--ink);font-weight:600}
.asm-steps.stepline>span.now::before{border-color:var(--accent);background:var(--surface);box-shadow:0 0 0 3px var(--accent-soft)}
.card.asm .asm-steps.stepline{margin-top:12px}
@media (max-width:520px){.asm-steps.stepline>span:not(.now){font-size:0;gap:0}.asm-steps.stepline>span.now{font-size:11px}}
/* overview: assessment rows are links, no button per row */
.ov-rows{display:grid;margin-top:10px;border-top:1px solid var(--line)}
.ov-rows>a{display:grid;grid-template-columns:120px minmax(0,1fr) 14px;gap:12px;align-items:center;padding:10px 4px;border-bottom:1px solid var(--line);color:var(--ink);text-decoration:none;font-size:13px}
.ov-rows>a:last-child{border-bottom:0}
.ov-rows>a:hover{background:color-mix(in srgb,var(--ink) 3%,transparent)}
.ov-rows>a:hover svg{color:var(--ink)}
.ov-rk{color:var(--ink-soft);font-size:12.5px}.ov-rv{min-width:0}
.ov-rows svg{color:var(--ink-faint)}
/* overview: client owner list */
.own-list{display:grid;gap:2px}
.own-r{padding:8px 0;border-bottom:1px solid var(--line);min-width:0}.own-r:last-child{border-bottom:0}
.own-n{display:flex;align-items:center;justify-content:space-between;gap:8px}.own-n b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.own-r .mini{overflow-wrap:anywhere;margin-top:2px}
@media (max-width:700px){
  .env-facts a{flex-direction:column;align-items:flex-start;gap:2px}
  .env-facts b{text-align:left;white-space:normal}
  .ov-rows>a{grid-template-columns:minmax(0,1fr) 14px;gap:2px 10px}
  .ov-rows .ov-rk{grid-column:1;font-weight:600;color:var(--ink)}.ov-rows .ov-rv{grid-column:1;color:var(--ink-soft);font-size:12.5px}.ov-rows svg{grid-column:2;grid-row:1/3}
  .client-ph .actions{flex-wrap:wrap}
}
/* floating save bars sit above the Ask button */
.fbar.cl-fbar{bottom:78px}
@media (max-width:900px){.fbar.cl-fbar{bottom:76px}}
.q-prog{margin-bottom:14px;display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.q-prog>div:first-child{flex:1;min-width:240px}
/* summary line with its actions on the right (policies, plan) */
.pol-bar{position:relative;z-index:6;display:flex;align-items:center;justify-content:space-between;gap:10px 16px;flex-wrap:wrap;margin:0 0 14px;padding:12px 16px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}
.pol-sum{flex:1;min-width:240px;font-size:13px}.pol-sum a{color:var(--ink-soft)}.pol-sum a:hover{color:var(--ink)}
.pol-act{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.pol-act form{margin:0;display:inline-flex}
.pol-act .menu-pop{right:0}
.pol-refs{display:flex;flex-wrap:wrap;gap:5px;margin-top:10px}
.pol-tbl td{vertical-align:middle}
/* row actions: quiet until the row is hovered */
.btn.row-act{color:var(--ink-faint);gap:5px}
.btn.row-act span{font-size:11.5px}
tr:hover .btn.row-act,.btn.row-act:focus-visible{color:var(--ink);border-color:var(--edge);background:var(--surface)}
.ctl-grades{margin:0 0 12px;max-width:900px}
/* posture: empty sections collapse to one line */
.card.pst-empty{padding-top:14px;padding-bottom:14px}
.card.pst-empty h3 .sub{color:var(--ok)}
.pst-none{margin:6px 0 0;font-size:12.5px;color:var(--ink-faint)}
/* crosswalk: quiet record link */
.cw-rec-s{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--ink-faint);cursor:pointer;padding:2px 0}
.cw-rec-s:hover,.cw-rec[open] .cw-rec-s{color:var(--ink)}
button.cw-rec-s{background:none;border:0;font-family:inherit}
.cw-sec .cw-s{flex-direction:column;align-items:flex-end;gap:2px}
.cw-sec .cw-i:hover .cw-rec-s{color:var(--ink-soft)}
/* insurance: plain section headings */
.ins-h{font-size:14px;margin:22px 0 8px}.ins-h+.card{margin-top:0!important}
/* onboarding */
.ob-sn{display:inline-flex;align-items:center;gap:8px;font-size:13.5px;font-weight:600}
.ob-sn span{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;font-size:11px;background:var(--surface-2);border:1px solid var(--edge);color:var(--ink-soft)}
.ob-sh{border-bottom:1px solid var(--line)!important}
.ob-stages .ob-a{flex-direction:row;align-items:center;gap:2px}
.ob-stages .ob-a form{margin:0;display:inline-flex}
.ob-stages .ob-a .icon-only{color:var(--ink-faint)}
.ob-stages .ob-i:hover .ob-a .icon-only{color:var(--ink)}
.ob-skip{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
/* recommendations: counts instead of tabs that do nothing */
.rec-counts{display:flex;flex-wrap:wrap;gap:6px 18px;margin:12px 0 4px;padding-bottom:10px;border-bottom:1px solid var(--line);font-size:13px;color:var(--ink-soft)}
.rec-counts b{color:var(--ink);font-variant-numeric:tabular-nums;margin-right:3px}
/* documents */
td.doc-act{width:44px}
/* client tabs: fade the edge on phones so it reads as scrollable */
@media (max-width:700px){.ws-tabs{-webkit-mask-image:linear-gradient(90deg,#000 82%,transparent);mask-image:linear-gradient(90deg,#000 82%,transparent);padding-right:28px}}
/* activity */
.act-scroll{overflow-x:auto;margin-top:8px}
.act-tbl{min-width:720px}
.act-tbl td{vertical-align:middle}
.act-who{max-width:230px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.act-tbl .act-l{white-space:nowrap}
/* phone: tables become stacked rows instead of squeezed columns */
@media (max-width:700px){
  .pol-tbl thead{display:none}.pol-tbl,.pol-tbl tbody{display:block;width:100%}.card>table.tbl.pol-tbl{min-width:0}
  .pol-tbl tr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 10px;padding:10px 0;border-bottom:1px solid var(--line)}
  .pol-tbl td{display:block;border:0!important;padding:0!important;min-width:0}
  .pol-tbl td:nth-child(1),.pol-tbl td:nth-child(3),.pol-tbl td:nth-child(5){display:none}
  .pol-tbl td:nth-child(4){text-align:right}.pol-tbl td:nth-child(4) .mini{display:none}
  #ctl-groups .catbox-h .meter{display:none}
  .ctl-tbl colgroup,.plan-tbl colgroup,.ctl-tbl thead,.plan-tbl thead{display:none}
  .ctl-tbl,.plan-tbl,.ctl-tbl tbody,.plan-tbl tbody{display:block;width:100%}
  .ctl-tbl tr,.plan-tbl tr{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:6px 8px;padding:12px 0;border-bottom:1px solid var(--line);align-items:start}
  .ctl-tbl td,.plan-tbl td{display:block;border:0!important;padding:0!important;min-width:0}
  .ctl-tbl td:nth-child(1),.plan-tbl td:nth-child(1){grid-column:1;grid-row:1;padding-top:2px!important}
  .ctl-tbl td:nth-child(2),.plan-tbl td:nth-child(2){grid-column:2;grid-row:1}
  .ctl-tbl td:nth-child(3){grid-column:2;grid-row:2}
  .ctl-tbl td:nth-child(4){display:none}
  .ctl-tbl td:nth-child(5),.plan-tbl td:nth-child(7){grid-column:3;grid-row:1}
  .plan-tbl td:nth-child(3){grid-column:2;grid-row:2}
  .plan-tbl td:nth-child(4),.plan-tbl td:nth-child(5){display:none}
  .plan-tbl td:nth-child(6){grid-column:3;grid-row:2}
  .plan-tbl td[colspan]{grid-column:1/-1}
  .btn.row-act span{display:none}
}
/* ===== end design-c ===== */
.ph:has(details.ddm[open]),.card:has(.dd-dis[open]),.fnd:has(.dd-dis[open]){position:relative;z-index:30}
.dd-mo{flex-wrap:wrap}.dd-mo .dd-rate{margin-left:auto}
.dd-hrbar{margin:0 0 4px!important}.dd-hrbar>.mini{white-space:nowrap;font-variant-numeric:tabular-nums}
.dd-layers{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:640px){.dd-layers{grid-template-columns:repeat(2,minmax(0,1fr))}}
.dd-pjrow .btn{flex:none}
/* ===== site-wide fixes after the design passes ===== */
/* filter forms that share the .fbar name stay inline, not floating */
form.fbar{position:static;width:auto;margin:0 0 6px;padding:0;background:none;backdrop-filter:none;border:0;border-radius:0;box-shadow:none;flex-wrap:wrap;gap:8px;z-index:auto}
/* floating save bars clear the Ask button; page end clears it too */
body:has(.askdock) div.fbar{bottom:78px}
body:has(.askdock) .main{padding-bottom:84px}
@media (max-width:900px){body:has(.askdock) div.fbar{bottom:72px}}
/* open menus and popovers sit above the fade-in blocks below them */
.main :is(.ph,.card,.tb-bar,section,form,.grid,.cols):has(details:is(.menu,.tb-cols,.ddm,.dd-dis)[open]),.content > *:has(details:is(.menu,.tb-cols,.ddm,.dd-dis)[open]){position:relative;z-index:30}
/* "56 / 59" totals stay on one line in every count strip */
.lab-counts b small{display:inline}
/* busy toolbars: shorter search, tighter selects, so Columns stays on the first row */
.tb-bar:has(.tb-filters select:nth-of-type(4)) .tb-search input{width:150px}
.tb-bar:has(.tb-filters select:nth-of-type(4)) .tb-filters select{padding-right:24px;max-width:160px}
/* page tabs scroll on phones with an edge fade */
@media (max-width:700px){.pagetabs,.subtabs{flex-wrap:nowrap;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#000 85%,transparent);mask-image:linear-gradient(90deg,#000 85%,transparent)}.pagetabs a,.subtabs a{white-space:nowrap}}
/* ===== end site-wide fixes ===== */
/* ===== onboard-conn ===== */
.oc-tag{vertical-align:1px;margin-left:4px}
.oc-hc-tags{display:flex;gap:4px;margin-top:3px}.oc-hc-tags .tag{font-size:10.5px}
.oc-reads{margin-bottom:14px}
.oc-reads>summary{list-style:none;cursor:pointer}.oc-reads>summary::-webkit-details-marker{display:none}
.oc-reads>summary{position:relative;padding-right:22px}
.oc-reads>summary h3{display:flex;align-items:center;gap:4px 8px;flex-wrap:wrap}
.oc-reads>summary h3 .sub{margin-left:auto}
.sticky .oc-reads>summary h3 .sub{margin-left:0;flex-basis:100%;padding-left:24px}
.oc-reads>summary::after{content:"";position:absolute;right:4px;top:6px;width:8px;height:8px;border-right:1.5px solid var(--ink-faint);border-bottom:1.5px solid var(--ink-faint);transform:rotate(45deg);transition:transform .15s}
.oc-reads[open]>summary::after{transform:rotate(-135deg);top:10px}
.oc-reads-f{margin-top:10px;display:flex;flex-direction:column;gap:10px}
.oc-reads-f .actions{display:flex;justify-content:flex-end}
.oc-rl{display:flex;flex-wrap:wrap;gap:6px}
.oc-sw{display:inline-flex;align-items:center;gap:7px;padding:5px 10px 5px 8px;border:1px solid var(--edge);border-radius:8px;background:var(--surface-2);font-size:12.5px;color:var(--ink-soft);cursor:pointer;margin:0;width:auto}
.oc-sw input{margin:0;width:auto;accent-color:var(--accent)}
.oc-sw:has(input:not(:checked)){opacity:.6;text-decoration:line-through}
.oc-sg ul{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:4px}
.oc-sg li{font-size:12.5px;color:var(--ink-soft);display:flex;gap:8px;align-items:baseline}
.oc-sg li .tag{flex:none;min-width:42px;text-align:center}
.oc-note{color:var(--ink-faint);margin:8px 0 0}
.oc-empty{margin-top:8px;padding:12px;border:1px dashed var(--edge);border-radius:10px;display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.oc-empty p{margin:0}
.oc-chg{display:flex;gap:12px;align-items:center;margin-bottom:14px;border-color:color-mix(in srgb,var(--accent) 35%,var(--edge))}
.oc-chg>div{flex:1;min-width:0}.oc-chg .mini{display:block;margin-top:2px}
.oc-bar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:0 0 10px}
.oc-q{min-width:220px;flex:0 1 300px}.oc-q input{border:0;background:none;outline:none;width:100%;padding:0;height:auto}
.oc-map .pf-scroll{padding-bottom:12px}
.oc-map tbody tr{scroll-margin-bottom:140px}
.oc-map .card{padding-bottom:20px}
.oc-gone td{background:color-mix(in srgb,var(--warn,#c9822b) 6%,transparent)}
.oc-warn{color:var(--warn,#a76a1c);display:flex;gap:4px;align-items:center}
.oc-cr{margin:10px 0 4px;border:1px solid var(--edge);border-radius:10px;padding:10px 12px;background:var(--surface-2)}
.oc-cr>summary{cursor:pointer;display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}
.oc-cr .oc-rl{margin-top:10px}.oc-cr .oc-sw{background:var(--surface)}
@media (max-width:700px){.oc-q{flex:1 1 100%}.oc-chg{flex-wrap:wrap}}
/* ===== end onboard-conn ===== */
/* ===== onboard-import ===== */
.oi-grid td{vertical-align:top}
.oi-grid .oi-client{min-width:220px}
.oi-grid select,.oi-grid input[type=text]{width:100%;min-width:150px}
.oi-grid .oi-m365{min-width:230px}
.oi-grid .oi-m365cur{margin-bottom:4px;color:var(--ink-soft)}
.oi-grid .oi-m365t{margin-top:6px;font-size:12.5px;padding-top:5px;padding-bottom:5px}
.oi-dup{margin-top:6px;font-size:12.5px;line-height:1.5}
.oi-warn{border:1px solid color-mix(in srgb,var(--warn) 55%,transparent);background:color-mix(in srgb,var(--warn) 10%,var(--card,transparent));border-radius:12px;padding:12px 16px;margin-bottom:14px}
.oi-warn-h{display:flex;align-items:center;gap:8px;font-weight:600;color:var(--warn)}
.oi-warn ul{margin:8px 0 0;padding-left:20px;font-size:13px;line-height:1.7}
.oi-duprow td:first-child{box-shadow:inset 3px 0 0 var(--warn)}
.oi-opts{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px;padding:12px 16px;border-bottom:1px solid var(--line)}
.oi-opts>b{align-self:center;margin-right:4px}
.oi-opts .f{margin:0;min-width:180px}
.oi-opts>a{align-self:center}
.oi-done td{vertical-align:top}
.oi-done td.mini div{display:flex;align-items:center;gap:6px;margin:1px 0}
.oi-was{color:var(--ink-faint);text-decoration:line-through}
.oi-next{white-space:nowrap}
.oi-next .btn{margin:2px 0 2px 4px}
.oi-skip{margin-top:12px;font-size:13px;color:var(--warn)}
.oi-skip ul{margin:4px 0 0;padding-left:20px}
.oi-dupnote{border:1px solid color-mix(in srgb,var(--warn) 50%,transparent);background:color-mix(in srgb,var(--warn) 8%,transparent);border-radius:12px;padding:10px 14px;margin-bottom:12px}
.oi-dupnote-h{display:flex;align-items:center;gap:8px;color:var(--warn)}
.oi-dupnote-h .mini{color:var(--ink-faint)}
.oi-dupnote ul{list-style:none;margin:6px 0 0;padding:0}
.oi-dupnote li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:5px 0;border-top:1px solid var(--line);font-size:13px}
.oi-dupnote li:first-child{border-top:0}
.oi-dupact{display:flex;gap:6px;flex-shrink:0}
.oi-dupact form{margin:0}
.oi-bulk{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:6px 12px;margin:0 0 8px;border:1px solid var(--line);border-radius:10px;font-size:13px}
.oi-bulk.on{border-color:var(--accent,var(--ink));background:color-mix(in srgb,var(--accent,#5FA6CE) 8%,transparent)}
.oi-bulk .chk{display:flex;align-items:center;gap:8px;cursor:pointer}
.oi-bulk-acts{display:flex;gap:6px;flex-wrap:wrap}
.oi-bulk-acts .btn[disabled]{opacity:.45;pointer-events:none}
.clients-tbl .oi-ck{margin:0 2px 0 0;flex-shrink:0;width:15px;height:15px}
.oi-details .oi-contact{display:flex;gap:10px;align-items:center;padding:8px 0 10px;margin-top:4px;border-bottom:1px solid var(--line)}
.oi-details .oi-contact .cl-av{flex-shrink:0}
.oi-details .oi-addr{text-align:right;font-weight:500;max-width:62%}
.oi-details .oi-unset{color:var(--ink-faint);font-weight:400}
.oi-details .oi-src{font-size:10.5px;padding:1px 6px;margin-left:4px;vertical-align:1px}
.oi-notes{margin-top:10px;padding:8px 10px;border-radius:8px;background:color-mix(in srgb,var(--ink) 4%,transparent);font-size:13px;white-space:pre-wrap}
.oi-edit .modal-in{max-width:680px}
.oi-fs{border-top:1px solid var(--line);margin-top:6px;padding-top:8px}
.oi-fs-l{display:block;font-size:11.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-faint);margin-bottom:2px}
.oi-archbar{display:flex;align-items:center;gap:10px;padding:10px 14px;margin-bottom:14px;border:1px dashed var(--line);border-radius:12px;font-size:13px}
.oi-archbar span{flex:1}
.oi-archbar form{margin:0}
.oi-merge{display:grid;grid-template-columns:minmax(0,1fr) 36px minmax(0,1fr);gap:0;align-items:stretch}
.oi-mcol h3{margin-top:2px}
.oi-mrole{font-size:11.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faint)}
.oi-keep{box-shadow:0 0 0 2px color-mix(in srgb,var(--ok,#3a8) 55%,transparent)}
.oi-keep .oi-mrole{color:var(--ok,#3a8)}
.oi-marrow{display:flex;align-items:center;justify-content:center;color:var(--ink-faint)}
.oi-mlinks{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.oi-mwhat{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:8px}
.oi-mwhat h4{margin:0 0 4px;font-size:13px}
.oi-mwhat ul{margin:0;padding-left:18px;font-size:13px;line-height:1.7}
.oi-arch td{vertical-align:top}
@media (max-width:800px){.oi-merge{grid-template-columns:1fr}.oi-marrow{transform:rotate(90deg);padding:6px 0}.oi-mwhat{grid-template-columns:1fr}.oi-dupnote li{flex-direction:column;align-items:flex-start}}
/* ===== end onboard-import ===== */
/* ===== built-in worker card (console AI page) ===== */
.bw-h{display:flex;align-items:center;justify-content:space-between;gap:10px}.bw-h h3{margin:0}
.bw-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:12px 0;padding:12px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.bw-keys{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0}.bw-keys .tag{font-family:"IBM Plex Mono",monospace;font-size:11px}
.bw-foot{display:flex;justify-content:space-between;align-items:center;margin-top:10px}
@media (max-width:700px){.bw-grid{grid-template-columns:1fr}}
/* ===== end built-in worker card ===== */
/* ===== help-center ===== */
.hc{display:flex;flex-direction:column;gap:22px;min-width:0}
.hc mark{background:var(--accent-soft);color:var(--ink);border-radius:3px;padding:0 2px}
/* home */
.hc-hero{padding:34px 0 8px;max-width:760px}
.hc-hero h1{font-size:34px;line-height:1.15;letter-spacing:-.02em}
.hc-hero p{color:var(--ink-soft);margin-top:8px;font-size:15px;max-width:60ch}
.hc-search{display:flex;align-items:center;gap:10px;height:40px;padding:0 6px 0 12px;border:1px solid var(--edge);border-radius:10px;background:var(--surface);color:var(--ink-faint);max-width:100%}
.hc-search input{flex:1;min-width:0;border:0!important;background:none!important;box-shadow:none!important;padding:0!important;height:36px!important;font-size:13.5px;color:var(--ink)}
.hc-search input:focus{outline:none}
.hc-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.hc-search.big{height:54px;margin-top:22px;border-radius:13px;padding:0 8px 0 16px;box-shadow:var(--shadow,none)}
.hc-search.big input{font-size:16px;height:48px!important}
.hc-search.big .btn{height:38px;padding:0 18px}
.hc-start{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(220px,300px);gap:20px;align-items:center;padding:22px 24px;border-radius:var(--radius);text-decoration:none;color:var(--ink);
  border:1px solid color-mix(in srgb,var(--accent) 35%,var(--edge));background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 11%,var(--surface)),var(--surface) 70%)}
.hc-start:hover{border-color:var(--accent)}
.hc-start-ic{width:48px;height:48px;border-radius:12px;display:grid;place-items:center;background:var(--accent);color:var(--on-accent)}
.hc-start-t{display:flex;flex-direction:column;gap:3px;min-width:0}
.hc-start-t b{font-size:17px;font-family:var(--font-head)}
.hc-kicker{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-text,var(--accent))}
.hc-start-p{display:flex;flex-direction:column;gap:10px;align-items:stretch}
.hc-start-go{display:inline-flex;align-items:center;gap:6px;justify-content:flex-end;font-weight:600;font-size:13px;color:var(--accent-text,var(--accent))}
.hc-bar{display:block;height:6px;border-radius:4px;background:var(--line);overflow:hidden}
.hc-bar i{display:block;height:100%;border-radius:4px;background:var(--accent);transition:width .4s ease}
.hc-bar.hc-bar-lg{height:10px;border-radius:6px}
.hc-newreply{display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:12px;border:1px solid var(--edge);background:var(--surface);text-decoration:none;color:var(--ink);font-size:13.5px}
.hc-newreply .ic-svg{color:var(--accent-text,var(--accent))}
.hc-newreply-go{margin-left:auto;display:inline-flex;align-items:center;gap:4px;color:var(--ink-soft);font-size:12.5px;white-space:nowrap}
.hc-sec{display:flex;flex-direction:column;gap:14px}
.hc-sec-h{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.hc-sec-h h2{font-size:18px}
.hc-cats{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}
.hc-cat{display:flex;flex-direction:column;gap:6px;padding:20px;border-radius:var(--radius);border:1px solid var(--edge);background:var(--surface);text-decoration:none;color:var(--ink);transition:border-color .15s,transform .15s}
.hc-cat:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--edge));transform:translateY(-1px)}
.hc-cat-ic{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent-text,var(--accent));margin-bottom:6px}
.hc-cat b{font-size:15px}
.hc-cat-d{color:var(--ink-soft);font-size:13px;line-height:1.5;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.hc-cat-n{margin-top:auto;padding-top:8px;font-size:12px;color:var(--ink-faint)}
.hc-pop{list-style:none;border:1px solid var(--edge);border-radius:var(--radius);background:var(--surface);overflow:hidden}
.hc-pop li{display:flex;align-items:center;gap:14px;border-bottom:1px solid var(--line);padding:0 18px 0 0}
.hc-pop li:last-child{border-bottom:0}
.hc-pop a{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;padding:14px 18px;text-decoration:none;color:var(--ink)}
.hc-pop a:hover .hc-pop-t{color:var(--accent-text,var(--accent))}
.hc-pop-t{font-weight:600;font-size:14px}
.hc-pop-s{color:var(--ink-soft);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hc-pop-c{font-size:12px;color:var(--ink-faint);white-space:nowrap}
.hc-hand{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;padding:22px 24px;border-radius:var(--radius);border:1px dashed color-mix(in srgb,var(--ink) 18%,transparent);background:color-mix(in srgb,var(--surface) 60%,transparent)}
.hc-hand h3{font-size:16px}
.hc-hand p{color:var(--ink-soft);margin-top:4px;max-width:58ch}
.hc-hand-a{display:flex;gap:10px;flex-wrap:wrap}
.hc-reqlink{margin-top:-10px}.hc-reqlink a{display:inline-flex;gap:6px;align-items:center;color:var(--ink-soft)}
/* docs layout */
.hc-doc{display:grid;grid-template-columns:240px minmax(0,1fr);gap:40px;align-items:start}
.hc-doc.has-toc{grid-template-columns:240px minmax(0,1fr) 200px}
.hc-side{position:sticky;top:84px;display:flex;flex-direction:column;gap:14px;max-height:calc(100vh - 100px);overflow:auto;padding-right:4px}
.hc-side .hc-search{height:36px}.hc-side .hc-search .btn{display:none}
.hc-topics>summary{display:none}
.hc-tnav{display:flex;flex-direction:column;gap:16px}
.hc-tgrp{display:flex;flex-direction:column;gap:1px}
.hc-tcat{font-size:11px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-faint);padding:0 10px 6px}
.hc-tnav a{display:block;padding:6px 10px;border-radius:7px;color:var(--ink-soft);text-decoration:none;font-size:13px;line-height:1.4;border-left:2px solid transparent}
.hc-tnav a:hover{color:var(--ink);background:color-mix(in srgb,var(--ink) 5%,transparent)}
.hc-tnav a.on{color:var(--ink);background:var(--accent-soft);border-left-color:var(--accent);font-weight:600;border-radius:0 7px 7px 0}
.hc-art{min-width:0;max-width:72ch;display:flex;flex-direction:column;gap:22px}
.hc-art-h{display:flex;flex-direction:column;gap:10px}
.hc-crumbs{display:flex;gap:8px;font-size:12.5px;color:var(--ink-faint)}
.hc-crumbs a{color:var(--ink-soft);text-decoration:none}.hc-crumbs a:hover{color:var(--accent-text,var(--accent))}
.hc-art-h h1{font-size:32px;line-height:1.2;letter-spacing:-.02em}
.hc-lede{font-size:16.5px;line-height:1.6;color:var(--ink-soft);max-width:65ch}
.hc-meta{display:flex;gap:12px;align-items:center;flex-wrap:wrap;font-size:12.5px;color:var(--ink-faint);padding-bottom:18px;border-bottom:1px solid var(--line)}
.hc-body{font-size:15px;line-height:1.75;color:color-mix(in srgb,var(--ink) 90%,var(--ink-soft))}
.hc-body>*+*{margin-top:1em}
.hc-body h2{font-size:21px;line-height:1.3;margin-top:2.1em;color:var(--ink);scroll-margin-top:84px}
.hc-body h3{font-size:16.5px;margin-top:1.7em;color:var(--ink);scroll-margin-top:84px}
.hc-body h4{font-size:15px;margin-top:1.4em;color:var(--ink)}
.hc-body>h2:first-child,.hc-body>h3:first-child{margin-top:0}
.hc-body a{color:var(--accent-text,var(--accent));text-underline-offset:3px}
.hc-body ul,.hc-body ol{padding-left:1.4em}
.hc-body li+li{margin-top:.4em}
.hc-body li::marker{color:var(--ink-faint)}
.hc-body ol>li::marker{font-weight:600}
.hc-body strong{color:var(--ink);font-weight:600}
.hc-body code{font:13px "IBM Plex Mono",monospace;background:color-mix(in srgb,var(--ink) 7%,transparent);padding:1px 6px;border-radius:5px}
.hc-body pre{background:var(--surface-2);border:1px solid var(--edge);border-radius:10px;padding:14px 16px;overflow:auto;line-height:1.55}
.hc-body pre code{background:none;padding:0}
.hc-body kbd{font:600 12px "IBM Plex Mono",monospace;border:1px solid var(--edge);border-bottom-width:2px;border-radius:5px;padding:1px 6px;background:var(--surface)}
.hc-body hr{border:0;border-top:1px solid var(--line);margin:2em 0}
.hc-body table{width:100%;border-collapse:collapse;font-size:14px;display:block;overflow-x:auto}
.hc-body th{text-align:left;font-weight:600;color:var(--ink);border-bottom:1px solid var(--edge);padding:8px 12px 8px 0}
.hc-body td{border-bottom:1px solid var(--line);padding:8px 12px 8px 0;vertical-align:top}
.hc-body blockquote{border-left:3px solid var(--edge);padding:2px 0 2px 16px;color:var(--ink-soft)}
.hc-body img{max-width:100%;height:auto;border-radius:8px}
.hc-fig{margin:1.6em 0;padding:8px;border:1px solid var(--edge);border-radius:12px;background:var(--surface-2)}
.hc-zoom{display:block;border-radius:7px;overflow:hidden;cursor:zoom-in;line-height:0}
.hc-fig img{display:block;width:100%;border-radius:7px;box-shadow:0 1px 0 var(--line)}
.hc-fig figcaption{font-size:12.5px;line-height:1.5;color:var(--ink-faint);padding:9px 4px 2px}
.hc-callout{border:1px solid var(--edge)!important;border-left-width:4px!important;border-radius:10px;padding:12px 16px!important;background:var(--surface);color:var(--ink)!important;font-size:14.5px}
.hc-callout p+p{margin-top:.6em}
.hc-callout strong:first-child{display:inline-block;margin-right:4px}
.hc-tip{border-left-color:var(--accent2)!important;background:color-mix(in srgb,var(--accent2) 7%,var(--surface))}
.hc-tip strong:first-child{color:color-mix(in srgb,var(--accent2) 75%,var(--ink))}
.hc-body .hc-note{border-left-color:color-mix(in srgb,var(--ink) 35%,transparent)!important}
.hc-important{border-left-color:var(--accent)!important;background:color-mix(in srgb,var(--accent) 7%,var(--surface))}
.hc-important strong:first-child{color:var(--accent-text,var(--accent))}
.hc-fb{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:16px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:14px;color:var(--ink-soft);margin-top:12px}
.hc-fb form{display:flex;gap:8px}
.hc-pn{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.hc-pn-a{display:flex;flex-direction:column;gap:3px;padding:14px 16px;border:1px solid var(--edge);border-radius:12px;text-decoration:none;color:var(--ink);background:var(--surface);min-width:0}
.hc-pn-a b{font-size:14px;overflow:hidden;text-overflow:ellipsis}
.hc-pn-a:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--edge))}
.hc-pn-a.next{text-align:right;grid-column:2}
.hc-stuck{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:16px 18px;border-radius:12px;background:var(--surface);border:1px solid var(--edge);font-size:14px;color:var(--ink-soft)}
.hc-stuck .ic-svg{color:var(--accent-text,var(--accent))}
.hc-stuck b{color:var(--ink)}
.hc-stuck span{flex:1;min-width:200px}
.hc-toc{position:sticky;top:84px;display:flex;flex-direction:column;gap:2px;font-size:12.5px;border-left:1px solid var(--line);padding-left:14px}
.hc-toc-h{font-size:11px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:8px}
.hc-toc a{color:var(--ink-soft);text-decoration:none;padding:4px 0;line-height:1.4}
.hc-toc a:hover{color:var(--accent-text,var(--accent))}
.hc-lb{border:0;padding:0;background:transparent;max-width:96vw;max-height:94vh;margin:auto}
.hc-lb::backdrop{background:rgba(4,8,16,.78);backdrop-filter:blur(3px)}
.hc-lb-in{position:relative;display:flex;flex-direction:column;align-items:center;gap:10px;padding:8px}
.hc-lb img{max-width:94vw;max-height:84vh;border-radius:10px;background:var(--surface);box-shadow:0 30px 80px rgba(0,0,0,.6)}
.hc-lb-cap{color:#E8ECF4;font-size:13px;text-align:center;max-width:80ch}
.hc-lb-x{position:absolute;top:14px;right:14px;background:rgba(0,0,0,.55)!important;color:#fff!important}
/* search */
.hc-count{margin-top:-8px}
.hc-results{list-style:none;display:flex;flex-direction:column;gap:2px}
.hc-results a{display:flex;flex-direction:column;gap:4px;padding:14px 16px;border-radius:12px;text-decoration:none;color:var(--ink);border:1px solid transparent}
.hc-results a:hover{background:var(--surface);border-color:var(--edge)}
.hc-results b{font-size:15.5px;color:var(--accent-text,var(--accent))}
.hc-r-cat{font-size:11.5px;color:var(--ink-faint)}
.hc-r-snip{font-size:13.5px;line-height:1.6;color:var(--ink-soft)}
.hc-none{padding:26px;border:1px dashed var(--edge);border-radius:12px;text-align:center;color:var(--ink-soft)}
.hc-none p{margin-top:4px;font-size:13.5px}
/* start here */
.hc-startpg{max-width:820px}
.hc-prog{display:flex;flex-direction:column;gap:10px;padding:18px 20px;border:1px solid var(--edge);border-radius:var(--radius);background:var(--surface)}
.hc-prog-t{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}
.hc-prog-t b{font-size:15px}
.hc-steps{list-style:none;display:flex;flex-direction:column;position:relative}
.hc-step{display:grid;grid-template-columns:36px minmax(0,1fr);gap:16px;padding:0 0 22px;position:relative}
.hc-step:not(:last-child)::before{content:"";position:absolute;left:17px;top:38px;bottom:4px;width:2px;background:var(--line)}
.hc-step.done:not(:last-child)::before{background:color-mix(in srgb,var(--accent) 45%,var(--line))}
.hc-step-n{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:14px;border:2px solid var(--edge);background:var(--surface);color:var(--ink-soft);position:relative;z-index:1}
.hc-step.done .hc-step-n{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.hc-step.now .hc-step-n{border-color:var(--accent);color:var(--accent-text,var(--accent));box-shadow:0 0 0 4px var(--accent-soft)}
.hc-step-b{padding:16px 18px;border:1px solid var(--edge);border-radius:12px;background:var(--surface);display:flex;flex-direction:column;gap:6px;min-width:0}
.hc-step.now .hc-step-b{border-color:color-mix(in srgb,var(--accent) 50%,var(--edge))}
.hc-step.done .hc-step-b{background:color-mix(in srgb,var(--surface) 60%,transparent)}
.hc-step.opt .hc-step-n{border-style:dashed}
.hc-step-t{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.hc-step-t b{font-size:15px;margin-right:auto}
.hc-step-b p{color:var(--ink-soft);font-size:13.5px;line-height:1.55}
.hc-step-a{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:6px}
.hc-guide{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--ink-soft);text-decoration:none}
.hc-guide:hover{color:var(--accent-text,var(--accent))}
/* support */
.hc-sup-f{margin-top:-4px}
.hc-reqs{list-style:none;border:1px solid var(--edge);border-radius:var(--radius);background:var(--surface);overflow:hidden}
.hc-req{border-bottom:1px solid var(--line)}.hc-req:last-child{border-bottom:0}
.hc-req a{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"m st" "s st" "l st";gap:3px 16px;padding:14px 18px;text-decoration:none;color:var(--ink)}
.hc-req a:hover{background:color-mix(in srgb,var(--ink) 4%,transparent)}
.hc-req-m{grid-area:m;display:flex;align-items:center;gap:8px;min-width:0}
.hc-req-m b{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hc-req-m .badge{margin-left:4px}
.hc-req-s{grid-area:s}.hc-req-l{grid-area:l}
.hc-req-st{grid-area:st;display:flex;gap:6px;align-items:center;align-self:center}
.hc-req.unread b{color:var(--accent-text,var(--accent))}
.hc-case-meta{display:flex;gap:6px 14px;align-items:center;flex-wrap:wrap;font-size:12.5px;color:var(--ink-faint)}
.hc-thread{display:flex;flex-direction:column;gap:12px;max-width:820px}
.hc-msg{border:1px solid var(--edge);border-radius:12px;padding:14px 16px;background:var(--surface)}
.hc-msg.them{border-left:3px solid var(--accent2);background:color-mix(in srgb,var(--accent2) 5%,var(--surface))}
.hc-msg-h{display:flex;align-items:center;gap:10px;margin-bottom:8px;flex-wrap:wrap}
.hc-msg-h .av{width:28px;height:28px;font-size:11px}
.hc-msg.them .av{background:color-mix(in srgb,var(--accent2) 20%,transparent);color:var(--accent2)}
.hc-msg-t{margin-left:auto}
.hc-msg-b{white-space:pre-wrap;font-size:14px;line-height:1.6;overflow-wrap:anywhere}
.hc-msg-img{display:block;margin-top:12px;max-width:420px;border:1px solid var(--edge);border-radius:8px;overflow:hidden;cursor:zoom-in;line-height:0}
.hc-msg-img img{width:100%;display:block}
.hc-msg-f{margin-top:8px;display:flex;align-items:center;gap:6px}
.hc-reply{max-width:820px}
.hc-reply-a{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.hc-file{display:inline-flex;align-items:center;gap:6px;cursor:pointer;position:relative;overflow:hidden;min-width:0}
.hc-file input{font-size:12px;max-width:230px;color:var(--ink-faint)}
.hc-file span{white-space:nowrap}
/* request modal */
.hc-modal .modal-in{max-width:100%}
.hc-modal-lede{margin:-6px 0 14px}
.hc-prio{border:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;min-width:0}
.hc-prio legend{font-size:12px;color:var(--ink-soft);font-weight:500;margin-bottom:6px}
.hc-prio-o{display:flex;gap:8px;align-items:flex-start;padding:10px 12px;border:1px solid var(--edge);border-radius:10px;cursor:pointer;background:var(--surface-2);min-width:0}
.hc-prio-o:has(input:checked){border-color:var(--accent);background:var(--accent-soft)}
.hc-prio-o input{margin-top:3px;flex:none}
.hc-prio-o span{display:flex;flex-direction:column;gap:2px;min-width:0}
.hc-prio-o b{font-size:13px}
.hc-modal-from{overflow-wrap:anywhere;padding:8px 10px;border-radius:8px;background:var(--surface-2)}
.ad-foot{display:flex;justify-content:space-between;gap:10px;padding:9px 14px;border-top:1px solid var(--line);font-size:12px}
.ad-foot a,.ad-foot .linklike{display:inline-flex;align-items:center;gap:5px;color:var(--ink-soft);text-decoration:none;font-size:12px}
.ad-foot a:hover,.ad-foot .linklike:hover{color:var(--accent-text,var(--accent))}
@media (max-width:1240px){.hc-doc.has-toc{grid-template-columns:220px minmax(0,1fr)}.hc-toc{display:none}.hc-doc{gap:32px}}
@media (max-width:900px){
  .hc-doc,.hc-doc.has-toc{grid-template-columns:minmax(0,1fr);gap:18px}
  .hc-side{position:static;max-height:none;overflow:visible;padding:0}
  .hc-topics{border:1px solid var(--edge);border-radius:12px;background:var(--surface)}
  .hc-topics>summary{display:flex;align-items:center;gap:8px;padding:11px 14px;cursor:pointer;font-weight:600;font-size:13.5px;list-style:none}
  .hc-topics>summary::-webkit-details-marker{display:none}
  .hc-topics>summary::after{content:"";margin-left:auto;width:8px;height:8px;border-right:2px solid var(--ink-faint);border-bottom:2px solid var(--ink-faint);transform:rotate(45deg);transition:transform .15s}
  .hc-topics[open]>summary::after{transform:rotate(-135deg)}
  .hc-topics .hc-tnav{padding:4px 6px 12px}
  .hc-start{grid-template-columns:auto minmax(0,1fr)}.hc-start-p{grid-column:1/-1}
  .hc-start-go{justify-content:flex-start}
}
@media (max-width:600px){
  .hc-hero{padding-top:12px}.hc-hero h1{font-size:27px}
  .hc-search.big{height:48px;padding:0 6px 0 12px}.hc-search.big .btn{padding:0 12px}
  .hc-start{padding:18px}.hc-start-ic{width:40px;height:40px}
  .hc-art-h h1{font-size:26px}.hc-lede{font-size:15.5px}.hc-body{font-size:15px;line-height:1.7}
  .hc-fig{margin:1.2em -4px;padding:5px}
  .hc-pn{grid-template-columns:1fr}.hc-pn-a.next{grid-column:1}
  .hc-pop li{flex-wrap:wrap;padding:0}.hc-pop-c{display:none}.hc-pop-s{white-space:normal}
  .hc-hand{padding:18px}.hc-hand-a .btn{flex:1}
  .hc-prio{grid-template-columns:1fr}
  .hc-req a{grid-template-columns:minmax(0,1fr);grid-template-areas:"m" "s" "l" "st"}.hc-req-st{align-self:start;margin-top:6px}
  .hc-req-m b{white-space:normal}
  .hc-step{grid-template-columns:28px minmax(0,1fr);gap:10px}.hc-step-n{width:28px;height:28px;font-size:12px}.hc-step:not(:last-child)::before{left:13px;top:30px}
  .hc-step-b{padding:14px}
  .hc-sup .ph .actions{width:100%}.hc-sup .ph .actions .btn{flex:1}
  .hc-file input{max-width:170px}
}
/* ===== end help-center ===== */
/* ===== rail-nav ===== */
/* The staff portal's left edge: a 56px rail of section icons and a 220px pane with the active section's menu.
   Only applies with .app.rl (staff, side layout); the top layout and the client owner menu keep the rules above. */
.app.rl{grid-template-columns:auto minmax(0,1fr)}
.side.rl-side{flex-direction:row;padding:0;gap:0;overflow:visible}
.rl-rail{width:56px;flex:none;display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px 0 10px;border-right:1px solid var(--line);height:100%;background:color-mix(in srgb,var(--ink) 2.5%,transparent)}
.rl-logo{display:grid;place-items:center;width:40px;height:40px;margin-bottom:12px;border-radius:11px;text-decoration:none}
.rl-logo .lg{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;font-weight:700;font-size:13px;overflow:hidden;background:var(--accent);color:var(--on-accent);transition:transform .15s}
.rl-logo .lg img{width:100%;height:100%;object-fit:contain}
.rl-logo:hover .lg{transform:scale(1.05)}
.rl-icons{display:flex;flex-direction:column;align-items:center;gap:6px}
.rl-i{position:relative;width:40px;height:40px;display:grid;place-items:center;border-radius:10px;color:var(--ink-faint);background:none;border:0;cursor:pointer;text-decoration:none;transition:background .12s,color .12s}
.rl-i:hover{color:var(--ink);background:color-mix(in srgb,var(--ink) 7%,transparent)}
.rl-i.on{color:var(--accent-text,var(--accent));background:color-mix(in srgb,var(--accent-text,var(--accent)) 15%,transparent)}
.rl-icons .rl-i::before{content:"";position:absolute;left:-8px;top:10px;bottom:10px;width:3px;border-radius:0 3px 3px 0;background:var(--accent-text,var(--accent));opacity:0;transform:scaleY(.4);transition:opacity .15s,transform .15s}
.rl-icons .rl-i.on::before{opacity:1;transform:none}
.rl-dot{position:absolute;top:7px;right:7px;width:8px;height:8px;border-radius:50%;background:var(--accent-text,var(--accent));box-shadow:0 0 0 2px var(--surface);pointer-events:none}
.rl-bot{margin-top:auto;display:flex;flex-direction:column;align-items:center;gap:6px;padding-top:10px}
.rl-bot form{margin:0}
.rl-av{width:32px;height:32px;margin:2px 0;text-decoration:none;transition:box-shadow .15s}
.rl-av:hover{box-shadow:0 0 0 2px var(--accent-soft)}
.rl-tog svg path:last-child{transform-box:fill-box;transform-origin:center;transition:transform .15s}
html.rl-collapsed .rl-tog svg path:last-child{transform:scaleX(-1)}
.rl-pane{width:220px;flex:none;display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden;padding:12px 10px 10px;scrollbar-width:thin;scrollbar-color:var(--edge) transparent}
.rl-sec{display:flex;flex-direction:column;flex:1 0 auto;min-width:0}
.rl-sec[hidden]{display:none}
.rl-ph{display:flex;flex-direction:column;gap:2px;min-width:0;padding:8px 10px 12px;margin-bottom:4px;border-bottom:1px solid var(--line)}
.rl-pt{font-weight:700;font-size:14.5px;line-height:1.2;color:var(--ink);text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rl-pt:hover{color:var(--accent-text,var(--accent))}
.rl-ps{font-size:11px;color:var(--ink-faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rl-sec .nav{margin-top:2px}
.rl-sec-portal .powered{margin-top:auto;padding-top:16px}
.rl-wait{padding:10px}
html.rl-collapsed .rl-pane{display:none}
html.rl-collapsed .rl-rail{border-right:0}
.side .rl-pfoot{display:none}
/* Help pane */
.rl-help{display:flex;flex-direction:column;min-width:0}
.hc-search.rl-search{height:34px;margin:6px 0 8px;padding:0 10px;gap:8px;border-radius:9px;background:var(--surface-2)}
.hc-search.rl-search input{font-size:12.5px;height:30px!important}
.rl-prog{margin-left:auto;flex:none;font:600 10px "IBM Plex Mono";color:var(--ink-faint);padding:1px 6px;border-radius:10px;background:color-mix(in srgb,var(--ink) 7%,transparent)}
.rl-prog.done{color:var(--accent-text,var(--accent));background:var(--accent-soft)}
.rl-cat>summary{list-style:none;display:flex;align-items:center;gap:8px;padding:5px 10px;border-radius:8px;cursor:pointer;color:var(--ink-soft);font-weight:500;font-size:12.5px;user-select:none}
.rl-cat>summary::-webkit-details-marker{display:none}
.rl-cat>summary::before{content:"";flex:none;width:5px;height:5px;margin:0 3px 0 2px;border-right:1.5px solid var(--ink-faint);border-bottom:1.5px solid var(--ink-faint);transform:rotate(-45deg);transition:transform .15s}
.rl-cat[open]>summary::before{transform:rotate(45deg) translate(-1px,-1px)}
.rl-cat>summary:hover{background:color-mix(in srgb,var(--ink) 5%,transparent);color:var(--ink)}
.rl-cat>summary span:first-child{flex:1;min-width:0;line-height:1.35}
.rl-cat[open]>summary{color:var(--ink)}
.rl-n{font:10px "IBM Plex Mono";color:var(--ink-faint)}
.rl-arts{display:flex;flex-direction:column;gap:1px;margin:1px 0 6px 15px;padding-left:6px;border-left:1px solid var(--line)}
.side .nav .rl-arts a{padding:4px 8px;font-size:12.5px;line-height:1.35;border-radius:6px}
.side .nav .rl-arts a span:first-of-type{white-space:normal}
.side .nav .rl-arts a.on{background:var(--accent-soft);color:var(--ink);font-weight:600;box-shadow:inset 2px 0 0 var(--accent)}
.rl-btn{display:flex;align-items:center;gap:9px;width:100%;padding:4px 10px;border:0;border-radius:8px;background:none;color:var(--ink-soft);font:inherit;font-size:12.5px;font-weight:500;text-align:left;cursor:pointer}
.rl-btn:hover{background:color-mix(in srgb,var(--ink) 5%,transparent);color:var(--ink)}
/* the phone switch between panes (hidden on desktop, where the rail does it) */
.rl-seg{display:none;align-items:center;gap:4px;margin-bottom:10px}
.rl-seg>a{flex:1;position:relative;display:flex;align-items:center;justify-content:center;gap:6px;height:36px;border-radius:9px;color:var(--ink-soft);text-decoration:none;font-weight:600;font-size:13px;background:var(--surface-2);border:1px solid var(--line)}
.rl-seg>a.on{background:var(--accent-soft);color:var(--ink);border-color:color-mix(in srgb,var(--accent) 35%,var(--edge))}
.rl-seg>a.on .ic-svg{color:var(--accent-text,var(--accent))}
.rl-seg .rl-dot{top:6px;right:8px}
.rl-x{flex:none;width:36px;height:36px;padding:0;justify-content:center}
/* Help pages give the article the room the old topic column had */
.hc-doc.hc-solo{grid-template-columns:minmax(0,760px)}
.hc-doc.hc-solo.has-toc{grid-template-columns:minmax(0,720px) 210px;gap:56px}
.hc-solo .hc-art{max-width:none}
@media (max-width:1240px){.hc-solo .hc-toc{display:flex}.hc-doc.hc-solo.has-toc{gap:40px}}
@media (max-width:1100px){.hc-solo .hc-toc{display:none}.hc-doc.hc-solo.has-toc{grid-template-columns:minmax(0,1fr)}}
html.rl-collapsed .hc-doc.hc-solo.has-toc{grid-template-columns:minmax(0,780px) 220px}
/* phone: no rail, the menu button opens the pane as a drawer */
@media (max-width:820px){
  .app.rl{grid-template-columns:minmax(0,1fr)}
  .side.rl-side{display:none}
  .side-open .side.rl-side{display:flex;position:fixed;inset:0 auto 0 0;width:min(320px,86vw);height:100vh;height:100dvh;z-index:40;background:var(--surface);box-shadow:0 20px 60px rgba(0,0,0,.45)}
  .side-open:has(.rl-side)::before{content:"";position:fixed;inset:0;z-index:39;background:rgba(4,8,16,.5)}
  .rl-rail{display:none}
  .rl-pane,html.rl-collapsed .rl-pane{display:flex;width:100%;padding:12px 12px 16px}
  .rl-seg{display:flex}
  .side .rl-pfoot{display:flex;margin-top:14px;padding:12px 6px 0}
  .side-open:has(.rl-side) .askdock{display:none}
  .side .nav .rl-arts a,.rl-btn,.rl-cat>summary{padding-top:7px;padding-bottom:7px}
  .rl-sec .nav a{padding-top:7px;padding-bottom:7px}
}
/* ===== end rail-nav ===== */
/* settings tabs live in the Setup menu when the rail is on */
@media (min-width:821px){.app.rl .set-tabs{display:none}}
/* ===== rail-nav-2 ===== */
/* Five sections (Portal, Connections, Templates, Settings, Help); each pane has a header, a scrolling body and a pinned footer. */
.rl-pane{overflow:hidden;transition:width .15s ease}
.rl-pane:has(> .rl-wide:not([hidden])){width:292px}
.rl-sec{flex:1 1 auto;min-height:0}
.rl-lazy-box,.rl-help{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}
.rl-body{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;margin:0 -10px;padding:0 10px 8px;scrollbar-width:thin;scrollbar-color:var(--edge) transparent}
.rl-pf{flex:none;display:flex;flex-direction:column;gap:1px;margin:0 -10px;padding:8px 10px 2px;border-top:1px solid var(--line)}
.rl-pf .powered{margin:0;padding:8px 0 0;justify-content:flex-start;padding-left:10px}
.rl-sec-portal .rl-pf .powered{margin-top:0}
.rl-btn kbd{margin-left:auto}
.rl-btn span:first-of-type{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
a.rl-btn{text-decoration:none}
.app.rl.rl-nopane .rl-pane{display:none}
.app.rl.rl-nopane .rl-rail{border-right:0}
/* Connections pane */
.rl-cnav .rl-n,.rl-pane .nav .rl-n{margin-left:auto;flex:none}
.side .nav a.rl-k{padding-left:12px}
.side .nav a.rl-k span:first-of-type{white-space:normal;line-height:1.35}
.rl-on{flex:none;font:600 10px "IBM Plex Mono",monospace;font-style:normal;padding:0 5px;border-radius:8px;background:color-mix(in srgb,var(--accent-text,var(--accent)) 15%,transparent);color:var(--accent-text,var(--accent))}
.rl-st{flex:none;width:8px;height:8px;border-radius:50%;margin:0 4px;background:var(--ink-soft)}
.rl-st.st-connected{background:var(--ink)}
.rl-st.st-error{background:var(--danger,var(--bad))}
.rl-st.st-ready,.rl-st.st-pending{background:none;box-shadow:inset 0 0 0 1.5px var(--ink-faint)}
/* phone drawer: a name row with the close button, then one row of five section buttons */
.rl-dtop{display:none}
@media (max-width:820px){
  .side-open .side.rl-side{width:min(360px,92vw)}
  .rl-btn kbd{display:none}
  .rl-dtop{display:flex;align-items:center;gap:10px;margin:0 0 10px}
  .rl-dname{flex:1;min-width:0;font-weight:700;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .rl-seg{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:3px;margin-bottom:12px}
  .rl-seg>a{flex-direction:column;gap:3px;height:54px;padding:0 1px;font-size:10px;font-weight:600;letter-spacing:-.01em;border-radius:10px}
  .rl-seg>a span{max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .rl-seg .rl-dot{top:6px;right:calc(50% - 16px)}
  .app.rl.rl-nopane .rl-pane{display:flex}
  .rl-pane{overflow:hidden}
  .rl-pane:has(> .rl-wide:not([hidden])){width:100%}
  .rl-pf{padding-bottom:4px}
}
/* the catalog's category strip moves into the Connections pane at desktop width */
@media (min-width:821px){.app.rl .cx-jump{display:none}.app.rl .cx-bar{padding-bottom:12px}}
.app.rl .cx-bar{top:60px}
/* catalog tiles: one grid, a clear status line, no squeezed text */
.cx-tiles{grid-template-columns:repeat(auto-fill,minmax(228px,1fr));gap:12px}
.cx-t{padding:14px;gap:8px;min-width:0}
.cx-t .tile-h{align-items:flex-start}
.cx-tn{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1}
.cx-tn b{font-size:13.5px;line-height:1.3;overflow-wrap:anywhere}
.cx-tn .mini{line-height:1.3;color:var(--ink-faint)}
.cx-t .tile-r{-webkit-line-clamp:2;min-height:2.9em;font-size:12.5px;line-height:1.45;margin:0}
.cx-unit{display:flex;align-items:center;gap:5px;margin:0;color:var(--ink-faint);font-size:11.5px}
.cx-t .tile-f{margin-top:auto;padding-top:10px;border-top:1px solid var(--line);gap:8px}
.cx-st{display:inline-flex;align-items:center;gap:6px;min-width:0;font-size:12px;font-weight:600;color:var(--ink-soft);white-space:nowrap}
.cx-st i{flex:none;width:7px;height:7px;border-radius:50%;background:currentColor}
.cx-st-connected{color:var(--ink)}
.cx-st-error{color:var(--danger,var(--bad))}
.cx-st-ready i,.cx-st-lite i{background:none;box-shadow:inset 0 0 0 1.5px currentColor}
.cx-st-live{color:var(--accent-text,var(--accent))}
.cx-st-lite{color:var(--ink-faint);font-weight:500}
/* help article ending: one block, feedback and previous/next on one row, then a quiet line */
.hc-end{display:flex;flex-direction:column;gap:14px;margin-top:6px;padding-top:18px;border-top:1px solid var(--line)}
.hc-end-row{display:flex;align-items:center;justify-content:space-between;gap:12px 20px}
.hc-end .hc-fb{flex:none}
.hc-end .hc-fb{margin:0;padding:0;border:0;font-size:13.5px;gap:10px}
.hc-end .hc-pn{display:flex;gap:8px;margin-left:auto;min-width:0;flex:0 1 auto;justify-content:flex-end}
.hc-end .hc-pn-a{flex:0 1 220px;flex-direction:row;align-items:center;gap:8px;padding:7px 12px;border-radius:10px;min-width:0}
.hc-end .hc-pn-a.next{justify-content:flex-end}
.hc-end .hc-pn-a>span{display:flex;flex-direction:column;min-width:0}
.hc-end .hc-pn-a .mini{font-size:11px;line-height:1.2}
.hc-end .hc-pn-a b{font-size:13px;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hc-end .hc-pn-a.next{grid-column:auto;text-align:right}
.hc-end .hc-pn-a .ic-svg{flex:none;color:var(--ink-faint)}
.hc-pn-l{transform:rotate(180deg)}
.hc-end .hc-stuck{margin:0;padding:0;border:0;background:none;gap:7px;font-size:13px;color:var(--ink-faint);flex-wrap:wrap}
.hc-end .hc-stuck span{flex:0 1 auto;min-width:0}
.hc-end .hc-stuck b{color:var(--ink-soft);font-weight:600}
.hc-end .hc-stuck .linklike{color:var(--accent-text,var(--accent));font-weight:600;text-decoration:none}
.hc-end .hc-stuck .linklike:hover{text-decoration:underline}
@media (max-width:600px){
  .hc-end-row{flex-direction:column;align-items:stretch}
  .hc-end .hc-pn{margin-left:0;width:100%}
  .hc-end .hc-pn-a{flex:1 1 0}
}
@media (max-width:1180px){.hc-solo .hc-toc{display:none}.hc-doc.hc-solo.has-toc{grid-template-columns:minmax(0,760px)}}
/* page eyebrows in the portal speak in the pane-header voice: sans, small, accent, no "//" */
.papp .eyebrow,.papp .ph .eyebrow,.papp .lab-eb{font:500 12px/1.3 var(--font-body);letter-spacing:.02em;text-transform:none;color:var(--accent-text,var(--accent))}
.papp .ph .eyebrow{margin-bottom:6px}
.papp .ph .eyebrow::before{content:none}
.papp .lab-eb::first-letter{text-transform:uppercase}
/* ===== end rail-nav-2 ===== */
/* ===== recs-v2 ===== */
.rv-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
/* status: colour plus shape, always with a word next to it or an accessible label */
.st-accepted{--st:var(--ok)}.st-pending{--st:var(--warn)}.st-declined{--st:color-mix(in srgb,var(--bad) 78%,var(--ink))}.st-none{--st:color-mix(in srgb,var(--ink) 16%,transparent)}
.rv-dot{display:inline-block;flex:none;width:9px;height:9px;border-radius:50%;background:var(--st);vertical-align:middle}
.st-pending .rv-dot,.rv-dot.st-pending{background:transparent;box-shadow:inset 0 0 0 2.5px var(--st)}
.st-declined .rv-dot,.rv-dot.st-declined{border-radius:2px;width:8px;height:8px}
.st-none .rv-dot,.rv-dot.st-none{width:8px;height:2px;border-radius:1px}
.rv-due .rv-dot{box-shadow:0 0 0 2px var(--surface),0 0 0 3.5px var(--st)}
/* stat strip */
.rv-counts{grid-template-columns:minmax(190px,1.3fr) repeat(4,minmax(120px,1fr))}
.rv-counts>div b{display:flex;align-items:center;gap:8px}.rv-counts>div b .rv-dot{width:10px;height:10px}.rv-counts>div b .rv-dot.st-declined{width:9px;height:9px}
.rv-adopt{flex-direction:row!important;align-items:center;gap:12px!important}.rv-adopt span{font-size:13px;font-weight:600}.rv-adopt small{display:block;font-weight:400}
.rv-tabs{margin-bottom:14px}
/* service cards */
.rv-hint{margin:-4px 0 10px}
.rv-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
.rv-card{display:flex;flex-direction:column;gap:10px;padding:16px;margin:0}
.rv-ch{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.rv-ch h3{margin:0;font-size:15px;font-weight:600;line-height:1.3}.rv-ch h3 a{color:var(--ink);text-decoration:none}.rv-ch h3 a:hover{color:var(--accent-text,var(--accent))}
.rv-pct{font-size:12px;color:var(--ink-faint);white-space:nowrap;text-align:right}.rv-pct b{display:block;font:600 20px/1.1 var(--font-head);color:var(--ink);font-variant-numeric:tabular-nums}
.rv-bar{display:flex;height:10px;border-radius:5px;overflow:hidden;background:var(--line);gap:2px}.rv-bar.big{height:14px;border-radius:7px}
.rv-seg{background:var(--st);min-width:3px}.rv-seg.st-pending{background:repeating-linear-gradient(135deg,var(--st) 0 4px,color-mix(in srgb,var(--st) 60%,var(--surface)) 4px 7px)}
.rv-seg.st-none{background:var(--line)}
.rv-leg{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:12px;color:var(--ink-soft)}.rv-leg span{display:inline-flex;align-items:center;gap:5px}.rv-leg b{color:var(--ink);font-weight:600;font-variant-numeric:tabular-nums}.rv-leg .zero{opacity:.55}
.rv-money{margin:0}.rv-money b{color:var(--ink);font-weight:600}
.rv-cf{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:auto;padding-top:4px}
.rv-more{display:inline-flex;align-items:center;gap:3px;font-size:12.5px;color:var(--ink-soft);text-decoration:none;margin-left:auto}.rv-more:hover{color:var(--accent-text,var(--accent))}
/* latest answers */
.rv-latest{margin-top:14px;padding:14px 16px}.rv-latest h3{margin:0 0 8px;font-size:14px;font-weight:600}
.rv-latest ul{list-style:none;margin:0;padding:0}.rv-latest li{display:grid;grid-template-columns:minmax(140px,220px) 1fr auto 56px;gap:12px;align-items:center;padding:7px 0;border-top:1px solid var(--line);font-size:13px}.rv-latest li:first-child{border-top:0}
.rv-latest li a{color:var(--ink);text-decoration:none;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rv-latest li>.ell{color:var(--ink-soft);min-width:0}.rv-latest li>.mini{text-align:right}
.rv-st{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-soft);white-space:nowrap}
/* one service */
.rv-back{display:inline-flex;align-items:center;gap:4px;font-size:13px;color:var(--ink-soft);text-decoration:none;margin-bottom:10px}.rv-back:hover{color:var(--accent-text,var(--accent))}.rv-flip{transform:rotate(180deg)}
.rv-focus{padding:16px 18px;display:flex;flex-direction:column;gap:10px;margin-bottom:12px}
.rv-fh{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}.rv-fh h2{margin:0 0 2px;font-size:19px}.rv-fh p{margin:0}
.rv-grp{padding:14px 16px;margin-bottom:12px}.rv-grp h3{display:flex;align-items:center;gap:8px;margin:0 0 8px;font-size:14px;font-weight:600}
.rv-none{margin:0}
.rv-tbl{width:100%}.rv-tbl th{font:600 12px/1.3 var(--font-body);letter-spacing:0;text-transform:none;color:var(--ink-faint)}.rv-tbl td a{color:var(--ink)}.rv-tbl .r{text-align:right}.rv-tbl td.r .btn{margin-left:4px}
.rv-pick-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px}
.rv-price{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--ink-soft);margin-left:auto}.rv-price input{width:90px;height:30px}
.rv-names{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:4px 14px;font-size:13px;margin-bottom:8px}
.rv-names label,.rv-names a{display:flex;align-items:center;gap:7px;min-width:0;color:var(--ink);text-decoration:none;padding:3px 0}.rv-names a:hover{color:var(--accent-text,var(--accent))}
/* by client: compact matrix */
.rv-mxcard{padding:0;overflow:hidden}
.rv-mxbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--line)}
.rv-mxbar .searchbox{min-width:220px;height:34px}.rv-mxbar .chip{height:30px}.rv-mxbar .rv-svc select{height:34px;width:auto;max-width:240px;min-width:160px;font-size:13px;padding-top:0;padding-bottom:0}
.rv-tw{overflow-x:auto;margin:0 -4px}
.rv-legend{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:12px;color:var(--ink-soft);margin-left:auto}.rv-legend span{display:inline-flex;align-items:center;gap:5px}
.rv-scroll{overflow:auto;max-height:calc(100vh - 220px)}
.rv-mx{width:100%;border-collapse:separate;border-spacing:0}
.papp .rv-mx th,.rv-mx th{font:600 12px/1.25 var(--font-body);letter-spacing:0;text-transform:none;color:var(--ink-soft);white-space:nowrap;max-width:none;vertical-align:bottom;position:sticky;top:0;background:var(--surface);z-index:2;border-bottom:1px solid var(--edge)}
.rv-mx th a{color:inherit;text-decoration:none;border-bottom:1px dotted var(--ink-faint)}.rv-mx th a:hover{color:var(--accent-text,var(--accent))}
.rv-mx th:first-child{z-index:3}
.rv-mx td,.rv-mx th{padding:7px 8px}.rv-mx td.c{text-align:center}.rv-mx th:not(:first-child):not(:last-child){text-align:center}.rv-mx .r{text-align:right}
.rv-mx td:first-child,.rv-mx th:first-child{position:sticky;left:0;background:var(--surface);max-width:220px;box-shadow:1px 0 0 var(--line)}
.rv-mx td:first-child{z-index:1}
.rv-mx tbody tr:hover td{background:var(--surface-2)}
.rv-cell{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:6px}a.rv-cell:hover{background:color-mix(in srgb,var(--st) 18%,transparent)}
.rv-cell .rv-dot{width:10px;height:10px}.rv-cell.st-declined .rv-dot{width:9px;height:9px}.rv-cell.st-none .rv-dot{width:8px;height:2px}
@media (max-width:900px){.rv-counts{grid-template-columns:1fr 1fr}.rv-counts>.rv-adopt{grid-column:1/-1;border-bottom:1px solid var(--line)}.rv-counts>div:nth-child(4){border-left:0}.rv-counts>div:nth-child(n+4){border-top:1px solid var(--line)}
  .rv-legend{margin-left:0}.rv-latest li{grid-template-columns:1fr auto;gap:2px 10px}.rv-latest li>.ell{grid-column:1;grid-row:2;font-size:12px}.rv-latest li>.mini{grid-row:2;grid-column:2}.rv-price{margin-left:0}}
@media (max-width:600px){.rv-grid{grid-template-columns:1fr}.rv-mxbar .searchbox{min-width:0;flex:1 1 100%}.rv-scroll{max-height:70vh}.rv-mx td:first-child,.rv-mx th:first-child{max-width:150px}.rv-mx td:first-child b{overflow:hidden;text-overflow:ellipsis;display:block}
  .rv-tbl th:nth-child(2),.rv-tbl td:nth-child(2){display:none}.rv-fh .btn{width:100%;justify-content:center}}
/* ===== end recs-v2 ===== */
/* as-of strip in plain type */
.asof{font-family:inherit;font-size:12.5px;color:var(--ink-soft)}
.asof i{font-size:12px;letter-spacing:0;text-transform:none;color:var(--ink-faint);margin-right:4px}
.asof .mono{font-size:11.5px}
/* ===== portal type: small labels in the body font, sentence case (the console keeps its mono labels) ===== */
.papp :is(.navh,.kpi .l,.tbl th,.stat .l,.kcol h4,.int-tbl .int-group td,.calc-h,.lab-tbl th,.pr-h,.eyebrow-m,.lab-btn,.ins-b,.dd-modal .dd-sec,.dd-gapl,.cmdk-g,.plan-model,.envtag){
  font-family:var(--font-body,inherit);letter-spacing:.01em;text-transform:none;font-size:12px;font-weight:600}
.papp :is(.eyebrow-m,.lab-btn,.ins-b,.plan-model,.envtag){display:inline-block}
.papp :is(.navh,.kpi .l,.tbl th,.stat .l,.kcol h4,.int-tbl .int-group td,.calc-h,.lab-tbl th,.pr-h,.eyebrow-m,.lab-btn,.ins-b,.dd-modal .dd-sec,.dd-gapl,.cmdk-g,.plan-model,.envtag)::first-letter{text-transform:uppercase}
.papp .tbl th{font-size:12px;color:var(--ink-soft)}
/* ===== end portal type ===== */
/* calendar filters on phones: client select full width, event types in one scrolling row */
@media (max-width:700px){.cal-filt{display:flex;flex-direction:column;align-items:stretch;gap:10px;min-width:0;max-width:100%}.cal-filt>select{width:100%}.cal-filt .kindpick{min-width:0;max-width:100%;width:100%}
.cal-filt .kindpick{display:flex;flex-wrap:nowrap;overflow-x:auto;gap:6px;padding-bottom:4px;-webkit-mask-image:linear-gradient(90deg,#000 88%,transparent);mask-image:linear-gradient(90deg,#000 88%,transparent)}
.cal-filt .kindpick .kp{white-space:nowrap;flex:0 0 auto}}
/* ===== forecast ===== */
.fc-sw,.fc-seg,.fc-mini>span{background:color-mix(in srgb,var(--accent) var(--sh,100%),var(--surface))}
.fc-sw{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.fc-mix{display:flex;gap:12px;font-size:15px!important}.fc-mix span{display:inline-flex;align-items:center}
.fc-card{margin-top:16px}
.fc-h{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:14px}.fc-h h3{margin:0}
.fc-legend{display:flex;gap:6px;flex-wrap:wrap}
.fc-legend a{display:inline-flex;align-items:center;gap:2px;font-size:12.5px;color:var(--ink-soft);text-decoration:none;border:1px solid var(--edge);border-radius:999px;padding:4px 10px}
.fc-legend a b{margin-left:6px;color:var(--ink)}.fc-legend a.on{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}.fc-legend a.dim{opacity:.55}
.fc-chart{display:grid;grid-template-columns:repeat(12,1fr);gap:8px;height:230px;align-items:end;padding-top:6px}
.fc-col{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;min-width:0}
.fc-v{font-size:11.5px;color:var(--ink-soft);margin-bottom:4px;white-space:nowrap}
.fc-bar{width:100%;max-width:46px;display:flex;flex-direction:column;gap:2px;border-radius:6px 6px 2px 2px;overflow:hidden}
.fc-seg{display:block;min-height:3px}.fc-seg.dim{opacity:.25}
.fc-l{font-size:12px;color:var(--ink-faint);margin-top:6px;text-align:center;line-height:1.2}.fc-l small{display:block;font-size:10.5px}
.fc-tbl-card{margin-top:16px}.fc-th{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:16px 18px 6px}.fc-th h3{margin:0}
.fc-tbl td{vertical-align:middle}.fc-mini{display:flex;gap:2px;width:90px;height:8px;border-radius:999px;overflow:hidden;background:var(--line)}
.fc-foot{padding:10px 18px;border-top:1px solid var(--line);text-align:center}
@media (max-width:700px){.fc-chart{gap:3px;height:180px}.fc-v{display:none}.fc-mixh,.fc-mixc{display:none}}
@media print{.fc-legend a{border:0}.fc-more{display:table-row!important}.fc-foot{display:none}}
/* ===== end forecast ===== */
.fc-u{font-size:10.5px;font-weight:600;color:var(--ink-soft);background:var(--surface-2);border:1px solid var(--edge);border-radius:999px;padding:0 6px;margin-bottom:4px}
.fc-due{color:var(--warn,#b7791f);font-weight:600}
.fc-mix{gap:14px}
/* renewals: the next 13 weeks */
.lc-weeks{margin-bottom:14px}.lc-wh{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:8px}.lc-wh h3{margin:0}
.lc-weeks .ch-cols{height:150px}.lc-weeks .ch-l{font-size:11px;white-space:nowrap}
@media (max-width:700px){.lc-weeks .ch-l{font-size:9.5px}.lc-weeks .ch-v{font-size:10px}}
/* receipts: the finding reference as a quiet tag, not big mono text */
.papp td.mono.nowrap{font-size:12px;color:var(--ink-soft)}

/* agreement templates: one column, steps strip, aligned baseline cards */
.tplx .ph{margin-bottom:18px}
.tplx-steps{list-style:none;margin:0 0 18px;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border:1px solid var(--edge);border-radius:14px;background:var(--surface);overflow:hidden}
.tplx-steps li{display:flex;gap:12px;padding:14px 16px;min-width:0}
.tplx-steps li+li{border-left:1px solid var(--line)}
.tplx-steps span{flex:none;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:600;background:var(--accent-soft);color:var(--accent-text,var(--accent))}
.tplx-steps b{font-size:13px}.tplx-steps p{margin:2px 0 0;font-size:12px;line-height:1.45;color:var(--ink-faint)}
.tplx-sec{margin-bottom:16px}
.tplx-h{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}.tplx-h h3{margin:0}
.tplx-empty{display:flex;align-items:center;gap:14px;padding:16px 18px;border:1px dashed var(--edge);border-radius:12px;background:var(--surface-2)}
.tplx-empty>div{flex:1;min-width:0}.tplx-empty p{margin:2px 0 0}
.tplx-ic{flex:none;width:40px;height:40px;border-radius:10px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent-text,var(--accent))}
.tplx-list{display:flex;flex-direction:column;border:1px solid var(--edge);border-radius:12px;overflow:hidden}
.tplx-row{display:grid;grid-template-columns:52px minmax(0,1fr) auto;gap:16px;align-items:center;padding:14px 16px;background:var(--surface-2)}
.tplx-row+.tplx-row{border-top:1px solid var(--line)}
.tplx-row:hover{background:color-mix(in srgb,var(--accent) 4%,var(--surface-2))}
.tplx-code{justify-self:start;font-size:10.5px;font-weight:600;letter-spacing:.04em;padding:3px 7px;border-radius:5px;background:color-mix(in srgb,var(--ink) 7%,transparent);color:var(--ink-soft)}
.tplx-t{font-weight:600;font-size:14px;line-height:1.3;color:var(--ink);text-decoration:none}.tplx-t:hover{color:var(--accent-text,var(--accent))}
.tplx-txt p{margin:2px 0 0;font-size:12.5px;line-height:1.5;color:var(--ink-faint);max-width:760px}
.tplx-a{display:flex;gap:6px;align-items:center;white-space:nowrap}.tplx-a form{display:contents}
@media (max-width:700px){.tplx-row{grid-template-columns:minmax(0,1fr);gap:8px}.tplx-a{margin-left:-8px}}
.tplx-fields{font-size:13px;color:var(--ink-soft)}
.tplx-fields summary{cursor:pointer;display:inline-flex;align-items:center;gap:6px;font-weight:500;padding:4px 0}
.tplx-fields p{margin:6px 0 0;line-height:1.7;max-width:820px}
.tplx-fields code{font-family:"IBM Plex Mono",monospace;font-size:11.5px;padding:1px 6px;border-radius:5px;background:var(--surface-2);border:1px solid var(--line);white-space:nowrap}
@media (max-width:900px){.tplx-steps{grid-template-columns:repeat(2,minmax(0,1fr))}.tplx-steps li:nth-child(3){border-left:0}.tplx-steps li:nth-child(n+3){border-top:1px solid var(--line)}}
@media (max-width:700px){.tplx-steps{grid-template-columns:1fr}.tplx-steps li+li{border-left:0;border-top:1px solid var(--line)}.tplx-empty{display:grid;grid-template-columns:40px minmax(0,1fr);align-items:start}.tplx-empty .btn{grid-column:1/-1;justify-content:center}}
.side .nav.rl-flat{padding-top:6px}
.tplpick-h{font-size:11.5px;font-weight:600;color:var(--ink-faint);margin:6px 0 -2px}.tplpick-h:first-child{margin-top:0}
.tplx-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 16px}
.tplx-tabs a{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;border:1px solid var(--edge);background:var(--surface);color:var(--ink-soft);font-size:13px;font-weight:500;text-decoration:none}
.tplx-tabs a:hover{color:var(--ink);border-color:color-mix(in srgb,var(--ink) 25%,var(--edge))}
.tplx-tabs a.on{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.tplx-tabs a span{font-size:11px;opacity:.7}
.tplx-gh{display:flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;color:var(--ink-soft);margin:16px 0 8px}.tplx-h+.tplx-gh{margin-top:0}
@media (max-width:700px){.tplx-tabs{flex-wrap:nowrap;overflow-x:auto;margin-left:-16px;margin-right:-16px;padding:0 16px}.tplx-tabs a{flex:none}}
/* file holder: the lab's file page in the portal's tokens */
.fh{border:1px solid var(--edge);border-radius:14px;background:var(--surface);overflow:hidden;box-shadow:var(--shadow)}
.fh-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px;padding:8px 14px;min-height:46px;background:var(--surface-2);border-bottom:1px solid var(--edge)}
.fh-name{display:flex;align-items:center;gap:8px;min-width:0;color:var(--ink-soft)}.fh-name b{color:var(--ink);font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fh-acts{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.fh-switch{display:inline-flex;border:1px solid var(--edge);border-radius:8px;overflow:hidden}
.fh-switch a{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;font-size:12px;font-weight:500;color:var(--ink-soft);text-decoration:none}
.fh-switch a+a{border-left:1px solid var(--edge)}.fh-switch a.on{background:var(--surface);color:var(--ink);box-shadow:inset 0 -2px 0 var(--accent)}
.fh-group{display:flex;flex-wrap:wrap;gap:2px}
.fh-a{display:inline-flex;align-items:center;gap:5px;padding:4px 8px;border:0;border-radius:7px;background:none;font:inherit;font-size:12px;font-weight:500;color:var(--ink-soft);text-decoration:none;cursor:pointer}
.fh-a:hover,.fh-a.on{background:color-mix(in srgb,var(--ink) 6%,transparent);color:var(--ink)}
.fh-body.fh-md{padding:20px 22px}
@media (min-width:821px){.fh-body.fh-md{padding:28px 34px}}
.fh-body.fh-plain{padding:0}
.fh-src{width:100%;border-collapse:collapse;font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:12px;line-height:1.6}
.fh-src td{padding:0 10px;vertical-align:top}
.fh-n{width:1%;white-space:nowrap;text-align:right;color:var(--ink-faint);user-select:none;border-right:1px solid var(--line)}.fh-n a{color:inherit;text-decoration:none}
.fh-l{white-space:pre-wrap;overflow-wrap:anywhere;color:var(--ink)}
.fh-src tr:target{background:var(--accent-soft)}
.fh-dif .fh-s{width:1%;user-select:none;color:var(--ink-faint);padding:0 4px}
.fh-dif tr.add{background:color-mix(in srgb,var(--accent) 11%,transparent)}.fh-dif tr.add .fh-s{color:var(--accent-text,var(--accent))}
.fh-dif tr.del{background:color-mix(in srgb,var(--danger,#B42318) 10%,transparent)}.fh-dif tr.del .fh-s{color:var(--danger,#B42318)}
.fh-gap{padding:2px 14px;font-size:11px;color:var(--ink-faint);background:var(--surface-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.fh-line{font-size:13px;color:var(--ink-soft);margin:0 0 12px;line-height:1.55}.fh-line b{color:var(--ink);font-weight:600}
.fh-vers tr.on td{background:var(--accent-soft)}
.fh-meta{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:12px;color:var(--ink-faint);margin:10px 0 0}
@media (max-width:700px){.fh-bar{padding:8px 10px}.fh-acts{width:100%;justify-content:space-between}}
@media print{.fh{border:0;box-shadow:none}.fh-bar,.app .side,.topbar,.askdock,.pagetabs,.ph .actions{display:none!important}.fh-body.fh-md{padding:0}}
.doc-h{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin:0 0 6px}.doc-h h2{margin:0;font-size:20px}
.fh-sum{padding:8px 14px;font-size:12px;color:var(--ink-faint);border-bottom:1px solid var(--line)}.fh-sum .add{color:var(--accent-text,var(--accent));font-weight:600}.fh-sum .del{color:var(--danger,#B42318);font-weight:600}
/* menu pane slide: hidden is a zero-width pane (not display:none) so it can slide, within a page and from one page to the next */
@media (min-width:821px){
  .app.rl .rl-pane{transition:width .26s cubic-bezier(.2,.7,.2,1),padding .26s cubic-bezier(.2,.7,.2,1),opacity .2s ease,visibility 0s}
  .app.rl .rl-pane>*{min-width:200px}
  .app.rl .rl-pane>.rl-wide{min-width:272px}
  html.rl-collapsed .app.rl .rl-pane,.app.rl.rl-nopane .rl-pane{display:flex;width:0;padding-left:0;padding-right:0;opacity:0;visibility:hidden;
    transition:width .26s cubic-bezier(.2,.7,.2,1),padding .26s cubic-bezier(.2,.7,.2,1),opacity .14s ease,visibility 0s .26s}
  .app.rl .rl-rail{transition:border-color .26s}
  html.rl-from .app.rl .rl-pane{width:var(--rl-from)!important;transition:none!important;visibility:visible!important;opacity:1!important;
    padding-left:min(10px,calc(var(--rl-from) / 22))!important;padding-right:min(10px,calc(var(--rl-from) / 22))!important}
  html.rl-from .app.rl .main,html.rl-from .app.rl .rl-rail{transition:none!important}
}
@media (min-width:821px) and (prefers-reduced-motion:reduce){.app.rl .rl-pane,html.rl-collapsed .app.rl .rl-pane,.app.rl.rl-nopane .rl-pane{transition:none}}
.pj-docs{margin-top:16px}
.pj-docs .dd-ch{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.pj-docs-a{display:flex;gap:6px;flex-wrap:wrap}.pj-docs-a form{margin:0}
.pj-doclist{margin-top:10px;border:1px solid var(--edge);border-radius:12px;overflow:hidden}
.pj-doc{display:flex;align-items:center;gap:12px;padding:10px 12px;background:var(--surface-2)}.pj-doc+.pj-doc{border-top:1px solid var(--line)}
.pj-doc-ic{flex:none;width:30px;height:30px;border-radius:8px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent-text,var(--accent))}
.pj-doc-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.pj-doc-t a{color:var(--ink);text-decoration:none}.pj-doc-t a:hover{color:var(--accent-text,var(--accent))}
.pj-doc-t .mini{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pj-doc-x{margin:0}.pj-docs-empty{margin-top:8px;max-width:760px}
.doc-app{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}
.lnk-box{display:flex;gap:16px;align-items:flex-start}.lnk-box p{margin:4px 0 10px;max-width:620px}
.lnk-app{flex:none;width:48px;height:48px;border-radius:12px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent-text,var(--accent))}
.lnk-url{font-size:12px;overflow-wrap:anywhere;color:var(--ink-soft)}
.lic-ppl-link{display:flex;align-items:center;gap:10px;margin-top:16px;padding:14px 16px;border:1px solid var(--edge);border-radius:12px;background:var(--surface);color:var(--ink);text-decoration:none}
.lic-ppl-link:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--edge))}.lic-ppl-link .mini{flex:1}
.lic-needs{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.lic-needs li{display:flex;gap:10px;align-items:flex-start}.lic-needs li>div{display:flex;flex-direction:column;gap:1px;min-width:0}
.lic-needs b{font-size:13px}.lic-needs li.no b{color:var(--ink-soft);font-weight:500}
.ln-m{flex:none;width:18px;height:18px;margin-top:1px;border-radius:5px;display:grid;place-items:center;border:1px solid var(--edge);color:var(--on-accent)}
.lic-needs li.yes .ln-m{background:var(--accent);border-color:var(--accent)}
/* brand life: the accent colour has jobs (attention, counts, gaps) and the primary tints icons and headline numbers */
.papp .nav a .badge:not(.bad){background:var(--accent2);color:var(--on-accent2)}
.papp .rl-dot{background:var(--accent2)}
.papp .card>h3>svg:first-child,.papp .card>.dd-ch>h3>svg:first-child,.papp section.card>h3>svg:first-child{box-sizing:border-box;width:26px;height:26px;padding:5px;border-radius:8px;background:var(--accent-soft);color:var(--accent-text);flex:none}
.papp .kpi::after{content:"";position:absolute;left:18px;top:0;width:28px;height:3px;border-radius:0 0 3px 3px;background:var(--accent2)}
.papp .ch-bar:not(.mut){background:linear-gradient(180deg,var(--accent2) 0 3px,var(--accent) 3px)}
.papp .eyebrow{color:var(--accent-text)}
.av{overflow:hidden}.av img{width:100%;height:100%;object-fit:cover;display:block}
.av.sm{width:28px;height:28px;font-size:11px}.av.xl{width:72px;height:72px;font-size:24px}
.who-row{display:flex;align-items:center;gap:10px}
.pf-photo{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.pf-photo form{margin:0}.pf-photo .mini{max-width:420px}
/* several status marks in one cell stack instead of running together */
.st-stack{display:flex;flex-direction:column;align-items:flex-start;gap:5px}
td>.pr-st+.pr-st,span.pr-st+span.pr-st{margin-left:12px}
.st-stack>.pr-st+.pr-st{margin-left:0}
/* cost forecast charts */
.bd-charts{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:16px;margin:0 0 16px}
.bd-chart{position:relative}.bd-chart .fc-col{position:relative}
.bd-sv{display:block;width:60%;max-width:30px;margin-top:2px;border-radius:0 0 4px 4px;background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--accent2) 55%,transparent) 0 3px,transparent 3px 6px);border:1px solid color-mix(in srgb,var(--accent2) 60%,transparent);border-top:0}
.bd-sv[style*="height:0"],.bd-sv[style*="height:0.0"]{display:none}
.bd-sv-sw{background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--accent2) 55%,transparent) 0 2px,transparent 2px 4px);border:1px solid color-mix(in srgb,var(--accent2) 60%,transparent)}
.bd-stack{display:flex;height:14px;border-radius:7px;overflow:hidden;gap:2px;margin:12px 0}
.bd-keys,.bd-lines{list-style:none;margin:0;padding:0;display:grid;gap:7px}
.bd-keys li{display:grid;grid-template-columns:auto minmax(0,1fr) auto 38px;align-items:center;gap:6px;font-size:12.5px}
.bd-keys b{font-weight:600}.bd-keys em{font-style:normal;color:var(--ink-faint);text-align:right;font-size:11.5px}
.bd-h4{font-size:12px;font-weight:600;color:var(--ink-soft);margin:16px 0 8px}
.bd-lines li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 10px;font-size:12.5px}.bd-lines b{font-weight:600}
.bd-lbar{grid-column:1/-1;height:5px;border-radius:3px;background:var(--line);overflow:hidden}.bd-lbar i{display:block;height:100%;background:var(--accent);border-radius:3px}
@media (max-width:1000px){.bd-charts{grid-template-columns:minmax(0,1fr)}}
/* calendar: the month grid gets the full width, the next 60 days sit underneath in day columns */
.calwrap{grid-template-columns:minmax(0,1fr)}
.agenda.agenda-wide{position:static;max-height:none;overflow:visible;margin-top:16px}
.ag-top{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}
.ag-days{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:4px 22px;align-items:start}
.ag-day{min-width:0}.ag-day .ag-d{padding-top:12px}
.ag-more summary{cursor:pointer;list-style:none;font-size:12px;font-weight:500;color:var(--accent-text,var(--accent));padding:6px 22px}.ag-more summary::-webkit-details-marker{display:none}
.ag-more[open] summary{display:none}
/* partner access: one card of fixes, the relationships behind each a click away */
.fx-card{padding:0;overflow:hidden;margin-bottom:16px}
.fx-h{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:16px 18px 12px;flex-wrap:wrap}.fx-h h3{margin:0}
.fx-row{border-top:1px solid var(--line)}
.fx-row>summary{list-style:none;display:grid;grid-template-columns:76px minmax(0,1fr) auto;align-items:center;gap:14px;padding:12px 18px;cursor:pointer}
.fx-row>summary::-webkit-details-marker{display:none}.fx-row>summary:hover{background:var(--surface-2)}
.fx-sev{justify-self:start;font-size:11px;font-weight:600;text-transform:capitalize;padding:2px 9px;border-radius:999px;background:color-mix(in srgb,var(--ink) 7%,transparent);color:var(--ink-soft)}
.fx-high .fx-sev{background:var(--accent2-soft,color-mix(in srgb,var(--accent2) 18%,transparent));color:var(--accent2-ink,var(--ink))}
.fx-medium .fx-sev{background:var(--accent-soft);color:var(--accent-text,var(--accent))}
.fx-t{font-size:13.5px;font-weight:500;line-height:1.45;color:var(--ink)}
.fx-n{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-soft);white-space:nowrap}
.fx-chev{transform:rotate(90deg);transition:transform .15s}.fx-row[open] .fx-chev{transform:rotate(-90deg)}
.fx-items{list-style:none;margin:0;padding:4px 18px 14px 108px;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:6px 20px}
.fx-items li{display:flex;flex-direction:column;min-width:0;font-size:12.5px}.fx-items .mini{color:var(--ink-faint)}
@media (max-width:700px){.fx-row>summary{grid-template-columns:minmax(0,1fr) auto}.fx-sev{grid-column:1/-1}.fx-items{padding-left:18px}}
.gd-priv{color:var(--accent2-ink,var(--ink));font-weight:600}
.gd-grp{display:inline-flex;align-items:center;gap:5px;margin:0 6px 4px 0;padding:2px 8px;border-radius:999px;background:var(--surface-2);border:1px solid var(--line);font-weight:500;color:var(--ink-soft)}
.gd-grp em{font-style:normal;font-size:10.5px;color:var(--ink-faint)}
/* settings pages: sections with an icon, a little more room, bigger fields */
.set-form .fsec{grid-template-columns:280px minmax(0,1fr);gap:40px;padding:30px 32px}
.set-form .fsec:first-child{border-top:0}
.fsec-h{display:flex;gap:12px;align-items:flex-start}.fsec-h:not(:has(.fsec-ic)){display:block}
.fsec-ic{flex:none;width:32px;height:32px;border-radius:9px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent-text,var(--accent))}
.set-form .fsec-h h3{font-size:15px}.set-form .fsec-b{gap:18px}
.set-form .f input:not([type=checkbox]):not([type=radio]):not([type=color]):not([type=file]),.set-form .f select{min-height:42px;font-size:14px}
.color-pair{display:flex;gap:8px}.color-pair input[type=color]{width:46px;min-height:42px;padding:3px;border-radius:9px}
.logo-row{display:flex;gap:20px;align-items:flex-start;flex-wrap:wrap}
.logo-prev{flex:none;width:96px;height:96px;border-radius:20px;display:grid;place-items:center;overflow:hidden;background:var(--lp);font:700 30px var(--font-head,inherit);box-shadow:0 0 0 1px var(--edge)}
.logo-prev img{width:100%;height:100%;object-fit:contain;background:var(--surface)}
.logo-side{display:flex;flex-direction:column;gap:4px;min-width:0;max-width:440px}
@media (max-width:900px){.set-form .fsec{grid-template-columns:1fr;gap:14px;padding:22px 20px}}
/* v1.0.41 calendar: Next 60 days as a table, by week */
.agenda-tbl .ag-top{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}
.ag-wk{display:flex;align-items:baseline;gap:8px;margin:18px 0 6px;padding:0 2px}
.ag-wk b{font-size:13px;letter-spacing:.02em}
.ag-table{table-layout:fixed;width:100%}
.ag-table td{padding:8px 10px;vertical-align:middle;border-top:1px solid var(--edge)}
.ag-table tr.ag-r:not(.first) td{border-top-color:transparent}
.ag-table tr.ag-r:not(.first) td:not(.ag-when){border-top:1px dashed color-mix(in srgb,var(--edge) 60%,transparent)}
.ag-table tr.ag-r{cursor:pointer}
.ag-table tr.ag-r:hover td{background:var(--accent-soft)}
.ag-when b{display:block;font-size:13px}.ag-when .mini{display:block}
.is-today .ag-when b{color:var(--accent-text,var(--accent))}
.ag-what{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px;color:var(--ink-soft)}
.ag-what .evd{display:inline-block;margin-right:8px;vertical-align:middle}
.ag-item a{display:block;color:var(--ink);font-weight:600;text-decoration:none}
.ag-cl{font-size:13px}
.ag-flag{text-align:right}
.ag-later{margin-top:18px;border-top:1px solid var(--edge);padding-top:6px}
.ag-later>summary{cursor:pointer;display:flex;gap:8px;align-items:baseline;padding:10px 2px;list-style:none}
.ag-later>summary::before{content:"\25B8";color:var(--ink-soft);transition:transform .15s}
.ag-later[open]>summary::before{transform:rotate(90deg)}
@media (max-width:900px){.ag-table col:nth-child(5),.ag-table td.ag-det,.ag-table th:nth-child(5){display:none}}
.ag-table td>.ell,.ag-item a{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ag-table td.ag-item a{font-weight:600}
.logo-side .hint{font-size:12.5px;line-height:1.45;color:var(--ink-soft)}.logo-side .check-row{font-size:13px}
/* v1.0.43 notifications: the bell, your name top right, the pop-up */
.top .right{display:flex;align-items:center;gap:8px}
.bell{position:relative}
.bell>summary{list-style:none}.bell>summary::-webkit-details-marker{display:none}
.bell-btn{position:relative;display:grid;place-items:center;width:36px;height:36px;border-radius:10px;cursor:pointer;color:var(--ink-soft);border:1px solid transparent;transition:background .15s,color .15s}
.bell-btn:hover,.bell[open] .bell-btn{background:var(--surface-2);color:var(--ink);border-color:var(--edge)}
.bell-n{position:absolute;top:2px;right:1px;min-width:17px;height:17px;padding:0 4px;border-radius:9px;background:var(--accent2,var(--accent));color:var(--on-accent2,#fff);font:700 10px/17px var(--font-body);text-align:center;box-shadow:0 0 0 2px var(--surface)}
.bell-pop{position:absolute;right:0;top:calc(100% + 8px);width:min(400px,calc(100vw - 32px));background:var(--surface);border:1px solid var(--edge);border-radius:14px;box-shadow:0 18px 50px -20px rgba(0,0,0,.45);z-index:60;overflow:hidden}
.bell-h{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--line)}
.bell-h form{margin:0}
.bell-list{max-height:420px;overflow:auto}
.bell-i{display:flex;gap:10px;padding:11px 14px;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--line)}
.bell-i:hover{background:var(--accent-soft)}
.bell-i .bell-t{display:flex;flex-direction:column;gap:2px;min-width:0}
.bell-i b{font-weight:500;font-size:13.5px;line-height:1.35}
.bell-i.unread b{font-weight:650}
.bell-i .mini{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.bell-i:not(.unread){opacity:.78}
.bell-empty{padding:22px 16px;color:var(--ink-soft);font-size:13px;margin:0}
.bell-f{display:flex;justify-content:space-between;padding:10px 14px;font-size:13px;background:var(--surface-2)}
.bell-f a{display:inline-flex;gap:6px;align-items:center}
.nsev{flex:none;width:9px;height:9px;border-radius:50%;margin-top:5px;background:var(--accent-text,var(--accent))}
.nsev-ok{background:#22A06B}.nsev-warn{background:#D99A1E}.nsev-bad{background:#E5484D}
.me{display:inline-flex;align-items:center;gap:8px;padding:3px 10px 3px 3px;border-radius:20px;color:var(--ink);text-decoration:none;font-size:13.5px;font-weight:500;border:1px solid transparent}
.me:hover{background:var(--surface-2);border-color:var(--edge)}
.me .av.sm{width:30px;height:30px}
@media (max-width:700px){.me-n{display:none}.me{padding:3px}}
.ntoast{position:fixed;right:20px;bottom:20px;z-index:70;display:flex;gap:12px;align-items:flex-start;width:min(420px,calc(100vw - 32px));padding:14px 14px 14px 16px;background:var(--surface);border:1px solid var(--edge);border-left:4px solid #E5484D;border-radius:12px;box-shadow:0 20px 50px -18px rgba(0,0,0,.5);animation:ntoast-in .25s ease-out}
.ntoast-b{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}
.ntoast-b b{font-size:14px}
.ntoast-a{display:flex;gap:8px;margin-top:8px}
.ntoast-x{flex:none}
@keyframes ntoast-in{from{transform:translateY(12px);opacity:0}to{transform:none;opacity:1}}
@media (prefers-reduced-motion:reduce){.ntoast{animation:none}}
/* notifications page */
.nt-list{display:flex;flex-direction:column}
.nt-row{display:grid;grid-template-columns:14px minmax(0,1fr) auto;gap:12px;align-items:start;padding:14px 4px;border-top:1px solid var(--line);color:var(--ink);text-decoration:none}
.nt-row:first-child{border-top:0}
.nt-row:hover{background:var(--accent-soft)}
.nt-row b{font-weight:500}.nt-row.unread b{font-weight:650}
.nt-row .mini{display:block;margin-top:2px}
.nt-kind{font-size:12px;color:var(--ink-soft);white-space:nowrap}
.np-tbl td,.np-tbl th{padding:10px 8px;vertical-align:top}
.np-tbl td.c,.np-tbl th.c{text-align:center;width:70px}
.np-tbl b{display:block;font-weight:600;font-size:13.5px}
.nt-sep{width:1px;align-self:stretch;background:var(--edge);margin:2px 4px}
.bell-pop{text-align:left}.bell-i .bell-t{flex:1}
@media (min-width:821px){.jumpbtn.jb-rail{display:none}}
/* v1.0.44: bell sits level with the photo */
.bell{display:flex;align-items:center;height:38px}
.bell-btn{display:flex;align-items:center;justify-content:center;height:38px;width:38px}
.bell-btn svg{display:block;margin:0;vertical-align:middle}
.me{height:38px;box-sizing:border-box}
.me-n{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* v1.0.45: roomier bell */
.bell-pop{width:min(460px,calc(100vw - 32px));border-radius:16px}
.bell-h{padding:16px 22px}
.bell-h b{font-size:15px}
.bell-list{max-height:min(560px,calc(100vh - 200px))}
.bell-i{gap:12px;padding:14px 22px}
.bell-i b{font-size:14px}
.bell-i .nsev{margin-top:6px}
.bell-f{padding:13px 22px}
.bell-empty{padding:26px 22px}
/* v1.0.45: smoother page changes. Every menu is the same width, so going from Portal to Connections or Help doesn't
   grow or shrink the menu; the page crossfades instead of blinking (browsers with cross-document view transitions,
   which means current Chrome and Edge; others just load as before). */
@media (min-width:821px){
  .rl-pane,.rl-pane:has(> .rl-wide:not([hidden])){width:260px}
  .app.rl .rl-pane>.rl-wide{min-width:240px}
}
@view-transition{navigation:auto}
@media (min-width:821px){
  .rl-rail{view-transition-name:cnx-rail}
  .app.rl:not(.rl-nopane) .rl-pane{view-transition-name:cnx-pane}
  .main>.top{view-transition-name:cnx-top}
}
::view-transition-old(root),::view-transition-new(root){animation-duration:.16s;animation-timing-function:ease-out}
::view-transition-old(root){animation-name:cnx-vt-out}
::view-transition-new(root){animation-name:cnx-vt-in}
::view-transition-group(cnx-rail),::view-transition-group(cnx-top){animation-duration:0s}
::view-transition-old(cnx-pane),::view-transition-new(cnx-pane){animation-duration:.14s}
@keyframes cnx-vt-out{to{opacity:0}}
@keyframes cnx-vt-in{from{opacity:0;transform:translateY(4px)}}
@media (prefers-reduced-motion:reduce){@view-transition{navigation:none}}
/* v1.0.46: every menu a touch wider */
@media (min-width:821px){
  .rl-pane,.rl-pane:has(> .rl-wide:not([hidden])){width:288px}
  .app.rl .rl-pane>.rl-wide{min-width:268px}
}
/* v1.0.49: "powered by" sits centred in its strip at the bottom of the menu */
.rl-sec-portal .rl-pf{padding:0 10px;margin-bottom:-10px;min-height:48px;justify-content:center}
.rl-sec-portal .rl-pf .powered{padding:0 0 0 10px;margin:0;line-height:1}
/* change log */
.rl-log .rl-arts a{display:flex;gap:8px;align-items:baseline}
.rl-log .rl-arts a>span:first-child{flex:none;font-variant-numeric:tabular-nums;min-width:38px}
.rl-logt{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink-soft);font-size:12.5px}
.cl-entry{padding:18px 0;border-top:1px solid var(--line)}
.cl-entry:first-of-type{border-top:0}
.cl-h{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin:0 0 6px;font-size:18px}
.cl-h a{font-variant-numeric:tabular-nums;text-decoration:none}
.cl-t{font-weight:600}
.cl-d{margin-left:auto;font-size:13px;font-weight:400;color:var(--ink-soft)}
.cl-art .hc-body ul{margin-top:4px}
.cl-pn{margin-top:22px}
.np-mode{border:0;margin:12px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px 18px;align-items:center}
.np-mode legend{font-weight:600;font-size:13px;margin-bottom:4px;padding:0}
.np-mode .chk{display:inline-flex;gap:6px;align-items:center;font-size:13.5px}
.np-mode .mini{flex-basis:100%}
/* settings > email */
.mailpick{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.mailpick .mp{display:flex;flex-direction:column;gap:4px;padding:14px 16px;border:1px solid var(--edge);border-radius:12px;cursor:pointer;background:var(--surface)}
.mailpick .mp:has(input:checked){border-color:var(--accent);box-shadow:0 0 0 1px var(--accent);background:var(--accent-soft)}
.mailpick .mp input{position:absolute;opacity:0;pointer-events:none}
.mailpick .mp b{font-size:14px}
.mailprev{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;align-items:baseline;padding:12px 14px;border:1px dashed var(--edge);border-radius:10px;margin-bottom:8px}
.mailsteps{margin-top:6px}.mailsteps summary{cursor:pointer;font-weight:600;font-size:13.5px}
.mailsteps ol{margin:10px 0 0;padding-left:20px;font-size:13.5px;line-height:1.55}.mailsteps li{margin-bottom:8px}
.mailsteps pre{white-space:pre-wrap;word-break:break-all;font-size:12px;background:var(--surface-2);border:1px solid var(--line);border-radius:8px;padding:10px;margin:6px 0 0}
@media (max-width:900px){.mailpick{grid-template-columns:1fr}}
.tag.t-err{background:color-mix(in srgb,var(--danger) 16%,transparent);color:var(--danger)}
/* AI drafts */
.aid-card h3 .sub{margin-left:6px}
.aid{border:1px solid var(--edge);border-radius:12px;padding:12px 14px;margin-top:10px;background:var(--surface)}
.aid.aid-ready{border-color:color-mix(in srgb,var(--accent) 45%,var(--edge))}
.aid-h{display:flex;gap:10px;align-items:flex-start}
.aid-ic{flex:none;width:28px;height:28px;border-radius:8px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent-text,var(--accent))}
.aid-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.aid-a{display:flex;gap:6px;flex-wrap:wrap;margin:0}
.aid-asked{margin:8px 0 0 38px}
.aid-sum{margin:8px 0 0 38px;font-size:14px}
.aid-q{margin:8px 0 0 38px;font-size:13.5px}.aid-q ul{margin:4px 0 0;padding-left:18px}
.aid-body{margin:10px 0 0 38px}.aid-body summary{cursor:pointer;font-weight:600;font-size:13.5px}
.aid-body .prose{margin-top:8px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2);max-height:520px;overflow:auto}
/* AI on the assessment */
.aiq,.aiplan{display:flex;flex-wrap:wrap;gap:12px 16px;align-items:flex-start;justify-content:space-between;margin-bottom:14px;border-color:color-mix(in srgb,var(--accent) 28%,var(--edge))}
.aiq-t{display:flex;gap:10px;align-items:flex-start;flex:1 1 420px;min-width:0}.aiq-t p{margin:3px 0 0}.aiq-t b{font-size:14px}
.aiq-st{margin-top:6px!important}.aiq-a{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.aiq-a form{margin:0}
.q .conf.sug{display:block;color:var(--ink-soft)}.q .conf.sug svg{color:var(--accent-text,var(--accent));vertical-align:-1px}.q .conf.sug .linklike{margin-left:6px}
.aiplan-list{flex:1 1 100%;display:grid;gap:10px;margin-top:4px}
.aiplan-it{border:1px solid var(--edge);border-radius:12px;padding:12px 14px;background:var(--surface)}.aiplan-it.made{opacity:.75}
.aiplan-h{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center}.aiplan-h b{font-size:14px}.aiplan-h form,.aiplan-h a{margin-left:auto}
.aiplan-it p{margin:6px 0 0}.aiplan-sg{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px}
.aiplan-it details{margin-top:8px}.aiplan-it summary{cursor:pointer}.aiplan-it table{margin-top:6px}
.aiev{margin:2px 0 8px 46px;padding:8px 10px;border-radius:10px;border:1px solid var(--line);background:var(--surface-2)}
.aiev-h{display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center}.aiev p{margin:4px 0 0}.aiev ul{margin:4px 0 0;padding-left:18px}
.aiev-a{display:flex;gap:6px;margin:6px 0 0}
.aiev-supports{border-color:color-mix(in srgb,var(--ok) 40%,var(--line))}.aiev-supports .aiev-h b{color:var(--ok)}
.aiev-partly .aiev-h b{color:var(--warn)}.aiev-does_not_support{border-color:color-mix(in srgb,var(--danger) 35%,var(--line))}.aiev-does_not_support .aiev-h b{color:var(--danger)}
@media (max-width:700px){.aiev{margin-left:0}.aiplan-h form,.aiplan-h a{margin-left:0}}
/* a state tab row followed by a table toolbar: room between them (Ryan, 2026-10-13) */
.lab-tabs + .tb-bar,.lab-tabs + .lab-empty{margin-top:16px}
/* price book */
.pb-money{display:flex;align-items:center;border:1px solid var(--edge);border-radius:10px;background:var(--field,var(--surface-2));overflow:hidden}
.pb-money span{padding:0 10px;color:var(--ink-faint);font-size:13px}.pb-money input{border:0!important;background:transparent!important;box-shadow:none!important;margin:0;flex:1;min-width:0;padding-left:0}
.pb-pct input{padding-left:12px}.pb-money:focus-within{border-color:var(--accent)}
.copyrow{display:flex;gap:8px;align-items:flex-start}.copyrow .mono{flex:1;min-width:0}.copyrow .btn{flex:none}
/* an uploaded logo sits on its own, not on the primary colour tile (Ryan, 2026-10-13) */
.lg:has(> img),.logo-prev:has(> img){background:transparent!important;box-shadow:none}
.logo-prev:has(> img){box-shadow:0 0 0 1px var(--edge)}
.cx-map-tbl select{max-width:340px;width:100%}
/* connect a system: categories as rows of tiles, with a search (Ryan, 2026-10-13) */
.cat-q{display:flex;margin:0 0 12px;max-width:420px}.cat-q input{flex:1}
.catgrid.catrows{display:block}
.catrows .catcol{margin:0 0 14px}.catrows .catcol[hidden]{display:none}
.catrows .catcol-b{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px}
.catrows .catitem{margin:0;display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;min-height:56px}
.catrows .catitem>b+.tag,.catrows .catitem>.tag{float:none;margin-left:auto}
.catrows .catitem .mini{flex-basis:100%;margin-top:0}
/* onboarding board, tidier (Ryan, 2026-10-13): tick the box itself, a progress line per stage, roomier columns */
.ob-stages{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}
.ob-st{padding:14px 16px}.ob-st-done .ob-sn span{background:var(--accent-soft);border-color:transparent;color:var(--accent-text,var(--accent))}
.ob-sh{border-bottom:0!important;padding-bottom:8px}
.ob-sm{height:3px;border-radius:2px;background:var(--line);margin:0 0 4px;overflow:hidden}.ob-sm span{display:block;height:100%;background:var(--accent);border-radius:2px}
.ob-i{grid-template-columns:22px minmax(0,1fr) auto;padding:10px 0}
.ob-tick{margin:0}.ob-tick .ob-box{cursor:pointer;background:transparent;padding:0;color:transparent;width:18px;height:18px;border-radius:5px}
.ob-tick .ob-box:hover,.ob-tick .ob-box:focus-visible{border-color:var(--accent);color:var(--accent-text,var(--accent))}
.ob-box{width:18px;height:18px;border-radius:5px}
.ob-t .mini{margin-top:2px;line-height:1.45}
div.f{display:flex;flex-direction:column;gap:6px}.flabel{font-size:12px;color:var(--ink-soft);font-weight:500}
.loc-row{display:grid;grid-template-columns:minmax(120px,200px) minmax(0,1fr);gap:8px;margin-bottom:6px}.loc-row input{margin:0}@media (max-width:600px){.loc-row{grid-template-columns:1fr}}
.q-na-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.q-na-row input[type=text]{flex:1;min-width:200px}.q-na{display:inline-flex;gap:6px;align-items:center;font-size:12.5px;color:var(--ink-soft);white-space:nowrap}
.rmmrun{border-top:1px solid var(--line);margin-top:12px;padding-top:4px}
.m365-quick{border:1px solid color-mix(in srgb,var(--accent) 35%,var(--edge));border-radius:12px;padding:12px 14px;margin:0 0 12px;background:color-mix(in srgb,var(--accent) 5%,transparent)}
.m365-manual{margin:0 0 12px}.m365-manual summary{cursor:pointer}
.perm-list{display:flex;gap:8px;align-items:flex-start;margin-bottom:10px}.perm-list .mono{flex:1;line-height:1.7;word-break:break-word}
/* environment page, rebuilt (Ryan, 2026-10-13): numbers left, what needs attention right, the rest under Details */
.envc-list{display:grid;gap:14px}
.envc{padding:16px 18px}
.envc-h{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:12px}
.envc-t{display:flex;gap:10px;align-items:center}.envc-t h3{margin:0;font-size:15px}.envc-t .mini{display:block;margin-top:1px}
.envc-ic{flex:none;width:32px;height:32px;border-radius:9px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent-text,var(--accent))}
.envc-src{white-space:nowrap;color:var(--ink-soft);text-decoration:none}.envc-src:hover{color:var(--ink)}
.envc-b{display:grid;grid-template-columns:minmax(260px,340px) minmax(0,1fr);gap:20px;align-items:start}
.envc-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.envc-stat{padding:10px 12px;border-radius:10px;background:var(--surface-2);border:1px solid var(--line);min-width:0}
.envc-stat b{display:block;font:600 20px/1.15 var(--font-head);font-variant-numeric:tabular-nums}.envc-stat b small{font-size:12px;font-weight:500;color:var(--ink-faint)}
.envc-stat span{font-size:11.5px;color:var(--ink-faint);line-height:1.3;display:block;margin-top:2px}
.envc-stat.warn b{color:var(--accent2-ink,var(--warn))}.envc-stat.bad b{color:var(--danger)}
.envc-main h4{margin:0 0 8px;font-size:12px;font-weight:600;color:var(--ink-faint);letter-spacing:.02em}
.iss-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.iss{display:grid;grid-template-columns:10px minmax(0,1fr);gap:10px;align-items:start;font-size:13.5px}
.iss>i{width:8px;height:8px;border-radius:50%;margin-top:6px;background:var(--ink-faint)}
.iss-bad>i{background:var(--danger)}.iss-warn>i{background:var(--accent2)}.iss-ok>i{background:var(--accent)}
.iss .env-names{margin-top:4px}
.envc-more{margin-top:12px;border-top:1px solid var(--line);padding-top:8px}.envc-more summary{cursor:pointer;font-size:12.5px;color:var(--ink-soft)}
.envc-more .env-kv{margin-top:8px}
.env-adds{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px;margin-top:10px}
@media (max-width:860px){.envc-b{grid-template-columns:1fr}}
.kindpick,.kp{position:relative} /* the hidden checkboxes stay inside the scrolling row on phones */
.aiplan>p.mini{flex:1 1 100%;margin:4px 0 0!important}

/* connection health dots: the one place the portal uses green and red (Ryan, Oct 13) */
/* 10px with a 2px ring in a lighter tint of the dot's own colour, so green and red tell apart at a glance on either theme */
.hd{display:inline-block;flex:none;width:10px;height:10px;border-radius:50%;margin:0 5px;background:var(--ink-faint);box-shadow:0 0 0 2px color-mix(in srgb,var(--ink-faint) 30%,transparent)}
.hd-ok{background:var(--health-ok,#2E9E6A);box-shadow:0 0 0 2px color-mix(in srgb,var(--health-ok,#2E9E6A) 32%,transparent)}.hd-bad{background:var(--danger,#D9534F);box-shadow:0 0 0 2px color-mix(in srgb,var(--danger,#D9534F) 32%,transparent)}
.hd-wait{background:none;box-shadow:inset 0 0 0 1.5px var(--ink-faint)}
.hd-st{display:inline-flex;align-items:center;gap:2px}
/* calendar: Coming up, in chunks by week, month, quarter or year */
.agenda.ahead{position:static;max-height:none;overflow:visible;margin-top:16px}
.ahead .ag-top{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.ahead-list{display:grid;gap:2px;margin:4px 0 12px}
.ahead-c{display:block;border-radius:9px;text-decoration:none;color:var(--ink)}
.ahead-c>summary,.ahead-c.one{display:grid;grid-template-columns:14px minmax(0,1fr) auto;gap:10px;align-items:center;padding:9px 10px;cursor:pointer;list-style:none;border-radius:9px}
.ahead-c>summary::-webkit-details-marker{display:none}
.ahead-c>summary:hover,.ahead-c.one:hover{background:var(--surface-2)}
.ahead-t{min-width:0;display:grid;gap:2px}.ahead-t .mini{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ahead-items{margin:0 0 8px 34px;padding:0;list-style:none;display:grid;gap:4px;font-size:13px}
.ahead-items a{color:var(--ink)}
@media (max-width:640px){.ahead-t .mini{white-space:normal}}
/* quarter plan */
.qp-counts{grid-template-columns:repeat(4,minmax(0,1fr))}.qp-counts a{text-decoration:none;color:inherit}
.qp-q,.qp-behind{margin-top:14px}
.qp-h{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}
.qp-money{display:flex;gap:14px;flex-wrap:wrap;font-size:13px;color:var(--ink-soft)}.qp-money b{color:var(--ink)}
.qp-g{margin-top:12px}.qp-gl{font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:4px}
.qp-r{display:grid;grid-template-columns:64px minmax(0,1fr) 110px 150px;gap:10px;align-items:center;padding:7px 0;border-top:1px solid var(--line)}
.qp-t{min-width:0;display:grid;gap:2px}.qp-t a{color:var(--ink)}.qp-t .mini{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.qp-a{text-align:right;font-variant-numeric:tabular-nums}.qp-move select{width:100%;font-size:12.5px}
@media (max-width:760px){.qp-counts{grid-template-columns:repeat(2,minmax(0,1fr))}.qp-r{grid-template-columns:52px minmax(0,1fr) 84px}.qp-m{grid-column:2/-1}}
@media print{.qp-move{display:none}}
.qp-wave{border-top:1px solid var(--line);padding:8px 0}.qp-wave-h{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.qp-wave-move{margin-left:auto;width:170px}.qp-wave summary{cursor:pointer;margin-top:4px;color:var(--ink-soft)}
/* questionnaire: owner answers to check, help requests */
.qchk{margin-bottom:14px}.qchk-r{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;padding:7px 0;border-top:1px solid var(--line)}
.qchk-r .mini{grid-column:1}.qchk-r form{grid-row:1/3;grid-column:2;align-self:center}
.q-help{margin-top:6px;color:var(--ink-soft)}
.bgwait{display:flex;gap:10px;align-items:center;padding:10px 14px;margin:0 0 12px;border:1px solid var(--edge);border-radius:10px;background:var(--surface);font-size:13px}
.bgwait-dot{width:10px;height:10px;border-radius:50%;flex:none;border:2px solid var(--accent);border-top-color:transparent;animation:bgspin 1s linear infinite}
@keyframes bgspin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.bgwait-dot{animation:none;border-top-color:var(--accent)}}
.qp-split{margin:2px 0 0}.qp-a{display:flex;flex-direction:column;align-items:flex-end;gap:3px}.qp-st{font-size:10.5px}
.qp-proj .qp-t>a b{color:var(--accent)}.qp-mem summary{cursor:pointer;color:var(--ink-soft)}.qp-mem ul{margin:4px 0 0;padding-left:16px}.qp-mem li{white-space:normal}
.qp-propose{display:flex;gap:6px;align-items:center;margin-top:4px;flex-wrap:wrap}.qp-propose .in{flex:1 1 220px;min-width:0;max-width:360px;font-size:12.5px;padding:4px 8px}
@media print{.qp-propose{display:none}}

/* password Show button (app.js) */
.btn.pw-show{align-self:flex-end;justify-self:end;width:auto;margin-top:4px;height:24px;font-size:11px}
.pw-meter{display:flex;align-items:center;gap:8px;margin-top:4px;font-size:11px;color:var(--ink-soft)}
.pw-bar{flex:0 0 80px;height:4px;border-radius:2px;background:rgba(127,127,127,.25);overflow:hidden}.pw-bar i{display:block;height:100%;width:0;transition:width .15s}
.pw-meter[data-level="0"] .pw-bar i{width:15%;background:var(--bad)}.pw-meter[data-level="1"] .pw-bar i{width:40%;background:var(--bad)}
.pw-meter[data-level="2"] .pw-bar i{width:70%;background:var(--warn)}.pw-meter[data-level="3"] .pw-bar i{width:100%;background:var(--ok)}

/* Today (portal home, House Rules): three numbers, five rows, this week */
.kpis.today-kpis{grid-template-columns:repeat(3,1fr);margin-top:18px}
.today-kpis a.kpi{color:var(--ink);text-decoration:none}.today-kpis a.kpi:hover{border-color:var(--edge-2,var(--edge));background:var(--surface-2)}
.today-kpis .kpi .v .of{font-size:15px;font-weight:500;color:var(--ink-faint)}
.today-split{margin-top:18px;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr)}
.today-row{display:grid;grid-template-columns:32px minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 6px;border-bottom:1px solid var(--line);color:var(--ink);text-decoration:none;border-radius:8px}
.today-row:last-child{border-bottom:0}.today-row:hover{background:var(--surface-2)}.today-row .mini{display:block;margin-top:2px}
.today-foot{margin:18px 0 0;text-align:center}
@media (max-width:820px){.kpis.today-kpis{grid-template-columns:1fr!important}.today-split{grid-template-columns:1fr}}
.today-bad{color:var(--bad);font-weight:600}

/* Standards (My MSP standard) */
.std-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}
.std-card{display:flex;flex-direction:column;gap:6px}.std-h{display:flex;justify-content:space-between;align-items:center;gap:8px}
.std-n b{font:600 28px/1 var(--font-head)}.std-n span{color:var(--ink-faint)}
.std-a{display:flex;gap:6px;flex-wrap:wrap;margin-top:auto;padding-top:6px}.std-a form{display:flex;gap:6px;flex-wrap:wrap;margin:0}
.std-how{margin:8px 0 0;padding-left:20px;line-height:1.7}
.std-grp{margin-top:12px}.std-grp summary{cursor:pointer;display:flex;justify-content:space-between;gap:8px}
.std-list{display:grid;gap:2px;margin-top:10px}.std-row{display:grid;grid-template-columns:20px minmax(0,1fr);gap:10px;align-items:start;padding:8px 6px;border-radius:8px}
.std-row:hover{background:var(--surface-2)}.std-row .mini{display:block}
.tag.t-out{background:var(--surface-2);color:var(--ink-faint);border:1px dashed var(--edge)}
.scope-list{margin:6px 0 8px;padding-left:18px;columns:2;column-gap:24px;font-size:13px;line-height:1.6}@media (max-width:700px){.scope-list{columns:1}}

/* client status line (House Rules: one line, one next step) */
.status-line{display:flex;align-items:center;gap:12px;padding:12px 16px;border:1px solid var(--edge);border-radius:var(--radius);background:var(--surface);margin-bottom:14px}
.status-line .sl-dot{width:10px;height:10px;border-radius:50%;flex:none;background:var(--ok)}.status-line.sl-warn .sl-dot{background:var(--warn)}.status-line.sl-bad .sl-dot{background:var(--bad)}
.status-line .sl-t{flex:1;min-width:0}.status-line .sl-t span{color:var(--ink-soft)}.status-line.sl-bad{border-color:color-mix(in srgb,var(--bad) 35%,var(--edge))}
@media (max-width:600px){.status-line{flex-wrap:wrap}}

/* guided set-up (House Rules 7) */
.gd-meter{margin:0 0 16px}.gd{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:18px;align-items:start}
.gd-now p{margin:0 0 10px}.gd-a{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.gd-skip{margin-top:14px}
.gd-list{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.gd-list li{display:grid;grid-template-columns:26px minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 12px;border:1px solid var(--edge);border-radius:10px;background:var(--surface)}
.gd-list li .mini{display:block}.gd-list .gd-dot{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-size:12px;border:1px solid var(--edge)}
.gd-list li.done .gd-dot{background:var(--ok);color:#fff;border-color:var(--ok)}.gd-list li.done b{color:var(--ink-soft)}
.gd-list li.now{border-color:var(--accent)}.gd-list li.skip{opacity:.65}
@media (max-width:900px){.gd{grid-template-columns:1fr}}

/* the board's Status look (RMM-style): a mark per area, never colour alone */
.pf-look{display:flex;width:max-content;max-width:100%;margin-top:18px;border:1px solid var(--edge);border-radius:10px;overflow:hidden}.pf-look a{padding:7px 14px;font-size:13px;color:var(--ink-soft);text-decoration:none}.pf-look a.on{background:var(--surface-2);color:var(--ink);font-weight:600}
.pf-board .pb-st{text-align:center}.pf-board .pb-st a{display:inline-flex;align-items:center;gap:4px;min-width:44px;justify-content:center;padding:4px 8px;border-radius:8px;font-weight:700;text-decoration:none;font-size:13px}
.pf-board .pb-st a span{font-weight:500}.pf-board td.pb-st a.st-ok{color:var(--ok);background:color-mix(in srgb,var(--ok) 12%,transparent)}.pf-board td.pb-st a.st-warn{color:var(--warn);background:color-mix(in srgb,var(--warn) 14%,transparent)}.pf-board td.pb-st a.st-unknown{color:var(--ink-soft);background:var(--surface-2)}.pf-board td.pb-st a.st-bad{color:var(--bad);background:color-mix(in srgb,var(--bad) 14%,transparent)}
.pf-flags .chip-s{white-space:normal;max-width:100%;overflow-wrap:anywhere}
/* 1.0.92: a select as wide as the page (2,700px on an ultrawide) draws its option list that wide and Chrome cuts its left side off */
.q select{max-width:640px}
