.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}.task-list{list-style:none;margin:0;padding:0;display:grid;gap:.35rem}.task-row{display:grid;grid-template-columns:auto 1fr auto;column-gap:.65rem;row-gap:.2rem;align-items:center;padding:.5rem 0;border-top:1px solid var(--border-soft)}.task-result{grid-column:2;margin:0;font-size:.88rem;color:var(--fg-muted);white-space:pre-wrap;overflow-wrap:anywhere}.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;justify-content:space-between}.task-header-start{display:flex;gap:.85rem;align-items:center;min-width:0}.task-header-actions{display:flex;gap:.35rem;align-items:center;flex-shrink:0}button.task-edit{padding:.4rem .7rem;font-size:.9rem}.task-body{display:grid;gap:.65rem}.task-body-text,.task-body-result{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.task-body-result{font-size:.95rem;color:var(--fg-muted)}.edit-task-actions{display:flex;gap:.5rem}.task-done{display:flex;align-items:center;gap:.5rem;justify-self:start}.task-done input[type=checkbox]{width:auto;flex:none}.favorite-star{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:2.5rem;height:2.5rem;padding:0;border:1px solid transparent;background:transparent;color:var(--fg-muted);font-size:1.35rem;line-height:1;cursor:pointer}.favorite-star:hover:not(:disabled){color:var(--fg);border-color:var(--border);background:var(--btn-bg)}.favorite-star.active{color:var(--fg)}.favorite-list{list-style:none;margin:0;padding:0;display:grid;gap:.35rem}.favorite-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.55rem 0;border-top:1px solid var(--border-soft)}.favorite-info{display:grid;gap:.15rem;min-width:0}.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:.35rem;margin:0;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;left:0;top:0;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-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.task-graph-node:has(.task-graph-node-tags){overflow:visible}.task-graph-node-tags{position:absolute;left:.25rem;right:.25rem;bottom:0;transform:translateY(50%);display:flex;justify-content:center;gap:.2rem;overflow:hidden;pointer-events:none}.tag-chip.mini{padding:0 .3rem;font-size:.62rem;line-height:1.45;border:1px solid var(--surface)}.task-graph.compact .task-graph-node{padding:0 .4rem;font-size:.78rem}.task-graph.compact .tag-chip.mini{font-size:.56rem}.task-graph.compact .task-graph-edge{stroke-width:1.25}.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)}.graph-filter{position:relative;display:flex;align-items:center;gap:.4rem;flex:none}button.graph-filter-toggle{display:inline-flex;align-items:center;gap:.35rem;padding:.3rem .7rem;font-size:.9rem}.graph-filter-count{display:inline-flex;align-items:center;justify-content:center;min-width:1.2rem;height:1.2rem;padding:0 .3rem;border-radius:999px;background:var(--fg);color:var(--bg);font-size:.72rem}.graph-filter-menu{position:absolute;top:calc(100% + .35rem);left:0;z-index:50;min-width:12rem;max-height:16rem;overflow:auto;padding:.4rem;border:1px solid var(--border);background:var(--surface);box-shadow:0 8px 24px color-mix(in srgb,var(--fg) 14%,transparent)}.graph-filter-list{list-style:none;margin:0;padding:0;display:grid;gap:.15rem}.graph-filter-option{display:flex;align-items:center;gap:.45rem;padding:.25rem .3rem;font-size:.88rem;color:var(--fg);cursor:pointer}.graph-filter-option input[type=checkbox]{width:auto;flex:none}.graph-filter-option:hover{background:var(--btn-bg)}button.graph-filter-clear{width:100%;margin-top:.35rem;padding:.3rem;font-size:.85rem}.task-link-cell{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem;min-width:0}.tag-chips{display:inline-flex;flex-wrap:wrap;gap:.3rem;vertical-align:middle}.tag-chip{display:inline-flex;align-items:center;gap:.15rem;padding:.05rem .4rem;border-radius:999px;font-size:.78rem;line-height:1.5;white-space:nowrap}.tag-chip.editable{position:relative;padding:.05rem .2rem .05rem .4rem}.tag-chip-name,.tag-chip-remove{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:none;padding:0;color:inherit;font:inherit;cursor:pointer}.tag-chip-remove{width:1.1rem;font-size:.95rem;line-height:1;opacity:.75}.tag-chip-remove:hover{opacity:1}.task-tags-list{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem}.tag-input-wrap{position:relative}input.tag-input{width:7rem;padding:.15rem .4rem;font-size:.82rem;border-radius:999px}.tag-suggestions{position:absolute;top:calc(100% + .25rem);left:0;z-index:50;margin:0;padding:.2rem;list-style:none;min-width:10rem;max-height:12rem;overflow:auto;border:1px solid var(--border);background:var(--surface);box-shadow:0 8px 24px color-mix(in srgb,var(--fg) 14%,transparent)}.tag-suggestion{display:flex;align-items:center;gap:.4rem;width:100%;padding:.3rem .4rem;border:none;background:none;color:inherit;font:inherit;font-size:.85rem;text-align:left;cursor:pointer}.tag-suggestion:hover{background:var(--btn-bg)}.tag-swatch{width:.7rem;height:.7rem;border-radius:999px;flex:none}.tag-colors{position:absolute;top:calc(100% + .3rem);left:0;z-index:50;display:grid;grid-template-columns:repeat(5,1.25rem);gap:.25rem;padding:.35rem;border:1px solid var(--border);background:var(--surface);box-shadow:0 8px 24px color-mix(in srgb,var(--fg) 14%,transparent)}.tag-color{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:1.25rem;height:1.25rem;padding:0;border:1px solid transparent;border-radius:999px;cursor:pointer}.tag-color.active{border-color:var(--fg)}.task-modal{position:fixed;left:50%;top:12vh;transform:translate(-50%);z-index:45;width:min(28rem,calc(100vw - 1.5rem));max-height:76vh;overflow:auto;border:1px solid var(--border);background:var(--surface);color:var(--fg);box-shadow:0 12px 32px color-mix(in srgb,var(--fg) 18%,transparent)}.task-modal.placed{transform:none}.task-modal-header{position:sticky;top:0;display:flex;align-items:center;gap:.5rem;padding:.5rem .6rem;border-bottom:1px solid var(--border);background:var(--surface);cursor:move;touch-action:none;-webkit-user-select:none;user-select:none}.task-modal-header a,.task-modal-header button{cursor:pointer}.task-modal-grip{color:var(--fg-muted);font-size:.9rem}.task-modal-title{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-modal-title.done{text-decoration:line-through;color:var(--fg-muted)}.task-modal-open{font-size:.85rem;color:var(--fg-muted)}.task-modal-body{display:grid;gap:.75rem;padding:.85rem .9rem 1rem}.task-modal-links{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem}.task-modal-links-label{font-size:.8rem;color:var(--fg-muted)}.task-modal-link{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:.15rem .45rem;border:1px solid var(--border);background:var(--bg);color:inherit;font:inherit;font-size:.85rem;cursor:pointer}.task-modal-link:hover{border-color:var(--fg)}.task-modal-link.done{text-decoration:line-through;color:var(--fg-muted)}.workspace-members-page .add-member{display:grid;grid-template-columns:1fr auto;gap:.75rem;align-items:end}.member-list{list-style:none;margin:0;padding:0;display:grid;gap:.35rem}.member-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.55rem 0;border-top:1px solid var(--border-soft)}.member-info{display:flex;flex-wrap:wrap;align-items:baseline;gap:.35rem .75rem;min-width:0}.member-name{font-weight:600}.member-email{font-size:.9rem}.member-badge{font-size:.75rem;color:var(--fg-muted);border:1px solid var(--border);padding:.1rem .4rem}: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:none}.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}button.app-nav-item{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;cursor:pointer;font:inherit;padding:0}.app-nav-settings{position:relative}.settings-popover{position:fixed;left:50%;transform:translate(-50%);bottom:calc(4.2rem + env(safe-area-inset-bottom));z-index:40;width:min(20rem,calc(100vw - 1.5rem));padding:1rem 1.05rem 1.1rem;border:1px solid var(--border);background:var(--surface);color:var(--fg);display:grid;gap:.85rem}.settings-modal-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.settings-modal-header h2{margin:0;font-size:1.1rem;font-weight:600}.settings-modal-close{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid transparent;background:transparent;color:var(--fg-muted);font-size:1.5rem;line-height:1;width:2rem;height:2rem;cursor:pointer;padding:0}.settings-modal-close:hover{color:var(--fg);border-color:var(--border);background:var(--btn-bg)}.settings-option{display:flex;align-items:flex-start;gap:.65rem;font-size:.95rem;color:var(--fg);cursor:pointer}.settings-option input{width:1.15rem;height:1.15rem;margin-top:.15rem;padding:0;border:none;background:transparent;accent-color:var(--fg);flex-shrink:0}.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;min-width: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%}textarea{field-sizing:content;min-height:calc(3lh + 1.3rem);resize:none}.error{color:var(--danger);font-size:.95rem}.muted{font-size:.9rem;color:var(--fg-muted)}
