@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-cyrillic-ext-wght-normal-D4X5GqEv.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-cyrillic-wght-normal-CY6AOgYE.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-vietnamese-wght-normal-U01xdrZh.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-latin-ext-wght-normal-CXYtwYOx.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-latin-wght-normal-BzFMHfZw.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--font:"Nunito Variable", "Nunito", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:20px;--s6:24px;--gutter:16px;--h-icon:44px;--h-ctl:48px;--h-tile:52px;--press:4px;--r-sm:10px;--r-md:14px;--r-lg:20px;--card-pad:16px;--bg:#f5f6f4;--surface:#fff;--surface-2:#eef0ed;--line:#e1e4df;--line-strong:#cfd4cc;--text:#1f2a24;--muted:#6f7b73;--primary:#14b8a6;--primary-shade:#0e8f81;--primary-soft:#d6f5f1;--primary-ink:#0b7a6e;--on-primary:#fff;--danger:#ef4444;--today:#14b8a6;--mark:#f59e0b;--scrim:#00000073;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#121212;--surface:#1c1c1e;--surface-2:#2a2a2d;--line:#2e2e31;--line-strong:#3f3f43;--text:#f2f2f3;--muted:#9b9ba1;--primary:#2dd4bf;--primary-shade:#159c8c;--primary-soft:#1e3532;--primary-ink:#5eead4;--on-primary:#062420;--danger:#f87171;--today:#2dd4bf;--scrim:#0009;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#121212;--surface:#1c1c1e;--surface-2:#2a2a2d;--line:#2e2e31;--line-strong:#3f3f43;--text:#f2f2f3;--muted:#9b9ba1;--primary:#2dd4bf;--primary-shade:#159c8c;--primary-soft:#1e3532;--primary-ink:#5eead4;--on-primary:#062420;--danger:#f87171;--today:#2dd4bf;--scrim:#0009;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;margin:0;font-size:16px;font-weight:600}button,input,select{font:inherit;color:inherit;margin:0}button{cursor:pointer;-webkit-user-select:none;user-select:none}svg{flex-shrink:0;display:block}.muted{color:var(--muted)}.small{font-size:.8125rem}.num,.tnum{font-variant-numeric:tabular-nums}.spacer{flex:1}.grow{flex:1;min-width:0}code{background:var(--surface-2);border-radius:6px;padding:1px 6px;font-size:.85em}.ellipsis{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.splash{min-height:100dvh;color:var(--muted);place-items:center;display:grid}.btn,.icon-btn,.tile,.chip{--fill:var(--surface);--shade:var(--line-strong);--ink:var(--text);justify-content:center;align-items:center;gap:var(--s2);border:2px solid var(--shade);background:var(--fill);color:var(--ink);box-shadow:0 var(--press) 0 var(--shade);transition:transform 60ms,box-shadow 60ms;display:inline-flex;position:relative}.btn:active:not(:disabled),.icon-btn:active:not(:disabled),.tile:active:not(:disabled),.chip:active:not(:disabled){transform:translateY(var(--press));box-shadow:0 0 0 var(--shade)}.btn{height:var(--h-ctl);padding:0 var(--s5);border-radius:var(--r-md);letter-spacing:.01em;font-size:.95rem;font-weight:800}.btn.block{width:100%;display:flex}.btn.primary{--fill:var(--primary);--shade:var(--primary-shade);--ink:var(--on-primary);text-transform:uppercase}.btn.danger{--ink:var(--danger)}.btn.ghost{box-shadow:none;color:var(--primary-ink);background:0 0;border-color:#0000}.btn.ghost:active{opacity:.7;transform:none}.btn:disabled{opacity:.55}.icon-btn{width:var(--h-icon);height:var(--h-icon);border-radius:var(--r-sm);padding:0}.icon-btn.lg{width:var(--h-ctl);height:var(--h-ctl);border-radius:var(--r-md)}.icon-btn.flat{box-shadow:none;background:0 0;border-color:#0000}.icon-btn.flat:active{background:var(--surface-2);transform:none}.icon-btn.danger{--ink:var(--danger)}.press-room{padding-bottom:var(--press)}.field{gap:var(--s1);flex-direction:column;flex:1;min-width:0;display:flex}.field>span{color:var(--muted);font-size:.8125rem;font-weight:800}.field input,.field select{appearance:none;height:var(--h-ctl);border:2px solid var(--line);background-color:var(--surface-2);border-radius:var(--r-md);width:100%;padding:0 var(--s3);text-align:left;font-size:16px;font-weight:700;line-height:normal}.field select{text-overflow:ellipsis;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:40px}.field input:focus,.field select:focus{border-color:var(--primary);background-color:var(--surface);outline:none}.field input::-webkit-date-and-time-value{text-align:left}.field.narrow{flex:0 0 88px}.form{gap:var(--s3);flex-direction:column;display:flex}.row{gap:var(--s3);align-items:flex-end;display:flex}.row-2{gap:var(--s3);grid-template-columns:1fr 1fr;display:grid}.error,.info{padding:var(--s3);border-radius:var(--r-sm);margin:0;font-size:.9rem}.error{background:color-mix(in srgb, var(--danger) 12%, transparent);color:var(--danger)}.info{background:var(--primary-soft);color:var(--primary-shade)}.auth{min-height:100dvh;padding:var(--gutter);place-items:center;display:grid}.auth-card{gap:var(--s3);flex-direction:column;width:100%;max-width:400px;display:flex}.auth-logo{border-radius:var(--r-lg);width:72px;height:72px;box-shadow:0 var(--press) 0 var(--primary-shade);align-self:center}.auth-head{margin:var(--s2) 0 var(--s3);text-align:center}.auth-head h1{margin:0;font-size:2rem;font-weight:900;line-height:1.1}.auth-head .lead{margin:var(--s1) 0 0;color:var(--muted)}.center{text-align:center}.steps{padding-left:var(--s5);margin:0;line-height:1.6}.app{flex-direction:column;max-width:560px;min-height:100dvh;margin:0 auto;display:flex}.content{gap:var(--s4);padding:0 var(--gutter) var(--s5);flex-direction:column;flex:1;display:flex}.topbar{z-index:3;align-items:center;gap:var(--s2);padding:calc(var(--s4) + env(safe-area-inset-top)) var(--gutter) calc(var(--s4) + var(--press));background:var(--bg);display:flex;position:sticky;top:0}.title{min-width:0;height:var(--h-icon);text-transform:capitalize;flex-direction:column;flex:1;justify-content:center;gap:2px;margin:0;font-size:clamp(1.25rem,6.4vw,1.625rem);font-weight:900;line-height:1;display:flex}.title small{letter-spacing:.06em;color:var(--muted);font-size:.75rem;font-weight:900}.nav{align-items:center;gap:var(--s2);display:flex}.nav .btn{height:var(--h-icon);border-radius:var(--r-sm);width:60px;padding:0}.card{background:var(--surface);border:2px solid var(--line);border-radius:var(--r-lg);padding:var(--card-pad)}.card h2{margin:0;font-size:1.125rem;font-weight:900;line-height:1.2}.stack{gap:var(--s4);flex-direction:column;display:flex}.card h2+.hint{margin-top:var(--s1)}.next{align-items:center;gap:var(--s4);grid-template-columns:56px 1fr;display:grid}.next .label{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:.75rem;font-weight:900}.next .when{margin:2px 0;font-size:1.125rem;font-weight:900}.next .when:first-letter{text-transform:uppercase}.next .meta{color:var(--muted);font-size:.9rem}.badge{--shift:var(--muted);border-radius:var(--r-sm);background:var(--shift);width:32px;height:32px;box-shadow:0 3px 0 color-mix(in srgb, var(--shift) 70%, #000);color:#fff;flex:none;place-items:center;font-size:.95rem;font-weight:900;line-height:1;display:grid}.badge.lg{border-radius:var(--r-md);width:56px;height:56px;box-shadow:0 var(--press) 0 color-mix(in srgb, var(--shift) 70%, #000);font-size:1.375rem}.badge.off{background:var(--surface-2);color:var(--muted);box-shadow:0 3px 0 var(--line-strong)}.stats{gap:var(--s2);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.stat{background:var(--surface);border:2px solid var(--line);border-radius:var(--r-md);padding:var(--s3) var(--s2);text-align:center}.stat b{font-variant-numeric:tabular-nums;font-size:1.375rem;font-weight:900;line-height:1.1;display:block}.stat span{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.75rem;font-weight:800}.banner{align-items:center;gap:var(--s3);background:var(--primary-soft);border:2px solid color-mix(in srgb, var(--primary) 40%, transparent);border-radius:var(--r-lg);padding:var(--card-pad) var(--card-pad) calc(var(--card-pad) + var(--press));grid-template-columns:1fr auto;font-size:.9rem;display:grid}.calendar{--gap:clamp(4px, 1.6vw, 8px)}.weekdays,.grid{column-gap:var(--gap);grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.grid{row-gap:calc(var(--gap) + 3px)}.weekdays{margin-bottom:var(--s2)}.weekdays span{text-align:center;color:var(--muted);font-size:.75rem;font-weight:900}.cell{--shift:transparent;aspect-ratio:1/1.12;border:2px solid var(--line);border-radius:var(--r-sm);background:var(--surface);min-width:0;box-shadow:0 3px 0 var(--line);font-variant-numeric:tabular-nums;flex-direction:column;justify-content:center;align-items:center;gap:5px;padding:0;transition:transform 60ms,box-shadow 60ms;display:flex;position:relative}.cell:active{transform:translateY(3px);box-shadow:0 0 #0000}.cell .num{white-space:nowrap;height:1em;font-size:clamp(.72rem,3.4vw,.95rem);font-weight:800;line-height:1;display:block}.cell .num svg{vertical-align:baseline;width:.72em;height:.72em;margin-left:.16em;display:inline-block}.cell .line2{--ic:1.15em;height:var(--ic);justify-content:center;align-items:center;gap:1px;max-width:100%;font-size:clamp(.72rem,3.2vw,.9rem);font-weight:900;line-height:1;display:flex;overflow:hidden}.cell .line2 svg{width:var(--ic);height:var(--ic)}.cell .line2 .m-more{width:.7em;height:.7em}.cell.work{background:var(--shift);border-color:color-mix(in srgb, var(--shift) 70%, #000);box-shadow:0 3px 0 color-mix(in srgb, var(--shift) 70%, #000);color:#fff}.cell.today{background:var(--primary-soft);border-color:var(--today);box-shadow:0 3px 0 var(--primary-shade);color:var(--primary-ink)}.cell.work.today{background:var(--shift);border-color:color-mix(in srgb, var(--shift) 70%, #000);box-shadow:inset 0 0 0 2px #fff, 0 3px 0 color-mix(in srgb, var(--shift) 70%, #000);color:#fff}.cell.out{visibility:hidden}.m-edit{color:var(--mark)}.m-swap{color:#22c55e}.cell.work .m-edit{color:#fde68a}.cell.work .m-swap{color:#bbf7d0}.legend{justify-content:center;gap:var(--s4);margin-top:calc(var(--s4) + 3px);color:var(--muted);font-size:.75rem;display:flex}.legend span{align-items:center;gap:6px;display:inline-flex}.legend svg{width:13px;height:13px}.bottombar{z-index:3;background:var(--surface);border-top:2px solid var(--line);padding:var(--s3) var(--gutter) calc(var(--s3) + var(--press) + env(safe-area-inset-bottom));gap:var(--s3);flex-direction:column;display:flex;position:sticky;bottom:0}.bar-row{grid-template-columns:1fr var(--h-ctl);gap:var(--s2);align-items:start;display:grid}.segmented{height:var(--h-ctl);background:var(--surface-2);border:2px solid var(--line-strong);border-radius:var(--r-md);box-shadow:0 var(--press) 0 var(--line-strong);grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:4px;padding:4px;display:grid}.segmented button{border-radius:var(--r-sm);color:var(--muted);background:0 0;border:none;justify-content:center;align-items:center;gap:6px;font-size:.9rem;font-weight:800;display:flex}.segmented button.on{background:var(--surface);color:var(--text);box-shadow:0 2px 0 var(--line-strong)}.tiles{gap:var(--s2);row-gap:calc(var(--s2) + var(--press));padding-bottom:var(--press);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.tile{height:var(--h-tile);min-width:0;padding:0 var(--s3) 0 var(--s2);border-radius:var(--r-md);text-align:left;justify-content:flex-start;font-size:.875rem;font-weight:800}.tile .badge{width:32px;height:32px;box-shadow:none;font-size:.875rem}.tile .badge.off{box-shadow:none}.tile .badge svg{width:18px;height:18px}.tile.on{--fill:var(--primary-soft);--shade:var(--primary)}.sheet-backdrop{z-index:10;background:#00000073;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--bg);border-radius:var(--r-lg) var(--r-lg) 0 0;width:100%;max-width:560px;max-height:90dvh;padding:var(--s2) var(--gutter) calc(var(--s5) + env(safe-area-inset-bottom));gap:var(--s4);flex-direction:column;display:flex;overflow-y:auto}.sheet-handle{background:var(--line-strong);border-radius:3px;width:40px;height:5px;margin:0 auto}.sheet-head{grid-template-columns:1fr var(--h-icon);align-items:center;gap:var(--s3);display:grid}.sheet-head h2{margin:0;font-size:1.25rem;font-weight:900}.sheet-head h2:first-letter{text-transform:uppercase}.section-title{margin:0 0 var(--s2);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:.75rem;font-weight:900}.status{align-items:center;gap:var(--s4);grid-template-columns:56px 1fr;display:grid}.status strong{font-size:1.05rem;font-weight:900;display:block}.list{margin:0;padding:0;list-style:none}.list li{align-items:center;gap:var(--s3);min-height:var(--h-icon);padding:var(--s3) 0;border-bottom:2px solid var(--line);grid-template-columns:auto 1fr auto;display:grid}.list li:first-child{padding-top:0}.list li:last-child{border-bottom:none;padding-bottom:0}.list li>.icon-btn.flat{margin-right:calc((var(--h-icon) - 20px) / -2)}.form>.section-title{margin-bottom:0}.list li strong{font-weight:800;display:block}.empty{padding:var(--s3) 0;text-align:center;color:var(--muted);margin:0;font-size:.9rem}.ev-icon{border-radius:var(--r-sm);background:var(--surface-2);place-items:center;width:40px;height:40px;display:grid}.ev-open{text-align:left;background:0 0;border:none;flex-direction:column;align-items:flex-start;gap:2px;min-width:0;padding:0;display:flex}.ev-open>*{max-width:100%}.icon-grid{grid-template-columns:repeat(8,minmax(0,1fr));gap:9px 6px;padding-bottom:3px;display:grid}.icon-opt svg{width:18px;height:18px}.icon-opt{aspect-ratio:1;border:2px solid var(--line-strong);border-radius:var(--r-sm);background:var(--surface);min-width:0;color:var(--muted);box-shadow:0 3px 0 var(--line-strong);place-items:center;padding:0;display:grid}.icon-opt:active{box-shadow:none;transform:translateY(3px)}.icon-opt.on{border-color:var(--primary);background:var(--primary-soft);color:var(--primary-ink);box-shadow:0 3px 0 var(--primary)}.presets{gap:var(--s2);padding-bottom:var(--press);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.chip{height:var(--h-icon);border-radius:var(--r-md);font-variant-numeric:tabular-nums;padding:0;font-weight:900}.chip.on{--fill:var(--primary);--shade:var(--primary-shade);--ink:var(--on-primary)}.colors{gap:var(--s2);grid-template-columns:repeat(8,minmax(0,1fr));display:grid}.color{aspect-ratio:1;border:3px solid var(--line);width:100%;box-shadow:inset 0 0 0 3px var(--surface);border-radius:50%;padding:0}.color.on{border-color:var(--text)}.actions{gap:var(--s2);padding-bottom:var(--press);grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;display:grid}.hint{color:var(--muted);margin:0;font-size:.8125rem;font-weight:600;line-height:1.45}.toast{left:50%;bottom:calc(160px + env(safe-area-inset-bottom));z-index:20;max-width:calc(100% - 2 * var(--gutter));padding:var(--s3) var(--s4);border-radius:var(--r-md);background:var(--text);color:var(--bg);font-size:.9rem;font-weight:700;position:fixed;translate:-50%}
