:root{--bg:#fafaf8;--surface:#fff;--text:#1c1c1a;--muted:#6b6b66;--border:#e6e6e1;--accent:#2f6f5e;--accent-soft:#e6f1ed;--danger:#b3261e;--danger-soft:#fbeceb;--success-soft:#e6f1ed;--radius:12px;--tap:44px;--space:16px;--tabbar-h:64px;color:var(--text);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{background:var(--bg);-webkit-text-size-adjust:100%;margin:0;line-height:1.45}h1{margin:0 0 var(--space);font-size:1.5rem;font-weight:650}h2{margin:0 0 4px;font-size:1.05rem}p{margin:0 0 8px}a{color:var(--accent)}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.muted{color:var(--muted)}.stack{flex-direction:column;gap:12px;display:flex}.shell{min-height:100dvh}.topbar{padding:8px var(--space);justify-content:space-between;align-items:center;min-height:56px;display:flex}.brand{letter-spacing:.01em;font-weight:650}.content{padding:0 var(--space) calc(var(--tabbar-h) + 24px + env(safe-area-inset-bottom));max-width:640px;margin:0 auto}.tabbar{z-index:10;background:var(--surface);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom);display:flex;position:fixed;bottom:0;left:0;right:0}.tab{min-height:var(--tabbar-h);color:var(--muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;font-size:.75rem;text-decoration:none;display:flex;position:relative}.tab.active{color:var(--accent);font-weight:650}.tab.active:before{content:"";background:var(--accent);border-radius:0 0 3px 3px;height:3px;position:absolute;top:0;left:25%;right:25%}@media (min-width:768px){.topbar{width:100%;max-width:640px;padding-inline:var(--space);margin:0 auto}.tabbar{max-width:640px;width:calc(100% - 2 * var(--space));border:1px solid var(--border);border-radius:var(--radius);order:0;margin:0 auto 24px;position:static;overflow:hidden}.tab{min-height:var(--tap);flex-direction:row;gap:8px;font-size:.95rem}.tab.active{background:var(--accent-soft)}.tab.active:before{border-radius:0;height:3px;inset:auto 0 0}.content{padding-bottom:48px}}.auth{max-width:420px;padding:56px var(--space) 32px;flex-direction:column;gap:12px;margin:0 auto;display:flex}.label{align-items:center;gap:4px;font-weight:600;display:flex}.input{width:100%;min-height:var(--tap);font:inherit;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:inherit;padding:10px 14px;font-size:1rem}.input[aria-invalid=true]{border-color:var(--danger)}.input:disabled{opacity:.6}.btn{min-height:var(--tap);font:inherit;border-radius:var(--radius);cursor:pointer;border:1px solid #0000;padding:10px 18px;font-weight:600}.btn.primary{background:var(--accent);color:#fff}.btn.secondary{background:var(--surface);color:var(--text);border-color:var(--border)}.btn.danger{background:var(--danger);color:#fff}.btn.small{min-height:36px;padding:6px 12px;font-size:.875rem}.btn.square{width:var(--tap);flex:none;place-items:center;padding:0;display:grid}.btn:disabled{opacity:.45;cursor:not-allowed}.icon-btn{width:var(--tap);height:var(--tap);color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;display:grid}.icon-btn:hover{background:var(--border);color:var(--text)}.notice{border-radius:var(--radius);margin:0;padding:12px 14px}.notice.error{background:var(--danger-soft);color:var(--danger)}.notice.success{background:var(--success-soft)}.notice.success p{margin:4px 0 12px}.hint{display:inline-flex;position:relative}.hint-btn{width:var(--tap);height:28px;color:var(--muted);cursor:pointer;background:0 0;border:0;place-items:center;margin:-6px 0;padding:0;display:grid}.hint-pop{z-index:5;background:var(--text);color:#fff;border-radius:8px;width:240px;padding:10px 12px;font-size:.85rem;font-weight:400;position:absolute;top:100%;left:0}.add-row{gap:8px;display:flex}.list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.row{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);align-items:center;gap:12px;min-height:56px;padding:6px 6px 6px 14px;display:flex}.row-title{overflow-wrap:anywhere;flex:1;min-width:0}.row.done .row-title{color:var(--muted);text-decoration:line-through}.check{border:2px solid var(--muted);color:#fff;cursor:pointer;background:0 0;border-radius:8px;flex:none;place-items:center;width:28px;height:28px;padding:0;display:grid;position:relative}.check:after{content:"";position:absolute;inset:-9px}.row.done .check{background:var(--accent);border-color:var(--accent)}.confirm{gap:6px;display:flex}.skeleton{background:linear-gradient(90deg, var(--border), #f1f1ed, var(--border));background-size:200% 100%;border-color:#0000;animation:1.2s infinite shimmer}@keyframes shimmer{to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.skeleton{animation:none}}.empty{text-align:center;color:var(--muted);padding:40px 16px}.empty-icon{background:var(--accent-soft);width:56px;height:56px;color:var(--accent);border-radius:50%;place-items:center;margin:0 auto 12px;display:grid}.empty h2{color:var(--text)}.empty .btn{margin-top:12px}.cal-day{margin-bottom:24px}.cal-day-label{color:var(--muted);margin:0 0 8px;font-size:.8125rem;font-weight:650}.cal-day-label:first-letter{text-transform:uppercase}.cal-event{min-height:var(--tap);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);gap:14px;padding:12px 14px;display:flex}.cal-when{width:6.5rem;color:var(--muted);flex:none;align-items:flex-start;gap:6px;font-size:.875rem;display:flex}.cal-when svg,.cal-meta svg{flex:none;margin-top:2px}.cal-body{min-width:0}.cal-title{overflow-wrap:anywhere;margin:0;font-weight:550}.cal-meta{color:var(--muted);overflow-wrap:anywhere;gap:6px;margin:4px 0 0;font-size:.875rem;display:flex}.cal-error{align-items:center;gap:10px;display:flex}.cal-updated{margin-top:32px;font-size:.75rem}.topbar-actions{align-items:center;gap:4px;display:flex}.icon-btn{text-decoration:none}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space)}.push-btn{align-items:center;gap:8px;margin-top:8px;display:inline-flex}.push-row{flex-wrap:wrap;gap:8px;display:flex}.push-row .push-btn{margin-top:8px}.push-steps{margin:8px 0 0;padding-left:20px;line-height:1.7}.push-inline{vertical-align:text-bottom;display:inline-flex}.push-status{min-height:1.4em;margin:8px 0 0}
