@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/fira-sans-cyrillic-ext-400-normal-Cycyekte.woff2)format("woff2"),url(/assets/fira-sans-cyrillic-ext-400-normal-Dd5dApAy.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/fira-sans-cyrillic-400-normal-CKu2TFQr.woff2)format("woff2"),url(/assets/fira-sans-cyrillic-400-normal-D9eUeF-O.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/fira-sans-greek-ext-400-normal-ByG7UNQ2.woff2)format("woff2"),url(/assets/fira-sans-greek-ext-400-normal-ClCfNE6D.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/fira-sans-greek-400-normal-BFCFncbp.woff2)format("woff2"),url(/assets/fira-sans-greek-400-normal-DQ8sF22y.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/fira-sans-vietnamese-400-normal-ljDTQFsx.woff2)format("woff2"),url(/assets/fira-sans-vietnamese-400-normal-DUVG35gE.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/fira-sans-latin-ext-400-normal-BLG_mAEf.woff2)format("woff2"),url(/assets/fira-sans-latin-ext-400-normal-BCUwhuGB.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,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:Fira Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/fira-sans-latin-400-normal-a0AnQzuD.woff2)format("woff2"),url(/assets/fira-sans-latin-400-normal-66xCkunx.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/fira-sans-cyrillic-ext-500-normal-Dkk5LlrU.woff2)format("woff2"),url(/assets/fira-sans-cyrillic-ext-500-normal-Cixivk4R.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/fira-sans-cyrillic-500-normal-CXfldnQ8.woff2)format("woff2"),url(/assets/fira-sans-cyrillic-500-normal-Daski1k2.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/fira-sans-greek-ext-500-normal-nq-cjB3m.woff2)format("woff2"),url(/assets/fira-sans-greek-ext-500-normal-Bem4H9fH.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/fira-sans-greek-500-normal-Cy-TUuxE.woff2)format("woff2"),url(/assets/fira-sans-greek-500-normal-C9KT8sAy.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/fira-sans-vietnamese-500-normal-ChEXCnJy.woff2)format("woff2"),url(/assets/fira-sans-vietnamese-500-normal-UV7M6ot_.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/fira-sans-latin-ext-500-normal-OO1QnNpY.woff2)format("woff2"),url(/assets/fira-sans-latin-ext-500-normal-CFRf4jcC.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,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:Fira Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/fira-sans-latin-500-normal-Bvbxc8ch.woff2)format("woff2"),url(/assets/fira-sans-latin-500-normal-Bkfzcwmr.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/fira-sans-cyrillic-ext-600-normal-CE6oUZE1.woff2)format("woff2"),url(/assets/fira-sans-cyrillic-ext-600-normal-BKgjRriM.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/fira-sans-cyrillic-600-normal-JSBvCpTs.woff2)format("woff2"),url(/assets/fira-sans-cyrillic-600-normal-CJ5P9t7t.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/fira-sans-greek-ext-600-normal-fS0evUH3.woff2)format("woff2"),url(/assets/fira-sans-greek-ext-600-normal-DPxZoeHL.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/fira-sans-greek-600-normal-BlqpLOpF.woff2)format("woff2"),url(/assets/fira-sans-greek-600-normal-DfHu91YF.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/fira-sans-vietnamese-600-normal-Dh2KAvU8.woff2)format("woff2"),url(/assets/fira-sans-vietnamese-600-normal-Bxjaclsw.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/fira-sans-latin-ext-600-normal-DTQBTt1m.woff2)format("woff2"),url(/assets/fira-sans-latin-ext-600-normal-DLMQsaV4.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,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:Fira Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/fira-sans-latin-600-normal-CXKlxLG9.woff2)format("woff2"),url(/assets/fira-sans-latin-600-normal-DtSgd811.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/fira-sans-cyrillic-ext-700-normal-BfO9TR-w.woff2)format("woff2"),url(/assets/fira-sans-cyrillic-ext-700-normal-Gcpdxicj.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/fira-sans-cyrillic-700-normal-Bl-HczEO.woff2)format("woff2"),url(/assets/fira-sans-cyrillic-700-normal-KyW5QH4H.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/fira-sans-greek-ext-700-normal-C1m6bE4Q.woff2)format("woff2"),url(/assets/fira-sans-greek-ext-700-normal-C8J5qYMq.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/fira-sans-greek-700-normal-BVfcrbV7.woff2)format("woff2"),url(/assets/fira-sans-greek-700-normal-CJu31rC4.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/fira-sans-vietnamese-700-normal-j5oLGLJY.woff2)format("woff2"),url(/assets/fira-sans-vietnamese-700-normal-DFi88MGY.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/fira-sans-latin-ext-700-normal-g2Yrd4J5.woff2)format("woff2"),url(/assets/fira-sans-latin-ext-700-normal-cfTxGFzJ.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,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:Fira Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/fira-sans-latin-700-normal-CRhwpWTq.woff2)format("woff2"),url(/assets/fira-sans-latin-700-normal-DgqLm3Fi.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:#f8fafc;--surface:#fff;--surface-muted:#eef2f6;--text:#0f172a;--text-muted:#475569;--border:#cbd5e1;--border-strong:#94a3b8;--brand:#003d7c;--on-brand:#f8fafc;--on-brand-muted:#c7d6e8;--accent:#0074bf;--accent-hover:#005c99;--on-accent:#fff;--accent-text:#0067aa;--accent-soft:#e3f0fa;--highlight:#fdc22b;--on-highlight:#000;--highlight-soft:#fff5d6;--highlight-line:#b07d00;--danger:#b91c1c;--on-danger:#fff;--danger-soft:#fee2e2;--warning:#b45309;--warning-soft:#fef3c7;--success:#15803d;--success-soft:#dcfce7;--focus:#2563eb;--proj-0:#2563eb;--proj-1:#7c3aed;--proj-2:#0e7490;--proj-3:#15803d;--proj-4:#c2410c;--proj-5:#be185d;--font:"Fira Sans", system-ui, "Segoe UI", Roboto, sans-serif;--text-xs:.75rem;--text-sm:.875rem;--text-md:1rem;--text-lg:1.125rem;--text-xl:1.375rem;--text-2xl:1.75rem;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--space-8:32px;--space-12:48px;--radius:6px;--radius-lg:10px;--target:44px;--target-lg:48px;--shadow-sheet:0 12px 32px #0f172a2e;--z-nav:10;--z-sticky:20;--z-dialog:100;--dur-fast:.15s;--dur-enter:.2s;--ease-out:cubic-bezier(.2, 0, 0, 1);--nav-height:64px;--topbar-height:56px;--sidebar-width:240px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-reduced-motion:reduce){:root{--dur-fast:0s;--dur-enter:0s}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);font:400 var(--text-md) / 1.5 var(--font);-webkit-font-smoothing:antialiased;margin:0}h1,h2,h3{text-wrap:balance;margin:0;font-weight:600;line-height:1.25}h1{font-size:var(--text-2xl)}h2{font-size:var(--text-lg)}h3{font-size:var(--text-md)}p{margin:0}a{color:inherit}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.num{font-variant-numeric:tabular-nums}.muted{color:var(--text-muted)}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.skip-link{left:var(--space-2);z-index:var(--z-dialog);background:var(--surface);padding:var(--space-2) var(--space-4);border-radius:var(--radius);position:absolute;top:-100px}.skip-link:focus{top:var(--space-2)}.shell{min-height:100dvh}.topbar{z-index:var(--z-sticky);justify-content:space-between;align-items:center;gap:var(--space-3);height:calc(var(--topbar-height) + env(safe-area-inset-top));padding:env(safe-area-inset-top) var(--space-4) 0;background:var(--brand);color:var(--on-brand);display:flex;position:sticky;top:0}.wordmark{align-items:center;gap:var(--space-2);letter-spacing:.02em;color:var(--on-brand);font-weight:700;text-decoration:none;display:flex}.main{max-width:none;padding:var(--space-4) var(--space-4) calc(var(--nav-height) + var(--space-8) + env(safe-area-inset-bottom));margin:0 auto}.bottom-nav{z-index:var(--z-nav);height:calc(var(--nav-height) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--surface);border-top:1px solid var(--border);grid-auto-columns:1fr;grid-auto-flow:column;display:grid;position:fixed;inset:auto 0 0}.nav-link{min-height:var(--target);color:var(--text-muted);font-size:var(--text-xs);touch-action:manipulation;transition:color var(--dur-fast) var(--ease-out);flex-direction:column;justify-content:center;align-items:center;gap:2px;font-weight:500;text-decoration:none;display:flex}.nav-link[aria-current=page]{color:var(--text);font-weight:600}.nav-link[aria-current=page] .nav-icon{background:var(--accent-soft);color:var(--accent-text)}.nav-icon{border-radius:14px;place-items:center;width:56px;height:28px;display:grid}.sidebar{display:none}@media (width>=1024px){.shell{grid-template-columns:var(--sidebar-width) 1fr;display:grid}.topbar,.bottom-nav{display:none}.sidebar{gap:var(--space-6);height:100dvh;padding:var(--space-6) var(--space-4);background:var(--brand);color:var(--on-brand);flex-direction:column;display:flex;position:sticky;top:0}.sidebar nav{gap:var(--space-1);flex-direction:column;display:flex}.sidebar .nav-link{justify-content:flex-start;gap:var(--space-3);padding:0 var(--space-3);border-radius:var(--radius);color:var(--on-brand-muted);font-size:var(--text-md);flex-direction:row}.sidebar .nav-link:hover{color:var(--on-brand);background:#ffffff14}.sidebar .nav-link[aria-current=page]{color:var(--on-brand);box-shadow:inset 3px 0 0 var(--highlight);background:#ffffff1f}.sidebar .nav-icon,.sidebar .nav-link[aria-current=page] .nav-icon{width:auto;height:auto;color:inherit;background:0 0}.sidebar-foot{gap:var(--space-3);flex-direction:column;margin-top:auto;display:flex}.main{width:100%;padding:var(--space-6) var(--space-6) var(--space-12)}}.user-chip{align-items:center;gap:var(--space-2);min-width:0;color:var(--on-brand-muted);font-size:var(--text-sm);display:flex}.user-chip strong{color:var(--on-brand);text-overflow:ellipsis;white-space:nowrap;font-weight:600;display:block;overflow:hidden}.sync-pill{align-items:center;gap:var(--space-2);min-height:36px;padding:0 var(--space-3);font-size:var(--text-sm);white-space:nowrap;border:1px solid #0000;border-radius:18px;font-weight:600;text-decoration:none;display:inline-flex}.sync-pill[data-tone=success]{background:var(--success-soft);color:var(--success)}.sync-pill[data-tone=warning]{background:var(--warning-soft);color:var(--warning)}.sync-pill[data-tone=danger]{background:var(--danger-soft);color:var(--danger);border-color:var(--danger)}.sync-pill[data-tone=neutral]{background:var(--surface-muted);color:var(--text)}.page-header{justify-content:space-between;align-items:flex-end;gap:var(--space-3) var(--space-4);margin-bottom:var(--space-6);flex-wrap:wrap;display:flex}.page-header-text{gap:var(--space-1);flex-direction:column;min-width:0;display:flex}.page-header-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.back-link{align-items:center;gap:var(--space-1);min-height:var(--target);margin:calc(var(--space-2) * -1) 0 0;color:var(--text-muted);font-weight:500;text-decoration:none;display:inline-flex}.back-link:hover{color:var(--text)}.btn{justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--target);padding:0 var(--space-4);border-radius:var(--radius);font:600 var(--text-md) / 1 var(--font);cursor:pointer;touch-action:manipulation;transition:background-color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);border:1px solid #0000;text-decoration:none;display:inline-flex}.btn-primary{background:var(--accent);color:var(--on-accent)}.btn-primary:hover{background:var(--accent-hover)}.btn-secondary{background:var(--surface);color:var(--text);border-color:var(--border-strong)}.btn-secondary:hover{background:var(--surface-muted)}.btn-ghost{color:var(--text);background:0 0}.btn-ghost:hover{background:var(--surface-muted)}.btn-danger{background:var(--danger);color:var(--on-danger)}.btn-danger-quiet{color:var(--danger);border-color:var(--danger);background:0 0}.btn-danger-quiet:hover{background:var(--danger-soft)}.btn-icon{width:var(--target);padding:0}.btn[disabled],.btn[aria-disabled=true]{opacity:.45;cursor:not-allowed}@media (width<=767px){.btn-primary{min-height:var(--target-lg)}}.field{gap:var(--space-1);flex-direction:column;min-width:0;display:flex}.field-label{font-size:var(--text-sm);font-weight:600}.field-hint{font-size:var(--text-sm);color:var(--text-muted)}.field-error{font-size:var(--text-sm);color:var(--danger);font-weight:500}.input,.select{width:100%;min-height:var(--target);padding:0 var(--space-3);border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface);color:var(--text);font:inherit}.input[aria-invalid=true]{border-color:var(--danger)}.form-grid{gap:var(--space-4);display:grid}@media (width>=640px){.form-grid.two{grid-template-columns:1fr 1fr}.form-grid .span-2{grid-column:1/-1}}.check{align-items:center;gap:var(--space-3);min-height:var(--target);cursor:pointer;display:flex}.check input{width:22px;height:22px;accent-color:var(--accent);margin:0}.search{flex:1;min-width:200px;position:relative}.search .input{padding-left:40px}.search svg{color:var(--text-muted);pointer-events:none;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.toolbar{gap:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap;align-items:center;display:flex}.chips{gap:var(--space-2);flex-wrap:wrap;display:flex}.chip{align-items:center;gap:var(--space-1);min-height:36px;padding:0 var(--space-3);border:1px solid var(--border-strong);background:var(--surface);color:var(--text);font:500 var(--text-sm) / 1 var(--font);cursor:pointer;touch-action:manipulation;border-radius:18px;display:inline-flex}.chip[aria-pressed=true]{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}.badge{align-items:center;gap:var(--space-1);padding:2px var(--space-2);font-size:var(--text-xs);white-space:nowrap;background:var(--surface-muted);color:var(--text);border-radius:4px;font-weight:600;line-height:1.5;display:inline-flex}.badge[data-tone=accent]{background:var(--accent-soft);color:var(--accent-text)}.badge[data-tone=success]{background:var(--success-soft);color:var(--success)}.badge[data-tone=warning]{background:var(--warning-soft);color:var(--warning)}.badge[data-tone=danger]{background:var(--danger-soft);color:var(--danger)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg)}.card-pad{padding:var(--space-4)}.section{margin-top:var(--space-8)}.section-head{justify-content:space-between;align-items:center;gap:var(--space-2);margin-bottom:var(--space-3);flex-wrap:wrap;display:flex}.list{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);margin:0;padding:0;list-style:none;overflow:hidden}.list>li+li{border-top:1px solid var(--border)}.row{gap:var(--space-1) var(--space-4);width:100%;min-height:64px;padding:var(--space-3) var(--space-4);color:inherit;font:inherit;text-align:left;background:0 0;border:0;grid-template-columns:1fr auto;align-items:center;text-decoration:none;display:grid}a.row,button.row{cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out)}a.row:hover,button.row:hover{background:var(--surface-muted)}.row-title{overflow-wrap:anywhere;font-weight:600}.row-meta{gap:var(--space-1) var(--space-3);color:var(--text-muted);font-size:var(--text-sm);flex-wrap:wrap;display:flex}.row-meta>span{align-items:center;gap:var(--space-1);display:inline-flex}.row-side{align-items:flex-end;gap:var(--space-1);flex-direction:column;display:flex}@media (width>=768px){.row.wide{grid-template-columns:minmax(0,2fr) minmax(0,1.4fr) minmax(0,1fr) auto}}.people{gap:var(--space-2);flex-wrap:wrap;display:flex}.person-chip{align-items:center;gap:var(--space-1);min-height:36px;padding:0 var(--space-1) 0 var(--space-3);background:var(--surface-muted);font-size:var(--text-sm);border-radius:18px;font-weight:500;display:inline-flex}.person-chip.static{padding-right:var(--space-3)}.person-chip .btn-icon{border-radius:16px;width:32px;min-height:32px}.empty{align-items:center;gap:var(--space-2);padding:var(--space-8) var(--space-4);text-align:center;color:var(--text-muted);flex-direction:column;display:flex}.empty svg{color:var(--border-strong)}.empty h2,.empty h3{color:var(--text)}.empty .btn{margin-top:var(--space-2)}.dialog{border-radius:var(--radius-lg) var(--radius-lg) 0 0;background:var(--surface);width:100%;max-width:100%;max-height:92dvh;color:var(--text);box-shadow:var(--shadow-sheet);border:0;margin:auto 0 0;padding:0}.dialog[open]{animation:sheet-in var(--dur-enter) var(--ease-out);flex-direction:column;display:flex}.dialog::backdrop{background:#0f172a8c}@keyframes sheet-in{0%{opacity:0;transform:translateY(24px)}}@media (width>=640px){.dialog{border-radius:var(--radius-lg);max-width:560px;margin:auto}.dialog.wide{max-width:760px}}.dialog-head{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-3) var(--space-3) var(--space-6);border-bottom:1px solid var(--border);display:flex}.dialog-body{padding:var(--space-6);overscroll-behavior:contain;overflow-y:auto}.dialog-foot{gap:var(--space-2);padding:var(--space-3) var(--space-6) calc(var(--space-3) + env(safe-area-inset-bottom));border-top:1px solid var(--border);flex-wrap:wrap-reverse;justify-content:flex-end;display:flex}.dialog-foot .spacer{flex:1}.alert{gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius);border:1px solid;display:flex}.alert[data-tone=danger]{background:var(--danger-soft);border-color:var(--danger);color:var(--text)}.alert[data-tone=danger]>svg{color:var(--danger);flex-shrink:0}.alert[data-tone=info]{background:var(--surface-muted);border-color:var(--border)}.week-nav{align-items:center;gap:var(--space-2);display:flex}.day{margin-top:var(--space-6)}.day-head{align-items:baseline;gap:var(--space-2);margin-bottom:var(--space-2);display:flex}.day-head h2{font-size:var(--text-md)}.day[data-today=true] .day-head h2{color:var(--accent-text)}.day-empty{padding:var(--space-3) var(--space-4);border:1px dashed var(--border);border-radius:var(--radius-lg);color:var(--text-muted);font-size:var(--text-sm)}.job-card{gap:var(--space-2);padding:var(--space-4);border-left:4px solid var(--accent);display:grid}.job-card+.job-card{margin-top:var(--space-2)}.job-card .row-title{font-size:var(--text-lg)}.grid-scroll{border:1px solid var(--border);border-radius:var(--radius);overflow-x:auto}.assign-grid{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.assign-grid th,.assign-grid td{border-bottom:1px solid var(--border);text-align:center;padding:0}.assign-grid thead th{padding:var(--space-2);background:var(--surface-muted);white-space:nowrap;font-weight:600}.assign-grid tbody th{padding:0 var(--space-3);background:var(--surface);text-align:left;white-space:nowrap;font-weight:500;position:sticky;left:0}.assign-grid label{min-width:var(--target);min-height:var(--target);cursor:pointer;place-items:center;display:grid}.assign-grid input{width:22px;height:22px;accent-color:var(--accent);margin:0}.table-wrap{overflow-x:auto}.gate{min-height:100dvh;padding:var(--space-6) var(--space-4);background:var(--brand);color:var(--on-brand);place-items:center;display:grid}.gate-card{gap:var(--space-6);width:100%;max-width:760px;padding:var(--space-12) var(--space-12);border-radius:var(--radius-lg);background:var(--surface);color:var(--text);box-shadow:var(--shadow-sheet);flex-direction:column;display:flex}.gate-card .wordmark{color:var(--text);font-size:var(--text-lg)}.gate-card .btn{width:100%}.stack{gap:var(--space-4);flex-direction:column;display:flex}.stack-sm{gap:var(--space-2);flex-direction:column;display:flex}.inline{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.btn-ghost.on-brand{color:var(--on-brand)}.btn-ghost.on-brand:hover{background:#ffffff1f}.row.wide>:not(.row-side){grid-column:1}.row.wide>.row-side{grid-area:1/2/span 3;align-self:start}@media (width>=768px){.row.wide>:not(.row-side),.row.wide>.row-side{grid-area:auto;align-self:center}}fieldset{border:0;min-width:0;margin:0;padding:0}.dialog-body{overflow-x:hidden}.dep-row{align-items:center;gap:var(--space-2) var(--space-3);padding:var(--space-2) 0 var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius);flex-wrap:wrap;display:flex}.dep-name{flex:1;min-width:160px;font-weight:500}.dep-lag{align-items:center;gap:var(--space-2);color:var(--text-muted);font-size:var(--text-sm);display:inline-flex}.dep-lag .input{text-align:center;width:72px}.alert[data-tone=warning]{background:var(--warning-soft);border-color:var(--warning);color:var(--text)}.alert[data-tone=warning]>svg{color:var(--warning);flex-shrink:0}.move-list{gap:var(--space-1);margin:0;padding:0;list-style:none;display:grid}.move-list li{justify-content:space-between;gap:0 var(--space-3);flex-wrap:wrap;display:flex}.move-name{font-weight:500}.move-dates{align-items:center;gap:var(--space-1);font-size:var(--text-sm);display:inline-flex}.gantt-card{overflow:hidden}.gantt-toolbar{align-items:center;gap:var(--space-3) var(--space-6);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border);flex-wrap:wrap;display:flex}.gantt-legend{gap:var(--space-2) var(--space-4);font-size:var(--text-sm);color:var(--text-muted);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.gantt-legend li{align-items:center;gap:var(--space-2);display:inline-flex}.swatch{border:1px solid var(--border-strong);background:var(--surface-muted);border-radius:3px;width:20px;height:12px;display:inline-block}.gantt-finish{font-size:var(--text-sm);margin-left:auto}.gantt-scroll{overscroll-behavior:contain;max-height:70dvh;overflow:auto}.gantt{position:relative}.gantt-head{z-index:6;background:var(--surface);border-bottom:1px solid var(--border);display:flex;position:sticky;top:0}.gantt-corner{z-index:7;padding:0 var(--space-4) var(--space-2);background:var(--surface);border-right:1px solid var(--border);font-size:var(--text-sm);color:var(--text-muted);flex-shrink:0;align-items:flex-end;font-weight:600;display:flex;position:sticky;left:0}.gantt-scale{flex-shrink:0;position:relative}.gantt-month{font-size:var(--text-xs);white-space:nowrap;border-left:1px solid var(--border);padding-left:6px;font-weight:600;position:absolute;top:4px}.gantt-day{text-align:center;font-size:var(--text-xs);color:var(--text-muted);white-space:nowrap;position:absolute;bottom:6px}.gantt-day[data-weekend=true]{opacity:.6}.gantt-day[data-today=true]{color:var(--accent-text);font-weight:700}.gantt-backdrop,.gantt-links{pointer-events:none;position:absolute}.gantt-weekend{background:var(--surface-muted);position:absolute;top:0;bottom:0}.gantt-today{background:var(--highlight-line);width:2px;margin-left:-1px;position:absolute;top:0;bottom:0}.gantt-links{z-index:1;color:var(--border-strong);overflow:visible}.gantt-link{fill:none;stroke:currentColor;stroke-width:1.5px}.gantt-link[data-broken=true]{color:var(--danger);stroke-dasharray:4 3}.gantt-row{border-bottom:1px solid var(--border);display:flex;position:relative}.gantt-label{z-index:4;padding:0 var(--space-4);border:0;border-right:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;text-align:left;cursor:pointer;flex-direction:column;flex-shrink:0;justify-content:center;gap:2px;display:flex;position:sticky;left:0}.gantt-label:hover{background:var(--surface-muted)}.gantt-label-name{text-overflow:ellipsis;white-space:nowrap;font-weight:600;font-size:var(--text-sm);overflow:hidden}.gantt-label-meta{gap:var(--space-2);white-space:nowrap;font-size:var(--text-xs);color:var(--text-muted);align-items:center;display:flex;overflow:hidden}.gantt-bar,.gantt-milestone{z-index:2;border:1px solid var(--border-strong);background:var(--surface-muted);height:28px;color:var(--text);cursor:pointer;touch-action:pan-x pan-y;transition:box-shadow var(--dur-fast) var(--ease-out);border-radius:5px;padding:0;position:absolute;top:10px}.gantt-bar[data-editable=true]{cursor:grab}.gantt-bar[data-dragging=true]{cursor:grabbing;box-shadow:var(--shadow-sheet);z-index:3}.gantt-bar[data-status=in_progress],.swatch[data-status=in_progress]{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.gantt-bar[data-status=done],.swatch[data-status=done]{background:var(--success-soft);border-color:var(--success);color:var(--success)}.gantt-bar[data-critical=true],.swatch[data-critical=true]{outline:2px solid var(--danger);outline-offset:1px}.swatch[data-critical=true]{background:var(--surface)}.gantt-bar-text{padding:0 var(--space-2);font-size:var(--text-xs);text-align:left;white-space:nowrap;font-weight:600;display:block;overflow:hidden}.gantt-resize{cursor:ew-resize;width:14px;position:absolute;top:-4px;bottom:-4px;right:-6px}.gantt-milestone{width:24px;color:var(--brand);background:0 0;border:0;place-items:center;display:grid}.gantt-milestone[data-critical=true]{color:var(--danger)}.board-scroll{overflow-x:auto}.board{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.board th,.board td{padding:var(--space-2);border-bottom:1px solid var(--border);border-left:1px solid var(--border);vertical-align:top;text-align:left}.board thead th{background:var(--surface-muted);white-space:nowrap;font-weight:600;position:sticky;top:0}.board thead th[data-today=true]{box-shadow:inset 0 -3px 0 var(--highlight-line)}.board td[data-today=true]{background:var(--highlight-soft)}.board-count{color:var(--text-muted);font-weight:400;font-size:var(--text-xs);display:block}.board .board-person{z-index:1;background:var(--surface);white-space:nowrap;border-left:0;min-width:160px;font-weight:500;position:sticky;left:0}.board thead .board-person{z-index:2;background:var(--surface-muted)}.board-group th{padding-top:var(--space-4);background:var(--surface);font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);border-left:0;font-weight:700;position:sticky;left:0}.board td{min-width:140px}.board-free{color:var(--border-strong)}.board-job{padding:var(--space-1) var(--space-2);border-left:4px solid var(--border-strong);background:var(--surface-muted);color:var(--text);border-radius:4px;flex-direction:column;line-height:1.3;text-decoration:none;display:flex}.board-job+.board-job{margin-top:var(--space-1)}.board-job:hover{background:var(--border)}.board-job span{color:var(--text-muted);overflow-wrap:anywhere}.cal{display:none;overflow:hidden}.cal-agenda{display:block}@media (width>=768px){.cal{display:block}.cal-agenda{display:none}}.cal-head,.cal-week{grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.cal-weekday{padding:var(--space-2);background:var(--surface-muted);font-size:var(--text-sm);border-bottom:1px solid var(--border);font-weight:600}.cal-day{min-height:116px;padding:var(--space-1) var(--space-1) var(--space-2);border-bottom:1px solid var(--border);border-left:1px solid var(--border);flex-direction:column;gap:3px;min-width:0;display:flex}.cal-day:first-child{border-left:0}.cal-day[data-weekend=true]{background:var(--bg)}.cal-day[data-outside=true] .cal-date{color:var(--border-strong)}.cal-date{padding:0 var(--space-1);font-size:var(--text-sm);color:var(--text-muted);align-self:flex-start;font-weight:600}.cal-day[data-today=true] .cal-date{background:var(--highlight);color:var(--on-highlight);border-radius:4px}.cal-item{padding:2px var(--space-2);border-left:4px solid var(--border-strong);background:var(--surface-muted);color:var(--text);font-size:var(--text-xs);text-overflow:ellipsis;white-space:nowrap;border-radius:3px;line-height:1.4;text-decoration:none;display:block;overflow:hidden}.cal-agenda .cal-item{min-height:var(--target);align-items:center;gap:var(--space-1);font-size:var(--text-md);white-space:normal;background:var(--surface);border:1px solid var(--border);border-left-width:4px;display:flex}.cal-item:hover{background:var(--border)}.cal-item-project{font-weight:700}.cal-more{min-height:24px;padding:0 var(--space-2);color:var(--accent-text);font:600 var(--text-xs) / 1 var(--font);cursor:pointer;background:0 0;border:0;align-self:flex-start}.board td[data-conflict=true]{background:var(--warning-soft)}.board-conflict{margin-bottom:var(--space-1);color:var(--warning);font-size:var(--text-xs);align-items:center;gap:2px;font-weight:700;display:inline-flex}@media (width<=767px){.board .board-person{white-space:normal;min-width:108px;max-width:108px}.board td{min-width:128px}}.logo{width:100%;height:auto;display:block}.logo-tile{padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);background:#fff}.gate-card .logo{width:100%;max-width:560px;margin:0 auto var(--space-4)}.gate-lead{font-size:var(--text-xl);text-align:center;margin:0;line-height:1.5}.gate-card .btn-lg{min-height:64px;font-size:var(--text-lg)}@media (width<=639px){.gate{padding:var(--space-4)}.gate-card{padding:var(--space-8) var(--space-6)}.gate-lead{font-size:var(--text-lg)}}.textarea{min-height:88px;padding:var(--space-2) var(--space-3);resize:vertical;line-height:1.5}.job-link{color:var(--text);text-decoration:none}.job-link:hover{text-decoration:underline}.entry-list{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.entry-row{gap:var(--space-2);padding:var(--space-2) var(--space-2) var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius);grid-template-columns:minmax(0,1fr) auto auto;grid-template-areas:"name hours remove""task task task";align-items:center;display:grid}.entry-name{grid-area:name;font-weight:600}.entry-hours{align-items:center;gap:var(--space-1);color:var(--text-muted);grid-area:hours;display:inline-flex}.entry-hours .input{text-align:center;width:80px}.entry-task{grid-area:task}.entry-row>.btn-icon{grid-area:remove}@media (width>=768px){.entry-row{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr) auto auto;grid-template-areas:"name task hours remove"}}.check-grid{gap:0 var(--space-4);margin-top:var(--space-2);grid-template-columns:repeat(auto-fill,minmax(180px,1fr));align-items:center;display:grid}.check-grid>.chip{justify-self:start}fieldset:disabled .btn,fieldset:disabled .input,fieldset:disabled .select{opacity:.6}.field-links{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(200px,1fr));margin:0;padding:0;list-style:none;display:grid}.field-link{align-items:center;gap:var(--space-3);min-height:64px;padding:var(--space-3) var(--space-4);color:var(--text);transition:background-color var(--dur-fast) var(--ease-out);text-decoration:none;display:flex}.field-link:hover{background:var(--surface-muted)}.field-link>svg{color:var(--accent);flex-shrink:0}.field-link>span{flex-direction:column;display:flex}.field-link-note{color:var(--warning);font-weight:600}.update-banner{z-index:var(--z-dialog);left:50%;bottom:calc(var(--nav-height) + var(--space-3) + env(safe-area-inset-bottom));align-items:center;gap:var(--space-2) var(--space-3);width:min(560px, calc(100% - 2 * var(--space-4)));padding:var(--space-2) var(--space-2) var(--space-2) var(--space-4);border-radius:var(--radius-lg);background:var(--brand);color:var(--on-brand);box-shadow:var(--shadow-sheet);flex-wrap:wrap;display:flex;position:fixed;transform:translate(-50%)}.update-banner>span{flex:1;min-width:160px}.update-banner .btn-ghost{color:var(--on-brand)}@media (width>=1024px){.update-banner{bottom:var(--space-6);left:calc(50% + var(--sidebar-width) / 2)}}@media print{.update-banner{display:none}}.print-only{display:none}@media print{@page{margin:16mm 14mm}body{background:#fff;font-size:11pt}.sidebar,.topbar,.bottom-nav,.skip-link,.main>:not(.print-only){display:none!important}.shell{display:block}.main{max-width:none;padding:0}.print-only{display:block}.print-log h1{margin-bottom:4pt;font-size:18pt}.print-log h2{text-transform:uppercase;letter-spacing:.06em;color:#333;margin:14pt 0 4pt;font-size:11pt}.print-head{border-bottom:2px solid #003d7c;align-items:center;gap:16pt;padding-bottom:10pt;display:flex}.print-logo{width:150pt;height:auto}.print-table{border-collapse:collapse;width:100%}.print-table th,.print-table td{text-align:left;border-bottom:1px solid #bbb;padding:3pt 6pt}.print-num{font-variant-numeric:tabular-nums;text-align:right!important}.print-pre{white-space:pre-wrap}.print-sign{break-inside:avoid;grid-template-columns:2fr 1fr;gap:24pt;margin-top:36pt;display:grid}.print-sign div{border-top:1px solid #000;padding-top:4pt;font-size:9pt}}.date-range .inline{gap:var(--space-2)}.date-range .input{width:auto}.inline>.grow{flex:1;min-width:180px}.align-end{align-self:flex-end}.list>li.list-phase{padding:var(--space-2) var(--space-4);background:var(--surface-muted);font-size:var(--text-sm);color:var(--brand);font-weight:700}.template-choice{padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius);align-items:flex-start}.template-choice input{margin-top:3px}.photo-grid{gap:var(--space-2);grid-template-columns:repeat(auto-fill,minmax(96px,1fr));margin:0;padding:0;list-style:none;display:grid}.photo-thumb{aspect-ratio:1;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-muted);cursor:pointer;width:100%;padding:0;display:block;position:relative;overflow:hidden}.photo-thumb img{object-fit:cover;width:100%;height:100%;display:block}.photo-placeholder{height:100%;padding:var(--space-2);font-size:var(--text-xs);color:var(--text-muted);text-align:center;place-items:center;display:grid}.photo-badge{background:var(--warning-soft);color:var(--warning);font-size:var(--text-xs);border-radius:4px;align-items:center;gap:2px;padding:1px 6px;font-weight:700;display:inline-flex;position:absolute;bottom:4px;left:4px}.photo-remove.btn{background:#ffffffe6;border-radius:16px;width:32px;min-height:32px;position:absolute;top:2px;right:2px}.photo-full{border-radius:var(--radius);max-width:100%;max-height:65dvh;margin:0 auto;display:block}.main{min-width:0}.progress{background:var(--surface-muted);border:1px solid var(--border);vertical-align:middle;border-radius:4px;width:72px;height:8px;display:inline-block;position:relative;overflow:visible}.progress-fill{background:var(--accent);border-radius:4px;position:absolute;inset:0 auto 0 0}.progress[data-tone=behind] .progress-fill{background:var(--warning)}.progress-planned{background:var(--text);width:2px;margin-left:-1px;position:absolute;top:-4px;bottom:-4px}.task-progress{align-items:center;gap:var(--space-2);font-variant-numeric:tabular-nums;display:inline-flex}.progress-summary{gap:var(--space-3);margin-bottom:var(--space-6);display:grid}.progress-summary .progress{border-radius:6px;width:100%;height:12px}.progress-summary .progress-fill{border-radius:6px}.progress-summary-numbers{align-items:baseline;gap:var(--space-2) var(--space-4);flex-wrap:wrap;display:flex}.progress-big{font-size:var(--text-2xl)}.list>li.list-phase{justify-content:space-between;gap:var(--space-3);display:flex}.percent-row{align-items:center;gap:var(--space-3);display:flex}.percent-row input[type=range]{height:var(--target);accent-color:var(--accent);flex:1}.percent-value{text-align:right;min-width:48px;font-weight:700}.gantt-bar-done{pointer-events:none;background:#003d7c47;border-radius:4px 0 0 4px;position:absolute;inset:0 auto 0 0}.gantt-bar-text{position:relative}.bamboo-panel{margin-bottom:var(--space-4)}.align-start{align-self:flex-start}.bamboo-details{gap:var(--space-2) var(--space-6);flex-wrap:wrap;margin:0;display:flex}.bamboo-details dt{color:var(--text-muted);font-size:var(--text-sm)}.bamboo-details dd{margin:0}.hours-stats{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(130px,1fr));display:grid}.hours-stats>div{gap:var(--space-1);flex-direction:column;display:flex}.hours-legend{align-items:center;gap:var(--space-2);font-size:var(--text-sm);display:flex}.hours-key{border-radius:3px;width:14px;height:10px;display:inline-block}.hours-legend .hours-key-over,.hours-legend .hours-key-plan{margin-left:var(--space-3)}.hours-key-clocked{background:var(--accent)}.hours-key-plan,.hours-bar-plan{background:var(--surface-muted);border:1px solid var(--border-strong,var(--border))}.hours-weeks{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.hours-weeks li{align-items:center;gap:var(--space-3);font-size:var(--text-sm);grid-template-columns:9.5rem 1fr 8.5rem;display:grid}.hours-weeks li>span:last-child{text-align:right}.hours-bar{height:18px;position:relative}.hours-bar-plan,.hours-bar-clocked{border-radius:4px;position:absolute;left:0}.hours-bar-plan{inset-block:0}.hours-bar-clocked{background:var(--accent);inset-block:4px}.hours-bar-clocked[data-over=true]{background:var(--warning)}.hours-table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.hours-table th,.hours-table td{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border);text-align:right}.hours-table th:first-child{text-align:left;font-weight:500}.hours-table thead th{color:var(--text-muted);font-weight:500}@media (width<=600px){.hours-weeks li{grid-template-columns:1fr auto}.hours-weeks .hours-bar{order:3;grid-column:1/-1}}.hours-key-over{background:var(--warning)}.bamboo-panel .btn{white-space:nowrap}.plan-pick{min-width:0}.plan-toolbar{justify-content:space-between;gap:var(--space-2);margin-bottom:var(--space-2);flex-wrap:wrap;display:flex}.plan-page{width:auto;min-width:10rem}.plan-zoom{text-align:center;min-width:3.5rem}.plan-stage{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface-muted);touch-action:pan-x pan-y pinch-zoom;max-height:calc(100dvh - 240px);overflow:auto}.plan-stage canvas{background:#fff;margin:0 auto;display:block}.plan-message{place-items:center;gap:var(--space-2);min-height:320px;padding:var(--space-6);text-align:center;display:grid}.import-problems{margin:0;padding-left:1.25rem}.import-table th[scope=row],.import-table td:nth-child(3),.import-table td:last-child{text-align:left}.import-table td.num{white-space:nowrap}.work-list{gap:var(--space-3);margin:0;padding:0;list-style:none;display:grid}.work-card{gap:var(--space-3);min-width:0;padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);display:grid}.work-card[data-done=true]{border-color:var(--success,#15803d)}.work-title{justify-content:space-between;align-items:flex-start;gap:var(--space-2);flex-wrap:wrap;display:flex}.work-days{text-align:center;min-width:4.5rem;font-weight:600}.log-history{gap:var(--space-1);font-size:var(--text-sm);margin:0;padding:0;list-style:none;display:grid}.log-history li{gap:var(--space-2);grid-template-columns:4.5rem 3.5rem 1fr;display:grid}.plan-sheet{margin:0 auto;position:relative}.markup-layer{position:absolute;inset:0;overflow:visible}.markup-layer[data-tool=view]{pointer-events:none}.markup-layer[data-tool=view] .markup-stroke path,.markup-layer[data-tool=view] .markup-pin{pointer-events:visiblePainted;cursor:pointer}.markup-layer[data-tool=view] .markup-stroke path:first-child{pointer-events:stroke}.markup-layer:not([data-tool=view]){touch-action:none;cursor:crosshair}.markup-stroke[data-selected=true] path:last-child,.markup-pin[data-selected=true] path{filter:drop-shadow(0 0 3px #0074bfe6)}.markup-tools{flex-wrap:wrap}.swatch-button{border:2px solid var(--surface);width:28px;height:28px;box-shadow:0 0 0 1px var(--border-strong);cursor:pointer;border-radius:50%}.swatch-button[aria-pressed=true]{box-shadow:0 0 0 3px var(--accent)}.markup-show{width:auto}.markup-selected{margin-bottom:var(--space-2);flex-wrap:wrap;justify-content:space-between;align-items:center;display:flex}.work-slip{align-items:center;gap:var(--space-1);font-size:var(--text-sm);flex-basis:100%;order:3;display:inline-flex}.translated-note{padding:0 var(--space-1);background:var(--surface-muted);color:var(--text-muted);font:inherit;font-size:var(--text-xs,12px);cursor:pointer;vertical-align:baseline;border:0;border-radius:4px;align-items:center;gap:2px;display:inline-flex}.translated-note:hover{color:var(--text)}.translation-hint{gap:var(--space-2);margin:calc(var(--space-2) * -1) 0 0;padding:var(--space-2) var(--space-3);border-left:3px solid var(--accent);background:var(--surface-muted);font-size:var(--text-sm);white-space:pre-wrap;border-radius:0 4px 4px 0;align-items:baseline;display:flex}.translation-hint svg{color:var(--accent);flex-shrink:0;align-self:center}.language-switch{align-items:center;gap:var(--space-1);min-height:36px;padding:0 var(--space-3);border:1px solid var(--border-strong);background:var(--surface);color:var(--text);font:inherit;font-size:var(--text-sm);cursor:pointer;border-radius:999px;font-weight:600;display:inline-flex}.language-switch:hover{border-color:var(--accent)}.language-switch.on-brand{color:var(--on-brand);background:0 0;border-color:#fff6;align-self:flex-start}.language-switch.on-brand:hover{background:#ffffff1f}.topbar .language-switch{min-height:32px;padding:0 var(--space-2);color:var(--on-brand);background:0 0;border-color:#fff6}.text-preview-list{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.text-preview-list>li{padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius-lg)}.text-bubble{margin:var(--space-2) 0 0;padding:var(--space-3);background:var(--surface-muted);font:inherit;font-size:var(--text-sm);white-space:pre-wrap;overflow-wrap:anywhere;border-radius:12px 12px 12px 4px}.link-button{align-items:center;gap:var(--space-1);min-height:32px;padding:0 var(--space-2);color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:0;font-weight:600;display:inline-flex}.text-pick{max-height:260px;overflow:auto}.btn-lg{min-height:var(--target-lg);padding:0 var(--space-6);font-size:var(--text-md)}.clock-card{padding:var(--space-4);margin-bottom:var(--space-4)}.clock-card[data-on]{border-left:4px solid var(--success)}.clock-main{justify-content:space-between;align-items:flex-end;gap:var(--space-3) var(--space-4);flex-wrap:wrap;display:flex}.clock-pick{flex:260px;min-width:0}.clock-pick .field{margin:var(--space-2) 0 0}.clock-actions{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.clock-state{align-items:center;gap:var(--space-2);margin:0;display:flex}.clock-dot{background:var(--success);width:10px;height:10px;box-shadow:0 0 0 3px var(--success-soft);border-radius:50%;flex:none}@media (width<=639px){.clock-actions,.clock-actions .btn{width:100%}}.injury-question{border:0;margin:0;padding:0}.injury-question legend{font-size:var(--text-lg);margin-bottom:var(--space-3);font-weight:600}.injury-answers{gap:var(--space-2);flex-wrap:wrap;display:flex}.chip-lg{min-height:var(--target-lg);padding:0 var(--space-4);font-size:var(--text-md);border-radius:var(--radius)}.chip-danger[aria-pressed=true]{background:var(--danger);border-color:var(--danger);color:var(--on-danger)}.injury-911{gap:var(--space-2);margin:var(--space-2) 0 0;padding:var(--space-3);border-radius:var(--radius);background:var(--danger-soft);color:var(--danger);align-items:flex-start;font-weight:600;display:flex}.injury-note{gap:var(--space-2);font-size:var(--text-sm);align-items:flex-start;margin:0;display:flex}fieldset.stack-sm{border:0;margin:0;padding:0}.crew-clock{border-top:1px solid var(--border);margin:0;padding:0;list-style:none}.crew-clock li{border-bottom:1px solid var(--border)}.crew-clock-row{align-items:center;gap:var(--space-3);min-height:var(--target-lg);padding:var(--space-2) var(--space-1);display:flex}.crew-clock-row .grow{flex-direction:column;min-width:0;display:flex}.time-table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.time-table th,.time-table td{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border);text-align:left;vertical-align:top}.time-table th{font-size:var(--text-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;background:var(--surface-muted);font-weight:600}.time-table .num{font-variant-numeric:tabular-nums;white-space:nowrap}.time-table .small{font-size:var(--text-xs);margin-top:2px}.signin-steps{padding-left:var(--space-6);font-size:var(--text-sm);margin:0}.signin-steps li+li{margin-top:var(--space-1)}.signin-list{border-top:1px solid var(--border);margin:0;padding:0;list-style:none}.signin-list li{gap:var(--space-2) var(--space-3);padding:var(--space-2) 0;border-bottom:1px solid var(--border);grid-template-columns:minmax(160px,1fr) minmax(220px,1.4fr);align-items:center;display:grid}.signin-list .signin-field{margin:0}.signin-list .signin-field .field-label{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.signin-name{font-weight:500}@media (width<=639px){.signin-list li{grid-template-columns:1fr}}.admin-tabs{margin-bottom:var(--space-4)}.health-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));display:grid}.health-card{gap:var(--space-2);flex-direction:column;display:flex}.health-card[data-state=bad]{border-color:var(--danger)}.health-card[data-state=warn]{border-color:var(--warning)}.health-head{justify-content:space-between;align-items:flex-start;gap:var(--space-2);display:flex}.health-head h2{align-items:center;gap:var(--space-2);font-size:var(--text-md);margin:0;display:flex}.health-body p{margin:0 0 var(--space-1)}.health-error{color:var(--danger);font-size:var(--text-sm);overflow-wrap:anywhere}.health-warn{color:var(--warning);font-size:var(--text-sm);overflow-wrap:anywhere}.health-open{align-self:flex-start;margin-top:auto}.health-quiet{padding-left:var(--space-6);margin:0}.topbar-admin{color:inherit}.activity-filters{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(min(100%,200px),1fr));display:grid}.activity-filters .field{margin:0}.activity-history{justify-content:space-between;font-weight:600}.activity-day{padding:var(--space-3) var(--space-4)}.activity-date{margin:0 0 var(--space-2);font-size:var(--text-sm);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.activity-day>ul{margin:0;padding:0;list-style:none}.activity-item{gap:var(--space-3);padding:var(--space-2) 0;border-top:1px solid var(--border);grid-template-columns:72px 1fr auto;align-items:start;display:grid}.activity-time{color:var(--text-muted);font-size:var(--text-sm)}.activity-what p{overflow-wrap:anywhere;margin:0}.activity-fields{margin:var(--space-1) 0 0;font-size:var(--text-sm);overflow-wrap:anywhere;padding:0;list-style:none}@media (width<=639px){.activity-item{gap:var(--space-1);grid-template-columns:1fr}.activity-link{justify-self:start}}.wordmark{white-space:nowrap}.topbar>.inline{gap:var(--space-2);flex-wrap:nowrap;min-width:0}.topbar-admin{width:36px;min-height:36px;padding:0}@media (width<=430px){.topbar .language-label{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}}.auto-row{align-items:flex-start;gap:var(--space-3);flex-wrap:wrap;display:flex}.auto-row+.auto-row{border-top:1px solid var(--border);padding-top:var(--space-4)}.auto-time{width:auto;min-height:0;padding:var(--space-1) var(--space-2)}.auto-pick{gap:var(--space-1);margin:0;padding:0;list-style:none;display:grid}.clock-note{align-items:flex-start;gap:var(--space-2);margin-top:var(--space-2);font-size:var(--text-sm);display:flex}.clock-note svg{flex:none;margin-top:2px}.clock-note[data-tone=success]{color:var(--success)}.clock-note[data-tone=danger]{color:var(--danger);font-weight:500}.timecard-week{justify-content:space-between;max-width:360px}.timecard-head{justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-2);flex-wrap:wrap;display:flex}.timecard-head h2{margin:0}.timecard-shifts{margin:0;padding:0;list-style:none}.timecard-shift{justify-content:space-between;align-items:flex-start;gap:var(--space-3);padding:var(--space-3) 0;border-top:1px solid var(--border);flex-wrap:wrap;display:flex}.timecard-when{flex-direction:column;gap:2px;min-width:0;display:flex}.timecard-where{align-items:center;gap:var(--space-2);font-size:var(--text-sm);flex-wrap:wrap;display:inline-flex}.timecard-flag{align-items:center;gap:var(--space-1);color:var(--danger);font-size:var(--text-sm);font-weight:500;display:inline-flex}.timecard-actions{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.sidebar-apps{align-items:center;gap:var(--space-2);min-height:44px;margin:var(--space-2) 0 var(--space-3);padding:0 var(--space-3);border-radius:var(--radius-lg);color:var(--on-brand);border:1px solid #ffffff59;font-weight:600;text-decoration:none;display:flex}.sidebar-apps:hover{background:#ffffff1a}.home{max-width:960px}.home-title{margin:0}.home-tiles{margin:var(--space-6) 0 0;gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(260px,1fr));padding:0;list-style:none;display:grid}.home-tile{align-items:center;gap:var(--space-4);width:100%;min-height:112px;padding:var(--space-4);text-align:left;font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);cursor:pointer;border-radius:12px;transition:border-color .15s,box-shadow .15s;display:flex}.home-tile:hover{border-color:var(--accent);box-shadow:0 2px 10px #0f172a14}.home-tile:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.home-tile-icon{color:#fff;border-radius:16px;flex:none;place-items:center;width:64px;height:64px;display:grid}.home-tile-text{flex-direction:column;gap:2px;min-width:0;display:flex}.home-tile-text strong{align-items:center;gap:var(--space-1);font-size:var(--text-lg);display:inline-flex}.home-tile-out{color:var(--text-muted)}.apps-admin-icon{border-radius:12px;width:44px;height:44px;display:inline-flex}.apps-admin-pick{gap:var(--space-2);border:0;flex-wrap:wrap;margin:0;padding:0;display:flex}.apps-admin-pick legend{width:100%;margin-bottom:var(--space-2)}.apps-admin-choice{border:1px solid var(--border);background:var(--surface);width:44px;height:44px;color:var(--text);cursor:pointer;border-radius:10px;place-items:center;display:grid}.apps-admin-choice[aria-pressed=true]{outline:3px solid var(--accent);outline-offset:1px}.apps-admin-swatch{border-color:#0000}.apps-admin-row{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.apps-admin-text{flex:200px;min-width:0}.main:focus,.main:focus-visible{outline:none}.hub{background:var(--bg);min-height:100dvh;padding-bottom:calc(72px + env(safe-area-inset-bottom))}.hub-top{z-index:20;height:64px;padding:0 var(--space-2);padding-top:env(safe-area-inset-top);background:var(--surface);border-bottom:1px solid var(--border);grid-template-columns:48px 1fr 48px;align-items:center;display:grid;position:sticky;top:0}.hub-logo{justify-self:center;display:flex}.hub-logo img{width:auto;height:44px}.hub-top-end{justify-self:end}.hub-main{max-width:960px;margin:0 auto}.hub-main:focus,.hub-main:focus-visible{outline:none}.hub-hero{min-height:168px;padding:var(--space-6) var(--space-4);color:#fff;background:linear-gradient(135deg, var(--brand) 0%, #0059a0 55%, var(--accent) 100%);border-bottom:4px solid #fdc22b;align-items:flex-end;display:flex}.hub-hero h1{color:#fff;margin:0;font-size:clamp(1.75rem,6vw,2.5rem);line-height:1.15}.hub-card{margin:var(--space-4);background:var(--surface);border:1px solid var(--border);border-radius:12px;overflow:hidden}.hub-card-head{padding:var(--space-4);font-size:var(--text-md);letter-spacing:.04em;text-transform:uppercase;color:var(--text);border-bottom:1px solid var(--border);margin:0;font-weight:600}.hub-grid{grid-template-columns:repeat(3,1fr);margin:0 -1px -1px 0;padding:0;list-style:none;display:grid}@media (width>=640px){.hub-grid{grid-template-columns:repeat(4,1fr)}}.hub-grid li{background:var(--surface);border-right:1px solid var(--border);border-bottom:1px solid var(--border)}.hub-tile{justify-content:center;align-items:center;gap:var(--space-2);width:100%;min-height:112px;padding:var(--space-4) var(--space-2);font:inherit;color:var(--text);cursor:pointer;background:0 0;border:0;flex-direction:column;transition:background-color .15s;display:flex}.hub-tile:hover{background:var(--accent-soft)}.hub-tile:focus-visible{outline:3px solid var(--focus);outline-offset:-3px}.hub-tile-icon{display:inline-flex;position:relative}.app-icon{--app:#0074bf;color:#fff;background:linear-gradient(180deg, #ffffff42 0%, #ffffff0f 48%, #0000 52%), linear-gradient(155deg, color-mix(in srgb, var(--app) 82%, #fff) 0%, var(--app) 45%, color-mix(in srgb, var(--app) 78%, #000) 100%);width:56px;height:56px;box-shadow:inset 0 1px 0 #ffffff59, inset 0 -1px 0 #0000001f, 0 1px 2px #0f172a2e, 0 6px 14px -6px color-mix(in srgb, var(--app) 70%, transparent);border-radius:15px;flex:none;justify-content:center;align-items:center;transition:transform .15s,box-shadow .15s}.app-icon>svg{filter:drop-shadow(0 1px 1px #00000038)}.hub-tile:hover .app-icon{box-shadow:inset 0 1px 0 #ffffff59, inset 0 -1px 0 #0000001f, 0 2px 3px #0f172a33, 0 10px 18px -8px color-mix(in srgb, var(--app) 75%, transparent);transform:translateY(-1px)}.hub-tile:active .app-icon{transform:scale(.96)}@media (prefers-reduced-motion:reduce){.app-icon,.hub-tile:hover .app-icon,.hub-tile:active .app-icon{transition:none;transform:none}}.app-icon .hub-badge{box-shadow:0 0 0 2px var(--surface);top:-7px;right:-9px}.app-icon-mini{flex:none;display:inline-flex}.page-title-marked{align-items:center;gap:var(--space-3);display:flex}.app-mark{display:inline-flex}.app-mark-md{border-radius:10px;width:36px;height:36px}.app-mark-sm{border-radius:8px;width:28px;height:28px}.hub-card-head-row{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.hub-card-head-row h2{font:inherit;margin:0}.hub-card-sub{color:var(--text-muted);text-transform:none;letter-spacing:0;font-weight:500}.hub-card-note{padding:var(--space-4);margin:0}.hub-quick{padding:var(--space-3);gap:var(--space-2);grid-template-columns:repeat(2,minmax(0,1fr));margin:0;list-style:none;display:grid}@media (width>=640px){.hub-quick{grid-template-columns:repeat(4,minmax(0,1fr))}}.hub-quick-btn{align-items:center;gap:var(--space-3);width:100%;min-height:64px;padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);color:var(--text);font:inherit;text-align:left;cursor:pointer;font-weight:600;display:flex}.hub-quick-btn:hover{background:var(--accent-soft)}.hub-quick-btn:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.hub-recent{padding:var(--space-2);gap:2px;margin:0;list-style:none;display:grid}@media (width>=900px){.hub-recent{grid-template-columns:repeat(2,minmax(0,1fr))}}.hub-recent li{position:relative}.hub-recent-row{align-items:center;gap:var(--space-3);min-height:56px;padding:var(--space-2) var(--space-8) var(--space-2) var(--space-2);border-radius:var(--radius);color:inherit;text-decoration:none;display:flex}.hub-recent-row:hover{background:var(--accent-soft)}.hub-recent-row:focus-visible{outline:3px solid var(--focus);outline-offset:-3px}.hub-recent-text{min-width:0;line-height:1.3;display:grid}.hub-recent-text strong,.hub-recent-text .muted{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.hub-recent-text .muted{font-size:var(--text-sm)}.hub-recent-forget{top:50%;right:var(--space-1);width:32px;height:32px;color:var(--text-muted);cursor:pointer;opacity:.6;background:0 0;border:0;border-radius:50%;place-items:center;display:grid;position:absolute;transform:translateY(-50%)}.hub-recent-forget:hover,.hub-recent-forget:focus-visible{opacity:1;background:var(--surface-muted)}.hub-grid[data-editing] .hub-tile{position:relative}.hub-pin{top:var(--space-2);right:var(--space-2);background:var(--surface-muted);width:26px;height:26px;color:var(--text-muted);border-radius:50%;place-items:center;display:grid;position:absolute}.hub-pin[data-on]{color:#713f12;background:#fdc22b}.hub-move{justify-content:center;gap:var(--space-2);padding-bottom:var(--space-2);display:flex}.hub-move button{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);width:36px;height:32px;color:var(--text);cursor:pointer;place-items:center;display:grid}.hub-move button:disabled{opacity:.35;cursor:default}.hub-tile-label{font-size:var(--text-sm);text-align:center;align-items:center;gap:4px;font-weight:500;display:inline-flex}.hub-badge{background:var(--danger);color:#fff;min-width:22px;height:22px;font-size:var(--text-xs);border-radius:11px;place-items:center;padding:0 6px;font-weight:700;line-height:1;display:grid;position:absolute;top:-6px;right:-12px}.hub-tabs{z-index:20;padding-bottom:env(safe-area-inset-bottom);background:var(--surface);border-top:1px solid var(--border);grid-template-columns:repeat(4,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.hub-tab{min-height:60px;font:inherit;font-size:var(--text-xs);color:var(--text-muted);cursor:pointer;background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:2px;text-decoration:none;display:flex}.hub-tab[aria-current=page]{color:var(--accent-text);font-weight:600}@media (width>=1024px){.hub{padding-bottom:var(--space-8)}.hub-tabs{display:none}.hub-hero{margin:var(--space-4);min-height:200px;padding:var(--space-8);border-radius:12px}}.hub-side,.hub-more{gap:var(--space-4);margin:var(--space-4);align-content:start;display:grid}.hub-col .hub-card:last-child{margin-bottom:var(--space-4)}.hub-panel{background:var(--surface);border:1px solid var(--border);border-radius:12px;overflow:hidden}.hub-panel-head{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);font-size:var(--text-sm);letter-spacing:.04em;text-transform:uppercase;color:var(--text);border-bottom:1px solid var(--border);margin:0;font-weight:600;display:flex}.hub-panel-head svg{color:var(--accent-text)}.hub-panel-body{padding:var(--space-3) var(--space-4) var(--space-4)}.hub-panel-body p{margin:0 0 var(--space-2)}.hub-panel-body p:last-child{margin-bottom:0}.hub-links{gap:var(--space-2);grid-template-columns:1fr 1fr;margin:0;padding:0;list-style:none;display:grid}.hub-links a{min-height:44px;padding:0 var(--space-3);border:1px solid var(--border);color:var(--accent-text);border-radius:8px;justify-content:space-between;align-items:center;font-weight:500;text-decoration:none;display:flex}.hub-links a:hover{background:var(--accent-soft)}.hub-sample{margin:0 0 var(--space-2);padding:0;list-style:none}.hub-sample li{justify-content:space-between;gap:var(--space-2);padding:var(--space-1) 0;display:flex}.hub-big{color:var(--brand);font-size:2.25rem;font-weight:700;line-height:1}.hub-ideas{gap:var(--space-1);margin:0;padding-left:1.1rem;display:grid}@media (width>=1024px){.hub-main{grid-template-columns:minmax(0,2fr) minmax(300px,1fr);align-items:start;max-width:1360px;display:grid}.hub-col{grid-column:1}.hub-side{grid-column:2;margin-left:0}.hub-more{grid-column:1/-1;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));margin-top:0}.hub-hero{min-height:160px}}.hub-top{grid-template-columns:1fr auto 1fr}.hub-top-end{align-items:center;gap:var(--space-3);display:flex}.hub-top-desk{display:none}.hub-top-who{line-height:1.2;font-size:var(--text-sm);color:var(--text-muted);text-align:right;flex-direction:column;display:flex}.hub-top-who strong{color:var(--text)}@media (width>=1024px){.hub-top{padding:0 var(--space-6)}.hub-top-desk{align-items:center;gap:var(--space-3);display:flex}}.shell-main{max-width:1200px;padding:var(--space-6) var(--space-4);margin:0 auto}.shell-main:focus,.shell-main:focus-visible{outline:none}.shell-nav{display:none}@media (width>=1024px){.shell-nav{z-index:15;justify-content:center;gap:var(--space-2);background:var(--surface);border-bottom:1px solid var(--border);display:flex;position:sticky;top:64px}.shell-nav-link{align-items:center;gap:var(--space-2);min-height:48px;padding:0 var(--space-4);color:var(--text-muted);border-bottom:3px solid #0000;font-weight:500;text-decoration:none;display:inline-flex}.shell-nav-link svg{width:20px;height:20px}.shell-nav-link:hover{color:var(--text)}.shell-nav-link[aria-current=page]{color:var(--accent-text);border-bottom-color:var(--accent)}.shell-main{padding:var(--space-6) var(--space-6) var(--space-8)}}.my-shift{justify-content:space-between;align-items:flex-start;gap:var(--space-3);display:flex}.role-head{gap:var(--space-3);grid-template-columns:1fr;display:grid}@media (width>=640px){.role-head{grid-template-columns:2fr 1fr}}.role-group{column-gap:var(--space-4);padding-top:var(--space-3);border-top:1px solid var(--border);grid-template-columns:1fr;display:grid}.role-group legend{float:left;width:100%;margin-bottom:var(--space-2);font-weight:600}@media (width>=640px){.role-group{grid-template-columns:1fr 1fr}.role-group legend{grid-column:1/-1}}.section-title{font-size:var(--text-lg);margin:0;font-weight:600}.data-table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.data-table th,.data-table td{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border);text-align:left;vertical-align:middle}.data-table thead th{background:var(--surface-muted);color:var(--text-muted);white-space:nowrap;font-weight:500}.data-table .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.data-table tbody tr:last-child td{border-bottom:0}.data-table tr.clickable{cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out)}.data-table tr.clickable:hover{background:var(--surface-muted)}.summary-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(150px,1fr));display:grid}.summary-box{gap:var(--space-1);padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);flex-direction:column;display:flex}.summary-box strong{font-size:1.375rem}.chip-count{min-width:22px;height:22px;margin-left:var(--space-2);background:var(--highlight);color:#000;font-size:var(--text-xs);border-radius:11px;place-items:center;padding:0 6px;font-weight:700;display:inline-grid}.injury-statement{gap:var(--space-2);padding:var(--space-3);border-left:3px solid var(--brand);background:var(--surface-muted);border-radius:0 var(--radius) var(--radius) 0;align-items:flex-start;margin:0;font-style:italic;display:flex}.injury-statement svg{color:var(--brand);flex:none;margin-top:2px}.case-section{gap:var(--space-3);padding-top:var(--space-4);border-top:1px solid var(--border);flex-direction:column;display:flex}.case-section>legend{float:left;width:100%;margin-bottom:var(--space-1);font-weight:600;font-size:var(--text-lg)}.case-guide{font-size:var(--text-sm);padding:var(--space-3);border-radius:var(--radius);background:var(--surface-muted)}.case-what{font-size:var(--text-sm);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.report-bar{align-items:flex-end;gap:var(--space-3);flex-wrap:wrap}.report-bar .field{min-width:140px}.statement{font-size:var(--text-sm);overflow-wrap:anywhere;font-style:italic}.po-filters{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));max-width:720px;display:grid}.report-filters{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));max-width:720px;display:grid}.po-table{display:none}@media (width>=1024px){.po-table{display:block}.po-cards{display:none}}.po-actions{gap:var(--space-2);flex-wrap:wrap}.po-detail{gap:var(--space-4);margin-top:var(--space-4);grid-template-columns:minmax(0,1fr);display:grid}.po-detail>*{min-width:0}@media (width>=1024px){.po-detail{grid-template-columns:minmax(0,1fr) 300px;align-items:start}}.po-facts{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(160px,1fr));margin:0;display:grid}.po-facts dt{color:var(--text-muted);font-size:var(--text-sm)}.po-facts dd{margin:0;font-weight:500}.po-notes{margin:var(--space-3) 0 0;padding-top:var(--space-3);border-top:1px solid var(--border);white-space:pre-line}.po-lines-table tfoot td{color:var(--text-muted);border-bottom:0}.po-lines-table tfoot .po-grand td,.po-grand{color:var(--text);font-weight:700}.po-recv-cell{min-width:150px}.po-recv-cell .progress{width:70px;margin-right:var(--space-2);vertical-align:middle;display:inline-block}.po-timeline{margin:var(--space-3) 0 0;padding:0;list-style:none}.po-timeline li{padding:0 0 var(--space-4) var(--space-6);font-size:var(--text-sm);flex-direction:column;display:flex;position:relative}.po-timeline li:before{content:"";border:2px solid var(--border);background:var(--surface);border-radius:50%;width:10px;height:10px;position:absolute;top:4px;left:4px}.po-timeline li:not(:last-child):after{content:"";background:var(--border);width:2px;position:absolute;top:18px;bottom:2px;left:8px}.po-timeline li[data-done]:before{border-color:var(--success);background:var(--success)}.po-timeline li[data-tone=danger]:before{border-color:var(--danger);background:var(--danger)}.po-side:empty{display:none}.po-delivery-list,.po-receive,.po-mini{margin:0;padding:0;list-style:none}.po-delivery-list li,.po-mini li{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) 0;border-top:1px solid var(--border);display:flex}.po-delivery-list li:first-child{border-top:0}.po-mini li>a{align-items:center;gap:var(--space-2);flex:1;min-width:0;display:inline-flex}.po-receive li{gap:var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid var(--border);grid-template-columns:minmax(0,1fr) 120px;align-items:end;display:grid}.po-receive-what{flex-direction:column;gap:2px;display:flex}.po-by-category td:last-child{width:1%}.po-lines{gap:var(--space-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.po-line{gap:var(--space-2) var(--space-3);padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);grid-template-columns:1fr 1fr;display:grid}.po-line-n{color:var(--text-muted);font-size:var(--text-sm);grid-column:1/-1;font-weight:600}.po-line-desc,.po-line-cat{grid-column:1/-1}.po-line-total{align-self:center;font-weight:600}.po-line-remove{justify-self:end}@media (width>=640px){.po-line{grid-template-columns:24px 80px 90px 110px minmax(0,1fr) 96px 44px;align-items:end}.po-line-n{grid-area:1/1;align-self:center}.po-line-desc{grid-area:1/2/auto/-1}.po-line-qty{grid-column:2}.po-line-cat{grid-column:auto}.po-line-total{text-align:right;padding-bottom:12px}}.po-sums{gap:var(--space-4);display:grid}@media (width>=900px){.po-sums{grid-template-columns:minmax(0,1fr) 280px;align-items:start}}.po-totals{gap:var(--space-1) var(--space-4);padding:var(--space-3) var(--space-4);border-radius:var(--radius);background:var(--surface-muted);grid-template-columns:1fr auto;margin:0;display:grid}.po-totals dd{text-align:right;margin:0}.po-totals .po-grand{padding-top:var(--space-2);border-top:1px solid var(--border);font-size:var(--text-lg)}.po-editor-total{margin-right:auto;font-weight:700}.statement-sig{font-size:var(--text-xs);display:block}.summary-box[data-warn]{border-color:var(--warning);background:var(--warning-soft,#fff7ed)}.packet-form{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));max-width:none}.hub-panel-action{margin:-6px -6px -6px 0}.hub-asof{margin:var(--space-2) 0 0;font-size:var(--text-xs);display:block}.hub-sub{margin:var(--space-3) 0 var(--space-1);font-size:var(--text-sm);font-weight:600}.hub-news,.hub-weather,.hub-certs{gap:var(--space-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.hub-news li+li,.hub-weather li+li{padding-top:var(--space-3);border-top:1px solid var(--border)}.hub-news-head{align-items:flex-start;gap:var(--space-2);display:flex}.hub-news-head svg{color:var(--brand);flex:none;margin-top:3px}.hub-news-title{flex:1;font-weight:600}.hub-news-body{margin:var(--space-1) 0 0;white-space:pre-line}.hub-weather li{gap:var(--space-1);flex-direction:column;align-items:flex-start;display:flex}.hub-weather-row{justify-content:space-between;gap:var(--space-2);width:100%;display:flex}.hub-weather-row .num{font-size:var(--text-lg);font-weight:600}.hub-pay{color:var(--brand);margin:0;font-size:1.375rem;font-weight:700}.hub-certs li{justify-content:space-between;align-items:center;gap:var(--space-2);font-size:var(--text-sm);display:flex}.hub-panel-head .grow{flex:1}.hub-weather-sum{font-size:var(--text-xs)}.hub-places{margin:0;padding:0;list-style:none}.hub-places li{padding:var(--space-1) 0;border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;display:flex}.po-requester{margin:0}.po-vendor-card{justify-content:space-between;align-items:center;gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius);background:var(--surface-muted);font-size:var(--text-sm);flex-wrap:wrap;display:flex}.po-questions{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}.po-files{margin:0;padding:0;list-style:none}.po-files li{align-items:center;gap:var(--space-2);padding:var(--space-1) 0;border-bottom:1px solid var(--border);display:flex}.po-file{align-items:center;gap:var(--space-2);width:100%;min-height:44px;padding:var(--space-2);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:inherit;font:inherit;font-size:var(--text-sm);text-align:left;cursor:pointer;display:flex}.po-file:hover{background:var(--surface-muted)}.po-file .grow{overflow-wrap:anywhere;flex:1;min-width:0}.po-file-form{border-color:var(--brand)}.po-approvals{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.po-approvals li{column-gap:var(--space-2);font-size:var(--text-sm);grid-template-columns:90px 1fr;display:grid}.po-approvals li>:last-child:not(:nth-child(2)){font-size:var(--text-xs);grid-column:2}.po-answers dd{font-weight:600}.hub-comments{margin:var(--space-2) 0 0;padding:0 0 0 var(--space-3);border-left:2px solid var(--border);gap:var(--space-2);font-size:var(--text-sm);flex-direction:column;list-style:none;display:flex}.hub-comment-who{font-weight:600}.hub-comment-toggle{margin-top:var(--space-1);color:var(--accent);font:inherit;font-size:var(--text-sm);cursor:pointer;background:0 0;border:0;padding:0}.hub-comment-form{gap:var(--space-2);margin-top:var(--space-2);display:flex}.hub-comment-form .input{flex:1}.po-file{flex-wrap:wrap}.po-file>.muted{font-size:var(--text-xs);flex-basis:100%;padding-left:26px}.exp-line{gap:var(--space-2) var(--space-3);padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);grid-template-columns:1fr 1fr;display:grid}.exp-line .po-line-n,.exp-desc{grid-column:1/-1}@media (width>=640px){.exp-line{grid-template-columns:24px 160px minmax(0,1fr) 140px 44px;align-items:end}.exp-line .po-line-n{grid-area:1/1/span 2;align-self:center}.exp-cat{grid-column:2}.exp-desc{grid-column:3/5}.exp-job{grid-area:2/2/auto/4}.exp-date{grid-area:2/4}.exp-pay{grid-area:3/2}.exp-amount{grid-area:3/3;max-width:180px}.exp-line .po-line-remove{grid-area:1/5}}.po-form{max-width:1040px;padding-bottom:var(--space-12,48px);margin:0 auto}.po-form-bar{bottom:calc(61px + env(safe-area-inset-bottom));z-index:15;justify-content:flex-end;align-items:center;gap:var(--space-2);margin-top:var(--space-4);padding:var(--space-3) var(--space-4);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);flex-wrap:wrap;display:flex;position:sticky;box-shadow:0 -4px 16px #0f172a14}@media (width>=1024px){.po-form-bar{bottom:var(--space-3)}}.po-form-bar .po-editor-total{font-size:var(--text-lg);margin-right:auto}.po-form-bar-missing{color:var(--danger);font-weight:600;font-size:var(--text-sm)}.po-error-summary ul{margin:var(--space-1) 0 0;padding-left:1.2em}.po-start{gap:var(--space-3);align-items:flex-start;display:flex}.po-start .field{flex:1}.po-start>svg{color:var(--brand);flex:none;margin-top:30px}.po-form .input[aria-invalid=true],.po-form .select[aria-invalid=true]{border-color:var(--danger);box-shadow:0 0 0 1px var(--danger);background:var(--danger-soft,#fef2f2)}.po-line-tools{gap:var(--space-1);justify-self:end;display:inline-flex}.po-line-rental{gap:var(--space-2) var(--space-4);padding:var(--space-3);border-radius:var(--radius);background:var(--surface-muted);flex-wrap:wrap;grid-column:1/-1;display:flex}.po-rental-length{gap:var(--space-2)}.po-rental-length .input{width:5.5rem}.po-rental-sheet{gap:var(--space-2);flex-wrap:wrap}@media (width>=640px){.po-line{grid-template-columns:24px 80px 90px 110px minmax(0,1fr) 96px 92px}}.hub-hero{align-items:center;gap:var(--space-4)}.hub-hero h1{letter-spacing:-.01em;font-size:clamp(2rem,8vw,3.25rem);line-height:1.05}.hub-hero-text{min-width:0}.hub-hero-date{margin:0 0 var(--space-1);font-size:var(--text-lg);color:#fff;font-weight:700;line-height:1.2}.hub-hero-sub{margin:var(--space-1) 0 0;font-size:var(--text-lg);color:#ffffffe0;font-weight:600}.hub-hero-photo{background:#ffffff2e;border:4px solid #ffffffe6;box-shadow:0 6px 20px #00000040}@media (width<=1023px){.hub-hero{flex-wrap:wrap}.hub-hero-photo{width:96px!important;height:96px!important;font-size:36px!important}.hub-hero-date,.hub-hero-sub{font-size:var(--text-md)}}@media (width<=479px){.hub-hero-photo{width:72px!important;height:72px!important;font-size:27px!important}}@media (width>=1024px){.hub-hero{gap:var(--space-6);padding-top:20px;padding-bottom:20px}}.hub-hero-text{flex:1}.hub-hero-clock{align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-5,20px);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#ffffff1f;border:1px solid #ffffff47;border-radius:12px;display:flex}.hub-hero-clock-text{gap:2px;display:grid}.hub-hero-clock-state{align-items:center;gap:var(--space-2);font-size:var(--text-lg);font-weight:700;display:flex}.hub-hero-clock .hub-day-dot{background:#fff9}.hub-hero-clock[data-on=true] .hub-day-dot{background:#4ade80;box-shadow:0 0 0 4px #4ade804d}.hub-hero-clock-job,.hub-hero-clock-week{color:#ffffffd9;font-size:var(--text-sm);font-variant-numeric:tabular-nums}.hub-hero-clock-btn{color:#002b57;min-height:48px;padding:0 var(--space-5,20px);white-space:nowrap;background:#fdc22b}.hub-hero-clock-btn:hover{background:#ffd35c}.hub-hero-clock-btn:focus-visible{outline-offset:2px;outline:3px solid #fff}@media (width<=1023px){.hub-hero-clock{padding:var(--space-3) var(--space-4);flex-basis:100%;justify-content:space-between}}.avatar{background:var(--brand);color:#fff;-webkit-user-select:none;user-select:none;border-radius:50%;flex:none;place-items:center;font-weight:600;line-height:1;display:inline-grid;overflow:hidden}.avatar img{object-fit:cover;width:100%;height:100%;display:block}.hub-day{gap:var(--space-4);margin:var(--space-4);align-content:start;display:grid}.hub-day a{color:inherit;text-decoration:none}.hub-day-dot{background:var(--text-muted);border-radius:50%;flex:none;width:12px;height:12px}.hub-day-sub{margin:0 0 var(--space-2);font-size:var(--text-sm);color:var(--text-muted);font-weight:600}.hub-day-list,.hub-day-todo{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.hub-day-list li{padding-left:var(--space-3);border-left:3px solid var(--accent);gap:2px;display:grid}.hub-day-list li>a:first-child{display:grid}.hub-day-list li>a:first-child:hover strong{text-decoration:underline}.hub-day-map{font-size:var(--text-sm);align-items:center;gap:4px;display:inline-flex;color:var(--accent-text)!important}.hub-day-todo a{align-items:center;gap:var(--space-2);min-height:44px;padding:0 var(--space-3);border:1px solid var(--border);border-radius:8px;font-weight:500;display:flex}.hub-day-todo a:hover{background:var(--accent-soft)}.hub-day .grow{flex:1;min-width:0}.hub-day-count{background:var(--danger);color:#fff;min-width:26px;height:24px;font-size:var(--text-sm);font-variant-numeric:tabular-nums;border-radius:12px;place-items:center;padding:0 8px;font-weight:700;display:grid}.hub-day-clear{align-items:center;gap:var(--space-2);color:var(--text-muted);display:flex}.hub-day-clear svg{color:var(--success,#15803d)}@media (width>=1024px){.hub-main{grid-template-rows:auto auto 1fr}.hub-hero{grid-area:1/1/auto/-1;margin-bottom:0}.hub-col{grid-area:2/1}.hub-day{grid-area:2/2;margin-bottom:0;margin-left:0}.hub-side{grid-area:3/2}.hub-more{grid-area:3/1}}@media (width>=1440px){.hub-main{grid-template-rows:auto auto 1fr;grid-template-columns:minmax(280px,1fr) minmax(0,2fr) minmax(320px,1fr);max-width:1840px}.hub-day{margin:var(--space-4) 0 var(--space-4) var(--space-4);grid-area:2/1/4}.hub-col{grid-area:2/2}.hub-side{grid-area:2/3/4}.hub-more{grid-area:3/2}.hub-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}}.report-cards{gap:var(--space-4);margin:0;padding:0;list-style:none;display:grid}.report-card{gap:var(--space-4);grid-template-columns:auto 1fr;align-items:start;padding:20px;display:grid}.report-card-icon{background:var(--accent-soft);width:56px;height:56px;color:var(--brand);border-radius:12px;place-items:center;display:grid}.report-card-text h2{margin:0 0 var(--space-1);font-size:var(--text-lg)}.report-card-text p{margin:0}.report-card-who{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--text-muted);display:flex;margin-top:var(--space-2)!important}.report-card-actions{gap:var(--space-2);flex-wrap:wrap;grid-column:1/-1;justify-content:flex-end;display:flex}@media (width>=768px){.report-card{grid-template-columns:auto 1fr auto;align-items:center}.report-card-actions{grid-column:auto}}.btn-sm{min-height:36px;padding:0 var(--space-3);font-size:var(--text-sm)}.share-search{align-items:center;gap:var(--space-2);margin-bottom:var(--space-3);color:var(--text-muted);display:flex}.share-search .input{flex:1}.share-list{gap:var(--space-1);max-height:55vh;margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.share-list li{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-2);border-radius:var(--radius);flex-wrap:wrap;display:flex}.share-list li[data-on]{background:var(--accent-soft)}.share-person{align-items:center;gap:var(--space-3);cursor:pointer;flex:1;min-width:220px;min-height:48px;display:flex}.share-person input{width:20px;height:20px}.share-reach{width:auto;min-width:140px}.shell-main:has(.dash){max-width:1600px}.dash-sub{align-items:center;gap:var(--space-2) var(--space-3);flex-wrap:wrap;display:inline-flex}.dash-switch{width:auto;max-width:280px}.dash-pick{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.dash-pick a{align-items:center;gap:var(--space-3);min-height:56px;padding:0 var(--space-4);border:1px solid var(--border);border-radius:var(--radius);color:inherit;text-decoration:none;display:flex}.dash-pick a:hover{background:var(--accent-soft);border-color:var(--accent)}.dash-pick svg{color:var(--brand);flex:none}@media (width>=900px){.dash-pick{grid-template-columns:repeat(2,1fr)}}.dash-kpis{gap:var(--space-3);margin-bottom:var(--space-4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}@media (width>=1024px){.dash-kpis{gap:var(--space-4);grid-template-columns:repeat(4,minmax(0,1fr))}}.dash-kpi{gap:var(--space-1);padding:var(--space-4);border-top:4px solid var(--brand);display:grid}.dash-kpi[data-tone=good]{border-top-color:var(--success)}.dash-kpi[data-tone=bad]{border-top-color:var(--danger)}.dash-kpi-label{align-items:center;gap:var(--space-2);font-size:var(--text-sm);letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);font-weight:600;display:flex}.dash-kpi-value{color:var(--text);font-size:clamp(1.6rem,4vw,2.25rem);font-weight:700;line-height:1.1}.dash-kpi-sub{align-items:center;gap:var(--space-1);font-size:var(--text-sm);color:var(--text-muted);display:flex}.dash-kpi[data-tone=good] .dash-kpi-sub svg{color:var(--success)}.dash-kpi[data-tone=bad] .dash-kpi-sub{color:var(--danger)}.dash-grid{gap:var(--space-4);margin-bottom:var(--space-4);display:grid}.dash-col{gap:var(--space-4);align-content:start;min-width:0;display:grid}@media (width>=1024px){.dash-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}}.dash-grid>.dash-card{flex-direction:column;display:flex}.dash-grid>.dash-card>:last-child{flex:1;align-content:start}.dash-card-head{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);font-size:var(--text-sm);letter-spacing:.04em;text-transform:uppercase;border-bottom:1px solid var(--border);margin:0;font-weight:600;display:flex}.dash-card-head svg{color:var(--accent-text)}.dash-card-body{padding:var(--space-4);gap:var(--space-3);display:grid}.dash-card-body p{margin:0}.dash-sub-head{margin:var(--space-2) 0 0;font-size:var(--text-sm);color:var(--text-muted);font-weight:600}.dash-hint{font-size:var(--text-sm)}.meter{background:var(--surface-muted);border-radius:8px;height:16px;position:relative}.meter-sm{border-radius:4px;height:8px}.meter-fill{border-radius:inherit;background:var(--accent);height:100%}.meter[data-behind] .meter-fill{background:var(--warning)}.meter-planned{background:var(--text);border-radius:2px;width:3px;margin-left:-1.5px;position:absolute;top:-4px;bottom:-4px}.meter-sm .meter-planned{width:2px;margin-left:-1px;top:-3px;bottom:-3px}.dash-planned-key{background:var(--text);vertical-align:-1px;border-radius:2px;width:3px;height:12px;display:inline-block}.dash-progress{gap:var(--space-3);display:grid}.dash-progress-nums{justify-content:space-between;gap:var(--space-2);flex-wrap:wrap;align-items:baseline;display:flex}.dash-progress-nums strong{font-size:22px}.dash-counts{gap:var(--space-2);grid-template-columns:repeat(4,1fr);margin:0;display:grid}.dash-counts div{padding:var(--space-2);border:1px solid var(--border);border-radius:var(--radius);text-align:center}.dash-counts dt{color:var(--text-muted);font-size:12px}.dash-counts dd{font-size:var(--text-lg);margin:0;font-weight:700}.dash-counts div[data-bad]{border-color:var(--danger)}.dash-counts div[data-bad] dd{color:var(--danger)}.dash-phases{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.dash-phases li{align-items:center;gap:var(--space-3);grid-template-columns:minmax(90px,160px) 1fr 44px;display:grid}.dash-phase-name{overflow-wrap:anywhere;font-weight:500}.dash-phase-pct{text-align:right;font-weight:600}.cols{margin:0}.cols-plot{grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;align-items:end;gap:4px;height:180px;display:grid}.cols-plot[data-few]{grid-auto-columns:minmax(0,56px);justify-content:start}.cols-col{grid-template-rows:18px 1fr 18px;min-width:0;height:100%;display:grid}.cols-value{color:var(--text-muted);text-align:center;white-space:nowrap;font-size:11px;overflow:hidden}.cols-bar{background:var(--accent);border-radius:4px 4px 0 0;align-self:end;width:100%;min-height:2px}.cols-col:hover .cols-bar{background:var(--brand)}.cols-axis{color:var(--text-muted);white-space:nowrap;border-top:1px solid var(--border);padding-top:2px;font-size:11px}.hbars{gap:var(--space-3);margin:0;padding:0;list-style:none;display:grid}.hbars-head{justify-content:space-between;gap:var(--space-2);font-size:var(--text-sm);display:flex}.hbars-label{font-weight:500}.hbars-value{font-weight:600}.hbars-track{background:var(--surface-muted);border-radius:5px;height:10px;margin-top:4px}.hbars-bar{border-radius:inherit;background:#8fc0e3;height:100%;display:block}.hbars-part{border-radius:inherit;background:var(--accent);height:100%;display:block}.hbars-sub{margin-top:2px;font-size:12px;display:block}.dash-legend{align-items:center;gap:var(--space-2);font-size:var(--text-sm);flex-wrap:wrap;display:flex}.dash-key{background:#8fc0e3;border-radius:3px;width:14px;height:10px;display:inline-block}.dash-key-part{background:var(--accent)}.dash-total{align-items:baseline;gap:var(--space-2);display:flex}.dash-total-value{font-size:1.75rem;font-weight:700}.dash-notes{gap:var(--space-1);font-size:var(--text-sm);color:var(--text-muted);margin:0;padding-left:1.1rem;display:grid}.dash-activity{margin:0;padding:0;list-style:none;display:grid}.dash-activity li{align-items:center;gap:var(--space-3);border-bottom:1px solid var(--border);min-height:48px;display:flex}.dash-activity li:last-child{border-bottom:0}.dash-activity svg{color:var(--brand);flex:none}.dash-activity strong{font-size:var(--text-lg)}.dash-activity li[data-bad] strong,.dash-activity li[data-bad] svg{color:var(--danger)}.dash-tasks .chips{margin:0}.dash .grow,.dash-pick .grow{flex:1;min-width:0}.dash-dates{white-space:nowrap;font-variant-numeric:tabular-nums}.dash-table td{vertical-align:middle}.dash-task-meter{align-items:center;gap:var(--space-3);grid-template-columns:minmax(80px,1fr) auto;min-width:180px;display:grid}.dash-clear{align-items:center;gap:var(--space-2);color:var(--text-muted);display:flex}.dash-clear svg{color:var(--success)}@media (width<=767px){.dash-col-wide{display:none}}@media print{.dash .page-header-actions,.dash .chips,.back-link{display:none!important}.dash-grid{grid-template-columns:1fr 1fr}}.wx-level{white-space:nowrap;font-weight:700}.wx-label{font-size:var(--text-sm);color:var(--text-muted);font-weight:400}.hub-weather-row{flex-wrap:wrap}.wx-level[data-level=ok]{color:var(--success)}.wx-level[data-level=caution]{color:#a16207}.wx-level[data-level=stop]{color:var(--danger)}.hub-weather-now{text-align:right}.dash-qb{gap:var(--space-3);padding-bottom:var(--space-3);border-bottom:1px solid var(--border);display:grid}.dash-qb-head{justify-content:space-between;align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.dash-qb-empty{justify-content:space-between;align-items:center;gap:var(--space-2);padding:var(--space-3);border:1px dashed var(--border);border-radius:var(--radius);flex-wrap:wrap;display:flex}.dash-total-small{font-size:var(--text-lg);font-weight:700}.share-jobs{margin:var(--space-1) 0 var(--space-2) 52px;padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);gap:var(--space-2);flex-basis:100%;display:grid}.share-jobs legend{padding:0 var(--space-1);font-size:var(--text-sm)}.share-jobs ul{gap:2px;max-height:200px;margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.share-jobs label{align-items:center;gap:var(--space-2);cursor:pointer;min-height:36px;display:flex}.share-jobs input[type=checkbox]{flex:none;width:18px;height:18px}@media (width<=639px){.share-jobs{margin-left:0}}.select{appearance:none;cursor:pointer;text-overflow:ellipsis;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 256 256'%3E%3Cpath fill='none' stroke='%23475569' stroke-linecap='round' stroke-linejoin='round' stroke-width='24' d='M208 96l-80 80-80-80'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;background-size:16px 16px;padding-right:40px}.select::-ms-expand{display:none}.input:hover:not(:disabled):not(:focus),.select:hover:not(:disabled):not(:focus){border-color:var(--text-muted)}.input:focus,.select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.input:focus-visible,.select:focus-visible{outline:none}.select:disabled,.input:disabled{background-color:var(--surface-muted);color:var(--text-muted);cursor:not-allowed}.combo{position:relative}.combo-list{z-index:40;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);min-width:220px;max-height:300px;margin:0;padding:4px;list-style:none;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto;box-shadow:0 12px 32px #0f172a24,0 2px 6px #0f172a0f}.combo-option{cursor:pointer;border-radius:6px;gap:2px;padding:8px 12px;display:grid}.combo-option[aria-selected=true]{background:var(--accent-soft)}.combo-label{color:var(--text);overflow-wrap:anywhere;display:block}.combo-label mark{color:inherit;background:0 0;font-weight:700}.combo-detail{font-size:var(--text-sm);color:var(--text-muted);font-variant-numeric:tabular-nums}.combo-create{border-top:1px solid var(--border);border-radius:0 0 6px 6px;margin-top:4px;padding-top:10px}.combo-create .combo-label{color:var(--accent-text);align-items:center;gap:6px;font-weight:600;display:flex}.news-pics{margin:var(--space-2) 0 var(--space-1);border-radius:10px;gap:4px;display:grid;overflow:hidden}.news-pics[data-count="2"],.news-pics[data-count="4"]{grid-template-columns:1fr 1fr}.news-pics[data-count="3"]{grid-template-rows:1fr 1fr;grid-template-columns:2fr 1fr}.news-pics[data-count="3"] .news-pic:first-child{grid-row:1/3}.news-pic{background:var(--surface-muted);min-height:96px;max-height:320px;display:block;position:relative;overflow:hidden}.news-pics[data-count="1"] .news-pic{max-height:360px}.news-pics:not([data-count="1"]) .news-pic{aspect-ratio:4/3!important}.news-pic img{object-fit:cover;width:100%;height:100%;display:block}.news-pic:hover img{filter:brightness(.95)}.news-pic-missing{color:var(--text-muted);place-items:center;display:grid}.news-pic-wait{background:linear-gradient(90deg, var(--surface-muted), #f8fafc, var(--surface-muted));background-size:200% 100%;width:100%;height:100%;min-height:96px;animation:1.2s ease-in-out infinite news-shimmer;display:block}@keyframes news-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@media (prefers-reduced-motion:reduce){.news-pic-wait{animation:none}}.news-edit-pics{gap:var(--space-2);grid-template-columns:repeat(auto-fill,minmax(96px,1fr));margin:0;padding:0;list-style:none;display:grid}.news-edit-pic{aspect-ratio:1;background:var(--surface-muted);border:1px solid var(--border);border-radius:8px;display:block;position:relative;overflow:hidden}.news-edit-pic img{object-fit:cover;width:100%;height:100%;display:block}.news-edit-remove{border-radius:50%;min-width:32px;min-height:32px;padding:0;position:absolute;top:4px;right:4px;color:#fff!important;background:#0f172ab3!important}.news-add-pic{justify-self:start}.import-parts{margin:var(--space-2) 0 0;gap:var(--space-1);border:0;padding:0;display:grid}.import-parts legend{margin-bottom:var(--space-1);padding:0;font-weight:600}.import-part{min-height:var(--target);padding:var(--space-1) var(--space-2);border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);align-items:center;gap:var(--space-2)}.import-part .muted{font-size:var(--text-sm);white-space:nowrap}.book-summary{align-items:center;gap:var(--space-2);flex-wrap:wrap;margin:0;display:flex}.book-risks{gap:var(--space-3);margin:0;padding:0;list-style:none;display:grid}.book-risk{padding:var(--space-4);border-left:4px solid var(--border-strong)}.book-risk[data-impact=high]{border-left-color:var(--danger)}.book-risk[data-impact=medium]{border-left-color:var(--warning)}.book-risk[data-closed]{opacity:.7}.book-risk[data-closed] strong{text-decoration:line-through;-webkit-text-decoration-color:var(--text-muted);text-decoration-color:var(--text-muted)}.book-risk-head{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.book-risk-head strong{overflow-wrap:anywhere;flex:12rem;min-width:0}.book-risk-detail{margin:var(--space-2) 0 0;white-space:pre-line;max-width:75ch;line-height:1.55}.book-risk-meta{margin:var(--space-2) 0 0;font-size:var(--text-sm)}.book-sections{gap:var(--space-4);align-items:start;display:grid}@media (width>=1024px){.book-sections{grid-template-columns:repeat(2,minmax(0,1fr))}}.book-section-head{align-items:baseline;gap:var(--space-3);padding:var(--space-3) var(--space-4);font-size:var(--text-md);border-bottom:1px solid var(--border);margin:0;display:flex}.book-section-total{font-size:var(--text-sm);font-weight:500}.book-facts{margin:0;padding:0;list-style:none}.book-facts li{align-items:center;column-gap:var(--space-3);row-gap:var(--space-1);padding:var(--space-3) var(--space-4);border-top:1px solid var(--border);flex-wrap:wrap;display:flex}.book-facts li:first-child{border-top:0}.book-facts li[data-flag=problem]{background:var(--danger-soft)}.book-facts li[data-flag=warning]{background:var(--warning-soft)}.book-fact-label{overflow-wrap:anywhere;flex:12rem;min-width:0}.book-fact-value{text-align:right;font-weight:600}.book-fact-note{font-size:var(--text-sm);flex-basis:100%;line-height:1.5}.book-edit{min-width:var(--target);min-height:var(--target);place-items:center;display:inline-grid}.book-box{color:inherit;transition:border-color var(--dur-fast) var(--ease-out);text-decoration:none}.book-box:hover{border-color:var(--accent)}.book-box[data-alert]{border-color:var(--warning);background:var(--warning-soft)}.book-mini{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.book-mini li{align-items:center;gap:var(--space-2);display:flex}.book-table{table-layout:fixed;width:100%;min-width:640px}.book-table .c-seq{width:5rem}.book-table .c-qty{width:6rem}.book-table .c-unit{width:5rem}.book-table .c-sf{width:7rem}.book-table .c-note{width:32%}.book-table .c-edit{width:3.5rem}.book-table td{overflow-wrap:anywhere}body:has(.plan-full){overflow:hidden}.plan-full{z-index:calc(var(--z-sticky) + 1);gap:var(--space-2);padding:var(--space-2) var(--space-3) calc(var(--space-2) + env(safe-area-inset-bottom));background:var(--bg);flex-direction:column;display:flex;position:fixed;inset:0}.plan-full .plan-toolbar,.plan-full .markup-selected,.plan-full>.alert{margin-bottom:0}.plan-full .plan-stage{flex:1;min-height:0;max-height:none;display:flex}.plan-full .plan-sheet,.plan-full .plan-stage>canvas,.plan-full .plan-message{margin:auto}.plan-top{align-items:center;gap:var(--space-3);min-height:var(--target);display:flex}.plan-back{align-items:center;gap:var(--space-1);min-height:var(--target);padding:0 var(--space-2);border-radius:var(--radius);color:var(--brand);white-space:nowrap;font-weight:600;text-decoration:none;display:inline-flex}.plan-back:hover{background:var(--accent-soft)}.plan-title{flex:1;min-width:0;line-height:1.25}.plan-title h1{font-size:var(--text-lg);white-space:nowrap;text-overflow:ellipsis;margin:0;overflow:hidden}.plan-title .muted{font-size:var(--text-sm);white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.plan-top-actions{align-items:center;gap:var(--space-2);display:flex}@media (width<=639px){.plan-title .muted{display:none}.plan-back span,.plan-pdf-label{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}}.qty-row{gap:var(--space-3);align-items:end;display:grid}@media (width>=640px){.qty-row{grid-template-columns:minmax(180px,240px) minmax(0,1fr)}}.qty-today{gap:var(--space-1);display:grid}.qty-input{border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface);align-items:center;display:flex}.qty-input:focus-within{outline:2px solid var(--focus);outline-offset:1px}.qty-input .input{min-width:0;font-size:var(--text-lg);background:0 0;border:0;outline:none;flex:1;font-weight:600}.qty-unit{padding:0 var(--space-3);color:var(--text-muted);white-space:nowrap;font-weight:600}.qty-total{gap:var(--space-1);min-width:0;display:grid}.qty-total .progress{width:100%}.qty-total .muted{font-size:var(--text-sm)}.qty-facts{gap:var(--space-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.qty-facts li{align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);background:var(--surface-muted);font-size:var(--text-sm);border-radius:999px;display:inline-flex}.qty-facts li[data-warn]{background:var(--warning-soft);color:var(--text);font-weight:600}.qty-hint{font-size:var(--text-sm);margin:0}.live-stats{gap:var(--space-4);grid-template-columns:minmax(0,1fr)}@media (width>=640px){.live-stats:not([data-single]){grid-template-columns:repeat(2,minmax(0,1fr))}}.live-stat{gap:var(--space-1);align-content:start;min-width:0;display:grid}.live-stat+.live-stat{border-top:1px solid var(--border);padding-top:var(--space-4)}@media (width>=640px){.live-stats:not([data-single]) .live-stat+.live-stat{border-top:0;border-left:1px solid var(--border);padding-top:0;padding-left:var(--space-4)}}.live-stat-label{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--text-muted);font-weight:600;display:flex}.live-stat-value{font-size:var(--text-2xl);color:var(--text);font-variant-numeric:tabular-nums;font-weight:700;line-height:1.15}.live-stat-sub{align-items:center;gap:var(--space-1);font-size:var(--text-sm);color:var(--text-muted);flex-wrap:wrap;display:flex}.live-note{color:var(--text);background:var(--warning-soft);border-radius:var(--radius);padding:var(--space-1) var(--space-2)}.live-dot{background:var(--success-soft);color:var(--success);font-size:var(--text-xs);letter-spacing:.06em;border-radius:999px;align-items:center;gap:6px;padding:2px 8px;display:inline-flex}.live-dot:before{content:"";background:currentColor;border-radius:50%;width:8px;height:8px;animation:1.6s ease-in-out infinite live-pulse}@keyframes live-pulse{50%{opacity:.25}}@media (prefers-reduced-motion:reduce){.live-dot:before{animation:none}}@media (width>=1024px){.dash-kpis[data-count="3"]{grid-template-columns:repeat(3,minmax(0,1fr))}}.dash-week-pick{width:auto;min-width:11rem;min-height:36px;font-size:var(--text-sm);text-transform:none;letter-spacing:normal;padding-top:0;padding-bottom:0;font-weight:500}.dash-week-total{margin:0}.dash-week-total strong{font-size:var(--text-xl)}.plan{padding-bottom:var(--space-12)}.plan-steps{margin:0 0 var(--space-4);gap:var(--space-2);padding:0;list-style:none;display:grid}@media (width>=900px){.plan-steps{grid-template-columns:repeat(3,minmax(0,1fr))}}.plan-steps li{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);display:flex}.plan-steps li[data-done]{border-color:var(--accent)}.plan-step-n{background:var(--surface-muted);width:32px;height:32px;color:var(--text-muted);border-radius:50%;flex:none;place-items:center;font-weight:700;display:grid}.plan-steps li[data-done] .plan-step-n{background:var(--accent);color:var(--on-accent)}.plan-step-text{gap:var(--space-1);justify-items:start;min-width:0;display:grid}.plan-step-text .muted{font-size:var(--text-sm)}.plan-week-nav{align-items:center;gap:var(--space-2);font-weight:600;display:inline-flex}.plan-layout{gap:var(--space-4);align-items:start;display:grid}@media (width>=1280px){.plan-layout{grid-template-columns:minmax(0,1fr) 280px}}.plan-scroll{max-height:calc(100dvh - 220px);padding:0;overflow:auto}.plan-grid{border-collapse:separate;border-spacing:0;table-layout:fixed;width:100%;min-width:780px;font-size:var(--text-sm)}.plan-grid th,.plan-grid td{border-bottom:1px solid var(--border);border-left:1px solid var(--border);vertical-align:top;text-align:left;padding:0}.plan-grid thead th{z-index:2;background:var(--surface-muted);position:sticky;top:0}.plan-grid td[data-off],.plan-grid thead th[data-off]{background:var(--surface-muted)}.plan-grid thead th[data-off]{width:64px}.plan-grid thead th[data-off] .plan-day-count{display:none}.plan-grid thead th[data-today]{box-shadow:inset 0 -3px 0 var(--highlight-line)}.plan-person{z-index:1;background:var(--surface);position:sticky;left:0;border-left:0!important}.plan-grid thead .plan-person{z-index:3;background:var(--surface-muted);width:168px;padding:var(--space-2) var(--space-3);vertical-align:bottom;font-weight:600}.plan-group th{padding:var(--space-3) var(--space-3) var(--space-1);background:var(--surface);font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);border-left:0;font-weight:700;position:sticky;left:0}.plan-day,.plan-name{width:100%;min-height:var(--target);padding:var(--space-2) var(--space-3);color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex-direction:column;align-items:flex-start;font-weight:600;display:flex}.plan-day{gap:0 var(--space-1);flex-flow:wrap}.plan-day-count{font-weight:400;font-size:var(--text-xs);color:var(--text-muted);flex-basis:100%}.plan-name{overflow-wrap:anywhere;justify-content:center}.plan-day:hover,.plan-name:hover{background:var(--accent-soft)}.plan-cell{gap:var(--space-1);width:100%;min-height:64px;padding:var(--space-2);color:var(--text);font:inherit;text-align:left;cursor:pointer;touch-action:manipulation;background:0 0;border:0;flex-direction:column;display:flex;position:relative}.plan-cell:hover{background:var(--accent-soft)}.plan-cell:focus-visible,.plan-day:focus-visible,.plan-name:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}.plan-cell[data-selected]{background:var(--accent-soft);box-shadow:inset 0 0 0 2px var(--accent)}.plan-check{color:var(--accent-text);position:absolute;top:4px;right:4px}.plan-empty{color:var(--border-strong);opacity:0;transition:opacity var(--dur-fast) var(--ease-out);margin:auto}.plan-cell:hover .plan-empty,.plan-cell:focus-visible .plan-empty,.plan-cell[data-selected] .plan-empty{opacity:1}.plan-chip{padding:2px var(--space-2);border-left:4px solid var(--border-strong);background:var(--surface);box-shadow:0 0 0 1px var(--border);border-radius:4px;min-width:0;line-height:1.3;display:grid}.plan-chip-job{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.plan-chip-task{color:var(--text-muted);font-size:var(--text-xs);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.plan-double{font-size:var(--text-xs);color:var(--text);background:var(--warning-soft);border-radius:999px;align-self:flex-start;align-items:center;gap:2px;padding:0 6px;font-weight:600;display:inline-flex}.plan-jobs{padding:0}.plan-jobs-empty{padding:var(--space-4);margin:0}.plan-job-list{margin:0;padding:0;list-style:none}.plan-job-list li{gap:var(--space-2);padding:var(--space-3) var(--space-4);border-top:1px solid var(--border);display:grid}.plan-job-list li:first-child{border-top:0}.plan-job-name{align-items:center;gap:var(--space-2);font-weight:600;display:flex}.plan-dot{border-radius:50%;flex:none;width:10px;height:10px}.plan-job-days{gap:4px;display:flex}.plan-job-day{background:var(--surface-muted);font-size:var(--text-xs);color:var(--text-muted);border-radius:6px;flex:1;justify-items:center;padding:2px 0;display:grid}.plan-job-day strong{color:var(--text);font-size:var(--text-sm)}.plan-job-day[data-empty]{background:var(--warning-soft)}.plan-job-gaps{gap:var(--space-1);font-size:var(--text-xs);color:var(--text);align-items:flex-start;display:flex}.plan-bar{bottom:calc(var(--nav-height) + env(safe-area-inset-bottom) + var(--space-2));z-index:var(--z-sticky);align-items:center;gap:var(--space-2);margin-top:var(--space-4);padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);background:var(--brand);color:var(--on-brand);box-shadow:var(--shadow-sheet);flex-wrap:wrap;display:flex;position:sticky}@media (width>=1024px){.plan-bar{bottom:var(--space-4)}}.plan-bar .btn:not(.btn-primary){color:#fff;background:#ffffff1f;border-color:#ffffff4d}.plan-assign{gap:var(--space-4);display:grid}@media (width>=720px){.plan-assign{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr)}}.plan-pick-list{margin:var(--space-2) 0 0;gap:var(--space-1);max-height:46vh;padding:0;list-style:none;display:grid;overflow-y:auto}.plan-pick-list button{align-items:center;gap:var(--space-2);width:100%;min-height:var(--target);padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);font:inherit;text-align:left;cursor:pointer;display:flex}.plan-pick-list button:hover:not(:disabled){border-color:var(--accent)}.plan-pick-list button[aria-selected=true]{border-color:var(--accent);background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent)}.plan-pick-list button:disabled{opacity:.55;cursor:not-allowed}.plan-pick-list button:focus-visible{outline:2px solid var(--focus);outline-offset:1px}@media (width<=639px){.plan-grid{min-width:640px}.plan-grid thead .plan-person{width:112px}.plan-name{padding:var(--space-2)}}.live-crew{padding:0 var(--space-4) var(--space-4);gap:var(--space-2);display:grid}.live-crew .dash-sub-head{margin:0}.live-crew-table{font-size:var(--text-sm)}.live-crew-table td{vertical-align:top}.live-crew-table tr[data-over] td:first-child strong{color:var(--danger)}.live-crew-name{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.live-crew-title,.live-crew-where{font-size:var(--text-xs);display:block}.live-crew-where a{align-items:center;gap:2px;display:inline-flex}.live-on{background:var(--success-soft);color:var(--success);font-size:var(--text-xs);border-radius:999px;align-items:center;gap:4px;padding:0 8px;font-weight:700;display:inline-flex}.live-on[data-elsewhere]{background:var(--surface-muted);color:var(--text-muted)}.live-forty{vertical-align:middle;width:64px;height:8px;margin-right:var(--space-2);background:var(--surface-muted);border-radius:4px;display:inline-block;overflow:hidden}.live-forty span{background:var(--accent);height:100%;display:block}.live-forty span[data-over]{background:var(--danger)}.live-ot{color:var(--danger)}.live-crew-table tfoot td{border-top:2px solid var(--border-strong);font-weight:700}.live-crew-note{font-size:var(--text-xs);margin:0}.dash-week-total .live-dot{margin-left:var(--space-2);vertical-align:middle}.shell-main:has(.plan){max-width:none}.live-onsite{padding:0 var(--space-4) var(--space-4);gap:var(--space-2);display:grid}.live-onsite .dash-sub-head{margin:0}.live-onsite-meta{font-size:var(--text-sm);color:var(--text-muted);margin:0}.live-onsite-on{color:var(--success);font-weight:600}.live-pills{gap:var(--space-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.live-pill{align-items:center;gap:var(--space-2);border:1px solid var(--border);background:var(--surface-muted);min-height:36px;font-size:var(--text-sm);border-radius:999px;padding:4px 12px;display:inline-flex}.live-pill[data-on]{border-color:var(--success);background:var(--success-soft)}.live-pill[data-foreman] .live-pill-name{font-weight:700}.live-pill-name{color:var(--text);font-weight:600}.live-pill-at{color:var(--text-muted);font-size:var(--text-xs)}.live-pill-h{color:var(--text);font-weight:700}.live-pill[data-on] .live-pill-h{color:var(--success)}.live-pill-map{min-width:24px;min-height:24px;color:var(--accent-text);place-items:center;display:inline-grid}.plan-span{flex-wrap:nowrap}.plan-weeks th{padding:var(--space-1) var(--space-3);font-size:var(--text-xs);letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);border-left:2px solid var(--border-strong);font-weight:700}.plan-weeks th[data-this-week]{color:var(--accent-text);background:var(--accent-soft)}.plan-grid[data-compact]{min-width:900px}.plan-grid[data-compact] thead th[data-off]{width:30px}.plan-grid[data-compact] th[data-week-start],.plan-grid[data-compact] td[data-week-start]{border-left:2px solid var(--border-strong)}.plan-grid[data-compact] .plan-day{padding:var(--space-1);font-size:var(--text-xs);justify-content:center;align-items:center;gap:0}.plan-grid[data-compact] .plan-cell{align-items:stretch;min-height:44px;padding:3px}.plan-grid[data-compact] .plan-chip{color:#fff;box-shadow:none;border-left-width:0;place-items:center;padding:2px}.plan-grid[data-compact] .plan-chip-job{font-size:var(--text-xs);letter-spacing:.02em;font-weight:700}.plan-grid[data-compact] .plan-double{justify-content:center;padding:0 4px}.plan-grid[data-compact] .plan-check{top:2px;right:2px}.plan-job-code{background:var(--surface-muted);font-size:var(--text-xs);border-radius:4px;padding:0 6px;font-weight:700}.store,.est{gap:var(--space-4);display:grid}.store>.card:not(.list),.store section.card,.est section.card,.est div.card:not(.table-wrap),.est aside.card{padding:var(--space-4)}.store .card-title,.est .card-title{margin:0 0 var(--space-3);font-size:var(--text-lg);align-items:center;gap:var(--space-2);display:flex}.store-balance{align-items:center;gap:var(--space-1);min-height:var(--target);padding:0 var(--space-3);background:var(--highlight-soft);color:var(--text);font-size:var(--text-md);border-radius:999px;display:inline-flex}.store-balance svg{color:#b45309}.store-grid{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));margin:0;padding:0;list-style:none;display:grid}@media (width>=640px){.store-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width>=1024px){.store-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.store-card{text-align:left;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);width:100%;height:100%;color:inherit;font:inherit;cursor:pointer;transition:border-color var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);grid-template-rows:auto 1fr;padding:0;display:grid;overflow:hidden}.store-card:hover{border-color:var(--accent)}.store-card:active{transform:scale(.98)}.store-card:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.store-card-text{gap:var(--space-1);padding:var(--space-3);align-content:start;display:grid}.store-card-name{font-weight:600;line-height:1.3}.store-card-price{align-items:baseline;gap:var(--space-2);flex-wrap:wrap;display:flex}.store-photo{aspect-ratio:1;background:var(--surface-muted);color:var(--text-muted);place-items:center;display:grid;overflow:hidden}.store-photo img{object-fit:cover;width:100%;height:100%}.store-photo.large{border-radius:var(--radius-lg);width:100%;max-width:320px;margin:0 auto}.store-sheet-price{font-size:var(--text-lg);margin:0}.store-size{justify-content:center;min-width:48px}.store-size:disabled{opacity:.45;cursor:not-allowed;text-decoration:line-through}.store-qty{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.store-qty .inline{gap:var(--space-3)}.store-qty strong{text-align:center;min-width:2ch;font-size:var(--text-lg)}.store-cartbar{bottom:calc(var(--space-3) + env(safe-area-inset-bottom));z-index:var(--z-sticky);justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);background:var(--brand);color:var(--on-brand);box-shadow:var(--shadow-sheet);display:flex;position:sticky}.store-cartbar span{align-items:center;gap:var(--space-2);display:inline-flex}@media (width<=1023px){.store-cartbar{bottom:calc(var(--nav-height) + var(--space-3) + env(safe-area-inset-bottom))}}.store-sum{gap:var(--space-1);margin:0;display:grid}.store-sum div{justify-content:space-between;gap:var(--space-3);display:flex}.store-sum dt{color:var(--text-muted)}.store-sum dd{margin:0}.store-sum-total{border-top:1px solid var(--border);padding-top:var(--space-2);font-weight:700;font-size:var(--text-lg)}.store-sum-total dt{color:var(--text)}.store-sign{padding:var(--space-3);border:2px solid var(--accent);border-radius:var(--radius);background:var(--accent-soft);gap:var(--space-2);display:grid}.store-sign-text{margin:0;font-style:italic}.store-hero{align-items:center;gap:var(--space-4);display:flex}.store-hero svg{color:#b45309}.store-hero p{margin:0}.store-hero-number{font-size:var(--text-2xl);font-weight:700;line-height:1.1}.store-mine{gap:var(--space-4);display:grid}.store-points.up{color:var(--success)}.store-points.down{color:var(--text-muted)}.store-orders{gap:var(--space-3);margin:0;padding:0;list-style:none;display:grid}@media (width>=1024px){.store-orders{grid-template-columns:repeat(2,minmax(0,1fr))}}.store-order{gap:var(--space-2);padding:var(--space-4);display:grid}.store-order p{margin:0}.store-order-head{justify-content:space-between;align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.store-order-note{padding:var(--space-2);border-radius:var(--radius);background:var(--surface-muted)}.store-order-actions{gap:var(--space-2);flex-wrap:wrap}.store-item-row{gap:var(--space-3)}.store-thumb{border-radius:var(--radius);background:var(--surface-muted);width:56px;height:56px;color:var(--text-muted);flex:none;place-items:center;display:grid;overflow:hidden}.store-thumb img{object-fit:cover;width:100%;height:100%}.store-photos{gap:var(--space-2);flex-wrap:wrap}.store-photo-edit{align-items:center;gap:var(--space-1);display:inline-flex}.store-statement{font-style:italic}.est-kpis{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(170px,1fr));display:grid}.est-kpi{padding:var(--space-3) var(--space-4);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);gap:2px;display:grid}.est-kpi[data-tone=warning]{border-color:var(--warning);background:var(--warning-soft)}.est-kpi-n{font-size:var(--text-xl);font-weight:700}.est-filter{max-width:280px}.est-columns{gap:var(--space-4);display:grid}@media (width>=1024px){.est-columns{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start}}.est-column{gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-lg);background:var(--surface-muted);display:grid}.est-column-head{align-items:center;gap:var(--space-2);font-size:var(--text-md);margin:0;display:flex}.est-cards{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.est-empty{padding:var(--space-2);margin:0}.est-card{gap:var(--space-1);padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:inherit;transition:border-color var(--dur-fast) var(--ease-out);text-decoration:none;display:grid}.est-card:hover{border-color:var(--accent)}.est-card:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.est-card-top{justify-content:space-between;align-items:center;gap:var(--space-2);font-size:var(--text-sm);display:flex}.est-card-name{line-height:1.3}.est-card-foot{justify-content:space-between;gap:var(--space-2);font-size:var(--text-sm);color:var(--text-muted);display:flex}.est-card-foot strong{color:var(--text)}.est-card-who{font-size:var(--text-xs)}.est-scope{flex-wrap:wrap;gap:4px;display:flex}.est-tag{background:var(--accent-soft);color:var(--accent-text);font-size:var(--text-xs);border-radius:999px;padding:1px 8px;font-weight:600}.est-contact{gap:var(--space-2);grid-template-columns:1fr;align-items:center;display:grid}@media (width>=768px){.est-contact{grid-template-columns:1.2fr 1fr 1fr 1.4fr auto}}.est-map-select{max-width:280px}.est-crew .input{min-width:0}.est-savebar{justify-content:flex-end;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.est-bid .stack>.est-savebar{bottom:var(--space-3);z-index:var(--z-sticky);padding:var(--space-3);border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--border);position:sticky}.est-savebar[data-dirty]{border-color:var(--accent)}.est-totals .est-savebar{margin-top:var(--space-3)}.est-estimate{gap:var(--space-4);display:grid}@media (width>=1280px){.est-estimate{grid-template-columns:minmax(0,1fr) 320px;align-items:start}.est-totals{top:calc(var(--topbar-height) + var(--space-3));position:sticky}}.est-estimate-main .card>.btn{margin-top:var(--space-3)}.est-lines td{vertical-align:middle}.est .data-table .input{min-height:36px;padding:4px 8px}.est-in-xs{width:64px}.est-in-sm{width:88px}.est-in-md{width:110px}.est-takeoff-check{font-size:var(--text-xs);min-height:0;margin-top:2px}.est-rate-source{font-size:var(--text-xs);color:var(--text-muted);display:block}.est-row-tools{white-space:nowrap}.est-sum{gap:4px;margin:0;display:grid}.est-sum div{justify-content:space-between;gap:var(--space-3);display:flex}.est-sum dt{color:var(--text-muted)}.est-sum dd{margin:0}.est-sum+.est-sum{margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--border)}.est-sum-line{border-top:1px dashed var(--border);padding-top:4px;font-weight:600}.est-sum-total{border-top:2px solid var(--text);padding-top:var(--space-2);font-size:var(--text-xl);font-weight:700}.est-sum-total dt{color:var(--text)}.est-verdict{padding:var(--space-2) var(--space-3);border-radius:var(--radius);font-size:var(--text-sm);border:1px solid;margin:0}.est-verdict[data-verdict=good]{background:var(--success-soft);border-color:var(--success)}.est-verdict[data-verdict=thin]{background:var(--warning-soft);border-color:var(--warning)}.est-verdict[data-verdict=bad]{background:var(--danger-soft);border-color:var(--danger)}.est-proposal-price{font-size:var(--text-lg);margin:0}.est-rate-actual[data-tone=danger]{color:var(--danger);font-weight:700}.est-rate-actual[data-tone=success]{color:var(--success);font-weight:600}:is(.shell-main:has(.est-bid),.shell-main:has(.takeoff)){max-width:none}.takeoff{gap:var(--space-3);display:grid}.takeoff-bar{align-items:center;gap:var(--space-2) var(--space-4);padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);top:var(--topbar-height);z-index:var(--z-sticky);flex-wrap:wrap;display:flex;position:sticky}.takeoff-name{text-overflow:ellipsis;white-space:nowrap;max-width:260px;overflow:hidden}.takeoff-tools{margin-left:auto}.takeoff-tools .chip{align-items:center;gap:4px;display:inline-flex}.takeoff-body{gap:var(--space-3);display:grid}@media (width>=1024px){.takeoff-body{grid-template-columns:minmax(0,1fr) 300px;align-items:start}}.takeoff-stage{max-height:calc(100dvh - var(--topbar-height) - 140px);border:1px solid var(--border);border-radius:var(--radius-lg);background:#e2e8f0;overflow:auto}.takeoff-sheet{margin:0 auto;position:relative}.takeoff-sheet canvas{background:#fff;display:block}.takeoff-svg{position:absolute;inset:0}.takeoff-stage[data-tool=pan] .takeoff-svg{pointer-events:none}.takeoff-stage:not([data-tool=pan]) .takeoff-svg{cursor:crosshair}.takeoff-side{gap:var(--space-4);padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);display:grid}.takeoff-side p{margin:0}.takeoff-live{font-size:var(--text-lg);color:var(--accent-text);font-weight:700}.takeoff-list .row{gap:var(--space-2);min-height:0;padding:var(--space-1) var(--space-2)}.takeoff-swatch{border-radius:3px;flex:none;width:12px;height:12px}.takeoff-calibrate{z-index:var(--z-dialog);width:min(360px,100vw - 32px);padding:var(--space-4);gap:var(--space-3);box-shadow:var(--shadow-sheet);display:grid;position:fixed;top:30%;left:50%;transform:translate(-50%)}.store .card .list,.est .card .list{background:0 0;border:none;border-radius:0}.store-card-text .badge{justify-self:start}.store-photo.large{max-width:240px}.est-lines{min-width:1180px}.est-lines td:nth-child(2) .input{min-width:220px}.est-lines td:nth-child(3) .input{min-width:190px}.est-lines td:nth-child(10) .input{min-width:150px}.est-estimate-main .table-wrap{overflow-x:auto}.eq{gap:var(--space-4);display:grid}.eq-filters{align-items:flex-end;gap:var(--space-3);flex-wrap:wrap;display:flex}.eq-filters .field{min-width:150px}.eq-grid{gap:var(--space-3);grid-template-columns:1fr;margin:0;padding:0;list-style:none;display:grid}@media (width>=640px){.eq-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=1280px){.eq-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.eq-card{text-align:left;width:100%;height:100%;padding:var(--space-3) var(--space-4);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);color:inherit;font:inherit;cursor:pointer;transition:border-color var(--dur-fast) var(--ease-out);align-content:start;gap:4px;display:grid}.eq-card:hover{border-color:var(--accent)}.eq-card:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.eq-card-top{justify-content:space-between;align-items:flex-start;gap:var(--space-2);display:flex}.eq-card-line{font-size:var(--text-sm);align-items:center;gap:6px;display:inline-flex}.eq-card-warn{color:var(--warning);font-size:var(--text-sm);align-items:center;gap:4px;font-weight:600;display:inline-flex}.eq-dot{background:var(--border-strong);border-radius:50%;flex:none;width:8px;height:8px}.eq-dot[data-on]{background:var(--success)}.eq-schedule{padding:var(--space-3);gap:var(--space-3);display:grid}.eq-schedule-bar{justify-content:space-between;align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.eq-schedule-bar .inline{gap:var(--space-2)}.eq-timeline-wrap{overflow-x:auto}.eq-timeline{border-top:1px solid var(--border);grid-auto-rows:minmax(52px,auto);min-width:760px;display:grid}.eq-tl-head{z-index:1;background:var(--surface);border-bottom:1px solid var(--border);font-size:var(--text-xs);color:var(--text-muted);grid-row:1;place-items:center;padding:4px 0;display:grid;position:sticky;top:0}.eq-tl-head strong{font-size:var(--text-sm);color:var(--text)}.eq-tl-head[data-today]{background:var(--highlight-soft)}.eq-tl-head[data-today] strong{color:var(--text)}.eq-tl-corner{padding-left:var(--space-2);place-items:center start;font-weight:600}.eq-tl-name{text-align:left;padding:4px var(--space-2);border:none;border-bottom:1px solid var(--border);background:var(--surface);color:inherit;font:inherit;cursor:pointer;z-index:1;grid-column:1;align-content:center;gap:0;display:grid;position:sticky;left:0}.eq-tl-name strong{font-size:var(--text-sm);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.eq-tl-name .muted{font-size:var(--text-xs)}.eq-tl-cell{border:none;border-bottom:1px solid var(--border);border-left:1px solid var(--border);cursor:pointer;background:0 0;padding:0}.eq-tl-cell[data-weekend]{background:var(--surface-muted)}.eq-tl-cell:hover:not(:disabled){background:var(--accent-soft)}.eq-tl-cell:disabled{cursor:default}.eq-tl-bar{z-index:1;border:2px solid var(--bar);background:var(--bar);color:#fff;min-height:30px;font:inherit;font-size:var(--text-xs);text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;border-radius:6px;align-self:center;margin:0 2px;padding:2px 8px;font-weight:600;overflow:hidden}.eq-tl-bar[data-status=requested]{background:var(--surface);color:var(--text);border-style:dashed}.eq-tl-bar[data-clash]{outline:3px solid var(--danger);outline-offset:1px}.eq-tl-bar:focus-visible{outline:3px solid var(--focus)}.eq-legend{font-size:var(--text-sm);flex-wrap:wrap;align-items:center;gap:6px;margin:0;display:flex}.eq-key{background:var(--proj-0);border:2px solid var(--proj-0);border-radius:3px;width:22px;height:12px;display:inline-block}.eq-key[data-status=requested]{margin-left:var(--space-2);background:0 0;border-style:dashed}.eq tr[data-idle] td{background:var(--danger-soft)}.eq-due[data-overdue]{color:var(--danger);font-weight:700}.plan-job-equipment{font-size:var(--text-xs);color:var(--text-muted);align-items:center;gap:4px;display:flex}.dash-equipment{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.dash-equipment li{justify-content:space-between;gap:var(--space-3);padding-bottom:var(--space-2);border-bottom:1px solid var(--border);display:flex}.dash-equipment-name{min-width:0;font-size:var(--text-sm);gap:2px;display:grid}.dash-equipment-figs{font-size:var(--text-sm);text-align:right;justify-items:end;gap:2px;display:grid}.dash-equipment-total{margin:var(--space-3) 0 0;font-size:var(--text-md);justify-content:space-between;display:flex}.dash>.dash-card{margin-bottom:var(--space-4)}.dash-grid[data-one]{grid-template-columns:1fr}.dash-budget{gap:var(--space-3) var(--space-6);margin:0;padding:0;list-style:none;display:grid}@media (width>=1024px){.dash-budget{grid-template-columns:repeat(2,minmax(0,1fr))}}.dash-budget li{gap:4px;display:grid}.dash-budget-head{justify-content:space-between;align-items:baseline;gap:var(--space-2);display:flex}.dash-budget-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:600;overflow:hidden}.dash-budget-bar{background:var(--surface-muted);border-radius:5px;height:10px;display:block;overflow:hidden}.dash-budget-bar>span{border-radius:inherit;background:var(--accent);height:100%;display:block}.dash-budget li[data-over] .dash-budget-bar>span{background:var(--danger)}.dash-budget li[data-over] .dash-budget-sub{color:var(--danger);font-weight:600}.dash-budget li[data-unbudgeted] .dash-budget-bar>span{background:#8fc0e3}.dash-budget-sub{font-size:var(--text-sm)}.budget{gap:var(--space-4);display:grid}.budget-kpis{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(170px,1fr));display:grid}.budget-card{padding:var(--space-4);gap:var(--space-3);display:grid}.budget-card .card-title{font-size:var(--text-lg);margin:0}.budget-card .list{background:0 0;border:none}.budget-table .input{min-height:36px;padding:4px 8px}.budget-table td:first-child .input{min-width:220px}.budget-amount{width:120px}.budget-table td[data-over]{color:var(--danger);font-weight:700}.budget-table tfoot th{text-align:left}.budget-table tfoot th.num{text-align:right}.budget-used{align-items:center;gap:var(--space-2);min-width:140px;display:inline-flex}.budget-bar{background:var(--surface-muted);border-radius:4px;width:90px;height:8px;display:inline-block;overflow:hidden}.budget-bar>span{background:var(--accent);height:100%;display:block}.budget-bar[data-over]>span{background:var(--danger)}.dash-card-head .btn{text-transform:none;letter-spacing:normal;font-weight:600}.pm-outlooks{gap:var(--space-4);display:grid}@media (width>=900px){.pm-outlooks{grid-template-columns:repeat(3,minmax(0,1fr))}}.pm-outlook{gap:var(--space-1);padding:var(--space-3) var(--space-4);border-left:4px solid var(--border);border-radius:var(--radius);background:var(--surface-muted);align-content:start;min-width:0;display:grid}.pm-outlook[data-tone=good]{border-left-color:var(--success)}.pm-outlook[data-tone=warn]{border-left-color:var(--warning)}.pm-outlook[data-tone=bad]{border-left-color:var(--danger)}.pm-outlook-value{font-size:clamp(1.5rem,3.5vw,2rem);font-weight:700;line-height:1.15}.pm-outlook-sub{font-size:var(--text-sm);color:var(--text-muted)}.pm-outlook[data-tone=bad] .pm-outlook-sub{color:var(--danger);font-weight:600}.pm-outlook .btn{margin-top:var(--space-2);justify-self:start}.pm-build{margin:var(--space-2) 0 0;font-size:var(--text-sm);gap:2px;display:grid}.pm-build div{justify-content:space-between;gap:var(--space-3);display:flex}.pm-build dt{color:var(--text-muted);min-width:0}.pm-build dd{white-space:nowrap;margin:0}.pm-build-sum{border-top:1px solid var(--border);padding-top:2px;font-weight:600}.pm-build-sum dt{color:var(--text)}.pm-driver{margin:var(--space-2) 0 0;font-size:var(--text-sm)}.pm-tasks{gap:var(--space-3);margin:0;padding:0;list-style:none;display:grid}@media (width>=1024px){.pm-tasks{gap:var(--space-4) var(--space-6);grid-template-columns:repeat(2,minmax(0,1fr))}}.pm-tasks li{padding-bottom:var(--space-3);border-bottom:1px solid var(--border);gap:4px;min-width:0;display:grid}.pm-task-head{align-items:center;gap:var(--space-1) var(--space-2);flex-wrap:wrap;display:flex}.pm-qty{align-items:center;gap:var(--space-3);grid-template-columns:minmax(80px,1fr) auto;display:grid}.pm-bar{background:var(--surface-muted);border-radius:5px;height:10px;display:block;overflow:hidden}.pm-bar>span{border-radius:inherit;background:var(--accent);height:100%;display:block}.pm-tasks li[data-status=behind] .pm-bar>span{background:var(--danger)}.pm-tasks li[data-status=done] .pm-bar>span{background:var(--success)}.pm-pace,.pm-hours{font-size:var(--text-sm);margin:0}.pm-pace [data-short]{color:var(--danger);font-weight:600}.pm-hours[data-over]{color:var(--danger)}.pm-weeks{gap:var(--space-4);display:grid}@media (width>=900px){.pm-weeks{grid-template-columns:repeat(3,minmax(0,1fr))}}.pm-week{gap:var(--space-2);padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius);align-content:start;min-width:0;display:grid}.pm-week-head{justify-content:space-between;align-items:baseline;gap:var(--space-2);font-size:var(--text-md);flex-wrap:wrap;margin:0;display:flex}.pm-week-head .muted{font-size:var(--text-sm);font-weight:400}.pm-crew,.pm-gaps{align-items:flex-start;gap:var(--space-2);font-size:var(--text-sm);margin:0;display:flex}.pm-crew svg{color:var(--brand);flex:none}.pm-gaps{color:var(--warning-text,var(--text))}.pm-gaps svg{color:var(--warning);flex:none;margin-top:1px}.pm-events,.pm-risks{gap:var(--space-2);font-size:var(--text-sm);margin:0;padding:0;list-style:none;display:grid}.pm-events li,.pm-risks li{align-items:flex-start;gap:var(--space-2);overflow-wrap:anywhere;min-width:0;display:flex}.pm-events svg{color:var(--accent-text);flex:none;margin-top:2px}.pm-risks svg{color:var(--warning);flex:none;margin-top:2px}.pm-risks li[data-high] svg{color:var(--danger)}.budget-suggest{align-items:center;gap:var(--space-1) var(--space-2);flex-wrap:wrap;display:inline-flex}.budget-suggest .muted{font-size:var(--text-sm)}.budget-card .card-title svg{vertical-align:-3px;color:var(--accent-text)}.eq-prices{padding:var(--space-4);gap:var(--space-3);display:grid}.eq-prices-head{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.eq-prices-head p{max-width:70ch;margin:0}.eq-prices-head .chips{margin:0}.eq-prices-table td{vertical-align:middle}.eq-prices-table tr[data-changed] td{background:var(--accent-soft)}.eq-price-input{align-items:center;gap:var(--space-1);display:inline-flex}.eq-price-input .input{text-align:right;width:120px;min-height:40px;padding:4px 8px}.eq-period{width:auto;min-width:11rem;min-height:40px;padding-top:0;padding-bottom:0}@media (width<=640px){.eq-prices-table thead{display:none}.eq-prices-table,.eq-prices-table tbody{display:block}.eq-prices-table tr{align-items:center;gap:var(--space-2);padding:var(--space-3) 0;border-bottom:1px solid var(--border);grid-template-columns:1fr auto;display:grid}.eq-prices-table td{text-align:left;border:0;padding:0;display:block}.eq-prices-table td:first-child,.eq-prices-table td:nth-child(6){grid-column:1/-1}.eq-prices-table td:nth-child(3),.eq-prices-table td:nth-child(5){justify-self:end}.eq-prices-table tr[data-changed] td{background:0 0}.eq-prices-table tr[data-changed]{background:var(--accent-soft)}.eq-period{min-width:0}}.budget-table td:first-child .select{min-width:220px;min-height:36px;padding-top:0;padding-bottom:0}.budget-account-other{align-items:center;gap:var(--space-1);display:inline-flex}.eq-card-wrap{grid-template-rows:1fr auto;gap:0;display:grid}.eq-card-wrap .eq-card{border-bottom-right-radius:0;border-bottom-left-radius:0}.eq-card-add{border-top:0;border-top-left-radius:0;border-top-right-radius:0;justify-content:center;width:100%}.dash-equipment-summary{justify-content:space-between;gap:var(--space-2);flex-wrap:wrap;margin:0;font-weight:600;display:flex}.dash-bill{font-size:var(--text-sm);color:var(--text);font-weight:600}.dash-bill[data-soon]{color:var(--warning);background:var(--warning-soft);border-radius:999px;padding:1px 8px}.dash-equipment li[data-gone]{opacity:.75}.hub-import-steps{gap:var(--space-4);min-width:0;max-width:100%;margin:0;padding-left:1.25rem;display:grid}.hub-import-steps li{padding-left:var(--space-1);min-width:0}.hub-import-steps li>*+*{margin-top:var(--space-2)}.hub-import-steps li>.btn,.hub-import-steps li>.hub-import-file{width:fit-content;display:flex}.hub-import-snippet{box-sizing:border-box;width:100%;max-width:100%;max-height:180px;padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-muted);white-space:pre;margin:0;font-size:12px;line-height:1.5;overflow:auto}.hub-import-file{cursor:pointer}.hub-import-file[aria-disabled]{opacity:.6;pointer-events:none}.budget-counts{font-size:var(--text-sm);margin-top:2px;display:block}.tab-icon{display:inline-flex;position:relative}.tab-badge{background:var(--danger);color:#fff;text-align:center;border-radius:999px;min-width:18px;height:18px;padding:0 5px;font-size:11px;font-weight:700;line-height:18px;position:absolute;top:-6px;right:-10px}.msg{gap:var(--space-4);display:grid}.msg-list-card{padding:0;overflow:hidden}.msg-search{margin:var(--space-3)}.msg-list{margin:0;padding:0;list-style:none}.msg-list li+li .msg-row{border-top:1px solid var(--border)}.msg-row{align-items:center;gap:var(--space-3);min-height:72px;padding:var(--space-3) var(--space-4);color:inherit;text-decoration:none;display:flex}.msg-row:hover{background:var(--accent-soft)}.msg-row:focus-visible{outline:3px solid var(--accent);outline-offset:-3px}.msg-row-text{flex:1;gap:2px;min-width:0;display:grid}.msg-row-top,.msg-row-bottom{align-items:center;gap:var(--space-2);min-width:0;display:flex}.msg-row-title{text-overflow:ellipsis;white-space:nowrap;flex:0 auto;min-width:0;font-weight:500;overflow:hidden}.msg-row-when{font-size:var(--text-sm);flex:none;margin-left:auto}.msg-row-preview{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text-muted);font-size:var(--text-sm);flex:1;overflow:hidden}.msg-row[data-unread] .msg-row-title{font-weight:700}.msg-row[data-unread] .msg-row-preview{color:var(--text);font-weight:600}.msg-row[data-unread] .msg-row-when{color:var(--accent-text);font-weight:600}.msg-unread{background:var(--accent);color:#fff;text-align:center;border-radius:999px;flex:none;min-width:22px;height:22px;padding:0 7px;font-size:12px;font-weight:700;line-height:22px;display:inline-block}.btn .msg-unread{margin-left:var(--space-1)}.msg-icon{background:var(--accent-soft);width:44px;height:44px;color:var(--accent-text);border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.msg-icon[data-kind=job]{color:#92400e;background:#fef3c7;border-radius:12px}.msg-icon-sm{width:36px;height:36px}.msg-none{padding:var(--space-4)}.msg-push{align-items:center;gap:var(--space-3);padding:var(--space-4);border-left:4px solid var(--accent);flex-wrap:wrap;display:flex}.msg-push-icon{color:var(--accent-text);flex:none}.msg-push-text{flex:1;gap:2px;min-width:220px;display:grid}.msg-push-steps{margin:var(--space-1) 0 0;gap:2px;padding-left:1.2rem;display:grid}.msg-push-actions{gap:var(--space-2);display:flex}.health-push,.health-push ul{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.health-push ul{padding-left:var(--space-3);font-size:var(--text-sm);gap:2px}.sync-detail{font-size:var(--text-sm);overflow-wrap:anywhere;margin:0}.msg-push-on{align-items:center;gap:var(--space-2) var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius);background:var(--surface-muted);font-size:var(--text-sm);flex-wrap:wrap;display:flex}.msg-push-on>svg{color:var(--accent-text);flex:none}.msg-push-on p{flex-basis:100%;margin:0}.msg-people{max-height:50vh;margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.msg-person{align-items:center;gap:var(--space-3);width:100%;min-height:52px;padding:var(--space-2);border-radius:var(--radius);color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;display:flex}.msg-person:hover{background:var(--accent-soft)}.shell-main:has(.msg-chat){max-width:920px;padding:0}.msg-chat{height:calc(100dvh - 64px - 72px - env(safe-area-inset-bottom));background:var(--bg);flex-direction:column;display:flex}@media (width>=1024px){.msg-chat{border-left:1px solid var(--border);border-right:1px solid var(--border);height:calc(100dvh - 121px)}}.msg-chat-head{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--surface);border-bottom:1px solid var(--border);display:flex}.msg-chat-title{flex:1;min-width:0;line-height:1.25;display:grid}.msg-chat-title strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.msg-chat-title .muted{font-size:var(--text-sm);align-items:center;gap:4px;display:inline-flex}.msg-thread{overscroll-behavior:contain;padding:var(--space-3) var(--space-3) var(--space-4);flex:1;overflow-y:auto}.msg-older{margin-bottom:var(--space-3);justify-content:center;display:flex}.msg-empty{margin:var(--space-8) auto;text-align:center;max-width:32ch}.msg-day{gap:6px;display:grid}.msg-day-label{margin:var(--space-3) 0 var(--space-1);font-size:var(--text-xs);color:var(--text-muted);justify-content:center;font-weight:600;display:flex}.msg-day-label span{background:var(--surface-muted);border-radius:999px;padding:2px 10px}.msg-item{justify-items:start;gap:2px;display:grid}.msg-item[data-mine]{justify-items:end}.msg-name{font-size:var(--text-xs);color:var(--text-muted);margin-left:36px;font-weight:600}.msg-bubble-row{align-items:flex-end;gap:var(--space-2);max-width:min(78%,560px);display:flex}.msg-avatar{flex:none}.msg-bubble{border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;text-align:left;cursor:pointer;border-radius:18px 18px 18px 6px;gap:4px;min-width:0;padding:8px 12px;display:grid;box-shadow:0 1px 1px #0f172a0f}.msg-item[data-mine] .msg-bubble{background:var(--accent);border-color:var(--accent);color:#fff;border-radius:18px 18px 6px}.msg-bubble:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.msg-bubble[data-pending]{opacity:.75}.msg-item .msg-bubble[data-failed]{background:var(--danger-soft);border-color:var(--danger);color:var(--text)}.msg-item .msg-bubble[data-deleted]{box-shadow:none;color:var(--text-muted);border-color:var(--border);background:0 0}.msg-text{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.45}.msg-meta{opacity:.8;justify-self:end;align-items:center;gap:3px;font-size:11px;display:inline-flex}.msg-actions,.msg-failed{align-items:center;gap:var(--space-3);padding:0 var(--space-2);font-size:var(--text-sm);flex-wrap:wrap;display:flex}.msg-failed{color:var(--danger)}.msg-failed.msg-waiting{color:var(--text-muted)}.msg-load-problem{margin:var(--space-2) var(--space-3) 0;align-items:center}.msg-remove{color:var(--danger);align-items:center;gap:4px;display:inline-flex}.msg-seen{padding:0 var(--space-2);font-size:var(--text-xs);color:var(--text-muted);align-items:center;gap:4px;display:inline-flex}.msg-photos{grid-template-columns:1fr;gap:4px;width:min(260px,60vw);display:grid}.msg-photos[data-count="2"],.msg-photos[data-count="3"],.msg-photos[data-count="4"]{grid-template-columns:1fr 1fr}.msg-photos[data-count="5"]{grid-template-columns:repeat(3,1fr);width:min(300px,70vw)}.msg-photo{aspect-ratio:1;background:var(--surface-muted);border-radius:12px;display:block;overflow:hidden}.msg-photo img{object-fit:cover;cursor:zoom-in;width:100%;height:100%;display:block}.msg-photo-wait{height:100%;font-size:var(--text-xs);justify-content:center;align-items:center;display:flex}.msg-photo-big{border-radius:var(--radius);width:100%;height:auto}.msg-compose{gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--surface);border-top:1px solid var(--border);display:grid}.msg-compose-row{align-items:flex-end;gap:var(--space-2);display:flex}.msg-input{resize:none;border-radius:22px;flex:1;min-height:44px;max-height:140px;padding:10px 16px;font-size:16px;line-height:1.4}.msg-camera,.msg-send{border-radius:50%;flex:none;width:44px;height:44px}.msg-camera{cursor:pointer}.msg-compose-photos{gap:var(--space-2);display:flex;overflow-x:auto}.msg-compose-photo{border-radius:10px;flex:none;width:64px;height:64px;position:relative;overflow:hidden}.msg-compose-photo img{object-fit:cover;width:100%;height:100%}.msg-compose-photo button{color:#fff;cursor:pointer;background:#0f172ab3;border:0;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;display:inline-flex;position:absolute;top:2px;right:2px}@media (prefers-reduced-motion:no-preference){.msg-thread{scroll-behavior:smooth}}.shell-nav-link .tab-icon:has(.tab-badge){margin-right:10px}.ai-icon{color:#5b21b6;background:#ede9fe}.ai-thread{align-content:start;gap:var(--space-4);display:grid}.ai-welcome{justify-items:center;gap:var(--space-2);max-width:46ch;margin:var(--space-6) auto;text-align:center;display:grid}.ai-welcome p{margin:0}.ai-welcome-icon{color:#7c3aed}.ai-starters{justify-content:center;gap:var(--space-2);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.ai-starters .chip{text-align:left;min-height:44px}.ai-question{cursor:default}.ai-question-sheet{font-size:var(--text-xs);opacity:.9;align-items:center;gap:4px;display:inline-flex}.ai-answer{gap:var(--space-2);min-width:0;max-width:min(100%,680px);display:grid}.ai-rich{gap:var(--space-2);overflow-wrap:anywhere;line-height:1.55;display:grid}.ai-rich p,.ai-rich ul,.ai-rich ol{margin:0}.ai-rich ul,.ai-rich ol{gap:2px;padding-left:1.3rem;display:grid}.ai-steps{font-size:var(--text-sm);color:var(--text-muted);gap:2px;margin:0;padding:0;list-style:none;display:grid}.ai-steps li:before{content:"✓ ";color:var(--success,#15803d)}.ai-steps li[data-now]:before{content:"• ";color:#7c3aed}.ai-steps li[data-now]{color:var(--text)}.ai-steps-done summary{font-size:var(--text-sm);cursor:pointer;width:fit-content}.ai-steps-done .ai-steps{margin-top:var(--space-1)}.ai-thinking{font-size:var(--text-sm);margin:0}@media (prefers-reduced-motion:no-preference){.ai-steps li[data-now],.ai-thinking{animation:1.4s ease-in-out infinite ai-pulse}@keyframes ai-pulse{50%{opacity:.55}}}.ai-cites{gap:var(--space-2);flex-wrap:wrap;display:flex}.ai-cite{min-height:36px;color:var(--accent-text);align-items:center;gap:4px;text-decoration:none;display:inline-flex}.ai-draft{gap:var(--space-2);padding:var(--space-3) var(--space-4);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);border-left:4px solid #7c3aed;display:grid}.ai-draft-head{align-items:center;gap:var(--space-2);display:flex}.ai-draft p,.ai-draft dl,.ai-draft ul{margin:0}.ai-draft-fields{gap:2px var(--space-3);grid-template-columns:max-content 1fr;display:grid}.ai-draft-fields dt{color:var(--text-muted);font-weight:600;font-size:var(--text-sm)}.ai-draft-fields dd{white-space:pre-wrap;margin:0}.ai-draft-text{white-space:pre-wrap;overflow-wrap:anywhere}.ai-draft-lines{padding-left:1.2rem}.ai-draft-note{font-size:var(--text-xs)}.ai-draft-actions{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}@media (width<=520px){.ai-draft-fields{grid-template-columns:1fr}}.ai-alert{margin:0 var(--space-3) var(--space-2)}.ai-topics{gap:var(--space-2);grid-template-columns:repeat(auto-fill,minmax(200px,1fr));display:grid}.ai-topic{align-items:flex-start;gap:var(--space-3);min-height:64px;padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);color:inherit;font:inherit;text-align:left;cursor:pointer;display:flex}.ai-topic>svg{color:#7c3aed;flex:none;margin-top:2px}.ai-topic>span{gap:2px;display:grid}.ai-topic .muted{font-size:var(--text-sm)}.ai-topic:hover{border-color:#7c3aed}.ai-topic[aria-checked=true]{background:#f5f3ff;border-color:#7c3aed;box-shadow:inset 0 0 0 1px #7c3aed}.ai-topic:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.ai-sheet-chip{align-items:center;gap:var(--space-2);padding:2px 2px 2px var(--space-3);border-radius:var(--radius);color:#3b0764;font-size:var(--text-sm);background:#ede9fe;display:flex}.ai-fill{margin-bottom:var(--space-4);flex-wrap:wrap;align-items:center}.ai-fill>svg{color:#7c3aed;flex:none}.ai-fill p{min-width:200px;margin:0}.ai-meter{background:var(--surface-muted);border-radius:999px;height:10px;overflow:hidden}.ai-meter span{background:#7c3aed;height:100%;display:block}.ai-meter span[data-high]{background:var(--danger)}.ai-sub{margin:0 0 var(--space-2);font-size:var(--text-md)}.ai-prices input{width:7rem}.plan-ai-box{z-index:1;pointer-events:none;background:#7c3aed14;border:3px solid #7c3aed;border-radius:4px;position:absolute;box-shadow:0 0 0 9999px #0f172a1f}.flag-head{font-size:var(--text-md);margin:0}.flag-list{gap:var(--space-3);margin:0;padding:0;list-style:none;display:grid}.flag-item{gap:var(--space-2);padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius);border-left:4px solid #7c3aed;display:grid}.flag-item[data-done]{border-left-color:var(--border)}.flag-item p{margin:0}.flag-source{align-items:center;gap:var(--space-1);font-size:var(--text-sm);color:var(--text-muted);display:inline-flex}.flag-quote{font-size:var(--text-md);overflow-wrap:anywhere;margin:0;font-style:italic}.flag-budget{gap:var(--space-1);padding-bottom:var(--space-3);border-bottom:1px solid var(--border);display:grid}.flag-budget:last-child{border-bottom:0;padding-bottom:0}.flag-budget-line{justify-content:space-between;gap:var(--space-2);flex-wrap:wrap;display:flex}.flag-decided summary{cursor:pointer;color:var(--text-muted);align-items:center;min-height:44px;display:flex}.flag-foot{font-size:var(--text-sm);margin:0}.voice-controls{flex-wrap:wrap}.voice-live{color:var(--danger,#b91c1c);font-weight:600}@media (prefers-reduced-motion:no-preference){.voice-live{animation:1.4s ease-in-out infinite voice-pulse}}@keyframes voice-pulse{50%{opacity:.45}}.submittal-table td:first-child,.submittal-table td:nth-child(4){text-align:left}.submittal-table td:first-child{white-space:nowrap}.submittal-table .c-spec{width:7rem}.submittal-table .c-status{width:11rem}.submittal-ai{font-size:var(--text-sm);align-items:center;gap:4px;display:inline-flex}@media (width<=720px){.submittal-table,.submittal-table tbody{width:100%;min-width:0;display:block}.submittal-table thead{display:none}.submittal-table tr{gap:var(--space-1) var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border);grid-template-columns:1fr auto;display:grid}.submittal-table tr:last-child{border-bottom:0}.submittal-table td{text-align:left;border:0;padding:0;display:block}.submittal-table td:first-child{color:var(--text-muted);font-size:var(--text-sm);grid-column:1}.submittal-table td:nth-child(2){grid-area:2/1/auto/-1}.submittal-table td:nth-child(3){grid-area:1/2}.submittal-table td:nth-child(4){color:var(--text-muted);font-size:var(--text-sm);grid-area:3/1;align-self:center}.submittal-table td:nth-child(5){grid-area:3/2;justify-self:end}}
