@font-face{font-family:__Hanken_Grotesk_6c0d1d;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/a6c19694cd327cd4-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:__Hanken_Grotesk_6c0d1d;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/851c4691abdf3def-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:__Hanken_Grotesk_6c0d1d;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/a8a8dd7277bab4cf-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:__Hanken_Grotesk_6c0d1d;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/313510e2713fb214-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:__Hanken_Grotesk_6c0d1d;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/a6c19694cd327cd4-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:__Hanken_Grotesk_6c0d1d;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/851c4691abdf3def-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:__Hanken_Grotesk_6c0d1d;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/a8a8dd7277bab4cf-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:__Hanken_Grotesk_6c0d1d;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/313510e2713fb214-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:__Hanken_Grotesk_6c0d1d;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/a6c19694cd327cd4-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:__Hanken_Grotesk_6c0d1d;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/851c4691abdf3def-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:__Hanken_Grotesk_6c0d1d;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/a8a8dd7277bab4cf-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:__Hanken_Grotesk_6c0d1d;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/313510e2713fb214-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:__Hanken_Grotesk_6c0d1d;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/a6c19694cd327cd4-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:__Hanken_Grotesk_6c0d1d;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/851c4691abdf3def-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:__Hanken_Grotesk_6c0d1d;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/a8a8dd7277bab4cf-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:__Hanken_Grotesk_6c0d1d;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/313510e2713fb214-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:__Hanken_Grotesk_6c0d1d;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/a6c19694cd327cd4-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:__Hanken_Grotesk_6c0d1d;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/851c4691abdf3def-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:__Hanken_Grotesk_6c0d1d;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/a8a8dd7277bab4cf-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:__Hanken_Grotesk_6c0d1d;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/313510e2713fb214-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:__Hanken_Grotesk_Fallback_6c0d1d;src:local("Arial");ascent-override:99.07%;descent-override:30.02%;line-gap-override:0.00%;size-adjust:100.94%}.__className_6c0d1d{font-family:__Hanken_Grotesk_6c0d1d,__Hanken_Grotesk_Fallback_6c0d1d;font-style:normal}.__variable_6c0d1d{--font-hanken:"__Hanken_Grotesk_6c0d1d","__Hanken_Grotesk_Fallback_6c0d1d"}@font-face{font-family:__Spline_Sans_Mono_49c017;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/59829bb575d36b50-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:__Spline_Sans_Mono_49c017;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/e02f7a71372872a3-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:__Spline_Sans_Mono_49c017;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/59829bb575d36b50-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:__Spline_Sans_Mono_49c017;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/e02f7a71372872a3-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:__Spline_Sans_Mono_49c017;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/59829bb575d36b50-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:__Spline_Sans_Mono_49c017;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/e02f7a71372872a3-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:__Spline_Sans_Mono_Fallback_49c017;src:local("Arial");ascent-override:71.59%;descent-override:17.57%;line-gap-override:0.00%;size-adjust:134.59%}.__className_49c017{font-family:__Spline_Sans_Mono_49c017,__Spline_Sans_Mono_Fallback_49c017;font-style:normal}.__variable_49c017{--font-mono:"__Spline_Sans_Mono_49c017","__Spline_Sans_Mono_Fallback_49c017"}:root{--font-scale:1.1;--text-2xs:calc(0.625rem * var(--font-scale));--text-xs:calc(0.6875rem * var(--font-scale));--text-sm:calc(0.75rem * var(--font-scale));--text-base:calc(0.8125rem * var(--font-scale));--text-md:calc(0.875rem * var(--font-scale));--text-lg:calc(0.9375rem * var(--font-scale));--text-xl:calc(1rem * var(--font-scale));--text-2xl:calc(1.5rem * var(--font-scale));--text-3xl:calc(1.6875rem * var(--font-scale));--text-display:calc(2.125rem * var(--font-scale));--leading-tight:1.25;--leading-normal:1.5;--leading-relaxed:1.65;--color-navy-900:#193147;--color-blue-800:#194d80;--color-blue-600:#2f6fb0;--color-blue-400:#3f86c9;--color-blue-300:#7fb6e8;--color-text:#193147;--color-text-secondary:#46586a;--color-text-muted:#6b7a89;--color-text-subtle:#8a97a5;--color-text-placeholder:#9aa7b4;--color-bg:#eef2f6;--color-surface:#fff;--color-surface-muted:#fbfcfd;--color-border:#e6ecf2;--color-border-input:#e1e8ef;--color-border-strong:#dde5ed;--color-border-divider:#eef1f5;--color-primary:#194d80;--color-primary-light:#2f6fb0;--color-primary-soft:#eaf1f8;--color-primary-border:#cfe0f0;--color-chip-border:#e3e9ef;--color-header:#193147;--color-header-muted:#9fb4c8;--color-header-subtle:#bcd0e2;--color-header-label:#8ea7bd;--color-success:#15875a;--color-success-text:#15734f;--color-success-soft:#e8f5ef;--color-save-dot:#3ddc97;--color-saving-dot:#f0b429;--color-warning:#b4641a;--color-warning-soft:#fbeede;--color-danger:#c0392b;--color-danger-text:#a3352a;--color-danger-soft:#fdeaea;--color-danger-border:#f0c4c0;--color-danger-bg:#fdf7f6;--color-accent:#564fc0;--color-accent-soft:#ecebfb;--color-toggle-off:#d7dee5;--header-height:64px;--filter-bar-height:56px;--filter-sticky-top:0px;--sticky-stack-gap:0px;--cat-sticky-top:0px;--content-max:1360px;--page-padding:26px;--line-item-cols:1fr 444px;--radius-sm:6px;--radius-md:9px;--radius-lg:11px;--radius-card:12px;--radius-pill:99px;--control-h:34px;--chip-h:38px;--input-h:36px;--shadow-card-hover:0 8px 22px rgba(25,49,71,.1);--shadow-toast:0 12px 34px rgba(25,49,71,.32);--shadow-chip-active:0 1px 2px rgba(25,49,71,.2)}*,:after,:before{box-sizing:border-box}body,html{margin:0;padding:0}body{font-family:var(--font-hanken),system-ui,sans-serif;font-size:var(--text-base);line-height:var(--leading-normal);color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button{font-family:inherit;cursor:pointer;border:none;background:none}input,select,textarea{font-family:inherit;font-size:var(--text-base)}textarea{resize:vertical}::placeholder{color:var(--color-text-placeholder)}.font-mono{font-family:var(--font-mono),ui-monospace,monospace}.app-shell{min-height:100%;background:var(--color-bg)}.pm-header{position:-webkit-sticky;position:sticky;top:0;z-index:40;height:var(--header-height);background:var(--color-header);color:#fff;display:flex;align-items:center;padding:0 var(--page-padding);box-shadow:0 1px 0 hsla(0,0%,100%,.06)}.pm-header__back{color:var(--color-header-muted);font-size:var(--text-base);font-weight:600;text-decoration:none;margin-right:16px;flex-shrink:0}.pm-header__back:hover{color:#fff}.pm-header__brand-row{display:flex;align-items:center;gap:13px;min-width:0}.pm-header__avatar{width:34px;height:34px;border-radius:var(--radius-md);background:linear-gradient(150deg,var(--color-blue-600),var(--color-blue-800));display:flex;align-items:center;justify-content:center;font-weight:800;font-size:var(--text-lg);letter-spacing:-.5px;flex-shrink:0;box-shadow:inset 0 0 0 1px hsla(0,0%,100%,.12)}.pm-header__title{font-weight:700;font-size:var(--text-lg);letter-spacing:-.2px}.pm-header__sub,.pm-header__title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pm-header__sub{font-size:calc(11.5px * var(--font-scale));color:var(--color-header-muted)}.pm-header__right{margin-left:auto;display:flex;align-items:center;gap:28px}.pm-header__save{display:flex;align-items:center;gap:8px;font-size:var(--text-sm);color:var(--color-header-subtle)}.pm-header__save-dot{width:7px;height:7px;border-radius:50%;display:inline-block;background:var(--color-save-dot)}.pm-header__save-dot--saving{background:var(--color-saving-dot);animation:pulse 1s infinite}.pm-header__progress-wrap{display:flex;align-items:center;gap:14px}.pm-header__progress-label{text-align:right}.pm-header__progress-kicker{font-size:var(--text-2xs);letter-spacing:.12em;text-transform:uppercase;color:var(--color-header-label);font-weight:600}.pm-header__progress-meta{font-size:var(--text-xs);color:var(--color-header-muted);margin-top:1px}.pm-header__progress-bar{width:128px;height:7px;border-radius:var(--radius-pill);background:hsla(0,0%,100%,.16);overflow:hidden}.pm-header__progress-fill{height:100%;border-radius:var(--radius-pill);background:linear-gradient(90deg,var(--color-blue-400),var(--color-blue-300));transition:width .5s cubic-bezier(.2,.7,.2,1)}.pm-header__pct{font-family:var(--font-mono),monospace;font-size:var(--text-2xl);font-weight:600;letter-spacing:-1px;min-width:62px;text-align:right}.pm-filter{position:-webkit-sticky;position:sticky;top:var(--filter-sticky-top);z-index:30;height:var(--filter-bar-height);background:var(--color-surface);border-bottom:1px solid #e2e9f0;display:flex;align-items:center;padding:0 var(--page-padding);gap:16px}.pm-filter__search{position:relative;flex-shrink:0}.pm-filter__search-icon{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--color-text-placeholder);font-size:var(--text-base);pointer-events:none}.pm-filter__input{width:268px;height:var(--input-h);padding:0 12px 0 30px;border-radius:var(--radius-md);border:1px solid var(--color-border-input);background:var(--color-surface);font-size:var(--text-base);color:var(--color-text);outline:none}.pm-filter__input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(25,77,128,.12)}.pm-filter__chips{display:flex;gap:6px}.pm-chip{height:var(--control-h);padding:0 13px;border-radius:var(--radius-md);font-size:calc(12.5px * var(--font-scale));font-weight:600;border:1px solid var(--color-border-input);display:inline-flex;align-items:center;gap:6px;cursor:pointer;background:var(--color-surface);color:var(--color-text-secondary)}.pm-chip:hover{filter:brightness(.98)}.pm-chip__count{font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:inherit;opacity:.9}.pm-chip--active .pm-chip__count{opacity:1}.pm-chip--active{background:var(--color-header);color:#fff;border-color:var(--color-header)}.pm-chip--toggle-active{border-color:var(--color-primary)}.pm-chip--attention,.pm-chip--toggle-active{background:var(--color-primary-soft);color:var(--color-primary)}.pm-chip--attention{border-color:var(--color-primary-border)}.pm-chip--attention.pm-chip--active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.pm-chip--blocked{border-color:var(--color-danger-border);background:var(--color-danger-soft);color:var(--color-danger)}.pm-chip--blocked.pm-chip--active{background:var(--color-danger);color:#fff;border-color:var(--color-danger)}.pm-chip--change-orders{border-color:#f0d5b0;background:var(--color-warning-soft);color:var(--color-warning)}.pm-chip--change-orders.pm-chip--active{background:var(--color-warning);color:#fff;border-color:var(--color-warning)}.pm-chip--permit{border-color:#d0cdef;background:var(--color-accent-soft);color:var(--color-accent)}.pm-chip--permit.pm-chip--active{background:var(--color-accent);color:#fff;border-color:var(--color-accent)}.pm-chip--co-risk{border-color:#f0d5b0;background:var(--color-warning-soft);color:var(--color-warning)}.pm-chip--co-risk.pm-chip--active{background:var(--color-warning);color:#fff;border-color:var(--color-warning)}.pm-chip--complete{border-color:#b8e0cc;background:var(--color-success-soft);color:var(--color-success-text)}.pm-chip--complete.pm-chip--active{background:var(--color-success);color:#fff;border-color:var(--color-success)}.pm-filter__right{margin-left:auto;display:flex;align-items:center;gap:14px}.pm-seg{display:flex;border:1px solid var(--color-border-input);border-radius:var(--radius-md);overflow:hidden}.pm-seg__btn{height:var(--control-h);padding:0 13px;font-size:calc(12.5px * var(--font-scale));font-weight:600;border:none;cursor:pointer;background:var(--color-surface);color:var(--color-text-secondary)}.pm-seg__btn--active{background:var(--color-primary);color:#fff}.pm-main{max-width:var(--content-max);margin:0 auto;padding:var(--page-padding) var(--page-padding) 120px}.app-shell--with-filter{--cat-sticky-top:var(--filter-bar-height)}.pm-cat{margin-bottom:24px;position:relative}.pm-cat__header{position:-webkit-sticky;position:sticky;top:var(--cat-sticky-top);z-index:25;display:flex;align-items:center;gap:16px;padding:11px 16px;background:var(--color-navy-900);border:1px solid var(--color-navy-900);border-left:3px solid var(--color-blue-400);border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-lg);box-shadow:0 -1px 0 var(--color-navy-900),0 2px 8px rgba(25,49,71,.2)}.pm-cat__toggle{width:22px;height:22px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;color:var(--color-navy-900);font-size:var(--text-xs);background:var(--color-surface);border:1px solid transparent;flex-shrink:0;cursor:pointer}.pm-cat__name{font-weight:700;font-size:var(--text-md);letter-spacing:.01em;color:#fff}.pm-cat__count{font-size:var(--text-sm);color:var(--color-header-subtle);font-weight:500}.pm-cat__value{font-family:var(--font-mono),monospace;font-size:var(--text-sm);color:var(--color-header-muted)}.pm-cat__progress{margin-left:auto;display:flex;align-items:center;gap:11px}.pm-cat__bar{width:118px;height:6px;background:hsla(0,0%,100%,.18);overflow:hidden}.pm-cat__bar,.pm-cat__bar-fill{border-radius:var(--radius-pill)}.pm-cat__bar-fill{height:100%;transition:width .4s cubic-bezier(.2,.7,.2,1)}.pm-cat__pct{font-family:var(--font-mono),monospace;font-size:var(--text-base);font-weight:600;color:var(--color-blue-300);min-width:42px;text-align:right}.pm-cat__items{display:flex;flex-direction:column;gap:9px;margin-top:9px}.pm-item{position:relative;z-index:0;border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);transition:box-shadow .15s,transform .15s;outline:none}.pm-item--complete{background:var(--color-surface-muted)}.pm-item:hover{box-shadow:var(--shadow-card-hover);transform:translateY(-1px)}.pm-item:focus-visible{box-shadow:0 0 0 2px var(--color-primary);transform:translateY(-1px)}.pm-item__grid{display:grid;grid-template-columns:var(--line-item-cols);grid-gap:22px;gap:22px;padding:15px 18px;align-items:start}.pm-item__name-row{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.pm-item__dot{width:9px;height:9px;border-radius:50%;display:inline-block;flex-shrink:0}.pm-item__name{font-weight:700;font-size:var(--text-lg);color:var(--color-text);letter-spacing:-.1px}.pm-item__value{font-family:var(--font-mono),monospace;font-size:calc(11.5px * var(--font-scale));color:var(--color-text-placeholder);margin-left:2px}.pm-item__desc{margin-top:6px;font-size:var(--text-base);line-height:1.5;color:var(--color-text-secondary);max-width:640px;white-space:pre-line}.pm-item__desc--clamped{max-height:4.5em;overflow:hidden}.pm-item__desc--expanded{line-height:1.6;color:var(--color-text-secondary);max-width:680px}.pm-item__see-more{margin-top:4px;font-size:var(--text-sm);font-weight:600;color:var(--color-primary);padding:2px 0;cursor:pointer;background:none;border:none;text-align:left}.pm-item__see-more:hover{text-decoration:underline}.pm-item__controls{display:flex;flex-direction:column;gap:10px;align-items:stretch}.pm-item__status-row{display:flex;justify-content:space-between;align-items:center}.pm-item__status-pill{display:flex;align-items:center;gap:7px;font-size:var(--text-sm);font-weight:600}.pm-item__status-dot{width:7px;height:7px;border-radius:50%;display:inline-block}.pm-item__pct{font-family:var(--font-mono),monospace;font-size:var(--text-3xl);font-weight:600;letter-spacing:-1px}.pm-item__chips{display:flex;gap:6px}.pm-pct-chip{flex:1 1;min-width:0;height:var(--chip-h);border-radius:var(--radius-md);font-family:var(--font-mono),monospace;font-size:var(--text-base);font-weight:500;background:var(--color-surface);color:var(--color-text-secondary);border:1px solid var(--color-chip-border);cursor:pointer}.pm-pct-chip:hover{box-shadow:0 2px 7px rgba(25,49,71,.13)}.pm-pct-chip--active{font-weight:600;color:#fff;border-color:transparent;box-shadow:var(--shadow-chip-active)}.pm-item__slider{width:100%;accent-color:var(--color-primary);height:20px;cursor:pointer}.pm-item__actions{display:flex;justify-content:space-between;align-items:center}.pm-item__toggle{gap:8px;padding:2px 2px 2px 0;cursor:pointer}.pm-item__switch,.pm-item__toggle{display:flex;align-items:center;flex-shrink:0}.pm-item__switch{box-sizing:border-box;width:34px;height:19px;border-radius:var(--radius-pill);padding:2px;transition:background .15s}.pm-item__switch--on{justify-content:flex-end;background:var(--color-danger)}.pm-item__switch--off{justify-content:flex-start;background:var(--color-toggle-off)}.pm-item__switch-knob{flex-shrink:0;width:15px;height:15px;border-radius:50%;background:#fff}.pm-item__toggle-label{font-size:calc(12.5px * var(--font-scale));font-weight:600}.pm-item__toggle-label--on{color:var(--color-danger)}.pm-item__toggle-label--off{color:var(--color-text-subtle)}.pm-item__history-btn{font-size:var(--text-sm);font-weight:600;color:var(--color-primary);padding:3px 6px;border-radius:var(--radius-sm);flex-shrink:0;white-space:nowrap;cursor:pointer}.pm-item__history-btn:hover{background:var(--color-primary-soft)}.pm-item__note-row{grid-column:1/-1;display:flex;flex-direction:column;gap:5px}.pm-item__note-compose{display:flex;flex-direction:column;gap:8px}.pm-item__note-actions{display:flex;justify-content:flex-end}.pm-item__comment-submit{height:32px;padding:0 14px;border-radius:var(--radius-md);background:var(--color-primary);color:#fff;font-size:calc(12.5px * var(--font-scale));font-weight:600;border:none;cursor:pointer;transition:background .15s,opacity .15s}.pm-item__comment-submit:hover:not(:disabled){background:#1a5a9e}.pm-item__comment-submit:disabled{opacity:.45;cursor:not-allowed}.pm-item__textarea{width:100%;min-height:50px;padding:9px 11px;border-radius:var(--radius-md);border:1px solid var(--color-border-input);font-size:calc(12.5px * var(--font-scale));line-height:1.5;color:var(--color-text);background:var(--color-surface-muted);outline:none}.pm-item__textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(25,77,128,.1)}.pm-item__textarea--required{border-color:var(--color-danger-border);background:var(--color-danger-bg)}.pm-item__meta{font-size:var(--text-xs);color:var(--color-text-placeholder)}.pm-item__history{grid-column:1/-1;margin-top:3px;padding-top:14px;border-top:1px solid var(--color-border-divider)}.pm-item__history-title{font-size:calc(10.5px * var(--font-scale));letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-placeholder);font-weight:700;margin-bottom:9px}.pm-item__history-empty{font-size:calc(12.5px * var(--font-scale));color:var(--color-text-placeholder)}.pm-item__history-list{display:flex;flex-direction:column;gap:11px;max-width:560px}.pm-item__history-entry{display:flex;gap:10px}.pm-item__history-dot{width:8px;height:8px;border-radius:50%;display:inline-block;margin-top:5px;flex-shrink:0}.pm-item__history-text{font-size:calc(12.5px * var(--font-scale));color:var(--color-text-secondary)}.pm-item__history-comment{font-size:calc(12.5px * var(--font-scale));color:var(--color-text-muted);line-height:1.45;margin-top:2px}.badge-tag{font-size:var(--text-2xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:3px 7px;border-radius:var(--radius-sm)}.badge-tag--blocked{background:var(--color-danger-soft);color:var(--color-danger)}.badge-tag--permit{background:var(--color-accent-soft);color:var(--color-accent)}.badge-tag--co{background:var(--color-warning-soft);color:var(--color-warning)}.pm-empty{text-align:center;padding:90px 20px;color:var(--color-text-subtle)}.pm-empty__icon{font-size:var(--text-display);margin-bottom:8px}.pm-empty__title{font-size:var(--text-xl);font-weight:600;color:var(--color-text-secondary)}.pm-empty__body{margin-top:4px}.pm-btn,.pm-empty__body{font-size:var(--text-base)}.pm-btn{height:var(--input-h);padding:0 16px;border-radius:var(--radius-md);background:var(--color-primary);color:#fff;font-weight:600;border:none;cursor:pointer;margin-top:16px}.pm-toast{position:fixed;left:50%;bottom:26px;transform:translateX(-50%);z-index:60;display:flex;align-items:center;gap:14px;background:var(--color-header);color:#fff;padding:11px 14px 11px 16px;border-radius:var(--radius-lg);box-shadow:var(--shadow-toast);animation:toastIn .22s cubic-bezier(.2,.7,.2,1);white-space:nowrap}.pm-toast__dot{width:7px;height:7px;border-radius:50%;background:var(--color-save-dot);flex-shrink:0}.pm-toast__msg{font-size:var(--text-base)}.pm-toast__undo{font-size:calc(12.5px * var(--font-scale));font-weight:700;color:var(--color-blue-300);padding:4px 10px;border-radius:7px;border:1px solid rgba(127,182,232,.35);cursor:pointer;background:none}.pm-toast__undo:hover{background:rgba(127,182,232,.14)}.app-header{height:var(--header-height);background:var(--color-header);color:#fff;display:flex;align-items:center;padding:0 var(--page-padding);gap:13px}.app-header__brand{width:34px;height:34px;background:linear-gradient(150deg,var(--color-blue-600),var(--color-blue-800));justify-content:center;font-weight:800;font-size:var(--text-lg);letter-spacing:-.5px}.app-header__brand,.brand-logo__link{border-radius:var(--radius-md);display:flex;align-items:center;flex-shrink:0}.brand-logo__link{text-decoration:none;background:#fff;padding:2px 5px;box-shadow:0 1px 4px rgba(13,30,46,.18);transition:box-shadow .15s,transform .15s}.brand-logo__link:hover{box-shadow:0 2px 8px rgba(13,30,46,.24);transform:translateY(-1px)}.brand-logo{display:block;width:auto;height:auto;object-fit:contain}.pm-header .brand-logo__link{margin-right:12px}.app-header__title{font-weight:700;font-size:var(--text-xl);flex:1 1}.app-header__profile{margin-left:auto;display:flex;align-items:center;gap:10px;flex-shrink:0}.app-header__profile-text{text-align:right;line-height:1.25}.app-header__profile-name{font-size:var(--text-sm);font-weight:600;color:#fff}.app-header__profile-role{font-size:var(--text-xs);color:var(--color-header-muted);margin-top:1px}.app-header__profile-avatar{width:34px;height:34px;border-radius:50%;background:var(--color-primary);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:var(--text-sm);letter-spacing:-.3px;flex-shrink:0;box-shadow:inset 0 0 0 2px hsla(0,0%,100%,.2)}.app-shell--projects{--projects-filter-top:0px}.projects-filter-bar{position:-webkit-sticky;position:sticky;top:var(--projects-filter-top);z-index:20;height:var(--filter-bar-height);background:hsla(0,0%,100%,.92);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid #e2e9f0;display:flex;align-items:center;padding:0 var(--page-padding);gap:14px}.projects-filter-bar__search{position:relative;flex-shrink:0}.projects-filter-bar__search-icon{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--color-text-placeholder);font-size:var(--text-base);pointer-events:none}.projects-filter-bar__input{width:240px;height:36px;padding:0 12px 0 30px;border-radius:var(--radius-md);border:1px solid var(--color-border-input);background:var(--color-surface);font-size:var(--text-base);color:var(--color-text);outline:none}.projects-filter-bar__input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(25,77,128,.12)}.projects-filter-bar__chips{display:flex;gap:6px}.projects-filter-chip{height:32px;padding:0 12px;border-radius:8px;font-size:calc(12.5px * var(--font-scale));font-weight:600;border:1px solid var(--color-border-input);background:var(--color-surface);color:var(--color-text-secondary);cursor:pointer;transition:background .15s,color .15s,border-color .15s}.projects-filter-chip:hover{background:var(--color-surface-muted)}.projects-filter-chip--active{color:#fff;border-color:var(--color-header)}.projects-filter-chip--active,.projects-filter-chip--active:hover{background:var(--color-header)}.projects-filter-bar__right{margin-left:auto}.projects-new-btn{height:36px;padding:0 18px;border-radius:var(--radius-md);background:var(--color-primary);color:#fff;font-size:var(--text-base);font-weight:700;letter-spacing:-.1px;border:none;cursor:pointer;box-shadow:0 2px 8px rgba(25,77,128,.28);transition:background .15s,box-shadow .15s}.projects-new-btn:hover{background:#1a5a9e}.projects-page-main{max-width:1100px;margin:0 auto;padding:28px var(--page-padding) 80px}.projects-page-count{font-size:var(--text-base);font-weight:600;color:var(--color-text-secondary);margin-bottom:18px}.projects-list{display:flex;flex-direction:column;gap:10px}.project-card-wrap{position:relative;text-decoration:none;color:inherit;display:block}.project-card{border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);transition:box-shadow .15s,transform .15s;position:relative}.project-card--blocked{background:var(--color-danger-bg);border-color:var(--color-danger-border)}.project-card-wrap:hover .project-card--blocked{box-shadow:0 6px 20px rgba(192,57,43,.12)}.project-card-wrap:hover .project-card{box-shadow:0 6px 20px rgba(25,49,71,.1);transform:translateY(-1px);cursor:pointer}.project-card__inner{display:flex;align-items:center;gap:18px;padding:18px 22px}.project-card__avatar{width:44px;height:44px;border-radius:11px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:var(--text-base);color:#fff;letter-spacing:-.2px;flex-shrink:0}.project-card__body{flex:1 1;min-width:0}.project-card__title-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:4px}.project-card__name{font-weight:700;font-size:var(--text-md);color:var(--color-text);letter-spacing:-.1px}.project-status-badge{font-size:calc(10.5px * var(--font-scale));font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:2px 7px;border-radius:5px}.project-status-badge--complete{background:#edfaf3;color:var(--color-success-text)}.project-status-badge--idle{background:var(--color-bg);color:var(--color-text-muted)}.project-status-badge--active{background:var(--color-primary-soft);color:var(--color-primary)}.project-flag-badge{font-size:var(--text-2xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:2px 7px;border-radius:5px}.project-flag-badge--blocked{background:var(--color-danger-soft);color:var(--color-danger)}.project-flag-badge--co{background:var(--color-warning-soft);color:var(--color-warning)}.project-flag-badge--draft{background:var(--color-primary-soft);color:var(--color-primary)}.has-tooltip{position:relative;cursor:default}.badge-tooltip{position:absolute;z-index:20;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);width:max-content;max-width:280px;padding:10px 14px;border-radius:var(--radius-md);background:var(--color-header,#1f2430);color:#fff;box-shadow:var(--shadow-toast);font-family:inherit;font-size:var(--text-xs);font-weight:400;font-style:normal;text-transform:none;letter-spacing:normal;line-height:1.5;white-space:normal;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .12s ease}.has-tooltip:focus-visible .badge-tooltip,.has-tooltip:hover .badge-tooltip{opacity:1;visibility:visible}.unmatched-badge{font-size:var(--text-2xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:2px 7px;border-radius:5px}.unmatched-badge--construction{background:var(--color-primary-soft);color:var(--color-primary)}.unmatched-badge--design{background:var(--color-warning-soft);color:var(--color-warning)}.unmatched-badge--other{background:var(--color-surface-muted,var(--color-surface));color:var(--color-text-muted)}.unmatched-subtext{font-size:var(--text-2xs);margin-top:2px}.unmatched-sort-btn{display:inline-flex;align-items:center;gap:4px;margin:0;padding:0;border:none;background:none;font:inherit;font-size:inherit;font-weight:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit;cursor:pointer}.unmatched-sort-btn:hover{color:var(--color-primary)}.unmatched-sort-arrow{font-size:11px;line-height:1;opacity:.85}.unmatched-construction-toggle{display:flex;align-items:center;justify-content:center;cursor:pointer;margin:0}.unmatched-actions{display:flex;gap:8px;white-space:nowrap;flex-wrap:wrap}.unmatched-discard{color:var(--color-danger)}.project-card__meta{font-size:calc(12.5px * var(--font-scale));color:var(--color-text-muted);display:flex;align-items:center;gap:8px;flex-wrap:wrap}.project-card__meta-sep{color:#d2dbe3}.project-card__meta-muted{color:var(--color-text-placeholder)}.project-card__progress{display:flex;align-items:center;gap:14px;flex-shrink:0}.project-card__progress-col{display:flex;flex-direction:column;align-items:flex-end;gap:5px}.project-card__progress-row{display:flex;align-items:center;gap:10px}.project-card__bar{width:140px;height:7px;border-radius:var(--radius-pill);background:var(--color-border);overflow:hidden}.project-card__bar-fill{height:100%;border-radius:var(--radius-pill);transition:width .4s ease}.project-card__bar-fill--indeterminate{width:40%;animation:pulse 1.4s ease-in-out infinite}.project-card__pct{font-family:var(--font-mono),monospace;font-size:var(--text-base);font-weight:600;min-width:36px;text-align:right}.project-card__items-label{font-size:var(--text-xs);color:var(--color-text-placeholder);text-align:right}.project-card__menu-btn{width:28px;height:28px;border-radius:7px;display:flex;align-items:center;justify-content:center;color:var(--color-text-placeholder);font-size:16px;flex-shrink:0;border:none;background:none;cursor:pointer}.project-card__menu-btn:hover{background:var(--color-bg);color:var(--color-text-secondary)}.project-card__menu{position:absolute;right:22px;top:62px;z-index:10;background:var(--color-surface);border:1px solid var(--color-border-input);border-radius:10px;box-shadow:0 8px 24px rgba(25,49,71,.14);min-width:160px;padding:5px;animation:fadeUp .15s ease}.project-card__menu-item{width:100%;display:flex;align-items:center;gap:9px;padding:8px 12px;border-radius:7px;font-size:var(--text-base);font-weight:500;color:var(--color-text);text-align:left;border:none;background:none;cursor:pointer}.project-card__menu-item:hover{background:#f4f7fa}.project-card__menu-item--danger{color:var(--color-danger)}.project-card__menu-item--danger:hover{background:var(--color-danger-bg)}.project-card__menu-divider{height:1px;background:var(--color-border-divider);margin:4px 0}.projects-empty{text-align:center;padding:100px 20px}.projects-empty__logo{width:56px;height:56px;border-radius:14px;background:#fff;padding:4px 6px;margin:0 auto 14px;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 4px rgba(13,30,46,.1)}.projects-empty__title{font-size:calc(17px * var(--font-scale));font-weight:700;color:var(--color-text);margin-bottom:6px}.projects-empty__body{margin-bottom:22px}.projects-empty__body,.projects-filter-empty{font-size:var(--text-base);color:var(--color-text-subtle)}.projects-filter-empty{text-align:center;padding:60px 20px}.projects-skeleton{display:flex;flex-direction:column;gap:10px}.projects-skeleton__row{height:88px;border-radius:var(--radius-card)}@keyframes fadeUp{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.btn{display:inline-flex;align-items:center;justify-content:center;height:var(--control-h);padding:0 14px;border-radius:var(--radius-md);font-size:var(--text-base);font-weight:600;border:1px solid transparent;text-decoration:none;cursor:pointer}.btn--primary{background:var(--color-primary);color:#fff}.btn--secondary{background:var(--color-surface);color:var(--color-primary);border-color:var(--color-primary-border)}.btn--lg{height:40px;padding:0 20px;font-size:var(--text-base)}.btn--block{width:100%}.app-main{max-width:880px;margin:0 auto;padding:32px var(--page-padding)}.badge{display:inline-flex;font-size:var(--text-xs);font-weight:600;padding:2px 8px;border-radius:var(--radius-sm)}.badge-success{background:var(--color-success-soft);color:var(--color-success-text)}.badge-warning{background:var(--color-warning-soft);color:var(--color-warning)}.badge-processing{background:var(--color-primary-soft);color:var(--color-primary)}.badge-danger{background:var(--color-danger-soft);color:var(--color-danger)}.badge-neutral{background:var(--color-bg);color:var(--color-text-muted)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card)}.card--interactive{transition:box-shadow .15s,transform .15s;cursor:pointer}.card--interactive:hover{box-shadow:var(--shadow-card-hover);transform:translateY(-1px)}.progress-bar{width:100px;height:6px;border-radius:var(--radius-pill);background:var(--color-border-strong);overflow:hidden;flex-shrink:0}.progress-bar__fill{height:100%;border-radius:var(--radius-pill);transition:width .4s}.progress-bar__fill--indeterminate{width:40%;animation:pulse 1.4s ease-in-out infinite}.alert{padding:12px 16px;border-radius:var(--radius-md);font-size:var(--text-base)}.alert--danger{background:var(--color-danger-soft);color:var(--color-danger)}.empty-state{text-align:center;padding:80px 20px}.empty-state__icon{font-size:calc(32px * var(--font-scale));margin-bottom:12px}.empty-state__title{font-size:calc(17px * var(--font-scale));font-weight:700;color:var(--color-text-secondary);margin-bottom:8px}.empty-state__body{font-size:var(--text-base);color:var(--color-text-subtle);max-width:360px;margin:0 auto 24px;line-height:var(--leading-relaxed)}.panel-processing{background:var(--color-primary-soft);border:1px solid var(--color-primary-border);border-radius:var(--radius-lg);padding:14px 18px;margin-bottom:20px;display:flex;align-items:center;gap:14px}.panel-processing__title{font-size:var(--text-base);font-weight:600;color:var(--color-primary)}.panel-processing__sub{font-size:var(--text-sm);color:var(--color-text-muted);margin-top:3px}.status-panel{text-align:center;padding:48px 20px}.status-panel__icon{font-size:calc(32px * var(--font-scale));margin-bottom:12px}.status-panel__title{font-size:calc(17px * var(--font-scale));font-weight:700;margin-bottom:6px}.status-panel__body{font-size:var(--text-base);color:var(--color-text-muted);max-width:420px;margin:0 auto;line-height:var(--leading-relaxed)}.status-panel__actions{display:flex;gap:10px;justify-content:center;margin-top:16px;flex-wrap:wrap}.modal-backdrop{position:fixed;inset:0;background:rgba(25,49,71,.45);z-index:100}.modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:min(440px,calc(100vw - 32px));background:var(--color-surface);border-radius:var(--radius-card);z-index:101;box-shadow:0 24px 64px rgba(25,49,71,.18);overflow:hidden}.modal__header{padding:20px 24px;border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between}.modal__title{font-weight:700;font-size:var(--text-xl);color:var(--color-text)}.modal__close{font-size:calc(20px * var(--font-scale));color:var(--color-text-muted);line-height:1}.modal__body{padding:28px 24px 32px}.modal__lead{font-size:var(--text-base);color:var(--color-text-muted);margin:0 0 24px;line-height:var(--leading-relaxed)}.sk{background:linear-gradient(90deg,#e6ecf2 25%,var(--color-bg) 50%,#e6ecf2 75%);background-size:840px 100%;animation:shimmer 1.3s linear infinite;border-radius:7px}@keyframes shimmer{0%{background-position:-420px 0}to{background-position:420px 0}}@keyframes toastIn{0%{opacity:0;transform:translate(-50%,16px)}to{opacity:1;transform:translate(-50%)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}@media (max-width:900px){.item-grid,.pm-item__grid{grid-template-columns:1fr!important}.item-grid>:nth-child(2),.pm-item__grid>:nth-child(2){border-top:1px solid var(--color-border-divider);padding-top:12px}}@media (max-width:768px){:root{--page-padding:16px;--line-item-cols:1fr}.app-main{padding:20px 16px}.projects-page-main{padding:20px 16px 60px}.projects-filter-bar{flex-wrap:wrap;height:auto;padding-top:12px;padding-bottom:12px}.projects-filter-bar__input{width:100%}.pm-filter{flex-wrap:wrap;height:auto;padding-top:12px;padding-bottom:12px}.pm-filter__input{width:100%}.project-card__inner{flex-direction:column;align-items:flex-start;gap:12px}.project-card__progress{width:100%;justify-content:space-between}}.shell{--shell-sidebar-width:210px;height:100dvh;display:flex;flex-direction:column;overflow:hidden;background:#eef2f6}.shell__header{background:#193147;z-index:40;position:relative}.shell__header,.shell__logo-slot{height:60px;display:flex;align-items:center;flex-shrink:0}.shell__logo-slot{width:var(--shell-sidebar-width,210px);padding-left:18px;border-right:1px solid hsla(0,0%,100%,.07)}.shell__logo-tile{background:#fff;border-radius:7px;padding:4px 6px;box-shadow:0 1px 4px rgba(13,30,46,.22);display:flex;align-items:center;justify-content:center}.shell__wordmark{padding:0 16px;font-size:12px;font-weight:700;color:hsla(0,0%,100%,.35);letter-spacing:.1em;text-transform:uppercase;flex:1 1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.shell__header--project{gap:0}.shell__project{flex:1 1;padding:0 16px}.shell__project,.shell__project-brand{min-width:0;display:flex;align-items:center}.shell__project-brand{gap:11px}.shell__project-avatar{width:32px;height:32px;border-radius:var(--radius-md);background:linear-gradient(150deg,var(--color-blue-600),var(--color-blue-800));display:flex;align-items:center;justify-content:center;font-weight:800;font-size:var(--text-base);letter-spacing:-.5px;flex-shrink:0;color:#fff;box-shadow:inset 0 0 0 1px hsla(0,0%,100%,.12)}.shell__project-text{min-width:0}.shell__project-title{display:flex;align-items:center;gap:8px;min-width:0}.shell__project-name{font-weight:700;font-size:var(--text-lg);letter-spacing:-.2px;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.shell__project-badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;flex-shrink:0;background:hsla(0,0%,100%,.12);color:hsla(0,0%,100%,.85);white-space:nowrap}.shell__project-sub{font-size:calc(11.5px * var(--font-scale));color:var(--color-header-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}.shell__header-actions{display:flex;align-items:center;gap:14px;padding-right:18px;flex-shrink:0}.shell__save{display:flex;align-items:center;gap:8px;font-size:var(--text-sm);color:var(--color-header-subtle);white-space:nowrap}.shell__save-dot{width:7px;height:7px;border-radius:50%;display:inline-block;background:var(--color-save-dot)}.shell__save-dot--saving{background:var(--color-saving-dot);animation:pulse 1s infinite}.shell__progress{display:flex;align-items:center;gap:10px;min-width:0}.shell__progress-meta{font-size:var(--text-xs);color:var(--color-header-muted);white-space:nowrap;max-width:160px;overflow:hidden;text-overflow:ellipsis}.shell__progress-bar{width:96px;height:7px;border-radius:var(--radius-pill);background:hsla(0,0%,100%,.16);overflow:hidden;flex-shrink:0}.shell__progress-fill{height:100%;border-radius:var(--radius-pill);background:linear-gradient(90deg,var(--color-blue-400),var(--color-blue-300));transition:width .5s cubic-bezier(.2,.7,.2,1)}.shell__progress-pct{font-family:var(--font-mono),monospace;font-size:var(--text-xl);font-weight:600;letter-spacing:-1px;color:#fff;min-width:48px;text-align:right;flex-shrink:0}.shell__search{display:flex;align-items:center;gap:8px;background:hsla(0,0%,100%,.06);border:1px solid hsla(0,0%,100%,.09);border-radius:8px;padding:0 13px;height:32px;color:hsla(0,0%,100%,.32);font-size:13px;cursor:default}.shell__header-divider{width:1px;height:24px;background:hsla(0,0%,100%,.1)}.shell__user{display:flex;align-items:center;gap:10px;cursor:pointer;position:relative}.shell__user-email{font-size:13px;font-weight:600;color:#fff}.shell__user-role{font-size:12px;color:#9fb4c8;margin-top:1px}.shell__avatar{width:34px;height:34px;border-radius:50%;background:#194d80;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:#fff;box-shadow:inset 0 0 0 2px hsla(0,0%,100%,.18);flex-shrink:0}.shell__body{flex:1 1;min-height:0;display:flex;overflow:hidden}.shell__rail{width:var(--shell-sidebar-width);background:#0f1e2e;display:flex;flex-direction:column;align-items:stretch;padding:12px 10px;gap:4px;flex-shrink:0}.shell__rail-item{width:100%;min-height:40px;border-radius:9px;display:flex;align-items:center;gap:10px;padding:0 12px;cursor:pointer;position:relative;color:#8aa0b5;border:1px solid transparent;text-decoration:none;font-size:13px;font-weight:600}.shell__rail-item:hover{background:hsla(0,0%,100%,.05);color:#c5d4e0}.shell__rail-item--active{border-color:rgba(63,134,201,.32)}.shell__rail-item--active,.shell__rail-item--active:hover{background:rgba(47,111,176,.22);color:#7fb6e8}.shell__rail-label{flex:1 1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.shell__rail-indicator{position:absolute;left:-10px;top:50%;transform:translateY(-50%);width:3px;height:20px;background:#7fb6e8;border-radius:0 3px 3px 0}.shell__rail-spacer{flex:1 1}.shell__page-nav{width:168px;background:#f4f7fa;border-right:1px solid #e2e9f0;display:flex;flex-direction:column;padding:16px 10px;gap:2px;flex-shrink:0}.shell__page-nav-title{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#7a8fa3;padding:0 10px 10px}.shell__page-nav-item{display:block;padding:8px 10px;border-radius:7px;font-size:13px;font-weight:600;color:#3d556b;text-decoration:none}.shell__page-nav-item:hover{background:rgba(25,49,71,.06);color:#193147}.shell__page-nav-item--active{background:#fff;color:#193147;box-shadow:0 1px 2px rgba(15,30,46,.08)}.shell__content{flex:1 1;min-height:0;overflow-x:hidden;overflow-y:auto;display:block}.shell__content:has(>.app-shell--fill){overflow:hidden;display:flex;flex-direction:column}.app-shell--fill{display:flex;flex-direction:column;flex:1 1;min-height:0;height:100%;overflow:hidden}.vendors-hero{max-width:520px;margin:48px auto 0;padding:0 8px}.vendors-hero__title{font-size:28px;font-weight:800;letter-spacing:-.4px;color:var(--color-text);margin-bottom:8px}.vendors-hero__body{font-size:15px;line-height:1.45;color:var(--color-text-secondary);margin-bottom:22px}.vendors-search{display:flex;flex-wrap:wrap;gap:10px;align-items:center;width:100%}.vendors-search .btn{margin-left:auto}.vendors-search__market,.vendors-search__select{padding:9px 12px;font-size:14px;border:1px solid var(--color-border-input);border-radius:8px;background:var(--color-surface);color:var(--color-text);font-weight:600}.vendors-search__select{min-width:150px;flex:0 1 auto}.vendors-search__market{flex:1 1 200px;min-width:180px;font-weight:500}.vendors-search__market:focus,.vendors-search__select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(25,77,128,.12)}.vendors-search__market:disabled,.vendors-search__select:disabled{opacity:.7;cursor:default}.shell__header-action{height:32px;padding:0 12px;font-size:13px;background:hsla(0,0%,100%,.08);color:#fff;border-color:hsla(0,0%,100%,.22)}.shell__header-action:hover{background:hsla(0,0%,100%,.14);border-color:hsla(0,0%,100%,.35)}.vendors-list-stats{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.vendors-stat{text-align:center;padding:4px 10px;background:var(--color-surface-muted,#eef2f6);border-radius:7px;border:1px solid transparent;min-width:58px;flex:1 1}.vendors-stat__value{font-size:15px;font-weight:700;color:var(--color-text);line-height:1.1}.vendors-stat__label{font-size:10px;color:var(--color-text-secondary,#5a7186);font-weight:600;margin-top:1px}.vendors-stat--flagged{background:var(--color-danger-soft,#fde8e6);border-color:rgba(192,57,43,.2)}.vendors-stat--flagged .vendors-stat__label,.vendors-stat--flagged .vendors-stat__value{color:var(--color-danger-text,#a93226)}.shell-subbar{position:-webkit-sticky;position:sticky;top:0;z-index:25;min-height:52px;background:hsla(0,0%,100%,.95);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid #e2e9f0;display:flex;align-items:center;padding:0 var(--page-padding);gap:13px;flex-shrink:0}.shell-subbar__title{font-size:15px;font-weight:700;color:#193147;flex-shrink:0}.shell-subbar__divider{width:1px;height:18px;background:#e6ecf2;flex-shrink:0}.shell-stat-chip{display:flex;align-items:center;gap:4px;background:#eef2f6;border-radius:6px;padding:3px 10px;white-space:nowrap}.shell-stat-chip__value{font-family:var(--font-mono),"Spline Sans Mono",monospace;font-size:12px;font-weight:700;color:#193147}.shell-stat-chip__label{font-size:11.5px;color:#6b7a89}.tl-main{padding-bottom:48px}.tl-phase-chip{display:inline-block;margin-left:10px;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;vertical-align:middle;background:hsla(0,0%,100%,.12);color:hsla(0,0%,100%,.85)}.tl-gates{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-gap:10px;gap:10px;margin-bottom:28px}.tl-gate{border-radius:10px;padding:12px 14px;border:1px solid #e2e9f0;background:#fff}.tl-gate__label{font-size:12px;font-weight:700;color:#3d556b}.tl-gate__status{margin-top:4px;font-size:14px;font-weight:700;text-transform:capitalize;color:#193147}.tl-gate__meta{margin-top:4px;font-size:12px;color:#7a8fa3}.tl-gate--hit{border-color:#9ad4ad;background:#f3fbf6}.tl-gate--missed{border-color:#f0b4b4;background:#fff5f5}.tl-gate--risk{border-color:#f0d29a;background:#fffaf0}.tl-gate--ok{border-color:#a8c8e8;background:#f4f8fc}.tl-gate--idle{opacity:.85}.tl-phase{margin-bottom:28px}.tl-phase__title{font-size:15px;font-weight:700;color:#193147;margin:0 0 10px;display:flex;align-items:center;gap:10px}.tl-phase__current{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#2f6fb0;background:rgba(47,111,176,.12);padding:2px 8px;border-radius:999px}.tl-list{list-style:none;margin:0;padding:0;display:grid;grid-gap:8px;gap:8px}.tl-item{display:flex;gap:16px;align-items:flex-start;justify-content:space-between;background:#fff;border:1px solid #e2e9f0;border-radius:10px;padding:12px 14px}.tl-item--overdue{border-color:#f0b4b4}.tl-item--done{opacity:.92}.tl-item__name{font-weight:600;color:#193147;display:flex;flex-wrap:wrap;gap:6px;align-items:center}.tl-item__meta{margin-top:6px;display:flex;flex-wrap:wrap;gap:10px;font-size:12px;color:#6b7a89}.tl-item__status{text-transform:capitalize;font-weight:600;color:#3d556b}.tl-item__overdue{color:#c0392b;font-weight:700}.tl-item__actions{display:flex;flex-wrap:wrap;gap:6px;flex-shrink:0}.tl-tag{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:2px 6px;border-radius:4px;background:#eef2f6;color:#5a6f82}.tl-tag--bt{background:#e8f1fa;color:#2f6fb0}.tl-modal-backdrop{position:fixed;inset:0;background:rgba(15,30,46,.45);z-index:80;display:flex;align-items:center;justify-content:center;padding:20px}.tl-modal{width:min(440px,100%);background:#fff;border-radius:12px;padding:20px;box-shadow:0 16px 40px rgba(15,30,46,.25)}.tl-modal h3{margin:0;font-size:16px;color:#193147}.tl-modal__sub{margin:4px 0 16px;color:#6b7a89;font-size:13px}.tl-field{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:600;color:#3d556b;margin-bottom:12px}.tl-field input,.tl-field select,.tl-field textarea{border:1px solid #d5dee8;border-radius:8px;padding:8px 10px;font-weight:500;color:#193147}.tl-modal__actions{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.process-page{max-width:none;width:100%;margin:0;padding:24px 28px 48px;box-sizing:border-box}.process-page h1{margin:0 0 8px;font-size:24px;font-weight:700;color:var(--color-primary);letter-spacing:-.02em}.process-page__lead{margin:0 0 20px;max-width:52rem;color:#6b7a89;font-size:14px;line-height:1.5}.process-tabs{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:16px;padding:4px;background:#eef2f6;border:1px solid var(--color-border);border-radius:10px}.process-tabs__btn{display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 14px;border:none;border-radius:7px;background:transparent;color:#5c6b7a;font-size:13px;font-weight:600;cursor:pointer;transition:background .12s ease,color .12s ease}.process-tabs__btn:hover{color:var(--color-primary);background:hsla(0,0%,100%,.7)}.process-tabs__btn--active{background:var(--color-primary);color:#fff;box-shadow:0 1px 3px rgba(25,77,128,.28)}.process-tabs__btn--active:hover{color:#fff;background:var(--color-primary-light,#2f6fb0)}.process-tabs__btn--active .process-tabs__badge{background:hsla(0,0%,100%,.22);color:#fff}.process-tabs__badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#fef3c7;color:#b45309;font-size:11px;font-weight:700;line-height:1}.process-page [role=tabpanel],.process-panel{min-height:min(70vh,720px)}.process-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;padding:22px 24px 20px;margin-bottom:0;box-sizing:border-box;display:flex;flex-direction:column}.process-panel .process-table-wrap{flex:1 1 auto}.process-panel__head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:6px}.process-panel h2{margin:0;font-size:16px;font-weight:600;color:var(--color-primary)}.process-panel__desc{margin:0 0 14px;font-size:13px;color:#6b7a89;line-height:1.4}.process-panel__unsaved{flex-shrink:0;font-size:12px;font-weight:600;color:#b45309}.process-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px}.process-toolbar label{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:600;color:#6b7a89}.process-toolbar select{min-width:180px;border:1px solid var(--color-border-input);border-radius:6px;padding:7px 10px;background:var(--color-surface);font-size:13px}.process-toolbar select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-soft)}.process-table-wrap{overflow-x:auto;margin:0 -4px;padding:0 4px}.process-table{width:100%;min-width:640px;border-collapse:collapse;table-layout:fixed;font-size:13px}.process-table--phases{min-width:520px}.process-table--milestones{min-width:920px}.process-table--gates,.process-table--stamps{min-width:0;width:100%}.process-table--unmatched{min-width:960px}.process-table td,.process-table th{text-align:left;padding:10px 8px;border-bottom:1px solid var(--color-border-divider);vertical-align:top}.process-table th{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#7a8fa3;white-space:nowrap;vertical-align:bottom}.process-table th.process-th-wrap{white-space:normal;line-height:1.25;-webkit-hyphens:auto;hyphens:auto}.process-table tbody tr:last-child td{border-bottom:none}.process-col-name{width:auto;min-width:200px}.process-col-key{width:140px;min-width:120px}.process-col-phase{width:14%;min-width:120px}.process-col-owner{width:10%;min-width:88px}.process-col-sort{width:64px}.process-col-flag{width:72px;text-align:center}.process-col-flag td,.process-col-flag th{text-align:center;vertical-align:middle}.process-col-actions{width:100px;min-width:100px}.process-col-actions--wide{width:auto;min-width:96px}.process-col-num{width:72px}.process-col-num-wide{width:88px}.process-col-milestone{width:240px;min-width:200px}.process-table--milestones .process-col-name{width:26%;min-width:140px}.process-table--milestones .process-col-key{width:16%;min-width:0}.process-table--milestones .process-col-phase{width:20%;min-width:0}.process-table--milestones .process-col-owner{width:9%;min-width:0}.process-table--milestones .process-col-sort{width:56px}.process-table--milestones .process-col-flag{width:58px}.process-table--milestones .process-col-actions{width:88px;min-width:88px}.process-table--gates .process-col-key{width:8%;min-width:0}.process-table--gates .process-col-milestone{width:25%;min-width:0}.process-table--gates .process-col-num{width:7%;min-width:0}.process-table--gates .process-col-num-wide{width:9%;min-width:0}.process-table--gates .process-col-sort{width:5%;min-width:0}.process-table--gates .process-col-actions--wide{width:10%;min-width:96px}.process-table--stamps .process-col-milestone{width:38%;min-width:0}.process-table--stamps .process-col-num{width:12%;min-width:0}.process-table--stamps .process-col-actions--wide{width:12%;min-width:96px}.process-table--unmatched .unmatched-col-job{width:18%;min-width:140px}.process-table--unmatched .unmatched-col-type{width:9%;min-width:88px}.process-table--unmatched .unmatched-col-status{width:12%;min-width:100px}.process-table--unmatched .unmatched-col-estimate{width:14%;min-width:110px}.process-table--unmatched .unmatched-col-project{width:24%;min-width:180px}.process-table--unmatched .unmatched-col-construction{width:88px;min-width:88px;text-align:center}.process-table--unmatched td.unmatched-col-construction,.process-table--unmatched th.unmatched-col-construction{text-align:center;vertical-align:middle}.process-table--unmatched .unmatched-col-actions{width:168px;min-width:168px}.process-table--unmatched .unmatched-col-project select{width:100%;min-width:0}.process-table td.process-col-actions,.process-table td.process-col-actions--wide,.process-table th.process-col-actions,.process-table th.process-col-actions--wide{vertical-align:top;background:var(--color-surface)}.process-row--dirty td.process-col-actions,.process-row--dirty td.process-col-actions--wide{background:#fffbeb}.process-milestone-cell{display:flex;flex-direction:column;gap:4px;min-width:0}.process-milestone-cell select{min-width:0}.process-table .process-col-name input{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;height:var(--control-h);min-height:var(--control-h);max-height:var(--control-h);line-height:1.25}.process-key{display:block;font-family:var(--font-mono,ui-monospace,SFMono-Regular,Menlo,monospace);font-size:11px;color:#7a8fa3;word-break:break-all;line-height:1.35}.process-form-row input,.process-form-row select,.process-milestone-cell select,.process-table input[type=number],.process-table input[type=text],.process-table select{width:100%;min-width:0;height:var(--control-h);min-height:var(--control-h);max-height:var(--control-h);border:1px solid var(--color-border-input);border-radius:6px;padding:6px 10px;background:var(--color-surface);font-size:13px;color:#193147;box-sizing:border-box}.process-form-row input:focus,.process-form-row select:focus,.process-table input:focus,.process-table select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-soft)}.process-table input[type=checkbox]{width:16px;height:16px;accent-color:var(--color-primary);cursor:pointer}.process-row--dirty{background:#fffbeb;box-shadow:inset 3px 0 0 #f59e0b}.process-row--dirty td:first-child{padding-left:11px}.process-save-slot{display:flex;align-items:center;justify-content:flex-end;gap:6px;height:var(--control-h);min-height:var(--control-h);flex-wrap:nowrap}.process-save-slot .btn{white-space:nowrap;flex:0 0 auto;height:var(--control-h)}.process-create{margin-top:16px;padding-top:16px;border-top:1px solid var(--color-border)}.process-create__label{margin:0 0 10px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:#6b7a89}.process-form-row{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end}.process-form-row label{display:flex;flex-direction:column;gap:4px;font-size:11px;font-weight:600;color:#6b7a89;min-width:120px;flex:1 1 140px}.process-form-row label.process-form-row__sort{flex:0 0 80px;min-width:80px}.process-form-row label.process-form-row__milestone{flex:2 1 260px;min-width:220px}.process-form-row>.btn{flex:0 0 auto;align-self:flex-end;height:var(--control-h);min-height:var(--control-h);max-height:var(--control-h)}.process-inactive{opacity:.55}.process-inactive.process-row--dirty{opacity:.85}