:root{color-scheme:dark;font-family:Inter,system-ui,sans-serif;background:#0b1019;color:#e0e8f5}*{box-sizing:border-box}body{margin:0}header{height:70px;padding:0 28px;border-bottom:1px solid #263043;display:flex;align-items:center;justify-content:space-between;font-weight:600}.logo{color:#73d7bc;font-size:26px;margin-right:10px}.tag{font-size:10px;letter-spacing:2px;color:#7f94b1;margin-left:14px}#connection,.muted{color:#8f9db2;font-size:12px;line-height:1.7}main{display:grid;grid-template-columns:230px minmax(380px,1fr) 310px;min-height:calc(100vh - 70px)}[hidden]{display:none!important}aside,.voice-panel{padding:22px 18px;background:#101722}aside{border-right:1px solid #263043}.voice-panel{border-left:1px solid #263043;display:flex;flex-direction:column;gap:12px}.section-title{display:flex;justify-content:space-between;align-items:center;font-size:10px;letter-spacing:1.7px;color:#8493a9;font-weight:700;margin-bottom:10px}button{cursor:pointer;border:1px solid #33415a;background:#1a2638;color:#deebff;padding:10px 13px;border-radius:7px;font:inherit;font-size:12px}button:hover:not(:disabled){border-color:#76d6bc;background:#23354b}button:disabled{opacity:.4;cursor:default}input,textarea{background:#0b121e;border:1px solid #2c394e;color:#e0e8f5;padding:11px;border-radius:6px;font:inherit;font-size:12px;min-width:0;width:100%}input:focus,textarea:focus{outline:1px solid #73d7bc}label{display:block;font-size:11px;color:#9eb0c7;margin-top:12px;margin-bottom:6px}#create-form button{margin-top:12px;width:100%}#create-form{margin-top:24px;padding-top:10px;border-top:1px solid #263043}.session{display:block;width:100%;text-align:left;margin:7px 0;padding:13px}.session.selected{border-color:#73d7bc;background:#1a3434}.session strong{display:block}.session small{display:block;margin-top:5px;color:#8c9eb8}#refresh{padding:2px 8px;font-size:18px}code{font-family:monospace;color:#b7d4ff}.terminal-panel{display:flex;flex-direction:column;min-width:0;height:calc(100vh - 70px);padding:0 16px;background:#090e16}.terminal-header{min-height:68px;display:flex;gap:12px;align-items:center;justify-content:space-between}.terminal-header small{display:block;color:#8094af;font-size:10px;margin-top:5px}#terminal{flex:1;min-height:200px;overflow:hidden;padding:4px}#empty{color:#9cacbf;line-height:2;padding:60px 20px}#empty span{font-size:12px}#send-form{display:flex;gap:8px;padding:14px 0}#send-form input{flex:1}.voice-center{text-align:center;padding:12px 0 6px}.voice-center button{margin:5px}#orb{font-size:68px;line-height:1.2;color:#56847d;filter:drop-shadow(0 0 14px #58a88c30);margin-bottom:10px}body.live #orb{color:#83e8c6;filter:drop-shadow(0 0 24px #58a88c88)}h2{font-size:17px;margin:10px 0}#voice-target{font-size:12px;color:#98abc2}#start-voice{background:#79dcc0;color:#08281f;border-color:#79dcc0;font-weight:700}#transcript{min-height:160px;max-height:40vh;overflow:auto;flex:1;font-size:12px;line-height:1.6}.entry{padding:11px 0;border-bottom:1px solid #243044;white-space:pre-wrap;overflow-wrap:anywhere}.entry b{display:block;color:#81d8c2;font-size:10px;text-transform:uppercase;letter-spacing:1px;margin-bottom:5px}details{font-size:11px;color:#95a9c3;border-top:1px solid #263043;padding-top:12px}details textarea{height:75px;margin:10px 0}#error{background:#422522;color:#ffd1bc;padding:12px 28px;white-space:pre-wrap;font-size:13px}#login{padding:60px;max-width:700px;line-height:1.8}@media(max-width:1050px){main{grid-template-columns:180px minmax(300px,1fr)}.voice-panel{grid-column:1/-1;border-top:1px solid #263043}.terminal-panel{height:65vh}header{padding:0 16px}.tag{display:none}}@media(max-width:600px){main{display:flex;flex-direction:column}aside{border-bottom:1px solid #263043}.terminal-panel{height:60vh}.session{display:inline-block;width:auto;margin-right:5px}#create-form{margin-top:10px}header{font-size:14px}#connection{font-size:10px}}

.external-info{padding:40px 24px;max-width:650px;color:#a9b9cd;line-height:1.7}.external-info h2{color:#e0e8f5}.external-info p{overflow-wrap:anywhere}
.terminal-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.danger{border-color:#784944;color:#f0b1a9}.danger:hover:not(:disabled){border-color:#e18d80;background:#412825}

.terminal-note{margin:0 0 8px;padding:10px 12px;border:1px solid #465238;border-radius:6px;background:#242a20;color:#c7d5b5;font-size:12px;line-height:1.5}

.external-info pre{white-space:pre-wrap;overflow-wrap:anywhere;background:#111b2a;padding:12px;border-radius:6px;font-size:12px}#other-windows{margin-top:14px}#other-windows summary{cursor:pointer;padding:5px 0}#terminal:has(.external-info){overflow:auto}
.clipboard-help{margin:8px 0 0;color:#8f9db2;font-size:11px;line-height:1.6}
.clipboard-tools{display:flex;gap:8px;margin-top:8px}.clipboard-tools button{padding:5px 10px}#terminal-text-dialog{width:min(900px,92vw);border:1px solid #33415a;border-radius:10px;background:#101722;color:#e0e8f5}#terminal-text-dialog::backdrop{background:#0009}#terminal-text{height:60vh;margin:8px 0 16px;font-family:Consolas,monospace;white-space:pre;overflow:auto}

/* Separate the user's view (blue) from Megan's terminal target (purple). */
.terminal-legend,.session-badges,.terminal-roles{display:flex;gap:6px;flex-wrap:wrap}
.terminal-legend{margin:12px 0}
.terminal-roles{padding-bottom:8px}
.session-badges{margin-top:8px}
.session-badges:not(:has(.role-badge:not([hidden]))){display:none}
.role-badge{display:inline-flex;align-items:center;gap:5px;padding:3px 7px;border-radius:5px;font-size:11px;font-weight:600;line-height:1.4}
.role-badge:before{content:'';width:6px;height:6px;flex-shrink:0;border-radius:50%;background:currentColor}
.user-badge{color:#8fcaff;background:#183653}
.assistant-badge{color:#d0adff;background:#35264d}
.session.selected{border-color:#77baff;background:#142b43;box-shadow:inset 3px 0 #77baff}
.session.assistant-target{border-right-color:#c39aff;box-shadow:inset -4px 0 #c39aff;background:#221b32}
.session.selected.assistant-target{background:linear-gradient(110deg,#142b43 30%,#221b32);box-shadow:inset 3px 0 #77baff,inset -4px 0 #c39aff}
.session:focus-visible,#show-assistant:focus-visible{outline:2px solid #e3d5ff;outline-offset:3px}
#voice-target{color:#d0adff;line-height:1.5;overflow-wrap:anywhere}
#show-assistant{border-color:#725394;color:#dcc2ff;background:#251d34}
#rename-terminal{padding:3px 9px;font-size:11px;margin-left:auto}
#rename-dialog{width:min(440px,calc(100% - 32px));padding:24px;background:#101722;color:#e0e8f5;border:1px solid #526583;border-radius:12px}
#rename-dialog::backdrop{background:#0009}
.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}
#rename-error{color:#ffd1bc;font-size:12px;white-space:pre-wrap}
.session strong,#terminal-name{overflow-wrap:anywhere}

/* Mobile uses one panel at a time; media and terminal objects stay mounted. */
.mobile-only{display:none}
.terminal-header>div:first-child{min-width:0}
#terminal-path{overflow-wrap:anywhere}
button,summary{touch-action:manipulation}
button:focus-visible,summary:focus-visible{outline:2px solid #8fcaff;outline-offset:2px}
@media(min-width:761px) and (max-width:1050px){
 main{grid-template-columns:210px minmax(0,1fr)}
 .terminal-header{align-items:flex-start;flex-direction:column;padding:12px 0}
 .terminal-actions{justify-content:flex-start}
}
@media(max-width:760px), (max-width:1050px) and (max-height:500px) and (pointer:coarse){
 html{height:100%;overflow:hidden}
 body{position:fixed;top:var(--app-top,0);left:0;right:0;height:100vh;height:var(--app-height,100dvh);display:flex;flex-direction:column;overflow:hidden}
 header{height:auto;min-height:44px;flex:none;gap:8px;padding:8px max(12px,env(safe-area-inset-right)) 8px max(12px,env(safe-area-inset-left));font-size:13px}
 header>div{white-space:nowrap}.logo{font-size:18px;margin-right:4px}.tag{display:none}
 #connection{font-size:10px;line-height:1.3;text-align:right;max-width:45%}
 #error{flex:none;max-height:20%;overflow:auto;padding:8px 12px;font-size:12px;overflow-wrap:anywhere}
 #login{overflow:auto;padding:24px}
 main{display:block;flex:1;min-height:0;overflow:hidden}
 main>aside,main>.terminal-panel,main>.voice-panel{display:none;height:100%;min-width:0;min-height:0;border:0}
 body[data-mobile-view="terminals"] #terminals-panel{display:block;overflow:auto;overscroll-behavior:contain}
 body[data-mobile-view="screen"] #screen-panel{display:flex}
 body[data-mobile-view="assistant"] #assistant-panel{display:flex;overflow:auto;overscroll-behavior:contain}
 aside,.voice-panel{padding:14px max(14px,env(safe-area-inset-right)) 16px max(14px,env(safe-area-inset-left))}
 button{min-height:44px;padding:10px 12px;font-size:13px}
 input,textarea{font-size:16px;min-height:44px}
 summary{min-height:44px;display:flex;align-items:center;font-size:13px}
 .session{display:block;width:100%;margin:8px 0;padding:12px;text-align:left}
 .session strong{font-size:14px}.session small{font-size:11px}
 #refresh{min-width:44px;min-height:44px}
 #create-form{margin-top:20px}#create-form input{font-size:16px}
 .terminal-panel{padding:0 max(10px,env(safe-area-inset-right)) 0 max(10px,env(safe-area-inset-left))}
 .terminal-header{position:relative;flex-direction:row;align-items:center;flex:none;min-height:56px;gap:8px;padding:6px 0}
 #terminal-name{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:14px;line-height:1.35}
 #terminal-path{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:60vw;font-size:10px}
 #terminal-menu-toggle{display:block;flex:none}
 .terminal-actions{display:none;position:absolute;right:0;top:100%;z-index:5;width:min(290px,90vw);padding:8px;background:#162132;border:1px solid #526583;border-radius:10px;box-shadow:0 12px 30px #0008}
 .terminal-actions.actions-open{display:grid;grid-template-columns:1fr}
 .terminal-actions button{text-align:left;width:100%}
 .terminal-roles{flex:none;align-items:center;padding:0 0 4px;gap:4px}
 #rename-terminal{min-height:44px;font-size:12px;padding:8px}
 #terminal{min-height:0;padding:0;flex:1}
 #empty,.external-info{padding:20px 10px;font-size:13px;line-height:1.6}
 .terminal-note{flex:none;max-height:64px;overflow:auto;padding:6px 8px;font-size:11px;margin-bottom:4px}
 #send-form{flex:none;padding:8px 0;gap:6px}#send{font-size:12px;padding:8px}
 #message{width:0}#message::placeholder{font-size:13px}
 .voice-panel{gap:10px}.voice-center{padding:0}.voice-center #orb{font-size:36px;margin:0}
 .voice-center button{display:none}.voice-center h2{margin:4px 0}
 #voice-target{margin:6px 0}#transcript{min-height:160px;max-height:none;flex:1 0 180px;font-size:14px}
 #router-details{flex:none}#router-form textarea{height:100px}
 #mobile-controls{display:block;flex:none;background:#101722;border-top:1px solid #33415a;padding:6px max(10px,env(safe-area-inset-right)) env(safe-area-inset-bottom) max(10px,env(safe-area-inset-left))}
 .mobile-voice-info{display:flex;align-items:center;gap:8px;font-size:11px;min-width:0}
 #mobile-voice-state{flex:none;color:#97acbd;max-width:42%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
 body.live #mobile-voice-state{color:#83e8c6}
 #mobile-assistant-target{min-height:44px;min-width:0;flex:1;padding:5px 0;background:none;border:0;color:#d0adff;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}
 .mobile-voice-buttons{display:flex;gap:8px}.mobile-voice-buttons button{flex:1;min-width:0}
 #mobile-start{background:#79dcc0;color:#08281f;border-color:#79dcc0;font-weight:700}
 #mobile-stop{border-color:#784944;color:#f0b1a9}#mobile-mute[aria-pressed="true"]{background:#463c23;color:#ffe4a0}
 #mobile-controls nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding:5px 0}
 #mobile-controls nav button{background:transparent;border-color:transparent;color:#98abc2;font-size:12px;padding:8px 4px}
 #mobile-controls nav button[aria-current]{background:#1a2b40;border-color:#426286;color:#deebff}
 #rename-dialog,#terminal-text-dialog{max-height:calc(var(--app-height,100dvh) - 24px);overflow:auto;padding:18px;margin:auto;width:calc(100% - 24px)}
 #rename-dialog[open],#terminal-text-dialog[open]{top:var(--dialog-center,50%);bottom:auto;margin:0 auto;transform:translateY(-50%)}
 #rename-dialog h2{font-size:18px;margin-top:0}#rename-label{font-size:16px}
 #terminal-text{height:45vh;font-size:16px}
}
@media(max-width:760px), (max-width:1050px) and (max-height:500px) and (pointer:coarse){
 body.compact-height header{min-height:34px;padding-top:4px;padding-bottom:4px}
 body.compact-height .mobile-voice-info{display:none}
 body.compact-height #mobile-controls{padding-top:4px}body.compact-height #mobile-controls nav{padding:2px 0}
 body.compact-height .terminal-header{min-height:44px;padding:0}body.compact-height #terminal-path{display:none}
 body.compact-height .terminal-roles{padding:0}body.compact-height .terminal-roles .role-badge{font-size:10px}
 body.compact-height #send-form{padding:4px 0}
}
