:root{--bg: #f1f5f4;--card: #ffffff;--text: #0f172a;--muted: #64748b;--line: #e2e8f0;--brand: #0f766e;--brand-ink: #ffffff;--danger: #dc2626;--today: #b45309;--shell: #dfe7e5}@media (prefers-color-scheme: dark){:root{--bg: #0b1211;--card: #162120;--text: #e6edec;--muted: #94a3a0;--line: #26403d;--brand: #14b8a6;--brand-ink: #04201d;--danger: #f87171;--today: #fbbf24;--shell: #050908}}*{box-sizing:border-box}html,body{margin:0;height:100%}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:16px;color:var(--text);background:var(--shell);-webkit-tap-highlight-color:transparent}#root{min-height:100%}button,input,select,textarea{font:inherit;color:inherit}h1,h2,h3,p{margin:0}h2{font-size:1.2rem}h3{font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-top:8px}.app,.center{max-width:480px;min-height:100vh;min-height:100dvh;margin:0 auto;background:var(--bg);position:relative}.app{padding-bottom:96px}.center{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:24px;text-align:center}.login h1{font-size:2.2rem}.muted{color:var(--muted)}.small{font-size:.85rem}.notice{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:10px 14px}.top{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;padding:calc(10px + env(safe-area-inset-top)) 14px 10px;background:var(--brand);color:var(--brand-ink)}.brand{display:flex;align-items:center;gap:8px;font-weight:700;font-size:1.2rem}.brand img{border-radius:7px}.top-actions{display:flex;gap:6px}.icon-btn{background:#ffffff29;border:0;border-radius:999px;padding:8px 14px;color:inherit;font-size:.9rem;cursor:pointer}.tabs{display:flex;gap:6px;overflow-x:auto;padding:10px 12px;background:var(--card);border-bottom:1px solid var(--line);scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tab{flex:none;border:1px solid var(--line);background:transparent;border-radius:999px;padding:8px 14px;cursor:pointer;white-space:nowrap}.tab.on{background:var(--brand);border-color:var(--brand);color:var(--brand-ink);font-weight:600}.tab.add{border-style:dashed;color:var(--muted)}main{padding:12px}.chips{display:flex;gap:6px;overflow-x:auto;padding-bottom:10px;scrollbar-width:none}.chips::-webkit-scrollbar{display:none}.chips.tight{flex-wrap:wrap;padding-bottom:0}.chip{flex:none;display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--card);border-radius:999px;padding:6px 12px;font-size:.88rem;cursor:pointer}.chip.on{border-color:var(--brand);box-shadow:inset 0 0 0 1px var(--brand);font-weight:600}.dot{width:10px;height:10px;border-radius:50%;display:inline-block}.overdue-banner{background:color-mix(in srgb,var(--danger) 14%,var(--card));color:var(--danger);border-radius:12px;padding:10px 12px;margin-bottom:10px;font-size:.9rem;font-weight:600}.empty{padding:48px 16px;text-align:center}.list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.ev{display:flex;align-items:stretch;background:var(--card);border-radius:14px;border-left:6px solid;overflow:hidden;box-shadow:0 1px 2px #0000000f}.check{flex:none;width:52px;border:0;background:transparent;cursor:pointer;position:relative}.check:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;width:24px;height:24px;border-radius:50%;border:2px solid var(--muted)}.check.checked:after{background:var(--brand);border-color:var(--brand)}.ev-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;padding:12px 14px 12px 0;text-align:left;border:0;background:transparent;cursor:pointer}.ev.public .ev-body{padding-left:14px;cursor:default}.ev-title{font-weight:600;overflow-wrap:anywhere}.ev-count{font-size:1.15rem;font-weight:700;color:var(--brand);font-variant-numeric:tabular-nums}.ev-meta{font-size:.82rem;color:var(--muted)}.ev.overdue .ev-count{color:var(--danger)}.ev.overdue{background:color-mix(in srgb,var(--danger) 7%,var(--card))}.ev.today .ev-count{color:var(--today)}.ev.done .ev-title{text-decoration:line-through;color:var(--muted)}.done-toggle{display:block;margin:16px auto 10px;border:0;background:transparent;color:var(--muted);cursor:pointer;text-decoration:underline}.fab{position:fixed;bottom:calc(22px + env(safe-area-inset-bottom));right:max(22px,calc(50vw - 218px));width:62px;height:62px;border-radius:50%;border:0;background:var(--brand);color:var(--brand-ink);font-size:2.2rem;line-height:1;box-shadow:0 6px 16px #0000004d;cursor:pointer;z-index:6}.toast{margin:10px 12px 0;background:var(--danger);color:#fff;border-radius:12px;padding:10px 12px;font-size:.9rem;cursor:pointer}.sheet-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:10;display:flex;align-items:flex-end;justify-content:center}.sheet{width:100%;max-width:480px;max-height:92dvh;overflow-y:auto;background:var(--card);border-radius:20px 20px 0 0;padding:18px 16px calc(18px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:12px}.sheet label{display:flex;flex-direction:column;gap:4px;font-size:.82rem;color:var(--muted)}.sheet input:not([type=checkbox]):not([type=color]),.sheet select,.sheet textarea{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--text);font-size:1rem}.sheet input[type=color]{flex:none;width:42px;height:42px;padding:2px;border:1px solid var(--line);border-radius:10px;background:var(--bg)}.sheet label.switch{flex-direction:row;align-items:center;gap:10px;font-size:1rem;color:var(--text)}.switch input{width:20px;height:20px;accent-color:var(--brand)}.row{display:flex;gap:8px;align-items:flex-end}.row.end{align-items:center}.row.spaced{margin-top:10px}.grow{flex:1;min-width:0}.plain{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.plain .row{align-items:center}.invite{display:flex;flex-direction:column;gap:8px}.btn{border:1px solid var(--line);background:var(--bg);border-radius:10px;padding:11px 14px;cursor:pointer;text-decoration:none;text-align:center;color:var(--text);white-space:nowrap}.btn.primary{background:var(--brand);border-color:var(--brand);color:var(--brand-ink);font-weight:600}.btn.danger{color:var(--danger)}.btn.small{padding:7px 10px;font-size:.85rem}.btn.big{padding:14px 26px;font-size:1.05rem}.btn.wa{background:#1faa59;border-color:#1faa59;color:#fff;font-weight:600}.btn:disabled{opacity:.5;cursor:default}
