@font-face{font-family:Atkinson;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/atkinson-400.woff2)format("woff2")}@font-face{font-family:Atkinson;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/atkinson-700.woff2)format("woff2")}@font-face{font-family:Atkinson;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/atkinson-400i.woff2)format("woff2")}:root{--bg:#1b1a18;--surface:#242320;--surface-2:#2d2b27;--line:#3b3934;--line-strong:#57534b;--ink:#f1ede4;--ink-2:#c9c3b6;--muted:#948e82;--green:#6cc04a;--green-ink:#10210a;--green-dim:#27391f;--red:#e5574f;--red-dim:#3d2220;--amber:#e2a93b;--amber-dim:#3b3020;--blue:#6aa9d8;--blue-dim:#22313d;--r:6px;--safe-b:env(safe-area-inset-bottom,0px)}:root[data-theme=light]{--bg:#f3efe6;--surface:#fbf9f4;--surface-2:#ece7db;--line:#d8d2c4;--line-strong:#a9a294;--ink:#1d1c19;--ink-2:#44423c;--muted:#726d63;--green:#4f9a33;--green-ink:#fff;--green-dim:#dff0d5;--red:#c6392f;--red-dim:#f8dcd9;--amber:#b47a12;--amber-dim:#f7e8c8;--blue:#2f6f9f;--blue-dim:#dbe8f2}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}html,body{background:var(--bg);color:var(--ink);-webkit-tap-highlight-color:transparent;margin:0;font-family:Atkinson,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:17px;line-height:1.4}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{margin:0 0 .5rem;font-weight:700;line-height:1.15}h1{font-size:1.7rem}h2{font-size:1.15rem}h3{color:var(--muted);text-transform:uppercase;letter-spacing:.1em;font-size:.8rem}p{margin:.35rem 0}strong{font-weight:700}code{background:var(--surface-2);border-radius:3px;padding:.05rem .35rem;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.9em}:focus-visible{outline:2px solid var(--green);outline-offset:2px}.shell{flex-direction:column;min-height:100dvh;display:flex}.topbar{background:var(--surface);border-bottom:2px solid var(--line);z-index:10;justify-content:space-between;align-items:center;gap:1rem;padding:.65rem 1rem;display:flex;position:sticky;top:0}.topbar img{height:24px;display:block}.topbar .who{font-size:.9rem}.session{color:var(--ink);align-items:center;gap:.55rem;display:flex}.session:hover{text-decoration:none}.session .small{color:var(--muted)}.avatar,.avatar-img{background:var(--green);width:32px;height:32px;color:var(--green-ink);border-radius:50%;flex:none;place-items:center;font-size:.72rem;font-weight:700;display:grid}.content{width:100%;max-width:900px;padding:1.1rem 1rem calc(5.2rem + var(--safe-b));flex:1;margin:0 auto}.nav{z-index:10;background:var(--surface);border-top:2px solid var(--line);padding-bottom:var(--safe-b);display:flex;position:fixed;bottom:0;left:0;right:0}.nav a{color:var(--muted);letter-spacing:.02em;border-top:3px solid transparent;flex-direction:column;flex:1 1 0;align-items:center;gap:.1rem;margin-top:-2px;padding:.5rem .2rem .45rem;font-size:.68rem;font-weight:700;display:flex}.nav a:hover{color:var(--ink-2);text-decoration:none}.nav a svg{stroke:currentColor;fill:none;stroke-width:1.9px;stroke-linecap:round;stroke-linejoin:round;width:22px;height:22px}.nav a.active{color:var(--green);border-top-color:var(--green)}.row{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.row.between{justify-content:space-between}.grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.6rem;display:grid}.page-head{border-bottom:2px solid var(--line);margin-bottom:.9rem;padding-bottom:.6rem}.page-head h1{margin:0}.page-head+.muted.small{margin:-.4rem 0 1rem}.muted{color:var(--muted)}.small{font-size:.85rem}.big{font-size:2rem;font-weight:700;line-height:1.05}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);margin-bottom:.9rem;padding:1rem}.card>h2:first-child,.card>.row:first-child>h2{margin-bottom:.6rem}.card.accent{border-left:5px solid var(--green)}.card.warn{border-left:5px solid var(--amber)}.card.danger{border-left:5px solid var(--red);background:var(--red-dim)}.card.danger h2,.card.danger strong{color:var(--red)}button,.btn{appearance:none;background:var(--green);color:var(--green-ink);border:2px solid var(--green);border-radius:var(--r);cursor:pointer;justify-content:center;align-items:center;gap:.4rem;padding:.65rem 1rem;font-family:inherit;font-size:1rem;font-weight:700;line-height:1.2;display:inline-flex}button:hover,.btn:hover{filter:brightness(1.08);color:var(--green-ink);text-decoration:none}button:active,.btn:active{filter:brightness(.92)}button.secondary,.btn.secondary{background:var(--surface-2);color:var(--ink);border-color:var(--line-strong)}button.secondary:hover,.btn.secondary:hover{color:var(--ink)}button.danger,.btn.danger{background:var(--red);border-color:var(--red);color:#fff}button.danger:hover,.btn.danger:hover{color:#fff}button.ghost,.btn.ghost{color:var(--ink-2);border-color:var(--line-strong);background:0 0}button.ghost:hover,.btn.ghost:hover{color:var(--ink);background:var(--surface-2)}button.small,.btn.small{padding:.35rem .6rem;font-size:.85rem}button:disabled,.btn:disabled{opacity:.4;cursor:default;filter:none}button.block,.btn.block{width:100%;padding:.85rem 1rem;font-size:1.05rem}input,select,textarea{appearance:none;background:var(--bg);color:var(--ink);border:2px solid var(--line);border-radius:var(--r);width:100%;padding:.6rem .75rem;font-family:inherit;font-size:1rem}input:focus,select:focus,textarea:focus{border-color:var(--green);outline:none}input::placeholder{color:var(--muted);opacity:.8}textarea::placeholder{color:var(--muted);opacity:.8}input[type=number]{text-align:center;font-variant-numeric:tabular-nums;width:5.5rem}input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}select{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23948e82' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");background-position:right .6rem center;background-repeat:no-repeat;padding-right:2.1rem}.row>select{width:auto}textarea{resize:vertical;min-height:6rem}label{color:var(--muted);margin-bottom:.3rem;font-size:.8rem;font-weight:700;display:block}.field{margin-bottom:.9rem}.stepper{border:2px solid var(--line);border-radius:var(--r);background:var(--bg);align-items:stretch;display:inline-flex;overflow:hidden}.stepper button{background:var(--surface-2);color:var(--ink);border:0;border-radius:0;padding:.45rem .95rem;font-size:1.25rem}.stepper button:first-child{border-right:2px solid var(--line)}.stepper button:last-child{border-left:2px solid var(--line)}.stepper input[type=number]{background:0 0;border:0;border-radius:0;width:3.4rem;padding:.45rem .2rem;font-size:1.2rem;font-weight:700}table{border-collapse:collapse;width:100%;font-size:.92rem}th,td{border-bottom:1px solid var(--line);text-align:left;vertical-align:middle;padding:.55rem .45rem}thead th{border-bottom:2px solid var(--line-strong)}tbody tr:last-child td{border-bottom:0}th{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:.75rem;font-weight:700}td.num,th.num{text-align:center;font-variant-numeric:tabular-nums}td:first-child{font-variant-numeric:tabular-nums;white-space:nowrap}.badge{letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;background:var(--surface-2);color:var(--ink-2);border:1px solid var(--line-strong);border-radius:3px;padding:.15rem .55rem;font-size:.74rem;font-weight:700;display:inline-block}.badge.ok{background:var(--green-dim);color:var(--green);border-color:var(--green)}.badge.warn{background:var(--amber-dim);color:var(--amber);border-color:var(--amber)}.badge.danger{background:var(--red);color:#fff;border-color:var(--red)}.badge.info{background:var(--blue-dim);color:var(--blue);border-color:var(--blue)}.badge.plain{text-transform:none;letter-spacing:0}.unit-tiles{grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:.6rem;margin-bottom:1rem;display:grid}.unit-tiles a{border-radius:var(--r);background:var(--surface);border:2px solid var(--line);min-height:78px;color:var(--ink);flex-direction:column;justify-content:center;align-items:center;gap:.35rem;padding:.8rem .5rem;font-weight:700;display:flex}.unit-tiles a:hover{border-color:var(--line-strong);text-decoration:none}.unit-tiles a.mine{border-color:var(--green)}.unit-tiles a.late{border-color:var(--red)}.unit-tiles .badge{padding:.08rem .4rem;font-size:.64rem}.hero .big{margin:.1rem 0 .25rem}.hero .row:last-child{margin-top:.8rem}.med-row{border-bottom:1px solid var(--line);grid-template-columns:1fr auto auto;align-items:center;gap:.7rem;padding:.5rem 0;display:grid}.med-row:last-child{border-bottom:0}.med-row .prev{color:var(--muted);text-align:right;font-variant-numeric:tabular-nums;min-width:3.5rem;font-size:.85rem}.med-row input[type=number]{width:4.6rem;font-size:1.05rem;font-weight:700}.schedule{padding:0;overflow-x:auto}.schedule>p{padding:.5rem .8rem}.schedule table{border-collapse:separate;border-spacing:0;min-width:680px;font-size:.85rem}.schedule th,.schedule td{border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:.4rem}.schedule tr>:last-child{border-right:0}.schedule tbody tr:last-child>*{border-bottom:0}.schedule thead th{z-index:3;background:var(--surface);border-bottom:2px solid var(--line-strong);position:sticky;top:0}.schedule thead th:first-child{z-index:4;left:0}.schedule tbody th,.schedule thead th:first-child{width:100px;min-width:100px}.schedule tbody th{z-index:2;background:var(--surface);font-size:.7rem;line-height:1.25;position:sticky;left:0}.schedule td{vertical-align:top;min-width:86px}.schedule td.mine{background:var(--green-dim)}.schedule th.today{color:var(--blue);border-bottom-color:var(--blue)}.schedule td.today{background:var(--blue-dim)}.schedule td.mine.today{background:var(--green-dim)}.schedule td.mine .name{color:var(--ink);font-weight:700}:root[data-theme=light] .schedule th,:root[data-theme=light] .schedule td{border-color:var(--line-strong)}:root[data-theme=light] .schedule tbody th{color:var(--ink-2)}.schedule .pick{margin-left:.2rem;padding:.1rem .4rem;font-size:.75rem}.schedule .name{justify-content:space-between;align-items:center;gap:.3rem;margin-bottom:.2rem;display:flex}.login{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:.9rem;padding:2rem 1.5rem;display:flex}.login img{border:3px solid var(--line-strong);border-radius:50%;width:120px;margin-bottom:.6rem}.login h1{font-size:2.2rem}.login .btn{margin-top:.5rem;padding:.85rem 1.5rem}.divider{border-top:1px solid var(--line);margin:.8rem 0}.list-item{border-top:1px solid var(--line);padding:.6rem 0}.empty{color:var(--muted);padding:.8rem .2rem;font-size:.9rem;font-style:italic}.print-only{display:none}@media (width<=480px){h1{font-size:1.5rem}.content{padding-left:.8rem;padding-right:.8rem}}@media print{body{color:#000;background:#fff}.topbar,.nav,.no-print{display:none!important}.content{max-width:none;padding:0}.card{break-inside:avoid;background:#fff;border:1px solid #000}th,td{color:#000;border-bottom:1px solid #000}.print-only{display:block}}.topbar .logo-ink,:root[data-theme=light] .logo-light{display:none}:root[data-theme=light] .logo-ink{display:block}.segmented{border:2px solid var(--line-strong);border-radius:var(--r);display:inline-flex;overflow:hidden}.segmented button{background:var(--surface);color:var(--ink-2);border:0;border-radius:0;padding:.5rem 1rem;font-weight:700}.segmented button+button{border-left:2px solid var(--line-strong)}.segmented button.active{background:var(--green);color:var(--green-ink)}.segmented.days{width:100%;margin:.6rem 0 .9rem;display:flex}.segmented.days button{flex-direction:column;flex:1 1 0;gap:0;padding:.4rem .1rem;font-size:.8rem;line-height:1.15;position:relative}.segmented.days button .small{font-size:.75rem;font-weight:400}.segmented.days button .count{background:var(--green);color:var(--green-ink);border-radius:3px;padding:0 .25rem;font-size:.6rem;position:absolute;top:2px;right:3px}.segmented.days button.active .count{background:var(--green-ink);color:var(--green)}.shift-row{border-top:1px solid var(--line);grid-template-columns:7rem 1fr;align-items:start;gap:.5rem;padding:.5rem 0;display:grid}.shift-row strong{padding-top:.35rem;font-size:.85rem}.chip{border:2px solid var(--line-strong);border-radius:var(--r);background:var(--surface-2);align-items:center;gap:.3rem;padding:.2rem .3rem .2rem .6rem;font-size:.9rem;font-weight:700;display:inline-flex}.chip button{color:var(--muted);background:0 0;border:0;padding:0 .3rem;font-size:1rem;line-height:1}.chip button:hover{color:var(--red);filter:none}select.add{width:auto;color:var(--muted);padding:.3rem 2rem .3rem .6rem;font-size:.85rem;font-weight:700}.staff-form{border:2px dashed var(--line-strong);border-radius:var(--r);margin:.6rem 0 .3rem;padding:.8rem}.staff-form .row>.field{flex:140px;margin-bottom:.5rem}@media (width<=420px){.shift-row{grid-template-columns:1fr}.shift-row strong{padding-top:0}}.month{grid-template-columns:repeat(7,1fr);gap:3px;margin:.7rem 0 1rem;display:grid}.month .dow{text-align:center;color:var(--muted);padding:.2rem 0;font-size:.7rem;font-weight:700}.month .day{background:var(--surface-2);min-height:46px;color:var(--ink);border-radius:var(--r);border:2px solid transparent;flex-direction:column;justify-content:center;align-items:center;gap:.1rem;padding:.2rem;font-size:.95rem;font-weight:700;display:flex}.month .day .n{color:var(--green);min-height:.9em;font-size:.65rem;font-weight:700}.month .day.empty{background:var(--bg);color:var(--muted)}.month .day.partial .n{color:var(--amber)}.month .day.today{border-color:var(--blue)}.month .day.sel{background:var(--green);color:var(--green-ink);border-color:var(--green)}.month .day.sel .n{color:var(--green-ink)}.segmented.dows button{min-width:2.4rem;padding:.45rem .7rem}.segmented.shifts{width:100%;margin:.6rem 0 .2rem;display:flex}.segmented.shifts button{flex:1 1 0}.segmented.shifts button:disabled{color:var(--muted);background:var(--bg);opacity:1;cursor:not-allowed}