:root{--color-private:#1f6feb;--color-family:#8250df;--color-project:#1a7f37;--color-done:#8c959f;--bg:#f6f8fa;--surface:#fff;--text:#1f2328;--muted:#656d76;--border:#d0d7de;--danger:#cf222e;--radius:8px;color:var(--text);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5}*{box-sizing:border-box}body{margin:0}h1,h2{margin:0 0 .5rem}button{font:inherit;border-radius:var(--radius);background:var(--color-family);color:#fff;cursor:pointer;border:none;padding:.5rem 1rem}button:disabled{opacity:.6;cursor:default}button.link{color:var(--muted);background:0 0;padding:.25rem .5rem}input,select,textarea{font:inherit;border:1px solid var(--border);border-radius:var(--radius);width:100%;padding:.5rem}.center{place-items:center;min-height:100vh;padding:1rem;display:grid}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:28rem;padding:1.5rem}.sign-in{gap:1rem;display:grid}.sign-in label{gap:.25rem;display:grid}.muted{color:var(--muted)}.error{color:var(--danger)}.top-bar{background:var(--surface);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:1rem;padding:.5rem 1rem;display:flex}.brand,.user{align-items:center;gap:.75rem;display:flex}.avatar{color:#fff;border-radius:50%;place-items:center;width:2rem;height:2rem;font-weight:600;display:inline-grid}.badge{background:var(--bg);border:1px solid var(--border);border-radius:999px;padding:.125rem .5rem;font-size:.75rem}h3{margin:0;font-size:1rem}button.secondary{background:var(--surface);color:var(--text);border:1px solid var(--border)}button.danger{background:var(--danger)}button.small,.small{font-size:.85rem}button.small{padding:.25rem .6rem}button.inline-link{padding:0;text-decoration:underline}fieldset{border:none;gap:.75rem;min-width:0;margin:0;padding:0;display:grid}.setup fieldset{border:1px solid var(--border);border-radius:var(--radius);padding:.75rem}.form{gap:.75rem;display:grid}.form label,.label{color:var(--muted);gap:.25rem;font-size:.85rem;display:grid}.form label>input,.form label>select,.form label>textarea{color:var(--text)}label.inline{align-items:center;gap:.4rem;display:inline-flex}label.inline input[type=checkbox]{width:auto}.row{align-items:center;gap:.5rem;display:flex}.grow{flex:1;min-width:0}.grid2{grid-template-columns:1fr 1fr;align-items:end;gap:.75rem;display:grid}input.narrow{width:4rem}.app-shell{flex-direction:column;min-height:100vh;display:flex}.app-body{flex:1;min-height:0;display:flex}.top-bar{z-index:5;position:sticky;top:0}.menu-button{font-size:1.25rem;display:none}.sidebar{border-right:1px solid var(--border);background:var(--surface);flex-direction:column;flex-shrink:0;gap:.15rem;width:15rem;padding:.75rem;display:flex;overflow-y:auto}.nav-section{flex-direction:column;gap:.15rem;margin-top:.75rem;display:flex}.nav-section h3{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding:0 .5rem;font-size:.75rem}.nav-section p{margin:0;padding:0 .5rem}.nav-link{color:var(--text);text-align:left;background:0 0;align-items:center;gap:.5rem;padding:.35rem .5rem;display:flex}.nav-link:hover{background:var(--bg)}.nav-link.active{background:var(--bg);font-weight:600}.dot{border-radius:50%;flex-shrink:0;width:.6rem;height:.6rem}.main-panel{flex:1;min-width:0;padding:1rem}.main-panel .card{max-width:none}.right-panel{border-left:1px solid var(--border);background:var(--surface);flex-shrink:0;width:24rem;padding:1rem;overflow-y:auto}.bottom-nav{display:none}.view-header{flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.75rem;display:flex}.view-header h2{margin:0}.filters{flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem;display:flex}.filters select,.filters input{width:auto;padding:.3rem .4rem;font-size:.85rem}.filters label.inline{color:var(--muted);font-size:.85rem}.task-list,.items{gap:.4rem;margin-bottom:.75rem;display:grid}.task-card{background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--accent,var(--border));border-radius:var(--radius);cursor:pointer;align-items:flex-start;gap:.6rem;padding:.5rem .75rem;display:flex}.task-card input[type=checkbox]{width:auto;margin-top:.3rem}.task-card.selected{box-shadow:0 0 0 2px var(--accent,var(--border))}.task-card.conflict{outline:2px solid var(--danger)}.task-card.color-done .task-title{color:var(--muted);text-decoration:line-through}.color-private{--accent:var(--color-private)}.color-family{--accent:var(--color-family)}.color-project{--accent:var(--color-project)}.color-done{--accent:var(--color-done)}.badge.color-private,.badge.color-family,.badge.color-project{background:var(--accent);border-color:var(--accent);color:#fff}.task-title{font-weight:500}.chips{flex-wrap:wrap;align-items:center;gap:.3rem;margin-top:.2rem;display:flex}.badge.priority-1{background:#ffebe9;border-color:#ff8182}.badge.priority-3{color:var(--muted)}.badge.work{background:#fff8c5;border-color:#d4a72c}.badge.for{background:#ddf4ff;border-color:#54aeff}.badge.danger{border-color:var(--danger);color:var(--danger);background:#ffebe9}.badge.tokens{font-size:.9rem;font-weight:600}.chip-toggle{border:1px solid var(--border);cursor:pointer;border-radius:999px;align-items:center;gap:.25rem;padding:.1rem .6rem;color:var(--text)!important;display:inline-flex!important}.chip-toggle input{display:none}.chip-toggle.on{background:#ddf4ff;border-color:#54aeff}.add-task{margin-bottom:.75rem}.dep-row{margin-top:.3rem;font-size:.9rem}.task-details header{margin-bottom:0}.meet input{width:auto}.modal-backdrop{z-index:20;background:#00000059;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.modal{max-width:34rem;max-height:90vh;overflow-y:auto}table.moves{border-collapse:collapse;width:100%;margin-bottom:.75rem}table.moves th,table.moves td{text-align:left;border-bottom:1px solid var(--border);padding:.3rem}.timeline-scroll{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow-x:auto}.timeline text{fill:var(--text);font-size:12px}.timeline .tl-day,.timeline .tl-offset{fill:var(--muted);font-size:11px}.tl-bar{fill:var(--accent);cursor:pointer}.tl-bar.draggable{cursor:grab}.tl-bar.conflict{stroke:var(--danger);stroke-width:3px}.board-grid{grid-template-columns:repeat(auto-fill,minmax(12rem,1fr));gap:.75rem;margin-bottom:1rem;display:grid}.board-card{text-align:left;color:var(--text);gap:.25rem;display:grid}.board-card:hover{border-color:var(--color-family)}.item-row{align-items:center;gap:.75rem;padding:.6rem .75rem;display:flex}.rank{color:var(--muted);text-align:center;width:1.5rem;font-weight:700}.vote-bar{background:var(--bg);border-radius:999px;min-width:2px;height:.5rem;margin-top:.3rem;display:flex;overflow:hidden}.vote-controls{flex-wrap:wrap;align-items:center;gap:.3rem;display:flex}.vote-controls .mine{text-align:center;min-width:1.5rem;font-weight:600}.item-closed{border-bottom:1px solid var(--border);padding:.25rem 0}.chat-panel{background:var(--surface);border-left:1px solid var(--border);z-index:15;flex-direction:column;gap:.5rem;width:min(26rem,100vw);padding:.75rem;display:flex;position:fixed;top:0;bottom:0;right:0;box-shadow:-4px 0 16px #0000001a}.chat-messages{flex-direction:column;flex:1;gap:.5rem;display:flex;overflow-y:auto}.msg{border-radius:var(--radius);max-width:90%;padding:.5rem .75rem}.msg ul{margin:.25rem 0 0;padding-left:1.1rem;font-size:.9rem}.msg.me{background:var(--color-family);color:#fff;align-self:flex-end}.msg.align{background:var(--bg);align-self:flex-start}.show-mobile{display:none}@media (width<=760px){.hide-mobile{display:none}.show-mobile{display:inline-block}.filters:not(.open){display:none}.menu-button{display:inline-block}.sidebar{z-index:10;transition:transform .15s;position:fixed;top:3rem;bottom:3.25rem;left:0;transform:translate(-100%);box-shadow:4px 0 16px #0000001a}.sidebar.open{transform:none}.main-panel{padding:.75rem .75rem 4rem}.right-panel{z-index:12;border-left:none;width:auto;position:fixed;inset:3rem 0 3.25rem}.bottom-nav{background:var(--surface);border-top:1px solid var(--border);z-index:10;height:3.25rem;display:flex;position:fixed;bottom:0;left:0;right:0}.bottom-nav button{color:var(--muted);background:0 0;border-radius:0;flex:1;padding:0;font-size:.85rem}.bottom-nav button.active{color:var(--color-family);font-weight:600}.grid2{grid-template-columns:1fr}.item-row{flex-wrap:wrap}}
