*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0f1117;--surface:#1a1d27;--surface2:#222535;--border:#2d3148;--text:#e8eaf0;--text-muted:#7c8098;--primary:#6366f1;--primary-hover:#4f51d9;--danger:#ef4444;--success:#22c55e;--radius:10px;--font:"Inter", system-ui, sans-serif}body{background:var(--bg);color:var(--text);font-family:var(--font);min-height:100vh;font-size:15px;line-height:1.5}.app-shell{min-height:100vh;display:flex}.sidebar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;width:220px;padding:24px 0;display:flex;position:fixed;top:0;bottom:0;left:0}.sidebar-brand{color:var(--primary);letter-spacing:-.3px;padding:0 20px 24px;font-size:18px;font-weight:700}.sidebar-nav{flex-direction:column;flex:1;gap:4px;padding:0 12px;display:flex}.nav-item{color:var(--text-muted);border-radius:8px;align-items:center;gap:10px;padding:10px 12px;font-size:14px;font-weight:500;text-decoration:none;transition:all .15s;display:flex}.nav-item:hover{background:var(--surface2);color:var(--text)}.nav-item.active{background:var(--primary);color:#fff}.space-switcher{padding:8px 12px;position:relative}.space-switcher-btn{background:var(--surface2);border:1px solid var(--border);cursor:pointer;width:100%;color:var(--text);border-radius:6px;align-items:center;gap:6px;padding:6px 10px;font-size:13px;font-weight:500;display:flex}.space-switcher-btn:hover{background:var(--surface3,#2a2a2a)}.space-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.space-name{text-align:left;flex:1}.space-dropdown{background:var(--surface);border:1px solid var(--border);z-index:100;border-radius:8px;padding:4px;position:absolute;bottom:calc(100% + 4px);left:12px;right:12px;box-shadow:0 4px 16px #0000004d}.space-option{cursor:pointer;width:100%;color:var(--text);background:0 0;border:none;border-radius:6px;align-items:center;gap:8px;padding:8px 10px;font-size:13px;display:flex}.space-option:hover{background:var(--surface2)}.space-option.active{background:var(--primary);color:#fff}.space-role{opacity:.6;margin-left:auto;font-size:11px}.sidebar-footer{border-top:1px solid var(--border);justify-content:space-between;align-items:center;margin-top:auto;padding:16px 20px 0;display:flex}.user-name{color:var(--text-muted);font-size:13px}.logout-btn{cursor:pointer;color:var(--text-muted);background:0 0;border:none;padding:4px}.logout-btn:hover{color:var(--danger)}.main-content{flex:1;min-height:100vh;margin-left:220px}.page{max-width:780px;margin:0 auto;padding:40px 32px}.page-header{justify-content:space-between;align-items:flex-start;margin-bottom:28px;display:flex}.page-title{letter-spacing:-.5px;font-size:26px;font-weight:700}.page-sub{color:var(--text-muted);margin-top:2px;font-size:13px}.filter-bar{flex-wrap:wrap;gap:8px;margin-bottom:24px;display:flex}.filter-btn{background:var(--surface);border:1px solid var(--border);color:var(--text-muted);cursor:pointer;border-radius:20px;padding:6px 14px;font-size:13px;transition:all .15s}.filter-btn:hover{border-color:var(--primary);color:var(--text)}.filter-btn.active{background:var(--primary);border-color:var(--primary);color:#fff}.task-list{flex-direction:column;gap:8px;display:flex}.task-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);align-items:flex-start;gap:12px;padding:14px 16px;transition:border-color .15s;display:flex}.task-card:hover{border-color:var(--primary)}.task-card.needs-clarification{background:#1c1608;border-color:#854d0e}.task-card.task-card-blocked{opacity:.75}.task-card-left{padding-top:1px}.complete-btn{border:2px solid var(--border);cursor:pointer;color:#0000;background:0 0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;transition:all .15s;display:flex}.complete-btn:hover{border-color:var(--success);color:var(--success)}.complete-btn:disabled{opacity:.35;cursor:not-allowed}.complete-btn:disabled:hover{border-color:var(--border);color:#0000}.task-card-body{flex:1;min-width:0}.task-title{margin-bottom:4px;font-size:15px;font-weight:500}.task-parent-link{color:var(--text-muted);margin-bottom:3px;font-size:11px}.task-first-step{color:var(--text-muted);margin-bottom:6px;font-size:12px}.clarification-banner{color:#fbbf24;align-items:center;gap:6px;margin-bottom:8px;font-size:12px;display:flex}.task-meta{flex-wrap:wrap;gap:6px;display:flex}.tag{background:var(--surface2);border:1px solid var(--border);color:var(--text-muted);border-radius:4px;align-items:center;gap:4px;padding:2px 8px;font-size:11px;display:inline-flex}.tag-subtasks{color:#7ec8e3;background:#1e3a5f;border-color:#2d5f8a}.tag-waiting{color:#e3c07e;background:#3a2d1e;border-color:#7a5c2e}.tag-recurrence{color:#7ec87e;background:#1e2f1e;border-color:#3a5f3a}.task-card-right{flex-direction:column;align-items:center;gap:8px;display:flex}.priority-dot{border-radius:50%;width:8px;height:8px}.drop-btn{cursor:pointer;color:var(--text-muted);opacity:0;background:0 0;border:none;padding:2px;transition:opacity .15s}.task-card:hover .drop-btn{opacity:1}.drop-btn:hover{color:var(--danger)}.idea-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;display:grid}.idea-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:8px;padding:16px;transition:border-color .15s;display:flex}.idea-card:hover{border-color:var(--primary)}.idea-card-header{align-items:center;gap:6px;display:flex}.idea-type-icon{color:var(--primary)}.idea-type-label{color:var(--text-muted);text-transform:capitalize;font-size:11px}.idea-title{font-size:14px;font-weight:600}.idea-summary,.idea-meta,.idea-notes{color:var(--text-muted);font-size:12px}.idea-drop-btn{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:6px;align-self:flex-start;margin-top:auto;padding:4px 10px;font-size:12px;transition:all .15s}.idea-drop-btn:hover{border-color:var(--danger);color:var(--danger)}.idea-stage-badge{color:#fff;white-space:nowrap;border-radius:10px;flex-shrink:0;margin-left:auto;padding:2px 6px;font-size:10px}.idea-stage-badge-panel{color:#fff;white-space:nowrap;background:#2d7a3a;border-radius:10px;padding:3px 8px;font-size:11px}.idea-stage-hint{color:#7ec87e;background:#1a3a1a;border:1px solid #2d7a3a;border-radius:6px;margin-bottom:12px;padding:8px 12px;font-size:12px}.idea-captured-via{color:#7eb8e8;background:#1a2a3a;border:1px solid #2a4a6a;border-radius:6px;margin-bottom:12px;padding:8px 12px;font-size:12px}.idea-references{margin-bottom:12px}.idea-references-toggle{color:var(--text-muted);cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;padding:0;font-size:13px;transition:color .15s;display:flex}.idea-references-toggle:hover{color:var(--text)}.idea-references-list{background:#0a1a2a;border:1px solid #1a3a5a;border-radius:6px;flex-direction:column;gap:4px;margin-top:6px;padding:8px;display:flex}.idea-reference-link{color:#7eb8e8;text-overflow:ellipsis;white-space:nowrap;border-radius:4px;padding:4px 6px;font-size:12px;text-decoration:none;transition:background .15s;overflow:hidden}.idea-reference-link:hover{color:#9ecbf0;background:#1a3a5a}.idea-context-notes{background:#0a1a2a;border:1px solid #1a3a5a;border-radius:6px;margin-bottom:12px;padding:10px}.idea-context-label{color:var(--text-muted);margin-bottom:6px;font-size:12px}.idea-context-content{color:var(--text-muted);white-space:pre-wrap;word-break:break-word;font-size:12px;line-height:1.4}.import-banner{color:#7ec87e;background:#0d1f0d;border:1px solid #2d7a3a;border-radius:6px;justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px;padding:8px 12px;font-size:13px;display:flex}.import-banner.import-error{border-color:var(--danger);color:#e07070;background:#1f0d0d}.btn-primary{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:8px;align-items:center;gap:6px;padding:9px 18px;font-size:14px;font-weight:500;transition:background .15s;display:inline-flex}.btn-primary:hover{background:var(--primary-hover)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-ghost{color:var(--text-muted);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:8px;align-items:center;gap:6px;padding:9px 18px;font-size:14px;transition:all .15s;display:inline-flex}.btn-ghost:hover{color:var(--text);border-color:var(--text-muted)}.icon-btn{cursor:pointer;color:var(--text-muted);background:0 0;border:none;align-items:center;padding:4px;display:flex}.icon-btn:hover{color:var(--text)}.modal-overlay{z-index:100;background:#0009;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border:1px solid var(--border);border-radius:14px;width:100%;max-width:520px;padding:28px}.modal-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.modal-header h2{font-size:18px;font-weight:600}.capture-textarea{background:var(--surface2);border:1px solid var(--border);width:100%;color:var(--text);font-family:var(--font);resize:vertical;border-radius:8px;outline:none;min-height:110px;padding:14px;font-size:15px;transition:border-color .15s}.capture-textarea:focus{border-color:var(--primary)}.capture-textarea::placeholder{color:var(--text-muted)}.modal-hint{color:var(--text-muted);margin-top:6px;font-size:12px}.modal-actions{justify-content:flex-end;gap:10px;margin-top:20px;display:flex}.modal-success{text-align:center;color:var(--success);flex-direction:column;align-items:center;gap:10px;padding:24px 0;font-size:15px;display:flex}.modal-analysing{color:var(--text-muted);flex-direction:column;align-items:center;gap:14px;padding:32px 0;font-size:14px;display:flex}.modal-questions{flex-direction:column;gap:20px;padding:4px 0;display:flex}.modal-capture-preview{color:var(--text-muted);margin:0;font-size:13px;font-style:italic}.modal-questions-intro{color:var(--text-secondary);margin:0;font-size:14px}.cq-block{flex-direction:column;gap:10px;display:flex}.cq-question{color:var(--text-primary);margin:0;font-size:14px;font-weight:500}.cq-options{flex-wrap:wrap;gap:8px;display:flex}.cq-option{border:1px solid var(--border);background:var(--surface-2);color:var(--text-secondary);cursor:pointer;border-radius:20px;align-items:center;gap:6px;padding:8px 14px;font-size:13px;transition:all .15s;display:flex}.cq-option:hover{border-color:var(--accent);color:var(--text-primary)}.cq-option-selected{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:500}.login-page{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login-box{background:var(--surface);border:1px solid var(--border);border-radius:16px;width:100%;max-width:400px;padding:40px}.login-box h1{color:var(--primary);margin-bottom:4px;font-size:24px;font-weight:700}.login-sub{color:var(--text-muted);margin-bottom:28px;font-size:14px}.login-box form{flex-direction:column;gap:12px;display:flex}.login-box label{color:var(--text-muted);font-size:13px;font-weight:500}.login-box input{background:var(--surface2);border:1px solid var(--border);width:100%;color:var(--text);border-radius:8px;outline:none;padding:10px 14px;font-size:15px;transition:border-color .15s}.login-box input:focus{border-color:var(--primary)}.login-box button{justify-content:center;width:100%;margin-top:8px}.error{color:var(--danger);font-size:13px}.loading-state,.empty-state{color:var(--text-muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:64px 0;display:flex}.empty-icon{color:var(--border)}.loading-full{height:100vh;color:var(--text-muted);justify-content:center;align-items:center;display:flex}.import-result{background:var(--surface);border:1px solid var(--border);color:var(--text-muted);border-radius:8px;margin-bottom:16px;padding:10px 16px;font-size:14px}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:.8s linear infinite spin}.td-backdrop{z-index:200;background:#0006;position:fixed;inset:0}.td-panel{background:var(--surface);border-left:1px solid var(--border);z-index:201;flex-direction:column;width:440px;max-width:100vw;animation:.2s slide-in;display:flex;position:fixed;top:0;bottom:0;right:0;overflow:hidden}@keyframes slide-in{0%{transform:translate(100%)}to{transform:translate(0)}}.td-header{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.td-heading{font-size:16px;font-weight:600}.td-header-actions{align-items:center;gap:8px;display:flex}.td-save-btn{padding:7px 14px;font-size:13px}.td-body{flex:1;padding:0 24px 40px;overflow-y:auto}.td-clarification{color:#fbbf24;background:#1c1608;border:1px solid #854d0e;border-radius:8px;align-items:flex-start;gap:8px;margin:20px 0 4px;padding:12px 14px;font-size:13px;display:flex}.td-clarification-block{background:#1c1608;border:1px solid #854d0e;border-radius:8px;flex-direction:column;gap:14px;margin:20px 0 4px;padding:14px 16px;display:flex}.td-clarification-header{color:#fbbf24;align-items:center;gap:8px;font-size:13px;font-weight:500;display:flex}.td-clarification-question{flex-direction:column;gap:8px;display:flex}.td-clarification-q{color:var(--text-primary);margin:0;font-size:13px;font-weight:500}.td-clarifying{color:var(--text-muted);align-items:center;gap:8px;padding:4px 0;font-size:13px;display:flex}.td-reclassify-error{color:#ef4444;margin:4px 0 0;font-size:13px}.modal-error{color:#ef4444;margin:0;font-size:13px}.cq-progress{color:var(--text-muted);margin:-8px 0 4px;font-size:12px}.when-date-picker{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.when-date-picker .td-input{flex:1;min-width:120px}.when-time{max-width:120px}.when-hint{color:var(--text-muted);margin:0;font-size:12px}.when-optional{color:var(--text-muted);font-size:12px;font-weight:400}.td-section{border-bottom:1px solid var(--border);padding:20px 0}.td-section:last-child{border-bottom:none}.td-section-title{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin-bottom:14px;font-size:11px;font-weight:600}.td-confidence{margin-top:-6px;margin-bottom:12px;font-size:12px}.td-field{flex-direction:column;gap:8px;margin-bottom:20px;display:flex}.td-field:last-child{margin-bottom:0}.td-label-row{justify-content:space-between;align-items:baseline;display:flex}.td-label{color:var(--text);font-size:13px;font-weight:600}.td-hint{color:var(--text-muted);font-size:11px}.td-input,.td-textarea{background:var(--surface2);border:1px solid var(--border);color:var(--text);font-family:var(--font);border-radius:8px;outline:none;width:100%;padding:10px 12px;font-size:14px;transition:border-color .15s}.td-input:focus,.td-textarea:focus{border-color:var(--primary)}.td-input-title{font-size:16px;font-weight:500}.td-textarea{resize:vertical;min-height:72px}.chip-group{gap:8px;display:grid}.chip{background:var(--surface2);border:1px solid var(--border);color:var(--text-muted);cursor:pointer;text-align:center;white-space:nowrap;border-radius:8px;padding:10px 6px;font-size:13px;font-weight:500;transition:all .15s}.chip:hover{border-color:var(--primary);color:var(--text)}.chip-active{background:var(--primary);border-color:var(--primary);color:#fff}.td-progress-note{background:#0f1f2e;border:1px solid #1e4a6b;border-radius:8px;margin-bottom:4px;padding:12px 14px}.td-progress-note-label{text-transform:uppercase;letter-spacing:.06em;color:#5b9bd5;margin-bottom:4px;font-size:10px;font-weight:600;display:block}.td-progress-note p{color:var(--text-secondary);margin:0;font-size:13px}.td-note-history{margin-top:6px}.td-note-history-toggle{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0;font-size:11px}.td-note-history-toggle:hover{color:var(--text-secondary)}.td-note-history-list{flex-direction:column;gap:6px;margin-top:6px;display:flex}.td-note-history-item{background:var(--surface);border:1px solid var(--border);border-radius:4px;padding:6px 8px}.td-note-history-date{color:var(--text-muted);margin-bottom:2px;font-size:10px;display:block}.td-note-history-text{color:var(--text-secondary);white-space:pre-wrap;margin:0;font-size:12px}.btn-recording{color:#e05252;border-color:#e05252}.btn-recording:hover{color:#c93d3d;border-color:#c93d3d}.td-action-btns{gap:8px;margin-bottom:4px;display:flex}.td-action-btn{background:var(--surface-2);border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;border-radius:6px;align-items:center;gap:6px;padding:7px 12px;font-size:12px;font-weight:500;transition:background .15s,color .15s;display:flex}.td-action-btn:hover:not(:disabled){background:var(--surface-3);color:var(--text-primary)}.td-action-btn:disabled{opacity:.5;cursor:not-allowed}.td-micro-steps{background:#0d1f0d;border:1px solid #1a4d1a;border-radius:8px;padding:12px 14px}.td-micro-steps-header{color:#4ade80;text-transform:uppercase;letter-spacing:.06em;align-items:center;gap:6px;margin-bottom:8px;font-size:11px;font-weight:600;display:flex}.td-micro-steps-list{margin:0;padding-left:18px}.td-micro-steps-list li{color:var(--text-secondary);margin-bottom:4px;font-size:13px;line-height:1.4}.td-subtasks{background:var(--surface-2);border:1px solid var(--border);border-radius:8px;padding:12px 14px}.td-subtasks-header{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;align-items:center;gap:6px;margin-bottom:8px;font-size:11px;font-weight:600;display:flex}.td-subtasks-list{margin:0;padding:0;list-style:none}.td-subtask-item{border-bottom:1px solid var(--border);align-items:flex-start;gap:8px;padding:6px 0;display:flex}.td-subtask-item:last-child{border-bottom:none}.td-subtask-status-dot{background:var(--primary);border-radius:50%;flex-shrink:0;width:8px;height:8px;margin-top:4px}.td-subtask-done .td-subtask-status-dot{background:#4ade80}.td-subtask-dropped .td-subtask-status-dot{background:var(--text-muted)}.td-subtask-content{flex-direction:column;gap:2px;display:flex}.td-subtask-title{color:var(--text-primary);font-size:13px}.td-subtask-title-btn{cursor:pointer;color:var(--text-primary);text-align:left;background:0 0;border:none;padding:0;font-size:13px;-webkit-text-decoration:underline #0000;text-decoration:underline #0000;transition:text-decoration-color .15s}.td-subtask-title-btn:hover{-webkit-text-decoration-color:var(--primary);text-decoration-color:var(--primary);color:var(--primary)}.td-subtask-step{color:var(--text-muted);font-size:11px}.td-add-subtask-form{align-items:center;gap:6px;margin-top:8px;display:flex}.td-add-subtask-form .td-input{flex:1;font-size:13px}.td-waiting-section{margin-bottom:4px}.td-waiting-active{background:#3a2d1e;border:1px solid #7a5c2e;border-radius:8px;padding:12px 14px}.td-waiting-header{color:#e3c07e;align-items:center;gap:6px;margin-bottom:4px;font-size:13px;display:flex}.td-waiting-meta{color:var(--text-muted);margin:0 0 8px;font-size:12px}.td-waiting-cancel{padding:2px 8px;font-size:12px}.td-waiting-form{background:var(--surface-2);border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:10px;padding:12px 14px;display:flex}.td-waiting-days{flex-direction:column;gap:6px;display:flex}.td-granularity{flex-wrap:wrap;gap:6px;display:flex}.chip-sm{padding:5px 10px;font-size:11px}.td-reclassify-btn{width:100%;margin-top:8px}.td-micro-steps-list--granular li{margin-bottom:8px;line-height:1.5}.modal .chip{padding:8px 12px}.modal .chip-active{background:var(--primary);border-color:var(--primary);color:#fff}.td-meta-bar{color:var(--text-muted);border-top:1px solid var(--border);justify-content:space-between;margin-top:8px;padding-top:8px;font-size:11px;display:flex}.task-title-btn{color:var(--text);cursor:pointer;text-align:left;background:0 0;border:none;padding:0;font-size:15px;font-weight:500;transition:color .15s}.task-title-btn:hover{color:var(--primary)}.settings-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px}.settings-section-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;display:flex}.settings-section-title{margin-bottom:4px;font-size:16px;font-weight:600}.settings-section-desc{color:var(--text-muted);max-width:560px;font-size:13px}.rules-editor{background:var(--bg);width:100%;min-height:560px;color:var(--text);border:1px solid var(--border);resize:vertical;border-radius:8px;outline:none;padding:16px;font-family:Courier New,monospace;font-size:13px;line-height:1.7}.rules-editor:focus{border-color:var(--primary)}.settings-tabs{border-bottom:1px solid var(--border);gap:4px;margin-bottom:16px;padding-bottom:0;display:flex}.settings-tab{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:8px 16px;font-size:14px;font-weight:500;transition:color .15s,border-color .15s}.settings-tab:hover{color:var(--text-secondary)}.settings-tab.active{color:var(--primary);border-bottom-color:var(--primary)}.health-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;display:flex}.health-cards{flex-direction:column;gap:8px;display:flex}.health-card{background:var(--surface-2);border:1px solid var(--border);border-radius:8px;padding:12px 14px}.health-card-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.health-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.health-card-name{min-width:140px;font-size:14px;font-weight:500}.health-latency{color:var(--text-muted);background:var(--surface-3);border-radius:4px;padding:2px 6px;font-size:12px}.health-checked{color:var(--text-muted);font-size:12px}.health-detail{color:var(--text-muted);text-align:right;word-break:break-word;flex:1;margin-left:auto;font-size:12px}.health-history-toggle{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:4px;margin-left:auto;padding:2px 8px;font-size:11px}.health-history-toggle:hover{color:var(--text-secondary)}.health-history{border-top:1px solid var(--border);flex-direction:column;gap:6px;margin-top:8px;padding-top:8px;display:flex}.health-history-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.health-footnote{color:var(--text-muted);margin-top:12px;font-size:12px}.page-content{max-width:960px;margin:0 auto;padding:40px 32px}.shopping-sidebar{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-shrink:0;width:200px;padding:16px}.shopping-sidebar-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.shopping-sidebar-header h3{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;font-size:13px;font-weight:700}.shopping-new-list-form{flex-direction:column;gap:8px;margin-bottom:12px;display:flex}.shopping-list-item{cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--text-muted);border-radius:7px;align-items:center;gap:8px;padding:8px 10px;font-size:14px;display:flex}.shopping-list-item:hover{background:var(--surface2);color:var(--text)}.shopping-list-active{background:var(--primary)!important;color:#fff!important}.shopping-list-active .icon-btn{color:#ffffffb3}.shopping-list-active .icon-btn:hover{color:#fff}.shopping-list-name{text-overflow:ellipsis;white-space:nowrap;flex:1;align-items:center;gap:6px;min-width:0;display:flex;overflow:hidden}.shopping-list-meta{opacity:.7;white-space:nowrap;font-size:12px}.shopping-add-item-form{flex-wrap:wrap;gap:8px;margin-bottom:20px;display:flex}.shopping-qty-input{max-width:100px}.shopping-new-trip-form{align-items:center;gap:8px;margin-bottom:16px;display:flex}.shopping-trip-banner{background:var(--surface2);border:1px solid var(--border);color:var(--text-muted);border-radius:8px;align-items:center;gap:8px;margin-bottom:16px;padding:10px 14px;font-size:13px;display:flex}.shopping-section-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin:20px 0 8px;font-size:12px;font-weight:600}.shopping-item-list{flex-direction:column;gap:4px;display:flex}.shopping-item{background:var(--surface);border:1px solid var(--border);border-radius:8px;align-items:center;gap:10px;padding:10px 12px;transition:opacity .15s;display:flex}.shopping-item-bought{opacity:.45}.shopping-item-check{cursor:pointer;color:var(--primary);background:0 0;border:none;align-items:center;padding:0;display:flex}.shopping-item-check:hover{color:var(--text)}.shopping-item-name{flex:1;font-size:14px}.shopping-item-qty{color:var(--text-muted);font-size:13px}.shopping-item-flag{color:var(--danger);vertical-align:middle;margin-left:6px}.shopping-bought .shopping-item-name{text-decoration:line-through}.overdue-banner{color:#e3807e;background:#3a1e1e;border:1px solid #7a2e2e;border-radius:8px;align-items:center;gap:10px;margin-bottom:16px;padding:10px 16px;font-size:14px;display:flex}.overdue-banner svg{flex-shrink:0}.overdue-banner span{flex:1}.review-banner{color:#e3d07e;background:#2d2a1a;border-color:#7a6e2e}.banner-dismiss-btn{color:inherit;cursor:pointer;background:0 0;border:1px solid;border-radius:6px;flex-shrink:0;padding:2px 10px;font-size:12px}.banner-dismiss-btn:hover{opacity:.75}.task-card-overdue{border-left:3px solid var(--danger)}@media (width<=640px){.sidebar{display:none}.main-content{margin-left:0}.page{padding:24px 16px}.td-panel{width:100vw}}.search-overlay{z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0009;justify-content:center;align-items:flex-start;padding-top:80px;display:flex;position:fixed;inset:0}.search-modal{background:var(--surface);border:1px solid var(--border);border-radius:12px;width:560px;max-width:calc(100vw - 32px);overflow:hidden;box-shadow:0 24px 64px #00000080}.search-input-row{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:14px 16px;display:flex}.search-icon{color:var(--text-muted);flex-shrink:0}.search-input{color:var(--text);background:0 0;border:none;outline:none;flex:1;font-size:16px}.search-clear{color:var(--text-muted);cursor:pointer;background:0 0;border:none;align-items:center;padding:2px;display:flex}.search-clear:hover{color:var(--text)}.search-status{color:var(--text-muted);text-align:center;padding:20px 16px;font-size:14px}.search-hint{color:var(--text-muted);text-align:center;padding:12px 16px;font-size:12px}.search-results{max-height:400px;padding:8px 0;overflow-y:auto}.search-group{margin-bottom:4px}.search-group-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);align-items:center;gap:6px;padding:4px 16px;font-size:11px;font-weight:600;display:flex}.search-result-item{text-align:left;cursor:pointer;width:100%;color:var(--text);background:0 0;border:none;flex-direction:column;gap:2px;padding:8px 16px;display:flex}.search-result-item:hover,.search-result-item.active{background:var(--surface-raised,#22263a)}.search-result-title{font-size:14px}.search-result-snippet{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.search-result-domain{color:var(--accent,#6c8ebf);text-transform:capitalize;font-size:11px}.search-trigger{cursor:pointer;font-size:inherit;color:var(--text-muted);text-align:left;background:0 0;border:none;width:100%;font-family:inherit}.search-trigger:hover{color:var(--text);background:var(--surface-raised,#22263a)}.review-page{justify-content:center;align-items:flex-start;min-height:100%;padding:2rem;display:flex}.review-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;width:100%;max-width:600px;padding:2rem}.review-heading{margin-bottom:1rem;font-size:1.4rem;font-weight:700}.review-stats-bar{color:var(--text-muted);background:var(--bg);border-radius:8px;flex-wrap:wrap;gap:.75rem;margin-bottom:1.5rem;padding:.75rem;font-size:.8rem;display:flex}.review-start{text-align:center;padding:1rem 0}.review-intro{color:var(--text-muted);margin-bottom:1.5rem;line-height:1.6}.review-flow{flex-direction:column;gap:1.25rem;display:flex}.review-step-indicator{color:var(--accent);text-transform:uppercase;letter-spacing:.05em;font-size:.75rem;font-weight:600}.review-message{white-space:pre-line;line-height:1.6}.review-triage{background:var(--bg);border-radius:8px;flex-direction:column;gap:.75rem;padding:1rem;display:flex}.review-triage-title{font-weight:600}.review-triage-actions{flex-wrap:wrap;gap:.5rem;display:flex}.review-triage-btn{flex:1;min-width:120px}.review-step4{flex-direction:column;gap:.5rem;display:flex}.review-one-thing-input{border:1px solid var(--border);background:var(--bg);width:100%;color:var(--text);resize:vertical;border-radius:8px;padding:.75rem;font-family:inherit;font-size:.95rem}.review-one-thing-input:focus{border-color:var(--accent);outline:none}.focus-shell{color:#e8eaf6;background:#0a0c14;flex-direction:column;min-height:100vh;display:flex}.focus-loading{color:#aaa;justify-content:center;align-items:center;height:100vh;font-size:1.1rem;display:flex}.focus-header{border-bottom:1px solid #1e2235;justify-content:space-between;align-items:center;padding:1rem 1.5rem;display:flex}.focus-back-btn,.focus-done-btn{cursor:pointer;color:#aaa;background:0 0;border:1px solid #2a2f45;border-radius:8px;padding:.4rem .9rem;font-size:.85rem;transition:all .15s}.focus-back-btn:hover{color:#e8eaf6;background:#1e2235}.focus-done-btn{color:#4caf80;border-color:#4caf80}.focus-done-btn:hover{background:#4caf801a}.focus-task-label{color:#e8eaf6;text-align:center;text-overflow:ellipsis;white-space:nowrap;max-width:50%;font-size:1rem;font-weight:600;overflow:hidden}.focus-body{flex-direction:column;flex:1;align-items:center;gap:2rem;padding:2rem 1.5rem;display:flex}.focus-subtasks{flex-direction:column;gap:.5rem;width:100%;max-width:400px;display:flex}.focus-subtask-item{cursor:pointer;text-align:left;color:#ccc;background:#111625;border:1px solid #1e2235;border-radius:8px;align-items:center;gap:.75rem;padding:.65rem 1rem;font-size:.9rem;transition:all .15s;display:flex}.focus-subtask-item:hover{color:#e8eaf6;border-color:#3a3f5c}.focus-subtask-item.done{color:#4caf80;opacity:.6;text-decoration:line-through}.focus-subtask-check{min-width:1.2rem;font-size:1rem}.focus-subtask-progress{color:#666;text-align:right;font-size:.75rem}.focus-timer-area{justify-content:center;align-items:center;display:flex;position:relative}.focus-ring{filter:drop-shadow(0 0 12px #6366f14d)}.focus-ring-bg{fill:none;stroke:#1e2235;stroke-width:12px}.focus-ring-progress{fill:none;stroke:#6366f1;stroke-width:12px;stroke-linecap:round;transition:stroke-dashoffset 1s linear}.focus-ring-progress.break{stroke:#22c55e}.focus-ring-progress.expired{stroke:#ef4444}.focus-timer-display{flex-direction:column;align-items:center;display:flex;position:absolute}.focus-time{font-variant-numeric:tabular-nums;letter-spacing:-.02em;font-size:2.4rem;font-weight:700}.focus-break-label{color:#22c55e;text-transform:uppercase;letter-spacing:.08em;font-size:.75rem}.focus-controls{gap:.75rem;display:flex}.focus-btn{cursor:pointer;color:#ccc;background:#1e2235;border:1px solid #2a2f45;border-radius:8px;padding:.55rem 1.4rem;font-size:.9rem;transition:all .15s}.focus-btn:hover{color:#e8eaf6;background:#252b40}.focus-btn.primary{color:#fff;background:#6366f1;border-color:#6366f1}.focus-btn.primary:hover{background:#4f52cc}.focus-hint{color:#666;text-align:center;max-width:400px;font-size:.85rem}.focus-expiry{background:#111625;border:1px solid #2a2f45;border-radius:12px;flex-direction:column;align-items:center;gap:1rem;padding:1.5rem;display:flex}.focus-expiry-title{color:#ef4444;font-size:1.1rem;font-weight:600}.focus-expiry-actions{flex-wrap:wrap;justify-content:center;gap:.75rem;display:flex}.focus-break-picker{align-items:center;gap:.5rem;display:flex}.focus-break-label-sm{color:#666;font-size:.8rem}.focus-btn-sm{cursor:pointer;color:#aaa;background:#1e2235;border:1px solid #2a2f45;border-radius:6px;padding:.3rem .7rem;font-size:.78rem}.focus-btn-sm:hover{color:#e8eaf6;background:#252b40}.focus-widget{z-index:1000;cursor:pointer;background:#1e2235;border:1px solid #6366f1;border-radius:28px;align-items:center;gap:.5rem;padding:.5rem .9rem;transition:all .2s;display:flex;position:fixed;bottom:1.5rem;right:1.5rem;box-shadow:0 4px 20px #6366f14d}.focus-widget:hover{background:#252b40}.focus-widget-icon{font-size:1rem}.focus-widget-time{font-variant-numeric:tabular-nums;color:#e8eaf6;font-size:.9rem;font-weight:700}.focus-widget-close{cursor:pointer;color:#666;background:0 0;border:none;padding:0 0 0 .25rem;font-size:1rem;line-height:1}.focus-widget-close:hover{color:#ef4444}.integration-email-row{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.integration-email-addr{background:var(--bg);border:1px solid var(--border);color:var(--text);word-break:break-all;border-radius:6px;flex:1;min-width:0;padding:.5rem .75rem;font-family:monospace;font-size:.85rem}.habits-page{max-width:700px;padding:1.5rem}.habits-header{justify-content:space-between;align-items:center;margin-bottom:1.25rem;display:flex}.habits-limit-warning{color:#ef4444;background:#ef444414;border:1px solid #ef44444d;border-radius:8px;margin-bottom:1rem;padding:.75rem 1rem;font-size:.85rem}.habit-new-form{background:var(--surface);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:.5rem;margin-bottom:1rem;padding:1rem;display:flex}.habit-input{border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:8px;padding:.55rem .75rem;font-size:.9rem}.habit-input:focus{border-color:var(--accent);outline:none}.habit-select{border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:8px;padding:.55rem .75rem;font-size:.9rem}.habit-new-row{align-items:center;gap:.5rem;display:flex}.habits-empty{color:var(--text-muted);text-align:center;padding:2rem 0}.habits-list{flex-direction:column;gap:.5rem;margin-bottom:2rem;display:flex}.habit-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;align-items:center;gap:.75rem;padding:.75rem 1rem;transition:all .15s;display:flex}.habit-card.done{opacity:.65}.habit-complete-btn{border:2px solid var(--border);cursor:pointer;width:32px;height:32px;color:var(--accent);background:0 0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:1rem;transition:all .15s;display:flex}.habit-complete-btn:hover{border-color:var(--accent);background:#6366f114}.habit-card.done .habit-complete-btn{background:var(--accent);border-color:var(--accent);color:#fff}.habit-info{flex-direction:column;flex:1;gap:.2rem;min-width:0;display:flex}.habit-title{font-size:.95rem;font-weight:500}.habit-trigger{color:var(--text-muted);font-size:.78rem}.habit-meta{color:var(--text-muted);font-size:.75rem}.habit-streak{color:#f97316;flex-shrink:0;align-items:center;gap:.3rem;font-size:.9rem;font-weight:700;display:flex}.habit-archive-btn{cursor:pointer;color:var(--text-muted);opacity:0;background:0 0;border:none;border-radius:4px;padding:.25rem;transition:all .15s}.habit-card:hover .habit-archive-btn{opacity:1}.habit-archive-btn:hover{color:#ef4444}.heatmap-section{margin-top:1rem}.heatmap-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.75rem;font-size:.85rem;font-weight:600}.heatmap-grid{gap:3px;display:flex}.heatmap-week{flex-direction:column;gap:3px;display:flex}.heatmap-cell{background:var(--surface);border-radius:3px;width:14px;height:14px}.heatmap-cell.level-0{background:var(--surface);border:1px solid var(--border)}.heatmap-cell.level-1{background:#1e3a2f}.heatmap-cell.level-2{background:#2d6a4f}.heatmap-cell.level-3{background:#40916c}.heatmap-cell.level-4{background:#52b788}.ai-stat-chip{background:var(--accent);color:#fff;white-space:nowrap;border-radius:20px;padding:.35rem .85rem;font-size:.8rem;font-weight:600}.ai-section{margin-top:1.5rem}.ai-section-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.75rem;font-size:.8rem;font-weight:600}.ai-field-row{align-items:center;gap:.75rem;margin-bottom:.5rem;font-size:.85rem;display:flex}.ai-field-name{min-width:120px;color:var(--text-muted)}.ai-field-bar-wrap{background:var(--surface);border-radius:4px;flex:1;height:8px;overflow:hidden}.ai-field-bar{background:var(--accent);border-radius:4px;height:100%;transition:width .3s}.ai-field-count{text-align:right;min-width:24px;color:var(--text-muted);font-size:.8rem}.ai-table{border-collapse:collapse;width:100%;font-size:.82rem}.ai-table th{text-align:left;color:var(--text-muted);border-bottom:1px solid var(--border);padding:.5rem .75rem;font-weight:500}.ai-table-row{cursor:pointer}.ai-table-row:hover td{background:var(--surface)}.ai-table-row td{border-bottom:1px solid var(--border);padding:.5rem .75rem}.ai-table-expanded td{color:var(--text-muted);background:var(--bg);border-bottom:1px solid var(--border);padding:.4rem .75rem .75rem;font-size:.8rem}.ai-value{font-family:monospace;font-size:.8rem}.ai-value.user{color:#4caf80}.ai-event-row{border-bottom:1px solid var(--border);gap:1rem;padding:.5rem 0;font-size:.85rem;display:flex}.ai-event-date{color:var(--text-muted);min-width:90px}.ai-event-desc{flex:1}
