:root{--bg: #18151e;--surface: #221e2a;--surface-hi: #2a2533;--input: #2a2533;--text: #ece6db;--muted: #948c81;--accent: #8a57d8;--accent-light: #b491ec;--chip-bg: rgba(138, 87, 216, .18);--chip-text: #cbb1f4;--hairline: rgba(236, 230, 220, .09);--hairline-hi: rgba(236, 230, 220, .16);--danger: #e07a7a;--danger-bg: #3a2430;--radius: 16px;--radius-lg: 22px;--radius-pill: 999px;--font-display: "Bricolage Grotesque", ui-sans-serif, system-ui, sans-serif;--font-body: "Hanken Grotesk", ui-sans-serif, system-ui, sans-serif;--shadow: 0 18px 50px -12px rgba(0, 0, 0, .6);color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:15px;line-height:1.45;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button{font-family:inherit;color:inherit;cursor:pointer}:focus-visible{outline:2px solid var(--accent-light);outline-offset:2px;border-radius:6px}body:before{content:"";position:fixed;inset:0 0 auto 0;height:340px;background:radial-gradient(120% 100% at 50% -20%,rgba(138,87,216,.16),transparent 70%);pointer-events:none;z-index:0}.app{position:relative;z-index:1;display:flex;flex-direction:column;width:100%;max-width:820px;height:100dvh;margin:0 auto;padding:0 16px}.header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:22px 4px 16px}.wordmark{display:flex;align-items:baseline;gap:10px}.wordmark h1{margin:0;font-family:var(--font-display);font-weight:700;font-size:26px;letter-spacing:-.02em;color:var(--text)}.wordmark .tag{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--chip-text);background:var(--chip-bg);padding:3px 8px;border-radius:var(--radius-pill)}.header-actions{display:flex;align-items:center;gap:6px}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border:none;border-radius:var(--radius-pill);background:transparent;color:var(--muted);transition:background .15s ease,color .15s ease}.icon-btn:hover{background:var(--surface);color:var(--text)}.notice{display:flex;align-items:center;gap:10px;margin:0 4px 10px;padding:10px 14px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--hairline);color:var(--muted);font-size:13px}.notice button{margin-left:auto;border:none;background:var(--accent);color:#fff;font-weight:600;font-size:13px;padding:6px 12px;border-radius:var(--radius-pill)}.notice .dismiss{background:transparent;color:var(--muted);padding:6px}.list{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding:4px 2px 8px;scrollbar-width:thin;scrollbar-color:var(--surface-hi) transparent}.list::-webkit-scrollbar{width:8px}.list::-webkit-scrollbar-thumb{background:var(--surface-hi);border-radius:4px}.row{display:flex;align-items:flex-start;gap:12px;padding:11px 12px;border-radius:var(--radius);cursor:pointer;transition:background .12s ease}.row:hover{background:var(--surface)}.row-main{flex:1;min-width:0}.row-text{margin:0;color:var(--text);font-size:15px;line-height:1.4;word-break:break-word;white-space:pre-wrap}.row.done .row-text{color:var(--muted);text-decoration:line-through}.row-meta{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:5px}.row-time{font-size:12px;color:var(--muted)}.row-doc{display:inline-flex;color:var(--muted)}.chip{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:var(--radius-pill);background:var(--chip-bg);color:var(--chip-text);font-size:12px;font-weight:500;white-space:nowrap}.chip.past{background:#948c8124;color:var(--muted)}.chip svg{flex:0 0 auto}.row-actions{display:flex;align-items:center;gap:2px;opacity:0;transition:opacity .12s ease}.row:hover .row-actions,.row:focus-within .row-actions{opacity:1}.row-actions .icon-btn{width:32px;height:32px}.row-actions .icon-btn.danger:hover{background:var(--danger-bg);color:var(--danger)}.separator{height:1px;background:var(--hairline);margin:0 12px}.empty{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:10px;color:var(--muted);padding:40px}.empty .glyph{font-family:var(--font-display);font-weight:700;font-size:34px;color:var(--accent-light);opacity:.7}.empty h2{margin:0;font-family:var(--font-display);font-weight:600;font-size:19px;color:var(--text)}.empty p{margin:0;max-width:320px;font-size:14px}.composer-wrap{position:relative;padding:10px 2px 18px}.composer{display:flex;align-items:flex-end;gap:8px;padding:8px;border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--hairline);transition:border-color .15s ease}.composer:focus-within{border-color:var(--hairline-hi)}.composer .clock-btn{flex:0 0 auto;width:40px;height:40px;border:none;border-radius:var(--radius-pill);background:transparent;color:var(--muted);display:inline-flex;align-items:center;justify-content:center;transition:background .15s ease,color .15s ease}.composer .clock-btn:hover{background:var(--surface-hi);color:var(--text)}.composer .clock-btn.active{color:var(--accent-light);background:var(--chip-bg)}.composer textarea{flex:1;resize:none;border:none;background:transparent;color:var(--text);font-family:inherit;font-size:15px;line-height:1.4;padding:10px 4px;max-height:160px;min-height:24px}.composer textarea::placeholder{color:var(--muted)}.composer textarea:focus{outline:none}.send-btn{flex:0 0 auto;width:40px;height:40px;border:none;border-radius:var(--radius-pill);background:var(--accent);color:#fff;display:inline-flex;align-items:center;justify-content:center;transition:transform .12s ease,opacity .15s ease,background .15s ease}.send-btn:hover{background:var(--accent-light)}.send-btn:disabled{opacity:.35;cursor:default;background:var(--surface-hi)}.send-btn:not(:disabled):active{transform:scale(.92)}.pending-chip{display:inline-flex;align-items:center;gap:8px;margin:0 6px 8px;padding:6px 8px 6px 12px;border-radius:var(--radius-pill);background:var(--chip-bg);color:var(--chip-text);font-size:13px;font-weight:500}.pending-chip button{display:inline-flex;border:none;background:transparent;color:var(--chip-text);padding:2px;border-radius:var(--radius-pill)}.pending-chip button:hover{color:#fff}.composer-hint{margin:8px 8px 0;font-size:11px;color:var(--muted)}.composer-hint kbd{font-family:var(--font-body);font-size:11px;background:var(--surface-hi);border-radius:4px;padding:1px 5px;color:var(--text)}.popover-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20}.popover-backdrop.modal{z-index:42;background:#0a080e99;display:flex;align-items:center;justify-content:center;padding:20px}.popover.as-modal{position:static;z-index:43;left:auto;right:auto;bottom:auto;width:100%;max-width:420px;margin:auto}.popover{position:absolute;left:2px;right:2px;bottom:calc(100% - 4px);z-index:21;max-width:420px;padding:16px;border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--hairline-hi);box-shadow:var(--shadow)}.popover h3{margin:0 0 10px;font-family:var(--font-display);font-weight:600;font-size:15px}.quick-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:14px}.quick-pick{border:1px solid var(--hairline);background:var(--surface-hi);color:var(--text);font-size:13px;font-weight:500;padding:9px 12px;border-radius:var(--radius);text-align:left;transition:border-color .12s ease,background .12s ease}.quick-pick:hover{border-color:var(--accent);background:var(--chip-bg)}.field{margin-bottom:12px}.field label{display:block;font-size:12px;color:var(--muted);margin-bottom:6px}.field input[type=datetime-local],.field select{width:100%;border:1px solid var(--hairline);background:var(--input);color:var(--text);font-family:inherit;font-size:14px;padding:10px 12px;border-radius:var(--radius)}.field input[type=datetime-local]::-webkit-calendar-picker-indicator{filter:invert(.8);cursor:pointer}.repeat-note{margin:-4px 0 12px;font-size:12px;color:var(--accent-light)}.popover-warn{margin:-4px 0 12px;font-size:12px;color:var(--danger)}.popover-actions{display:flex;gap:8px;justify-content:flex-end}.btn{border:none;font-family:inherit;font-weight:600;font-size:14px;padding:9px 16px;border-radius:var(--radius-pill);transition:background .15s ease,opacity .15s ease}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-light)}.btn-primary:disabled{opacity:.4;cursor:default}.btn-ghost{background:transparent;color:var(--muted)}.btn-ghost:hover{background:var(--surface-hi);color:var(--text)}.btn-danger{background:transparent;color:var(--danger)}.btn-danger:hover{background:var(--danger-bg)}.drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;background:#0a080e8c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);opacity:0;animation:fade-in .18s ease forwards}.drawer{position:fixed;top:0;right:0;z-index:31;width:min(440px,100vw);height:100dvh;background:var(--bg);border-left:1px solid var(--hairline);box-shadow:var(--shadow);display:flex;flex-direction:column;transform:translate(100%);animation:slide-in .22s cubic-bezier(.22,1,.36,1) forwards}@keyframes slide-in{to{transform:translate(0)}}@keyframes fade-in{to{opacity:1}}.drawer-head{display:flex;align-items:center;justify-content:space-between;padding:18px 18px 12px}.drawer-head h2{margin:0;font-family:var(--font-display);font-weight:600;font-size:17px}.drawer-body{flex:1;overflow-y:auto;padding:4px 18px 18px}.drawer-body .field label{font-weight:500}.drawer-body textarea,.drawer-body input[type=text]{width:100%;border:1px solid var(--hairline);background:var(--input);color:var(--text);font-family:inherit;font-size:15px;padding:12px;border-radius:var(--radius);resize:vertical}.drawer-body textarea{min-height:90px;line-height:1.45}.reminder-box{margin-top:4px;padding:14px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--hairline)}.reminder-box .current{display:flex;align-items:center;gap:10px;margin-bottom:12px}.reminder-box-actions{display:flex;gap:8px}.drawer-foot{padding:14px 18px;border-top:1px solid var(--hairline);display:flex;gap:10px;align-items:center}.drawer-foot .btn-primary{margin-left:auto}.confirm-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:#0a080e99;display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;animation:fade-in .15s ease forwards}.confirm{width:100%;max-width:360px;padding:22px;border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--hairline-hi);box-shadow:var(--shadow)}.confirm h3{margin:0 0 8px;font-family:var(--font-display);font-weight:600;font-size:17px}.confirm p{margin:0 0 18px;color:var(--muted);font-size:14px}.confirm-quote{color:var(--text);font-style:italic}.confirm-actions{display:flex;gap:8px;justify-content:flex-end}.confirm-actions .btn-solid-danger{background:var(--danger);color:#2a1418}.confirm-actions .btn-solid-danger:hover{opacity:.9}.account-email{font-size:13px;color:var(--muted);max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-loading{align-items:center;justify-content:center;color:var(--muted)}.signin{position:relative;z-index:1;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px 16px}.signin-card{width:100%;max-width:380px;padding:28px;border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--hairline);box-shadow:var(--shadow)}.signin-card .wordmark{margin-bottom:22px}.signin-card h2{margin:0 0 6px;font-family:var(--font-display);font-weight:600;font-size:20px}.signin-lead{margin:0 0 18px;color:var(--muted);font-size:14px;line-height:1.5}.signin-card form{display:flex;flex-direction:column;gap:12px}.signin-card input[type=email],.signin-card input[type=password]{width:100%;border:1px solid var(--hairline);background:var(--input);color:var(--text);font-family:inherit;font-size:15px;padding:12px 14px;border-radius:var(--radius)}.signin-card input::placeholder{color:var(--muted)}.signin-submit{width:100%;padding:12px}.signin-hint{margin:-4px 0 0;color:var(--muted);font-size:12px}.signin-error{margin:0;color:var(--danger);font-size:13px}.signin-info{margin:0;color:var(--accent-light);font-size:13px;line-height:1.5}.signin-links{display:flex;justify-content:space-between;gap:12px;margin-top:16px}.signin-links button{border:none;background:transparent;color:var(--muted);font-family:inherit;font-size:13px;padding:4px 2px;border-radius:6px;transition:color .15s ease}.signin-links button:hover{color:var(--accent-light)}@media(max-width:560px){.quick-grid{grid-template-columns:1fr}.composer-hint{display:none}}
