@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-opsz-normal-B8P4U0Gg.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-opsz-normal-5T0zeBXy.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-opsz-normal-BO2-flDP.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-opsz-normal-EmXFdkm_.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-opsz-normal-Ci9T9ieq.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-opsz-normal-5lmnQArN.woff2) format("woff2-variations");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-opsz-normal-B2BMxjQQ.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-opsz-italic-DnvIrq7X.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-opsz-italic-VrUWoFb-.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-opsz-italic-BI5cnoW5.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-opsz-italic-rAR2HN5I.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-opsz-italic-C7TReJrb.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-opsz-italic-YgUYhq75.woff2) format("woff2-variations");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-opsz-italic-BM4GwuJG.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(data:font/woff2;base64,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) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-cyrillic-wght-normal-BptiBwAt.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-greek-wght-normal-BW1JPxja.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-vietnamese-wght-normal-By-yputv.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-ext-wght-normal-Com2F4yK.woff2) format("woff2-variations");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-wght-normal-Ajscav9D.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--ink: #0a0a0a;--ink-2: #2e2e2e;--muted: #737373;--faint: #a3a3a3;--line: #e4e4e4;--line-2: #f0f0f0;--line-strong: #cfcfcf;--paper: #f5f5f4;--surface: #ffffff;--rule: #0a0a0a;--hi: #ffdd00;--hi-ring: #f2cf00;--hi-soft: #fff8cc;--hi-line: #f3d64a;--blue: #005ec3;--blue-soft: #e8f0fa;--green: #2f9e57;--green-soft: #e4f4ea;--red: #d0342c;--red-soft: #fce8e6;--accent: var(--ink);--accent-2: var(--ink);--accent-soft: var(--hi-soft);--critical: var(--red);--critical-soft: var(--red-soft);--ok: var(--green);--ok-soft: var(--green-soft);--warn: #7a6200;--warn-soft: var(--hi-soft);--sans: "Inter Variable", "Inter", -apple-system, "Segoe UI", Arial, sans-serif;--serif: var(--sans);--mono: "JetBrains Mono Variable", "JetBrains Mono", ui-monospace, Menlo, Consolas, monospace;--r: 6px;--r-lg: 10px;--radius: var(--r);--shadow: 0 1px 2px rgba(0, 0, 0, .05), 0 1px 1px rgba(0, 0, 0, .03);--shadow-lg: 0 12px 32px rgba(0, 0, 0, .14), 0 2px 6px rgba(0, 0, 0, .06)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font:13px/1.45 var(--sans);color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;font-feature-settings:"cv11"}a{color:var(--ink);text-decoration:underline;text-decoration-color:#d4d4d4;text-underline-offset:3px}a:hover{text-decoration-color:var(--ink)}h1,h2,h3,h4{font-family:var(--sans);margin:0;color:var(--ink)}h1{font-size:21px;font-weight:700;letter-spacing:-.4px;line-height:1.2}h2{font-size:17px;font-weight:700;letter-spacing:-.3px}h3{font-size:13.5px;font-weight:700;letter-spacing:-.1px}h4,.label-mono{font-family:var(--mono);font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}code,.mono{font-family:var(--mono);font-size:11.5px}hr{border:0;border-top:1px solid var(--line);margin:20px 0}::selection{background:var(--hi);color:var(--ink)}.shell{display:grid;grid-template-columns:248px 1fr;height:100%}.sidebar{background:var(--surface);display:flex;flex-direction:column;overflow:hidden;border-right:1px solid var(--line)}.brand{padding:16px 18px 14px;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:6px}.brand-name{font-size:20px;font-weight:900;font-style:italic;letter-spacing:-.8px;text-transform:uppercase;color:var(--ink);line-height:1}.brand-sub{font-family:var(--mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.nav{flex:1;overflow-y:auto;padding:4px 10px 24px}.nav-section{padding:16px 8px 5px;font-family:var(--mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--faint)}.nav a,.nav button.navlink{display:flex;align-items:center;gap:9px;padding:5px 8px;color:var(--ink-2);font-size:13px;font-weight:500;border-radius:var(--r);text-decoration:none;background:none;border:1px solid transparent;width:100%;text-align:left;cursor:pointer;font-family:inherit}.nav a:hover{background:var(--paper);color:var(--ink)}.nav a.active{background:var(--hi-soft);border-color:var(--hi-line);color:var(--ink);font-weight:600}.nav .ico{width:15px;height:15px;flex:none;stroke-width:1.8}.fx-search{margin:2px 0 6px;position:relative}.fx-search input{width:100%;background:var(--paper);border:1px solid var(--line);color:var(--ink);padding:6px 10px 6px 29px;border-radius:var(--r);font:12.5px var(--sans)}.fx-search input:focus{background:#fff}.fx-search svg{position:absolute;left:9px;top:8px;width:14px;height:14px;color:var(--muted)}.fx-div{font-size:12.5px}.fx-div>button span:nth-child(2){white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fx-div>button{display:flex;width:100%;padding:3px 8px;background:none;border:0;color:var(--ink-2);cursor:pointer;font:12.5px var(--sans);text-align:left;gap:8px;border-radius:var(--r);align-items:center}.fx-div>button:hover{background:var(--paper);color:var(--ink)}.fx-div .code,.code-pill{display:inline-flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:9.5px;font-weight:500;min-width:24px;height:16px;padding:0 5px;border:1px solid var(--ink);border-radius:999px;color:var(--ink);background:#fff;line-height:1;flex:none}.fx-div .count{margin-left:auto;color:var(--faint);font-family:var(--mono);font-size:10px}.fx-list a{padding:3px 8px 3px 40px!important;font-size:12px!important;color:var(--ink-2)!important;font-weight:400!important}.fx-list a.active{background:var(--hi-soft)!important;color:var(--ink)!important}.sidebar-foot{border-top:1px solid var(--line);padding:10px 12px 10px 18px;font-size:12px;display:flex;align-items:center;justify-content:space-between;gap:8px}.sidebar-foot .who{font-weight:600;font-size:12.5px}.sidebar-foot .role{font-family:var(--mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.main{overflow-y:auto;height:100%}.page{padding:20px 28px 64px;max-width:1480px}.page-wide{max-width:none}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:16px}.page-head .eyebrow{font-size:12px;color:var(--muted);margin-bottom:4px}.page-head .eyebrow a{color:var(--muted)}.page-head .sub{color:var(--muted);margin-top:3px;font-size:12.5px}.actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow);overflow:hidden}.card.callout{border:1.5px solid var(--ink);box-shadow:none}.card-h{padding:11px 14px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px}.card-h h3{font-size:13px}.card-b{padding:14px}.grid{display:grid;gap:14px}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}.g-side{grid-template-columns:minmax(0,1fr) 340px}@media (max-width: 1100px){.g3,.g4,.g-side{grid-template-columns:1fr 1fr}}@media (max-width: 800px){.shell{grid-template-columns:1fr}.sidebar{display:none}.g2,.g3,.g4,.g-side{grid-template-columns:1fr}.page{padding:16px}}.stack{display:flex;flex-direction:column;gap:14px}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.spacer{flex:1}.muted{color:var(--muted)}.small{font-size:11.5px}.right{text-align:right}.nowrap{white-space:nowrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:5px 11px;border-radius:var(--r);border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);font:500 12.5px var(--sans);cursor:pointer;white-space:nowrap;line-height:1.3;text-decoration:none}.btn:hover{border-color:var(--ink);text-decoration:none}.btn:disabled{opacity:.4;cursor:default;border-color:var(--line-strong)}.btn-primary{background:var(--hi);border-color:var(--ink);color:var(--ink);font-weight:600}.btn-primary:hover{background:var(--hi-ring)}.btn-primary:disabled{background:var(--hi);border-color:var(--ink)}.btn-dark{background:var(--ink);border-color:var(--ink);color:#fff}.btn-ghost{border-color:transparent;background:transparent}.btn-ghost:hover{background:var(--paper);border-color:transparent}.btn-danger{color:var(--red)}.btn-danger:hover{border-color:var(--red)}.btn-sm{padding:3px 9px;font-size:12px}.btn-xs{padding:0 6px;font:500 10px var(--mono);text-transform:uppercase;letter-spacing:.04em;height:18px}.btn-mono{font:600 10.5px var(--mono);text-transform:uppercase;letter-spacing:.05em}.icon-btn{background:none;border:0;color:var(--faint);cursor:pointer;padding:2px 4px;font-size:12px}.icon-btn:hover{color:var(--red)}.seg{display:inline-flex;border:1px solid var(--line-strong);border-radius:7px;padding:2px;background:#fff;gap:2px}.seg button{border:0;background:none;padding:3px 9px;border-radius:5px;font:500 10.5px var(--mono);text-transform:uppercase;letter-spacing:.04em;color:var(--muted);cursor:pointer}.seg button.on{background:var(--ink);color:#fff}label.f{display:flex;flex-direction:column;gap:4px;font-size:11.5px;color:var(--ink-2);font-weight:500}label.f .hint{font-weight:400;color:var(--faint)}input,select,textarea{font:13px var(--sans);color:var(--ink);background:#fff;border:1px solid var(--line-strong);border-radius:var(--r);padding:6px 9px;width:100%}input:hover,select:hover,textarea:hover{border-color:#a8a8a8}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px #ffdd008c}textarea{resize:vertical;min-height:80px;line-height:1.5}input[type=checkbox],input[type=radio]{width:auto;accent-color:var(--ink)}.form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px 14px}.unit-input{position:relative}.unit-input input{padding-right:52px}.unit-input span{position:absolute;right:9px;top:50%;transform:translateY(-50%);font:10px var(--mono);text-transform:uppercase;color:var(--faint);pointer-events:none}table.t select.code-pill,select.code-pill{border:1px solid var(--ink)!important;border-radius:999px!important;background:#fff!important;width:34px!important}select.code-pill{height:18px;padding:0 4px;font-size:10px;-webkit-appearance:none;-moz-appearance:none;appearance:none;text-align:center;cursor:pointer}table.t{width:100%;border-collapse:collapse;font-size:12.5px}table.t th{text-align:left;font:500 9.5px var(--mono);text-transform:uppercase;letter-spacing:.05em;color:var(--muted);padding:8px 10px;border-bottom:1px solid var(--line);background:#fff;white-space:nowrap;position:sticky;top:0;z-index:1}table.t td{padding:6px 10px;border-bottom:1px solid var(--line-2);vertical-align:middle}table.t tbody tr:hover td{background:#fafafa}table.t tr.hl td,table.t tbody tr.hl:hover td{background:var(--hi-soft)}table.t tr.hl td:first-child{box-shadow:inset 2px 0 0 var(--hi)}table.t td.num,table.t th.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}table.t tr.group td{background:#fff;font-weight:600;font-size:12.5px;color:var(--ink);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding-top:8px;padding-bottom:8px}table.t tr.total td{font-weight:700;border-top:1px solid var(--line);background:#fff}table.t input,table.t select{padding:2px 6px;font-size:12.5px;border-color:transparent;background:transparent}table.t input:hover,table.t select:hover{border-color:var(--line-strong);background:#fff}table.t input:focus{background:#fff;border-color:var(--ink);box-shadow:0 0 0 2px #ffdd008c}.table-wrap{overflow:auto}.badge{display:inline-flex;align-items:center;height:18px;padding:0 6px;border-radius:4px;font:500 9.5px var(--mono);text-transform:uppercase;letter-spacing:.04em;background:#fff;color:var(--ink-2);border:1px solid var(--line-strong);white-space:nowrap}.badge.accent{background:var(--ink);color:var(--hi);border-color:var(--ink)}.badge.ok{background:var(--green-soft);color:var(--green);border-color:#bfe3cc}.badge.warn{background:var(--hi);color:var(--ink);border-color:var(--ink)}.badge.crit{background:var(--red-soft);color:var(--red);border-color:#f3c3be}.dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--green);margin-right:6px;vertical-align:1px}.kpi{padding:13px 14px}.kpi .label{font:500 9.5px var(--mono);text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.kpi .value{font-size:22px;font-weight:700;letter-spacing:-.6px;margin-top:6px;font-variant-numeric:tabular-nums}.kpi .delta{font-size:11.5px;color:var(--muted);margin-top:2px}.tabs{display:inline-flex;gap:2px;border:1px solid var(--line-strong);border-radius:8px;padding:2px;background:#fff;margin-bottom:16px;overflow-x:auto;max-width:100%}.tabs a,.tabs button{padding:5px 11px;font:500 12.5px var(--sans);color:var(--muted);border:0;background:none;border-radius:6px;cursor:pointer;white-space:nowrap;text-decoration:none}.tabs a:hover,.tabs button:hover{color:var(--ink);background:var(--paper)}.tabs a.active,.tabs button.active{color:#fff;background:var(--ink)}.progress{height:6px;background:var(--line-2);border-radius:999px;overflow:hidden}.progress>div{height:100%;background:var(--hi);border-right:1px solid var(--ink)}.progress.lg{height:12px;border:1px solid var(--ink)}.empty{padding:44px 20px;text-align:center;color:var(--muted)}.empty h3{color:var(--ink);margin-bottom:6px}.notice{padding:9px 12px;border:1px solid var(--hi-line);background:var(--hi-soft);color:var(--ink);border-radius:var(--r);font-size:12.5px}.notice.info{border-color:var(--line-strong);background:#fafafa;color:var(--ink-2)}.notice.err{border-color:#f3c3be;background:var(--red-soft);color:var(--red)}.modal-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0a0a52;display:flex;align-items:flex-start;justify-content:center;padding:6vh 16px;z-index:50;overflow-y:auto}.modal{background:var(--surface);border-radius:12px;width:100%;max-width:640px;border:1px solid var(--line);box-shadow:var(--shadow-lg)}.modal.lg{max-width:980px}.modal-h{padding:13px 18px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.modal-h h3{font-size:14px}.modal-b{padding:18px}.modal-f{padding:11px 18px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:8px;background:#fafafa;border-radius:0 0 12px 12px}.fx-expr{font-family:var(--mono);font-size:11.5px;background:#fafafa;border:1px solid var(--line);padding:10px 14px;border-radius:var(--r);line-height:1.9;color:var(--ink-2)}.fx-out{display:grid;grid-template-columns:1fr auto;border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden}.fx-out>div{padding:7px 12px;border-bottom:1px solid var(--line-2);font-size:12.5px;display:flex;align-items:center}.fx-out>div:nth-last-child(-n+2){border-bottom:0}.fx-out .v{justify-content:flex-end;font-variant-numeric:tabular-nums}.fx-out .v .small{font-family:var(--mono);font-size:9.5px;text-transform:uppercase;margin-left:4px}.fx-out .primary{background:var(--hi-soft);font-weight:700;border-bottom-color:var(--hi-line)}.ref{font-size:12px;padding:8px 0;border-bottom:1px solid var(--line-2)}.ref b{font-weight:600}.gantt{display:grid;grid-template-columns:auto 1fr;border:1px solid var(--line);background:#fff;border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow)}.gantt-grid{border-right:1px solid var(--line);overflow-x:auto;overflow-y:hidden;max-width:min(740px,54vw)}.gantt-grid table{border-collapse:collapse;font-size:12px}.gantt-grid th{height:44px;font:500 9.5px var(--mono);text-transform:uppercase;letter-spacing:.05em;color:var(--muted);text-align:left;padding:0 8px;background:#fff;border-bottom:1px solid var(--line);white-space:nowrap}.gantt-grid td{height:30px;padding:0 6px;border-bottom:1px solid var(--line-2);white-space:nowrap}.gantt-grid td input{border:1px solid transparent;padding:2px 4px;font-size:12px;background:transparent}.gantt-grid td input:hover{border-color:var(--line-strong)}.gantt-grid tr.crit td.name{box-shadow:inset 2px 0 0 var(--red)}.gantt-grid tr.ms td.name,.gantt-grid tr.ms td.name input{font-weight:600}.gantt-grid tr.sel td{background:var(--hi-soft)}.gantt-chart{overflow-x:auto;position:relative}.gantt-legend{display:flex;gap:14px;font-size:11.5px;color:var(--muted);align-items:center;flex-wrap:wrap}.gantt-legend i{display:inline-block;width:18px;height:8px;border-radius:999px;vertical-align:middle;margin-right:5px;border:1px solid var(--ink)}.cal{display:grid;grid-template-columns:repeat(7,1fr);background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow)}.cal .dow{padding:8px 10px;font:500 9.5px var(--mono);text-transform:uppercase;letter-spacing:.05em;color:var(--muted);border-right:1px solid var(--line-2);border-bottom:1px solid var(--line)}.cal .day{min-height:112px;border-right:1px solid var(--line-2);border-bottom:1px solid var(--line-2);padding:6px;font-size:12px;cursor:pointer}.cal .dow:nth-child(7n),.cal .day:nth-child(7n){border-right:0}.cal .day:hover{background:#fcfcfc}.cal .day.other{background:#fafafa;color:var(--faint)}.cal .day.today .dnum{background:var(--ink);color:var(--hi);border-radius:4px;padding:0 5px}.cal .dnum{font:500 11px var(--mono);display:inline-block;margin-bottom:4px}.cal .ev{display:block;padding:1px 6px;margin-bottom:2px;border-radius:4px;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:#f4f4f4;color:var(--ink-2);border:1px solid var(--line);text-decoration:none}.cal .ev.ms{background:var(--hi);color:var(--ink);border-color:var(--ink);font-weight:600}.cal .ev.crit{background:var(--red-soft);color:var(--red);border-color:#f3c3be}.cal .ev.inspection{background:var(--green-soft);color:var(--green);border-color:#bfe3cc}.cal .ev:not(.task):not(.ms):not(.crit):not(.inspection){background:var(--hi-soft);border-color:var(--hi-line);color:var(--ink)}.auth{min-height:100%;display:grid;grid-template-columns:1.1fr 1fr}.auth-art{background-color:var(--hi);background-image:linear-gradient(rgba(0,0,0,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(0,0,0,.06) 1px,transparent 1px);background-size:24px 24px;color:var(--ink);padding:44px 52px;display:flex;flex-direction:column;justify-content:space-between;border-right:1px solid var(--ink)}.auth-art h1{font-size:38px;font-weight:800;line-height:1.08;letter-spacing:-1.4px;max-width:520px}.auth-art p{color:var(--ink)!important;font-size:15px}.auth-form{display:flex;align-items:center;justify-content:center;padding:40px;background:var(--surface)}.auth-form form{width:100%;max-width:360px;display:flex;flex-direction:column;gap:14px}.auth-form h2{font-size:22px}@media (max-width: 800px){.auth{grid-template-columns:1fr}.auth-art{display:none}}.doc-page{background:#fff;width:8.5in;min-height:11in;margin:24px auto;padding:.75in .8in;border:1px solid var(--line);box-shadow:var(--shadow-lg);font-size:10.5pt;line-height:1.5;color:#0a0a0a}.doc-page h1,.doc-page h2,.doc-page h3{font-weight:700;letter-spacing:-.2px}.lh{display:flex;justify-content:space-between;align-items:flex-end;padding-bottom:14px;border-bottom:2.5px solid #0a0a0a;margin-bottom:3px}.lh-rule{border-bottom:1px solid #0a0a0a;margin-bottom:26px}.lh .co{font-size:22pt;font-weight:800;letter-spacing:-.7px;line-height:1}.lh .tag{font-size:9pt;color:#444;margin-top:6px}.lh .addr{text-align:right;font-size:8.5pt;color:#333;line-height:1.55}.lh img{max-height:64px;max-width:220px}.doc-page table{width:100%;border-collapse:collapse;font-size:9pt}.doc-page table th{text-align:left;border-bottom:1px solid #0a0a0a;padding:5px 6px;font:500 7.5pt var(--mono);text-transform:uppercase;letter-spacing:.04em;color:#555}.doc-page table td{padding:4px 6px;border-bottom:1px solid #e6e6e6;vertical-align:top}.doc-page table td.num,.doc-page table th.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.doc-page table tr.group td{font-weight:700;border-top:1px solid #bbb}.doc-page table tr.total td{border-top:1.5px solid #0a0a0a;font-weight:700}.doc-foot{margin-top:40px;padding-top:10px;border-top:1px solid #0a0a0a;font:7.5pt var(--mono);text-transform:uppercase;color:#666;display:flex;justify-content:space-between}.sig{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-top:40px}.sig .line{border-bottom:1px solid #0a0a0a;height:36px}.sig .cap{font-size:8.5pt;color:#444;margin-top:4px}.print-bar{position:sticky;top:0;background:#fff;color:var(--ink);padding:8px 20px;display:flex;gap:10px;align-items:center;z-index:5;border-bottom:1px solid var(--line)}.pre{white-space:pre-wrap}@media print{body{background:#fff}.print-bar,.no-print{display:none!important}.doc-page{border:0;box-shadow:none;margin:0;width:auto;min-height:0;padding:0}@page{size:letter;margin:.6in .7in}tr{page-break-inside:avoid}}.takeoff{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:14px;height:calc(100vh - 150px)}.takeoff-canvas{position:relative;overflow:auto;background-color:#ececec;background-image:linear-gradient(rgba(0,0,0,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(0,0,0,.04) 1px,transparent 1px);background-size:20px 20px;border:1px solid var(--line);border-radius:var(--r-lg)}.takeoff-canvas canvas{display:block;cursor:crosshair}.toolbar{display:inline-flex;gap:2px;border:1px solid var(--line-strong);border-radius:8px;padding:2px;background:#fff}.toolbar .btn{border-color:transparent}.toolbar .btn.on{background:var(--ink);color:#fff}.portal-top{background:#fff;color:var(--ink);padding:0 28px;display:flex;align-items:center;height:54px;gap:18px;border-bottom:1px solid var(--line)}.portal-top .brand-name{font-size:16px;text-transform:none;font-style:normal;letter-spacing:-.3px;font-weight:800}.portal-top a{font-size:12.5px;font-weight:500}.big-pct{font-size:52px;font-weight:800;line-height:1;color:var(--ink);letter-spacing:-2px;font-variant-numeric:tabular-nums}.donut-label{font-weight:800;letter-spacing:-.8px}.timeline-item{display:grid;grid-template-columns:100px 1fr;gap:14px;padding:10px 0;border-bottom:1px solid var(--line-2)}
