:root{--bg: #f6f4f0;--surface: #ffffff;--text: #1d1b19;--muted: #6f6a63;--line: #e7e2da;--accent: #f26b1d;--accent-soft: #fde7d8;--ok: #1f9d55;--ok-soft: #dcf3e5;--warn: #c2410c;--warn-soft: #fee4d6;--danger: #c0262d;--radius: 16px;color-scheme:light}@media(prefers-color-scheme:dark){:root{--bg: #141312;--surface: #1f1d1b;--text: #f2efea;--muted: #a39d94;--line: #34302c;--accent: #ff8a3d;--accent-soft: #3a2517;--ok: #4ccb7f;--ok-soft: #173325;--warn: #ff9a5c;--warn-soft: #3a2116;--danger: #ff6b70;color-scheme:dark}}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--text);font:16px/1.4 -apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}main{max-width:640px;margin:0 auto;padding:calc(env(safe-area-inset-top) + 16px) 16px calc(env(safe-area-inset-bottom) + 32px)}h1{font-size:28px;margin:0;letter-spacing:-.02em}h2{font-size:15px;margin:24px 4px 8px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.04em}h3{font-size:16px;margin:0 0 8px}p{margin:4px 0}.muted{color:var(--muted)}.small{font-size:13px}button{font:inherit;color:inherit;border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:10px 14px;cursor:pointer}button:disabled{opacity:.5;cursor:default}button.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}button.primary.small{padding:6px 12px;margin-left:8px}button.danger{color:var(--danger)}button.link{border:0;background:none;padding:4px 0;color:var(--accent);font-weight:600}button.icon{border:0;background:none;font-size:24px;padding:4px 8px;color:var(--muted)}input{font:inherit;color:inherit;width:100%;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--surface);margin-top:4px}label{display:block;font-size:14px;color:var(--muted);margin-bottom:12px}.top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.notice{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px;margin:12px 0;display:flex;flex-wrap:wrap;gap:8px;align-items:center}.notice.error{border-color:var(--danger);color:var(--danger)}.error-text{color:var(--danger);font-size:14px;flex-basis:100%}.section h2 .count{background:var(--line);color:var(--text);border-radius:999px;padding:1px 8px;font-size:12px;margin-left:4px}.section.late h2{color:var(--warn)}.card{display:flex;gap:12px;align-items:flex-start;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px;margin-bottom:10px}.section.late .card{border-color:var(--warn)}.card.finished .title{color:var(--muted);text-decoration:line-through;text-decoration-color:var(--line)}.card-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}.card-main{all:unset;display:flex;flex-direction:column;gap:4px;cursor:pointer}.title{font-size:17px;font-weight:600;overflow-wrap:anywhere}.due{font-size:14px;color:var(--muted)}.details{white-space:pre-wrap;font-size:15px;margin:4px 0 0;padding-top:8px;border-top:1px solid var(--line)}.chip{align-self:flex-start;font-size:12px;font-weight:700;padding:2px 8px;border-radius:999px;background:hsl(var(--hue) 80% 92%);color:hsl(var(--hue) 55% 30%)}@media(prefers-color-scheme:dark){.chip{background:hsl(var(--hue) 35% 22%);color:hsl(var(--hue) 70% 80%)}}.check{flex:none;width:48px;height:48px;border-radius:50%;border:3px solid var(--accent);background:transparent;color:#fff;font-size:26px;font-weight:800;display:grid;place-items:center;padding:0;transition:transform .12s ease,background .12s ease}.check:active{transform:scale(.92)}.check.on{background:var(--ok);border-color:var(--ok)}.check.locked{background:var(--ok-soft);border-color:var(--ok-soft);color:var(--ok)}.badge{align-self:flex-start;font-size:13px;padding:3px 8px;border-radius:8px;background:var(--line);color:var(--text)}.badge.ok{background:var(--ok-soft);color:var(--ok)}.badge.warn{background:var(--warn-soft);color:var(--warn)}.status-row{display:flex;flex-wrap:wrap;gap:6px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0}.stats div{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:10px;text-align:center}.stats strong{display:block;font-size:24px}.stats span{font-size:12px;color:var(--muted)}.stats .warn strong{color:var(--warn)}.tabs{display:flex;gap:8px;margin:8px 0}.tabs button{flex:1}.tabs .active{background:var(--text);color:var(--bg);border-color:var(--text)}.activity{list-style:none;padding:0;margin:8px 0}.activity li{display:flex;gap:12px;align-items:flex-start;padding:12px 4px;border-bottom:1px solid var(--line)}.dot{flex:none;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--line);font-weight:700}.dot.ok{background:var(--ok-soft);color:var(--ok)}.setup h1{margin-top:24px}.steps{padding-left:20px;line-height:1.8}.roles{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:20px 0}.role{display:flex;flex-direction:column;align-items:center;gap:8px;padding:24px 12px;font-size:18px;font-weight:600;border-radius:var(--radius)}.role.selected{border:2px solid var(--accent);background:var(--accent-soft)}.role-icon{font-size:40px}.form .primary{width:100%;padding:14px}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:flex-end;justify-content:center;z-index:10}.sheet{background:var(--bg);width:100%;max-width:640px;max-height:90vh;overflow-y:auto;border-radius:20px 20px 0 0;padding:16px 16px calc(env(safe-area-inset-bottom) + 24px)}.sheet section{background:var(--surface);border-radius:var(--radius);padding:14px;margin-bottom:12px}.sheet-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.sheet-head h2{all:unset;font-size:20px;font-weight:700}.row{display:flex;flex-wrap:wrap;gap:8px}.hours{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:8px 0 12px}.hours button{padding:8px 0;font-size:14px}.hours .on{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.toggle{display:flex;gap:10px;align-items:center;color:var(--text);font-size:15px}.toggle input{width:22px;height:22px;margin:0;flex:none}
