:root{--bg:#f5f6f8;--panel:#ffffff;--panel-soft:#f9fafb;--text:#17181c;--muted:#636a75;--border:#d8dde5;--accent:#0f766e;--accent-strong:#115e59;--danger:#b42318;--warning:#a15c07;--ok:#287a3e;--shadow:0 1px 2px rgba(15,23,42,0.08)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-geist-sans),system-ui,sans-serif;letter-spacing:0}button,input,select,textarea{font:inherit;letter-spacing:0}a{color:inherit;text-decoration:none}.app-shell{min-height:100vh;display:grid;grid-template-columns:232px minmax(0,1fr)}.sidebar{border-right:1px solid var(--border);background:#111418;color:#ffffff;padding:20px}.brand{font-size:22px;line-height:1.1;font-weight:720;margin-bottom:28px}.sidebar-link{display:flex;align-items:center;width:100%;gap:10px;min-height:44px;padding:10px 12px;border:1px solid transparent;border-radius:6px;background:transparent;color:#cfd6df;cursor:pointer;text-align:left}.sidebar-link svg{flex-shrink:0}.sidebar-link.active,.sidebar-link:hover{background:#232932;border-color:#3b4350;color:#ffffff}.sidebar-link:focus-visible{outline:2px solid #7dd3fc;outline-offset:2px}.main{min-width:0;padding:22px}.topbar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px}.title{font-size:24px;line-height:1.2;font-weight:720;margin:0}.muted{color:var(--muted)}.grid{display:grid;gap:14px}.grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.panel{background:var(--panel);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow)}.panel-header{padding:14px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:12px}.panel-body{padding:16px}.metric{padding:14px 16px}.metric-label{color:var(--muted);font-size:12px;text-transform:uppercase;font-weight:680}.metric-value{font-size:28px;line-height:1.2;font-weight:760;margin-top:6px}.button{border:1px solid var(--border);background:#ffffff;color:var(--text);border-radius:6px;min-height:34px;padding:7px 11px;display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer}.button.primary{border-color:var(--accent);background:var(--accent);color:#ffffff}.button.primary:hover{background:var(--accent-strong)}.button.danger{border-color:#f5b7b1;color:var(--danger)}.button.danger:hover{background:#fff1ef}.button:disabled{opacity:.55;cursor:not-allowed}.input,.select,.textarea{width:100%;border:1px solid var(--border);background:#ffffff;color:var(--text);border-radius:6px;min-height:36px;padding:8px 10px}.textarea{min-height:86px;resize:vertical}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.form-row{display:grid;gap:6px}.form-row label{font-size:12px;font-weight:680;color:var(--muted)}.table{width:100%;border-collapse:collapse;font-size:13px}.table td,.table th{border-bottom:1px solid var(--border);padding:9px 10px;text-align:left;vertical-align:top}.table th{font-weight:720;background:var(--panel-soft)}.badge,.table th{color:var(--muted);font-size:12px}.badge{display:inline-flex;align-items:center;min-height:22px;padding:2px 8px;border-radius:999px;border:1px solid var(--border);background:#ffffff}.badge.ok{color:var(--ok);border-color:#b8e0c3;background:#f0fbf3}.badge.warn{color:var(--warning);border-color:#f5d19a;background:#fff7e8}.badge.danger{color:var(--danger);border-color:#f5b7b1;background:#fff1ef}.contractor-page,.login-page{min-height:100vh;display:grid;place-items:center;padding:24px}.login-panel,.task-panel{width:min(100%,620px)}.task-actions{display:flex;gap:10px;flex-wrap:wrap}.error{color:var(--danger);font-size:13px}@media (max-width:920px){.app-shell{grid-template-columns:1fr}.sidebar{display:flex;align-items:center;gap:10px;overflow-x:auto}.brand{margin:0 10px 0 0}.form-grid,.grid.cols-2,.grid.cols-3{grid-template-columns:1fr}}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/f639721981034f88-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:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/9766a7e9e2e0ad5a-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/b66cf8e69499582a-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:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/aa016aab0e6d1295-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:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/22a5144ee8d83bca-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:Geist Fallback;src:local("Arial");ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.00%;size-adjust:104.76%}.__className_246ccd{font-family:Geist,Geist Fallback;font-style:normal}.__variable_246ccd{--font-geist-sans:"Geist","Geist Fallback"}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/d100b2a099e34044-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:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/2c34d62a75506231-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/0f1bdadaf30e2d5f-s.woff2) format("woff2");unicode-range:u+2000-2001,u+2004-2008,u+200a,u+23b8-23bd,u+2500-259f}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/a115172161b307bb-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:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/601f5c280d60caca-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:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/f5271587012faf78-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:Geist Mono Fallback;src:local("Arial");ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.00%;size-adjust:134.59%}.__className_4c40f6{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.__variable_4c40f6{--font-geist-mono:"Geist Mono","Geist Mono Fallback"}