@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(/_next/static/media/nunito-cyrillic-ext-800-normal.22776fb9.woff2) format("woff2"),url(/_next/static/media/nunito-cyrillic-ext-800-normal.1063dacf.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:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(/_next/static/media/nunito-cyrillic-800-normal.1e4a5799.woff2) format("woff2"),url(/_next/static/media/nunito-cyrillic-800-normal.69ad2b45.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(/_next/static/media/nunito-vietnamese-800-normal.044752ee.woff2) format("woff2"),url(/_next/static/media/nunito-vietnamese-800-normal.7769e616.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:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(/_next/static/media/nunito-latin-ext-800-normal.8394e5b2.woff2) format("woff2"),url(/_next/static/media/nunito-latin-ext-800-normal.e3b2c950.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:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(/_next/static/media/nunito-latin-800-normal.cac5ced1.woff2) format("woff2"),url(/_next/static/media/nunito-latin-800-normal.710bec48.woff) format("woff");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:Nunito;font-style:normal;font-display:swap;font-weight:900;src:url(/_next/static/media/nunito-cyrillic-ext-900-normal.35e48fc0.woff2) format("woff2"),url(/_next/static/media/nunito-cyrillic-ext-900-normal.94666a34.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:Nunito;font-style:normal;font-display:swap;font-weight:900;src:url(/_next/static/media/nunito-cyrillic-900-normal.dc038702.woff2) format("woff2"),url(/_next/static/media/nunito-cyrillic-900-normal.b5c429ec.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:900;src:url(/_next/static/media/nunito-vietnamese-900-normal.bd1f8b33.woff2) format("woff2"),url(/_next/static/media/nunito-vietnamese-900-normal.26137b77.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:Nunito;font-style:normal;font-display:swap;font-weight:900;src:url(/_next/static/media/nunito-latin-ext-900-normal.3adde0b0.woff2) format("woff2"),url(/_next/static/media/nunito-latin-ext-900-normal.58c0cb4a.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:Nunito;font-style:normal;font-display:swap;font-weight:900;src:url(/_next/static/media/nunito-latin-900-normal.8b5d13b8.woff2) format("woff2"),url(/_next/static/media/nunito-latin-900-normal.85ea3320.woff) format("woff");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:Nunito Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/nunito-sans-cyrillic-ext-400-normal.a866c292.woff2) format("woff2"),url(/_next/static/media/nunito-sans-cyrillic-ext-400-normal.295427ef.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:Nunito Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/nunito-sans-cyrillic-400-normal.cc436e25.woff2) format("woff2"),url(/_next/static/media/nunito-sans-cyrillic-400-normal.6daaf72a.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Nunito Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/nunito-sans-vietnamese-400-normal.1c1c28c3.woff2) format("woff2"),url(/_next/static/media/nunito-sans-vietnamese-400-normal.7caa7525.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:Nunito Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/nunito-sans-latin-ext-400-normal.c89a2fa5.woff2) format("woff2"),url(/_next/static/media/nunito-sans-latin-ext-400-normal.05464237.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:Nunito Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/nunito-sans-latin-400-normal.7d8c7b02.woff2) format("woff2"),url(/_next/static/media/nunito-sans-latin-400-normal.036bf50b.woff) format("woff");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:Nunito Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/_next/static/media/nunito-sans-cyrillic-ext-700-normal.daea378e.woff2) format("woff2"),url(/_next/static/media/nunito-sans-cyrillic-ext-700-normal.7b6b2338.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:Nunito Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/_next/static/media/nunito-sans-cyrillic-700-normal.21084e9a.woff2) format("woff2"),url(/_next/static/media/nunito-sans-cyrillic-700-normal.a68c462e.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Nunito Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/_next/static/media/nunito-sans-vietnamese-700-normal.559d1cf1.woff2) format("woff2"),url(/_next/static/media/nunito-sans-vietnamese-700-normal.60ff99df.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:Nunito Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/_next/static/media/nunito-sans-latin-ext-700-normal.306dc6a9.woff2) format("woff2"),url(/_next/static/media/nunito-sans-latin-ext-700-normal.18b317c0.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:Nunito Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/_next/static/media/nunito-sans-latin-700-normal.fab59477.woff2) format("woff2"),url(/_next/static/media/nunito-sans-latin-700-normal.5a0b6189.woff) format("woff");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}:root{box-sizing:border-box;padding-top:env(safe-area-inset-top,0);padding-bottom:env(safe-area-inset-bottom,0);--brand-green:#6CB33F;--brand-green-dark:#3F8F22;--brand-navy:#1C2E5A;--brand-blue:#1F5FA6;--bg:#F7FAF6;--surface:#FFFFFF;--ink:#1C2E5A;--muted:#5D6A85;--line:#DDE5DA;--line-soft:#ECF1EA;--focus:#1F5FA6;--early:#3F8F22;--early-bg:#E6F3DC;--late:#1F5FA6;--late-bg:#E0EBF7;--app:#22346B;--app-bg:#E4E8F4;--req:#0E7C7B;--req-bg:#DCF1EF;--dmp:#6C4AB6;--dmp-bg:#EEE8F8;--act3:#C2571A;--act3-bg:#FCE9DC;--spe:#5D6A85;--spe-bg:#EEF1F4;--abs:#8C96A8;--abs-bg:#F2F4F6;--warn:#B4441C;--warn-bg:#FCE7DD;--ok:#3F8F22;--shadow:0 2px 10px rgba(28,46,90,.06);color-scheme:light}*,:after,:before{box-sizing:inherit}html{scroll-padding-top:env(safe-area-inset-top,0)}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 Nunito Sans,system-ui,-apple-system,Segoe UI,sans-serif;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}h1,h2,h3{font-family:Nunito,Nunito Sans,system-ui,sans-serif;margin:0;letter-spacing:-.005em;font-weight:800}button,input,select{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.top{position:-webkit-sticky;position:sticky;top:env(safe-area-inset-top,0);z-index:20;background:var(--surface);border-bottom:1px solid var(--line);box-shadow:inset 0 3px 0 var(--brand-green)}.top-in{max-width:1400px;margin:0 auto;padding:10px 20px;display:flex;align-items:center;gap:24px;flex-wrap:wrap}.brand{display:flex;align-items:baseline;gap:10px}.brand h1{font-size:20px;font-weight:700}.brand{align-items:center}.brand .word{font-family:Nunito,sans-serif;font-weight:900;font-size:15px;letter-spacing:.02em;padding:3px 10px;border-radius:999px;background:var(--brand-green);color:#fff}.brand h1{color:var(--brand-navy)}nav.tabs{display:flex;gap:2px;flex-wrap:wrap}nav.tabs button{border:0;background:none;padding:8px 14px;border-radius:999px;cursor:pointer;color:var(--muted);font-weight:700}nav.tabs button[aria-current=page]{color:var(--brand-green-dark);background:var(--early-bg)}nav.tabs button:hover{color:var(--ink)}.sync{margin-left:auto;font-size:13px;color:var(--muted);display:flex;align-items:center;gap:6px}.sync:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--brand-green)}.sync.local:before{background:var(--early)}.sync.busy:before{background:var(--app)}main{max-width:1400px;margin:0 auto;padding:20px}.btn{border:1.5px solid var(--line);background:var(--surface);padding:7px 16px;border-radius:999px;color:var(--brand-navy);cursor:pointer;font-weight:700;font-size:14px;white-space:nowrap}.btn.primary,.btn:hover{border-color:var(--brand-green)}.btn.primary{background:var(--brand-green);color:#fff}.btn.primary:hover{background:var(--brand-green-dark);border-color:var(--brand-green-dark)}.btn.ghost{border-color:transparent;background:none}.btn.icon{padding:7px 10px}.btn:disabled{opacity:.45;cursor:default}.toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:16px}.toolbar .title{display:flex;flex-direction:column;margin:0 8px;min-width:230px}.toolbar .title h2{font-size:24px;font-weight:700;line-height:1.15}.toolbar .title span{font-size:13px;color:var(--muted)}.toolbar .spacer{flex:1 1}.banner{display:flex;gap:12px;align-items:center;padding:10px 14px;border-radius:10px;margin-bottom:16px;font-size:14px;flex-wrap:wrap}.banner.warn{background:var(--warn-bg);color:var(--warn)}.banner.info{background:var(--app-bg);color:var(--app)}.banner b{font-weight:700}.banner .btn{margin-left:auto}.empty{background:var(--surface);border:1.5px dashed var(--brand-green);border-radius:18px;padding:48px 24px;text-align:center}.empty h3{font-size:20px;margin-bottom:6px}.empty p{color:var(--muted);max-width:52ch;margin:0 auto 18px}.card{background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow)}.strip{margin-bottom:20px;overflow-x:auto}.strip table{border-collapse:collapse;width:100%;min-width:640px}.strip td,.strip th{padding:5px 8px;text-align:center;font-size:13px;border-bottom:1px solid var(--line-soft)}.strip th{color:var(--muted);font-weight:700;font-size:12px}.strip td:first-child,.strip th:first-child{text-align:left;padding-left:16px;font-weight:700;white-space:nowrap}.strip tr:last-child td{border-bottom:0}.chip{display:inline-block;min-width:44px;padding:2px 6px;border-radius:6px;font-weight:700;font-size:12px}.chip.e{background:var(--early-bg);color:var(--early)}.chip.l{background:var(--late-bg);color:var(--late)}.chip.n{background:var(--abs-bg);color:var(--abs);font-weight:400}.chip.s{background:var(--spe-bg);color:var(--spe);font-weight:400}.chip sup{font-size:9px;margin-left:2px}.target{font-weight:700;white-space:nowrap}.target.ok{color:var(--ok)}.target.ko{color:var(--warn)}.days{display:grid;grid-template-columns:repeat(auto-fill,minmax(640px,1fr));grid-gap:18px;gap:18px}@media (max-width:700px){.top{position:static}.toolbar .title{min-width:0}.days{grid-template-columns:1fr}}.day{overflow:hidden}.day-head{display:flex;align-items:flex-start;gap:16px;padding:14px 16px 10px;flex-wrap:wrap;border-bottom:1px solid var(--line-soft);background:linear-gradient(var(--surface),var(--surface))}.day-head h3{color:var(--brand-navy);font-size:18px;font-weight:700;text-transform:capitalize}.day-head .sub{font-size:13px;color:var(--muted)}.meters{margin-left:auto;display:grid;grid-gap:4px;gap:4px;min-width:250px}.meter{display:grid;grid-template-columns:70px 22px 1fr 22px;align-items:center;grid-gap:6px;gap:6px;font-size:12px}.meter .lbl{color:var(--muted)}.meter .n{font-weight:700;text-align:center}.meter .bar{position:relative;height:10px;display:grid;grid-template-columns:1fr 1fr;grid-gap:2px;gap:2px}.meter .bar span{display:block;height:100%;background:var(--line-soft);border-radius:3px;position:relative;overflow:hidden}.meter .bar span i{position:absolute;top:0;bottom:0;border-radius:3px}.meter .bar span:first-child i{right:0}.meter .bar span:last-child i{left:0}.meter.app i{background:var(--app)}.meter.req i{background:var(--req)}.meter.bad .n{color:var(--warn)}.tw{overflow-x:auto}table.grid{border-collapse:collapse;width:100%;min-width:600px;font-size:13px;table-layout:fixed}table.grid td.who{overflow:hidden;text-overflow:ellipsis}table.grid th{font-size:11.5px;font-weight:700;color:var(--muted);padding:6px 4px;border-bottom:1px solid var(--line);text-align:center;line-height:1.25;vertical-align:bottom}table.grid th small{display:block;font-weight:400}table.grid td{padding:4px;border-bottom:1px solid var(--line-soft);text-align:center;height:32px}table.grid td.who{font-weight:700;white-space:nowrap}table.grid td.who,table.grid th:first-child{text-align:left;padding-left:16px}table.grid tr.row{cursor:pointer}table.grid tr.row:hover td{background:#F2F8EE}table.grid tr.off td{color:var(--abs)}table.grid tr.off td.who{font-weight:400}table.grid tfoot td{border-bottom:0;color:var(--muted)}.hr,table.grid tfoot td{font-weight:700;font-size:12px}.hr{display:inline-block;padding:2px 8px;border-radius:6px;white-space:nowrap}.hr.e{background:var(--early-bg);color:var(--early)}.hr.l{background:var(--late-bg);color:var(--late)}.hr.p{background:var(--spe-bg);color:var(--spe)}.hr.n{color:var(--abs);font-weight:400;font-style:italic;padding-left:0}.hr .lock{font-size:10px;margin-left:3px;opacity:.7}.mk{display:inline-block;width:22px;height:18px;border-radius:5px;line-height:18px;font-weight:700;font-size:11px}.mk.app{background:var(--app-bg);color:var(--app)}.mk.req{background:var(--req-bg);color:var(--req)}.mk.dmp{background:var(--dmp-bg);color:var(--dmp)}.mk.act3,.mk.dmp{width:auto;padding:0 8px}.mk.act3{background:var(--act3-bg);color:var(--act3)}.spe{font-size:12px;color:var(--spe);text-align:left!important}.dayoff{padding:28px 16px;text-align:center}.dayoff,.legend{color:var(--muted)}.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;margin:14px 0 0}.legend span{display:inline-flex;gap:6px;align-items:center}.pop{position:fixed;z-index:50;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 40px rgba(0,0,0,.18);padding:6px;min-width:260px}.pop h4{margin:6px 10px;font-size:13px;color:var(--muted);font-weight:700}.pop button{display:block;width:100%;text-align:left;border:0;background:none;padding:8px 10px;border-radius:8px;cursor:pointer;font-size:14px}.pop button:hover{background:var(--bg)}.pop button[aria-pressed=true]{font-weight:700}.pop button[aria-pressed=true]:after{content:" ✓";color:var(--ok)}.pop hr{border:0;border-top:1px solid var(--line-soft);margin:4px 0}.cal-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;grid-gap:18px;gap:18px;align-items:start}@media (max-width:1100px){.cal-layout{grid-template-columns:1fr}}.palette{padding:12px 14px;margin-bottom:14px;display:flex;flex-wrap:wrap;gap:14px;align-items:flex-start}.palette .grp{display:flex;flex-direction:column;gap:6px}.palette .grp>span{font-size:12px;color:var(--muted);font-weight:700}.palette .opts{display:flex;flex-wrap:wrap;gap:4px}.pcode{border:1.5px solid var(--line);background:var(--surface);border-radius:999px;padding:4px 9px;font-size:13px;cursor:pointer}.pcode[aria-pressed=true]{background:var(--brand-navy);color:#fff;border-color:var(--brand-navy)}.palette input[type=text]{border:1px solid var(--line);border-radius:7px;padding:4px 8px;width:160px;background:var(--surface)}.calwrap{overflow:auto;max-height:calc(100vh - 260px);-moz-user-select:none;user-select:none;-webkit-user-select:none}table.cal{border-collapse:separate;border-spacing:0;font-size:12px}table.cal td,table.cal th{border-bottom:1px solid var(--line-soft);border-right:1px solid var(--line-soft);text-align:center;padding:0}table.cal thead th{position:-webkit-sticky;position:sticky;top:0;background:var(--surface);z-index:2;padding:4px 0;font-weight:700;color:var(--muted);min-width:44px}table.cal thead th .d{display:block;font-size:14px;color:var(--ink)}table.cal .nm{position:-webkit-sticky;position:sticky;left:0;background:var(--surface);z-index:1;text-align:left;padding:0 10px;font-weight:700;white-space:nowrap;min-width:110px}table.cal thead th.nm{z-index:3}table.cal td.c{height:30px;cursor:pointer;position:relative}table.cal td.c:hover{outline:2px solid var(--focus);outline-offset:-2px}table.cal td.wk,table.cal th.wk{border-left:2px solid var(--line)}table.cal td.hol,table.cal th.hol{background:#DCE0E6;cursor:help}table.cal th.hol .d{color:var(--muted)}table.cal td.halfn,table.cal th.halfn{background:#ECEEF2}table.cal td.past{cursor:not-allowed}table.cal td.past .cv{opacity:.55}table.cal td.past:hover{outline:none}table.cal th.past{color:#A3ABBA}table.cal td.today,table.cal th.today{background:#E3F2D6}table.cal th.today,table.cal th.today .d{color:var(--brand-green-dark)}.cv{display:block;font-size:11px;line-height:1.1;padding:2px}.cv.abs{background:var(--abs-bg);color:var(--ink);font-weight:700}.cv.abs,.cv.spe{border-radius:4px;margin:2px}.cv.spe{background:var(--spe-bg);color:var(--spe)}.cv.force{border:1px dashed var(--ink);border-radius:4px;margin:2px;font-weight:700}.cv.rule{color:var(--muted);font-style:italic}.cv.e{color:var(--early)}.cv.e,.cv.l{font-weight:700}.cv.l{color:var(--late)}.cv.p{color:var(--muted)}.cv sup{font-size:8px;color:var(--dmp)}table.cal tfoot td{padding:3px 0}table.cal tfoot td,table.cal tfoot td.nm{font-weight:700;color:var(--muted)}.side{display:grid;grid-gap:14px;gap:14px}.side .card{padding:14px 16px}.side h3{font-size:16px;margin-bottom:10px}.form{display:grid;grid-gap:8px;gap:8px}.form label{display:grid;grid-gap:3px;gap:3px;font-size:13px;color:var(--muted)}.form input,.form select,.set input:not([type=checkbox]),.set select{border:1px solid var(--line);border-radius:7px;padding:6px 8px;background:var(--surface)}.form .row2{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px}.list{display:grid;grid-gap:4px;gap:4px;margin-top:10px;font-size:13px}.list div{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:4px 0;border-bottom:1px solid var(--line-soft)}.hint{font-size:12.5px;color:var(--muted);margin:6px 0 0}.set{padding:16px 18px;margin-bottom:18px}.set h3{font-size:18px;margin-bottom:4px}.set>p{color:var(--muted);margin:0 0 12px;font-size:14px;max-width:80ch}.set table{border-collapse:collapse;width:100%;font-size:14px}.set th{font-size:12px;color:var(--muted);text-align:left;padding:6px;border-bottom:1px solid var(--line)}.set td{padding:6px;border-bottom:1px solid var(--line-soft);vertical-align:middle}.dows{display:inline-flex;gap:2px}.dows label{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:5px;border:1px solid var(--line);font-size:11px;cursor:pointer;font-weight:700;color:var(--muted)}.dows input{position:absolute;opacity:0;pointer-events:none}.dows label:has(input:checked){background:var(--brand-green);color:#fff;border-color:var(--brand-green)}.dows label:has(input:focus-visible){outline:2px solid var(--focus)}.params{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));grid-gap:12px;gap:12px}.eq table{border-collapse:collapse;width:100%;font-size:14px}.eq td,.eq th{padding:7px 10px;border-bottom:1px solid var(--line-soft);text-align:center}.eq th{font-size:12px;color:var(--muted)}.eq td:first-child,.eq th:first-child{text-align:left}.barx{display:inline-block;height:8px;border-radius:3px;vertical-align:middle;margin-right:6px}.toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--brand-navy);border-radius:999px!important;color:var(--surface);padding:10px 16px;border-radius:10px;font-size:14px;z-index:60;box-shadow:0 8px 30px rgba(0,0,0,.2)}.busy-ov{position:fixed;inset:0;background:rgba(0,0,0,.25);display:grid;place-items:center;z-index:70}.busy-ov div{background:var(--surface);padding:18px 22px;border-radius:12px;font-weight:700}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}@media (prefers-reduced-motion:no-preference){.meter .bar i{transition:width .25s ease}}@media print{.banner,.legend,.no-print,.toolbar,.top{display:none!important}body{background:#fff;color:#000;font-size:11px}main{padding:0;max-width:none}.days{display:block}.day{page-break-inside:avoid;break-inside:avoid;margin-bottom:10px;box-shadow:none}.card{border-color:#999}.print-title{display:block!important;font-size:16px;margin-bottom:8px}}.print-title{display:none}.chip sup.tel{color:var(--app);font-weight:700}.modal-ov{position:fixed;inset:0;background:rgba(28,46,90,.35);display:grid;place-items:center;z-index:80;padding:16px}.modal{background:var(--surface);border-radius:18px;padding:20px 22px;max-width:460px;width:100%;box-shadow:0 20px 60px rgba(0,0,0,.25)}.modal h3{font-size:19px;margin-bottom:8px;color:var(--brand-navy)}.modal-body p{margin:0 0 8px;color:var(--muted);font-size:14.5px}.modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:16px;flex-wrap:wrap}.strip th.is-today{color:var(--brand-green-dark);background:#E3F2D6}.strip td.is-today{background:#F0F8EA}.strip th.is-past{color:#A3ABBA}.day.today{border:2px solid var(--brand-green);box-shadow:0 4px 18px rgba(108,179,63,.18)}.day.today .day-head{background:#F0F8EA}.day.past{opacity:.78}.badge-today{padding:1px 10px;background:var(--brand-green);color:#fff}.badge-past,.badge-today{display:inline-block;margin-left:8px;border-radius:999px;font-size:12px;vertical-align:middle;font-family:Nunito Sans,sans-serif}.badge-past{padding:1px 8px;background:var(--abs-bg);color:var(--muted);font-weight:400}table.grid tr.ro td{cursor:default}.btn:disabled:hover{border-color:var(--line)}.form textarea{background:var(--surface)}.chk{display:flex!important;grid-template-columns:none!important;gap:8px;align-items:center;color:var(--ink)!important;font-size:14px!important}.cellpop{width:340px;padding:8px 10px 10px}.cellpop .now{margin:0 10px 8px;font-size:13px;color:var(--muted)}.cellpop .grp{display:flex;flex-direction:column;gap:5px;margin:0 6px 10px}.cellpop .grp>span{font-size:11.5px;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.04em}.cellpop .opts{display:flex;flex-wrap:wrap;gap:4px}.cellpop .pcode{width:auto;display:inline-block;padding:4px 10px;font-size:13px;border:1.5px solid var(--line);border-radius:999px}.cellpop .pcode:hover{border-color:var(--brand-green)}.cellpop .pcode.pe{border-color:#BFE0A8;background:var(--early-bg);color:var(--early)}.cellpop .pcode.pl{border-color:#BCD3EE;background:var(--late-bg);color:var(--late)}.cellpop .pcode[aria-pressed=true]{background:var(--brand-navy);color:#fff;border-color:var(--brand-navy)}.cellpop .pcode[aria-pressed=true]:after{content:""}.cellpop input{border:1px solid var(--line);border-radius:8px;padding:5px 8px;font-size:13px}.cellpop .clear{color:var(--brand-blue)}.cellpop .clear:disabled{color:var(--abs);cursor:default}.cv.force.e,.cv.force.l{border:1.5px dashed;font-weight:700}table.cal td.c:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}.disp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(560px,1fr));grid-gap:18px;gap:18px}@media (max-width:620px){.disp-grid{grid-template-columns:1fr}}table.disp-t{border-collapse:collapse;width:100%;font-size:14px;table-layout:fixed}table.disp-t thead th{font-size:12px;color:var(--muted);font-weight:700;text-align:left;padding:8px 12px;border-bottom:1px solid var(--line)}table.disp-t thead th:first-child{width:118px}table.disp-t thead th small{display:block;font-weight:400}table.disp-t tbody th{text-align:left;padding:10px 12px;font-weight:700;color:var(--brand-navy);vertical-align:top;border-bottom:1px solid var(--line-soft)}table.disp-t tbody th small{display:block;font-weight:400;color:var(--muted);font-size:12px}table.disp-t td{padding:8px 10px;vertical-align:top;border-bottom:1px solid var(--line-soft);border-left:1px solid var(--line-soft)}table.disp-t td.v{background:#FFF8F3;vertical-align:middle}table.disp-t tr.now td:not(.v),table.disp-t tr.now th{background:#F0F8EA}.now-tag{margin-top:4px;padding:0 8px;background:var(--brand-green);color:#fff;font-size:11px}.nm-chip,.now-tag{display:inline-block;border-radius:999px;font-weight:700}.nm-chip{margin:2px 4px 2px 0;padding:3px 10px;font-size:13px}.nm-chip.req{background:var(--req-bg);color:var(--req)}.nm-chip.app{background:var(--app-bg);color:var(--app)}.nm-chip.v{background:var(--act3-bg);color:var(--act3)}table.disp-t .none{color:var(--abs);font-style:italic;font-size:13px}table.disp-t td.dm{background:#F8F5FD;vertical-align:middle}.nm-chip.dmp{background:var(--dmp-bg);color:var(--dmp)}table.disp-t thead th:nth-child(2){width:48%}.btn.danger{color:var(--warn);border-color:#F2C6B4}.btn.danger:hover{border-color:var(--warn)}.brand .logo{height:30px;width:auto;display:block}.brand .sep{width:1px;height:30px;background:var(--line)}.brand .ttl{display:flex;flex-direction:column;line-height:1.1}.brand .team{font-size:11px;font-weight:800;letter-spacing:.14em;color:var(--brand-green-dark)}@media (max-width:700px){.brand .logo{height:24px}}.tt{display:inline-flex;align-items:center;gap:3px;padding:1px 7px 1px 5px;border-radius:999px;background:#FFF3D6;color:#9A6400;border:1px solid #f1d58e;font-size:10.5px;font-weight:800;vertical-align:middle;line-height:1.5}.tt b{font-weight:700}.tt.sm{padding:1px 4px;margin-left:3px}.tt-corner{position:absolute;top:1px;right:1px;color:#B07A00;line-height:0}.tt-corner.tM{-webkit-clip-path:none;clip-path:none}.cellpop .pcode.ttb svg,.nm-chip svg{vertical-align:-1px;color:#B07A00}.nm-chip{white-space:nowrap}table.mini{border-collapse:collapse;font-size:12.5px}table.mini td,table.mini th{padding:4px 8px;border-bottom:1px solid var(--line-soft);text-align:center;white-space:nowrap}table.mini td:first-child,table.mini th:first-child{text-align:left}.top-in .sync{margin-left:auto}.usermenu{display:flex;align-items:center;gap:10px;font-size:13px}.usermenu .who{display:flex;flex-direction:column;line-height:1.2;text-align:right}.usermenu .who b{color:var(--brand-navy)}.usermenu .who span{color:var(--muted);font-size:12px}.usermenu a,.usermenu button.link{color:var(--brand-navy);font-weight:700;text-decoration:none;border:0;background:none;padding:6px 10px;border-radius:999px;cursor:pointer;font-size:13px}.usermenu a:hover,.usermenu button.link:hover{background:var(--early-bg)}.role-badge{display:inline-block;padding:1px 8px;border-radius:999px;background:var(--app-bg);color:var(--app);font-size:11px;font-weight:800;letter-spacing:.02em}.role-badge.ADMIN{background:var(--dmp-bg);color:var(--dmp)}.role-badge.EDITOR{background:var(--early-bg);color:var(--early)}nav.tabs a{border:0;background:none;padding:8px 14px;border-radius:999px;color:var(--muted);font-weight:700;text-decoration:none}nav.tabs a[aria-current=page]{color:var(--brand-green-dark);background:var(--early-bg)}nav.tabs a:hover{color:var(--ink)}.auth{min-height:100vh;display:grid;place-items:center;padding:24px 16px;background:var(--bg)}.auth-card{width:100%;max-width:420px;padding:28px 28px 24px;box-shadow:inset 0 3px 0 var(--brand-green),var(--shadow);overflow:hidden}.auth-card.wide{max-width:520px}.auth-brand{display:flex;align-items:center;gap:10px;margin-bottom:22px}.auth-card h2{font-size:20px;color:var(--brand-navy);margin-bottom:4px}.auth-card .lead{color:var(--muted);font-size:14px;margin:0 0 16px}.auth-card .form input{padding:9px 10px;font-size:15px}.auth-card .btn{width:100%;padding:10px 16px;font-size:15px}.auth-card .foot{margin-top:18px;padding-top:14px;border-top:1px solid var(--line-soft);font-size:13px;text-align:center}.auth-card .foot a{color:var(--brand-blue)}.alert{border-radius:10px;padding:10px 12px;font-size:14px;margin-bottom:12px}.alert.error{background:var(--warn-bg);color:var(--warn)}.alert.info{background:var(--app-bg);color:var(--app)}.alert.ok{background:var(--early-bg);color:var(--early)}.or{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:12px;margin:14px 0}.or:after,.or:before{content:"";flex:1 1;border-top:1px solid var(--line)}.qr{text-align:center;background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:14px;margin-bottom:12px}.qr img{background:#fff;border-radius:8px;padding:6px}.qr code{display:inline-block;margin-top:6px;word-break:break-all;font-size:13px}.code-input{text-align:center;font-size:22px!important;letter-spacing:.3em}.checklist{list-style:none;padding:0;margin:4px 0 0;font-size:12.5px;color:var(--muted);display:grid;grid-gap:2px;gap:2px}.checklist li:before{content:"○ "}.checklist li.ok{color:var(--ok)}.checklist li.ok:before{content:"✓ "}.admin h2{font-size:24px;margin-bottom:4px}.admin .intro{color:var(--muted);margin:0 0 16px;max-width:80ch}.admin .actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.admin .form.inline{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));align-items:end}.status{display:inline-block;padding:1px 8px;border-radius:999px;font-size:12px;font-weight:700;white-space:nowrap}.status.on{background:var(--early-bg);color:var(--early)}.status.off{background:var(--abs-bg);color:var(--muted)}.status.wait{background:#fff3d6;color:#9a6400}.linkbox{display:flex;gap:8px;align-items:center;flex-wrap:wrap;background:var(--early-bg);border-radius:10px;padding:10px 12px;margin:10px 0}.linkbox input{flex:1 1;min-width:240px;font-family:ui-monospace,Consolas,monospace;font-size:12.5px;border:1px solid var(--line);border-radius:7px;padding:6px 8px;background:var(--surface)}.journal td{vertical-align:top;font-size:13.5px}.journal details summary{cursor:pointer;color:var(--brand-blue);font-size:12.5px}.journal pre{white-space:pre-wrap;font-size:12px;background:var(--bg);border-radius:8px;padding:8px;max-height:320px;overflow:auto;margin:6px 0 0}.pager{display:flex;gap:8px;align-items:center;justify-content:flex-end;margin-top:12px;font-size:13px;color:var(--muted)}.summary-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));grid-gap:10px;gap:10px;margin:10px 0 16px}.summary-grid div{background:var(--bg);border:1px solid var(--line-soft);border-radius:10px;padding:10px 12px;font-size:13.5px}.summary-grid b{display:block;color:var(--brand-navy);margin-bottom:2px}