:root{--bg:#f3f5f8;--text:#0f172a;--muted:#64748b;--line:#e2e8f0;--blue:#2563eb;--green:#16a34a;--red:#dc2626;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--text);background:var(--bg)}
*{box-sizing:border-box}body{margin:0;background:var(--bg)}button,input,textarea,select{font:inherit}.hidden{display:none!important}
.screen{min-height:100vh;display:grid;place-items:center;padding:24px}.login-card{width:min(100%,390px);background:#fff;padding:28px;border-radius:26px;box-shadow:0 16px 45px #0f172a22;text-align:center;display:grid;gap:14px}.login-card h1,.login-card p{margin:0}.login-card p{color:var(--muted)}
input,textarea,select{width:100%;border:1px solid var(--line);border-radius:14px;padding:14px;background:#fff;color:var(--text)}.btn{border:0;border-radius:15px;padding:14px;font-weight:800}.primary{background:var(--blue)!important;color:#fff!important}.secondary{background:#eef4ff;color:#1d4ed8}.danger{background:#fee2e2!important;color:#991b1b!important}
.app{max-width:760px;margin:auto;padding:calc(18px + env(safe-area-inset-top)) 14px 40px}header,.sectionhead,.modalhead{display:flex;align-items:center;justify-content:space-between;gap:12px}h1,h2{margin:0}small{color:var(--muted);font-weight:800;letter-spacing:.08em}.icon,.small,.weeknav button{border:0;background:#fff;border-radius:14px;min-height:44px;padding:0 14px;font-weight:800;box-shadow:0 4px 14px #0f172a12}
.weeknav{display:grid;grid-template-columns:50px 1fr 50px;gap:9px;margin:18px 0 12px}.weeknav button:first-child,.weeknav button:last-child{font-size:28px}.stats{display:grid;grid-template-columns:1fr 1fr;gap:9px}.stats article{background:#fff;border-radius:17px;padding:13px;box-shadow:0 4px 14px #0f172a10}.stats span{display:block;color:var(--muted);font-size:12px}.stats strong{font-size:20px;display:block;margin-top:5px}.stats small{font-size:10px;color:#b45309}
.tabs{display:grid;grid-template-columns:1fr 1fr;background:#e7ecf3;padding:4px;border-radius:16px;margin:17px 0}.tab{border:0;background:transparent;padding:11px;border-radius:12px;font-weight:800;color:var(--muted)}.tab.active{background:#fff;color:var(--text);box-shadow:0 3px 10px #0f172a12}.period-toggle{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin:0 0 12px}.period-toggle button{border:1px solid var(--line);background:#fff;padding:11px;border-radius:13px;font-weight:800}.period-toggle button.active{background:#0f172a;color:#fff}
.chips{display:flex;gap:8px;overflow:auto;padding:2px 1px 5px}.chip{flex:0 0 66px;border:0;background:#fff;border-radius:15px;padding:9px;box-shadow:0 4px 13px #0f172a10}.chip span,.chip strong{display:block}.chip span{font-size:11px;color:var(--muted);font-weight:800}.chip strong{font-size:20px;margin-top:3px}.chip.active{background:var(--blue);color:#fff}.chip.active span{color:#dbeafe}.sectionhead{margin:20px 2px 10px}.list{display:grid;gap:9px}.card{background:#fff;border-radius:19px;padding:14px;box-shadow:0 4px 15px #0f172a10}.row{display:flex;justify-content:space-between;align-items:center;gap:12px}.name{font-size:18px;font-weight:850}.meta{color:var(--muted);font-size:13px;margin-top:4px}.result{text-align:right}.result strong{display:block;font-size:19px}.result span{display:block;color:var(--muted);font-size:12px;margin-top:3px}.actions{display:grid;grid-template-columns:1fr 46px;gap:8px;margin-top:11px}.entry,.gear{border:0;border-radius:13px;padding:12px;font-weight:800}.entry{background:#eef4ff;color:#1d4ed8}.entry.done{background:#dcfce7;color:#166534}.entry.absent{background:#fee2e2;color:#991b1b}.entry.off{background:#f1f5f9;color:#475569}.gear{background:#f8fafc}.note{font-size:13px;color:var(--muted);margin-top:8px}.empty{text-align:center;padding:28px;color:var(--muted)}
dialog{border:0;padding:0;background:transparent;width:min(calc(100% - 20px),540px);max-height:94vh}dialog::backdrop{background:#0f172a88}.modal{background:#fff;border-radius:25px;padding:19px;display:grid;gap:13px;max-height:94vh;overflow:auto}.modal label{font-size:13px;color:var(--muted);font-weight:800;display:grid;gap:6px}.status{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.status button{border:1px solid var(--line);border-radius:13px;padding:12px 5px;background:#fff;font-weight:800}.status .worked.active{background:#dcfce7;color:#166534}.status .absent.active{background:#fee2e2;color:#991b1b}.status .off.active{background:#f1f5f9;color:#475569}.quick{display:grid;grid-template-columns:repeat(5,1fr);gap:5px;margin-top:7px}.quick button{border:0;border-radius:11px;padding:9px 2px;font-weight:800}.notice,.warning{margin:0;padding:10px;border-radius:12px;background:#fff7ed;color:#9a3412;font-size:12px}.form-actions{display:grid;grid-template-columns:1fr auto;gap:7px}
.pay-lines{display:grid;gap:7px;border-top:1px solid var(--line);margin-top:12px;padding-top:12px}.pay-lines>div{display:flex;justify-content:space-between;gap:10px;font-size:14px}.pay-total{font-size:16px!important;border-top:1px dashed var(--line);padding-top:7px}.expense-open{width:100%;margin-top:12px}.expense-totals{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.expense-totals>div{background:#f8fafc;padding:10px;border-radius:12px}.expense-totals span,.expense-totals strong{display:block}.expense-totals span{font-size:10px;color:var(--muted)}.expense-totals strong{margin-top:4px;font-size:14px}.expense-form{display:grid;gap:10px;padding:13px;background:#f8fafc;border-radius:17px}.expense-item{background:#f8fafc;border:1px solid var(--line);border-radius:16px;padding:12px}.expense-item.voided{opacity:.6}.expense-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.expense-actions button{border:0;border-radius:10px;padding:8px;background:#e2e8f0;font-size:12px;font-weight:800}.expense-actions .danger-text{color:#b91c1c;background:#fee2e2}
.toast{position:fixed;z-index:20;left:50%;bottom:25px;transform:translateX(-50%) translateY(20px);background:#0f172a;color:#fff;padding:12px 16px;border-radius:13px;opacity:0;transition:.2s;max-width:calc(100% - 30px)}.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
@media(min-width:620px){.stats{grid-template-columns:repeat(4,1fr)}}
