:root{--bg:#f6f7f9;--card:#fff;--text:#1a1f25;--muted:#8a929c;--accent:#dc2626;--accent-dark:#b91c1c;--border:#e6e8eb;--danger:#ef4444;--journal:#8a4b69;--journal-bg:#faf0f5;--journal-line:#e6cdd9}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}.app{max-width:560px;padding:max(env(safe-area-inset-top), 24px) 16px calc(72px + env(safe-area-inset-bottom));margin:0 auto}h1{margin:8px 0 20px;font-size:1.6rem}.add{gap:8px;margin-bottom:20px;display:flex}.add input{border:1px solid var(--border);background:var(--card);border-radius:12px;outline:none;flex:1;padding:14px;font-size:16px}.add input:focus{border-color:var(--accent)}.add button{color:#fff;background:var(--accent);cursor:pointer;border:none;border-radius:12px;padding:0 20px;font-size:16px;font-weight:600}.add button:active{background:var(--accent-dark)}.add .mic{width:52px;color:var(--text);background:var(--card);border:1px solid var(--border);flex:none;padding:0;font-size:20px}.add .mic:active{background:var(--bg)}.add .mic:disabled{opacity:.6}.add .mic.recording{color:#fff;background:var(--accent);border-color:var(--accent);animation:1.2s ease-in-out infinite mic-pulse}@keyframes mic-pulse{50%{opacity:.55}}.add .mic.processing{justify-content:center;align-items:center;display:flex}.add .mic.processing:disabled{opacity:1;cursor:progress}.mic-spinner{border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:18px;height:18px;animation:.7s linear infinite mic-spin}@keyframes mic-spin{to{transform:rotate(360deg)}}.voice-status{color:var(--muted);margin:-8px 0 16px;font-size:.85rem}.voice-status.error{color:var(--danger)}.list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.list li{background:var(--card);border:1px solid var(--border);border-radius:12px;justify-content:space-between;align-items:center;gap:8px;padding:4px 6px 4px 4px;display:flex}.list li label{cursor:pointer;flex:1;align-items:center;gap:12px;min-width:0;padding:10px;display:flex}.list li label span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.list li input[type=checkbox]{width:22px;height:22px;accent-color:var(--accent);flex-shrink:0}.list li.done label span{color:var(--muted);text-decoration:line-through}.del{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:10px;flex-shrink:0;width:40px;height:40px;font-size:22px;line-height:1}.del:active{color:var(--danger);background:#fdecec}.empty{color:var(--muted);justify-content:center!important;padding:24px!important}.done-section{margin-top:28px}.done-head{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;justify-content:space-between;align-items:center;margin-bottom:8px;padding:0 4px;font-size:.85rem;font-weight:600;display:flex}.link{color:var(--accent);cursor:pointer;background:0 0;border:none;font-size:.85rem;font-weight:600}.topbar{color:var(--muted);justify-content:space-between;align-items:center;margin-bottom:8px;font-size:.85rem;display:flex}.topbar .who{font-weight:600}.login{max-width:360px}.login h1{text-align:center;margin:48px 0 24px}.login-form{flex-direction:column;gap:12px;display:flex}.login-form input{border:1px solid var(--border);background:var(--card);border-radius:12px;outline:none;padding:14px;font-size:16px}.login-form input:focus{border-color:var(--accent)}.login-form button{color:#fff;background:var(--accent);cursor:pointer;border:none;border-radius:12px;padding:14px;font-size:16px;font-weight:600}.login-form button:disabled{opacity:.6}.login-error{color:var(--danger);text-align:center;margin:4px 0 0;font-size:.9rem}.tabs{background:var(--card);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom);display:flex;position:fixed;bottom:0;left:0;right:0}.tabs button{cursor:pointer;color:var(--muted);background:0 0;border:none;flex-direction:column;flex:1;align-items:center;gap:2px;padding:10px 0 8px;font-size:1.3rem;display:flex}.tabs button span{font-size:.72rem;font-weight:600}.tabs button.active{color:var(--accent)}.tab-emoji{line-height:1;display:inline-block;position:relative}.tab-badge{background:var(--accent);color:#fff;text-align:center;border-radius:8px;min-width:16px;height:16px;padding:0 4px;font-size:.62rem;font-weight:700;line-height:16px;position:absolute;top:-6px;right:-10px}.report{background:var(--card);border:1px solid var(--border);white-space:pre-wrap;word-wrap:break-word;border-radius:14px;padding:18px;font-size:.98rem;line-height:1.55}.feed{flex-direction:column;gap:14px;display:flex}.feed-card{background:var(--card);border:1px solid var(--border);border-radius:14px}.feed-card-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:10px;display:flex}.report-card{background:0 0;border:none}.report-tag{font-size:.95rem;font-weight:700}.report-date-inline{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.8rem;font-weight:600}.action-card{padding:16px}.action-card.pending{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.action-card.failed{border-color:var(--danger);box-shadow:0 0 0 1px var(--danger)}.badge-approval{color:var(--accent);text-transform:uppercase;letter-spacing:.03em;font-size:.8rem;font-weight:700}.action-kind{color:var(--muted);font-size:.82rem;font-weight:600}.action-meta{color:var(--muted);margin-bottom:4px;font-size:.85rem}.action-subject{margin-bottom:8px;font-size:1rem;font-weight:600}.action-body{background:var(--bg);border:1px solid var(--border);white-space:pre-wrap;word-wrap:break-word;border-radius:10px;max-height:280px;padding:12px;font-size:.92rem;line-height:1.5;overflow-y:auto}.action-note{color:var(--muted);font-size:.9rem}.thread-context{border-left:3px solid var(--border);margin-bottom:12px;padding-left:12px}.thread-label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:6px;font-size:.76rem;font-weight:700;display:flex}.thread-toggle{text-transform:none;letter-spacing:0;font-size:.78rem;font-weight:600}.thread-msg+.thread-msg{margin-top:10px}.thread-msg.earlier{opacity:.72}.thread-msg-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:3px;display:flex}.thread-from{font-size:.86rem;font-weight:600}.thread-date{color:var(--muted);font-size:.76rem}.thread-msg-body{white-space:pre-wrap;word-wrap:break-word;color:var(--muted);font-size:.86rem;line-height:1.45}.thread-more{margin-top:4px;font-size:.78rem;font-weight:600}.action-draft-label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px;font-size:.76rem;font-weight:700}.action-error{color:var(--danger);margin-top:8px;font-size:.85rem}.action-buttons{justify-content:flex-end;gap:10px;margin-top:14px;display:flex}.btn-approve{color:#fff;background:var(--accent);cursor:pointer;border:none;border-radius:10px;padding:10px 18px;font-size:.95rem;font-weight:600}.btn-approve:active{background:var(--accent-dark)}.btn-approve:disabled{opacity:.6}.btn-decline{color:var(--text);background:var(--bg);border:1px solid var(--border);cursor:pointer;border-radius:10px;padding:10px 18px;font-size:.95rem;font-weight:600}.btn-decline:disabled{opacity:.6}.decline-form{margin-top:14px}.decline-form input{border:1px solid var(--border);background:var(--bg);border-radius:10px;outline:none;width:100%;padding:10px 12px;font-size:16px}.decline-form input:focus{border-color:var(--accent)}.btn-revise{color:var(--accent);background:var(--card);border:1px solid var(--accent);cursor:pointer;border-radius:10px;padding:10px 18px;font-size:.95rem;font-weight:600}.reconnect-link{margin-top:10px}.reconnect-url{border:1px solid var(--border);background:var(--bg);width:100%;color:var(--muted);border-radius:8px;outline:none;margin-top:6px;padding:8px 10px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}a.btn-approve{text-align:center;text-decoration:none;display:inline-block}.btn-revise:disabled{opacity:.6}.revise-input{border:1px solid var(--border);background:var(--bg);width:100%;color:var(--text);resize:vertical;border-radius:10px;outline:none;padding:10px 12px;font-family:inherit;font-size:16px;line-height:1.45}.revise-input:focus{border-color:var(--accent)}.group-card{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent);padding:16px}.group-title{font-size:1.05rem;font-weight:600}.group-summary{color:var(--muted);margin-top:3px;font-size:.88rem;line-height:1.45}.group-toggle{margin-top:10px;font-size:.85rem;font-weight:600;display:block}.group-items{border-left:3px solid var(--border);flex-direction:column;gap:10px;max-height:60vh;margin-top:10px;padding-left:10px;display:flex;overflow-y:auto}.group-items .action-card{border-color:var(--border);box-shadow:none;padding:12px}.triage-divider{align-items:center;gap:12px;margin:6px 0;display:flex}.triage-line{background:var(--border);flex:1;height:1px}.triage-body{text-align:center;flex-direction:column;align-items:center;gap:6px;display:flex}.triage-count{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.8rem;font-weight:700}.triage-covered{color:var(--muted);font-size:.78rem}.triage-divider .btn-revise{padding:7px 14px;font-size:.85rem}.action-revision{background:var(--bg);border:1px solid var(--border);color:var(--muted);border-radius:10px;margin-top:10px;padding:8px 10px;font-size:.85rem;line-height:1.45}.action-card.resolved{align-items:baseline;gap:8px;padding:12px 16px;font-size:.9rem;display:flex}.action-done{white-space:nowrap;font-weight:700}.action-declined{color:var(--muted);white-space:nowrap;font-weight:700}.action-done-title{color:var(--muted);text-overflow:ellipsis;overflow:hidden}.chat{flex-direction:column;gap:10px;margin-bottom:16px;display:flex}.bubble{white-space:pre-wrap;word-wrap:break-word;border-radius:14px;max-width:85%;padding:10px 14px;font-size:.95rem;line-height:1.5}.bubble.you{background:var(--accent);color:#fff;border-bottom-right-radius:4px;align-self:flex-end}.bubble.agent{background:var(--card);border:1px solid var(--border);border-bottom-left-radius:4px;align-self:flex-start}.bubble.thinking{color:var(--muted);font-style:italic}.chat-input{bottom:calc(72px + env(safe-area-inset-bottom));background:var(--bg);padding-top:8px;position:sticky}.settings-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.settings-row{text-align:left;background:var(--card);border:1px solid var(--border);cursor:pointer;border-radius:12px;justify-content:space-between;align-items:center;width:100%;padding:16px;font-size:1rem;display:flex}.settings-row .chev{color:var(--muted);font-size:1.3rem}.settings-back{margin:0 0 4px;font-size:.95rem;display:inline-block}.settings-note{color:var(--muted);margin:-8px 0 16px;font-size:.85rem}.memories{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.memory{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:14px}.memory-key{margin-bottom:4px;font-weight:600}.memory-value{color:var(--text);white-space:pre-wrap;word-wrap:break-word;font-size:.95rem;line-height:1.5}h2{margin:0;font-size:1.1rem}.empty-block{color:var(--muted);text-align:center;padding:24px}.project{background:var(--card);border:1px solid var(--border);border-radius:14px;margin-bottom:16px;padding:14px}.project-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.tree{margin:0;padding:0;list-style:none}.tree .tree{border-left:2px solid var(--border);margin-left:12px;padding-left:10px}.node-row{align-items:center;gap:4px;display:flex}.drag-handle{color:var(--muted);cursor:grab;touch-action:none;opacity:.6;background:0 0;border:none;border-radius:8px;flex-shrink:0;width:28px;height:34px;font-size:18px;line-height:1}.drag-handle:active{cursor:grabbing;color:var(--accent)}.drag-overlay{background:var(--card);border:1px solid var(--accent);cursor:grabbing;border-radius:10px;padding:8px 12px;box-shadow:0 8px 24px #00000040}.tree.drop-target{outline:2px dashed var(--accent);outline-offset:3px;background:color-mix(in srgb, var(--accent) 6%, transparent);border-radius:8px}.drop-line{border-top:3px solid var(--accent);border-radius:3px;height:0;margin:1px 0;list-style:none;position:relative}.drop-line:before{content:"";background:var(--accent);border-radius:50%;width:8px;height:8px;position:absolute;top:50%;left:-2px;transform:translateY(-50%)}.empty.drop-here{color:var(--accent);font-weight:600}.nest-line{height:0;margin:3px 0}.nest-line-bar{background:var(--accent);border-radius:3px;height:3px;margin-left:30%;display:block;position:relative}.nest-line-bar:before{content:"↳";color:var(--accent);font-size:14px;font-weight:700;line-height:1;position:absolute;top:50%;left:-15px;transform:translateY(-55%)}.archive{border-top:1px solid var(--border);margin-top:8px;padding-top:6px}.archive-head{width:100%;color:var(--muted);cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;padding:6px 4px;font-size:13px;display:flex}.archive-caret{text-align:center;width:12px;display:inline-block}.archive-count{background:var(--bg);font-variant-numeric:tabular-nums;border-radius:999px;padding:0 8px;font-size:12px}.archive-list{opacity:.85;margin-top:2px}.archive-subcount{color:var(--muted);background:var(--bg);border-radius:999px;flex-shrink:0;padding:0 8px;font-size:12px}.node-row label{cursor:pointer;flex:1;align-items:center;gap:10px;min-width:0;padding:8px 4px;display:flex}.node-row label span{overflow-wrap:anywhere}.node-row input[type=checkbox]{width:20px;height:20px;accent-color:var(--accent);flex-shrink:0}.node-row.done label span{color:var(--muted);text-decoration:line-through}.sub{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:8px;flex-shrink:0;width:34px;height:34px;font-size:20px;line-height:1}.sub:active{background:var(--bg);color:var(--accent)}.add-task,.add-sub{gap:8px;margin-top:8px;display:flex}.add-sub{margin-bottom:4px;margin-left:22px}.add-task input,.add-sub input{border:1px solid var(--border);background:var(--card);border-radius:10px;outline:none;flex:1;padding:10px 12px;font-size:16px}.add-task input:focus,.add-sub input:focus{border-color:var(--accent)}.add-task button{color:#fff;background:var(--accent);cursor:pointer;border:none;border-radius:10px;width:44px;font-size:22px;font-weight:600}.add-task button:active{background:var(--accent-dark)}.edit-form{flex:1;min-width:0;padding:2px 0}.edit-form input{border:1px solid var(--accent);background:var(--card);border-radius:8px;outline:none;width:100%;padding:8px 10px;font-size:16px}.more{flex-shrink:0;position:relative}.more-btn{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:10px;width:40px;height:40px;font-size:22px;line-height:1}.more-btn:active,.more-btn[aria-expanded=true]{background:var(--bg);color:var(--accent)}.menu{z-index:10;background:var(--card);border:1px solid var(--border);border-radius:10px;flex-direction:column;min-width:140px;padding:4px;display:flex;position:absolute;top:100%;right:0;box-shadow:0 8px 24px #0000002e}.menu button{text-align:left;cursor:pointer;color:var(--text,inherit);background:0 0;border:none;border-radius:8px;padding:10px 12px;font-size:15px}.menu button:active{background:var(--bg)}.menu button.danger{color:var(--danger)}.insert-zone{cursor:pointer;height:8px;margin:-2px 0;position:relative}.insert-cue{background:var(--accent);opacity:0;border-radius:2px;height:2px;transition:opacity 80ms;position:absolute;top:50%;left:22px;right:8px;transform:translateY(-50%)}.insert-zone.child .insert-cue{left:44px}.insert-zone:hover .insert-cue{opacity:.7}.insert-plus{color:var(--accent);font-size:16px;font-weight:700;line-height:1;position:absolute;top:50%;left:-16px;transform:translateY(-50%)}.insert-form{margin:4px 0 6px 22px}.insert-form.child{margin-left:44px}.insert-form input{border:1px solid var(--accent);background:var(--card);border-radius:9px;outline:none;width:100%;padding:9px 11px;font-size:16px}.avatar{color:#fff;border-radius:50%;flex-shrink:0;place-items:center;font-weight:700;line-height:1;display:inline-grid}.filterbar{flex-wrap:wrap;gap:8px;margin:-8px 0 18px;display:flex}.fchip{color:var(--muted);background:var(--card);border:1px solid var(--border);cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-size:.85rem;font-weight:600;display:inline-flex}.fchip.on{color:#fff;background:var(--accent);border-color:var(--accent)}.project-actions{align-items:center;gap:4px;display:flex}.members{flex-shrink:0;position:relative}.members-btn{cursor:pointer;background:0 0;border:none;border-radius:10px;padding:4px 6px}.members-btn:active,.members-btn[aria-expanded=true]{background:var(--bg)}.member-avatars{align-items:center;display:inline-flex}.member-avatars .avatar{box-shadow:0 0 0 2px var(--card)}.member-avatars .avatar+.avatar{margin-left:-6px}.menu-head{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;padding:8px 12px 4px;font-size:.72rem;font-weight:700}.member-row{text-align:left;cursor:pointer;width:100%;color:inherit;background:0 0;border:none;border-radius:8px;align-items:center;gap:10px;padding:9px 12px;font-size:15px;display:flex}.member-row:active{background:var(--bg)}.member-row:disabled{opacity:.5;cursor:default}.member-name{flex:1;min-width:0}.member-check{color:var(--accent);text-align:center;width:14px;font-weight:700}.members-menu,.assignee-menu{min-width:190px}.assignee{flex-shrink:0;position:relative}.assignee-btn{cursor:pointer;background:0 0;border:none;border-radius:10px;place-items:center;width:34px;height:34px;padding:0;display:grid}.assignee-btn:active,.assignee-btn[aria-expanded=true]{background:var(--bg)}.assignee-empty{border:1.5px dashed var(--border);width:24px;height:24px;color:var(--muted);border-radius:50%;place-items:center;font-size:16px;line-height:1;display:grid}.assignee-btn:active .assignee-empty,.assignee-btn[aria-expanded=true] .assignee-empty{border-color:var(--accent);color:var(--accent)}.assignee-none-dot{border:1.5px dashed var(--border);border-radius:50%;flex-shrink:0;width:22px;height:22px}.jseg{background:#ebedf0;border-radius:11px;gap:2px;margin:-8px 0 16px;padding:3px;display:flex}.jseg button{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:8px;flex:1;padding:8px 0;font-size:.9rem;font-weight:600}.jseg button.active{background:var(--card);color:var(--text);box-shadow:0 1px 2px #00000017}.reflection{background:var(--journal-bg);border:1px solid var(--journal-line);border-left:3px solid var(--journal);border-radius:14px;margin-bottom:16px;padding:14px 16px}.reflection-head{align-items:center;gap:8px;margin-bottom:6px;display:flex}.reflection-k{color:var(--journal);text-transform:uppercase;letter-spacing:.06em;font-size:.72rem;font-weight:700}.reflection-refresh{border:1px solid var(--journal-line);background:var(--card);width:30px;height:30px;color:var(--journal);cursor:pointer;border-radius:9px;place-items:center;margin-left:auto;font-size:1rem;display:grid}.reflection-refresh:disabled{cursor:progress}.reflection-summary{margin:0 0 8px;font-size:.95rem;line-height:1.55}.reflection .link{color:var(--journal);padding:0}.jcomposer{background:var(--card);border:1px solid var(--border);border-radius:14px;margin-bottom:16px;padding:12px 14px}.jcomposer textarea{resize:none;width:100%;color:var(--text);font:inherit;background:0 0;border:none;outline:none;max-height:50vh;padding:0;font-size:16px;line-height:1.55;display:block;overflow-y:auto}.jcomposer textarea::placeholder{color:var(--muted)}.jcomposer-row{align-items:center;gap:8px;margin-top:10px;display:flex}.jspacer{flex:1}.jhint{color:var(--muted);font-size:.8rem}.jsave{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:10px;padding:9px 18px;font-size:.9rem;font-weight:600}.jsave:disabled{opacity:.45}.jlabel{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin:20px 0 10px;font-size:.72rem;font-weight:700}.jlabel-r{color:var(--journal)}.jrow{text-align:left;background:var(--card);border:1px solid var(--border);width:100%;font:inherit;color:var(--text);cursor:pointer;border-radius:14px;margin-bottom:8px;padding:12px 14px;display:block}.jrow-top{align-items:baseline;gap:8px;margin-bottom:5px;display:flex}.jrow-day{font-size:.8rem;font-weight:700}.jrow-meta{color:var(--muted);margin-left:auto;font-size:.72rem;font-weight:600}.jrow-body{-webkit-line-clamp:3;line-clamp:3;color:#333a42;white-space:pre-wrap;-webkit-box-orient:vertical;font-size:.9rem;line-height:1.5;display:-webkit-box;overflow:hidden}.jback{color:var(--accent);cursor:pointer;background:0 0;border:none;margin:-4px 0 14px;padding:0;font-size:.9rem;font-weight:600}.jbody{background:var(--card);border:1px solid var(--border);white-space:pre-wrap;word-wrap:break-word;border-radius:14px;padding:16px;font-size:1rem;line-height:1.6}.jbody-r{background:var(--journal-bg);border-color:var(--journal-line);border-left:3px solid var(--journal)}.jactions{gap:8px;margin-top:12px;display:flex}.jactions button{border:1px solid var(--border);background:var(--card);color:var(--text);cursor:pointer;border-radius:10px;padding:9px 16px;font-size:.9rem}.jactions button:disabled{opacity:.5}.jregen{border:1px solid var(--journal-line);background:var(--card);width:100%;color:var(--journal);cursor:pointer;border-radius:12px;margin-top:14px;padding:12px 0;font-size:.9rem;font-weight:600}.jregen:disabled{opacity:.6;cursor:progress}
