.auth-form .tabs{display:flex;gap:.5rem}.auth-form .tabs button{flex:1}.workspaces form.create{grid-template-columns:1fr 1fr;align-items:end}.workspaces form.create .actions{grid-column:1 / -1}.workspaces .create-workspace-btn{justify-self:start}.workspaces .workspace-link{color:inherit;text-decoration:none}.workspaces .workspace-link:hover strong{text-decoration:underline}.workspaces .workspace-list{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}.workspaces .workspace-list li{display:grid;gap:.75rem;padding:.75rem 0;border-top:1px solid var(--border-soft)}.workspaces .workspace-row{display:grid;grid-template-columns:1fr auto;gap:.75rem;align-items:center}.workspaces .workspace-row>div:first-child{display:grid;gap:.15rem}.workspaces .actions{display:flex;gap:.5rem}.workspaces form.edit{grid-template-columns:1fr 1fr auto;align-items:end}.workspace-page .create-task,.workspace-page .edit-task{display:grid;grid-template-columns:1fr auto;gap:.75rem;align-items:end}.workspace-page .edit-task{grid-template-columns:1fr}.workspace-page textarea{resize:vertical}.task-list{list-style:none;margin:0;padding:0;display:grid;gap:.35rem}.task-row{display:grid;grid-template-columns:auto 1fr auto;gap:.65rem;align-items:center;padding:.5rem 0;border-top:1px solid var(--border-soft)}.task-parents{display:flex;flex-wrap:wrap;gap:.35rem .75rem;align-items:center;font-size:.9rem;color:var(--fg-muted)}.task-parent{display:inline-flex;align-items:center;gap:.15rem}.task-parent .unlink{width:1.35rem;height:1.35rem;font-size:.95rem}.task-link{color:inherit;text-decoration:none}.task-link:hover{text-decoration:underline}.task-link.done,h2.done{text-decoration:line-through;color:var(--fg-muted)}.task-header{display:flex;gap:.75rem;align-items:center}.task-done{display:flex;align-items:center;gap:.5rem}.task-done span.done{text-decoration:line-through;color:var(--fg-muted)}button.unlink{width:1.75rem;height:1.75rem;padding:0;line-height:1;font-size:1.1rem;border-color:transparent;background:transparent;color:var(--danger)}button.unlink:hover{background:var(--danger-bg)}h3{margin:.5rem 0 0;font-size:1.05rem}.task-nav{display:flex;gap:1rem;font-size:.95rem}.task-graph-page{max-width:none;overflow-x:auto}.task-graph{position:relative;margin:.25rem 0 1rem}.task-graph-edges{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:visible}.task-graph-edge{fill:none;stroke:var(--graph-edge);stroke-width:1.5}.task-graph-node{position:absolute;display:flex;align-items:center;justify-content:center;padding:0 .65rem;border:1px solid var(--border);background:var(--surface);color:inherit;text-decoration:none;text-align:center;font-size:.9rem;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:grab;-webkit-user-select:none;user-select:none}.task-graph-node:hover{border-color:var(--fg)}.task-graph-node.root{border-color:var(--fg);font-weight:600}.task-graph-node.clear{background:var(--clear-bg);border-color:var(--clear-border)}.task-graph-node.clear.root{border-color:var(--clear-border-strong)}.task-graph-node.done{text-decoration:line-through;color:var(--fg-muted)}.task-graph-node.dragging{opacity:.45;cursor:grabbing}.task-graph-node.drop-ok{border-color:var(--fg);background:var(--drop-ok-bg);box-shadow:inset 0 0 0 1px var(--fg)}.task-graph-node.drop-bad{border-color:var(--danger-border);background:var(--danger-bg)}:root{color-scheme:light;font-family:Segoe UI,system-ui,sans-serif;line-height:1.5;--bg: #f6f4ef;--fg: #1a1a1a;--fg-secondary: #3d3d3d;--fg-muted: #6b655c;--surface: #ffffff;--border: #cfc8bb;--border-soft: #e4ddd0;--btn-bg: #ffffff;--btn-primary-bg: #1a1a1a;--btn-primary-fg: #f6f4ef;--btn-primary-border: #1a1a1a;--danger: #8b1e1e;--danger-border: #c9a3a3;--danger-bg: #f3e4e4;--clear-bg: #e4efe6;--clear-border: #9bb89f;--clear-border-strong: #5f8a66;--drop-ok-bg: #ebe7df;--graph-edge: #cfc8bb;color:var(--fg);background:var(--bg)}html[data-theme=dark]{color-scheme:dark;--bg: #141413;--fg: #eceae4;--fg-secondary: #c4c0b6;--fg-muted: #8f8a80;--surface: #1e1e1c;--border: #3a3934;--border-soft: #2c2b28;--btn-bg: #252522;--btn-primary-bg: #3a3934;--btn-primary-fg: #eceae4;--btn-primary-border: #5c5a52;--danger: #e08a8a;--danger-border: #6a3a3a;--danger-bg: #2a1a1a;--clear-bg: #1a2a1e;--clear-border: #3d6b48;--clear-border-strong: #6aab78;--drop-ok-bg: #2a2924;--graph-edge: #4a4943}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--bg);color:var(--fg)}main{max-width:36rem;margin:0 auto;padding:1.25rem 1.5rem 3rem;display:grid;gap:1.25rem}main.has-nav{padding-bottom:5.5rem}main:has(.task-graph-page){max-width:min(96rem,100%)}.app-nav{position:fixed;left:0;right:0;bottom:0;z-index:30;display:flex;justify-content:center;padding:.65rem .75rem calc(.65rem + env(safe-area-inset-bottom));pointer-events:none;background:linear-gradient(to top,color-mix(in srgb,var(--bg) 92%,transparent) 40%,transparent)}.app-nav-inner{pointer-events:auto;display:flex;align-items:center;justify-content:space-evenly;gap:.25rem;width:100%;max-width:36rem;padding:.35rem;border:1px solid var(--border);background:var(--surface)}@media(min-width:640px){.app-nav-inner{width:auto;justify-content:center;gap:.35rem}}.app-nav-item{display:inline-flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;color:var(--fg-muted);text-decoration:none;border:1px solid transparent}.app-nav-item:hover:not(.disabled){color:var(--fg);background:var(--btn-bg);border-color:var(--border)}.app-nav-item.active{color:var(--fg);border-color:var(--border);background:var(--btn-bg)}.app-nav-item.disabled{opacity:.35;cursor:default;pointer-events:none}.app-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;min-height:2.5rem}.app-header-start{display:flex;align-items:center;gap:.5rem;min-width:0;flex:1}.app-back,.app-back-spacer{flex-shrink:0;width:2rem;height:2rem;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;color:var(--fg);border:1px solid transparent;font-size:1.15rem;line-height:1}.app-back:hover{border-color:var(--border);background:var(--btn-bg)}.app-title{margin:0;font-size:1.15rem;font-weight:600;letter-spacing:-.02em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-header-end{display:flex;align-items:center;gap:.35rem;flex-shrink:0}.sync-offline{display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;color:var(--danger)}.user-menu-wrap{position:relative;flex-shrink:0}.user-menu-btn{width:2.25rem;height:2.25rem;padding:0;display:inline-flex;align-items:center;justify-content:center;border-radius:999px}.user-menu{position:absolute;top:calc(100% + .35rem);right:0;z-index:20;min-width:14rem;display:grid;gap:.5rem;padding:.75rem;border:1px solid var(--border);background:var(--surface);box-shadow:0 8px 24px color-mix(in srgb,var(--fg) 12%,transparent)}.user-menu-email{font-size:.85rem;color:var(--fg-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-menu .theme-toggle{width:100%;font-size:.85rem;padding:.45rem .7rem}.theme-toggle{flex-shrink:0;font-size:.85rem;padding:.45rem .7rem}h1 .brand{color:inherit;text-decoration:none}h2{font-size:1.25rem;font-weight:600;margin:0}a{color:var(--fg)}p{margin:0;font-size:1.05rem;color:var(--fg-secondary)}.panel{display:grid;gap:1rem}.row{grid-template-columns:1fr auto;align-items:center}button{font:inherit;padding:.65rem .9rem;border:1px solid var(--border);background:var(--btn-bg);color:var(--fg);cursor:pointer}button:hover:not(:disabled){border-color:var(--fg-muted)}button.active,button[type=submit]{background:var(--btn-primary-bg);color:var(--btn-primary-fg);border-color:var(--btn-primary-border)}button.active:hover:not(:disabled),button[type=submit]:hover:not(:disabled){border-color:var(--fg-secondary)}button.danger{border-color:var(--danger-border);color:var(--danger);background:var(--btn-bg)}button:disabled{opacity:.6;cursor:default}form{display:grid;gap:.85rem}label{display:grid;gap:.35rem;font-size:.9rem;color:var(--fg-secondary)}input,textarea,select{font:inherit;font-size:16px;padding:.65rem .75rem;border:1px solid var(--border);background:var(--surface);color:var(--fg);width:100%}.error{color:var(--danger);font-size:.95rem}.muted{font-size:.9rem;color:var(--fg-muted)}
