@font-face{font-family:Montserrat;font-style:normal;font-weight:400 800;font-display:swap;src:url(/assets/montserrat-cyrillic-p6IpLZeA.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Montserrat;font-style:normal;font-weight:400 800;font-display:swap;src:url(/assets/montserrat-cyrillic-ext-CG0v8orw.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Montserrat;font-style:normal;font-weight:400 800;font-display:swap;src:url(/assets/montserrat-latin-ext-D0hf-lZB.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,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:Montserrat;font-style:normal;font-weight:400 800;font-display:swap;src:url(/assets/montserrat-latin-Dk9Pm7OY.woff2)format("woff2");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,:root[data-theme=light]{--font:"Montserrat", system-ui, -apple-system, sans-serif;--brand:#004c79;--brand-2:#0582d2;--brand-2-ink:#0a6fb3;--brand-3:#21b5e9;--brand-tint:#cfe6f5;--bg:#f4f7fa;--surface:#fff;--panel:var(--surface);--panel2:var(--surface);--text:#18181a;--text-2:#3d4a55;--dim:#5b6b78;--dim2:#7a8b98;--line:#e6eef5;--line-strong:#cfe6f5;--rule:var(--line);--border:var(--line-strong);--heading:var(--brand);--ink:var(--brand);--btn-bg:var(--brand);--btn-ink:#fff;--good:#2e7d32;--warn:#7a5a00;--danger:#b3261e;--on-danger:#fff;--warn-fill:#f2b705;--on-warn-fill:#3b2b00;--zone-red:#d32f2f;--zone-green:#2e7d32;--zone-blue:#1e6fd9;--away:#4b6478;--glow:transparent;--radius-xs:4px;--radius-sm:8px;--radius-md:10px;--radius-lg:12px;--radius-xl:14px;--radius-pill:20px;--shadow-card:0 1px 3px #004c791f;--accent:#0582d2}:root[data-theme=dark]{--brand-2-ink:#6cc6f0;--brand-tint:#1f4462;--bg:#0d2233;--surface:#13314a;--text:#eef4f9;--text-2:#c9d8e4;--dim:#9fb6c8;--dim2:#7f9cb3;--line:#1f4462;--line-strong:#2a5a80;--heading:var(--text);--ink:#6cc6f0;--btn-bg:#21b5e9;--btn-ink:#0d2f4a;--good:#9ad69e;--warn:#ffd766;--danger:#ffb4ab;--on-danger:#3a0b08;--zone-red:#f28b82;--zone-green:#81c995;--zone-blue:#8ab4f8;--away:#35546d;--shadow-card:none;--accent:#21b5e9}[data-theme=light] [data-acc=indigo]{--accent:#0582d2}[data-theme=dark] [data-acc=indigo]{--accent:#21b5e9}[data-theme=light] [data-acc=sage]{--accent:#3a8a5f}[data-theme=dark] [data-acc=sage]{--accent:#7fc79f}[data-theme=light] [data-acc=amber]{--accent:#b7791f}[data-theme=dark] [data-acc=amber]{--accent:#e0a84a}[data-theme=light] [data-acc=steel]{--accent:#5a7891}[data-theme=dark] [data-acc=steel]{--accent:#8fa8bf}:focus-visible{outline:2px solid var(--brand-2);outline-offset:2px}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;margin:0;font-size:14px;line-height:1.5}*{scrollbar-width:none;-ms-overflow-style:none}::-webkit-scrollbar{width:0;height:0;display:none}svg{display:block}button{color:inherit;font-family:inherit}input,select,textarea{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-md);width:100%;padding:10px 12px;font-size:16px}input:focus,select:focus,textarea:focus{border:1.5px solid var(--brand-2);outline:none;padding:9.5px 11.5px}input::placeholder,textarea::placeholder{color:var(--dim2)}.app{background:var(--bg);height:100%;color:var(--text);flex-direction:column;display:flex}.app__head{background:var(--surface);border-bottom:1px solid var(--line);flex:none;padding:52px 18px 10px}.app__headrow{align-items:center;gap:9px;display:flex}.app__cat{letter-spacing:.12em;text-transform:uppercase;color:var(--ink);font-size:11px;font-weight:600}.app__headrow--crumb{margin-top:10px}.app__sep{background:var(--border);border-radius:50%;flex:none;width:3px;height:3px}.app__screen{letter-spacing:.06em;color:var(--dim);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:11px;overflow:hidden}.app__theme{border-radius:var(--radius-sm);border:1px solid var(--border);cursor:pointer;width:34px;height:34px;color:var(--dim);background:0 0;flex:none;place-items:center;margin-left:auto;display:grid}.app__kb{text-decoration:none}.app__kb+.app__theme{margin-left:8px}.catstrip{gap:16px;margin-top:13px;display:flex;overflow-x:auto}.catstrip__item{cursor:pointer;color:var(--dim);background:0 0;border:0;flex:none;padding:0 0 6px;font-size:13px;transition:color .15s,box-shadow .15s;box-shadow:inset 0 -1px #0000}.catstrip__item[aria-pressed=true]{color:var(--ink);box-shadow:inset 0 -2px 0 var(--accent);font-weight:600}.app__body{flex:1;min-height:0;overflow-y:auto}.tabbar{border-top:1px solid var(--rule);padding-bottom:env(safe-area-inset-bottom);background:var(--surface);flex:none;display:flex}.tabbar__item{cursor:pointer;color:var(--dim);letter-spacing:0;background:0 0;border:0;flex-direction:column;flex:1;align-items:center;gap:4px;padding:9px 0 8px;font-size:10.5px;font-weight:600;display:flex}.tabbar__item[aria-current=page]{color:var(--ink)}.tabbar__item svg{width:20px;height:20px}.tabbar__item span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.tabbar:has(.tabbar__item:nth-child(6)) .tabbar__item{letter-spacing:0;font-size:9.5px}.sec{letter-spacing:.1em;text-transform:uppercase;color:var(--brand-2-ink);margin:0 0 9px;font-size:11px;font-weight:600}.rule{background:var(--rule);height:1px}.card{border-bottom:1px solid var(--rule);padding:12px 0}.num,.hours{font-variant-numeric:tabular-nums}.hours--low{color:var(--warn)}.hours--norm{color:var(--text)}.hours--over{color:var(--good)}.hours--none{color:var(--dim)}.hours--blue{color:var(--zone-blue)}.pill{color:var(--ink);background:var(--brand-tint);border-radius:999px;padding:3px 9px;font-size:11px;font-weight:600;display:inline-block}.btn{border-radius:var(--radius-lg);cursor:pointer;background:0 0;border:1.5px solid #0000;justify-content:center;align-items:center;gap:8px;min-height:48px;padding:12px 20px;font-size:15px;font-weight:600;transition:opacity .15s;display:inline-flex}.btn--accent{background:var(--btn-bg);border-color:var(--btn-bg);color:var(--btn-ink)}.btn--accent:active:not(:disabled){background:color-mix(in srgb, var(--btn-bg) 88%, #000);border-color:color-mix(in srgb, var(--btn-bg) 88%, #000)}.btn--create{border-color:var(--good);color:var(--good)}.btn--data{border-color:var(--warn);color:var(--warn)}.btn--care{border-color:var(--danger);color:var(--danger)}.btn--danger{background:var(--danger);border-color:var(--danger);color:var(--on-danger)}.btn--outline{border-color:var(--btn-bg);color:var(--ink)}.btn--away{background:var(--away);border-color:var(--away);color:#fff}.away-zone{border-top:1px solid var(--rule);margin-top:10px;padding-top:22px}.btn--block{width:100%}.btn--checkin{border-radius:var(--radius-xl);width:100%;min-height:96px;font-size:17px}a.btn{box-sizing:border-box;text-decoration:none}.btn:disabled{opacity:.5;cursor:default}.field-list{flex-direction:column;gap:6px;display:flex}.field{font-size:12px;display:flex}.field__k{width:126px;color:var(--dim);flex:none}.field__v{flex:1;min-width:0}.field__v--mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.empty{text-align:center;color:var(--dim);padding:28px 0;font-size:13px}.pull{letter-spacing:.06em;color:var(--dim);flex:none;place-items:center;font-size:11px;transition:opacity .15s;display:grid;overflow:hidden}.screen{flex-direction:column;min-height:100%;display:flex}.banner{border:1px solid var(--danger);color:var(--danger);border-radius:10px;margin:0 18px 8px;padding:9px 12px;font-size:12.5px}.stack{scroll-snap-type:x mandatory;display:flex;overflow-x:auto}.stack>*{scroll-snap-align:center}.shift{text-align:center;flex-direction:column;flex:none;align-items:center;width:100%;min-width:100%;padding:14px 28px 18px;display:flex}.shift__ring{place-items:center;width:214px;height:214px;display:grid;position:relative}.shift__ring svg{position:absolute;inset:0}.shift__center{position:relative}.shift__kicker{letter-spacing:.22em;text-transform:uppercase;color:var(--dim);margin:0;font-size:10px}.shift__timer{letter-spacing:-.02em;color:var(--heading);margin:7px 0 0;font-size:40px;font-weight:700;line-height:1.05}.shift__pct{color:var(--dim);margin:5px 0 0;font-size:11px}.shift__unit{color:var(--heading);text-wrap:pretty;margin:22px 0 0;font-size:17px;font-weight:700}.shift__sub{color:var(--dim);margin:4px 0 0;font-size:13px}.shift .btn{margin-top:22px}.shift--idle .shift__timer{color:var(--dim2);font-weight:600}.under{padding:0 20px 20px}.under__fade{background:linear-gradient(to right, transparent, var(--rule) 40px, var(--rule) calc(100% - 40px), transparent);height:1px;margin-bottom:2px}.summary{border-bottom:1px solid var(--rule);align-items:center;gap:9px;padding:11px 0;font-size:13px;display:flex}.summary__dot{background:var(--accent);border-radius:50%;flex:none;width:6px;height:6px}.summary__text{flex:1}.summary__time{color:var(--ink)}.next{border:0;border-bottom:1px solid var(--rule);width:100%;color:var(--text);cursor:pointer;text-align:left;background:0 0;align-items:center;gap:10px;padding:12px 0;display:flex}.next__text{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:14px;overflow:hidden}.next__time{color:var(--dim);font-size:12px}.next[data-action]{border:1px solid var(--good);color:var(--good);border-radius:999px;margin:2px 0 8px;padding:11px 16px}.next svg{color:var(--dim)}.done{border-bottom:1px solid var(--rule);cursor:pointer;padding:12px 0}.done__row{align-items:baseline;gap:10px;display:flex}.done__name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:14px;overflow:hidden}.done__meta{color:var(--dim);align-items:baseline;gap:10px;margin-top:4px;font-size:12px;display:flex}.done__sum{color:var(--text);margin-left:auto}.chips{gap:8px;padding:4px 18px 12px;display:flex}.chip{border-radius:var(--radius-pill);border:1px solid var(--border);background:var(--surface);color:var(--text-2);cursor:pointer;padding:8px 16px;font-size:13px;font-weight:600}.chip[aria-pressed=true]{background:var(--btn-bg);border-color:var(--btn-bg);color:var(--btn-ink)}.period{border-bottom:1px solid var(--rule);align-items:baseline;gap:10px;margin:0 18px 6px;padding-bottom:10px;display:flex}.period__label{letter-spacing:.1em;text-transform:uppercase;min-width:0;color:var(--dim);flex:1;font-size:11px}.period__hours{font-size:13px}.period__sum{color:var(--ink);font-size:13px}.feed{padding:0 18px 24px}.feed__row{cursor:pointer;grid-template-columns:46px 14px minmax(0,1fr);display:grid}.feed__scale{padding-top:13px}.feed__day{color:var(--dim);font-size:11px}.feed__thread{position:relative}.feed__thread:before{content:"";background:var(--rule);width:1px;margin-left:-.5px;position:absolute;top:0;bottom:0;left:50%}.feed__row:first-child .feed__thread:before{top:14px}.feed__row:last-child .feed__thread:before{bottom:calc(100% - 14px)}.feed__dot{background:var(--border);box-sizing:border-box;border-radius:50%;width:7px;height:7px;margin-left:-3.5px;position:absolute;top:14px;left:50%}.feed__dot--closed{background:var(--good)}.feed__dot--running{background:var(--accent)}.feed__dot--planned{border:1px solid var(--border);background:0 0}.feed__dot--absent{background:var(--danger)}.feed__dot--over{background:var(--warn)}.feed__dot--small{flex:none;width:5px;height:5px;margin:0;position:static}.feed__card{border-bottom:1px solid var(--rule);min-width:0;padding:11px 0 12px 10px}.feed__top{align-items:baseline;gap:10px;display:flex}.feed__title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:14px;overflow:hidden}.feed__meta{color:var(--dim);align-items:baseline;gap:10px;margin-top:3px;font-size:12px;display:flex}.feed__sum{color:var(--text);margin-left:auto}.feed__more{border-top:1px dashed var(--rule);margin-top:9px;padding-top:9px}.feed__sub{align-items:center;gap:8px;padding:5px 0;font-size:12px;display:flex}.feed__subname{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.feed__subtime{color:var(--dim)}.feed__subsum{text-align:right;min-width:62px}.balance{padding:6px 18px 0}.balance__lbl{letter-spacing:.1em;text-transform:uppercase;color:var(--dim);margin:0;font-size:11px}.balance__num{letter-spacing:-.02em;color:var(--heading);margin:6px 0 0;font-size:38px;font-weight:700}.balance__row{color:var(--dim);flex-wrap:wrap;gap:14px;margin-top:10px;font-size:12.5px;display:flex}.balance__row b{color:var(--text);font-weight:600}.formula{flex-direction:column;gap:10px;padding:0 18px;display:flex}.formula__row{background:var(--surface);border-radius:var(--radius-xl);padding:12px 14px}.formula__top{justify-content:space-between;gap:10px;display:flex}.formula__unit{color:var(--text);font-size:13.5px;font-weight:600}.formula__amount{color:var(--heading);font-size:13.5px;font-weight:700}.formula__line{color:var(--dim);font-variant-numeric:tabular-nums;margin:4px 0 0;font-size:11.5px}.rows{background:var(--surface);border-radius:var(--radius-xl);margin:0 18px 24px;padding:0 14px}.rows>.row:last-child{border-bottom:0}.row{border-bottom:1px solid var(--rule);cursor:pointer;padding:11px 0}.row__top{align-items:baseline;gap:10px;display:flex}.row__date{width:46px;color:var(--dim);flex:none;font-size:11px}.row__name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:14px;overflow:hidden}.row__sum{text-align:right;min-width:72px;font-size:13px}.who{align-items:center;gap:12px;margin-top:6px;display:flex}.who__ava{border:1px solid var(--border);width:46px;height:46px;color:var(--ink);border-radius:50%;flex:none;place-items:center;font-size:15px;display:grid}.who__name{color:var(--heading);margin:0;font-size:17px;font-weight:700}.who__role{color:var(--dim);margin:2px 0 0;font-size:12.5px}.danger-zone{border-top:1px dashed var(--border);margin-top:26px;padding-top:14px}.bottom-zone{margin-top:auto;padding-bottom:18px}.bottom-zone .danger-zone{margin-top:0}.kpi{background:var(--rule);border-radius:var(--radius-xl);grid-template-columns:1fr 1fr;gap:1px;margin:0 18px;display:grid;overflow:hidden}.kpi__t{background:var(--surface);padding:12px 14px}.kpi__lbl{letter-spacing:.06em;color:var(--dim);font-size:11px;display:block}.kpi__num{color:var(--heading);margin-top:2px;font-size:24px;font-weight:700;display:block}.bars{background:var(--surface);border-radius:var(--radius-xl);margin:12px 18px 0;padding:12px 14px 10px}.bars__head{justify-content:space-between;align-items:baseline;margin-bottom:10px;display:flex}.bars__total{color:var(--ink);font-size:13px}.bars__row{align-items:flex-end;gap:4px;height:68px;display:flex}.bars__col{flex-direction:column;flex:1 1 0;justify-content:flex-end;align-items:center;height:100%;display:flex}.bars__col i{background:var(--accent);opacity:.8;border-radius:3px 3px 1px 1px;width:100%;display:block}.bars__col em{color:var(--dim2);margin-top:4px;font-size:10px;font-style:normal}.bars__col[data-empty] i{background:var(--rule);opacity:1}.row__dot{background:var(--border);border-radius:50%;flex:none;width:6px;height:6px}.row__dot--closed{background:var(--good)}.row__dot--running{background:var(--accent)}.row__dot--absent{background:var(--danger)}.row__dot--accepted{background:var(--good)}.row__dot--needs_fix{background:var(--warn)}.row__dot--redo{background:var(--danger)}.row__meta{color:var(--dim);margin:4px 0 0;font-size:12px}.tag{border:1px solid var(--border);color:var(--dim);border-radius:999px;margin-left:8px;padding:1px 7px;font-size:10px}.monthnav{align-items:center;gap:8px;margin-left:auto;display:inline-flex}.monthnav__btn{border:1px solid var(--border);width:28px;height:28px;color:var(--dim);cursor:pointer;background:0 0;border-radius:8px;line-height:1}.monthnav__label{color:var(--ink);text-align:center;min-width:96px;font-size:12px}.search{border:1px solid var(--border);color:var(--dim);border-radius:10px;align-items:center;gap:8px;margin:0 18px 10px;padding:0 12px;display:flex}.search input{background:0 0;border:0;padding:10px 0}.search input:focus{border:0}.form{flex-direction:column;gap:8px;display:flex}.form__row{flex-wrap:wrap;gap:8px;display:flex}.form__row>.lab,.form__row .btn{flex:128px}.actions{flex-direction:column;gap:8px;margin-top:12px;display:flex}.actions--row{flex-flow:wrap}.actions--row>.btn{flex:160px}.actions--row>.import,.actions--row>.banner--wide,.actions--row>.note--wide{flex:100%}.note--wide{margin:0}.add{padding:14px 18px 24px}.note{color:var(--dim);margin:8px 18px;font-size:12px}.add .note{margin:0 0 8px}.totals{background:var(--rule);border-radius:var(--radius-xl);gap:1px;margin:4px 18px 0;display:flex;overflow:hidden}.totals__t{background:var(--surface);flex:1;min-width:0;padding:12px 12px 13px}.totals__lbl{letter-spacing:.06em;color:var(--dim);margin:0;font-size:10.5px}.totals__num{color:var(--heading);margin:3px 0 0;font-size:15px;font-weight:700}.month{flex-wrap:wrap;gap:3px;margin-top:8px;display:flex}.d{box-sizing:border-box;background:var(--rule);border-radius:2px;flex:none;width:8px;height:8px}.d--closed{background:var(--good)}.d--running{background:var(--accent)}.d--missed{background:var(--danger)}.d--off{border:1px solid var(--rule);background:0 0}.row__note{color:var(--dim);white-space:nowrap;font-size:12px}.row__note--warn{color:var(--warn)}@media (width>=900px){.app--wide{grid-template:"nav head""nav body"minmax(0,1fr)/232px minmax(0,1fr);height:100vh;display:grid}.app--wide .app__head{grid-area:head;padding:26px 32px 12px}.app--wide .app__screen{font-size:12px}.app--wide .pull{display:none}.app--wide .app__body{grid-area:body;padding:0 32px 32px}.app--wide .tabbar{border-top:0;border-right:1px solid var(--rule);flex-direction:column;grid-area:nav;align-items:stretch;gap:2px;padding:26px 12px 12px}.app--wide .tabbar__item{letter-spacing:0;border-radius:10px;flex-direction:row;flex:none;justify-content:flex-start;gap:10px;padding:10px 12px;font-size:13.5px}.app--wide .tabbar__item[aria-current=page]{background:var(--brand-tint)}.app--wide .rows{grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:0 28px;margin:0 0 24px;padding:0 20px;display:grid}.app--wide .chips,.app--wide .period,.app--wide .search,.app--wide .note,.app--wide .sec,.app--wide .filters{margin-left:0;margin-right:0;padding-left:0;padding-right:0}.app--wide .totals,.app--wide .kpi,.app--wide .bars{margin-left:0;margin-right:0}.app--wide .add{padding-left:0;padding-right:0}.app--wide .empty{grid-column:1/-1}.app--wide .rows--single{max-width:760px;display:block}.app--wide .row{align-self:start}}.d--ahead{border:1px dashed var(--border);background:0 0}.lab{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.lab>span{letter-spacing:.06em;color:var(--dim);font-size:11px}.group{margin-bottom:12px}.group__head{border-bottom:1px solid var(--rule);align-items:baseline;gap:8px;padding-bottom:4px;display:flex}.group__name{font-size:13px;font-weight:600}.group__meta{min-width:0;color:var(--dim);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:11.5px;overflow:hidden}.import{background:var(--surface);border-radius:var(--radius-xl);margin:4px 18px 0;padding:14px}.import__head{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.import__close{width:28px;height:28px;color:var(--dim);cursor:pointer;background:0 0;border:0;place-items:center;display:grid}.file{cursor:pointer;display:block;position:relative}.file input{opacity:0;cursor:pointer;position:absolute;inset:0}.file>span{border:1px dashed var(--border);color:var(--dim);text-align:center;border-radius:10px;padding:11px 12px;font-size:13px;display:block}.report{border-top:1px dashed var(--border);margin-top:12px;padding-top:12px}.report__title{letter-spacing:.1em;text-transform:uppercase;color:var(--dim);margin:0 0 6px;font-size:11px}.report__warn{color:var(--warn);margin:0 0 4px;padding-left:14px;font-size:12px;position:relative}.report__warn:before{content:"";background:var(--warn);border-radius:50%;width:5px;height:5px;position:absolute;top:7px;left:0}@media (width>=900px){.app--wide .import{max-width:640px;margin-left:0;margin-right:0}}.chips{scrollbar-width:none;flex-wrap:nowrap;padding-right:34px;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 34px),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 34px),#0000)}.chips::-webkit-scrollbar{display:none}.chips>*{flex:none}@media (width>=430px){.chips{padding-right:18px;-webkit-mask-image:none;mask-image:none}}.login{width:100%;max-width:320px;margin:auto;padding:24px 18px;position:relative}.login__logo{margin:0 0 6px}.login__brand{color:var(--heading);margin:0 0 4px;font-size:20px;font-weight:700}.login__hint{color:var(--dim);margin:0 0 20px;font-size:12.5px}.app--login{position:relative}.app__logo{flex:none}.brand-logo .logo-prof{fill:var(--heading)}.brand-logo .logo-hr{fill:var(--brand-2)}[data-theme=dark] .brand-logo .logo-hr{fill:var(--brand-3)}.login .form{gap:10px}.state{text-align:center;padding:32px 18px}.state__title{color:var(--heading);margin:0 0 6px;font-size:16px;font-weight:700}.state__text{color:var(--dim);margin:0 0 16px;font-size:13px}.feed__sub--btn{width:100%;color:inherit;cursor:pointer;text-align:left;font:inherit;background:0 0;border:0}.weekpick{gap:4px;display:flex}.daybtn{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);color:var(--text-2);cursor:pointer;flex:1;padding:9px 0;font-size:12px;font-weight:600}.daybtn[aria-pressed=true]{background:var(--btn-bg);border-color:var(--btn-bg);color:var(--btn-ink)}.check{cursor:pointer;align-items:center;gap:10px;font-size:13px;display:flex}.check input{width:18px;height:18px;accent-color:var(--btn-bg);flex:none;padding:0}.pulse{z-index:30;pointer-events:none;border-radius:2px;animation:.5s ease-out forwards pulse;position:fixed;inset:0}.pulse--ok{box-shadow:inset 0 0 64px -12px var(--good), inset 0 0 0 2px var(--good)}.pulse--fail{box-shadow:inset 0 0 64px -12px var(--danger), inset 0 0 0 2px var(--danger)}@keyframes pulse{0%{opacity:0}12%{opacity:1}to{opacity:0}}@media (prefers-reduced-motion:reduce){.pulse{animation:.5s step-end forwards pulse-still}@keyframes pulse-still{0%{opacity:.8}to{opacity:0}}}.offline{border:1px dashed var(--border);color:var(--dim);border-radius:10px;align-items:center;gap:8px;margin:0 18px 10px;padding:8px 12px;font-size:12px;display:flex}.offline__dot{background:var(--warn);border-radius:50%;flex:none;width:7px;height:7px}.banner--fixed{inset:auto 12px calc(12px + env(safe-area-inset-bottom)) 12px;z-index:20;cursor:pointer;position:fixed}.weekplan__day{border-bottom:1px solid var(--rule);padding:16px 18px 6px}.weekplan__day:last-child{border-bottom:0}.weekplan__empty{color:var(--dim);margin:0;padding:2px 0 4px;font-size:13px}.weekplan__rows{flex-direction:column;display:flex}.weekplan__row{border-bottom:1px dashed var(--rule);justify-content:space-between;align-items:baseline;gap:12px;padding:7px 0;display:flex}.weekplan__row:last-child{border-bottom:0}.weekplan__who{text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.weekplan__units{text-align:right;max-width:55%;color:var(--dim);text-overflow:ellipsis;white-space:nowrap;flex:none;font-size:12.5px;overflow:hidden}.weekplan__free{color:var(--dim);margin:8px 0 0;font-size:12px}.confirm{border-bottom:1px solid var(--rule);margin:0 18px 14px;padding-bottom:6px}.confirm__row{border-bottom:1px dashed var(--rule);padding:10px 0}.confirm__row:last-child{border-bottom:0}.confirm__top{cursor:pointer;align-items:baseline;gap:10px;display:flex}.confirm__who{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:14px;overflow:hidden}.confirm__sum{font-size:13px}.confirm__meta{color:var(--dim);margin:3px 0 0;font-size:12px}.confirm__meta b{color:var(--warn);font-weight:600}.confirm__lag{color:var(--dim);margin:3px 0 0;font-size:11.5px}.confirm__acts{gap:8px;margin-top:8px;display:flex}.confirm__acts .btn{flex:1;min-height:0;padding:7px 10px;font-size:12.5px}.tl{flex-direction:column;gap:6px;margin:10px 0 12px;display:flex}.tl__item{text-align:left;background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--accent);width:100%;color:var(--text);font:inherit;border-radius:8px;align-items:center;gap:8px;padding:9px 10px;display:flex}button.tl__item{cursor:pointer}button.tl__item:active{transform:scale(.995)}.tl__item[data-active]{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}.tl__item[data-current]{box-shadow:0 0 0 1px var(--accent) inset}.tl__item[data-kind=service]{border-left-color:var(--away);background:0 0}.tl__item[data-zone=red]{border-left-color:var(--zone-red)}.tl__item[data-zone=green]{border-left-color:var(--zone-green)}.tl__item[data-zone=blue]{border-left-color:var(--zone-blue)}.tl__item[data-deep]{border-left-color:var(--warn);background:color-mix(in srgb, var(--warn) 8%, transparent)}.tl__time{width:86px;color:var(--dim);font-variant-numeric:tabular-nums;flex:none;font-size:12px}.tl__name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:13px;overflow:hidden}.tl__flag{color:var(--warn);text-transform:lowercase;flex:none;font-size:10px}.tl__unit{color:var(--good);flex:none;font-size:11px}.tl__span{color:var(--dim2);flex:none;font-size:11px}.tl__mark{background:var(--dim2);border-radius:50%;flex:none;width:7px;height:7px}.tl__mark--accepted{background:var(--good)}.tl__mark--needs_fix{background:var(--warn)}.tl__mark--redo{background:var(--danger)}.kbcard{border-left:2px solid var(--rule);margin:2px 0 8px;padding:4px 12px 10px}.kbcard h4{letter-spacing:.06em;text-transform:uppercase;color:var(--dim);margin:12px 0 4px;font-size:12px}.kbcard p,.kbcard li{margin:4px 0;font-size:13px;line-height:1.5}.kbcard ol,.kbcard ul{margin:4px 0;padding-left:20px}.kbcard b{color:var(--ink)}.opsubmit{background:var(--bg);border-radius:var(--radius-md);margin:2px 0 10px;padding:10px 12px}.opsubmit__status{color:var(--dim);margin:0 0 8px;font-size:12.5px}.opsubmit__status--accepted{color:var(--good)}.opsubmit__status--needs_fix{color:var(--warn)}.opsubmit__status--redo{color:var(--danger)}.opsubmit__photos{gap:8px;margin-bottom:8px;display:flex}.opsubmit__pick{text-align:center;border:1px dashed var(--border);min-height:60px;color:var(--dim);cursor:pointer;border-radius:8px;flex:1;justify-content:center;align-items:center;padding:8px;font-size:12px;display:flex}.opsubmit__pick input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.review__photos{gap:8px;margin:8px 0;display:flex}.review__photo{color:var(--dim);flex-direction:column;flex:1;align-items:center;gap:4px;font-size:11px;display:flex}.review__photo img{aspect-ratio:4/3;object-fit:cover;border:1px solid var(--border);border-radius:8px;width:100%}.tl__legend{flex-wrap:wrap;gap:6px;margin:8px 0 2px;display:flex}.tl__chip{border:1px solid var(--border);color:var(--dim);border-radius:999px;padding:3px 10px;font-size:11px}.tl__chip[data-main]{border-color:var(--accent);color:var(--text)}.viewas{padding:calc(8px + env(safe-area-inset-top,0px)) 18px 8px;color:var(--on-warn-fill);background:var(--warn-fill);align-items:center;gap:10px;font-size:12px;font-weight:600;display:flex}.viewas span{flex:1;min-width:0}.viewas button{border:1px solid color-mix(in srgb, var(--on-warn-fill) 45%, transparent);color:var(--on-warn-fill);cursor:pointer;background:0 0;border-radius:999px;flex:none;padding:4px 12px;font-size:12px}.week{flex-direction:column;gap:1px;display:flex}.week__day{border-bottom:1px solid var(--rule);align-items:baseline;gap:10px;padding:5px 0;display:flex}.week__lbl{letter-spacing:.06em;width:26px;color:var(--dim);flex:none;font-size:11px}.week__val{flex:1;min-width:0;font-size:13px}.week__day[data-empty] .week__val{color:var(--dim2)}.filters{padding:0 18px 12px}.tag--warn{border-color:var(--warn);color:var(--warn)}.period__btn{border:1px solid var(--border);color:var(--dim);cursor:pointer;background:0 0;border-radius:8px;padding:5px 12px;font-size:12px}.period__btn:disabled{opacity:.4;cursor:default}.bulk{grid-template-columns:1fr;gap:14px;display:grid}@media (width>=620px){.bulk{grid-template-columns:1fr 1fr}}.bulk__box{border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:2px;max-height:240px;padding:8px 10px;display:flex;overflow-y:auto}.bulk__head{align-items:baseline;gap:8px;margin:0 0 6px;display:flex}.bulk__all{color:var(--accent);cursor:pointer;background:0 0;border:0;margin-left:auto;padding:0;font-size:11px}.logincode{border:1px solid var(--line);background:var(--surface);border-radius:12px;flex-direction:column;align-items:center;gap:8px;margin:8px 0;padding:12px;display:flex}.qr{border-radius:8px;line-height:0;display:block;overflow:hidden}.logincode__code{letter-spacing:.12em;color:var(--heading);margin:0;font-size:26px;font-weight:700}.app__logohome{color:inherit;margin:-8px 0;padding:8px 0;line-height:0;text-decoration:none;display:inline-block}
