:root{--green-1:#fdfdfd;--green-2:#f8faf7;--green-3:#eff4ec;--green-4:#e4eedf;--green-5:#d8e8d0;--green-6:#c9e1bd;--green-7:#b4d8a3;--green-8:#98cd7f;--green-9:#6cbe45;--green-10:#60af3b;--green-11:#448227;--green-12:#223b17;--navy-1:#fdfdfd;--navy-2:#f7f7fa;--navy-3:#ecedf4;--navy-4:#dfe1ee;--navy-5:#d0d4e8;--navy-6:#bdc3e1;--navy-7:#a3abd8;--navy-8:#7f8bcd;--navy-9:#232d63;--navy-10:#1c2451;--navy-11:#3549b0;--navy-12:#273063;--slate-1:#fcfcfd;--slate-2:#f9f9fb;--slate-3:#f0f0f3;--slate-4:#e8e8ec;--slate-5:#e0e1e6;--slate-6:#d9d9e0;--slate-7:#cdced6;--slate-8:#b9bbc6;--slate-9:#8b8d98;--slate-10:#80838d;--slate-11:#60646c;--slate-12:#1c2024;--red-2:#fff7f7;--red-3:#feebec;--red-6:#fdbdbe;--red-7:#f4a9aa;--red-9:#e5484d;--red-11:#ce2c31;--red-12:#641723;--amber-2:#fefbe9;--amber-3:#fff7c2;--amber-6:#f3d673;--amber-7:#e9c162;--amber-9:#ffc53d;--amber-11:#ab6400;--amber-12:#4f3422;--bg-app:var(--slate-2);--bg-panel:#ffffff;--bg-subtle:var(--slate-3);--bg-hover:var(--slate-4);--border:var(--slate-6);--border-strong:var(--slate-8);--text:var(--slate-12);--text-secondary:var(--slate-11);--text-muted:var(--slate-10);--accent:var(--green-9);--accent-text:var(--green-11);--shell:var(--navy-9);--shell-hover:rgba(255,255,255,.07);--shell-active:rgba(255,255,255,.12);--shell-border:rgba(255,255,255,.10);--shell-text:rgba(255,255,255,.72);--shell-text-muted:rgba(255,255,255,.44);--font-sans:Geist,"Geist Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--font-mono:"Geist Mono",ui-monospace,SFMono-Regular,Menlo,monospace;--font-brand:"Chakra Petch",var(--font-sans);--fs-1:.75rem;--lh-1:1rem;--ls-1:.0025em;--fs-2:.875rem;--lh-2:1.25rem;--ls-2:0em;--fs-3:1rem;--lh-3:1.5rem;--ls-3:0em;--fs-4:1.125rem;--lh-4:1.625rem;--ls-4:-.0025em;--fs-5:1.25rem;--lh-5:1.75rem;--ls-5:-.005em;--fs-6:1.5rem;--lh-6:1.875rem;--ls-6:-.00625em;--fs-7:1.75rem;--lh-7:2.25rem;--ls-7:-.0075em;--fs-8:2.1875rem;--lh-8:2.5rem;--ls-8:-.01em;--sp-1:.25rem;--sp-2:.5rem;--sp-3:.75rem;--sp-4:1rem;--sp-5:1.5rem;--sp-6:2rem;--sp-7:2.5rem;--sp-8:3rem;--sp-9:4rem;--r-1:3px;--r-2:4px;--r-3:6px;--r-4:8px;--r-5:12px;--r-full:9999px;--shadow-1:0 1px 2px rgba(0,0,0,.04);--shadow-2:0 2px 8px rgba(0,0,0,.06);--nav-w:15rem;--header-h:3.5rem}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--bg-app);color:var(--text);font-family:var(--font-sans);font-size:var(--fs-2);line-height:var(--lh-2);letter-spacing:var(--ls-2);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"cv11","ss01"}a{color:inherit;text-decoration:none}code{font-family:var(--font-mono);font-size:var(--fs-1);letter-spacing:var(--ls-1)}.shell{display:grid;grid-template-columns:var(--nav-w) 1fr;min-height:100vh}.side{background:var(--shell);color:#fff;display:flex;flex-direction:column;position:-webkit-sticky;position:sticky;top:0;height:100vh}.brand{padding:var(--sp-5) var(--sp-4) var(--sp-5)}.brand b{font-size:var(--fs-6);font-weight:700;letter-spacing:.03em;line-height:1;color:var(--green-9)}.brand b,.brand span{display:block;font-family:var(--font-brand);text-transform:uppercase}.brand span{font-size:.625rem;font-weight:600;letter-spacing:.38em;color:rgba(255,255,255,.8);margin-top:6px}.nav{flex:1 1;overflow-y:auto;padding:0 var(--sp-2) var(--sp-4)}.nav-group{margin-top:var(--sp-4)}.nav-group>.cap{font-size:var(--fs-1);line-height:var(--lh-1);letter-spacing:.06em;text-transform:uppercase;color:var(--shell-text-muted);padding:0 var(--sp-3) var(--sp-2);font-weight:500}.nav-item{display:flex;align-items:center;gap:var(--sp-2);height:2rem;padding:0 var(--sp-3);border-radius:var(--r-2);color:var(--shell-text);font-size:var(--fs-2);margin-bottom:1px}.nav-item:hover{background:var(--shell-hover);color:#fff}.nav-item.active{background:var(--shell-active);color:#fff;font-weight:500}.nav-item.nav-sub{padding-left:calc(var(--sp-3) + var(--sp-4));height:1.75rem;font-size:var(--fs-1)}.nav-item .lbl{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-item .dot{width:6px;height:6px;border-radius:var(--r-full);flex:0 0 auto;background:var(--green-9)}.nav-item .ph{font-family:var(--font-mono);font-size:.6875rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.nav-item .ph,.side-foot{color:var(--shell-text-muted)}.side-foot{padding:var(--sp-3) var(--sp-4);border-top:1px solid var(--shell-border);font-size:var(--fs-1);line-height:var(--lh-1);background:var(--shell);flex:0 0 auto}.main{display:flex;flex-direction:column;min-width:0}@media (max-width:760px){.shell{display:block}.side{position:static;height:auto;max-height:45vh}.main .topbar{padding:0 var(--sp-4)}}.topbar{height:var(--header-h);background:var(--bg-panel);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:var(--sp-3);padding:0 var(--sp-6);position:-webkit-sticky;position:sticky;top:0;z-index:5}.topbar h1{font-size:var(--fs-3);line-height:var(--lh-3);font-weight:600;letter-spacing:var(--ls-3);margin:0;color:var(--text)}.topbar .sub{color:var(--text-muted);font-size:var(--fs-2)}.spacer{flex:1 1}.content{padding:var(--sp-6);max-width:76rem}.page-title{font-size:var(--fs-7);line-height:var(--lh-7);letter-spacing:var(--ls-7);font-weight:600;color:var(--text);margin:0 0 var(--sp-2)}.lede{color:var(--text-secondary);font-size:var(--fs-3);line-height:var(--lh-3);max-width:68ch;margin:0 0 var(--sp-6)}.card{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--r-4);box-shadow:var(--shadow-1);padding:var(--sp-5);margin-bottom:var(--sp-4)}.card>h2{font-size:var(--fs-3);line-height:var(--lh-3);font-weight:600;letter-spacing:var(--ls-3);color:var(--text);margin:0 0 var(--sp-1)}.card>.cap{font-size:var(--fs-1);line-height:var(--lh-1);letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);margin:0 0 var(--sp-4);font-weight:500}.grid{display:grid;grid-gap:var(--sp-3);gap:var(--sp-3)}.grid.c3,.grid.c4{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}.tile{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--r-4);padding:var(--sp-4)}.tile .k{font-size:var(--fs-1);line-height:var(--lh-1);letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);font-weight:500}.tile .v{font-size:var(--fs-7);line-height:var(--lh-7);letter-spacing:var(--ls-7);font-weight:600;color:var(--text);margin-top:var(--sp-2);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.tile .n{line-height:var(--lh-1);color:var(--text-muted);margin-top:var(--sp-1)}.pill,.tile .n{font-size:var(--fs-1)}.pill{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-1);height:1.375rem;padding:0 var(--sp-2);border-radius:var(--r-2);line-height:1;font-weight:500;letter-spacing:var(--ls-1);white-space:nowrap;border:1px solid transparent}.pill.t1{background:var(--red-3);color:var(--red-11);border-color:var(--red-6)}.pill.t2{background:var(--amber-3);color:var(--amber-11);border-color:var(--amber-6)}.pill.ok{background:var(--green-3);color:var(--green-11);border-color:var(--green-6)}.pill.neutral{background:var(--slate-3);color:var(--slate-11);border-color:var(--slate-6)}.status{display:inline-flex;align-items:center;gap:var(--sp-2);white-space:nowrap;font-size:var(--fs-2);color:var(--text-secondary)}.status:before{content:"";width:6px;height:6px;border-radius:var(--r-full);flex:0 0 auto}.status.t1:before{background:var(--red-9)}.status.t2:before{background:var(--amber-9)}.status.ok:before{background:var(--green-9)}.status.built:before{background:var(--navy-9)}.tbl{width:100%;border-collapse:collapse;font-size:var(--fs-2);line-height:var(--lh-2)}.tbl th{text-align:left;font-size:var(--fs-1);line-height:var(--lh-1);letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);font-weight:500;padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--border)}.tbl td{padding:var(--sp-3);border-bottom:1px solid var(--slate-4);vertical-align:top;color:var(--text-secondary)}.tbl tr:last-child td{border-bottom:0}.tbl td.r,.tbl th.r{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.tbl td.nowrap,.tbl th.nowrap{white-space:nowrap}.tbl .muted{font-size:var(--fs-1);line-height:var(--lh-1);color:var(--text-muted)}.tbl code{background:var(--slate-3);padding:1px 5px;border-radius:var(--r-1);color:var(--text-secondary)}.banner{background:var(--amber-2);border:1px solid var(--amber-6);border-radius:var(--r-3);padding:var(--sp-3) var(--sp-4);font-size:var(--fs-2);line-height:var(--lh-2);color:var(--amber-12);margin-bottom:var(--sp-4)}.refs{display:flex;flex-wrap:wrap;gap:var(--sp-1);margin-top:var(--sp-3)}.ref{font-family:var(--font-mono);font-size:var(--fs-1);line-height:1;background:var(--slate-3);color:var(--text-secondary);border-radius:var(--r-1);padding:5px 7px}.pager{display:flex;align-items:center;gap:var(--sp-4);margin-top:var(--sp-4);padding-top:var(--sp-3);border-top:1px solid var(--border);font-size:var(--fs-2)}.pager a{color:var(--accent-text);text-decoration:none;font-weight:500}.pager a:hover{text-decoration:underline}.pager .muted{-webkit-margin-start:auto;margin-inline-start:auto}.tbl.boq td,.tbl.boq th{white-space:nowrap;padding-inline:var(--sp-2);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;vertical-align:baseline}.tbl.boq .col-total{position:-webkit-sticky;position:sticky;right:0;background:var(--bg-panel);box-shadow:-1px 0 0 var(--border)}.tbl.boq .boq-section .col-total{background:var(--green-1)}.tbl.boq td:nth-child(2){white-space:normal;min-width:200px}.tbl.boq .boq-section td{font-weight:600;color:var(--text);background:var(--green-1);border-top:1px solid var(--border-strong)}.tbl.boq .boq-group td:nth-child(2){-webkit-padding-start:var(--sp-4);padding-inline-start:var(--sp-4);color:var(--text-secondary);font-weight:500}.tbl.boq .boq-line td:nth-child(2){-webkit-padding-start:var(--sp-4);padding-inline-start:var(--sp-4);color:var(--text)}.tbl.boq .boq-line.in-group td:nth-child(2){-webkit-padding-start:var(--sp-6);padding-inline-start:var(--sp-6)}.tbl.boq .boq-owner{text-align:center;color:var(--text-muted);font-size:var(--fs-1);letter-spacing:.04em}.tbl.boq .boq-total{color:var(--text);font-weight:500}.tbl.boq .boq-subtotal td{font-weight:600;color:var(--text);border-top:1px solid var(--border)}.tbl.boq .boq-subtotal td:first-child{text-align:left}.tbl.boq .boq-grand td{font-weight:700;color:var(--text);border-top:2px solid var(--border-strong)}.tbl.boq .boq-grand td:first-child{text-align:left}.login-screen{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:var(--sp-4);background:var(--bg-app)}.login-card{width:100%;max-width:380px;display:grid;grid-gap:var(--sp-4);gap:var(--sp-4);background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--r-4);box-shadow:var(--shadow-1);padding:var(--sp-6)}.login-card h1{margin:0;font-size:var(--fs-5);line-height:var(--lh-5);color:var(--text)}.login-mark b{font-size:var(--fs-6);font-weight:700;letter-spacing:.03em;line-height:1;color:var(--green-9)}.login-mark b,.login-mark span{display:block;font-family:var(--font-brand);text-transform:uppercase}.login-mark span{font-size:.625rem;font-weight:600;letter-spacing:.38em;color:var(--text-muted);margin-top:6px}.login-card label{display:grid;grid-gap:var(--sp-1);gap:var(--sp-1);font-size:var(--fs-2);color:var(--text-secondary)}.login-card input{font:inherit;font-size:var(--fs-3);color:var(--text);background:var(--bg-panel);border:1px solid var(--border-strong);border-radius:var(--r-2);padding:var(--sp-2) var(--sp-3)}.login-card input:focus{outline:2px solid var(--accent);outline-offset:1px}.login-card button{font:inherit;font-weight:600;color:var(--green-12);background:var(--accent);border:0;border-radius:var(--r-2);padding:var(--sp-2) var(--sp-3);cursor:pointer}.login-error{color:var(--red-11);background:var(--red-3);border:1px solid var(--red-6);border-radius:var(--r-2)}.login-error,.login-notice{margin:0;font-size:var(--fs-2);padding:var(--sp-2) var(--sp-3)}.login-notice{color:var(--green-11);background:var(--green-3);border:1px solid var(--green-6);border-radius:var(--r-2)}.login-help{margin:0;font-size:var(--fs-1);line-height:var(--lh-1);color:var(--text-muted)}.signout{font:inherit;font-size:var(--fs-1);color:var(--shell-text);background:transparent;border:1px solid var(--shell-border);border-radius:var(--r-2);padding:var(--sp-1) var(--sp-3);margin-bottom:var(--sp-3);cursor:pointer}.boq-invalid{margin-bottom:var(--sp-4);padding:var(--sp-3) var(--sp-4);font-size:var(--fs-2);color:var(--red-11);background:var(--red-3);border:1px solid var(--red-6);border-radius:var(--r-2)}.boq-invalid ul{margin:var(--sp-2) 0 0;-webkit-padding-start:var(--sp-5);padding-inline-start:var(--sp-5)}.tbl.boq .boq-flagged td,.tbl.boq .boq-flagged td.col-total{background:var(--red-3)}.boq-flag{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:var(--r-full);font-size:var(--fs-1);font-weight:700;color:var(--red-11);background:var(--red-6)}.form{max-width:40rem}.form,.form-grid{display:grid;grid-gap:var(--sp-4);gap:var(--sp-4)}.form-grid{grid-template-columns:repeat(auto-fit,minmax(14rem,1fr))}.form-grid .span-2{grid-column:1/-1}.field{display:grid;grid-gap:var(--sp-1);gap:var(--sp-1);min-width:0}.field-label{font-size:var(--fs-2);line-height:var(--lh-2);font-weight:500;color:var(--text)}.field-req{color:var(--red-11)}.field-hint{color:var(--text-muted)}.field-error,.field-hint{margin:0;font-size:var(--fs-1);line-height:var(--lh-1)}.field-error{color:var(--red-11)}.input{font:inherit;font-size:var(--fs-2);line-height:var(--lh-2);color:var(--text);background:var(--bg-panel);border:1px solid var(--slate-7);border-radius:var(--r-2);padding:var(--sp-2) var(--sp-3);width:100%;min-width:0}.input:hover{border-color:var(--slate-8)}.input:focus{outline:2px solid var(--accent);outline-offset:0;border-color:var(--accent)}.input:disabled{background:var(--bg-subtle);color:var(--text-muted)}.input.num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right}.field.has-error .input{border-color:var(--red-9);background:var(--red-2)}textarea.input{resize:vertical}.input-adorned{display:flex;align-items:stretch}.input-adorned .input{border-radius:0}.input-adorned .input:first-child{border-top-left-radius:var(--r-2);border-bottom-left-radius:var(--r-2)}.input-adorned .input:last-child{border-top-right-radius:var(--r-2);border-bottom-right-radius:var(--r-2)}.adorn{display:inline-flex;align-items:center;padding:0 var(--sp-3);font-size:var(--fs-2);color:var(--text-secondary);background:var(--bg-subtle);border:1px solid var(--slate-7);border-right:0;border-radius:var(--r-2) 0 0 var(--r-2);white-space:nowrap}.adorn.adorn-end{border-right:1px solid var(--slate-7);border-left:0;border-radius:0 var(--r-2) var(--r-2) 0}.checks{display:grid;grid-gap:var(--sp-2);grid-template-columns:repeat(auto-fill,minmax(14rem,1fr))}.check,.checks{gap:var(--sp-2)}.check{display:flex;align-items:center;font-size:var(--fs-2);color:var(--text-secondary)}.check input{accent-color:var(--accent)}.btn{font:inherit;font-size:var(--fs-2);line-height:var(--lh-2);font-weight:600;border-radius:var(--r-2);padding:var(--sp-2) var(--sp-4);border:1px solid transparent;cursor:pointer;white-space:nowrap}.btn:disabled{opacity:.6;cursor:progress}.btn-primary{color:var(--green-12);background:var(--accent)}.btn-primary:hover:not(:disabled){background:var(--green-10)}.btn-danger{color:var(--bg-panel);background:var(--red-9)}.btn-danger:hover:not(:disabled){background:var(--red-11)}.btn-ghost{color:var(--text-secondary);background:var(--bg-panel);border-color:var(--slate-7)}.btn-ghost:hover:not(:disabled){background:var(--bg-hover)}.btn-danger-ghost{color:var(--red-11);background:var(--bg-panel);border-color:var(--red-6)}.btn-danger-ghost:hover:not(:disabled){background:var(--red-3)}.btn-sm{padding:var(--sp-1) var(--sp-3);font-size:var(--fs-1);line-height:var(--lh-1)}.form-actions{display:flex;flex-wrap:wrap;gap:var(--sp-2);align-items:center}.form-message{margin:0 0 var(--sp-4);font-size:var(--fs-2);line-height:var(--lh-2);border-radius:var(--r-3);padding:var(--sp-3) var(--sp-4);border:1px solid}.form-message.success{color:var(--green-11);background:var(--green-3);border-color:var(--green-6)}.form-message.error{color:var(--red-11);background:var(--red-3);border-color:var(--red-6)}.confirm-panel{display:grid;grid-gap:var(--sp-3);gap:var(--sp-3);padding:var(--sp-4);border-radius:var(--r-3);border:1px solid var(--border);background:var(--bg-subtle);max-width:32rem}.confirm-panel.tone-danger{border-color:var(--red-6);background:var(--red-2)}.confirm-text{margin:0;font-size:var(--fs-2);color:var(--text)}.secret-once{display:block;font-family:var(--font-mono);font-size:var(--fs-1);line-height:var(--lh-1);word-break:break-all;background:var(--bg-subtle);border:1px dashed var(--border-strong);border-radius:var(--r-2);padding:var(--sp-3);-webkit-user-select:all;-moz-user-select:all;user-select:all}.print-screen{position:fixed;inset:0;z-index:100;overflow:auto;background:var(--slate-5);padding:var(--sp-4)}.print-toolbar{display:flex;gap:var(--sp-2);align-items:center;max-width:210mm;margin:0 auto var(--sp-4)}.sheet{position:relative;background:var(--bg-panel);color:var(--text);width:210mm;min-height:297mm;max-width:100%;margin:0 auto;padding:16mm 15mm;box-shadow:var(--shadow-2);font-size:10.5pt;line-height:1.4;overflow:hidden}.watermark{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--font-brand);font-size:96pt;font-weight:700;letter-spacing:.1em;color:var(--slate-4);transform:rotate(-30deg);pointer-events:none;z-index:0}.sheet>:not(.watermark){position:relative;z-index:1}.letterhead{display:flex;gap:6mm;align-items:center;padding-bottom:4mm;border-bottom:2px solid var(--navy-9)}.letterhead-logo{height:11mm;width:auto;max-width:100mm}.letterhead:has(.letterhead-logo){flex-direction:column;gap:2mm;text-align:center}.letterhead-mark b{font-size:20pt;font-weight:700;letter-spacing:.03em;line-height:1;color:var(--green-9)}.letterhead-mark b,.letterhead-mark span{display:block;font-family:var(--font-brand)}.letterhead-mark span{font-size:6.5pt;font-weight:600;letter-spacing:.38em;text-transform:uppercase;color:var(--text-muted);margin-top:1.5mm}.letterhead-text{font-size:8.5pt;line-height:1.35;color:var(--text-secondary)}.letterhead-name{font-size:11pt;font-weight:700;color:var(--navy-9);letter-spacing:.01em}.doc-head{display:flex;justify-content:space-between;gap:8mm;align-items:flex-start;margin:6mm 0 5mm}.doc-title{margin:0;font-size:15pt;font-weight:700;letter-spacing:.04em;color:var(--text)}.doc-meta{margin:0;display:grid;grid-gap:1mm;gap:1mm;font-size:9pt;min-width:70mm}.doc-meta-row{display:grid;grid-template-columns:32mm 1fr;grid-gap:2mm;gap:2mm}.doc-meta dt{color:var(--text-muted)}.doc-meta dd{margin:0;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.provisional{font-weight:400;color:var(--amber-11)}.doc-body{min-height:60mm}.doc-table{width:100%;border-collapse:collapse;font-size:10pt;margin-bottom:4mm}.doc-table td,.doc-table th{padding:1.6mm 2mm;border-bottom:1px solid var(--slate-5);text-align:left;vertical-align:top}.doc-table th{font-size:8.5pt;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);border-bottom:1px solid var(--border-strong)}.doc-table .r{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.doc-table tr.total td{font-weight:700;border-top:1.5px solid var(--text);border-bottom:3px double var(--text)}.amount-words{margin:2mm 0 4mm;font-size:9.5pt;font-weight:600;letter-spacing:.01em}.qr{margin:2mm 0 0;display:inline-grid;gap:1mm}.qr svg{width:100%;height:auto;display:block}.qr figcaption{font-size:7.5pt;color:var(--text-muted);text-align:center}.addressee{margin:2mm 0 5mm;font-size:10pt;line-height:1.4}.addressee-name{font-weight:700}.doc-para{font-size:10pt;line-height:1.6;margin:0 0 4mm}.detail-list{display:grid;grid-template-columns:40mm 1fr;grid-gap:1mm 3mm;gap:1mm 3mm;margin:0 0 5mm;font-size:10pt}.detail-list dd{margin:0;border-bottom:1px solid var(--border,#ccc);min-height:1.3em}.detail-list .detail-head{font-weight:700;margin-top:2mm;border-bottom:0}.sig-block{display:grid;grid-gap:6mm;gap:6mm;margin-top:12mm;page-break-inside:avoid;break-inside:avoid}.sig{display:grid;align-content:start;font-size:9pt}.sig-label{color:var(--text-secondary)}.sig-space{height:14mm;display:flex;align-items:flex-end;justify-content:center;border-bottom:1px solid var(--text)}.sig-space img{max-height:13mm;max-width:100%}.sig-name{margin-top:1mm;font-weight:700;text-align:center;letter-spacing:.02em}.sig-position{text-align:center;color:var(--text-secondary)}.sig-date{text-align:center;font-size:7.5pt;color:var(--text-muted)}.doc-footer{margin-top:8mm;padding-top:3mm;border-top:1px solid var(--border);font-size:9pt;font-style:italic;color:var(--text-secondary)}@page{size:A4;margin:12mm}@media print{.print-toolbar,.side{display:none!important}.shell{display:block}.print-screen,body{background:var(--bg-panel)}.print-screen{position:static}.print-screen,.sheet{overflow:visible;padding:0}.sheet{width:auto;min-height:0;margin:0;box-shadow:none}.doc-table tr,.sig-block{page-break-inside:avoid;break-inside:avoid}}.tour{position:fixed;inset:0;z-index:1000;pointer-events:auto}.tour-dim{position:absolute;inset:0;background:rgba(10,16,32,.55)}.tour-ring{position:fixed;border-radius:var(--r-2);box-shadow:0 0 0 3px var(--green-9),0 0 0 9999px rgba(10,16,32,.55);transition:top .2s,left .2s,width .2s,height .2s;pointer-events:none}.tour-card{position:fixed;width:320px;max-width:calc(100vw - 24px);background:var(--surface,#fff);color:var(--text);border-radius:var(--r-3,10px);padding:var(--sp-4);box-shadow:0 12px 40px rgba(0,0,0,.28)}.tour-count{font-size:var(--fs-1);color:var(--text-muted);margin-bottom:var(--sp-1)}.tour-title{margin:0 0 var(--sp-2);font-size:var(--fs-4,1.1rem)}.tour-body{margin:0 0 var(--sp-4);line-height:1.5}.tour-actions{display:flex;gap:var(--sp-2);align-items:center}.tour-actions .spacer{flex:1 1}.tour-switch{display:flex;flex-wrap:wrap;gap:var(--sp-2);align-items:center;margin-bottom:var(--sp-2);color:var(--shell-text)}.tour-switch form{display:inline}.tour-link{font:inherit;font-size:var(--fs-1);background:none;border:0;padding:0;color:var(--green-9);text-decoration:underline;cursor:pointer}.tour-help{position:fixed;right:18px;bottom:18px;z-index:900;width:40px;height:40px;border-radius:50%;border:0;background:var(--navy-9);color:#fff;font:600 18px/40px var(--font-sans,inherit);box-shadow:0 4px 14px rgba(0,0,0,.25);cursor:pointer}.tour-help:hover{background:var(--green-9);color:var(--green-12,#000)}.tour .tour-card{z-index:1001}@media print{.tour,.tour-help{display:none!important}}