:root{--bg: #1b1d1f;--panel: #232629;--panel-2: #2a2e31;--border: #33383c;--text: #e8eaed;--muted: #9aa0a6;--accent: #298ce4;--danger: #ef4444;--tabbar-h: 60px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Inter,sans-serif;-webkit-font-smoothing:antialiased}.screen{min-height:100%;display:flex;flex-direction:column}.center{align-items:center;justify-content:center}.muted{color:var(--muted)}.pad{padding:40px 20px}.spacer{flex:1}.signin{gap:16px;padding:24px;text-align:center}.signin-logo{width:72px;height:72px;border-radius:18px}.signin-title{font-size:28px;font-weight:700;margin:4px 0 0}.accent{color:var(--accent)}.notice{font-size:14px;color:#fcd34d;background:#f59e0b1a;border:1px solid rgba(245,158,11,.25);border-radius:10px;padding:10px 14px;max-width:300px}.btn{border:none;border-radius:12px;padding:10px 16px;font-size:15px;font-weight:600;cursor:pointer;color:var(--text);background:var(--panel-2)}.btn.lg{padding:14px 22px;font-size:16px}.btn.sm{padding:6px 10px;font-size:13px;border-radius:10px}.btn.primary{background:var(--accent);color:#fff}.btn.ghost{background:transparent;color:var(--muted)}.btn.danger{background:transparent;color:var(--danger)}.btn:disabled{opacity:.5}.link{background:none;border:none;color:var(--muted);font-size:13px;cursor:pointer;padding:0}.link:hover{color:var(--text)}.chip{background:transparent;border:1px solid var(--border);color:var(--muted);font-size:12px;border-radius:999px;padding:4px 10px;cursor:pointer}.chip.on{background:var(--accent);border-color:var(--accent);color:#fff}.app{display:flex;flex-direction:column;height:100%}.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px calc(12px + env(safe-area-inset-top,0));background:#1b1d1fe6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border)}.brand{display:flex;align-items:center;gap:8px;font-weight:700}.brand img{width:24px;height:24px;border-radius:6px}.who{display:flex;align-items:center;gap:8px}.tab-content{flex:1;min-height:0;overflow-y:auto;padding:12px 12px calc(var(--tabbar-h) + env(safe-area-inset-bottom,0) + 12px)}.tab-title{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:2px 4px 10px}.task{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;margin-bottom:8px;background:var(--panel);border:1px solid var(--border);border-radius:14px}.task.done{opacity:.55}.check{margin-top:2px;width:22px;height:22px;flex:0 0 auto;border-radius:50%;border:2px solid var(--muted);background:transparent;cursor:pointer}.check.checked{background:#10b981;border-color:#10b981}.task-main{flex:1;min-width:0;background:none;border:none;padding:0;text-align:left;color:inherit;cursor:pointer}.task-row{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.task-title{font-size:15px;line-height:1.3;color:var(--text)}.task.done .task-title{text-decoration:line-through;color:var(--muted)}.desc{font-size:12px;color:var(--muted);margin:3px 0 0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.task-meta{font-size:12px;color:var(--muted);margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.due{font-size:12px;color:var(--muted);flex:0 0 auto}.due.overdue{color:var(--danger);font-weight:600}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:20;height:calc(var(--tabbar-h) + env(safe-area-inset-bottom,0));padding-bottom:env(safe-area-inset-bottom,0);display:flex;background:#1b1d1ff5;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-top:1px solid var(--border)}.tab{flex:1;position:relative;background:none;border:none;color:var(--muted);cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:6px 2px}.tab.active{color:var(--text)}.tab-dot{width:8px;height:8px;border-radius:50%;border:1.5px solid}.tab-label{font-size:11px;font-weight:600}.tab-count{position:absolute;top:4px;right:50%;transform:translate(16px);min-width:16px;height:16px;border-radius:8px;color:#fff;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;padding:0 4px}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:flex-end;z-index:50}.sheet{width:100%;background:var(--panel);border-top-left-radius:20px;border-top-right-radius:20px;padding:10px 18px calc(20px + env(safe-area-inset-bottom,0));animation:sheet-up .2s ease-out}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.sheet-grip{width:40px;height:4px;border-radius:2px;background:var(--border);margin:4px auto 14px}.sheet-title{width:100%;background:transparent;border:none;color:var(--text);font-size:18px;font-weight:600;outline:none;padding:4px 0;margin-bottom:10px;border-bottom:1px solid var(--border)}.sheet-label{display:block;font-size:12px;color:var(--muted);margin:8px 0 4px}.sheet-input{width:100%;background:var(--panel-2);border:1px solid var(--border);color:var(--text);border-radius:10px;padding:10px 12px;font-size:15px;outline:none;resize:none;font-family:inherit}.sheet-check{display:flex;align-items:center;gap:8px;font-size:15px;color:var(--text);margin-top:12px}.sheet-actions{display:flex;align-items:center;gap:10px;margin-top:18px}.install-help{padding:4px 2px 2px}.install-help h3{margin:4px 0 12px;font-size:17px;font-weight:700}.install-help p{font-size:14px;color:var(--muted);margin:8px 0;line-height:1.45}.install-help b{color:var(--text);font-weight:600}
