@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/build/assets/plus-jakarta-sans-cyrillic-ext-wght-normal-lLTsRRxN.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/build/assets/plus-jakarta-sans-vietnamese-wght-normal-qRpaaN48.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/build/assets/plus-jakarta-sans-latin-ext-wght-normal-DmpS2jIq.woff2) format("woff2-variations");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:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/build/assets/plus-jakarta-sans-latin-wght-normal-eXO_dkmS.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/build/assets/jetbrains-mono-cyrillic-ext-500-normal-C9ShMxGR.woff2) format("woff2"),url(/build/assets/jetbrains-mono-cyrillic-ext-500-normal-CEVyPk4Y.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/build/assets/jetbrains-mono-cyrillic-500-normal-DmUKJPL_.woff2) format("woff2"),url(/build/assets/jetbrains-mono-cyrillic-500-normal-DJqRU3vO.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/build/assets/jetbrains-mono-greek-500-normal-JpySY46c.woff2) format("woff2"),url(/build/assets/jetbrains-mono-greek-500-normal-D7SFKleX.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/build/assets/jetbrains-mono-vietnamese-500-normal-BvH7FW2L.woff2) format("woff2"),url(/build/assets/jetbrains-mono-vietnamese-500-normal-DNRqzVM1.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/build/assets/jetbrains-mono-latin-ext-500-normal-Cut-4mMH.woff2) format("woff2"),url(/build/assets/jetbrains-mono-latin-ext-500-normal-ckzbgY84.woff) format("woff");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:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/build/assets/jetbrains-mono-latin-500-normal-BWZEU5yA.woff2) format("woff2"),url(/build/assets/jetbrains-mono-latin-500-normal-CJOVTJB7.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/build/assets/jetbrains-mono-cyrillic-ext-600-normal-Dj6eZy5f.woff2) format("woff2"),url(/build/assets/jetbrains-mono-cyrillic-ext-600-normal-DVvC-yKp.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/build/assets/jetbrains-mono-cyrillic-600-normal-EVf6-Yzo.woff2) format("woff2"),url(/build/assets/jetbrains-mono-cyrillic-600-normal-8K4wrrwR.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/build/assets/jetbrains-mono-greek-600-normal-H7WoG9Et.woff2) format("woff2"),url(/build/assets/jetbrains-mono-greek-600-normal-mc2nkWzM.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/build/assets/jetbrains-mono-vietnamese-600-normal-Dtizs43-.woff2) format("woff2"),url(/build/assets/jetbrains-mono-vietnamese-600-normal-OWROknRo.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/build/assets/jetbrains-mono-latin-ext-600-normal-BfB_LPfz.woff2) format("woff2"),url(/build/assets/jetbrains-mono-latin-ext-600-normal-DObL3zCW.woff) format("woff");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:JetBrains Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/build/assets/jetbrains-mono-latin-600-normal-C8RAYTDA.woff2) format("woff2"),url(/build/assets/jetbrains-mono-latin-600-normal-BfsvjouI.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--blue: #1e63d8;--blue-dark: #1747a0;--blue-soft: #e8f0fe;--blue-border: #bfd3f8;--ink: #0e1726;--ink-2: #1a2638;--ink-3: #26344a;--green: #1eb872;--ok: #127a4b;--ok-soft: #e4f7ee;--warn: #9a4b00;--warn-soft: #fff1dd;--danger: #a12e22;--danger-soft: #fde9e7;--violet: #5b3fc4;--violet-soft: #efebfd;--teal: #0f7c86;--teal-soft: #e2f4f5;--surface: #f3f5f9;--hover: #f8fafd;--muted-fill: #f1f3f7;--border: #e3e8f0;--border-faint: #eef1f6;--border-strong: #d5dce8;--text: #1a2233;--text-soft: #4b5565;--text-muted: #5f6b7a;--nav-text: #a9b4c8;--nav-head: #7f8da4;--card: #fff;--input: #fff;--sunken: #fbfcfe;--accent-bg: #f7faff;--weekend: #f6f7fa;--link-hover: #0f3577;--chip-on: #0e1726;--chip-on-text: #fff;--side: #0e1726;--ok-btn: #127a4b;--warn-card-bg: #fffaf0;--warn-card-border: #f3dfb8;--danger-border: #f3c7c1;--teal-border: #bfe3e6;color-scheme:light;--font: "Plus Jakarta Sans Variable", system-ui, -apple-system, "Segoe UI", sans-serif;--mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--radius: 16px}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--surface: #0b1220;--card: #121b2b;--input: #0f1828;--sunken: #0f1828;--hover: #182336;--muted-fill: #1c2738;--border: #253247;--border-faint: #1d2839;--border-strong: #33425a;--accent-bg: #13213a;--weekend: #0f1726;--text: #e6ebf3;--text-soft: #b7c1d1;--text-muted: #93a0b4;--blue: #3b7bea;--blue-dark: #9cc0ff;--blue-soft: #16284a;--blue-border: #2b4a7d;--link-hover: #c4dbff;--ok: #6fdca6;--ok-soft: #10301f;--ok-btn: #19794d;--warn: #f3b06b;--warn-soft: #3a2610;--danger: #f2918a;--danger-soft: #3b1814;--danger-border: #5a2620;--violet: #b3a2f5;--violet-soft: #241c47;--teal: #6fd0d8;--teal-soft: #0f2e31;--teal-border: #1d4b50;--warn-card-bg: #2b2013;--warn-card-border: #5a3f1a;--chip-on: #e6ebf3;--chip-on-text: #0e1726;--side: #080d17;--ink-3: #26344a;color-scheme:dark;--av-ring: rgba(255, 255, 255, .16)}}:root[data-theme=dark]{--av-ring: rgba(255, 255, 255, .16);--surface: #0b1220;--card: #121b2b;--input: #0f1828;--sunken: #0f1828;--hover: #182336;--muted-fill: #1c2738;--border: #253247;--border-faint: #1d2839;--border-strong: #33425a;--accent-bg: #13213a;--weekend: #0f1726;--text: #e6ebf3;--text-soft: #b7c1d1;--text-muted: #93a0b4;--blue: #3b7bea;--blue-dark: #9cc0ff;--blue-soft: #16284a;--blue-border: #2b4a7d;--link-hover: #c4dbff;--ok: #6fdca6;--ok-soft: #10301f;--ok-btn: #19794d;--warn: #f3b06b;--warn-soft: #3a2610;--danger: #f2918a;--danger-soft: #3b1814;--danger-border: #5a2620;--violet: #b3a2f5;--violet-soft: #241c47;--teal: #6fd0d8;--teal-soft: #0f2e31;--teal-border: #1d4b50;--warn-card-bg: #2b2013;--warn-card-border: #5a3f1a;--chip-on: #e6ebf3;--chip-on-text: #0e1726;--side: #080d17;--ink-3: #26344a;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0}body{background:var(--surface);color:var(--text);font:15px/1.5 var(--font);-webkit-font-smoothing:antialiased}a{color:var(--blue-dark)}a:hover{color:var(--link-hover)}h1,h2,h3{margin:0}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--blue-border);outline-offset:2px}.num{font-family:var(--mono);font-variant-numeric:tabular-nums;letter-spacing:-.02em}.sub{font-size:13px;color:var(--text-muted)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.shell{min-height:100vh;display:flex;flex-wrap:wrap}.side{flex:1 1 248px;max-width:248px;background:var(--side);padding:24px 16px;display:flex;flex-direction:column;gap:24px}.brand{display:flex;align-items:center;gap:10px;padding:0 8px;text-decoration:none}.brand-mark{width:34px;height:34px;border-radius:10px;background:var(--green);display:grid;place-items:center;color:var(--ink);font-weight:800}.brand b{display:block;color:#fff;font-size:15px}.brand span{color:var(--nav-head);font-size:12px}.brand .brand-mark{color:var(--ink);font-size:15px}.side-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.side-menu{display:flex;flex-direction:column;gap:24px}.menu-toggle{display:none;align-items:center;gap:8px;border:1px solid var(--ink-3);background:var(--ink-2);color:#fff;border-radius:10px;padding:8px 12px;font:inherit;font-size:14px;font-weight:600;cursor:pointer}.menu-toggle svg{width:18px;height:18px}.menu-toggle .cnt{border-radius:999px;font-size:11px;font-weight:800;padding:2px 8px;background:var(--green);color:var(--ink)}.brand-logo{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:2px 8px 0;text-decoration:none}.brand-logo img{display:block;width:176px;height:auto}.brand-logo span{color:var(--nav-head);font-size:11px;font-weight:700;letter-spacing:.08em}.login-logo{display:block;width:220px;height:auto}.login-logo.on-dark{display:none}:root[data-theme=dark] .login-logo.on-light{display:none}:root[data-theme=dark] .login-logo.on-dark{display:block}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .login-logo.on-light{display:none}:root:not([data-theme=light]) .login-logo.on-dark{display:block}}.nav{display:flex;flex-direction:column;gap:4px}.nav-head{color:var(--nav-head);font-size:11px;font-weight:700;letter-spacing:.08em;padding:0 12px 6px}.nav a{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:10px;color:var(--nav-text);text-decoration:none;font-size:14px;font-weight:500}.nav a:hover{background:var(--ink-2);color:#fff}.nav a.on{background:var(--blue);color:#fff}.nav svg{width:18px;height:18px;flex:none}.nav .cnt{margin-left:auto;border-radius:999px;font-size:11px;font-weight:800;padding:2px 8px;background:var(--ink-3);color:#dce3ee}.nav a.on .cnt{background:#fff;color:var(--blue)}.nav .ext{margin-left:auto;width:14px;height:14px;opacity:.6}.nav .soon{margin-left:auto;font-size:10px;font-weight:700;letter-spacing:.04em;color:var(--nav-head)}.main{flex:999 1 560px;min-width:0;display:flex;flex-direction:column}.top{min-height:72px;display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:12px 32px;background:var(--card);border-bottom:1px solid var(--border)}.crumb{font-size:14px;color:var(--text-muted);font-weight:600}.crumb a{color:var(--text-muted);text-decoration:none}.top-right{margin-left:auto;display:flex;align-items:center;gap:12px}.content{padding:32px;display:flex;flex-direction:column;gap:24px;width:100%;max-width:1440px}.content>*{min-width:0}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap}.page-head p{margin:0;color:var(--text-muted);font-size:14px;font-weight:600}.page-head h1{margin-top:4px;font-size:30px;font-weight:800;letter-spacing:-.02em;line-height:1.2}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius)}.card-head{padding:18px 20px 14px;display:flex;align-items:baseline;justify-content:space-between;gap:12px}.card-head h2,.card h2{font-size:17px;font-weight:700}.card-head p{margin:4px 0 0}.pad{padding:18px}.stack{display:flex;flex-direction:column;gap:12px}.grid-main{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:24px;align-items:start}.grid-main.wide-side{grid-template-columns:minmax(0,1fr) 380px}.grid-main.side-400{grid-template-columns:minmax(0,1fr) 400px}.grid-main.side-460{grid-template-columns:minmax(0,1fr) 460px}.grid-main.left-380{grid-template-columns:380px minmax(0,1fr)}.grid-main.halves{grid-template-columns:repeat(2,minmax(0,1fr))}.col{display:flex;flex-direction:column;gap:24px;min-width:0}.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.kpi{padding:18px 20px;display:flex;flex-direction:column;gap:6px;text-decoration:none;color:inherit}a.kpi:hover{border-color:var(--blue-border)}.kpi .val{font-size:30px;font-weight:600;line-height:1.2}.kpi.accent{border-color:var(--blue-border);background:var(--accent-bg)}.kpi.accent .val,.kpi.accent .lbl{color:var(--blue-dark)}.src{font-size:12px;font-weight:700;letter-spacing:.04em;display:flex;align-items:center;gap:8px;text-transform:uppercase}.src i{width:8px;height:8px;border-radius:50%;display:inline-block}.t-blue{color:var(--blue-dark)}.t-blue i{background:var(--blue)}.t-violet{color:var(--violet)}.t-violet i{background:var(--violet)}.t-green{color:var(--ok)}.t-green i{background:var(--ok)}.t-teal{color:var(--teal)}.t-teal i{background:var(--teal)}.pill{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:700;white-space:nowrap}.pill.ok{background:var(--ok-soft);color:var(--ok)}.pill.warn{background:var(--warn-soft);color:var(--warn)}.pill.danger{background:var(--danger-soft);color:var(--danger)}.pill.muted{background:var(--muted-fill);color:var(--text-soft)}.pill.blue{background:var(--blue-soft);color:var(--blue-dark)}.pill.violet{background:var(--violet-soft);color:var(--violet)}.pill.green{background:var(--ok-soft);color:var(--ok)}.pill.teal{background:var(--teal-soft);color:var(--teal)}.dot{width:10px;height:10px;border-radius:50%;background:var(--green);display:inline-block}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 18px;border-radius:10px;font-weight:600;font-size:14px;border:1px solid var(--border-strong);background:var(--card);color:var(--text);cursor:pointer;white-space:nowrap;text-decoration:none}.btn:hover{background:var(--hover);color:var(--text)}.btn.primary{background:var(--blue);border-color:var(--blue);color:#fff}.btn.primary:hover{background:var(--blue-dark)}.btn.ok{background:var(--ok-btn);border-color:var(--ok-btn);color:#fff}.btn.danger{border-color:var(--danger);color:var(--danger)}.btn.danger:hover{background:var(--danger-soft)}.btn.sm{min-height:36px;padding:0 12px;font-size:13px}.btn.icon{width:40px;padding:0}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-row{display:flex;gap:8px;flex-wrap:wrap}.av{box-shadow:0 0 0 1px var(--av-ring, transparent);width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;color:#fff;flex:none}.av.lg{width:40px;height:40px;font-size:13px}.row{display:grid;gap:14px;align-items:center;padding:16px 20px;border-top:1px solid var(--border-faint)}.row-ap{grid-template-columns:32px minmax(0,1fr) auto}.row-job{grid-template-columns:96px minmax(0,1fr) auto;text-decoration:none;color:inherit}a.row-job:hover{background:var(--hover)}.row b{font-weight:700}.who{display:grid;grid-template-columns:32px minmax(0,1fr) auto;gap:12px;align-items:center}.who .name{font-size:14px;font-weight:600}.mini{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.mini a,.mini div{padding:12px;border-radius:12px;background:var(--surface);text-decoration:none;color:inherit;display:flex;flex-direction:column;gap:2px}.mini .num{font-size:22px;font-weight:600}.line{display:flex;justify-content:space-between;gap:12px;font-size:14px}.line>:last-child{white-space:nowrap}.line>.wrap{white-space:normal;text-align:right}.empty{padding:18px 20px 22px;color:var(--text-muted);font-size:14px;border-top:1px solid var(--border-faint)}.alert{padding:12px 16px;border-radius:12px;font-size:14px;font-weight:600;display:flex;gap:10px;align-items:flex-start}.alert.ok{background:var(--ok-soft);color:var(--ok)}.alert.warn{background:var(--warn-soft);color:var(--warn)}.alert.danger{background:var(--danger-soft);color:var(--danger)}.alert ul{margin:0;padding-left:18px}.field{display:flex;flex-direction:column;gap:6px}.lbl{font-size:13px;font-weight:700;color:var(--text)}.inp{height:44px;border:1px solid var(--border-strong);border-radius:10px;padding:0 12px;font-size:14px;font-weight:500;background:var(--input);width:100%}textarea.inp{height:auto;min-height:80px;padding:10px 12px;resize:vertical}.two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.check{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:600;min-height:32px}.check input{width:18px;height:18px}.chips{display:flex;gap:8px;flex-wrap:wrap}.chip{position:relative;display:inline-flex;align-items:center;min-height:40px;padding:0 14px;border-radius:10px;border:1px solid var(--border-strong);font-size:14px;font-weight:600;background:var(--card);cursor:pointer;text-decoration:none;color:var(--text)}.chip input{position:absolute;opacity:0;inset:0;cursor:pointer}.chip:has(input:checked),.chip.on{background:var(--chip-on);border-color:var(--chip-on);color:var(--chip-on-text)}.chip:has(input:focus-visible){outline:3px solid var(--blue-border);outline-offset:2px}.calc{border-radius:12px;background:var(--surface);padding:16px 18px;display:flex;flex-direction:column;gap:10px}.calc .total{padding-top:10px;border-top:1px solid var(--border)}.err{color:var(--danger);font-size:13px;font-weight:600}.table{width:100%;border-collapse:collapse;font-size:14px}.table th{text-align:left;font-size:12px;font-weight:700;color:var(--text-muted);letter-spacing:.04em;padding:6px 18px 10px;text-transform:uppercase}.table td{padding:12px 18px;border-top:1px solid var(--border-faint);vertical-align:middle}.table tr.link-row:hover td{background:var(--hover)}.scroll-x{overflow-x:auto;position:relative}.tl{display:grid;min-width:980px}.tl>span{height:40px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;border-top:1px solid var(--border-faint)}.tl .dh{height:46px;flex-direction:column;gap:0;font-size:11px;color:var(--text-muted);border-top:0}.tl .dh b{font-size:13px;color:var(--text)}.tl .nm{justify-content:flex-start;gap:10px;padding-left:16px;font-size:14px;color:var(--text)}.tl .we{background:var(--weekend)}.tl .hol{background:var(--teal-soft)}.tl .td{box-shadow:inset 2px 0 0 var(--text),inset -2px 0 0 var(--text)}.blk{width:100%;height:24px;display:block}.blk.approved{background:var(--teal)}.blk.pending{background:repeating-linear-gradient(135deg,var(--blue) 0 4px,#8fb4f0 4px 8px)}.blk.am{width:50%;margin-right:auto}.blk.pm{width:50%;margin-left:auto}.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--text-muted);font-weight:600}.legend span{display:flex;align-items:center;gap:6px}.legend i{width:14px;height:10px;border-radius:3px;display:inline-block}.login{min-height:100vh;display:grid;place-items:center;padding:24px;background:var(--side)}.login-card{width:100%;max-width:420px;background:var(--card);border-radius:20px;padding:32px;display:flex;flex-direction:column;gap:20px}.ms-btn{display:flex;align-items:center;justify-content:center;gap:12px;min-height:48px;border-radius:10px;border:1px solid var(--border-strong);background:var(--card);color:var(--text);font-weight:700;text-decoration:none}.ms-btn:hover{background:var(--hover);color:var(--text)}@media(max-width:1100px){.grid-main,.grid-main.wide-side,.grid-main.side-400,.grid-main.side-460,.grid-main.left-380,.grid-main.halves{grid-template-columns:minmax(0,1fr)}.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.side{max-width:none;flex-basis:100%;padding:14px 16px;gap:12px}.side .nav{flex-direction:row;flex-wrap:wrap}.side .nav-head,.nav .soon{display:none}.menu-toggle{display:inline-flex}.side-menu{display:none;gap:12px}.side.open .side-menu{display:flex}.brand-logo img{width:150px}.top{padding:12px 16px}.content{padding:20px 16px}.page-head h1{font-size:24px}.two{grid-template-columns:minmax(0,1fr)}.kpis{gap:10px}.kpi{padding:14px}.kpi .val{font-size:24px}.row-ap,.row-job{grid-template-columns:minmax(0,1fr)}.row-ap .av,.row-job>.pill{justify-self:start}}.rcpt{width:56px;height:72px;border-radius:8px;border:1px solid var(--border-strong);background:var(--sunken);display:grid;place-items:center;overflow:hidden;flex:none;font-size:11px;font-weight:800;color:var(--blue-dark);text-decoration:none}.rcpt img{width:100%;height:100%;object-fit:cover}.rcpt.empty{color:var(--text-muted);font-weight:600;text-align:center;border-style:dashed}.exp-row{display:grid;grid-template-columns:56px minmax(0,1fr) auto;gap:14px;align-items:start;padding:14px 18px;border-top:1px solid var(--border-faint)}.exp-right{display:flex;flex-direction:column;align-items:flex-end;gap:6px}.note-box{margin-top:8px;padding:8px 10px;border-radius:8px;background:var(--danger-soft);color:var(--danger);font-size:13px;font-weight:600}.drop{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:170px;border:2px dashed var(--blue-border);border-radius:12px;background:var(--accent-bg);color:var(--blue-dark);font-size:13px;font-weight:700;text-align:center;padding:12px;cursor:pointer}.drop input{position:absolute;inset:0;opacity:0;cursor:pointer}.drop:focus-within{outline:3px solid var(--blue-border);outline-offset:2px}.drop img{max-width:100%;max-height:150px;border-radius:8px}.split{display:grid;grid-template-columns:160px minmax(0,1fr);gap:18px;align-items:start}.bar{height:8px;border-radius:4px;background:var(--border-faint)}.bar>i{display:block;height:8px;border-radius:4px;background:var(--blue)}@media(max-width:760px){.split{grid-template-columns:minmax(0,1fr)}.exp-row{grid-template-columns:56px minmax(0,1fr)}.exp-right{grid-column:2;align-items:flex-start}}.att{max-width:1100px}.att-hero{background:var(--ink);color:#fff;border-radius:20px;padding:24px;display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center}.att-hero p{margin:0;color:var(--nav-text);font-size:13px;font-weight:600}.att-state{color:#dce3ee;font-size:14px;font-weight:700}.att-clock{font-size:48px;font-weight:600;line-height:1.1}.att-place{color:#8be3b8;font-size:13px;font-weight:700}.att-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;width:100%;max-width:460px;margin-top:12px}.att-btn{flex:1 1 180px;min-height:56px;border-radius:14px;border:0;background:var(--green);color:var(--ink);font-weight:800;font-size:16px;cursor:pointer}.att-btn.ghost{background:var(--ink-3);color:#fff;flex:0 1 140px}.att-btn:disabled{opacity:.6;cursor:progress}.att-msg{flex-basis:100%;color:#ffd8a8;font-size:13px;font-weight:600;min-height:1em}details.card>summary{list-style:none}details.card>summary::-webkit-details-marker{display:none}details.card>summary:after{content:"+";float:right;color:var(--text-muted)}details.card[open]>summary:after{content:"–"}.ts{display:grid;min-width:1400px}.ts>span{height:38px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;border-top:1px solid var(--border-faint);font-family:var(--mono)}.ts .h{height:44px;flex-direction:column;font-family:var(--font);font-size:11px;color:var(--text-muted);border-top:0}.ts .h b{font-size:12px;color:var(--text)}.ts .nm{justify-content:flex-start;gap:8px;padding-left:16px;font-family:var(--font);font-size:13px}.ts .we{background:var(--weekend)}.ts .hol,.ts .lv{background:var(--teal-soft);color:var(--teal);font-weight:800;font-family:var(--font)}.ts .late{background:var(--warn-soft);color:var(--warn)}.ts .open{background:var(--danger-soft);color:var(--danger)}.ts .tot{background:var(--accent-bg);font-weight:700}.plan{display:grid;grid-template-columns:180px repeat(7,minmax(120px,1fr));min-width:1020px}.plan .ph{padding:12px 10px;font-size:12px;color:var(--text-muted);font-weight:600;display:flex;flex-direction:column}.plan .ph b{color:var(--text);font-size:13px}.plan .pn{display:flex;gap:10px;align-items:center;padding:10px 16px;border-top:1px solid var(--border-faint);font-size:14px;font-weight:600}.plan .pc{padding:8px;border-top:1px solid var(--border-faint);border-left:1px solid var(--border-faint);display:flex;flex-direction:column;gap:6px;min-height:64px}.plan .we{background:var(--weekend)}.plan .td{box-shadow:inset 0 3px 0 var(--blue)}.task{position:relative;display:flex;flex-direction:column;gap:1px;padding:6px 8px;border-radius:8px;border:1px solid var(--blue-border);background:var(--blue-soft);color:var(--blue-dark);font-size:12px;line-height:1.3}.task.off{background:var(--muted-fill);border-color:var(--border);color:var(--text-soft)}.task.leave{background:var(--teal-soft);border-color:var(--teal-border);color:var(--teal)}.task-x{position:absolute;top:2px;right:2px;display:none;gap:2px}.task:hover .task-x,.task:focus-within .task-x{display:flex}.task-x button{width:22px;height:22px;border:0;border-radius:6px;background:var(--card);color:var(--danger);font-weight:800;cursor:pointer;line-height:1}.att-task{width:100%;max-width:460px;border-radius:14px;background:var(--ink-2);padding:14px 16px;display:flex;flex-direction:column;gap:6px;text-align:left;margin-top:8px}.att-task b{font-size:18px}.att-task .sub{color:var(--nav-text)}.att-dist{padding:8px 10px;border-radius:10px;background:var(--ink-3);font-size:13px;font-weight:700;color:#dce3ee}.att-dist.in{color:#8be3b8}.att-dist.out{color:#ffd8a8}.usermenu{position:relative}.usermenu>summary{list-style:none;cursor:pointer;border-radius:50%}.usermenu>summary::-webkit-details-marker{display:none}.usermenu>summary:focus-visible{outline:3px solid var(--blue-border);outline-offset:2px}.usermenu-panel{position:absolute;right:0;top:calc(100% + 8px);z-index:50;width:280px;background:var(--card);border:1px solid var(--border);border-radius:14px;box-shadow:0 12px 32px #0000002e;padding:16px;display:flex;flex-direction:column;gap:14px}.usermenu-panel .who-me{display:flex;gap:12px;align-items:center}.usermenu-panel .who-me b{display:block;font-size:14px}.usermenu-panel .who-me span{font-size:12px;color:var(--text-muted);word-break:break-all}.seg{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding:4px;border-radius:10px;background:var(--muted-fill)}.seg button{min-height:36px;border:0;border-radius:8px;background:transparent;color:var(--text-soft);font-weight:600;font-size:13px;cursor:pointer}.seg button[aria-pressed=true]{background:var(--card);color:var(--text);box-shadow:0 1px 2px #0000001f}.menu-link{display:flex;align-items:center;gap:10px;min-height:40px;padding:0 10px;border-radius:10px;color:var(--text);text-decoration:none;font-size:14px;font-weight:600;background:none;border:0;cursor:pointer;width:100%}.menu-link:hover{background:var(--hover);color:var(--text)}.menu-link svg{width:18px;height:18px;color:var(--text-muted)}.warn-card{border-color:var(--warn-card-border);background:var(--warn-card-bg)}.prow{display:grid;grid-template-columns:32px minmax(0,1fr) auto;gap:8px 12px;align-items:center;padding:12px 18px;border-top:1px solid var(--border-faint);text-decoration:none;color:inherit}.prow:hover{background:var(--hover);color:inherit}.prow.sel{background:var(--accent-bg);box-shadow:inset 3px 0 0 var(--blue)}.prow .meter{grid-column:2 / 4;height:6px;border-radius:3px;background:var(--border-faint)}.prow .meter i{display:block;height:6px;border-radius:3px;background:var(--green)}.tlbar{position:relative;height:28px;border-radius:8px;background:var(--border);overflow:hidden}.tlbar i{position:absolute;top:0;bottom:0}.tlbar .active{background:var(--blue)}.tlbar .idle{background:#f0b66e}.app-row{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) 92px 86px;gap:14px;align-items:center;padding:10px 0;border-top:1px solid var(--border-faint);font-size:14px}.app-row .bar i{display:block;height:8px;border-radius:4px;background:var(--blue)}.rem-row{display:grid;grid-template-columns:150px 130px minmax(0,1fr) 90px 52px 70px;gap:12px;align-items:center;padding:10px 0;border-top:1px solid var(--border-faint);font-size:14px}code{font-family:var(--mono);font-size:13px;background:var(--muted-fill);padding:2px 6px;border-radius:6px}@media(max-width:760px){.app-row{grid-template-columns:minmax(0,1fr) 52px}.app-row .bar,.app-row .pill{display:none}.rem-row{grid-template-columns:minmax(0,1fr) auto}.rem-row>:nth-child(n+3):not(:nth-child(5)){display:none}}.doc-row{display:flex;flex-direction:column;gap:6px;padding-bottom:12px;border-bottom:1px solid var(--border)}.doc-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.doc-head .btn{margin-left:auto}.doc-row .line{align-items:center}.doc-row .line>:first-child{min-width:0;overflow-wrap:anywhere}.upload-box{padding:16px;border-radius:12px;background:var(--muted-fill);scroll-margin-top:80px}.linkbtn{border:0;background:none;padding:0;color:var(--danger);font:inherit;font-weight:600;cursor:pointer}.linkbtn:hover{text-decoration:underline}[hidden]{display:none!important}.otp-show{font-size:40px;font-weight:600;letter-spacing:.14em;padding:18px;border-radius:12px;background:var(--muted-fill);text-align:center}.otp-input{font-size:24px;letter-spacing:.2em;max-width:220px}.pair-device{display:flex;flex-direction:column;gap:8px;padding:16px;border-radius:12px;background:var(--muted-fill)}.stat-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.stat{font-size:28px;font-weight:600;margin:4px 0}@media(max-width:760px){.stat-row{grid-template-columns:1fr}}.stat-row.four{grid-template-columns:repeat(4,minmax(0,1fr))}@media(max-width:1000px){.stat-row.four{grid-template-columns:repeat(2,minmax(0,1fr))}}.heat{display:grid;grid-template-columns:repeat(var(--n),12px);gap:3px}.heat a{width:12px;height:24px;border-radius:3px;background:var(--muted-fill);display:block}.heat a[style*=--a]{background:color-mix(in srgb,var(--blue) calc(var(--a) * 100%),transparent)}.heat a.we:not([style*=--a]){opacity:.45}.heat a:hover{outline:2px solid var(--text);outline-offset:1px}.stat{white-space:nowrap;font-size:clamp(20px,2.1vw,28px)}.table td.num,.app-row .num{white-space:nowrap}.launch-list{list-style:none;margin:0;padding:0 18px 8px}.launch-list li{display:flex;gap:12px;align-items:flex-start;padding:12px 0;border-top:1px solid var(--border-faint)}.launch-list li:first-child{border-top:0}.launch-list .pill{min-width:26px;justify-content:center;margin-top:1px}.danger-zone{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:20px;padding-top:18px;border-top:1px solid var(--border)}.danger-zone .sub{margin-top:2px}.place-search{position:relative}.place-list{position:absolute;z-index:1000;top:70px;left:0;right:0;margin:0;padding:6px;list-style:none;background:var(--card);border:1px solid var(--border-strong);border-radius:12px;box-shadow:0 12px 32px #0e172629;max-height:320px;overflow-y:auto}.place-list li{display:flex;flex-direction:column;gap:2px;padding:9px 12px;border-radius:8px;cursor:pointer}.place-list li span{font-size:12.5px;color:var(--text-muted)}.place-list li:hover,.place-list li.on{background:var(--accent-bg)}.place-map{height:320px;border-radius:12px;border:1px solid var(--border);overflow:hidden;z-index:0}.place-pin span{display:block;width:26px;height:26px;border-radius:50% 50% 50% 0;background:var(--blue);transform:rotate(-45deg);border:3px solid #fff;box-shadow:0 2px 6px #00000059}
