/* Understudy: quiet surfaces, system typography and immediate feedback. */
:root {
  --canvas:#f5f5f7; --paper:#fff; --ink:#1d1d1f; --graphite:#6e6e73; --faint:#86868b;
  --rule:rgba(0,0,0,.08); --rule-soft:rgba(0,0,0,.06); --cue:#0071e3; --cue-ink:#0066cc;
  --cue-wash:rgba(0,113,227,.10); --cue-wash-2:#f0f6fd; --good:#1f7a35; --good-wash:#e9f6ec;
  --warn:#b25000; --warn-wash:#fff4e5; --bad:#d70015; --bad-wash:#fdecec;
  --ui:-apple-system,BlinkMacSystemFont,"SF Pro Text",system-ui,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --script:"Courier Prime","Courier New",ui-monospace,monospace; --r-panel:16px; --r-ctl:12px;
  --card-shadow:0 1px 2px rgba(0,0,0,.04),0 6px 20px rgba(0,0,0,.04);
}
* { box-sizing:border-box; }
[hidden] { display:none !important; }
html { -webkit-text-size-adjust:100%; scroll-behavior:smooth; scroll-padding-top:76px; }
body { margin:0; font:15px/1.5 var(--ui); letter-spacing:-.01em; font-optical-sizing:auto; -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; color:var(--ink); background:var(--canvas); }
a { color:var(--cue-ink); text-decoration:none; }
a:hover { text-decoration:underline; }
button,input,textarea,select { font:inherit; color:inherit; }
button { cursor:pointer; touch-action:manipulation; }
:focus-visible { outline:3px solid var(--cue); outline-offset:3px; }
main:focus { outline:none; }
h1,h2,h3 { margin:0; font-weight:600; }
h1 { font-size:30px; line-height:1.12; letter-spacing:-.025em; font-weight:700; }
h2 { font-size:21px; line-height:1.2; letter-spacing:-.018em; }
h3,.h3 { font-size:17px; line-height:1.3; letter-spacing:-.012em; }
p { margin:0 0 12px; } p:last-child { margin-bottom:0; }
small,.small { font-size:13px; line-height:1.45; letter-spacing:-.003em; } .muted { color:var(--graphite); } .nw { white-space:nowrap; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.skip-link { position:fixed; left:12px; top:-100px; padding:10px; z-index:100; background:#fff; }
.skip-link:focus { top:12px; }
.topbar { min-height:56px; display:flex; align-items:center; gap:20px; padding:8px 28px; background:rgba(255,255,255,.72); color:var(--ink); position:sticky; top:0; z-index:30; border-bottom:1px solid var(--rule); -webkit-backdrop-filter:saturate(180%) blur(20px); backdrop-filter:saturate(180%) blur(20px); }
.brand-mark { color:var(--ink); font:700 24px var(--script); letter-spacing:-.04em; }
.brand-mark:hover { text-decoration:none; } .brand-mark .q { color:var(--cue); }
.brand-note { color:var(--graphite); font-size:13px; font-weight:500; }
.account-menu { display:flex; flex-wrap:wrap; align-items:center; justify-content:flex-end; gap:16px; margin-left:auto; }
.topbar-link { border:0; background:none; color:var(--cue-ink); font-size:13px; padding:8px; border-radius:999px; }
.shell { display:grid; grid-template-columns:236px minmax(0,1fr); min-height:calc(100dvh - 56px); }
.rail { background:var(--canvas); padding:26px 14px; }
.rail-heading { display:flex; align-items:center; justify-content:space-between; padding:0 10px; margin-bottom:14px; }
.eyebrow { display:block; color:var(--graphite); font-size:11px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; margin-bottom:8px; }
.rail-heading .eyebrow { margin:0; }
.bizpick { display:flex; align-items:center; gap:10px; padding:12px 10px 20px; border-bottom:1px solid var(--rule-soft); margin-bottom:16px; }
.bizpick b { display:block; font-size:14px; line-height:1.4; overflow-wrap:anywhere; }
.bizpick .small { display:block; font-size:11px; margin-top:4px; overflow-wrap:anywhere; }
.avatar { width:32px; height:32px; border-radius:8px; background:var(--cue-wash); color:var(--cue-ink); display:grid; place-items:center; font-weight:650; flex:none; }
.avatar.gym { background:var(--ink); color:#fff; }
.workspace-nav { display:grid; gap:4px; }
.nav { display:flex; align-items:center; gap:12px; padding:10px 14px; border-radius:999px; color:var(--ink); font-size:14px; transition:background 120ms ease-out,transform 120ms ease-out; }
.nav:hover { background:rgba(0,0,0,.04); text-decoration:none; }
.nav.on { background:var(--paper); color:var(--ink); font-weight:600; box-shadow:0 1px 3px rgba(0,0,0,.08); }
.nav.on .nav-icon { color:var(--cue); }
.nav-icon { width:18px; height:18px; flex:none; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.rail-foot { margin:32px 10px 0; padding-top:16px; border-top:1px solid var(--rule-soft); font-size:11px; color:var(--graphite); }
.status-dot { display:inline-block; width:6px; height:6px; border-radius:50%; background:var(--faint); margin-right:6px; }
.status-dot.good { background:var(--good); } .mobile-nav-toggle { display:none !important; }
.page { padding:32px 36px 56px; min-width:0; max-width:1600px; width:100%; margin:0 auto; }
.standalone { max-width:1200px; margin:0 auto; padding:36px 28px; }
.page-head { display:flex; align-items:flex-start; flex-wrap:wrap; gap:16px; margin-bottom:24px; }
.lede { color:var(--graphite); margin-top:8px; max-width:70ch; }
.actions { margin-left:auto; display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.crumb { font-size:12px; color:var(--graphite); margin-bottom:10px; } .crumb a { color:var(--graphite); }
.btn { display:inline-flex; justify-content:center; align-items:center; gap:7px; padding:9px 17px; border:1px solid transparent; border-radius:999px; background:#e8e8ed; color:var(--ink); font-size:14px; font-weight:600; line-height:1.5; text-align:center; transition:transform 120ms ease-out,background 120ms ease-out; touch-action:manipulation; }
.btn:hover { background:#dedee4; text-decoration:none; }
.btn.primary { background:var(--cue); color:#fff; } .btn.primary:hover { background:var(--cue-ink); }
.btn:active:not(:disabled),.icon-button:active:not(:disabled),.nav:active,.question-starter:active { transform:scale(.97); }
.btn svg,.icon { width:18px; height:18px; flex:none; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.btn.small { padding:6px 11px; font-size:13px; } .btn.quiet { background:transparent; border-color:transparent; color:var(--cue-ink); }
.btn.danger { color:var(--bad); } button:disabled,.btn:disabled { opacity:.55; cursor:not-allowed; }
.full-width { width:100%; }
.panel { background:var(--paper); border:1px solid var(--rule-soft); border-radius:var(--r-panel); min-width:0; box-shadow:var(--card-shadow); }
.panel-pad { padding:22px; } .panel-pad > h2 + p { margin-top:10px; }
.panel-head { display:flex; flex-wrap:wrap; align-items:center; gap:10px; padding:16px 20px; border-bottom:1px solid var(--rule-soft); }
.panel-head h2 { font-size:17px; line-height:1.3; letter-spacing:-.012em; } .right { margin-left:auto; }
.split { display:grid; grid-template-columns:minmax(0,1fr) 320px; gap:20px; align-items:start; }
.stack { min-width:0; } .stack > * + * { margin-top:16px; }
.section-gap { margin-top:20px; } .page-note { margin-bottom:20px; }
.note { border:1px solid var(--rule-soft); border-radius:var(--r-ctl); background:var(--cue-wash-2); padding:14px 16px; }
.note h2,.note h3 { margin-bottom:10px; } .note.warn { background:var(--warn-wash); }
.note.bad,.note.error { background:var(--bad-wash); } .note.good,.note.success { background:var(--good-wash); }
.messages { display:grid; gap:10px; margin-bottom:20px; }
.chip { display:inline-flex; align-items:center; gap:5px; padding:4px 10px; border-radius:999px; background:#f0f0f2; color:#626268; font-size:12px; line-height:1.4; letter-spacing:0; font-weight:600; white-space:nowrap; }
.chip.good,.status-done,.status-completed,.status-ended,.status-connected,.status-live { background:var(--good-wash); color:var(--good); }
.chip.cue,.status-working,.status-active,.status-connecting,.status-replying,.status-learning,.status-publishing,.status-in_call { background:var(--cue-wash-2); color:var(--cue-ink); }
.chip-symbol { width:12px; display:inline-grid; place-items:center; font-size:12px; line-height:1; }
.chip.warn,.status-needs_clarification,.status-paused,.status-expired { background:var(--warn-wash); color:var(--warn); }
.chip.bad,.status-failed { background:var(--bad-wash); color:var(--bad); }
.tbl-wrap { overflow-x:auto; } .tbl { width:100%; border-collapse:collapse; font-size:14px; }
.tbl th { text-align:left; font-size:12px; font-weight:600; color:var(--graphite); padding:12px 16px; background:var(--canvas); border-bottom:1px solid var(--rule); }
.tbl td { padding:16px; vertical-align:top; border-bottom:1px solid var(--rule-soft); } .tbl tr:last-child td { border:0; }
.tbl td .small { margin-top:4px; } .row-title { color:var(--ink); font-weight:600; } .row-title:hover { color:var(--cue-ink); }
.field { margin-bottom:18px; } .field > label { display:block; font-size:13px; font-weight:600; margin-bottom:6px; }
.input,.textarea,.select,.field input:not([type=checkbox]):not([type=radio]),.field textarea,.field select { display:block; width:100%; min-width:0; border:1px solid rgba(0,0,0,.12); border-radius:var(--r-ctl); padding:11px 13px; background:var(--paper); }
.input:focus,.textarea:focus,.select:focus,.field input:not([type=checkbox]):not([type=radio]):focus,.field textarea:focus,.field select:focus { border-color:var(--cue); box-shadow:0 0 0 4px rgba(0,113,227,.2); outline:none; }
input::placeholder,textarea::placeholder { color:var(--faint); opacity:1; }
.textarea,.field textarea { min-height:108px; resize:vertical; line-height:1.6; }
.field input[type=file] { font-size:13px; padding:8px !important; background:var(--cue-wash-2) !important; }
input::file-selector-button { background:#e8e8ed; color:var(--ink); border:0; padding:7px 12px; border-radius:999px; margin-right:8px; cursor:pointer; }
.field .hint { color:var(--graphite); font-size:12px; margin-top:6px; }
.optional { font-size:11px; font-weight:400; color:var(--graphite); margin-left:5px; }
.checkbox,.field label.checkbox { display:flex; align-items:flex-start; gap:10px; } .checkbox input { width:18px; height:18px; margin:2px 0 0; accent-color:var(--cue); flex:none; }
.has-error input,.has-error textarea,.has-error select { border-color:var(--bad) !important; }
.field-errors { color:var(--bad); font-size:13px; margin-top:6px; } .field-errors ul,.form-errors ul { list-style:none; margin:0; padding:0; }
.form-errors { margin-bottom:20px; } .form-actions { display:flex; gap:8px; flex-wrap:wrap; margin-top:24px; padding-top:20px; border-top:1px solid var(--rule-soft); }
.search-bar { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:18px; } .search-bar .input { max-width:340px; flex:1 1 180px; }
.empty-state { text-align:center; padding:42px 24px; } .empty-state p { color:var(--graphite); max-width:48ch; margin:10px auto 18px; font-size:14px; }
.empty-state.compact { padding:26px 20px; } .empty-state.compact p { margin-bottom:8px; } .empty-icon { color:var(--cue); font:36px var(--script); margin-bottom:16px; }
.pagination { padding:18px 0; display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:16px; }
.panel > .pagination { padding:18px; }
.home-summary { display:grid; grid-template-columns:1fr 1fr .8fr; gap:16px; }
.section-label { font-size:12px; color:var(--graphite); margin-bottom:12px; } .home-summary h2 { font-size:22px; margin-bottom:8px; }
.stat-number { font-size:34px; font-weight:700; letter-spacing:-.03em; line-height:1.05; margin-bottom:8px; font-variant-numeric:tabular-nums; }
.question { padding:18px 20px; border-bottom:1px solid var(--rule-soft); } .question:last-child { border:0; } .question b { font-size:15px; font-weight:400; }
.question-plan { padding-left:20px; font-size:14px; } .question-plan li { margin-bottom:12px; }
.test-chat { display:grid; gap:16px; padding:22px; max-height:580px; overflow:auto; scrollbar-gutter:stable; }
.msg { border-radius:10px; padding:14px 16px; font-size:14px; max-width:96%; min-width:0; overflow-wrap:anywhere; }
.msg.me { justify-self:end; background:var(--cue-wash-2); border:1px solid var(--rule-soft); }
.msg.ai { justify-self:start; background:var(--paper); border:1px solid var(--rule); }
.msg .who { display:flex; flex-wrap:wrap; align-items:center; gap:8px; color:#626268; font-size:11px; font-weight:600; margin-bottom:8px; }
.msg .who time { font-weight:400; }
.composer { border-top:1px solid var(--rule-soft); padding:20px; background:#fafbfd; border-radius:0 0 var(--r-panel) var(--r-panel); }
.composer .note { margin-bottom:18px; } .composer .field:last-of-type { margin-bottom:12px; }
.composer-foot { display:flex; justify-content:space-between; align-items:center; gap:16px; } .composer-foot .muted { max-width:38ch; }
.prose-text { white-space:pre-wrap; overflow-wrap:anywhere; } .prose-text + form { margin-top:12px; }
.inline-heading { display:flex; flex-wrap:wrap; align-items:center; gap:10px; }
.copy-row { display:flex; flex-wrap:wrap; gap:8px; margin:14px 0; } .copy-row .input { flex:1 1 200px; font-size:13px; }
.entry-list .entry { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:5px 12px; padding:18px 20px; border-bottom:1px solid var(--rule-soft); color:var(--ink); }
.entry-list .entry:last-child { border:0; } .entry-list .entry:hover { background:var(--cue-wash-2); text-decoration:none; }
.entry .title { font-weight:600; } .entry .meta { font-size:12px; color:var(--graphite); grid-column:1/-1; overflow-wrap:anywhere; }
.entry-excerpt { grid-column:1/-1; }
.prompt-book { display:grid; grid-template-columns:minmax(0,1fr) 300px; }
.pb-body { padding:28px; border-right:1px dashed var(--rule); min-width:0; } .pb-margin { padding:24px 20px; background:#fafbfd; border-radius:0 var(--r-panel) var(--r-panel) 0; }
.knowledge-content { overflow-wrap:anywhere; } .knowledge-content h1 { font-size:24px; } .knowledge-content h2 { font-size:19px; margin:24px 0 12px; } .knowledge-content h3 { margin:18px 0 8px; }
.knowledge-content p { margin:14px 0; } .knowledge-content ul,.knowledge-content ol { padding-left:22px; } .knowledge-content li { margin:6px 0; }
.knowledge-content pre { white-space:pre-wrap; overflow-wrap:anywhere; background:#fafbfd; padding:16px; border:1px solid var(--rule); border-radius:6px; }
.knowledge-content code { font-family:var(--script); font-size:13px; } .knowledge-content table { width:100%; border-collapse:collapse; font-size:13px; } .knowledge-content td,.knowledge-content th { border:1px solid var(--rule); padding:8px; text-align:left; }
.knowledge-content blockquote { border-left:3px solid var(--cue); margin:18px 0; padding:2px 16px; color:var(--graphite); }
.evidence { border-left:3px solid var(--cue); padding:12px; background:#fff; border-radius:0 6px 6px 0; font-size:13px; }
.evidence blockquote { margin:0; font:13px/1.6 var(--script); } .evidence .src { color:var(--graphite); font-size:12px; margin-top:8px; }
.kv { display:grid; grid-template-columns:90px minmax(0,1fr); gap:12px; font-size:13px; } .kv dt { color:var(--graphite); } .kv dd { margin:0; overflow-wrap:anywhere; }
.page-diff { padding:16px 0 0; } .page-diff summary { padding:0 20px 14px; font-size:12px; color:var(--graphite); cursor:pointer; overflow-wrap:anywhere; }
.diff-code { padding:0 0 16px; margin:0; font:12px/1.7 var(--script); white-space:pre-wrap; overflow-wrap:anywhere; }
.diff-line { display:block; min-height:1.7em; padding:0 20px; } .diff-add { background:var(--good-wash); } .diff-del { background:var(--bad-wash); }
.diff-gap { color:var(--graphite); background:var(--canvas); font-style:italic; }
.history-title { margin-bottom:14px; }
.version-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:4px 12px; padding:16px 22px; color:var(--ink); border-bottom:1px solid var(--rule-soft); overflow-wrap:anywhere; }
.version-row:last-child { border:0; }
.version-row:hover { background:var(--cue-wash-2); text-decoration:none; }
.version-row > .small { grid-column:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.version-row > svg { grid-column:2; grid-row:1/3; align-self:center; }
.source-details { font-size:12px; color:var(--graphite); margin-top:14px; } summary { cursor:pointer; } .source-details ul { padding-left:18px; }
.voice-widget { margin-top:18px; } .voice-state { font-size:14px; margin-bottom:14px; }
.voice-actions { display:flex; flex-wrap:wrap; gap:8px; } .voice-caption { font-size:12px; margin-top:14px; }
.voice-widget[data-state=error] .voice-state { color:var(--bad); } .voice-widget[data-state=live] .voice-state { color:var(--good); }
.mic-meter { display:grid; gap:6px; margin:18px 0; } .mic-meter meter { width:100%; height:18px; }
.voice-transcript { border-top:1px solid var(--rule); margin-top:18px; padding-top:14px; } .voice-transcript [role=log] { max-height:280px; overflow:auto; }
.live-turn { font-size:13px; padding:10px 0; } .live-turn b { font-size:11px; color:var(--graphite); display:block; margin-bottom:3px; }
.phone-number { font-family:var(--script); font-weight:700; font-size:23px; overflow-wrap:anywhere; }
.seg { display:inline-flex; flex-wrap:wrap; gap:3px; padding:4px; margin-bottom:18px; background:var(--rule-soft); border-radius:9px; }
.seg a { padding:7px 12px; font-size:13px; color:#626268; border-radius:6px; } .seg a.on { background:#fff; color:var(--ink); font-weight:600; box-shadow:0 1px 2px rgba(0,0,0,.06); }
.seg a:hover { text-decoration:none; background:#ffffff99; }
.audio-player { display:flex; flex-wrap:wrap; align-items:center; gap:20px; } .audio-player audio { width:min(100%,560px); height:36px; }
.call-meta { display:flex; align-items:center; flex-wrap:wrap; gap:14px; }
.script-view { font:14px/1.65 var(--script); }
.transcript-line { display:grid; grid-template-columns:44px 80px minmax(0,1fr); gap:0 12px; padding:16px 20px; border-bottom:1px solid var(--rule-soft); }
.transcript-line:last-child { border:0; } .transcript-line .t { color:var(--graphite); font:11px/1.8 var(--ui); }
.transcript-line .who { font:600 11px/1.8 var(--ui); text-transform:uppercase; overflow-wrap:anywhere; } .transcript-line .agent { color:var(--cue-ink); }
.transcript-line .said { overflow-wrap:anywhere; white-space:pre-wrap; } .transcript-note { grid-column:3; font-family:var(--ui); margin-top:8px; }
.advisor-evidence { padding:18px 20px; border-bottom:1px solid var(--rule-soft); } .advisor-evidence:last-child { border:0; } .advisor-evidence h3 { font-size:14px; margin:10px 0; }
.interview-notes { margin:12px 0 0; padding-left:18px; font-size:13px; } .interview-notes li { margin-bottom:10px; overflow-wrap:anywhere; }
.call-summary { color:var(--graphite); max-width:90ch; font-size:14px; }
.source-tags { display:flex; flex-wrap:wrap; gap:6px; margin:10px 0; } .source-tag { padding:3px 6px; border-radius:4px; background:var(--cue-wash-2); font:11px var(--script); overflow-wrap:anywhere; }
.auth-layout { display:grid; grid-template-columns:1fr 400px; gap:64px; align-items:center; max-width:960px; margin:64px auto; }
.auth-intro h1 { font-size:48px; line-height:1.1; letter-spacing:-.04em; margin:22px 0; } .auth-intro p { color:var(--graphite); max-width:35ch; font-size:17px; }
.auth-loop { display:flex; align-items:center; gap:16px; margin-top:28px; font:500 14px var(--ui); color:var(--cue-ink); }
.auth-card { padding:32px; } .auth-card > p { margin:10px 0 26px; } .auth-card .auth-help { margin:24px 0 0; font-size:12px; }
.operator-wrap { max-width:560px; margin:12px auto; } .operator-card { padding:32px; } .operator-card h1 { font-size:32px; margin:20px 0; }
.operator-avatar { width:44px; height:44px; margin-bottom:28px; } .operator-card .voice-widget { margin-top:26px; padding-top:22px; border-top:1px solid var(--rule); }
.operator-footer { text-align:center; font-size:12px; color:var(--graphite); margin-top:20px; } .error-card { max-width:600px; margin:50px auto; }
.toast { position:fixed; bottom:24px; left:50%; transform:translateX(-50%); border-radius:12px; background:var(--ink); color:#fff; box-shadow:var(--card-shadow); padding:12px 20px; font-size:13px; z-index:50; max-width:90vw; }
/* Teaching is a conversation with the business agent. The composer sits outside the scrollback. */
.teaching-page { max-width:1040px; margin:0 auto; }
.teaching-title { margin-bottom:14px; } .teaching-title .lede { max-width:65ch; font-size:14px; }
.teaching-chat { overflow:hidden; }
.teaching-session-head { padding:18px 22px 14px; gap:14px; }
.teaching-session-head h2 { font-size:21px; line-height:1.2; letter-spacing:-.018em; }
.teaching-header-actions { display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin-left:auto; }
.teaching-session-meta { display:flex; flex-wrap:wrap; align-items:center; gap:10px; width:100%; font-size:12px; color:var(--graphite); letter-spacing:-.003em; }
.teaching-messages { display:flex; flex-direction:column; align-items:flex-start; gap:8px; padding:22px; height:clamp(140px,calc(100dvh - 440px),480px); min-height:140px; overflow-y:auto; overflow-x:hidden; scrollbar-gutter:stable; }
.teaching-messages > * { flex-shrink:0; }
.teaching-messages.is-scrolled { -webkit-mask-image:linear-gradient(to bottom,transparent,#000 16px,#000); mask-image:linear-gradient(to bottom,transparent,#000 16px,#000); }
.teaching-messages .msg { max-width:72%; padding:11px 15px; border:0; border-radius:18px; font-size:15px; line-height:1.5; }
.teaching-messages .msg.group-start:not(:first-child) { margin-top:8px; }
.teaching-messages .msg.me { align-self:flex-end; background:var(--cue); color:#fff; }
.teaching-messages .msg.ai { align-self:flex-start; background:#e9e9eb; color:var(--ink); }
.teaching-messages .who { font-size:11px; font-weight:600; margin-bottom:5px; color:#58585e; }
.teaching-messages .msg.me .who { color:#fff; }
.teaching-messages .who time { margin-left:6px; font-weight:400; }
.file-chip { display:inline-flex; align-items:center; gap:8px; max-width:100%; padding:8px 10px; margin:8px 6px 0 0; border-radius:12px; background:var(--paper); color:var(--cue-ink); font-size:12px; font-weight:500; overflow-wrap:anywhere; }
.file-chip small { display:block; color:var(--graphite); font-size:11px; margin-top:2px; }
.msg.me .file-chip { background:#fff; color:var(--cue-ink); }
.teaching-welcome { margin:auto; text-align:center; max-width:56ch; padding:8px; }
.teaching-welcome .empty-icon { display:block; font-size:24px; margin-bottom:8px; }
.teaching-welcome p { color:var(--graphite); font-size:13px; margin-top:8px; }
.teaching-composer { border-top:1px solid var(--rule-soft); padding:16px 22px 14px; background:var(--paper); }
.teaching-composer .note { margin-bottom:10px; }
.message-field { display:flex; align-items:flex-end; gap:5px; padding:5px; background:var(--paper); border:1px solid rgba(0,0,0,.12); border-radius:20px; }
.message-field:focus-within { border-color:var(--cue); box-shadow:0 0 0 4px rgba(0,113,227,.2); }
.message-field textarea { display:block; width:100%; min-width:0; min-height:34px; height:34px; max-height:160px; border:0; background:transparent; padding:5px 6px; resize:none; font-size:15px; line-height:24px; }
.message-field textarea:focus { outline:none; }
.teaching-file-control { position:relative; flex:none; }
.teaching-file-control input[type=file] { position:absolute; width:1px; height:1px; opacity:0; }
.icon-button { width:34px; height:34px; padding:7px; display:inline-grid; place-items:center; flex:none; border:0; border-radius:50%; background:transparent; color:var(--graphite); transition:transform 120ms ease-out,background 120ms ease-out; }
.icon-button .icon { width:20px; height:20px; }
.attach-button:hover { background:#e8e8ed; color:var(--ink); }
.send-button { background:var(--cue); color:#fff; }
.send-button:hover:not(:disabled) { background:var(--cue-ink); }
.send-button:disabled { background:#e8e8ed; color:var(--faint); opacity:1; }
.send-button[aria-busy=true] { opacity:.6; }
.composer-meta { display:flex; flex-wrap:wrap; justify-content:space-between; gap:6px; margin-top:8px; font-size:11px; color:var(--graphite); letter-spacing:0; }
.chosen-files { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:10px; }
.chosen-file { display:inline-flex; align-items:center; gap:6px; max-width:100%; padding:4px 4px 4px 10px; border-radius:12px; background:var(--canvas); font-size:12px; }
.chosen-file-name { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:26ch; }
.chosen-file small { flex:none; color:var(--graphite); font-size:11px; }
.remove-file { display:inline-grid; place-items:center; width:28px; height:28px; border:0; background:transparent; border-radius:50%; font-size:20px; line-height:1; color:var(--graphite); }
.remove-file:hover { background:#e8e8ed; color:var(--ink); }
.teaching-progress { display:flex; align-items:center; gap:8px; font-size:13px; color:var(--graphite); margin:6px 0; }
.typing-dots { display:inline-flex; gap:4px; padding:12px 13px; border-radius:18px; background:#e9e9eb; }
.typing-dots i { width:5px; height:5px; border-radius:50%; background:#6e6e73; animation:typing-dot 1.2s ease-out infinite; }
.typing-dots i:nth-child(2) { animation-delay:.15s; } .typing-dots i:nth-child(3) { animation-delay:.3s; }
@keyframes typing-dot { 0%,70%,100% { opacity:.4; transform:translateY(0); } 35% { opacity:1; transform:translateY(-3px); } }
.message-arriving { animation:message-arrive 180ms ease-out; }
.report-arriving { animation:report-arrive 220ms ease-out; }
@keyframes message-arrive { from { opacity:0; transform:translateY(4px); } to { opacity:1; transform:translateY(0); } }
@keyframes report-arrive { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:translateY(0); } }
@keyframes gentle-appear { from { opacity:0; } to { opacity:1; } }
.teaching-report { width:100%; background:var(--paper); border:1px solid var(--rule); border-radius:12px; padding:20px; margin-top:8px; }
.teaching-report h3 { margin:0 0 12px; } .teaching-report > .chip { margin-bottom:10px; }
.report-checklist { list-style:none; padding:0; margin:18px 0; font-size:13px; line-height:1.5; }
.report-checklist li { display:flex; gap:10px; align-items:flex-start; margin-bottom:14px; }
.check-symbol { display:grid; place-items:center; flex:none; width:21px; height:21px; border-radius:50%; font-size:12px; font-weight:700; background:#f0f0f2; color:#626268; }
.result-in_draft .check-symbol { color:var(--good); background:var(--good-wash); }
.result-needs_clarification .check-symbol { color:var(--warn); background:var(--warn-wash); }
.result-label { font-size:12px; font-weight:600; color:#626268; }
.result-in_draft .result-label { color:var(--good); } .result-needs_clarification .result-label { color:var(--warn); }
.report-checklist p { margin-top:3px; }
.teaching-report-foot { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px; margin-top:14px; }
.teaching-report-foot p { margin:0; }
.teaching-audio { display:flex; align-items:center; flex-wrap:wrap; gap:12px; padding:10px 22px; border-top:1px solid var(--rule-soft); }
.teaching-audio > span { display:inline-flex; align-items:center; gap:6px; } .teaching-audio audio { width:min(100%,400px); height:32px; }
.teaching-starters { margin-top:24px; } .teaching-starters h2 { color:var(--graphite); margin-bottom:10px; font-weight:600; }
.question-starter { max-width:100%; color:var(--ink); transition:transform 120ms ease-out,background 120ms ease-out; }
.question-starter:hover { background:rgba(0,0,0,.025); text-decoration:none; }
.report-question { display:flex; align-items:center; justify-content:space-between; gap:12px; border-top:1px solid var(--rule-soft); padding:12px 0; font-size:13px; }
.answer-link { color:var(--cue-ink); font-weight:500; white-space:nowrap; }
.teaching-history > summary { font-size:15px; font-weight:600; padding:12px 0; }
.teaching-history > summary span { font-weight:400; margin-left:6px; }
.teaching-list-row { display:flex; align-items:center; gap:12px; padding:15px 18px; border-bottom:1px solid var(--rule-soft); color:var(--ink); }
.teaching-list-row:last-child { border:0; } .teaching-list-row:hover { text-decoration:none; background:rgba(0,0,0,.025); }
.row-symbol { display:grid; place-items:center; width:32px; height:32px; background:var(--canvas); border-radius:10px; flex:none; color:var(--graphite); }
.row-copy { min-width:0; flex:1; }
.row-excerpt { display:block; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; font-size:14px; }
.row-meta { display:block; color:var(--graphite); font-size:12px; margin-top:4px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.row-chevron { width:15px; height:15px; color:var(--graphite); }
.search-field { display:flex; align-items:center; position:relative; flex:1 1 220px; max-width:380px; }
.search-field > svg { position:absolute; left:13px; color:var(--graphite); pointer-events:none; }
.search-field .input { max-width:none; padding-left:40px; background:#fff; }
.entry-list .entry { padding:20px 22px; gap:7px 16px; }
.entry .title { font-size:17px; font-weight:600; line-height:1.3; letter-spacing:-.012em; }
.entry-excerpt { font-size:14px; line-height:1.5; }
.entry .meta { font-size:12px; line-height:1.45; }
/* Talk keeps the shared conversation in front and its working tools to the side. */
.talk-page { max-width:1200px; margin:0 auto; }
.talk-page .page-head .lede { margin-bottom:6px; }
.talk-layout { display:grid; grid-template-columns:minmax(0,1fr) 280px; gap:20px; align-items:start; }
.talk-messages { display:block; height:480px; min-height:260px; }
[data-talk-entries] { width:100%; }
.talk-entry { margin:0 0 16px; min-width:0; scroll-margin-top:100px; }
.talk-messages .msg { max-width:92%; }
.talk-entry.entry-person .msg { margin-left:auto; }
.talk-entry.entry-agent .msg { background:#f1f1f3; }
.talk-entry.entry-system { text-align:center; font-size:12px; color:var(--graphite); }
.talk-messages .talk-event { max-width:100%; border:1px solid var(--rule-soft); background:var(--paper); }
.entry-system .talk-event { padding:6px 0; border:0; font-size:12px; }
.talk-markdown > :first-child { margin-top:0; }
.talk-markdown > :last-child { margin-bottom:0; }
.talk-markdown pre { max-width:100%; }
.talk-ref { margin-bottom:8px; opacity:.85; }
.msg.me .talk-ref a { color:inherit; text-decoration:underline; }
.talk-publication { margin-top:14px; padding-top:10px; border-top:1px solid var(--rule); }
.talk-retry { display:flex; align-items:center; flex-wrap:wrap; gap:4px; color:var(--bad); margin:6px 0 12px; }
.talk-call-link { display:flex; align-items:center; gap:8px; }
.talk-panel > summary,.add-key > summary { padding:16px 18px; font-weight:600; cursor:pointer; }
.talk-panel-section { padding:18px; border-top:1px solid var(--rule-soft); overflow-wrap:anywhere; }
.talk-panel-section h2 { margin-bottom:14px; }
.panel-item + .panel-item { border-top:1px solid var(--rule-soft); margin-top:16px; padding-top:16px; }
.panel-item h3 { margin-bottom:5px; }
.panel-item p { margin-bottom:6px; }
.panel-item code,.key-request code { overflow-wrap:anywhere; }
.missing-key { color:var(--warn); }
.add-key { margin-top:12px; }
.add-key form { padding:0 18px 18px; }
.key-request h3 { margin-bottom:8px; }
.key-request form { margin-top:14px; }
.key-request button { margin-top:12px; }
.key-request [data-key-error]:empty { display:none; }
.older-messages { display:flex; margin:0 auto 14px; }
.talk-messages .teaching-welcome { padding:50px 0; }
[data-talk-context] { display:flex; align-items:center; justify-content:space-between; gap:8px; overflow-wrap:anywhere; }
[data-talk-context] button { flex:none; }
.action-run { padding:18px 20px; border-bottom:1px solid var(--rule-soft); overflow-wrap:anywhere; }
.action-run:last-child { border-bottom:0; }
.action-run h3 { font-size:14px; margin-bottom:8px; }
.action-run details { margin-top:10px; }
.action-run details .prose-text { margin-top:8px; }
.action-status { font-weight:600; }
.action-status.succeeded { color:var(--good); }
.action-status.failed,.action-status.refused { color:var(--bad); }
.action-status.unknown { color:var(--warn); }
@media(max-width:1100px) { .talk-layout { grid-template-columns:minmax(0,1fr); } .talk-aside { order:-1; } }
@media(max-width:760px) {
  .teaching-title .lede { font-size:13px; margin-top:6px; }
  .teaching-title .actions { display:none; }
  .teaching-messages { height:clamp(100px,calc(100dvh - 580px),350px); min-height:100px; padding:12px; }
  .teaching-welcome .empty-icon { display:none; } .teaching-welcome { padding:0; }
  .teaching-welcome h3 { font-size:14px; } .teaching-welcome p { font-size:12px; }
  .teaching-session-head { padding:16px; gap:12px; }
  .teaching-session-head h2 { width:100%; font-size:21px; }
  .teaching-header-actions { margin-left:0; width:100%; justify-content:flex-start; }
  .teaching-session-meta { gap:8px; }
  .teaching-composer { padding:12px; }
  .teaching-messages .msg { max-width:72%; font-size:14px; padding:10px 12px; }
  .message-field textarea { font-size:16px; padding-top:10px; padding-bottom:10px; }
  .icon-button { width:44px; height:44px; padding:11px; }
  .keyboard-hint { display:none; }
  .chosen-file { width:100%; } .chosen-file-name { flex:1; max-width:none; } .remove-file { width:44px; height:44px; }
  .teaching-list-row { flex-wrap:wrap; padding:14px; gap:10px; }
  .teaching-list-row .row-copy { flex-basis:calc(100% - 72px); }
  .teaching-list-row > .chip { margin-left:42px; order:3; }
  .teaching-report { padding:16px; }
  .teaching-report-foot .btn { width:100%; }
}
@media(max-width:1200px) { .split { grid-template-columns:minmax(0,1fr) 280px; } .page { padding:28px 24px 48px; } .home-summary { grid-template-columns:1fr 1fr; } .home-summary > :last-child { grid-column:1/-1; } .prompt-book { grid-template-columns:minmax(0,1fr); } .pb-body { border-right:0; border-bottom:1px dashed var(--rule); } .pb-margin { border-radius:0 0 var(--r-panel) var(--r-panel); } }
@media(max-width:1000px) { .shell { grid-template-columns:200px minmax(0,1fr); } .split { grid-template-columns:minmax(0,1fr); } .auth-layout { gap:30px; grid-template-columns:1fr 360px; } .auth-intro h1 { font-size:38px; } .home-summary > :last-child { grid-column:auto; } .home-summary { grid-template-columns:repeat(3,minmax(0,1fr)); } .home-summary h2 { font-size:18px; } }
@media(max-width:760px) {
  .topbar { padding:5px 16px; gap:12px; } .brand-note { display:none; } .account-menu .small { max-width:140px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .shell { display:block; } .rail { padding:12px 18px; border-right:0; border-bottom:1px solid var(--rule); }
  .rail-heading { padding:0; margin:0; } .mobile-nav-toggle { display:inline-flex !important; } .bizpick { margin:0; border:0; padding:8px 0 0; }
  .bizpick .avatar { display:none; } .bizpick .small { display:inline; margin-left:8px; } .bizpick b { display:inline; }
  .workspace-nav { margin-top:12px; grid-template-columns:repeat(3,minmax(0,1fr)); } body.js .workspace-nav:not(.expanded) { display:none; }
  .nav { padding:9px; gap:6px; font-size:13px; } .rail-foot { display:none; }
  .page { padding:24px 18px 40px; } .home-summary { grid-template-columns:minmax(0,1fr); } .home-summary .panel { padding:18px; }
  .page-head { margin-bottom:20px; } .page-head .actions { margin-left:0; } h1 { font-size:30px; }
  .auth-layout { grid-template-columns:minmax(0,1fr); margin:16px auto; max-width:440px; gap:26px; } .auth-intro h1 { font-size:34px; } .auth-intro h1 br { display:none; } .auth-intro p,.auth-loop { display:none; } .auth-intro .eyebrow { font-size:10px; } .auth-intro h1 { margin:12px 0 0; }
  .standalone { padding:24px 18px; } .operator-card { padding:24px; } .operator-card h1 { font-size:28px; }
  .transcript-line { grid-template-columns:36px 65px minmax(0,1fr); gap:8px; padding:14px; } .script-view { font-size:13px; }
  .panel-pad { padding:18px; } .panel-head { padding:14px 18px; } .test-chat { padding:16px; } .composer { padding:16px; }
  .composer-foot { align-items:flex-end; } .composer-foot .muted { font-size:11px; } .msg { max-width:100%; padding:12px; }
  .pb-body { padding:20px; } .copy-row { gap:8px; } .copy-row .input { flex-basis:100%; } .btn,.nav,.topbar-link,.file-chip,.report-question,.seg a { min-height:44px; }
  .teaching-history > summary { min-height:44px; }
}
@media(max-width:400px) { .brand-mark { font-size:21px; } .account-menu { gap:8px; } .account-menu .small { max-width:105px; } .nav-icon { display:none; } .workspace-nav { grid-template-columns:repeat(3,minmax(0,1fr)); } .composer-foot { flex-wrap:wrap; } .composer-foot .btn { margin-left:auto; } }
@media(max-width:720px) {
  .talk-messages { min-height:140px; }
  .talk-messages .msg { max-width:94%; }
  .talk-aside { order:0; }
  .talk-panel > summary,.add-key > summary { min-height:44px; }
  .talk-layout { display:block; }
  .talk-aside { margin-top:18px; }
  .teaching-chat { overflow:visible; }
  .teaching-messages { height:auto; min-height:100px; max-height:none; overflow:visible; scrollbar-gutter:auto; -webkit-mask-image:none; mask-image:none; }
  .teaching-composer { position:sticky; bottom:0; z-index:20; border-radius:0 0 var(--r-panel) var(--r-panel); background:rgba(255,255,255,.72); -webkit-backdrop-filter:saturate(180%) blur(20px); backdrop-filter:saturate(180%) blur(20px); padding-bottom:calc(12px + env(safe-area-inset-bottom,0px)); box-shadow:0 -1px 0 rgba(0,0,0,.04); }
  .teaching-composer .muted,.teaching-composer .composer-meta { color:#515156; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation:none !important; transition:none !important; }
  .message-arriving,.report-arriving { animation:gentle-appear 150ms ease-out !important; transform:none; }
  .typing-dots { display:none; }
  .btn:active,.icon-button:active,.nav:active,.question-starter:active { transform:none !important; }
}
@media(prefers-reduced-transparency:reduce) { .topbar,.teaching-composer { background:var(--paper); -webkit-backdrop-filter:none; backdrop-filter:none; } }
@media(prefers-contrast:more) {
  :root { --rule:rgba(0,0,0,.28); --rule-soft:rgba(0,0,0,.2); --graphite:#515156; }
  .topbar,.teaching-composer { background:var(--paper); -webkit-backdrop-filter:none; backdrop-filter:none; border-color:#6e6e73; }
  .panel,.nav.on { border:1px solid var(--rule); }
  .input,.textarea,.select,.message-field { border-color:#6e6e73; }
}
