:root{color-scheme:light;--bg: #f3efe6;--elev: #fffdf8;--ink: #1f1a14;--muted: #6e655b;--line: #e4dccf;--green: #1e6b45;--green-soft: #e7f3ec;--amber: #8a5a12;--amber-soft: #f8efd8;--red: #8d3a32;--red-soft: #f8e8e6;--shadow: 0 12px 30px rgba(60, 40, 20, .06);--radius: 18px;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;color:var(--ink);background:var(--bg)}*{box-sizing:border-box}body{margin:0;min-height:100vh}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer}a{color:inherit}.app{min-height:100vh}.shell{width:min(720px,100%);margin:0 auto;padding:12px 16px}main.shell{padding-bottom:180px}.topbar,.row,.spread{display:flex;align-items:center;gap:10px}.topbar{justify-content:space-between;min-height:52px}.brand{font-weight:650;letter-spacing:.01em}.icon-button,.ghost,.primary,.danger,.chip{border:1px solid var(--line);background:var(--elev);border-radius:999px;min-height:44px;padding:0 14px}.icon-button{width:44px;padding:0}.primary{background:var(--green);color:#fff;border-color:var(--green)}.danger{background:var(--red);color:#fff;border-color:var(--red)}.ghost{background:transparent}.chip.active,.filter.active{background:var(--green-soft);border-color:#b7d7c6}.page h1{font-size:1.7rem;margin:8px 0 4px}.muted{color:var(--muted)}.stack{display:grid;gap:12px}.card,.item,.banner,.dialog{background:var(--elev);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.card,.item,.banner{padding:14px}.banner{background:var(--amber-soft)}.banner.error{background:var(--red-soft)}.field{display:grid;gap:6px}.field span{font-size:.92rem}input,textarea,select{width:100%;border:1px solid var(--line);background:#fff;border-radius:12px;padding:12px;min-height:44px}textarea{min-height:96px;resize:vertical}.avatar-wrap{display:grid;justify-items:center;gap:8px;padding:12px 0 4px}.avatar{width:168px;height:168px;border-radius:50%;background:var(--green-soft);display:grid;place-items:center}.avatar img{width:148px;height:148px;border-radius:50%}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{display:inline-flex;align-items:center;text-decoration:none}.badge{display:inline-flex;border-radius:999px;padding:2px 8px;font-size:.78rem;background:var(--green-soft)}.badge.event{background:#e7eef8}.badge.warn{background:var(--amber-soft);color:var(--amber)}.badge.ok{background:var(--green-soft);color:var(--green)}.item{display:grid;gap:8px}.item header,.spread{justify-content:space-between}.check{display:flex;gap:10px;align-items:flex-start}.done{text-decoration:line-through;color:var(--muted)}.filters,.week{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px}.daycell,.week button{min-width:44px;min-height:52px;border-radius:14px;border:1px solid var(--line);background:var(--elev)}.daycell small,.week small{display:block;color:var(--muted)}.daycell.has{box-shadow:inset 0 -3px 0 var(--green)}.daycell.selected,.week button.selected{background:var(--green);color:#fff}.daycell.selected small,.week button.selected small{color:#fff}.month{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.dock{position:fixed;left:0;right:0;bottom:0;background:#f3efe6f5;border-top:1px solid var(--line);padding:10px 16px calc(10px + env(safe-area-inset-bottom))}.dock-inner{width:min(720px,100%);margin:0 auto;display:grid;gap:8px}.dock-actions{display:grid;grid-template-columns:64px 1fr 88px;align-items:center}.mic{width:72px;height:72px;border-radius:50%;border:0;background:var(--green);color:#fff;justify-self:center;font-size:.95rem;touch-action:none}.mic.live{outline:6px solid var(--green-soft)}.reply{margin:0}.overlay,.backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#1f1a1459}.drawer{position:fixed;inset:0 auto 0 0;width:min(320px,86vw);background:var(--elev);padding:18px;display:grid;align-content:start;gap:8px}.drawer a{text-decoration:none;padding:12px;border-radius:12px}.drawer a.router-link-active{background:var(--green-soft)}.dialog{width:min(420px,calc(100% - 32px));margin:22vh auto 0;padding:18px;display:grid;gap:14px}.empty{text-align:center}:focus-visible{outline:3px solid #8fbfa4;outline-offset:2px}@media(min-width:800px){.shell{padding-top:20px}}
