:root{--fg:#1a1a1a;--muted:#6b7280;--line:#e5e7eb;--accent:#2563eb;--ok:#15803d;--warn:#b91c1c}*{box-sizing:border-box}body{color:var(--fg);background:#fafafa;margin:0;font:15px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.muted{color:var(--muted);font-size:13px}.error{color:var(--warn)}.topbar{border-bottom:1px solid var(--line);background:#fff;justify-content:space-between;align-items:center;padding:10px 18px;display:flex}.brand{font-size:16px;font-weight:700}.nav-links{align-items:center;gap:16px;display:flex}.content{max-width:880px;margin:0 auto;padding:20px 18px}.page h1{margin:0 0 14px;font-size:22px}.task-list{margin:0;padding:0;list-style:none}.task-row{border:1px solid var(--line);color:var(--fg);background:#fff;border-radius:8px;grid-template-columns:1fr auto auto auto;align-items:center;gap:12px;margin-bottom:8px;padding:11px 12px;display:grid}.task-row:hover{border-color:var(--accent);text-decoration:none}.task-title{font-weight:600}.due{color:var(--muted);font-size:13px}.due.overdue{color:var(--warn);font-weight:600}.chip{color:#3730a3;white-space:nowrap;background:#eef2ff;border-radius:10px;padding:2px 8px;font-size:11px}.chip-open{color:#9a3412;background:#fff7ed}.chip-in_progress{color:#1e40af;background:#eff6ff}.chip-done{color:var(--ok);background:#f0fdf4}.chip-blocked{color:var(--warn);background:#fef2f2}.chip-pending{color:#374151;background:#f3f4f6}.task-subhead{align-items:center;gap:8px;margin-bottom:14px;display:flex}.two-col{grid-template-columns:2fr 1fr;align-items:start;gap:18px;display:grid}@media (width<=720px){.two-col{grid-template-columns:1fr}}.brief,.rail section{border:1px solid var(--line);background:#fff;border-radius:8px;margin-bottom:12px;padding:12px}.label{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:0 0 6px;font-size:11px}.brief-body{white-space:pre-wrap;margin:0;font:14px/1.55 ui-monospace,SFMono-Regular,Menlo,monospace}.deliverables{margin:0;padding:0;list-style:none}.deliverables li{padding:3px 0}button,.btn-file{font:inherit;border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:7px;margin:4px 6px 4px 0;padding:7px 12px;display:inline-block}button:hover,.btn-file:hover{border-color:var(--accent)}button:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--ok);color:#fff;border-color:var(--ok)}.btn-link{color:var(--accent);background:0 0;border:none;padding:0}.done-banner{color:var(--ok);font-weight:600}.blocked-banner{color:var(--warn)}.token-reveal{border:1px solid var(--ok);background:#f0fdf4;border-radius:8px;margin-bottom:12px;padding:12px}.token-reveal code{border:1px solid var(--line);word-break:break-all;background:#fff;border-radius:6px;margin:6px 0;padding:8px;display:block}.token-form{gap:8px;margin:12px 0;display:flex}.token-list{margin:0;padding:0;list-style:none}.token-list li{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:8px 0;display:flex}.login{max-width:360px;margin:60px auto}.login-form{flex-direction:column;gap:10px;display:flex}.login-form input{border:1px solid var(--line);border-radius:7px;padding:9px}.back{margin-bottom:8px;font-size:13px;display:inline-block}.knowledge-search form{gap:8px;margin:12px 0;display:flex}.knowledge-search input{border:1px solid var(--line);border-radius:7px;flex:1;padding:9px}.knowledge-search .hint{color:var(--muted)}.search-results{margin:12px 0 0;padding:0;list-style:none}.search-results li{margin:0 0 8px}.search-results a{border:1px solid var(--line);background:#fff;border-radius:8px;padding:11px 12px;display:block}.search-results a:hover{border-color:var(--accent);text-decoration:none}.result-meta{color:var(--fg);font-weight:600;display:block}.result-snippet{color:var(--muted);margin-top:3px;font-size:13px;display:block}.doc-view{grid-template-columns:2fr 1fr;align-items:start;gap:18px;display:grid}@media (width<=720px){.doc-view{grid-template-columns:1fr}}.doc-body{border:1px solid var(--line);background:#fff;border-radius:8px;padding:16px}.doc-body h1{margin:0 0 12px;font-size:18px}.comments-panel{border:1px solid var(--line);background:#fff;border-radius:8px;padding:12px}.comments-panel h2{margin:0 0 10px;font-size:14px}.new-comment input,.new-comment textarea{border:1px solid var(--line);width:100%;font:inherit;border-radius:7px;margin:0 0 6px;padding:8px;display:block}.new-comment textarea{resize:vertical;min-height:60px}.thread{border:1px solid var(--line);border-radius:8px;margin:10px 0;padding:10px}.thread.resolved{opacity:.6}.thread .anchor{border-left:3px solid var(--line);color:var(--muted);margin:0 0 6px;padding-left:8px;font-style:italic}.thread .stale-badge{color:var(--warn);font-size:12px;font-style:normal}.comment-body{margin:0 0 6px}.reply-body{color:#374151;margin:4px 0 4px 10px}.thread-actions{flex-wrap:wrap;align-items:center;gap:6px;margin-top:6px;display:flex}.thread-actions input{border:1px solid var(--line);border-radius:6px;flex:1;min-width:120px;padding:6px}.chip-awaiting_approval{color:#854d0e;background:#fefce8}.approval-actions{flex-direction:column;gap:8px;margin:4px 0;display:flex}.sendback-note{border:1px solid var(--line);width:100%;min-height:48px;font:inherit;resize:vertical;border-radius:7px;padding:8px}.approval-history ul,.task-comments ul{margin:0 0 8px;padding:0;list-style:none}.approval-history li,.task-comments li{padding:3px 0}.goal-card{border:1px solid var(--line);border-radius:8px;margin-bottom:10px;padding:12px}.goal-title{font-weight:600}.progress-bar{background:var(--line);border-radius:4px;height:8px;margin:8px 0;overflow:hidden}.progress-bar>span{background:var(--accent);height:100%;display:block}.goal-meta{align-items:center;gap:12px;font-size:.9em;display:flex}.pace-chip{border-radius:999px;padding:1px 8px;font-size:.8em}.pace-behind{background:var(--warn);color:#fff}.pace-on_pace,.pace-achieved{background:var(--ok);color:#fff}.pace-missed{background:var(--muted);color:#fff}.stacked-form{gap:6px;max-width:360px;margin-top:8px;display:grid}.analysis-panel{border:1px solid var(--line);border-radius:8px;margin-top:16px;padding:12px}.pub-list{padding:0;list-style:none}.pub-list li{border-bottom:1px solid var(--line);padding:8px 0}.snapshot-table{border-collapse:collapse;width:100%}.snapshot-table th,.snapshot-table td{border-bottom:1px solid var(--line);text-align:left;padding:6px 8px}
