:root{--ink:#1c1915;--muted:#6b645b;--paper:#f3eee4;--card:#fffdf8;--line:#e4ddd0;--accent:#1f6f5b;--accent-dark:#155546;--overdue:#9a3412;--danger:#b42318;--shadow:0 10px 30px #1c191514;--radius:18px;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--sans:"Segoe UI", system-ui, -apple-system, sans-serif}*{box-sizing:border-box}[hidden]{display:none!important}html,body{background:var(--paper);min-height:100%;color:var(--ink);font-family:var(--sans);margin:0}body{min-height:100svh}body.locked{overflow:hidden}#app{min-height:100svh}button,input{font:inherit}button{cursor:pointer}.shell{width:min(440px,100%);min-height:100svh;padding:calc(18px + var(--safe-top)) 16px calc(108px + var(--safe-bottom));margin:0 auto}.top h1{letter-spacing:-.04em;margin:2px 0 6px;font-size:2rem;font-weight:700}.eyebrow,.subtitle,.progress{margin:0}.eyebrow{color:var(--accent-dark);letter-spacing:.04em;text-transform:uppercase;font-size:.86rem;font-weight:700}.subtitle{color:var(--muted);font-size:.98rem}.progress{color:var(--ink);margin-top:10px;font-weight:600}.filters{gap:8px;margin-top:18px;padding-bottom:2px;display:flex;overflow-x:auto}.chip{border:1px solid var(--line);color:var(--muted);white-space:nowrap;background:0 0;border-radius:999px;min-height:44px;padding:10px 14px}.chip.is-active{background:var(--ink);border-color:var(--ink);color:#fffdf8}.banner{color:var(--danger);background:#fde8e6;border-radius:14px;margin-bottom:14px;padding:12px 14px;font-size:.92rem;line-height:1.4}.banner[hidden]{display:none}.banner:not(.is-error){color:var(--accent-dark);background:#e7f3ee}.list{gap:22px;min-height:1px;margin-top:22px;display:grid}.group h2{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0 0 10px;font-size:.82rem}.group-overdue h2,.group-overdue .meta{color:var(--overdue)}.group ul{gap:8px;margin:0;padding:0;list-style:none;display:grid}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);min-height:72px;box-shadow:var(--shadow);grid-template-columns:48px 1fr;align-items:stretch;display:grid}.card.is-done{opacity:.72}.check{background:0 0;border:0;place-items:center;width:48px;padding:0;display:grid}.check:before{content:"";border:2px solid var(--accent);background:#fff;border-radius:8px;width:26px;height:26px}.card.is-done .check:before{background:var(--accent);border-color:var(--accent);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23f4efe4' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M3.5 8.2 6.4 11.1 12.5 4.8'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:16px}.body{text-align:left;background:0 0;border:0;flex-direction:column;gap:4px;min-width:0;padding:14px 14px 14px 0;display:flex}.title{word-break:break-word;font-size:1.05rem;font-weight:650;line-height:1.3}.card.is-done .title{color:var(--muted);text-decoration:line-through}.meta{color:var(--muted);font-size:.9rem}.empty{background:var(--card);border:1px dashed var(--line);border-radius:var(--radius);text-align:center;padding:28px 18px}.empty p{margin:0}.empty .hint{color:var(--muted);margin-top:8px}.fab{right:max(16px,50% - 204px);bottom:calc(18px + var(--safe-bottom));background:var(--accent);color:#fff;border:0;border-radius:999px;align-items:center;gap:8px;min-height:56px;padding:0 20px 0 16px;font-weight:700;display:inline-flex;position:fixed;box-shadow:0 12px 24px #1f6f5b47}.fab span{font-size:1.6rem;line-height:1}.overlay{z-index:20;background:#1c191561;align-items:end;display:grid;position:fixed;inset:0}.overlay[hidden]{display:none}.sheet{background:var(--card);padding:10px 18px calc(20px + var(--safe-bottom));border-radius:24px 24px 0 0;width:min(440px,100%);max-height:min(92dvh,920px);margin:0 auto;overflow:auto}.handle{background:var(--line);border-radius:99px;width:42px;height:4px;margin:6px auto 14px}.sheet h2{margin:0 0 16px;font-size:1.2rem}.field{gap:6px;margin-bottom:14px;display:grid}.field span{color:var(--muted);font-size:.88rem;font-weight:600}.field input,.field textarea{border:1px solid var(--line);width:100%;color:var(--ink);background:#fff;border-radius:14px;padding:12px 14px}.field input{min-height:48px}.field textarea{resize:vertical;min-height:84px;line-height:1.4}.field input:disabled{opacity:.5}.check-row{align-items:center;gap:10px;min-height:44px;margin-bottom:16px;display:flex}.check-row input{width:20px;height:20px;accent-color:var(--accent)}.comments{margin:4px 0 18px;padding-top:4px}.comments h3{margin:0 0 10px;font-size:.92rem}.comments-empty,.comment p{margin:0}.comments-empty{color:var(--muted);margin-bottom:12px;font-size:.92rem}.comment{background:#f7f3ea;border-radius:14px;margin-bottom:8px;padding:12px}.comment p{white-space:pre-wrap;word-break:break-word;line-height:1.4}.comment-meta{color:var(--muted);justify-content:space-between;align-items:center;gap:8px;margin-top:8px;font-size:.82rem;display:flex}.link-btn{color:var(--danger);background:0 0;border:0;min-height:32px;padding:6px 0;font-weight:650}.comments .btn{width:100%}.sheet-actions{gap:8px;display:grid}.btn{border:0;border-radius:14px;min-height:48px;font-weight:700}.btn.primary{background:var(--accent);color:#fff}.btn.secondary{color:var(--accent-dark);background:#e7f3ee}.btn.ghost{color:var(--muted);background:0 0}.btn.danger{color:var(--danger);background:#fde8e6}@media (prefers-reduced-motion:no-preference){.chip,.fab,.check:before,.card{transition:all .18s}}
