:root{--bg:#f4f7fa;--surface:#fff;--text:#14212b;--muted:#4a5a66;--line:#d5dee5;--primary:#0b5c8c;--primary-text:#fff;--ok:#17703a;--ok-bg:#e3f4e8;--warn:#8a5200;--warn-bg:#fff1d6;--danger:#a12424;--danger-bg:#fde6e6;--test:#5b2a86;--test-bg:#f1e6fb;--radius:14px;--tap:56px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-size:18px}*{box-sizing:border-box}html{scrollbar-gutter:stable}body{background:var(--bg);color:var(--text);-webkit-text-size-adjust:100%;margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.45}h1{margin:0 0 .75rem;font-size:1.5rem}h2{margin:1.5rem 0 .5rem;font-size:1.2rem}p{margin:0 0 .75rem}.screen{max-width:640px;margin:0 auto;padding:16px 16px 112px}.screen.wide{max-width:1100px}.centered{align-content:center;gap:14px;min-height:100dvh;padding-bottom:16px;display:grid}.topbar{background:var(--primary);color:var(--primary-text);align-items:center;gap:12px;padding:12px 16px;display:flex}.topbar .who{flex:1;min-width:0}.topbar .who strong{font-size:1.05rem;display:block}.topbar .who span{opacity:.9;font-size:.9rem}.btn{min-height:var(--tap);border-radius:var(--radius);border:2px solid var(--primary);background:var(--surface);color:var(--primary);font:inherit;cursor:pointer;justify-content:center;align-items:center;gap:10px;padding:0 20px;font-weight:600;text-decoration:none;display:inline-flex}.btn.primary{background:var(--primary);color:var(--primary-text)}.btn.go{background:var(--ok);border-color:var(--ok);color:#fff;font-size:1.15rem}.btn.danger{border-color:var(--danger);color:var(--danger)}.btn.block{width:100%;display:flex}.btn:disabled{opacity:.5;cursor:default}.btn:focus-visible,input:focus-visible,select:focus-visible{outline-offset:2px;outline:3px solid #f2a900}.stack{gap:14px;display:grid}.stack>h1,.stack>p{margin-bottom:0}.row{flex-wrap:wrap;gap:10px;display:flex}.home-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}.home-btn{border-radius:var(--radius);border:2px solid var(--primary);background:var(--surface);min-height:120px;color:var(--primary);font:inherit;text-align:center;cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:12px;font-size:1.05rem;font-weight:700;display:flex}.home-btn:disabled{border-color:var(--line);color:var(--muted);cursor:default}.home-btn small{font-size:.85rem;font-weight:500}label{gap:6px;font-weight:600;display:grid}input,select{min-height:var(--tap);border:2px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--text);font:inherit;width:100%;padding:0 14px;font-size:1.1rem}input.pin{letter-spacing:.6em;text-align:center;padding-left:.6em;font-size:2rem}.date-field{width:100%;min-height:var(--tap);border:2px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--text);font:inherit;text-align:left;cursor:pointer;justify-content:space-between;align-items:center;gap:10px;padding:0 14px;font-size:1.1rem;font-weight:400;transition:border-color .15s,box-shadow .15s;display:flex}.date-field svg{color:var(--primary);flex:none}.date-field:hover,.date-field[aria-expanded=true]{border-color:var(--primary)}.date-field[aria-expanded=true]{box-shadow:0 0 0 3px #0b5c8c26}.calendar{z-index:30;background:var(--surface);border:1px solid var(--line);border-radius:18px;width:320px;padding:14px;animation:.16s ease-out calendar-in;position:fixed;box-shadow:0 14px 36px #14212b33}@keyframes calendar-in{0%{opacity:0;transform:translateY(-6px)scale(.98)}}@media (prefers-reduced-motion:reduce){.calendar{animation:none}.date-field,.calendar-cell,.calendar-nav,.calendar-link{transition:none}}.calendar-head{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.calendar-head strong{font-size:1.05rem}.calendar-nav{width:40px;height:40px;color:var(--primary);cursor:pointer;background:0 0;border:0;border-radius:12px;place-items:center;transition:background .12s;display:grid}.calendar-nav:hover:enabled{background:var(--bg)}.calendar-nav:disabled{color:var(--line);cursor:default}.calendar-grid.months{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.calendar-grid.days,.calendar-weekdays{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.calendar-weekdays{color:var(--muted);text-align:center;margin-bottom:4px;font-size:.85rem;font-weight:600}.calendar-cell{min-height:42px;color:var(--text);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:12px;transition:background .12s,color .12s}.calendar-grid.days .calendar-cell{min-height:38px;font-size:.95rem}.calendar-blank{min-height:38px}.calendar-cell:hover:enabled{background:var(--bg)}.calendar-cell.current{box-shadow:inset 0 0 0 2px var(--line)}.calendar-cell[aria-pressed=true],.calendar-cell[aria-pressed=true]:hover:enabled{background:var(--primary);color:var(--primary-text);font-weight:700}.calendar-cell:disabled{color:var(--line);cursor:default}.calendar-foot{justify-content:space-between;margin-top:8px;display:flex}.calendar-link{color:var(--primary);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:10px;padding:8px 10px;font-weight:600;transition:background .12s}.calendar-link:hover{background:var(--bg)}.date-field:focus-visible,.calendar-cell:focus-visible,.calendar-nav:focus-visible,.calendar-link:focus-visible{outline-offset:2px;outline:3px solid #f2a900}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px}.list{gap:12px;display:grid}.rate-box{border:2px solid var(--line);border-radius:var(--radius);background:var(--bg);gap:8px;padding:12px;display:grid}.muted{color:var(--muted)}.status{border-radius:999px;align-items:center;gap:6px;padding:2px 10px;font-size:.9rem;font-weight:600;display:inline-flex}.status.ok{background:var(--ok-bg);color:var(--ok)}.status.warn{background:var(--warn-bg);color:var(--warn)}.status.danger{background:var(--danger-bg);color:var(--danger)}.message{border-radius:var(--radius);padding:12px 14px;font-weight:600}.message.error{background:var(--danger-bg);color:var(--danger)}.message.ok{background:var(--ok-bg);color:var(--ok)}pre.detail{white-space:pre-wrap;word-break:break-word;background:var(--bg);border-radius:10px;padding:10px;font-size:.9rem}.bottombar{background:var(--surface);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);display:flex;position:fixed;bottom:0;left:0;right:0}.bottombar button{min-height:64px;color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;flex-direction:column;flex:1;align-items:center;gap:2px;font-size:.85rem;display:flex}.bottombar button[aria-current=page]{color:var(--primary);font-weight:700}.overlay{z-index:10;overscroll-behavior:contain;background:#00000073;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.dialog{background:var(--surface);overscroll-behavior:contain;width:100%;max-width:560px;max-height:90dvh;padding:20px 16px calc(20px + env(safe-area-inset-bottom));border-radius:20px 20px 0 0;overflow-y:auto}@media (width>=700px){.overlay{align-items:center}.dialog{border-radius:20px}.home-grid{grid-template-columns:repeat(3,1fr)}}.overlay{inset:auto 0;top:var(--screen-top,0);height:var(--screen-height,100dvh)}.dialog{--dialog-padding:calc(20px + env(safe-area-inset-bottom));max-height:90%}.keyboard-open .topbar,.keyboard-open .bottombar,.keyboard-open .test-copy-banner{display:none}.keyboard-open .screen{padding-top:8px;padding-bottom:16px}.keyboard-open .stack{gap:10px}.keyboard-open .dialog{border-radius:0;max-height:100%;padding-top:10px}html.keyboard-open,.keyboard-open .dialog{scroll-padding-bottom:calc(var(--tap) * 2 + 24px)}.keyboard-last-field .screen>.btn.go:not(:disabled),.keyboard-last-field .screen .card>.btn.go:not(:disabled){bottom:calc(var(--keyboard,0px) + 8px);z-index:3;position:sticky}.keyboard-last-field .screen>.row:has(>.btn.go:not(:disabled),>.btn.primary:not(:disabled)){bottom:calc(var(--keyboard,0px) + 8px);z-index:3;position:sticky}.keyboard-last-field .dialog>.btn.go:not(:disabled),.keyboard-last-field .dialog>.btn.primary:not(:disabled){bottom:calc(8px - var(--dialog-padding));z-index:3;position:sticky}.keyboard-last-field .dialog>.row:has(>.btn.go:not(:disabled),>.btn.primary:not(:disabled)){bottom:calc(8px - var(--dialog-padding));z-index:3;position:sticky}:is(.keyboard-last-field .screen>.row:has(>.btn.go:not(:disabled),>.btn.primary:not(:disabled)),.keyboard-last-field .dialog>.row:has(>.btn.go:not(:disabled),>.btn.primary:not(:disabled))){background:var(--surface);padding:8px 0}.keyboard-last-field:has(.more-below) .screen>.btn.go:not(:disabled){bottom:calc(var(--keyboard,0px) + var(--tap) + 8px)}.keyboard-last-field:has(.more-below) .screen .card>.btn.go:not(:disabled){bottom:calc(var(--keyboard,0px) + var(--tap) + 8px)}.keyboard-last-field:has(.more-below) .screen>.row:has(>.btn.go:not(:disabled),>.btn.primary:not(:disabled)){bottom:calc(var(--keyboard,0px) + var(--tap) + 8px)}.keyboard-last-field:has(.more-below) .dialog>.btn.go:not(:disabled){bottom:calc(var(--tap) + 8px - var(--dialog-padding))}.keyboard-last-field:has(.more-below) .dialog>.btn.primary:not(:disabled){bottom:calc(var(--tap) + 8px - var(--dialog-padding))}.keyboard-last-field:has(.more-below) .dialog>.row:has(>.btn.go:not(:disabled),>.btn.primary:not(:disabled)){bottom:calc(var(--tap) + 8px - var(--dialog-padding))}.more-below{left:0;right:0;bottom:calc(64px + env(safe-area-inset-bottom));z-index:5;width:100%;min-height:var(--tap);background:var(--text);color:#fff;font:inherit;cursor:pointer;border:0;justify-content:center;align-items:center;gap:8px;padding:0 16px;font-weight:700;display:flex;position:fixed}.more-below svg{animation:1.4s ease-in-out infinite more-below-nudge}@keyframes more-below-nudge{50%{transform:translateY(4px)}}@media (prefers-reduced-motion:reduce){.more-below svg{animation:none}}.keyboard-open .more-below{bottom:var(--keyboard,0px)}@media (width>=700px){.more-below{border-radius:999px;width:auto;padding:0 22px;bottom:74px;left:50%;right:auto;transform:translate(-50%);box-shadow:0 6px 18px #14212b59}}.more-below-slot{bottom:calc(0px - var(--dialog-padding));z-index:4;height:0;margin-top:-14px;position:sticky}.more-below.in-dialog{border-radius:var(--radius);width:100%;box-shadow:none;position:relative;bottom:auto;left:auto;right:auto;transform:translateY(-100%)}textarea{min-height:calc(var(--tap) * 1.5);border:2px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--text);font:inherit;resize:vertical;width:100%;padding:12px 14px;font-size:1.1rem}textarea:focus-visible{outline-offset:2px;outline:3px solid #f2a900}.btn.choice{min-height:64px;font-size:1.1rem}.btn.big{min-height:72px;font-size:1.3rem}.choice-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.choice-grid .btn{padding:0 8px;line-height:1.2}.big-code{letter-spacing:.04em;color:var(--primary);font-size:2.6rem;font-weight:800}.filters{grid-template-columns:1fr 1fr;gap:10px;display:grid}.household-card{text-align:left;font:inherit;color:inherit;cursor:pointer;gap:4px;display:grid}.clip{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.card.pending{border:2px solid var(--warn);background:var(--warn-bg)}.pending-chip{background:var(--warn-bg);min-height:44px;color:var(--warn);font:inherit;cursor:pointer;border:0;border-radius:999px;align-items:center;gap:6px;padding:0 12px;font-size:.95rem;font-weight:700;display:inline-flex}.offline-banner{background:var(--warn-bg);color:var(--warn);align-items:center;gap:10px;padding:10px 16px;font-weight:600;display:flex}.offline-banner span{flex:1}.test-copy-banner{background:var(--test-bg);color:var(--test);border-bottom:3px dashed var(--test);align-items:center;gap:10px;padding:4px 16px;font-size:.85rem;line-height:1.25;display:flex}.test-copy-banner small{overflow-wrap:anywhere;font-size:.8rem;display:block}@media (width>=700px){.household-list{grid-template-columns:1fr 1fr}.filters{max-width:640px}}
