@font-face{font-family:"Plus Jakarta Sans Variable";font-style:normal;font-display:swap;font-weight:200 800;src:url(/fonts/plus-jakarta-sans-latin-wght-normal.woff2) format("woff2-variations"),url(/fonts/plus-jakarta-sans-latin-wght-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Plus Jakarta Sans Variable";font-style:normal;font-display:swap;font-weight:200 800;src:url(/fonts/plus-jakarta-sans-latin-ext-wght-normal.woff2) format("woff2-variations"),url(/fonts/plus-jakarta-sans-latin-ext-wght-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Plus Jakarta Sans Variable";font-style:italic;font-display:swap;font-weight:200 800;src:url(/fonts/plus-jakarta-sans-latin-wght-italic.woff2) format("woff2-variations"),url(/fonts/plus-jakarta-sans-latin-wght-italic.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"JetBrains Mono Variable";font-style:normal;font-display:swap;font-weight:100 800;src:url(/fonts/jetbrains-mono-latin-wght-normal.woff2) format("woff2-variations"),url(/fonts/jetbrains-mono-latin-wght-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"JetBrains Mono Variable";font-style:normal;font-display:swap;font-weight:100 800;src:url(/fonts/jetbrains-mono-latin-ext-wght-normal.woff2) format("woff2-variations"),url(/fonts/jetbrains-mono-latin-ext-wght-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
/* Navy surfaces, amber for primary actions and the speaking seat, blue for Eureka agents, green for you. Every text colour here is at least 4.5:1 on the surface it sits on. */
:root{--sans:"Plus Jakarta Sans Variable",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;--mono:"JetBrains Mono Variable",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;--bg:#0a0f1c;--panel:#0f1729;--surface:#131c31;--raise:#1a2540;--line:#24304a;--line-strong:#3a4866;--text:#e6eaf2;--muted:#a3aec4;--amber:#f59e0b;--amber-text:#fbbf24;--amber-ink:#1a1204;--amber-soft:#2a1f08;--blue:#38bdf8;--green:#34d399;--red:#fca5a5;--red-bg:#2c1418;--grid:rgba(148,163,184,.05);--cut:12px;--cut-s:8px;font-family:var(--sans);color:var(--text);background:var(--bg);font-synthesis:none;font-size:15px;color-scheme:dark}
*{box-sizing:border-box}
body{margin:0;min-height:100vh;background-color:var(--bg);background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:32px 32px;background-attachment:fixed}
button,input,select,textarea{font:inherit}
button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}
button{cursor:pointer;min-height:44px;border:1px solid var(--line-strong);border-radius:0;background:var(--surface);color:var(--text);padding:11px 16px;font-weight:650;clip-path:polygon(var(--cut-s) 0,100% 0,100% 100%,0 100%,0 var(--cut-s))}
button:hover{background:var(--raise);border-color:#56658a}
button:disabled{opacity:.5;cursor:default}
button:focus-visible{outline:2px solid var(--amber-text);outline-offset:-5px}
a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid var(--amber-text);outline-offset:2px}
a{color:inherit}
::selection{background:#f59e0b55}
.sidebar{width:242px;position:fixed;inset:0 auto 0 0;border-right:1px solid var(--line);background:var(--panel);padding:28px 18px;display:flex;flex-direction:column;overflow-y:auto}
.brand{display:grid;grid-template-columns:40px 1fr;min-height:44px;column-gap:12px;align-items:center;font-weight:800;font-size:14px;letter-spacing:1.4px;text-decoration:none;color:var(--text)}
.mark{grid-row:span 2;width:40px;height:40px;display:grid;place-items:center;font-size:22px;background:var(--amber);color:var(--amber-ink);clip-path:polygon(var(--cut-s) 0,100% 0,100% 100%,0 100%,0 var(--cut-s))}
.prototype{font:500 10px var(--mono);letter-spacing:.6px;text-transform:lowercase;color:var(--muted);margin:0}
.workspace-label{margin-top:44px;font:600 10px var(--mono);letter-spacing:1.6px;color:var(--muted)}
nav{margin-top:12px}
nav a,nav button{display:flex;align-items:center;gap:12px;width:100%;min-height:44px;text-decoration:none;padding:12px 14px;border:0;border-left:3px solid transparent;background:transparent;font-weight:650;font-size:14px;color:var(--text);text-align:left;clip-path:none;margin-bottom:6px}
nav a:hover,nav button:hover{background:var(--surface)}
nav .active,nav a.active{background:var(--raise);border-left-color:var(--amber)}
.active{background:var(--raise)}
.count{margin-left:auto;font:600 11px var(--mono);color:var(--amber-text);padding:2px 6px}
.side-status{margin-top:26px;padding-top:20px;border-top:1px solid var(--line);font-size:13px;color:var(--text)}
.eyebrow{font:600 10px var(--mono);letter-spacing:1.8px;color:var(--amber-text);text-transform:uppercase}
.side-status .eyebrow{color:var(--muted)}
.side-status ul{list-style:none;margin:12px 0 0;padding:0}
.side-status li{position:relative;padding:5px 0 5px 16px;line-height:1.4}
.side-status li:before{content:'';position:absolute;left:0;top:11px;width:7px;height:7px;border-radius:50%;background:#64748b}
.side-status .status-ok:before{background:var(--green)}
.side-status .status-agent:before{background:var(--blue)}
.side-status .status-memory:before,.side-status .status-warn:before{background:var(--amber)}
.side-status .status-off{color:var(--muted)}
footer{margin-top:auto;padding-top:24px;font-size:11px;line-height:1.9;color:var(--muted)}
footer span{color:var(--muted)}
.credit-links{display:block}
.credit-links a{color:var(--muted);text-underline-offset:2px}
.credit-links a:hover{color:var(--text)}
.public-credit .credit-links{display:none}
.shell{margin-left:242px}
header{height:64px;border-bottom:1px solid var(--line);padding:0 48px;display:flex;align-items:center;justify-content:space-between;font:600 11px var(--mono);letter-spacing:1.2px;text-transform:uppercase;color:var(--amber-text);background:rgba(10,15,28,.6)}
.divider{margin:0 10px;color:var(--muted)}
.local-badge{font:500 11px var(--mono);letter-spacing:.4px;text-transform:none;color:var(--text);display:flex;gap:8px;align-items:center;border:1px solid var(--line);background:var(--surface);padding:7px 12px}
.local-badge i{width:7px;height:7px;background:var(--green);border-radius:50%}
main{max-width:1260px;margin:0 auto;padding:40px 48px}
.page-heading{display:flex;align-items:center;justify-content:space-between;min-height:220px;margin-bottom:26px}
h1{font-family:var(--sans);font-size:clamp(34px,4vw,50px);font-weight:800;line-height:1.1;letter-spacing:-1.2px;margin:14px 0;color:#f5f7fb}
p{color:var(--muted);line-height:1.6}
h1+p{font-size:15px}
.hero-what{font-size:17px;color:var(--text);max-width:620px;margin:0 0 12px}
.orbit{width:190px;height:190px;border:1px solid var(--line-strong);border-radius:50%;margin:15px 44px;position:relative;display:grid;place-items:center;background:radial-gradient(circle,#1a2540 0 34%,transparent 35%)}
.orbit:after{content:'';position:absolute;inset:24px;border:1px dashed var(--line-strong);border-radius:50%}
.orbit>span{font-size:44px;color:var(--amber-text);font-weight:300;position:relative;z-index:1}
.orb{position:absolute;z-index:1;background:var(--surface);border:1px solid var(--line-strong);width:44px;height:44px;display:grid;place-items:center;font:600 12px var(--mono);color:var(--text);clip-path:polygon(var(--cut-s) 0,100% 0,100% 100%,0 100%,0 var(--cut-s))}
.one{top:-14px;left:73px;background:var(--amber);color:var(--amber-ink);border-color:var(--amber);box-shadow:0 0 24px #f59e0b88}
.two{right:-12px;bottom:28px;border-color:var(--blue);color:var(--blue)}
.three{bottom:10px;left:-8px}
.security-note{display:flex;gap:16px;border:1px solid #5c4413;border-left:3px solid var(--amber);background:var(--amber-soft);padding:18px 22px;font-size:13px}
.security-note strong{font-size:14px;color:var(--amber-text)}
.security-note p{margin:5px 0 0;max-width:720px;color:#e9dcc0}
.shield{font-size:26px;color:var(--amber-text);line-height:1}
.section-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:40px 0 20px}
h2{font-size:21px;letter-spacing:-.3px;margin:0;color:#f5f7fb}
h3{color:#f5f7fb}
.section-heading p{font-size:13px;margin:6px 0 0}
.subtle{font-size:12px;color:var(--muted)}
.section-heading .subtle{font-family:var(--mono);font-size:11px}
.provider-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.provider-card,.agents-body>div,.room-config,.conversation,.round-table,.saved-toolbar,.ollama-guide{background:var(--surface);border:1px solid var(--line);clip-path:polygon(0 0,calc(100% - var(--cut)) 0,100% var(--cut),100% 100%,0 100%)}
.provider-card{padding:22px;transition:border-color .15s,background .15s;display:flex;flex-direction:column}
.provider-card:hover{border-color:var(--line-strong);background:#162036}
.card-top{display:flex;justify-content:space-between;gap:10px;align-items:center}
.provider-icon{width:40px;height:40px;display:grid;place-items:center;background:var(--raise);border:1px solid var(--line-strong);color:var(--text);font:700 14px var(--mono);clip-path:polygon(var(--cut-s) 0,100% 0,100% 100%,0 100%,0 var(--cut-s))}
.anthropic,.openai,.xai,.google,.ollama{color:var(--text)}
.connection-state{font:500 11px var(--mono);color:var(--muted)}
.connection-state.connected{display:inline-flex;align-items:center;gap:7px;color:var(--green);font-weight:600}
.connection-state.connected:before{content:'';width:7px;height:7px;border-radius:50%;background:var(--green);flex:none}
.provider-card.is-connected,.provider-card.is-connected:hover{border-color:#1f5a4a;box-shadow:inset 3px 0 0 var(--green)}
.provider-card h3{margin:20px 0 5px;font-size:17px}
.provider-card p{font-size:13px;margin:0 0 22px;flex:1}
.connect-button{width:100%;text-align:left;font-size:13px;padding:11px 14px;background:var(--panel)}
.next-step{display:flex;align-items:center;gap:20px;margin-top:32px;border-top:1px solid var(--line);padding-top:26px}
.step-number{font:600 28px var(--mono);color:var(--amber-text)}
.next-step h3{font-size:15px;margin:0}
.next-step p{font-size:13px;margin:5px 0}
.pill{margin-left:auto;font:600 10px var(--mono);letter-spacing:1px;border:1px solid var(--line-strong);padding:7px 10px;white-space:nowrap;color:var(--amber-text)}
.skip{position:absolute;top:-100px;z-index:10;min-height:44px;background:var(--amber);color:var(--amber-ink);padding:12px;font-weight:700}
.skip:focus{top:0}
dialog{border:1px solid var(--line-strong);border-radius:0;padding:30px;max-width:640px;width:calc(100% - 28px);max-height:90dvh;color:var(--text);background:var(--panel);box-shadow:0 20px 100px #0009;clip-path:polygon(0 0,calc(100% - 16px) 0,100% 16px,100% 100%,0 100%)}
dialog::backdrop{background:#050812cc;backdrop-filter:blur(3px)}
.leave-dialog{max-width:480px}.leave-dialog h2{margin:8px 0 10px;font-size:20px}.leave-dialog p{font-size:14px;color:var(--muted);margin:0 0 22px}
.leave-actions{display:flex;flex-wrap:wrap;gap:10px}.leave-actions button{flex:1 1 auto}
.dialog-heading{display:flex;justify-content:space-between;align-items:center}
.dialog-heading h2{margin-top:8px}
.icon-button{font-size:24px;line-height:1;padding:6px 12px;min-width:44px}
.dialog-note{font-size:13px;margin:22px 0}
label{display:block;font-size:13px;font-weight:650;margin:16px 0 8px;color:var(--text)}
input,textarea,select{width:100%;min-height:44px;border:1px solid var(--line-strong);border-radius:0;padding:11px 12px;background:var(--bg);color:var(--text)}
input::placeholder,textarea::placeholder{color:#8792a8}
input:disabled,textarea:disabled,select:disabled{opacity:.6}
select{overflow:hidden;text-overflow:ellipsis}
option,optgroup{background:var(--panel);color:var(--text)}
input[type=number]{font-family:var(--mono)}
input[type=checkbox]{accent-color:var(--amber);width:18px;height:18px;min-height:0}
.actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.actions button{font-size:13px}
.primary{background:var(--amber);color:var(--amber-ink);border-color:var(--amber);text-transform:uppercase;letter-spacing:.5px;font-weight:750}
.primary:hover{background:var(--amber-text);border-color:var(--amber-text)}
.primary:focus-visible{outline-color:var(--amber-ink)}
#connection-status,#global-status{font-size:13px;color:var(--green)}
#connection-status.is-error{color:var(--red)}
hr{border:0;border-top:1px solid var(--line);margin:24px 0}
pre{white-space:pre-wrap;overflow-wrap:anywhere;font:12px/1.6 var(--mono);color:var(--text);background:var(--bg);border:1px solid var(--line);padding:16px;max-height:260px;overflow:auto}
pre:empty{display:none}
#local-help{font-size:13px}
#test-reasoning{margin-top:14px}
summary{cursor:pointer;min-height:32px;display:list-item}
.check{display:flex;align-items:center;gap:10px;font-weight:500;margin:6px 0 0;min-height:44px}
.check input{width:18px;margin:0}
.ollama-guide{padding:16px 18px;margin-top:16px}
.ollama-guide h3{margin:0 0 6px;font-size:15px}
.ollama-guide ol{padding-left:20px;font-size:13px;line-height:1.6;margin:14px 0 6px}
.ollama-guide li{margin:8px 0}
.ollama-guide ul{padding-left:18px;margin:6px 0 0}
.guide-command{display:flex;gap:8px;align-items:flex-start;margin-top:6px}
.guide-command pre{flex:1;margin:0;max-height:none;padding:10px 12px;font-size:12px}
.guide-command button{padding:7px 12px;font-size:12px}
#test-output{font-size:14px;line-height:1.6;background:var(--bg);border:1px solid var(--line);padding:16px;max-height:260px;overflow:auto;margin-top:14px}
#test-output:empty{display:none}
#test-output code{background:var(--raise)}
.markdown{white-space:normal;overflow-wrap:anywhere}
.markdown>:first-child{margin-top:0}
.markdown>:last-child{margin-bottom:0}
.markdown p{margin:0 0 10px;color:inherit;line-height:1.6}
.markdown h3,.markdown h4,.markdown h5,.markdown h6{margin:16px 0 6px;line-height:1.35}
.markdown h3{font-size:17px}
.markdown h4{font-size:15px}
.markdown h5{font-size:14px}
.markdown h6{font-size:13px}
.markdown ul,.markdown ol{margin:0 0 10px;padding-left:22px}
.markdown li>p{margin:0 0 4px}
.markdown code{font:12px var(--mono);background:var(--raise);padding:1px 5px}
.markdown pre{margin:0 0 10px}
.markdown pre code{background:none;padding:0;font:inherit}
.markdown blockquote{margin:0 0 10px;padding-left:12px;border-left:3px solid var(--line-strong);color:var(--muted)}
.markdown .table-scroll{overflow-x:auto;margin:0 0 10px}
.markdown table{border-collapse:collapse;font-size:13px}
.markdown th,.markdown td{border:1px solid var(--line-strong);padding:5px 8px;text-align:left;vertical-align:top}
.markdown a{color:var(--blue)}
[hidden]{display:none!important}
@media(min-width:1450px){main{padding-top:56px}}
@media(max-width:1100px){.sidebar{width:210px;padding:24px 14px}.shell{margin-left:210px}header{padding:0 30px}main{padding:32px}.orbit{margin-right:10px;transform:scale(.85)}.provider-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.brand{font-size:12px}}
@media(max-width:700px){.sidebar{position:static;width:auto;padding:14px 16px;border-right:0;border-bottom:1px solid var(--line);overflow:visible}.brand{font-size:13px}.workspace-label,nav,.side-status,.sidebar footer{display:none}.public-credit .credit-links{display:block}.shell{margin:0}header{height:55px;padding:0 16px;font-size:10px}.local-badge{font-size:10px}main{padding:24px 16px}.page-heading{min-height:0;margin-bottom:22px}.orbit{display:none}h1{font-size:38px}.security-note{padding:16px;gap:10px}.section-heading .subtle{display:none}.provider-grid{grid-template-columns:minmax(0,1fr);gap:12px}.provider-card{padding:18px}.card-top{display:flex}.provider-card h3{margin-top:14px}.next-step{align-items:start;gap:12px}.pill{display:none}.next-step h3{line-height:1.5}dialog{padding:20px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
.view-tabs{display:flex;gap:8px;margin-bottom:24px}
.view-tabs button{font-size:13px}
.view-tabs .active{background:var(--raise);border-color:var(--amber);color:var(--amber-text)}
.room-heading{display:flex;justify-content:space-between;align-items:center;gap:16px}
.room-heading h1{font-size:44px}
.room-heading p{font-size:15px}
.room-layout{display:grid;grid-template-columns:minmax(330px,440px) minmax(0,1fr);gap:24px;margin-top:24px;align-items:start}
.room-side{display:flex;flex-direction:column;gap:20px;min-width:0}
.round-table{padding:18px 20px 22px}
.table-head{display:flex;justify-content:space-between;align-items:center;gap:8px;font:600 11px var(--mono);letter-spacing:1.6px;text-transform:uppercase}
.table-live{display:flex;align-items:center;gap:8px;color:var(--text)}
.table-live:before{content:'';width:8px;height:8px;border-radius:50%;background:#64748b}
.table-live.live:before{background:var(--green);box-shadow:0 0 8px var(--green)}
.table-mode{color:var(--amber-text);letter-spacing:1px}
.table-ring{position:relative;width:min(100%,340px);aspect-ratio:1;margin:18px auto 6px}
.table-ring:before{content:'';position:absolute;inset:17%;border:1px solid var(--line-strong);border-radius:50%}
.table-ring:after{content:'';position:absolute;inset:23%;border:1px dashed var(--line);border-radius:50%}
.table-center{position:absolute;inset:34%;border-radius:50%;background:var(--raise);border:1px solid var(--line-strong);display:grid;place-content:center;text-align:center;z-index:1}
.table-center strong{font:600 clamp(18px,5vw,26px) var(--mono);color:#f5f7fb}
.table-center small{font:500 9px var(--mono);letter-spacing:1.4px;text-transform:uppercase;color:var(--muted);margin-top:4px}
.seat{position:absolute;left:var(--x);top:var(--y);transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;text-align:center;width:120px;z-index:2}
.seat-chip{width:44px;height:44px;display:grid;place-items:center;font:700 15px var(--mono);background:var(--panel);border:1px solid var(--amber);color:var(--amber-text);clip-path:polygon(0 0,calc(100% - var(--cut-s)) 0,100% var(--cut-s),100% 100%,0 100%);transition:background .2s,box-shadow .2s}
.seat b{font-size:13px;margin-top:6px;color:#f5f7fb;background:var(--surface);padding:0 4px}
.seat small{font:500 10px var(--mono);color:var(--muted);background:var(--surface);padding:0 4px}
.seat-agent .seat-chip{border-color:var(--blue);color:var(--blue)}
.seat.speaking .seat-chip{background:var(--amber);border-color:var(--amber);color:var(--amber-ink);filter:drop-shadow(0 0 12px #f59e0bcc);animation:seat-glow 1.6s ease-in-out infinite}
.seat-agent.speaking .seat-chip{background:var(--blue);border-color:var(--blue);color:#04121b;filter:drop-shadow(0 0 12px #38bdf8cc)}
.seat.open .seat-chip{border:1px dashed var(--line-strong);color:var(--muted);background:transparent}
@keyframes seat-glow{50%{filter:drop-shadow(0 0 4px #f59e0b66)}}
.room-config{padding:20px}
.room-config label:first-child{margin-top:0}
.room-config h3{font:600 12px var(--mono);letter-spacing:1.6px;text-transform:uppercase}
.room-config button{margin-top:12px;font-size:13px}
.member-row{display:flex;align-items:center;gap:8px;border-bottom:1px solid var(--line);padding:10px 0;font-size:13px;overflow-wrap:anywhere;flex-wrap:wrap}
.member-row button{margin:0 0 0 auto;padding:6px 12px;min-width:44px}
.member-row>span{flex:1 0 100%;overflow-wrap:break-word}
.member-row small{margin-right:auto;color:var(--muted);font-family:var(--mono)}
.member-limit{width:96px;padding:8px;font-size:13px}
.message-text.markdown{white-space:normal}
.turn-failed{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;border:1px solid #7f2d36;border-left:3px solid var(--red);background:var(--red-bg);padding:10px 12px}
.turn-failed p{margin:0;color:var(--red);font-size:13px;line-height:1.5}
.turn-failed button{padding:6px 12px;font-size:12px;white-space:nowrap}
.message .markdown strong{font-size:inherit}
.conversation{min-width:0;padding:22px;display:flex;flex-direction:column}
.conversation-bar{display:flex;gap:12px;justify-content:space-between;align-items:center;flex-wrap:wrap}
.conversation-bar>strong{font:500 13px var(--mono);border:1px solid var(--line-strong);background:var(--panel);padding:10px 14px}
.conversation-bar .actions{margin:0}
#transcript{min-height:min(360px,45dvh);max-height:min(680px,62dvh);overflow:auto;flex:1;padding-right:4px}
.empty-room{text-align:center;padding:80px 10px}
.empty-room>span{font-size:40px;color:var(--amber-text)}
.empty-room h2{font:800 26px/1.2 var(--sans);margin-top:18px}
.empty-room p{font-size:13px}
.message{position:relative;margin:12px 0;padding:16px 18px 16px 62px;background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--line-strong)}
.message:before{content:attr(data-initial);position:absolute;left:16px;top:15px;width:30px;height:30px;display:grid;place-items:center;font:700 13px var(--mono);border:1px solid var(--line-strong);color:var(--muted);clip-path:polygon(0 0,calc(100% - 6px) 0,100% 6px,100% 100%,0 100%)}
.message:not([data-initial]){padding-left:18px}
.message:not([data-initial]):before{display:none}
.from-model{border-left-color:var(--amber)}
.from-model:before{background:var(--amber);border-color:var(--amber);color:var(--amber-ink)}
.from-agent{border-left-color:var(--blue)}
.from-agent:before{border-color:var(--blue);color:var(--blue)}
.from-you{border-left-color:var(--green)}
.from-you:before{border-color:var(--green);color:var(--green)}
.message.is-speaking{box-shadow:inset 0 0 0 1px #f59e0b55}
.message strong{font-size:14px;color:#f5f7fb}
.message small{display:block;color:var(--muted);font:500 11px var(--mono);margin-top:4px}
.message.is-speaking>small:not(.agent-badge){color:var(--amber-text)}
.message h2{font-size:14px}
.message-text{white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px;line-height:1.7;margin-top:12px;color:var(--text)}
#room-notice{font-size:13px}
#redirect-form{border-top:1px solid var(--line);margin-top:18px}
#redirect-form button{font-size:13px;margin-top:10px}
@media(max-width:1100px){.room-layout{grid-template-columns:minmax(0,1fr)}.room-config{display:block}#transcript{min-height:min(200px,40dvh)}}
@media(max-width:700px){.room-heading{align-items:start}.room-heading h1{font-size:34px}.room-heading button{font-size:12px}.conversation{padding:16px}.room-layout{gap:16px}.message{padding:14px 14px 14px 54px}.message:before{left:12px}.seat{width:96px}.seat b{font-size:12px}.table-ring{width:min(100%,300px)}}
.saved-toolbar{margin:20px 0;padding:18px 20px}
.saved-toolbar label{margin-top:0}
#saved-rooms{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px;max-height:160px;overflow:auto}
#saved-rooms button{font-size:12px}
.saved-room{display:inline-flex;max-width:100%}
.saved-room>button:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#saved-rooms .saved-delete{min-width:44px;padding:0 12px;margin-left:-1px;color:var(--muted)}
#saved-rooms .saved-delete:hover,#saved-rooms .saved-delete:focus-visible{color:var(--red);border-color:#7f2d36;background:var(--red-bg)}
.delete-all{margin-top:12px;font-size:12px;color:var(--muted)}
.delete-all:hover,.delete-all:focus-visible{color:var(--red);border-color:#7f2d36}
.danger{background:var(--red-bg);border-color:#7f2d36;color:var(--red)}
.danger:hover{border-color:var(--red)}
.meter{font:500 12px var(--mono);color:var(--text);padding:14px 0;border-bottom:1px solid var(--line);line-height:1.6}
.export-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:16px}
.export-actions button{font-size:12px;padding:8px 12px}
.public-credit{font-size:11px;margin-top:30px}
#print-transcript{display:none}
@media print{body>*{display:none!important}body{background:#fff}body>#print-transcript{display:block!important;color:#000;background:#fff;padding:0;font:11pt/1.5 Georgia,serif}#print-transcript h1{font-size:25pt;color:#000}#print-transcript h2{font-size:13pt;margin-top:22pt;break-after:avoid;color:#000}#print-transcript p{color:#000;white-space:pre-wrap;overflow-wrap:anywhere}#print-transcript h1,#print-transcript h2{letter-spacing:normal}@page{margin:20mm}}
.nav-help{margin:2px 14px 0;font:500 10px var(--mono);color:var(--muted)}
.no-models{display:flex;gap:16px;align-items:center;justify-content:space-between;margin:20px 0;padding:16px 20px;border:1px solid #5c4413;border-left:3px solid var(--amber);background:var(--amber-soft)}
.no-models p{margin:4px 0 0;font-size:13px;color:#e9dcc0}
.primary-link{white-space:nowrap;text-decoration:none;font-weight:750;font-size:13px;text-transform:uppercase;letter-spacing:.5px;background:var(--amber);color:var(--amber-ink);padding:12px 16px;min-height:44px;display:inline-flex;align-items:center;clip-path:polygon(var(--cut-s) 0,100% 0,100% 100%,0 100%,0 var(--cut-s))}
.primary-link:focus-visible{outline:2px solid var(--amber-ink);outline-offset:-5px}
.saved-title{font-size:16px;margin:0 0 12px;display:flex;gap:8px;align-items:center}
.saved-title .count{margin-left:0}
#saved-rooms .current-room{border-color:var(--amber);background:var(--raise);color:var(--amber-text)}
#saved-empty{margin:8px 0 0}
.save-status{min-height:1.2em;margin:6px 0 0;font-size:13px;color:var(--green)}
.continue-box{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:12px 0;padding:12px 14px;border:1px solid var(--line-strong);background:var(--panel);font-size:14px}
.continue-box label{margin:0}
.continue-box input{width:84px}
.continue-box button{padding:8px 14px}
@media(max-width:700px){header{height:auto;min-height:55px;flex-wrap:wrap;gap:6px 12px;padding:10px 16px}.local-badge{white-space:nowrap}.no-models{flex-direction:column;align-items:flex-start}}
.vm-panel{margin:6px 0 4px}
.vm-panel summary{font-weight:700;font-size:15px;padding:8px 0;min-height:44px}
.vm-panel summary span{font-weight:400;margin-left:6px;font-family:var(--mono);font-size:11px}
.vm-panel input[type=file]{font-size:13px;padding:8px 0;border:0;background:none}
.vm-status{font-size:13px;line-height:1.5;margin:10px 0}
.vm-badge{margin:12px 0 0;padding:12px 14px;border:1px solid #5c4413;border-left:3px solid var(--amber);background:var(--amber-soft);color:var(--amber-text);font-size:13px;font-weight:650}
.vm-badge.vm-missing{background:var(--red-bg);color:var(--red);border-color:#7f2d36;border-left-color:var(--red)}
.vm-proposals{margin:16px 0;padding:16px 18px;border:1px dashed #8a6414;background:#17130a}
.vm-head{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;justify-content:space-between}
.vm-head h3{margin:0;font-size:15px;color:var(--amber-text)}
.vm-head .subtle{color:#e9dcc0}
.vm-card{border:1px solid var(--line);background:var(--bg);padding:12px 14px;margin:10px 0}
.vm-card-head{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline;font-size:12px}
.vm-card-head strong{font:600 11px var(--mono);letter-spacing:.6px;text-transform:uppercase;color:var(--amber-text)}
.vm-card-head small{color:var(--muted)}
.vm-approved .vm-card-head strong{color:var(--blue)}
.vm-signed .vm-card-head strong{color:var(--green)}
.vm-rejected,.vm-unsupported,.vm-self-quoted{opacity:.8}
.vm-self-quoted .vm-card-head strong{color:var(--red)}
.vm-card p{margin:8px 0;font-size:14px;color:var(--text)}
.vm-card textarea{width:100%;margin:8px 0;font-size:14px}
.vm-card blockquote{margin:4px 0 8px;padding-left:10px;border-left:3px solid var(--line-strong);font-size:13px;color:var(--muted);overflow-wrap:anywhere}
.vm-card .actions button{padding:8px 14px;font-size:12px}
.agents-panel{margin:32px 0 40px}
.agents-toggle{display:flex;align-items:center;gap:12px;width:100%;min-height:52px;padding:12px 18px;background:var(--surface);border:1px solid var(--line-strong);border-left:3px solid var(--amber);color:var(--text);font-size:15px;font-weight:700;text-align:left;text-transform:none;letter-spacing:0;cursor:pointer}
.agents-toggle:hover{background:var(--raise);border-color:var(--line-strong);border-left-color:var(--amber-text)}
.agents-toggle:before{content:'';flex:none;width:8px;height:8px;border-right:2px solid var(--amber-text);border-bottom:2px solid var(--amber-text);transform:rotate(-45deg);transition:transform .15s;margin:0 4px}
.agents-toggle[aria-expanded=true]:before{transform:rotate(45deg)}
.agents-toggle .count{margin-left:auto}
.agents-subline{margin:14px 0 4px;font-size:13px;color:var(--text)}
#agents-content>.section-heading{margin-top:12px}
.agents-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}
.agents-body>div{padding:20px;min-width:0}
.agents-body h3{margin:0 0 6px;font-size:16px}
.agents-body pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:11px;margin:6px 0 8px}
.agents-body textarea{width:100%;font-family:var(--mono);font-size:12px;color:var(--blue)}
.agents-body form input{width:100%}
.agents-body form button{margin-top:12px}
#room-node{font-family:var(--mono)}
.byob-steps{margin:12px 0 8px;padding-left:20px;display:grid;gap:14px;font-size:14px;line-height:1.5}
.byob-steps li{min-width:0;overflow-wrap:anywhere}
.byob-steps ul{margin:6px 0;padding-left:18px;display:grid;gap:4px}
.byob-steps li[hidden]{display:none}
.byob-steps button{display:block;margin:8px 0}
.byob-steps code,.agents-body p code{font:12px var(--mono);background:var(--raise);padding:1px 5px}
#daemon-suggest{display:block;margin-top:6px;color:var(--text)}
.byob-guides{font-size:13px;line-height:1.7;margin:14px 0 0}
.agent-row{display:flex;align-items:center;gap:8px;border-bottom:1px solid var(--line);border-left:3px solid var(--blue);padding:10px 0 10px 12px;font-size:14px;overflow-wrap:anywhere}
.agent-row>div{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.agent-row small{color:var(--muted);font:500 11px var(--mono)}
.agent-row button{padding:8px 12px;font-size:12px}
#agent-status{font-size:13px;line-height:1.5}
.team-editor{border:0;padding:0;margin:0;min-width:0}
.team-editor .team-legend{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
/* A locked team editor dims its controls, but its labels and help stay readable (muted, at least 4.5:1): they explain, they aren't inactive controls. */
.team-editor:disabled{opacity:1}
.team-editor:disabled :is(label,legend,.subtle){color:var(--muted)}
.team-editor:disabled :is(input,select,textarea){opacity:.45}
.team-editor:disabled button{opacity:.45}
.team-editor:disabled *{cursor:not-allowed}
.team-lock{margin:14px 0 4px;padding:12px 14px;border:1px solid #5c4413;border-left:3px solid var(--amber);background:var(--amber-soft);font-size:13px}
.team-lock p{margin:0 0 4px;color:var(--text)}
.team-lock strong{color:var(--amber-text)}
.room-config .team-lock button{margin-top:8px}
.agent-grants{border:1px dashed #1f6f94;padding:8px 12px 10px;margin:10px 0;background:#0c1a26}
.agent-grants legend{font-size:13px;font-weight:700;padding:0 4px;color:var(--blue)}
.agent-grants p{font-size:12px;margin:8px 0 0}
.agent-badge{display:block;margin:6px 0 0;color:var(--blue)!important;font:600 11px var(--mono)}
.sent-note{font:500 11px/1.5 var(--mono);margin:4px 0 0;color:var(--muted)}
@media(max-width:1100px){.agents-body{grid-template-columns:minmax(0,1fr)}}
/* Rounded chat look (preview): message cards, text fields and saved-room pills. Buttons, panels and dialogs keep their cut corners. */
:root{--round:16px;--round-s:12px}
input:not([type=checkbox]):not([type=file]),textarea,select{border-radius:var(--round-s)}
#redirect{border-radius:var(--round)}
.message{border-radius:var(--round);border:1px solid var(--line);padding:16px 20px 18px 64px;margin:14px 0}
.message:before{width:32px;height:32px;border-radius:50%;clip-path:none}
.message:not([data-initial]){padding-left:20px}
.from-model{border-color:#f59e0b4d;border-bottom-left-radius:6px}
.from-agent{border-color:#38bdf84d;border-bottom-left-radius:6px}
.from-you{border-color:#34d3994d;border-bottom-right-radius:6px;background:#0f1d27;margin-left:min(10%,64px)}
.message.is-speaking{box-shadow:0 0 0 1px #f59e0b80}
.turn-failed{border-radius:var(--round-s);border-left-width:1px}
.message .markdown pre{border-radius:10px}
.saved-room>button{clip-path:none}
.saved-room>button:first-child{border-radius:999px 0 0 999px;padding-left:16px}
#saved-rooms .saved-delete{border-radius:0 999px 999px 0;padding:0 14px 0 12px}
@media(max-width:700px){.message{padding:14px 16px 16px 56px}.message:before{left:13px;top:14px}.from-you{margin-left:20px}}
/* Warm room (preview): candlelight behind the round table, a warm table surface, one colour per member (--tone, set on the seat and the message) and a gentle glow on whoever is speaking.
   Seats keep their cut corners, so the speaking glow sits on the seat behind the chip, where the chip's clip cannot hide it.
   Only opacity and transform animate, and reduced motion stops them; the global rule does not reach pseudo-elements, so they are stopped here. */
.round-table{position:relative;isolation:isolate}
.round-table:before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(circle at 50% 55%,#f59e0b30 0,#f59e0b12 38%,transparent 68%)}
.round-table:has(.table-live.live):before{animation:candle 5s ease-in-out infinite alternate}
@keyframes candle{from{opacity:.7}to{opacity:1}}
.table-ring:before{background:radial-gradient(circle at 50% 38%,#2c2213,#1b160f 72%);border-color:#5c4413;box-shadow:inset 0 0 0 7px #f59e0b0a,0 12px 32px #0007}
.table-ring:after{border-color:#f59e0b38}
.table-center{background:radial-gradient(circle at 50% 35%,#33281a,#211a0f);border-color:#7a5a1a;box-shadow:0 0 24px #f59e0b1f}
.seat-model,.seat-agent{--tone:var(--amber-text)}
.seat-agent{--tone:var(--blue)}
.seat-model .seat-chip,.seat-agent .seat-chip,.message.has-tone:before{border-color:var(--tone);color:var(--tone);background:color-mix(in srgb,var(--tone) 12%,var(--panel))}
.seat.speaking .seat-chip,.message.has-tone.is-speaking:before{background:var(--tone);border-color:var(--tone);color:#0b1020;filter:none;animation:none}
.seat.speaking:before{content:'';position:absolute;top:-6px;left:50%;width:56px;height:56px;margin-left:-28px;z-index:-1;border-radius:12px;pointer-events:none;box-shadow:0 0 20px 5px color-mix(in srgb,var(--tone) 55%,transparent);animation:seat-breathe 2.4s ease-in-out infinite alternate}
@keyframes seat-breathe{from{opacity:.45;transform:scale(.94)}to{opacity:1;transform:scale(1)}}
.seat.speaking b{color:var(--tone)}
.message.has-tone{border-color:color-mix(in srgb,var(--tone) 32%,transparent)}
.message.has-tone.is-speaking{border-color:var(--tone);box-shadow:0 0 0 1px color-mix(in srgb,var(--tone) 45%,transparent),0 0 28px -6px color-mix(in srgb,var(--tone) 45%,transparent)}
.message.has-tone.is-speaking>small:not(.agent-badge){color:var(--tone)}
.empty-room{padding:64px 16px 72px;margin:8px 0;border-radius:var(--round);background:radial-gradient(ellipse at 50% 28%,#f59e0b1c,transparent 62%)}
.empty-room>span{display:inline-grid;place-items:center;width:76px;height:76px;border-radius:50%;font-size:34px;background:radial-gradient(circle,#f59e0b33,#f59e0b0a 72%);box-shadow:0 0 44px #f59e0b2e}
.empty-room p{color:var(--text);line-height:1.6}
@media(max-width:700px){.empty-room{padding:44px 12px 52px}.empty-room h2{font-size:22px}}
@media(prefers-reduced-motion:reduce){.round-table:has(.table-live.live):before,.seat.speaking:before{animation:none}}
/* Jump to latest: shown over the bottom of the transcript only while the reader has scrolled up; its negative margin means showing it moves nothing. */
.jump-latest{position:relative;z-index:3;display:block;margin:-56px auto 12px;font-size:12px;background:var(--raise);border-color:var(--amber);color:var(--amber-text);box-shadow:0 6px 20px #0009}
.jump-latest:hover{background:#22304f}
/* Why Start is unavailable, with the way forward. */
.start-reason{display:flex;flex-wrap:wrap;align-items:center;gap:0 12px;margin:10px 0 0;font-size:13px;line-height:1.5;color:var(--muted)}
.link-button{min-height:44px;padding:0 2px;border:0;background:none;clip-path:none;color:var(--amber-text);font-size:13px;text-decoration:underline;text-underline-offset:3px}
.link-button:hover{background:none;color:#fcd34d}
.link-button:focus-visible{outline-offset:2px}
