@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.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{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--font:"Inter Variable", system-ui, "Segoe UI", Roboto, sans-serif;--bg:#f6f7fb;--surface:#fff;--surface-2:#eef0f6;--border:#e3e6ee;--text:#171b26;--text-muted:#667085;--accent:#4f46e5;--accent-hover:#4338ca;--accent-soft:#eef2ff;--danger:#dc2626;--danger-soft:#fee2e2;--ok:#16a34a;--warn:#b45309;--warn-soft:#fef3c7;--radius-s:8px;--radius-m:12px;--topbar-h:3.25rem;--shadow-s:0 1px 2px #1018280f, 0 1px 3px #10182814;--shadow-m:0 8px 24px #10182824}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#101318;--surface:#181c24;--surface-2:#212630;--border:#2c3340;--text:#e8ebf2;--text-muted:#98a2b3;--accent:#6c63f5;--accent-hover:#7f78f7;--accent-soft:#26264a;--danger:#ef6a6a;--danger-soft:#3d1d1d;--warn:#e3a008;--warn-soft:#3a2c10;--shadow-s:0 1px 2px #0006;--shadow-m:0 8px 24px #00000080}}*{box-sizing:border-box}body{font-family:var(--font);background:var(--bg);color:var(--text);margin:0;font-size:15px;line-height:1.45}#root{min-height:100vh}h1,h2,h3,h4{letter-spacing:-.01em;font-weight:650}button{font:inherit;border:1px solid var(--border);border-radius:var(--radius-s);background:var(--surface);color:var(--text);cursor:pointer;padding:.45rem .85rem;font-size:.9rem;font-weight:550;transition:background .12s,border-color .12s}button:hover{background:var(--surface-2)}button:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn-danger{border-color:var(--danger);color:var(--danger);background:0 0}.btn-danger:hover{background:var(--danger-soft)}.btn-ghost{background:0 0;border-color:#0000}.btn-ghost:hover{background:var(--surface-2)}input,select,textarea{font:inherit;border:1px solid var(--border);border-radius:var(--radius-s);background:var(--surface);color:var(--text);padding:.45rem .6rem;font-size:.9rem}input::placeholder{color:var(--text-muted)}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.pill{background:var(--accent);color:#fff;border-radius:999px;justify-content:center;align-items:center;min-width:1.3rem;padding:.05rem .45rem;font-size:.7rem;font-weight:650;display:inline-flex}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-m);box-shadow:var(--shadow-s)}.page{max-width:72rem;margin:0 auto;padding:1.25rem 1.5rem 3rem}.page-header{flex-wrap:wrap;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.page-header h1{margin:0;font-size:1.35rem}.page-header .spacer{margin-left:auto}.center{justify-content:center;align-items:center;min-height:100vh;display:flex}.error{color:var(--danger);margin:0;font-size:.85rem}.hint{color:var(--text-muted);margin:.15rem 0 0;font-size:.8rem}.card.notice{text-align:center;justify-items:center;gap:.75rem;max-width:27rem;display:grid}.card.notice h1{margin:0;font-size:1.15rem}.card.notice p{color:var(--text-muted);margin:0}.topbar{border-bottom:1px solid var(--border);background:var(--surface);z-index:10;align-items:center;gap:1rem;padding:.6rem 1.5rem;display:flex;position:sticky;top:0}.topbar .brand{letter-spacing:-.01em;margin-right:.75rem;font-weight:700}.topbar .brand span{color:var(--accent)}.nav-links{gap:.25rem;display:flex}.nav-links a{color:var(--text-muted);border-radius:var(--radius-s);padding:.35rem .7rem;font-size:.9rem;font-weight:550;text-decoration:none}.nav-links a:hover{background:var(--surface-2);color:var(--text)}.nav-links a.active{background:var(--accent-soft);color:var(--accent)}.nav-actions{align-items:center;gap:.5rem;margin-left:auto;display:flex}.signin{flex-direction:column;align-items:stretch;gap:.75rem;width:22rem;max-width:calc(100vw - 2rem);padding:2rem 1.75rem;display:flex}.signin h1{text-align:center;margin:0 0 .5rem;font-size:1.3rem}.signin .brand-accent{color:var(--accent)}.signin .divider{text-align:center;color:var(--text-muted);font-size:.85rem}.signin form{flex-direction:column;gap:.5rem;display:flex}.signin a{color:var(--accent);text-align:center;font-size:.85rem}.wallchart{padding:1.25rem 1.5rem 3rem}.wallchart-toolbar{align-items:center;gap:.5rem;margin-bottom:.85rem;display:flex}.wallchart-toolbar .btn-primary{margin-left:auto}.wallchart-grid-wrap{border:1px solid var(--border);border-radius:var(--radius-m);background:var(--surface);box-shadow:var(--shadow-s);overflow-x:auto}.wallchart-grid{min-width:60rem;font-size:.75rem;display:grid}.month-label{white-space:nowrap;border-bottom:1px solid var(--border);padding:.35rem .15rem;font-weight:650}.day-header{text-align:center;border-bottom:1px solid var(--border);font-variant-numeric:tabular-nums;color:var(--text-muted);padding:.3rem 0}.dow-header{text-align:center;color:var(--text-muted);padding:.15rem 0;font-size:.68rem;font-weight:650}.name-cell a.name{color:inherit;text-decoration:none}.name-cell a.name:hover{text-decoration:underline}.day-header.wknd,.dow-header.wknd,.cell.wknd{background:var(--surface-2)}.day-header.today,.cell.today{outline:2px solid var(--accent);outline-offset:-2px}.name-cell{background:var(--surface);border-bottom:1px solid var(--border);border-right:1px solid var(--border);white-space:nowrap;text-overflow:ellipsis;z-index:1;align-items:center;gap:.5rem;padding:.4rem .6rem;display:flex;position:sticky;left:0;overflow:hidden}.name-cell .avatar{border-radius:50%;flex:none;justify-content:center;align-items:center;width:1.8rem;height:1.8rem;font-size:.65rem;font-weight:700;display:inline-flex}.name-cell .name{text-overflow:ellipsis;flex:auto;overflow:hidden}.corner{background:var(--surface);z-index:1;position:sticky;left:0}.cell{border-bottom:1px solid var(--border);border-left:1px solid var(--border);flex-direction:column;min-height:1.7rem;display:flex}.cell .am,.cell .pm{cursor:default;flex:50%}.cell .am.mark,.cell .pm.mark{cursor:pointer}.badge{background:var(--accent-soft);color:var(--accent);border-radius:999px;flex:none;justify-content:center;align-items:center;padding:.05rem .45rem;font-size:.68rem;font-weight:650;display:inline-flex}.detail-panel{background:var(--surface);border-left:1px solid var(--border);width:21rem;max-width:92vw;box-shadow:var(--shadow-m);z-index:20;padding:1.1rem 1.2rem;position:fixed;top:0;bottom:0;right:0;overflow-y:auto}.detail-panel header{justify-content:space-between;align-items:center;margin-bottom:.85rem;font-size:1.02rem;font-weight:650;display:flex}.detail-panel p{margin:0 0 .5rem;font-size:.9rem}.detail-actions{flex-wrap:wrap;align-items:end;gap:.5rem;margin-top:.85rem;display:flex}.swatch{vertical-align:middle;border-radius:2px;width:12px;height:12px;margin-right:.35rem;display:inline-block}.detail-panel.inbox{width:380px}.inbox section{margin-bottom:1rem}.inbox section:last-child{margin-bottom:0}.inbox h3{color:var(--text-muted);margin:0 0 .5rem;font-size:.85rem;font-weight:600}.inbox h4{margin:.75rem 0 .35rem;font-size:.8rem;font-weight:600}.inbox h4:first-child{margin-top:0}.req-group+.req-group{margin-top:.5rem}.req-item{border-bottom:1px solid var(--border);flex-direction:column;gap:.2rem;padding:.6rem 0;font-size:.85rem;display:flex}.req-item:last-child{border-bottom:none}.req-owner{font-weight:600}.req-reason{color:var(--text-muted);font-size:.8rem}.req-actions{flex-direction:row;gap:.5rem;margin-top:.3rem;display:flex}.modal-backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:30;background:#0a0c1473;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-m);width:100%;max-width:32rem;max-height:92vh;box-shadow:var(--shadow-m);padding:1.35rem;overflow-y:auto}.modal header{justify-content:space-between;align-items:center;margin-bottom:1rem;font-size:1.02rem;font-weight:650;display:flex}.modal form{flex-direction:column;gap:.75rem;display:flex}.row{flex-direction:column;gap:.3rem;font-size:.85rem;font-weight:550;display:flex}.row input,.row select{font-weight:400}.violation{color:var(--warn);background:var(--warn-soft);border:1px solid var(--warn);border-radius:var(--radius-s);margin:0;padding:.45rem .6rem;font-size:.85rem}.calendar-page{padding:1.25rem 1.5rem 3rem}.calendar-toolbar{flex-wrap:wrap;align-items:center;gap:1.25rem;margin-bottom:1rem;display:flex}.calendar-toolbar h1{margin:0;font-size:1.35rem}.calendar-toolbar .book-btn{margin-left:auto}.year-nav{align-items:center;gap:.5rem;display:flex}.year-nav span{text-align:center;font-variant-numeric:tabular-nums;min-width:2.5rem;font-weight:650}.calendar-layout{grid-template-columns:1fr 300px;align-items:start;gap:1.5rem;display:grid}.months{grid-template-columns:repeat(3,1fr);gap:1rem;display:grid}.month{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-m);box-shadow:var(--shadow-s);padding:.65rem}.month-name{text-align:center;margin-bottom:.45rem;font-size:.82rem;font-weight:650}.month-grid{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.wd-header{text-align:center;color:var(--text-muted);font-size:.6rem;font-weight:650}.daycell{aspect-ratio:1;background:var(--surface-2);font-variant-numeric:tabular-nums;border-radius:4px;justify-content:center;align-items:center;font-size:.62rem;display:flex}.daycell.empty{background:0 0}.daycell.wknd{background:var(--bg)}.daycell.today{outline:2px solid var(--accent);outline-offset:-1px}.sidebar{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-m);box-shadow:var(--shadow-s);top:calc(var(--topbar-h) + 1rem);padding:1.1rem;font-size:.85rem;position:sticky}.sidebar h2{margin:0 0 .75rem;font-size:1rem}.sidebar h3{color:var(--text-muted);margin:0 0 .4rem;font-size:.8rem;font-weight:650}.sidebar-block{border-bottom:1px solid var(--border);margin-bottom:1rem;padding-bottom:.75rem}.sidebar-row{justify-content:space-between;gap:.5rem;padding:.15rem 0;display:flex}.sidebar-row.total{border-top:1px solid var(--border);margin-top:.3rem;padding-top:.3rem;font-weight:600}.sidebar-remaining{border-bottom:1px solid var(--border);flex-direction:column;align-items:center;margin-bottom:1rem;padding:.75rem 0;display:flex}.sidebar-remaining .label{color:var(--text-muted);font-size:.75rem}.sidebar-remaining .value{color:var(--accent);font-size:2.1rem;font-weight:750;line-height:1.2}.bars-block{margin-top:1rem}.bars{align-items:flex-end;gap:3px;height:60px;display:flex}.bars .bar{background:var(--accent);border-radius:2px 2px 0 0;flex:1 1 0;min-height:2px}.bars-labels{gap:3px;margin-top:.25rem;display:flex}.bars-labels span{text-align:center;color:var(--text-muted);flex:1 1 0;font-size:.6rem}.feed-block{gap:.5rem;display:grid}.feed-scope{gap:.35rem;display:flex}.feed-scope .chip{border-radius:var(--radius-s);border:1px solid var(--border);background:var(--surface-2);color:var(--text-muted);flex:1;padding:.3rem .5rem;font-size:.75rem}.feed-scope .chip.active{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}.feed-url{border:1px solid var(--border);border-radius:var(--radius-s);background:var(--surface-2);width:100%;color:var(--text-muted);padding:.35rem .45rem;font-family:ui-monospace,monospace;font-size:.7rem}.feed-actions{gap:.4rem;display:flex}.feed-actions button{flex:1;padding:.35rem .5rem;font-size:.75rem}.list{overflow:hidden}.list-row{color:inherit;border-bottom:1px solid var(--border);align-items:center;gap:.85rem;padding:.7rem 1rem;text-decoration:none;display:flex}.list-row:last-child{border-bottom:none}.list-row:hover{background:var(--surface-2)}.list .avatar{border-radius:50%;flex:none;justify-content:center;align-items:center;width:2.25rem;height:2.25rem;font-size:.8rem;font-weight:700;display:inline-flex}.list-main{flex-direction:column;flex:auto;min-width:0;display:flex}.list-title{align-items:center;gap:.5rem;font-weight:600;display:flex}.list-sub{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.8rem;overflow:hidden}.list-meta{flex:none;align-items:center;gap:.5rem;display:flex}.list-empty{color:var(--text-muted);padding:1rem}.role-badge{text-transform:uppercase;letter-spacing:.04em;background:var(--accent-soft);color:var(--accent);border-radius:4px;padding:.1rem .4rem;font-size:.65rem;font-weight:650}.list.archived .list-row{opacity:.6}.pill.warn{background:var(--warn)}@media (prefers-color-scheme:dark){.pill.warn{color:#1c1917}}.section-title{color:var(--text-muted);margin:1.25rem 0 .5rem;font-size:.95rem}.form-grid{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.day-editor{border:1px solid var(--border);border-radius:var(--radius-s);grid-template-columns:repeat(7,1fr);gap:.35rem;padding:.5rem;display:grid}.day-editor-col{flex-direction:column;align-items:center;gap:.25rem;display:flex}.day-editor-label{color:var(--text-muted);font-size:.7rem;font-weight:650}.day-editor-col label{align-items:center;gap:.2rem;font-size:.7rem;display:flex}.back-link{color:var(--text-muted);font-size:.9rem;text-decoration:none}.back-link:hover{color:var(--text)}.editor-avatar{border-radius:50%;justify-content:center;align-items:center;width:2.5rem;height:2.5rem;font-weight:700;display:inline-flex}.archived-badge{background:var(--surface-2);color:var(--text-muted)}.tabs{border-bottom:1px solid var(--border);gap:.25rem;margin-bottom:1rem;display:flex}.tab{color:var(--text-muted);background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0;margin-bottom:-1px;padding:.5rem .9rem}.tab:hover{color:var(--text);background:0 0}.tab.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.tab-panel{padding:1.25rem}.tab-panel form{flex-direction:column;gap:.75rem;display:flex}.divider-line{border:none;border-top:1px solid var(--border);margin:1.25rem 0}.schedule-row{border-bottom:1px solid var(--border);align-items:baseline;gap:1rem;padding:.5rem 0;font-size:.9rem;display:flex}.schedule-row:last-of-type{border-bottom:none}.schedule-from{align-items:center;gap:.5rem;min-width:9rem;font-weight:600;display:inline-flex}.schedule-days{color:var(--text-muted)}.allowance-grid{grid-template-columns:1fr 280px;align-items:start;gap:1rem;display:grid}.balance-card h3,.tab-panel h3{color:var(--text-muted);margin:0 0 .5rem;font-size:.85rem}.toil-row{align-items:center;gap:.6rem;padding:.3rem 0;font-size:.9rem;display:flex}.toil-plus{color:var(--ok);font-weight:650}.toil-min{color:var(--danger);font-weight:650}.toil-note{color:var(--text-muted);flex:auto}.toil-form{gap:.5rem;margin-top:.5rem;display:flex}.toil-form input[type=number]{width:6.5rem}.toil-form input:not([type=number]){flex:auto}.danger-zone{flex-direction:column;align-items:flex-start;gap:.5rem;display:flex}.settings-section{margin-bottom:1.5rem}.settings-section h2{margin:0 0 .6rem;font-size:1.05rem}.dept-row{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:.6rem;padding:.45rem 0;display:flex}.dept-row:last-of-type{border-bottom:none}.dept-row input:first-child{flex:10rem}.maxoff-label{color:var(--text-muted);align-items:center;gap:.4rem;font-size:.8rem;display:inline-flex}.maxoff-label input{width:4.5rem}.dept-add{gap:.5rem;margin-top:.75rem;display:flex}.dept-add input{flex:auto}.lt-row{border-bottom:1px solid var(--border);padding:.35rem 0}.lt-row:last-of-type{border-bottom:none}.lt-row.inactive .lt-head{opacity:.55}.lt-head{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.lt-name{font-weight:600}.lt-badges{flex-wrap:wrap;gap:.35rem;display:flex}.lt-actions{gap:.25rem;margin-left:auto;display:flex}.lt-editor{border:1px solid var(--border);border-radius:var(--radius-s);background:var(--surface-2);flex-direction:column;gap:.75rem;margin:.6rem 0 .4rem;padding:.85rem;display:flex}.lt-flags{flex-direction:column;gap:.35rem;font-size:.9rem;display:flex}.lt-flags label{align-items:center;gap:.45rem;display:flex}input[type=color]{cursor:pointer;width:3rem;height:2.1rem;padding:.1rem}@media (width<=900px){.calendar-layout{grid-template-columns:1fr}.sidebar{position:static}.months{grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}.allowance-grid{grid-template-columns:1fr}}@media (width<=720px){.topbar{flex-wrap:wrap;gap:.4rem;padding:.5rem .85rem}.nav-actions{margin-left:auto}.page,.wallchart,.calendar-page{padding:.85rem .85rem 3rem}.form-grid{grid-template-columns:1fr}.page-header input[type=search]{width:100%}.list-meta{flex-direction:column;align-items:flex-end;gap:.25rem}.dept-row{flex-direction:column;align-items:stretch}.lt-actions{margin-left:0}.day-editor{grid-template-columns:repeat(4,1fr)}}@media (width<=480px){.detail-panel{border-left:none;width:100vw;max-width:100vw}.tabs{overflow-x:auto}}
