:root{--ink:#17221c;--muted:#66736b;--paper:#f1f5f1;--surface:#fff;--accent:#0d7a55;--accent-dark:#07543a;--accent-pale:#ddf4e9;--line:#dce4dc;--free:#e6ece6;--danger:#b42318;--danger-ink:#8a1c13;--danger-pale:#fdecea;--warning-ink:#7a2e0e;--warning-pale:#fff4e5;--warning-line:#f3d3a4;--vacation-ink:#1d4f91;--vacation-pale:#e3edfb;--vacation-line:#c5d8f5;--shadow:0 14px 34px #17221c14}*{box-sizing:border-box}[hidden]{display:none!important}html,body{min-height:100%}body{color:var(--ink);background:var(--paper);margin:0;font-family:Avenir Next,Segoe UI,sans-serif;font-size:16px}h1,h2,p{margin:0}button,input,select,textarea{font:inherit}button{color:#fff;background:var(--accent);border:1px solid var(--accent);cursor:pointer;border-radius:.4rem;min-height:2.75rem;padding:.6rem .9rem;font-weight:650;transition:background .16s,border-color .16s}button:not(:disabled):hover{background:var(--accent-dark);border-color:var(--accent-dark)}button:disabled{cursor:not-allowed;opacity:.45;filter:grayscale()}button:focus-visible,a:focus-visible{outline:2px solid var(--accent-dark);outline-offset:2px}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.secondary-button,.secondary-button:not(:disabled):hover{color:var(--accent-dark);border-color:var(--line);background:#fff}.secondary-button:not(:disabled):hover{background:var(--accent-pale)}.soft-button,.soft-button:not(:disabled):hover{color:var(--accent-dark);background:var(--accent-pale);border-color:var(--accent-pale)}.soft-button:not(:disabled):hover{border-color:var(--accent)}.text-button,.text-button:not(:disabled):hover{color:var(--accent-dark);background:0 0;border-color:#0000}.text-button:not(:disabled):hover{text-decoration:underline}.danger-text,.danger-text:not(:disabled):hover{color:var(--danger)}.danger-button,.danger-button:not(:disabled):hover{background:var(--danger);border-color:var(--danger)}.danger-button:not(:disabled):hover{background:var(--danger-ink)}.icon-button,.icon-link{width:2.75rem;height:2.75rem;color:var(--accent-dark);background:0 0;border:0;border-radius:.4rem;justify-content:center;align-items:center;padding:0;display:inline-flex}.icon-button:not(:disabled):hover,.icon-link:hover{color:var(--accent-dark);background:var(--accent-pale)}.plain-link{color:var(--accent-dark);padding:.6rem 0;font-weight:650;display:inline-block}.app{flex-direction:column;min-height:100dvh;display:flex}.header{z-index:3;border-bottom:1px solid var(--line);background:#fff;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.25rem 1rem;min-height:3.75rem;padding:.4rem clamp(.75rem,4vw,3.5rem);display:flex;position:sticky;top:0}.header-title{align-items:center;gap:.6rem;min-width:0;display:flex}.header-title h1{text-overflow:ellipsis;white-space:nowrap;font-size:1.1rem;font-weight:800;overflow:hidden}.brand{color:var(--accent-dark);letter-spacing:.015em;font-size:1.1rem;font-weight:800;text-decoration:none}.header-nav{flex-wrap:wrap;gap:0;font-size:.9rem;display:flex}.header-nav a{min-height:2.75rem;color:var(--accent-dark);border-radius:.4rem;flex:none;align-items:center;padding:0 .5rem;font-weight:650;text-decoration:none;display:inline-flex}.header-nav a:hover,.header-nav a[aria-current]{background:var(--accent-pale)}.loading{color:var(--muted);padding:2rem 1rem}.month-page,.narrow-page,.day-form{align-content:start;gap:.9rem;width:100%;max-width:34rem;margin:0 auto;padding:.75rem;display:grid}.month-page{max-width:62rem}.simple-page{align-content:center;min-height:100dvh;padding:1rem;display:grid}.panel{background:var(--surface);border:1px solid var(--line);width:100%;max-width:24rem;box-shadow:var(--shadow);border-radius:.7rem;gap:.9rem;margin:0 auto;padding:1.5rem;display:grid}.panel h1{font-size:1.5rem}form{gap:.9rem;display:grid}.card{background:var(--surface);border:1px solid var(--line);border-radius:.5rem;gap:.7rem;padding:.9rem;display:grid}.card h2{font-size:1.05rem;font-weight:800}.card-head{justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.sum{color:var(--muted);font-size:.85rem}.sum-error{color:var(--danger);font-weight:700}.card-warning{color:var(--warning-ink);background:var(--warning-pale);border-color:var(--warning-line)}.card-warning p{font-size:.9rem;line-height:1.45}.card-locked{color:var(--muted);font-size:.92rem}.field{color:var(--muted);letter-spacing:.05em;text-transform:uppercase;gap:.3rem;font-size:.75rem;font-weight:750;display:grid}.field input,.field textarea,.field select,.pause-row input,.user-list-head input,.user-select{width:100%;min-width:0;min-height:2.9rem;color:var(--ink);border:1px solid var(--line);letter-spacing:0;text-transform:none;background:#fff;border-radius:.4rem;padding:.5rem .7rem;font-size:1rem;font-weight:400}.field textarea{resize:vertical}.field input:disabled,.field textarea:disabled,.pause-row input:disabled{color:var(--ink);opacity:1;background:#f6f8f6}.field-error{color:var(--danger)}.field-error input{border:2px solid var(--danger)}.hint{color:var(--muted);font-size:.85rem;line-height:1.45}.problem{color:var(--danger-ink);background:var(--danger-pale);border-radius:.4rem;padding:.6rem .75rem;font-size:.9rem;line-height:1.4}.problem-warning{color:var(--warning-ink);background:#ffe9c9}.success{color:var(--accent-dark);background:var(--accent-pale);border-radius:.4rem;padding:.6rem .75rem;font-size:.9rem}.month-switch{justify-content:space-between;align-items:center;display:flex}.month-switch h2{font-size:1.25rem;font-weight:800}.calendar{gap:4px;display:grid}.calendar-head,.calendar-week{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;display:grid}.calendar-head{color:var(--muted);letter-spacing:.06em;text-align:center;text-transform:uppercase;font-size:.75rem;font-weight:750}.day,.day:not(:disabled):hover{min-height:3.6rem;color:var(--ink);border:1px solid var(--line);background:#fff;border-radius:.4rem;flex-direction:column;align-items:center;gap:.25rem;padding:.4rem 0 0;font-weight:400;display:flex}.day:not(:disabled):hover{border-color:var(--accent)}.day-empty{background:0 0;border-color:#0000}.day-number{font-size:.875rem;font-weight:700;line-height:1}.day-label{color:var(--accent-dark);font-size:.8rem;font-weight:750;line-height:1.2}.day-free,.day-free:not(:disabled):hover{background:var(--free)}.day-free .day-label{color:var(--muted);font-size:.65rem}.day-free.day-today .day-label,.day-free .day-hours{color:var(--accent-dark)}.day-vacation,.day-vacation:not(:disabled):hover{background:var(--vacation-pale);border-color:var(--vacation-line)}.day-vacation .day-label,.day-vacation .day-times{color:var(--vacation-ink);font-size:.7rem}.day-sick,.day-sick:not(:disabled):hover{background:#f1e9f7;border-color:#dccbe9}.day-sick .day-label,.day-sick .day-times{color:#5b2a86;font-size:.7rem}.day-violation,.day-violation:not(:disabled):hover{background:var(--warning-pale);border:2px solid #c2570c}.day-violation .day-label,.day-violation .day-hours{color:var(--warning-ink)}.day-today,.day-today:not(:disabled):hover{border:2px solid var(--accent)}.day-locked{opacity:.62}.day:disabled,.day-future{cursor:default;opacity:.5;filter:none}.tiles{grid-template-columns:repeat(auto-fit,minmax(6.5rem,1fr));gap:.5rem;display:grid}.tile{border:1px solid var(--line);background:#fff;border-radius:.5rem;gap:.1rem;padding:.6rem .75rem;display:grid}.tile span{color:var(--muted);letter-spacing:.05em;text-transform:uppercase;font-size:.7rem;font-weight:750}.tile strong{font-size:1.25rem;font-weight:800}.tiles-four{grid-template-columns:repeat(2,minmax(0,1fr))}.tile-warning{background:var(--warning-pale);border-color:var(--warning-line)}.tile-warning span,.tile-warning strong{color:var(--warning-ink)}.calendar-wide{gap:6px}.calendar-wide .calendar-head,.calendar-wide .calendar-week{grid-template-columns:repeat(7,minmax(0,1fr)) 4.5rem;gap:6px}.calendar-wide .calendar-head{text-align:left}.calendar-wide .week-sum-head{text-align:right}.calendar-wide .day,.calendar-wide .day:not(:disabled):hover{text-align:left;align-items:flex-start;gap:.15rem;min-height:5.6rem;padding:.5rem .6rem}.calendar-wide .day-number{justify-content:space-between;width:100%;display:flex}.day-flag{color:var(--warning-ink);font-size:.75rem}.day-times{font-size:.82rem}.day-pause{max-width:100%;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;overflow:hidden}.day-hours{color:var(--accent-dark);margin-top:auto;font-size:1rem;font-weight:800}.week-sum{justify-content:flex-end;align-items:flex-end;padding:.5rem .2rem;font-size:1.05rem;font-weight:800;display:flex}.calendar-scroll{overflow-x:auto}.calendar-scroll .calendar-wide{min-width:46rem}.day-page{flex-direction:column;flex:1;display:flex}.day-form{flex:1}.segments{background:var(--free);border-radius:.5rem;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding:4px;display:grid}.segments button,.segments button:not(:disabled):hover{color:var(--ink);background:0 0;border-color:#0000}.segments button[aria-pressed=true],.segments button[aria-pressed=true]:not(:disabled):hover{color:#fff;background:var(--accent)}.time-pair{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;display:grid}.time-pair input{min-height:3.25rem;font-size:1.35rem;font-weight:700}.pause-row{align-items:center;gap:.5rem;display:flex}.pause-row input{flex:1 1 0;font-size:1.1rem;font-weight:650}.pause-row span{color:var(--muted);font-size:.9rem}.day-footer{border-top:1px solid var(--line);background:#fff;gap:.6rem;padding:.8rem max(.75rem,50% - 16.25rem) 1.1rem;display:grid;position:sticky;bottom:0}.work-sum{justify-content:space-between;align-items:baseline;display:flex}.work-sum span{color:var(--muted);font-size:.9rem;font-weight:650}.work-sum strong{font-size:1.6rem;font-weight:800}.footer-error{color:var(--danger-ink);font-size:.9rem;font-weight:700}.day-footer>button{min-height:3.1rem;font-size:1.05rem}.admin-page{align-content:start;gap:1rem;width:100%;padding:.75rem;display:grid}.user-list{align-content:start;gap:.5rem;display:grid}.user-list-head{gap:.5rem;display:flex}.user-rows{display:none}.admin-month{align-content:start;gap:.9rem;min-width:0;display:grid}.page-heading{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:.75rem 1.5rem;display:flex}.eyebrow{color:var(--accent);letter-spacing:.1em;text-transform:uppercase;font-size:.73rem;font-weight:800}.person-name{margin:.15rem 0 .35rem;font-size:clamp(1.5rem,4vw,2.1rem);font-weight:800}.badges{flex-wrap:wrap;gap:.35rem;display:flex}.badge{color:var(--muted);background:#e9eee9;border-radius:999px;padding:.2rem .6rem;font-size:.8rem;font-weight:700}.badge-warning{color:var(--warning-ink);background:var(--warning-pale)}.heading-actions{flex-wrap:wrap;gap:.5rem;display:flex}dialog{width:min(34rem,100% - 1.5rem);max-height:calc(100dvh - 1.5rem);color:var(--ink);border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:.7rem;padding:1.25rem;overflow-y:auto}dialog::backdrop{background:#18231d59}dialog h2{margin-bottom:.6rem;font-size:1.2rem}dialog>p{margin-bottom:.75rem;line-height:1.45}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;display:grid}.form-grid .wide{grid-column:1/-1}.check{color:var(--muted);cursor:pointer;align-items:flex-start;gap:.6rem;font-size:.88rem;line-height:1.4;display:flex}.check input{width:1.25rem;height:1.25rem;accent-color:var(--accent);flex:none;margin:.1rem 0 0}.check strong{color:var(--ink);display:block}.dialog-actions{flex-wrap:wrap;justify-content:flex-end;gap:.5rem;margin-top:.4rem;display:flex}.dialog-actions .delete-action{margin-right:auto}.violation-list{max-height:14rem;color:var(--warning-ink);background:var(--warning-pale);border-radius:.4rem;gap:.4rem;margin-bottom:.9rem;padding:.7rem;font-size:.9rem;line-height:1.4;display:grid;overflow-y:auto}.released-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:1rem;padding:.2rem 0;display:flex}.release-form{grid-template-columns:minmax(0,1fr);align-items:end}@media (min-width:900px){.month-page{gap:1.1rem;padding:1.5rem}.admin-page{grid-template-columns:17rem minmax(0,1fr);gap:1.5rem;padding:1.5rem clamp(1rem,3vw,3.5rem)}.user-list{border:1px solid var(--line);background:#fff;border-radius:.5rem;max-height:calc(100dvh - 6.75rem);padding:.75rem;position:sticky;top:5.25rem}.user-list-head{flex-direction:column}.user-select{display:none}.user-rows{margin:0 -.75rem -.75rem;display:block;overflow-y:auto}.user-row,.user-row:not(:disabled):hover{width:100%;color:var(--ink);border:0;border-top:1px solid var(--line);text-align:left;background:#fff;border-radius:0;justify-content:space-between;align-items:center;gap:.5rem;padding:.5rem .75rem;font-weight:500;display:flex}.user-row:not(:disabled):hover{background:#f4f8f4}.user-row[aria-current],.user-row[aria-current]:not(:disabled):hover{background:var(--accent-pale);font-weight:800}.user-inactive,.user-inactive:not(:disabled):hover{color:var(--muted);background:#f6f8f6}.user-tag{color:var(--muted);flex:none;font-size:.75rem;font-weight:700}.user-tag-warning{color:var(--warning-ink)}.release-form{grid-template-columns:11rem minmax(0,1fr) auto}.tiles,.tiles-four{grid-template-columns:repeat(auto-fit,minmax(9rem,1fr))}.header-nav{gap:.25rem;font-size:1rem}.header-nav a{padding:0 .7rem}}
