:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#fbf7ef;--surface:#fff;--surface-2:#f3eee4;--ink:#1f2a27;--ink-2:#5b6662;--line:#e4ddd0;--brand:#4d2f1b;--brand-ink:#fff;--danger:#b4372f;--warn-bg:#fff3d6;--warn-ink:#7a5300;--live:#4d2f1b;--unassigned:#e5e7eb;--radius:14px;--shadow:0 10px 30px #1f2a272e;--safe-bottom:env(safe-area-inset-bottom,0px);color:var(--ink);background:var(--bg);-webkit-tap-highlight-color:transparent;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.4}[data-color=red]{--done:#db2430;--pending:#f6cbce;--on-done:#fff;--on-pending:#762d32}[data-color=blue]{--done:#1b6eda;--pending:#cee0f8;--on-done:#fff;--on-pending:#2a486f}[data-color=green]{--done:#279153;--pending:#c8ead3;--on-done:#fff;--on-pending:#26593c}[data-color=yellow]{--done:#fabd05;--pending:#fbefbb;--on-done:#413110;--on-pending:#6f5420}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{background:var(--bg);overscroll-behavior-y:contain}body.no-scroll{overflow:hidden}button{font:inherit;color:inherit;cursor:pointer}h1,h2,h3{margin:0;line-height:1.2}.muted{color:var(--ink-2)}.small{font-size:.85rem}.center{text-align:center}.pad{padding:2rem 0}.app{flex-direction:column;max-width:560px;min-height:100dvh;margin:0 auto;display:flex}.topbar{z-index:5;background:var(--bg);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:.5rem;padding:.75rem 1rem;display:flex;position:sticky;top:0}.topbar h1{color:var(--brand);font-size:1.25rem}.topbar-actions{align-items:center;gap:.5rem;display:flex;position:relative}.menu{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);z-index:10;border-radius:10px;position:absolute;top:calc(100% + 6px);right:0;overflow:hidden}.menu button:disabled{opacity:.5}.menu button{text-align:left;white-space:nowrap;background:0 0;border:0;width:100%;padding:.75rem 1.25rem;display:block}.content{padding:.75rem 1rem calc(5rem + var(--safe-bottom));flex:1}.tabbar{background:var(--surface);border-top:1px solid var(--line);width:100%;max-width:560px;padding-bottom:var(--safe-bottom);z-index:5;grid-template-columns:1fr 1fr;display:grid;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.tabbar button{color:var(--ink-2);background:0 0;border:0;padding:.9rem 0;font-weight:600}.tabbar button[aria-selected=true]{color:var(--brand);box-shadow:inset 0 3px 0 var(--brand)}.segmented{background:var(--surface-2);border-radius:12px;grid-template-columns:1fr 1fr;gap:4px;margin-bottom:.75rem;padding:4px;display:grid}.segmented button{color:var(--ink-2);background:0 0;border:0;border-radius:9px;flex-direction:column;align-items:center;padding:.45rem .5rem;font-weight:600;display:flex}.segmented button small{font-size:.75rem;font-weight:400}.segmented button[aria-selected=true]{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px #0000001f}.week{gap:6px;display:grid}.week-row{grid-template-columns:3.4rem repeat(3,1fr);align-items:stretch;gap:6px;display:grid}.week-head{z-index:2;background:var(--bg);padding:.25rem 0;position:sticky;top:3.6rem}.slot-head{flex-direction:column;align-items:center;font-size:.9rem;display:flex}.slot-head small{color:var(--ink-2);font-variant-numeric:tabular-nums;font-size:.72rem}.day-label{text-transform:capitalize;color:var(--ink-2);flex-direction:column;justify-content:center;font-size:.85rem;font-weight:600;display:flex}.day-label em{color:var(--brand-ink);background:var(--brand);text-transform:uppercase;border-radius:6px;width:fit-content;padding:0 .3rem;font-size:.68rem;font-style:normal;font-weight:700}.week-row[data-today] .day-label{color:var(--ink)}.cell-wrap{min-width:0;display:block}.cell{background:var(--unassigned);outline-offset:2px;border:0;border-radius:12px;width:100%;height:3.4rem;padding:0;display:block;position:relative;overflow:hidden}.cell-missing{opacity:.4}.parts{width:100%;height:100%;display:flex}.part{flex:1 1 0;place-items:center;min-width:0;font-size:.95rem;font-weight:700;display:grid}.parts[data-count="3"] .part,.parts[data-count="4"] .part{font-size:.8rem}.part+.part{box-shadow:inset 1.5px 0 #ffffffd9}.part[data-state=pending]{background:var(--pending);color:var(--on-pending)}.part[data-state=done]{background:var(--done);color:var(--on-done)}.part-empty{background:var(--unassigned)}.cell[data-phase=during]{box-shadow:0 0 0 2.5px var(--live);animation:2.2s ease-in-out infinite live}@keyframes live{50%{box-shadow:0 0 0 2.5px color-mix(in srgb, var(--live) 35%, transparent)}}.cell[data-phase=open]{outline-offset:-2px;outline:2px dashed #c37322}.cell[data-phase=closed]{opacity:.55}.badges{gap:2px;display:flex;position:absolute;top:3px;right:3px}.badge{color:var(--ink);background:#ffffffe6;border-radius:6px;width:16px;height:16px;padding:2px;display:block}.badge-dim{opacity:.45}.badge-swap{color:#fff;background:#f98c1f}.legend{color:var(--ink-2);flex-wrap:wrap;gap:.4rem .9rem;margin-top:1rem;font-size:.78rem;display:flex}.legend span{align-items:center;gap:.35rem;display:inline-flex}.swatch{border-radius:4px;width:1rem;height:1rem;display:inline-block}.swatch[data-state=pending]{background:var(--pending)}.swatch[data-state=done]{background:var(--done)}.swatch-empty{background:var(--unassigned)}.swatch-live{background:var(--unassigned);box-shadow:0 0 0 2px var(--live)}.swatch-open{background:var(--unassigned);outline-offset:-2px;outline:2px dashed #c37322}.chip{background:var(--pending,var(--surface-2));color:var(--on-pending,var(--ink));border:0;border-radius:999px;align-items:center;gap:.4rem;padding:.25rem .7rem .25rem .25rem;font-size:.9rem;font-weight:600;display:inline-flex}.chip[data-state=done]{background:var(--done);color:var(--on-done)}.chip-initial{background:var(--done);width:1.6rem;height:1.6rem;color:var(--on-done);border-radius:50%;place-items:center;font-size:.8rem;font-weight:700;display:grid}.chip[data-state=done] .chip-initial{color:inherit;background:#ffffff40}.chip-free{background:var(--unassigned);color:var(--ink-2);padding:.3rem .8rem}.chip-row{flex-wrap:wrap;gap:.4rem;display:flex}.btn{border:1px solid var(--line);background:var(--surface);border-radius:12px;justify-content:center;align-items:center;gap:.4rem;min-height:2.75rem;padding:.55rem 1rem;font-weight:600;display:inline-flex}.btn:disabled{opacity:.5;cursor:default}.btn-small{min-height:2.25rem;padding:.35rem .8rem;font-size:.9rem}.btn-primary{background:var(--brand);border-color:var(--brand);color:var(--brand-ink)}.btn-danger{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 35%, var(--line))}.btn-ghost{color:var(--brand);background:0 0;border-color:#0000}.btn-block{width:100%;min-height:3.25rem;font-size:1.05rem}.btn-row{flex-wrap:wrap;gap:.5rem;margin-top:.5rem;display:flex}.btn-row-end{justify-content:flex-end}.notice{text-align:left;border:0;border-radius:12px;width:100%;margin:0 0 .75rem;padding:.7rem .9rem;font-size:.92rem;display:block}.notice-warn{background:var(--warn-bg);color:var(--warn-ink)}.notice-swap{color:#793f15;background:#feebd7}.notice-push{background:var(--surface);border:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.notice-push>span:first-child{flex:14rem}.notice-actions{gap:.4rem;display:flex}.menu-note{color:var(--ink-2);white-space:nowrap;margin:0;padding:.75rem 1.25rem;font-size:.85rem}.update-banner{background:var(--brand);color:var(--brand-ink);text-align:center;border:0;padding:.7rem 1rem}.sheet-layer{z-index:20;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet-backdrop{background:#141a1873;animation:.18s ease-out fade;position:absolute;inset:0}.sheet{background:var(--surface);width:100%;max-width:560px;max-height:88dvh;box-shadow:var(--shadow);padding:.5rem 1.1rem calc(1.25rem + var(--safe-bottom));border-radius:20px 20px 0 0;animation:.22s cubic-bezier(.2,.8,.2,1) slide-up;position:relative;overflow-y:auto}.sheet-handle{background:var(--line);border-radius:3px;width:42px;height:5px;margin:0 auto .75rem}@keyframes slide-up{0%{opacity:.4;transform:translateY(40%)}}@keyframes fade{0%{opacity:0}}.sheet-head{justify-content:space-between;align-items:flex-start;gap:.75rem;margin-bottom:.5rem;display:flex}.sheet-head h2{font-size:1.15rem}.sheet-head h2:first-letter{text-transform:uppercase}.sheet-head p{margin:.15rem 0 0;font-size:.88rem}.phase-chip{background:var(--surface-2);color:var(--ink-2);border-radius:999px;flex-shrink:0;padding:.2rem .65rem;font-size:.8rem;font-weight:700}.phase-chip[data-tone=live]{background:var(--brand);color:var(--brand-ink)}.phase-chip[data-tone=warn]{background:var(--warn-bg);color:var(--warn-ink)}.phase-chip[data-tone=ok]{color:#1c5433;background:#d1f0de}.sheet-section{border-top:1px solid var(--line);padding:.85rem 0}.sheet-section h3{font-size:.95rem}.sheet-section p{margin:.4rem 0 0}.seat-head{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.request-line{color:var(--ink-2);flex-wrap:wrap;align-items:center;gap:.5rem;font-size:.9rem;display:flex}.request-card{background:#fef0e1;border-radius:12px;margin-top:.6rem;padding:.7rem .8rem;font-size:.92rem}.lock-section p svg,.sheet-body>p svg,.btn svg{vertical-align:-1px}.who-grid{grid-template-columns:1fr 1fr;gap:.6rem;margin:.75rem 0 1rem;display:grid}.who-option{border:2px solid var(--pending);background:var(--surface);text-align:left;border-radius:14px;align-items:center;gap:.6rem;padding:.75rem;font-weight:600;display:flex}.who-initial{background:var(--pending);width:2rem;height:2rem;color:var(--on-pending);border-radius:50%;place-items:center;font-weight:700;display:grid}.who-option[data-on]{border-color:var(--done);background:color-mix(in srgb, var(--pending) 45%, white)}.who-option[data-on] .who-initial{background:var(--done);color:var(--on-done)}.counter h2{font-size:1.15rem}.counter>p{margin:.25rem 0 1rem}.counter-list{gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.counter-card{border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);border-left:6px solid var(--done);gap:.4rem;padding:.85rem 1rem;display:grid}.counter-name{align-items:center;gap:.5rem;font-weight:700;display:flex}.bar{grid-template-columns:4rem 1fr 2rem;align-items:center;gap:.5rem;font-size:.85rem;display:grid}.bar-label{color:var(--ink-2)}.bar-track{background:var(--pending);border-radius:999px;height:.7rem;overflow:hidden}.bar-fill{background:var(--done);border-radius:999px;height:100%;transition:width .4s;display:block}.bar-value{text-align:right;font-variant-numeric:tabular-nums}.login{text-align:center;flex-direction:column;align-items:center;gap:.75rem;max-width:420px;min-height:100dvh;margin:0 auto;padding:2.5rem 1.25rem;display:flex}.login h1{color:var(--brand);font-size:2rem}.login-grid{grid-template-columns:1fr 1fr;gap:.75rem;width:100%;margin-top:.5rem;display:grid}.login-member{background:var(--pending);color:var(--on-pending);border:0;border-radius:18px;flex-direction:column;align-items:center;gap:.5rem;padding:1.1rem .5rem;font-size:1.05rem;font-weight:700;display:flex}.login-member-static{padding:.8rem 2rem}.login-initial{background:var(--done);width:3rem;height:3rem;color:var(--on-done);border-radius:50%;place-items:center;font-size:1.3rem;display:grid}.login-back{align-self:flex-start}.pin-dots{gap:.75rem;margin:.5rem 0 0;display:flex}.pin-dots span{border:2px solid var(--ink-2);border-radius:50%;width:.9rem;height:.9rem}.pin-dots span[data-on]{background:var(--ink);border-color:var(--ink)}.shake{animation:.35s shake}@keyframes shake{25%{transform:translate(-8px)}75%{transform:translate(8px)}}.error{color:var(--danger);min-height:1.4em;margin:0}.pin-pad{grid-template-columns:repeat(3,4.5rem);gap:.75rem;display:grid}.pin-key{background:var(--surface-2);border:0;border-radius:50%;height:4.5rem;font-size:1.5rem;font-weight:600}.pin-key:active{background:var(--line)}.toasts{left:50%;bottom:calc(4.5rem + var(--safe-bottom));z-index:30;pointer-events:none;gap:.5rem;width:min(560px,100% - 2rem);display:grid;position:fixed;transform:translate(-50%)}.toast{pointer-events:auto;text-align:left;background:var(--ink);color:#fff;box-shadow:var(--shadow);border:0;border-radius:12px;gap:.15rem;padding:.7rem .9rem;font-size:.9rem;animation:.2s ease-out fade;display:grid}.toast[data-tone=error]{background:var(--danger)}.toast[data-tone=push]{background:var(--surface);color:var(--ink);border-left:5px solid var(--brand)}.dev-clock{font-weight:700}.dev-clock:first-letter{text-transform:uppercase}.dev-clock[data-shifted]{color:#b85814}.chip-button{cursor:pointer}.notice-log{gap:.6rem;margin:.5rem 0 0;padding:0;font-size:.88rem;list-style:none;display:grid}.notice-log li{background:var(--surface-2);border-radius:10px;gap:.1rem;padding:.5rem .7rem;display:grid}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
