
:root{--bg:#eef1f2;--panel:#fff;--ink:#14202b;--mute:#55636f;--line:#c5ced4;--steel:#2f5d7c;--amber:#d9951b;--tag:#e4e9ec;
box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#121a21;--panel:#1a252e;--ink:#e8eef2;--mute:#9aa9b4;--line:#34444f;--steel:#7fb2d3;--amber:#f0b44a;--tag:#243440}}
:root[data-theme="dark"]{--bg:#121a21;--panel:#1a252e;--ink:#e8eef2;--mute:#9aa9b4;--line:#34444f;--steel:#7fb2d3;--amber:#f0b44a;--tag:#243440}
html{scroll-behavior:smooth;scroll-padding-top:calc(64px + env(safe-area-inset-top,0px))}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.6 "IBM Plex Sans",system-ui,sans-serif}
h1,h2,h3{font-family:Archivo,"Helvetica Neue",Arial,sans-serif;line-height:1.1;margin:0}
a{color:inherit}
:focus-visible{outline:3px solid var(--amber);outline-offset:2px}
header{position:sticky;top:env(safe-area-inset-top,0px);z-index:5;background:var(--bg);border-bottom:2px solid var(--ink)}
nav{max-width:1100px;margin:auto;padding:0 20px;display:flex;align-items:center;gap:22px;height:64px}
.logo{font:800 20px Archivo,sans-serif;text-decoration:none;white-space:nowrap}
.logo span{color:var(--amber)}
.links{display:flex;gap:18px;overflow-x:auto;margin-left:auto;font-size:14px;scrollbar-width:none}
.links a{text-decoration:none;white-space:nowrap;padding:4px 0;border-bottom:2px solid transparent}
.links a:hover{border-color:var(--amber)}
section{max-width:1100px;margin:auto;padding:64px 20px 8px}
.hero{display:grid;grid-template-columns:1.1fr 1fr;gap:40px;align-items:center;padding-top:56px}
.hero h1{font-size:clamp(44px,8vw,88px);font-weight:800;letter-spacing:-.03em}
.hero p{max-width:52ch;color:var(--mute)}
.tags{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0}
.tags span{background:var(--tag);padding:3px 11px;font-size:13px;border-left:3px solid var(--steel)}
.drawing{background:var(--panel);border:1px solid var(--line);padding:12px}
.drawing svg{width:100%;height:auto;display:block}
.drawing text{font:12px "IBM Plex Sans",sans-serif;fill:var(--mute)}
.drawing .s{stroke:var(--ink);fill:none;stroke-width:2}
.drawing .a{stroke:var(--amber);fill:none;stroke-width:2.5}
.drawing .m{stroke:var(--steel);fill:rgba(47,93,124,.18);stroke-width:2}
.who{display:flex;gap:28px;flex-wrap:wrap;margin-top:8px;font-size:14px;color:var(--mute)}
h2{font-size:clamp(28px,4vw,40px);font-weight:800;margin-bottom:8px;padding-top:12px;border-top:2px solid var(--ink)}
.lead{color:var(--mute);max-width:62ch;margin:0 0 24px}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px}
.card{background:var(--panel);border:1px solid var(--line);border-top:4px solid var(--steel);padding:20px}
.card.g{border-top-color:var(--amber)}
.card h3{font-size:19px;margin-bottom:8px}
.card a.hd{text-decoration:none}
.card a.hd:hover{text-decoration:underline}
.card p{margin:0 0 10px;font-size:14px;color:var(--mute)}
ul.items{list-style:none;margin:0;padding:0}
ul.items li{padding:7px 0;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:8px;font-size:15px}
.soon{font-size:12px;background:var(--tag);padding:1px 8px;color:var(--mute);white-space:nowrap;align-self:center}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}
.chips button,.btn{font:500 14px "IBM Plex Sans",sans-serif;background:var(--panel);color:var(--ink);border:1px solid var(--ink);padding:7px 16px;cursor:pointer}
.chips button[aria-pressed="true"],.btn{background:var(--ink);color:var(--bg)}
.proj .cat{font-size:13px;color:var(--steel);font-weight:500;margin-bottom:4px}
input[type=search],input[type=text],input[type=email],textarea{width:100%;font:inherit;padding:12px 14px;border:1px solid var(--ink);background:var(--panel);color:var(--ink);border-radius:0}
.ref{background:var(--panel);border:1px solid var(--line);padding:14px 18px;margin-top:10px}
.ref b{font-family:Archivo,sans-serif}
.ref small{display:block;color:var(--mute)}
.empty{color:var(--mute);padding:14px 0}
form{display:grid;gap:12px;max-width:520px}
label{font-size:14px;font-weight:500;display:grid;gap:4px}
footer{max-width:1100px;margin:72px auto 0;padding:20px;border-top:2px solid var(--ink);font-size:13px;color:var(--mute);display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px}
.tabbar{max-width:1100px;margin:48px auto 0;padding:0 20px}
[role=tablist]{display:flex;flex-wrap:nowrap;gap:4px;overflow-x:auto;border-bottom:2px solid var(--ink);scrollbar-width:none}
[role=tab]{flex:none;font:700 15px Archivo,sans-serif;background:var(--tag);color:var(--ink);border:1px solid var(--line);border-bottom:0;padding:11px 18px;cursor:pointer;white-space:nowrap}
[role=tab][aria-selected="true"]{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.panel[hidden]{display:none}
.panel{padding-top:32px}
.panel h2{border-top:0;padding-top:0}
@media(max-width:800px){.hero{grid-template-columns:1fr}nav{gap:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.logo{display:flex;align-items:center;gap:10px}
.avatar{width:52px;height:52px;object-fit:contain;display:block}
.tags a{background:var(--tag);padding:5px 13px;font-size:15px;border-left:3px solid var(--steel);text-decoration:none;font-weight:500}
.tags a:hover{background:var(--ink);color:var(--bg)}
.tabbar{max-width:1100px;margin:28px auto 0;padding:0 20px}
.tabs{display:flex;gap:4px;overflow-x:auto;border-bottom:2px solid var(--ink);scrollbar-width:none}
.tabs a{flex:none;font:700 15px Archivo,sans-serif;background:var(--tag);color:var(--ink);border:1px solid var(--line);border-bottom:0;padding:11px 18px;text-decoration:none;white-space:nowrap}
.tabs a:hover{border-color:var(--ink)}
.tabs a[aria-current=page]{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.page{padding-top:32px}.page h2{border-top:0;padding-top:0}
.calc{background:var(--panel);border:1px solid var(--line);border-top:4px solid var(--steel);padding:24px;max-width:780px}
select{width:100%;font:inherit;padding:12px 14px;border:1px solid var(--ink);background:var(--panel);color:var(--ink);border-radius:0}
.row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin:14px 0}
.calc label{margin-bottom:14px}
input[aria-invalid=true]{border-color:var(--err);border-width:2px}
.err{color:var(--err);font-size:14px;margin:8px 0}
.note{color:var(--mute);font-size:14px;border-left:3px solid var(--amber);padding-left:12px}
.res{margin:16px 0 0;padding:0;list-style:none;border-top:2px solid var(--ink)}
.res li{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}
.res b{font-family:Archivo,sans-serif;white-space:nowrap}
.calc h3{margin:22px 0 4px;font-size:20px}
details{margin-top:18px;font-size:14px;color:var(--mute)}details pre{white-space:pre-wrap;font:13px/1.5 ui-monospace,monospace;background:var(--tag);padding:12px;margin:8px 0 0;color:var(--ink)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--err:#ff8a80}}
:root[data-theme="dark"]{--err:#ff8a80}
:root{--err:#b3261e}@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--err:#ff8a80}}:root[data-theme="dark"]{--err:#ff8a80}

/* ---- v2 edits ---- */
/* Home */
.hero.home{display:block}
.hero.home p{max-width:62ch}
.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:28px 0 8px;max-width:none;padding:0;height:auto}
.tiles a{display:block;border-radius:14px;overflow:hidden;line-height:0;background:#fff;transition:transform .15s,box-shadow .15s}
.tiles a:hover,.tiles a:focus-visible{transform:translateY(-3px);box-shadow:0 6px 16px rgba(0,0,0,.22)}
.tiles img{width:100%;height:auto;display:block}
@media(max-width:700px){.tiles{grid-template-columns:repeat(2,1fr);gap:10px}}
@media(prefers-reduced-motion:reduce){.tiles a{transition:none}}
/* Tabs: 6 in one row on desktop, 3 + 3 on phones */
.tabs{height:auto;max-width:none;padding:0;gap:4px;overflow:visible}
.tabs a{flex:1 1 0;text-align:center;white-space:normal;padding-left:8px;padding-right:8px}
@media(max-width:700px){
.tabbar{margin-top:16px;padding:0 12px}
.tabs{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:0}
.tabs a{display:flex;align-items:center;justify-content:center;font-size:13px;line-height:1.2;padding:10px 4px;border-bottom:1px solid var(--line)}
.tabs a[aria-current=page]{border-bottom-color:var(--ink)}
}
/* Structural calculator */
input[type=number]{width:100%;min-width:0;font:inherit;font-size:16px;padding:10px 10px;border:1px solid var(--ink);background:var(--panel);color:var(--ink);border-radius:0}
fieldset{border:0;padding:0;margin:0 0 16px;min-width:0}
legend{font-size:14px;font-weight:500;padding:0;margin-bottom:6px}
.radios{display:flex;flex-wrap:wrap;gap:10px}
.radios label{display:flex;align-items:center;gap:10px;flex-direction:row;border:1px solid var(--ink);padding:10px 18px;margin:0;cursor:pointer;font-size:16px}
.radios input{width:20px;height:20px;margin:0;accent-color:var(--steel)}
.radios label:has(input:checked){background:var(--tag);border-color:var(--steel);box-shadow:inset 0 0 0 1px var(--steel)}
.sketch{margin:4px 0 18px;background:#fff;border:1px solid var(--line);padding:8px}
.sketch img{width:100%;height:auto;display:block}
.row.c2{grid-template-columns:repeat(2,minmax(0,1fr))}
.row.c3{grid-template-columns:repeat(3,minmax(0,1fr))}
.row{gap:10px 12px}
.fld{display:grid;gap:4px;min-width:0}
.fld>label{margin:0!important;font-size:14px;font-weight:500;line-height:1.25}
.fld .inp{display:flex;align-items:center;gap:6px}
.fld .u{font-size:14px;color:var(--mute);white-space:nowrap}
.fld small{font-weight:400;color:var(--mute)}
.btn.calc-btn{font-size:16px;padding:12px 32px;margin:6px 0 4px}
.diag{margin:14px 0 0}
.diag figcaption{font:700 16px Archivo,sans-serif}
.diag figcaption small{font:400 13px "IBM Plex Sans",sans-serif;color:var(--mute);margin-left:6px}
.dg{background:var(--panel);border:1px solid var(--line);margin-top:6px;overflow:hidden}
.dg svg{display:block}
.dg .ax{stroke:var(--ink);stroke-width:1.5;fill:none}
.dg .fl{fill:rgba(47,93,124,.22);stroke:var(--steel);stroke-width:2;stroke-linejoin:round}
.dg .sp{fill:var(--bg);stroke:var(--ink);stroke-width:1.5}
.dg .st{stroke:var(--amber);stroke-width:2;stroke-dasharray:5 4}
.dg .sd{fill:var(--amber)}
.dg text{font:12px "IBM Plex Sans",sans-serif;fill:var(--ink)}
.dg text.m{fill:var(--mute)}
.res li span sub,.res li b sub,.pair sub{font-size:.75em}
.res b small{font:400 12px "IBM Plex Sans",sans-serif;color:var(--mute)}
.pair{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}
.pair b{font-family:Archivo,sans-serif;white-space:nowrap}
.calc h3.oh{margin-top:26px;padding-top:12px;border-top:2px solid var(--ink)}
@media(max-width:560px){.calc{padding:16px}.row{gap:10px 8px}.fld .u{font-size:12px}input[type=number]{padding:10px 6px}.radios label{padding:10px 14px}}
[hidden]{display:none!important}
#patSet{border:0;padding:0;margin:14px 0 0;min-width:0}
.tw{overflow-x:auto}
.ptab{border-collapse:collapse;width:100%;font-size:14px}
.ptab th,.ptab td{border-bottom:1px solid var(--line);padding:8px 8px;text-align:right;vertical-align:top}
.ptab th:first-child,.ptab td:first-child{text-align:left}
.ptab thead th{border-bottom:2px solid var(--ink);font-family:Archivo,sans-serif}
.ptab tr.gov td{font-weight:700;background:var(--tag)}
.ptab sub{font-size:.75em}
.fld sub{font-size:.75em}

/* ---- v3 edits ---- */
/* Home: BCA circulars (left) and construction news (right), desktop only */
.feed{display:none}
.wide nav{max-width:1440px}
@media (min-width:1180px){
.hero.home{display:grid;grid-template-columns:250px minmax(0,1fr) 250px;gap:36px;max-width:1440px;align-items:start;padding-top:28px}
.hero.home h1{font-size:56px}
.hero.home .hc>p{margin:10px 0 0}
.hero.home .tiles{margin:20px auto 0;gap:14px;max-width:max(420px,calc((100vh - 290px) * 1.55))}
.feed{display:block;position:sticky;top:calc(80px + env(safe-area-inset-top,0px));max-height:calc(100vh - 100px);overflow-y:auto;padding-top:6px;scrollbar-width:thin}
}
.feed .fh{font-size:17px;font-weight:700;padding:0 0 8px;margin:0;border-top:0;border-bottom:2px solid var(--ink)}
.feed:first-child .fh{border-bottom-color:var(--steel)}
.feed:last-child .fh{border-bottom-color:var(--amber)}
.fl{list-style:none;margin:0;padding:0}
.fl li{padding:9px 0;border-bottom:1px solid var(--line);display:grid;gap:2px}
.fl a{font-size:13.5px;line-height:1.35;text-decoration:none;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.fl a:hover{text-decoration:underline;color:var(--steel)}
.fmeta{font-size:12px;color:var(--mute);display:flex;gap:8px;align-items:center}
.fmeta b{font-weight:500;font-size:11px;background:var(--tag);color:var(--ink);padding:0 6px;border-left:2px solid var(--amber)}
.fe{font-size:13px;color:var(--mute)}
.fm{font-size:12px;color:var(--mute);margin:8px 0 0;display:grid;gap:2px}
.fm a{color:var(--steel)}

/* Structural calculator: aligned input/output grid */
.calc{max-width:880px;--fd:156px;--sw:54px;--bw:104px;--uw:46px}
.toprow{display:flex;flex-wrap:wrap;align-items:flex-end;gap:14px 40px;margin-bottom:14px}
.toprow fieldset{margin:0}
.supsel label{margin:0!important}
.supsel select{width:250px;max-width:100%;padding:10px 12px}
.sketch{max-width:480px;margin:6px auto 16px;background:var(--panel);padding:6px 8px}
.sketch svg{width:100%;height:auto;display:block}
.sketch text{font:12px "IBM Plex Sans",sans-serif;fill:var(--ink)}
.sketch text.dt{fill:var(--mute)}
.sketch text.lt{font-weight:500;fill:var(--amber)}
.sketch text.m{fill:var(--mute);font-size:11px}
.sketch .bm{fill:var(--tag);stroke:var(--ink);stroke-width:1.3}
.sketch .sl{stroke:var(--ink);stroke-width:1.5}
.sketch .hz{stroke:var(--ink);stroke-width:1}
.sketch .sp{fill:var(--panel);stroke:var(--ink);stroke-width:1.3}
.sketch .dm line{stroke:var(--mute);stroke-width:1}
.sketch .dm line.ex{stroke-width:.7;stroke-dasharray:2 2}
.sketch .ld line{stroke:var(--amber);stroke-width:2}
.sketch .ah{fill:var(--amber)}
.sketch .ub{fill:none;stroke:var(--amber);stroke-width:1.3}
.sketch .uh{stroke:var(--amber);stroke-width:.8}
.frow{display:grid;grid-template-columns:var(--fd) repeat(3,var(--sw) var(--bw) var(--uw));column-gap:6px;align-items:center;margin:10px 0}
.frow>*,.frow .g>*{grid-row:1}
.frow .g{display:contents}
.fd{grid-column:1;font-size:14px;font-weight:500;line-height:1.2}
.fd small,.fd2 small{display:block;font-weight:400;color:var(--mute);font-size:12px}
.fd2{grid-column:5/8;font-size:14px;font-weight:500;line-height:1.2;text-align:right;padding-right:6px}
.frow .s{text-align:right;white-space:nowrap;font-size:15px;margin:0!important;display:block;font-weight:400}
.frow .s sub{font-size:.72em}
.frow input,.frow .ob{width:100%;min-width:0;height:42px}
.ob{display:flex;align-items:center;font:500 16px "IBM Plex Sans",sans-serif;padding:0 10px;border:1px solid var(--line);border-left:3px solid var(--steel);background:var(--tag);color:var(--ink);overflow:hidden;white-space:nowrap}
.frow .u{font-size:14px;color:var(--mute);white-space:nowrap}
.c1 .s{grid-column:2}.c1 input,.c1 .ob{grid-column:3}.c1 .u{grid-column:4}
.c2 .s{grid-column:5}.c2 input,.c2 .ob{grid-column:6}.c2 .u{grid-column:7}
.c3 .s{grid-column:8}.c3 input,.c3 .ob{grid-column:9}.c3 .u{grid-column:10}
.diag{margin:18px 0 0}
.calc #patSet{margin-top:10px}
@media (max-width:700px){
.frow{display:flex;flex-wrap:wrap;gap:6px 10px}
.fd,.fd2{flex:0 0 100%;text-align:left;padding:0}
.fd2{margin-top:4px}
.frow .g{display:flex;align-items:center;gap:5px;flex:0 0 calc(50% - 5px);min-width:0}
.frow .s{min-width:40px;font-size:14px}
.frow input,.frow .ob{flex:1}
.frow .u{min-width:34px;font-size:12px}
.toprow{gap:12px}
.supsel{flex:1 1 100%}
.supsel select{width:100%}
}

/* ---- v4 edits ---- */
/* Slab selectors sit on the same line as Structure Type */
.slabsel{display:flex;flex-wrap:wrap;gap:14px 20px}
.slabsel select{width:220px}
/* Slab sketch */
#s_sketch svg{width:auto;max-width:100%;height:auto;margin:auto}
.sketch .pl{fill:var(--tag);stroke:var(--ink);stroke-width:1.3}
.sketch .pd{fill:none;stroke:var(--ink);stroke-width:1;stroke-dasharray:5 3}
.sketch .mb{fill:var(--ink)}
.sketch .sa{fill:var(--ink)}
.sketch .ldr{stroke:var(--mute);stroke-width:1;stroke-dasharray:5 3}
.sketch line.ex{stroke:var(--mute);stroke-width:.7;stroke-dasharray:2 2}
/* Location note under an output box */
.frow .g>.lc{grid-row:2;font-size:11.5px;color:var(--mute);white-space:nowrap;line-height:1.2;margin-top:3px}
.c1>.lc{grid-column:3/5}.c2>.lc{grid-column:6/8}.c3>.lc{grid-column:9/11}

@media (max-width:700px){
/* Two labelled pairs (e.g. Beam Span + Beam Stiffness, Hogging + Sagging) share one line */
.frow.two .fd,.frow.two .fd2{flex:0 0 calc(50% - 5px);margin:0;font-size:13px}
.frow.two .fd{order:0}.frow.two .fd2{order:1}.frow.two .g{order:2}
.frow .g{flex-wrap:wrap}
.frow .g>.lc{flex:0 0 100%;margin:0;padding-left:45px;white-space:normal}
.frow .g{display:grid;grid-template-columns:40px minmax(0,1fr) 33px;column-gap:3px;align-items:center;flex:0 0 calc(50% - 5px)}
.frow .g>.s{grid-column:1;min-width:0;font-size:13px}
.frow .g>input,.frow .g>.ob{grid-column:2;padding:0 4px;font-size:16px;min-width:0;width:100%}
.frow .g>.u{grid-column:3;min-width:0;font-size:11px}
.frow .g>.lc{grid-column:2/4;grid-row:2;padding:0;white-space:normal;font-size:11px}
.slabsel{flex:1 1 100%;gap:12px}
.slabsel label{flex:1 1 140px}
.slabsel select{width:100%}
}
.frow input[type=number]{-moz-appearance:textfield;appearance:textfield}
.frow input[type=number]::-webkit-inner-spin-button,.frow input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}

/* ---- v6: Geotechnical – gravity wall ---- */
:root{--ok:#2e7d32;--soil:#efe8da;--soil2:#f6f2ea;--conc:#d9dee2;--wat:#2a78b5;--fa:#c27a07;--fq:#8a5bb8;--fpc:#2e7d32;--frc:#c62828}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--ok:#7bd88f;--soil:#2f2b22;--soil2:#25231e;--conc:#3a4752;--wat:#6fb6e8;--fa:#f0b44a;--fq:#c59cf0;--fpc:#7bd88f;--frc:#ff8a80}}
:root[data-theme="dark"]{--ok:#7bd88f;--soil:#2f2b22;--soil2:#25231e;--conc:#3a4752;--wat:#6fb6e8;--fa:#f0b44a;--fq:#c59cf0;--fpc:#7bd88f;--frc:#ff8a80}
.itm{font:inherit;font-size:15px;background:none;border:0;padding:0;margin:0;color:var(--ink);cursor:pointer;text-align:left;text-decoration:underline;text-decoration-color:var(--amber);text-decoration-thickness:2px;text-underline-offset:4px}
.itm:hover{color:var(--steel)}
.calc.gw{max-width:none;padding:18px 22px}
.gwtop{display:flex;flex-wrap:wrap;align-items:center;gap:6px 18px;margin-bottom:6px}
.gwtop h3{font-size:24px;margin:0!important}
.back{font:500 14px "IBM Plex Sans",sans-serif;background:none;border:1px solid var(--line);color:var(--ink);padding:5px 12px;cursor:pointer}
.back:hover{border-color:var(--ink)}
.calc.gw h4{font:700 15px Archivo,sans-serif;margin:12px 0 6px}
.gwgrid{display:grid;grid-template-columns:minmax(0,430px) minmax(0,1fr);gap:8px 24px;align-items:start}
.gwfig{margin:0;background:var(--panel);border:1px solid var(--line);padding:6px}
.gwgrid .gwfig{position:sticky;top:76px;max-width:540px}
.gwsvg{width:100%;height:auto;display:block}
.tgl{display:inline-flex!important;flex-direction:row!important;align-items:center;gap:8px;border:1px solid var(--ink);padding:6px 12px;margin:4px 0 0!important;cursor:pointer;font-size:14px}
.tgl input{width:18px;height:18px;margin:0;accent-color:var(--steel)}
.tgl:has(input:checked){background:var(--tag);border-color:var(--steel)}
.fg{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px 10px}
.fg.f5{grid-template-columns:repeat(5,minmax(0,1fr));max-width:820px}
.f{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:4px;min-width:0}
.f label{display:block!important;margin:0!important;font-size:14px;font-weight:400;white-space:nowrap;min-width:26px;text-align:right}
.f label sub,.f label{line-height:1}
.f input{height:34px;padding:4px 7px!important;font-size:15px!important;-moz-appearance:textfield;appearance:textfield}
.f input::-webkit-inner-spin-button,.f input::-webkit-outer-spin-button,.gwl input::-webkit-inner-spin-button,.fac input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.gwl input,.fac input{-moz-appearance:textfield;appearance:textfield}
.f .u{font-size:12px;color:var(--mute);min-width:30px}
.hint{font-size:12.5px;color:var(--mute);margin:6px 0 0}
.calc.gw .tw{margin-top:2px}
.ptab.gwl{max-width:820px}
.ptab.gwl th,.ptab.gwl td{padding:4px 6px;text-align:left;vertical-align:middle}
.ptab.gwl input{width:78px;height:32px;padding:3px 7px;font-size:15px}
.ptab.gwl .ln,.ln2{display:inline-block;background:var(--amber);color:#1a1a1a;font:700 12px Archivo,sans-serif;width:18px;text-align:center;margin-right:4px}
.ptab th small{font-weight:400;color:var(--mute)}
.calc.gw #gwDA{margin:16px 0 8px}
.calc.gw .radios label{padding:8px 16px;font-size:15px}
.ptab.fac{max-width:820px}
.ptab.fac th,.ptab.fac td{padding:4px 6px;text-align:center}
.ptab.fac th:first-child{text-align:left;white-space:nowrap}
.ptab.fac input{width:100%;min-width:52px;max-width:84px;height:32px;padding:3px 6px;text-align:center;font-weight:500;background:color-mix(in srgb,var(--amber) 26%,var(--panel));border-color:var(--amber)}
#gwFS .f input{background:color-mix(in srgb,var(--amber) 26%,var(--panel));border-color:var(--amber)}
#gwFS .fg{max-width:560px}
.wrow{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin-top:8px;font-size:14px}
.wrow label{margin:0!important;font-weight:400}
.wrow select{width:auto;padding:6px 10px}
.gwbtns{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:12px}
.gwbtns .btn.calc-btn{margin:0}
.stale{font-size:13px;color:var(--amber);font-weight:500}
.hs{font:400 13px "IBM Plex Sans",sans-serif;color:var(--mute);margin-left:6px}
.ptab tr.grp td{font:700 13px Archivo,sans-serif;background:var(--tag);text-align:left}
.ptab tr.tot td{font-weight:700;border-bottom:2px solid var(--ink)}
.ptab.cmp th,.ptab.cmp td{padding:4px 7px;font-size:13px}
.ptab.gwa td:nth-child(2){text-align:left;white-space:normal;min-width:170px}
.ptab.sum{max-width:820px}
.ptab.sum td,.ptab.sum th{padding:6px 8px}
.ptab .bad{color:var(--err);font-weight:700}
.ok,.ng{display:inline-block;font:700 12px Archivo,sans-serif;padding:2px 8px;letter-spacing:.03em}
.ok{background:color-mix(in srgb,#2e7d32 18%,var(--panel));color:var(--ok);border-left:3px solid var(--ok)}
.ng{background:color-mix(in srgb,var(--err) 16%,var(--panel));color:var(--err);border-left:3px solid var(--err)}
.vd{font:700 15px Archivo,sans-serif;margin:8px 0 0;padding:6px 10px;max-width:820px}
.vd.yes{color:var(--ok);background:color-mix(in srgb,#2e7d32 12%,var(--panel))}
.vd.no{color:var(--err);background:color-mix(in srgb,var(--err) 12%,var(--panel))}
#gwDet{margin-top:14px;color:var(--ink)}
#gwDet>summary{font:700 15px Archivo,sans-serif;cursor:pointer;padding:6px 0;color:var(--ink)}
.det{border-top:2px solid var(--ink);margin-top:10px;padding-top:4px}
.dh{font:800 17px Archivo,sans-serif!important;margin:12px 0 8px!important}
.det h5{font:700 14px Archivo,sans-serif;margin:12px 0 4px}
.ff{max-width:820px;margin:4px 0 8px}
.ff figcaption{font-size:12px;color:var(--mute);padding:4px 2px 0}
.lg i{display:inline-block;width:14px;height:3px;vertical-align:middle;margin:0 3px 0 8px;background:currentColor}
.lg i.fa{color:var(--fa)}.lg i.fq{color:var(--fq)}.lg i.fw{color:var(--wat)}.lg i.fp{color:var(--fpc)}.lg i.fg{color:var(--ink)}.lg i.fr{color:var(--frc)}
.kv{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:4px 10px;font-size:13.5px;max-width:900px}
.kv span{border-bottom:1px dotted var(--line);padding:2px 0;display:flex;align-items:baseline;gap:6px;min-width:0}
.kv i{font-style:normal;color:var(--mute);white-space:nowrap}
.kv b{font-weight:600;margin-left:auto}
.kv small{color:var(--mute)}
pre.mth{white-space:pre-wrap;font:12.5px/1.5 ui-monospace,monospace;background:var(--tag);padding:10px;margin:0;color:var(--ink)}
.sk-msg{padding:40px 12px;text-align:center}
/* svg */
.gwsvg text{font:11.5px "IBM Plex Sans",sans-serif;fill:var(--ink)}
.gwsvg .sb{font-size:8.5px}
.gwsvg .soil{fill:var(--soil);stroke:none}.gwsvg .soil.lt{fill:var(--soil2)}
.gwsvg .rub{stroke:var(--mute);stroke-width:1}
.gwsvg .rbs{fill:none;stroke:var(--mute);stroke-width:.7;opacity:.8}
.gwsvg .wall{fill:var(--conc);stroke:var(--ink);stroke-width:1.6;stroke-linejoin:round}
.gwsvg .wallh{stroke:var(--ink);stroke-width:1.6;stroke-linejoin:round}
.gwsvg .cch{stroke:var(--mute);stroke-width:.6;opacity:.6}
.gwsvg .lb{stroke:var(--mute);stroke-width:1;stroke-dasharray:6 4}
.gwsvg .gl{fill:none;stroke:var(--ink);stroke-width:1.5}
.gwsvg .wl{stroke:var(--wat);stroke-width:1.4}
.gwsvg .wt{fill:var(--wat)}
.gwsvg .dm{color:var(--mute)}
.gwsvg .dm line{stroke:var(--mute);stroke-width:1}
.gwsvg .dm line.ex{stroke-width:.8}
.gwsvg .dm text{font-size:11px;font-weight:500}
.gwsvg .lbl{font-size:11px;fill:var(--ink)}
.gwsvg .hl{paint-order:stroke;stroke:var(--panel);stroke-width:3px;stroke-linejoin:round}
.gwsvg .qt{fill:var(--fa);font-weight:500}
.gwsvg .ql{stroke:var(--fa);stroke-width:1.3}
.gwsvg .sl{font-size:11px;fill:var(--ink)}
.gwsvg .ln2{fill:var(--amber);font-weight:700}
.gwsvg .far{stroke-width:2.2;fill:none}
.gwsvg .upb{fill:var(--wat);fill-opacity:.14;stroke:var(--wat);stroke-width:1}
.gwsvg .upa{stroke:var(--wat);stroke-width:1;opacity:.8}
.gwsvg .far.fa{stroke:var(--fa)}.gwsvg .far.fq{stroke:var(--fq)}.gwsvg .far.fw{stroke:var(--wat)}.gwsvg .far.fp{stroke:var(--fpc)}.gwsvg .far.fg{stroke:var(--ink)}.gwsvg .far.fr{stroke:var(--frc);stroke-width:2.6}
.gwsvg .fl{font-size:10.5px;font-weight:500;paint-order:stroke;stroke:var(--panel);stroke-width:3px;stroke-linejoin:round}
.gwsvg .fl.fa{fill:var(--fa)}.gwsvg .fl.fq{fill:var(--fq)}.gwsvg .fl.fw{fill:var(--wat)}.gwsvg .fl.fp{fill:var(--fpc)}.gwsvg .fl.fg{fill:var(--ink)}.gwsvg .fl.fr{fill:var(--frc);font-weight:700}
@media (max-width:860px){
.gwgrid{grid-template-columns:1fr}
.gwgrid .gwfig{position:static;order:-1}
.fg.f5{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:560px){
.calc.gw{padding:12px}
.fg,.fg.f5{grid-template-columns:repeat(2,minmax(0,1fr))}
.ptab.gwl th,.ptab.gwl td{padding:4px 3px}
.ptab.gwl input{width:52px;padding:3px 4px}
.ptab.gwl td{font-size:12px}
.ptab.gwl th small{display:block}
.ptab.fac th,.ptab.fac td{padding:3px 2px}
.ptab.fac input{min-width:44px;padding:3px 2px}
.ptab.sum td,.ptab.sum th{padding:5px 4px;font-size:13px}
}

/* ---- Print / PDF ---- */
.prt,.prt>tbody,.prt>tbody>tr,.prt .prc{display:block;width:100%;border:0;padding:0;margin:0}
.prt>thead,.prt>tfoot{display:none}
.prbtn{font-size:16px;padding:12px 24px;margin:6px 0 4px 8px;background:var(--panel)!important;color:var(--ink)!important;border:1px solid var(--ink)}
.gwbtns .prbtn{margin:0}
@media print{
 :root,:root:not([data-theme="light"]),:root[data-theme="dark"]{--bg:#fff;--panel:#fff;--ink:#111;--mute:#555;--line:#bbb;--steel:#2f5d7c;--amber:#c4820f;--tag:#eef0f2;--err:#b3261e;--ok:#2e7d32;--soil:#f1ebdf;--soil2:#f7f4ee;--conc:#dde1e5;--wat:#2a78b5;--fa:#b56f00;--fq:#7a4aab;--fpc:#2e7d32;--frc:#c62828}
 @page{size:A4;margin:10mm 11mm}
 html,body{background:#fff!important;color:#111;font-size:10.5pt}
 header,.tabbar,footer,.prbtn,.calc-btn,.back,.stale,#gwErr:empty{display:none!important}
 main{margin:0}
 section,.page{padding:0!important;max-width:none}
 .prt{display:table;width:100%;border-collapse:collapse}
 .prt>thead{display:table-header-group}
 .prt>tfoot{display:table-footer-group}
 .prt>tbody{display:table-row-group}
 .prt>tbody>tr,.prt>thead>tr,.prt>tfoot>tr{display:table-row}
 .prt td{display:table-cell;padding:0}
 .prh{display:flex;gap:14px;align-items:baseline;border-bottom:1.5px solid #111;padding:0 0 3px;margin-bottom:8px;font-size:9pt}
 .prh b{font-family:Archivo,sans-serif;letter-spacing:.04em}
 .prh .prt-d{margin-left:auto;color:#555}
 .prf{border-top:1px solid #999;margin-top:8px;padding-top:4px;font-size:8pt;color:#333;font-style:italic}
 .calc{border:0!important;padding:0!important;max-width:none!important;box-shadow:none}
 input,select{border:1px solid #999!important;background:#fff!important;color:#111!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
 .ptab.fac input,#gwFS .f input{background:#fbecd0!important}
 .gwgrid .gwfig{position:static}
 .gwgrid{grid-template-columns:minmax(0,400px) minmax(0,1fr)}
 tr,.kv span,.gwfig,.ff,.vd,.det h5{break-inside:avoid}
 h3,h4,h5,.dh{break-after:avoid}
 .det{break-before:page}
 details>summary{list-style:none}
 details>summary::-webkit-details-marker{display:none}
 #gwDet:not([open])>summary{display:none}
 *{-webkit-print-color-adjust:exact;print-color-adjust:exact}
 .radios label:not(:has(input:checked)){display:none}
 .sketch,.diag,.dg{break-inside:avoid}
}

/* ---- Admin / guest visibility ---- */
html:not(.is-admin) [data-wip]{display:none!important}
html:not(.is-admin) body.wip-page main section:not(.wipmsg){display:none!important}
html.is-admin .wipmsg{display:none!important}
.wipmsg .btn{display:inline-block;text-decoration:none}
html.is-admin [data-wip]{outline:2px dashed var(--amber);outline-offset:-2px}
html.is-admin .tabs a[data-wip],html.is-admin .links a[data-wip]{outline-offset:-4px}
html.is-admin .tiles a[data-wip]{outline-offset:2px}
html.is-admin li[data-wip]::after,html.is-admin .card[data-wip]>h3::after{content:"admin only";font:500 11px "IBM Plex Sans",sans-serif;background:var(--amber);color:#1a1a1a;padding:1px 6px;margin-left:8px;vertical-align:middle;align-self:center}
.adm-a{cursor:pointer}
.adm-pill{font:700 11px Archivo,sans-serif;letter-spacing:.06em;background:var(--amber);color:#1a1a1a;padding:3px 8px;align-self:center;white-space:nowrap}
.adm-dlg{border:1px solid var(--ink);border-top:4px solid var(--amber);background:var(--panel);color:var(--ink);padding:22px;width:min(400px,calc(100vw - 32px));max-width:none}
.adm-dlg::backdrop{background:rgba(10,15,20,.55)}
.adm-dlg h3{font-size:20px;margin:0 0 14px}
.adm-dlg form{display:grid;gap:12px;max-width:none}
.adm-dlg label{display:grid;gap:4px;font-size:14px}
.adm-dlg label small{font-weight:400;color:var(--mute)}
.adm-dlg input[type=text],.adm-dlg input[type=password]{width:100%;font:inherit;padding:10px 12px;border:1px solid var(--ink);background:var(--panel);color:var(--ink);border-radius:0}
.adm-keep{display:flex!important;flex-direction:row;align-items:center;gap:8px;font-weight:400}
.adm-keep input{width:18px;height:18px;margin:0;accent-color:var(--steel)}
.adm-btns{display:flex;gap:10px}
.adm-sec{background:var(--panel)!important;color:var(--ink)!important}
.adm-err{margin:0;min-height:1em}
.adm-code{white-space:pre-wrap;word-break:break-all;font:12px/1.5 ui-monospace,monospace;background:var(--tag);padding:10px;margin:6px 0}
@media print{.adm-pill,.adm-a{display:none!important}html.is-admin [data-wip]{outline:0}html.is-admin li[data-wip]::after,html.is-admin .card[data-wip]>h3::after{content:none}}

/* ---- Shallow footing ---- */
.sfopts{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;margin:4px 0 2px}
.sfopts .radios{margin:0}
.sfopts .radios label{padding:6px 14px;font-size:14px}
.ptab.fac.sfl{max-width:430px;margin-top:2px}
.ptab.fac.sfl input{background:var(--panel);border-color:var(--ink);font-weight:400}
.ptab.fac.sfl th:first-child{font-weight:500;font-size:13px}
.ptab.gwl select{width:auto;padding:5px 6px;font-size:14px}
.ptab.gwl input:disabled{opacity:.35}
.sfm-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px 20px}
.wsel2{display:flex!important;flex-direction:row!important;align-items:center;gap:8px;margin:0!important;font-weight:400}
.wsel2 select{width:auto;padding:7px 10px;font-weight:500}
.sfm-f{grid-template-columns:repeat(3,minmax(0,140px))}
.gwsvg .sp{stroke:var(--ink);stroke-width:1;stroke-dasharray:5 4}
.gwsvg .wd{stroke-dasharray:8 5}
.gwsvg .bp{stroke:var(--frc);stroke-width:3}
@media print{.ptab.fac.sfl input{background:#fff!important}}
.sfm-f{flex:1 1 300px;min-width:0}
/* footing type + base layer on one aligned row */
.sfopts{align-items:flex-end}
.sfopts .radios legend,.sflg{display:block;font-size:14px;font-weight:500;margin:0 0 6px;line-height:1.4}
.sfbase{display:flex;flex-direction:column}
.sfopts .radios label,.sfopts .tgl{box-sizing:border-box;height:42px;padding:0 16px!important;font-size:15px!important;margin:0!important;display:inline-flex!important;align-items:center}

/* ---- Print watermark ---- */
.prwm{display:none}
@media print{
 .prwm{display:flex;position:fixed;inset:0;align-items:center;justify-content:center;pointer-events:none;z-index:9999}
 .prwm span{transform:rotate(-35deg);font:800 50pt Archivo,"Helvetica Neue",Arial,sans-serif;letter-spacing:.06em;color:rgba(0,0,0,.08);white-space:nowrap;border:6pt solid rgba(0,0,0,.08);padding:4pt 24pt}
}

/* ---------- Section properties (Member Properties page) ---------- */
.sppick{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:8px;margin:12px 0 18px;border:0;padding:0;min-width:0}
.sppick legend{font:700 15px Archivo,sans-serif;margin-bottom:8px;padding:0}
.spk{position:relative;display:flex;flex-direction:column;align-items:center;gap:5px;border:1px solid var(--line);background:var(--panel);padding:9px 4px 8px;cursor:pointer;font-size:12.5px;line-height:1.2;text-align:center;margin:0!important;font-weight:400}
.spk:hover{border-color:var(--ink)}
.spk input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.spk svg path{fill:var(--conc);stroke:var(--ink);stroke-width:1.3;fill-rule:evenodd;vector-effect:non-scaling-stroke}
.spk:has(input:checked){border-color:var(--amber);box-shadow:inset 0 0 0 1px var(--amber);background:color-mix(in srgb,var(--amber) 14%,var(--panel));font-weight:500}
.spk:has(input:focus-visible){outline:2px solid var(--steel);outline-offset:2px}
.sp .gwgrid{grid-template-columns:minmax(0,400px) minmax(0,1fr)}
.sp .fg{grid-template-columns:repeat(2,minmax(0,1fr))}
.spfig{min-height:200px}
.spfig figcaption{margin:4px 2px 0}
.spsvg{display:block;max-height:380px}
.spsvg .sh{fill:var(--conc);stroke:var(--ink);stroke-width:1.5;fill-rule:evenodd}
.spsvg text{font:13px "IBM Plex Sans",sans-serif;fill:var(--ink);paint-order:stroke;stroke:var(--panel);stroke-width:3.5px;stroke-linejoin:round}
.spsvg .sb{font-size:10px}
.spsvg .dm line{stroke:var(--mute);stroke-width:1}
.spsvg .dm .rl{stroke-dasharray:4 3}
.spsvg .cp{fill:var(--ink)}
.spsvg .ax{stroke:var(--steel);stroke-width:1.2;stroke-dasharray:10 3 2 3}
.spsvg .ax.ap{stroke:var(--fq)}
.spsvg .axl{fill:var(--steel);font-weight:700;font-size:13px}
.spsvg .axl.ap{fill:var(--fq)}
.spsvg .cg{fill:var(--amber);stroke:var(--ink);stroke-width:1}
.spno{padding:40px 12px;text-align:center}
.ptab.speq{width:auto;max-width:100%}
.ptab.speq tr.grp td{text-align:left}
.ptab.speq td{vertical-align:middle;padding:6px 8px}
.ptab.speq td.eq{text-align:right;font-size:15px;line-height:1.45;max-width:640px;padding-left:16px}
.ptab.speq .es sub{font-size:.72em}.ptab.speq .es sup{font-size:.72em}
.ptab.speq .eq small{display:block;color:var(--mute);font-size:12px;line-height:1.3}
.ptab.speq .q{color:var(--mute);text-align:center;width:14px;padding:6px 2px}
.ptab.speq .v{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600;text-align:right;padding-left:10px}
.ptab.speq .un{text-align:left;color:var(--mute);white-space:nowrap}
@media (max-width:760px){.sp .gwgrid{grid-template-columns:1fr}.sp .gwgrid .gwfig{position:static;order:-1}.sppick{grid-template-columns:repeat(3,minmax(0,1fr))}.ptab.speq .eq{font-size:14px}}
@media print{.sppick,#spErr:empty,.spno{display:none!important}.ptab.speq tr{break-inside:avoid}}

/* ---- R12: Member Properties – compact section calculator ---- */
.page.mem{padding-top:14px}
.page.mem .lead{margin-bottom:10px}
.memtabs{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 10px}
.memtabs a,.memtabs span{font:700 14px Archivo,sans-serif;padding:7px 14px;border:1px solid var(--line);background:var(--tag);color:var(--ink);text-decoration:none;display:flex;align-items:center;gap:8px}
.memtabs a[aria-current]{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.memtabs .soon{font-style:normal;font-weight:400}
.calc.sp{padding:12px 16px}
.sppick{display:flex;flex-wrap:wrap;gap:6px 18px;margin:0 0 10px}
.spg{display:flex;flex-wrap:wrap;gap:6px;border:0;padding:0;margin:0;min-width:0}
.spg legend{font:700 12px Archivo,sans-serif;text-transform:uppercase;letter-spacing:.06em;color:var(--mute);margin-bottom:4px;padding:0}
.sppick .spk{width:92px;padding:5px 3px 4px;gap:2px;font-size:11.5px}
.sppick .spk svg{width:40px;height:30px}
.spgrid{display:grid;grid-template-columns:minmax(0,330px) minmax(0,290px) minmax(0,1fr);gap:10px 18px;align-items:start}
.sp .fg{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px 10px}
.sp .f input[readonly]{background:var(--tag);border-color:var(--line);color:var(--ink)}
.sp .hint{font-size:12.5px;margin:6px 0 0;line-height:1.4}
.sp .gwbtns{margin-top:4px}
.sp .btn.calc-btn{padding:8px 22px;font-size:15px}
.sp .gwfig.spfig{position:sticky;top:76px;min-height:0}
.spsvg{max-height:260px}
.spmem{margin:0 0 8px}
.spmem>label{display:block;font:700 13px Archivo,sans-serif;margin:0 0 3px!important}
.cbx{position:relative;display:flex}
.cbx input{flex:1;min-width:0;font:inherit;font-size:15px;height:36px;padding:4px 8px;border:1px solid var(--ink);border-right:0;background:var(--panel);color:var(--ink);border-radius:0}
.cbt{width:34px;border:1px solid var(--ink);background:var(--tag);color:var(--ink);cursor:pointer;font-size:14px}
.cbx ul{position:absolute;z-index:20;left:0;right:0;top:100%;max-height:300px;overflow-y:auto;margin:0;padding:0;list-style:none;background:var(--panel);border:1px solid var(--ink);border-top:0;box-shadow:0 6px 16px rgba(0,0,0,.18)}
.cbx li{display:flex;justify-content:space-between;gap:10px;padding:5px 9px;font-size:14px;cursor:pointer;border-bottom:1px solid var(--tag)}
.cbx li small{color:var(--mute);white-space:nowrap}
.cbx li.ud{font-weight:700;background:color-mix(in srgb,var(--amber) 14%,var(--panel))}
.cbx li.act,.cbx li:hover{background:var(--ink);color:var(--bg)}.cbx li.act small,.cbx li:hover small{color:var(--bg)}
.cbx li[aria-selected=true]{box-shadow:inset 3px 0 0 var(--amber)}
.cbx li.none{color:var(--mute);cursor:default;font-style:italic}
.spmem small{display:block;margin-top:3px}
.speqs h4,.spin h4.rh{font:700 14px Archivo,sans-serif;margin:0 0 4px}
.speqs h4 small{font:400 12px "IBM Plex Sans",sans-serif;color:var(--mute);margin-left:4px}
.eql{font-size:13.5px;line-height:1.45}
.eqg{font:700 11px Archivo,sans-serif;text-transform:uppercase;letter-spacing:.05em;color:var(--steel);margin:7px 0 1px;border-bottom:1px solid var(--line)}
.eqr{padding:1px 0}
.eql sub,.eql sup,.rk sub,.rk sup{font-size:.72em}
.spin h4.rh{margin-top:10px;padding-top:6px;border-top:2px solid var(--ink)}
.rk{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px 12px;font-size:13.5px;line-height:1.5}
.rk div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-bottom:1px solid var(--tag)}
.rk b{font-variant-numeric:tabular-nums}
.spchk{margin-top:12px;padding-top:10px;border-top:2px solid var(--ink)}
.chkt{display:inline-flex!important;align-items:center;gap:8px;font:700 15px Archivo,sans-serif;cursor:pointer;margin:0!important;border:1px solid var(--ink);padding:6px 14px}
.chkt input{width:18px;height:18px;accent-color:var(--steel)}
.chkt small{font:400 12px "IBM Plex Sans",sans-serif;color:var(--mute)}
.chkt:has(input:checked){background:var(--tag)}
#spChk{margin-top:10px}
.sp .chkfg{grid-template-columns:repeat(7,minmax(0,1fr));max-width:none}
.fhot select{height:34px;padding:2px 4px;font-size:14px}
.cksum{font:700 15px Archivo,sans-serif;margin:10px 0 6px;padding:6px 10px;border-left:4px solid}
.cksum.ok{border-color:#2e7d32;background:color-mix(in srgb,#2e7d32 12%,var(--panel))}
.cksum.ng{border-color:var(--err);background:color-mix(in srgb,var(--err) 12%,var(--panel))}
.ptab.ckt td,.ptab.ckt th,.ptab.ckc td,.ptab.ckc th{padding:4px 8px;font-size:13.5px}
.ptab.ckt td small{display:block;color:var(--mute);font-size:12px}
.ptab.ckc{max-width:640px;margin-top:6px}
.cknotes{font-size:12.5px;color:var(--mute);margin:6px 0 0;padding-left:18px}
@media (max-width:1000px){.spgrid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.speqs{grid-column:1/-1}.sp .chkfg{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:640px){.spgrid{grid-template-columns:1fr}.sp .gwfig.spfig{position:static;order:-1}.sppick .spk{width:calc(25% - 5px)}.sp .chkfg{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media print{.memtabs,.sppick,.cbt,.chkt input,.spmem small{display:none!important}.spgrid{grid-template-columns:300px 260px 1fr}.sp .gwfig.spfig{position:static}}
/* R13: aligned section properties table, unequal-flange toggle */
.rtab{border-collapse:collapse;font-size:13.5px;line-height:1.45;width:auto;min-width:240px}
.rtab th{text-align:left;font-weight:400;padding:1px 4px 1px 0;white-space:nowrap}
.rtab td{padding:1px 0;white-space:nowrap}
.rtab td.q{padding:1px 8px;color:var(--mute)}
.rtab td.v{text-align:right;font-weight:700;font-variant-numeric:tabular-nums;padding-right:6px}
.rtab td.u{color:var(--mute)}
.rtab tr{border-bottom:1px solid var(--tag)}
.rtab sub,.rtab sup{font-size:.72em}
.spmono{display:flex!important;align-items:center;gap:8px;font-size:14px;margin:0 0 6px!important;cursor:pointer}
.spmono input{width:17px;height:17px;accent-color:var(--steel)}
.spmono[hidden],.cbx[hidden]{display:none!important}
.spmode{display:flex;margin:0 0 6px}
.spmode button{flex:1;font:700 13.5px Archivo,sans-serif;padding:7px 10px;border:1px solid var(--ink);background:var(--panel);color:var(--ink);cursor:pointer}
.spmode button+button{border-left:0}
.spmode button[aria-pressed=true]{background:var(--ink);color:var(--bg)}
.spmode button:hover:not([aria-pressed=true]){background:var(--tag)}
