:root{--bg:#f7f6f3;--surface:#fff;--text:#1d1d1b;--muted:#75736d;--border:#e3e1db;--accent:#2f5bd3;--accent-text:#fff;--user:#eceae4;--warn:#a3470f;--code:#f1efea}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#161614;--surface:#1f1f1c;--text:#ecebe6;--muted:#9b998f;--border:#33322e;--accent:#7c9cf5;--accent-text:#10131c;--user:#2a2a26;--warn:#f0a46c;--code:#2a2a26}}*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--bg);color:var(--text);flex-direction:column;font:16px/1.6 -apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;display:flex}#root{display:contents}header{border-bottom:1px solid var(--border);background:var(--surface);align-items:center;gap:12px;padding:12px 16px;display:flex}header h1{margin:0;font-size:15px;font-weight:600}#status{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:13px;overflow:hidden}.session-progress{border-bottom:1px solid var(--border);background:var(--surface);color:var(--muted);flex-wrap:wrap;align-items:center;gap:14px;padding:8px 16px;font-size:12px;display:flex}.session-progress-meta{border-right:1px solid var(--border);flex-shrink:0;align-items:baseline;gap:8px;padding-right:14px;display:flex}.session-progress-kind{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);white-space:nowrap;font-size:10px;font-weight:600}.session-progress-label{color:var(--text);white-space:nowrap;font-weight:600}.session-progress-steps{flex-wrap:wrap;flex:1;align-items:center;gap:6px;min-width:0;margin:0;padding:0;list-style:none;display:flex}.session-progress-steps li{white-space:nowrap;align-items:center;gap:6px;padding:2px 0;display:flex}.session-progress-steps li:not(:last-child):after{content:"";background:var(--border);flex-shrink:0;width:10px;height:1px;margin-left:6px}.session-progress-index{border:1px solid var(--border);width:16px;height:16px;color:var(--muted);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:10px;font-weight:600;line-height:1;display:inline-flex}.session-progress-steps li.done{color:var(--muted)}.session-progress-steps li.done .session-progress-index{background:var(--code);color:var(--text);border-color:#0000}.session-progress-steps li.current{color:var(--accent);font-weight:600}.session-progress-steps li.current .session-progress-index{border-color:var(--accent);background:var(--accent);color:var(--accent-text)}.session-progress-steps li.todo{color:var(--muted);opacity:.75}.session-progress-count{white-space:nowrap;font-variant-numeric:tabular-nums;margin-left:auto}button{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:8px;padding:6px 12px;font-size:14px}button:hover:not(:disabled){border-color:var(--muted)}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}button.active{border-color:var(--accent);color:var(--accent)}.workspace{flex:1;min-height:0;display:flex;position:relative}.chat{flex-direction:column;flex:1;min-width:0;display:flex}main{flex:1;overflow-y:auto}.pane{background:var(--surface);border-left:1px solid var(--border);flex-shrink:0;width:320px;padding:16px;font-size:14px;overflow-y:auto}.pane.left{border-left:none;border-right:1px solid var(--border)}.pane-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px;display:flex}.pane-head h2{margin:0;font-size:15px;font-weight:600}.pane-status{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:12px;overflow:hidden}.coach{flex-direction:column;width:360px;padding:0;display:flex;overflow:hidden}.coach .pane-head{margin:0;padding:12px 16px 0}.coach .log{padding:12px 16px 4px}.coach .empty{margin-top:10vh;font-size:13px}.coach .msg{font-size:14px}.coach footer{padding:10px 12px}.coach textarea{min-height:40px;padding:8px 10px}.pane .close{color:var(--muted);border:none;padding:2px 8px;font-size:20px;line-height:1}.pane-note{color:var(--muted);margin:8px 0 0;font-size:12px;line-height:1.5}.readiness{border-bottom:1px solid var(--border);margin-bottom:16px;padding-bottom:16px}.readiness-value{font-size:22px;font-weight:600}.readiness .bar{height:10px}.areas{flex-direction:column;gap:14px;margin:0;padding:0;list-style:none;display:flex}.area-head{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:4px;display:flex}.area-name{font-weight:600}.area-score{font-variant-numeric:tabular-nums;color:var(--muted)}.bar{background:var(--code);border-radius:3px;height:6px;position:relative}.bar .fill{background:var(--accent);border-radius:3px;height:100%}.bar .tick{background:var(--muted);width:2px;position:absolute;top:-3px;bottom:-3px}.area-meta{color:var(--muted);margin-top:4px;font-size:12px}@media (width<=900px){.pane{z-index:1;width:min(320px,90vw);position:absolute;top:0;bottom:0;right:0;box-shadow:-8px 0 24px #0000002e}.pane.left{left:0;right:auto;box-shadow:8px 0 24px #0000002e}.coach{width:min(360px,90vw)}}.log{max-width:760px;margin:0 auto;padding:24px 16px 8px}.msg{overflow-wrap:anywhere;margin:0 0 20px}.msg.user{background:var(--user);white-space:pre-wrap;border-radius:12px;margin-left:15%;padding:10px 14px}.msg.assistant>:first-child{margin-top:0}.msg.assistant>:last-child{margin-bottom:0}.msg pre{background:var(--code);border-radius:8px;padding:10px 12px;font-size:14px;overflow-x:auto}.msg code{background:var(--code);border-radius:4px;padding:1px 4px;font-size:.92em}.msg pre code{background:0 0;padding:0}.msg table{border-collapse:collapse;display:block;overflow-x:auto}.msg th,.msg td{border:1px solid var(--border);text-align:left;padding:4px 8px}.marker{color:var(--accent);letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:10px;margin:18px 0;font-size:12px;font-weight:600;display:flex}.marker:before,.marker:after{content:"";border-top:1px solid var(--accent);opacity:.5;flex:1}.activity{color:var(--muted);margin:-8px 0 16px;font-size:13px}.activity div:before{content:"· "}.warn{color:var(--warn);margin:0 0 16px;font-size:14px}.empty{color:var(--muted);text-align:center;margin-top:20vh}.login{flex:1;justify-content:center;align-items:center;padding:24px;display:flex}.login form{background:var(--surface);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:12px;width:min(360px,100%);padding:24px;display:flex}.login h1{margin:0;font-size:18px}.login input{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:10px 12px}.login input:focus{outline:2px solid var(--accent);outline-offset:-1px}.login button{align-self:stretch}footer{border-top:1px solid var(--border);background:var(--surface);padding:12px 16px}form{align-items:flex-end;gap:8px;max-width:760px;margin:0 auto;display:flex}textarea{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--border);resize:none;border-radius:10px;flex:1;min-height:46px;max-height:40vh;padding:10px 12px}textarea:focus{outline:2px solid var(--accent);outline-offset:-1px}.hint{max-width:760px;color:var(--muted);margin:6px auto 0;font-size:12px}@media (width<=600px){.msg.user{margin-left:8%}header h1{display:none}}
