/* One viewport, one open workspace. Conversation and tasks never stack. */
html,body{height:100%;overflow:hidden}
#app{height:100dvh;min-height:0;display:flex;flex-direction:column;overflow:hidden}
.masthead{height:64px;flex:none;padding:16px 28px}
main{flex:1;min-height:0;height:0;grid-template-columns:minmax(0,1fr) minmax(500px,58%);padding:20px 28px 16px;gap:28px}
.presence{min-height:0}
.avatar-caption{bottom:20px;left:0}
.workspace{min-width:0;min-height:0;display:flex;flex-direction:column;gap:16px;position:relative;z-index:3}
.chat-panel{flex:1;height:auto;min-height:0;max-height:none;width:100%;overflow:hidden;transition:opacity .18s,transform .18s,visibility .18s}
.chat-panel[data-open=false]{opacity:0;visibility:hidden;transform:translateX(28px) scale(.985);pointer-events:none}
.panel-bar{padding:12px 16px;min-height:49px;flex:none}
.panel-identity,.panel-actions{display:flex;align-items:center;gap:14px}
.panel-identity .chat-face{background:#050505;box-shadow:none;width:25px;height:21px}
.panel-identity .chat-face i{background:var(--cyan)}
.panel-actions>span{font-size:9px}
#close-panel{font-size:24px;line-height:1;padding:0 3px}
.context-bar{padding:10px 18px;min-height:39px;flex:none}
.context-bar>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#refresh{font-size:20px;line-height:1}
.setup-map{grid-template-columns:repeat(3,1fr);flex:none}
.setup-map button{padding:11px 6px}
.chat-scroll,.task-scroll,.settings-view{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#527075 #111;padding:26px 28px}
.task-scroll{padding:22px 28px}
.settings-view h3{font-size:26px;letter-spacing:-.04em;margin:14px 0 26px}
.settings-row{display:flex;width:100%;align-items:center;justify-content:space-between;padding:18px 0;font-size:13px;color:var(--paper);border-bottom:1px solid var(--line);text-align:left}
.settings-row:hover{color:var(--cyan)}
.settings-row span:last-child{color:var(--cyan)}
.welcome{max-width:52ch;margin:auto 0}
.welcome h3{font-size:clamp(28px,3vw,42px);margin:20px 0 16px}
.welcome p{font-size:14px;line-height:1.8;margin-bottom:24px}
.welcome .primary{max-width:460px}
.suggested-questions{display:grid;gap:10px;margin-top:34px}
.suggested-questions>span{font-size:10px;color:var(--muted)}
.suggested-questions button{text-align:left;font-size:12px;line-height:1.6;padding:8px 0;color:var(--cyan);text-decoration:underline;text-underline-offset:4px}
.card{border:0;box-shadow:none;margin:0;padding:0}
.card h3{font-size:clamp(22px,2vw,29px);line-height:1.25;margin:14px 0}
.card p,.card li{font-size:12px;line-height:1.7}
.card .primary{margin-top:16px}
.setup-steps{margin:0 0 22px}
.setup-spec{margin:16px 0}
.setup-outcome{margin:18px 0;padding:12px 15px}
.credential-fields{display:grid;grid-template-columns:1fr 1.7fr;gap:14px}.credential-fields>div{min-width:0}.credential-fields input{min-width:0}.card .consent{font-size:11px}.card form+small{margin-top:14px}.task-scroll .setup-notice{padding:10px 12px}.setup-help{margin-top:8px;padding:7px 0}
.query-sections ul{columns:2}
.message:first-child{margin-top:0;padding-top:0;border-top:0}
.message{padding:19px 0}
.message .body{font-size:14px;line-height:1.8}
.chat-bottom{flex:none;padding:14px 20px 12px}
.chat-foot{font-size:8px;margin-top:9px}
textarea{resize:none;min-height:45px;max-height:80px;font-size:13px}
.next-action{display:flex;gap:10px;align-items:center;justify-content:space-between;padding:11px 20px;border-top:1px solid var(--line);flex:none}
.task-actions{flex:none;padding:14px 22px 18px;border-top:1px solid var(--line);background:#0a0e0e}.task-actions .primary{margin:0}.task-scroll .card>small{margin-top:12px}
.next-action button{font-size:11px;color:var(--cyan);text-align:left;line-height:1.5}
#resume-task{color:var(--muted)}
.panel-dock{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;flex:none}
.panel-dock button{display:flex;gap:10px;align-items:center;justify-content:center;padding:15px 10px;background:#0b1212;border:1px solid var(--line);box-shadow:3px 3px 0 #223a3a;font-size:12px}
.panel-dock button>span{font-size:16px;color:var(--cyan)}
.panel-dock button[aria-expanded=true]{background:var(--paper);color:var(--black);border-color:var(--paper);box-shadow:3px 3px 0 var(--pink);font-weight:700}
.panel-dock button[aria-expanded=true]>span{color:var(--black)}
footer{flex:none;min-height:30px;padding:7px 28px;font-size:8px}
footer select{font-size:9px;padding:4px}
#demo-controls{margin:0}
.feed-observations{margin:14px 0}.feed-row{padding:12px}
.rail-links{margin:18px 0}.rail-links>a{display:flex;justify-content:space-between;align-items:center;gap:18px;border-bottom:1px solid var(--line);padding:13px 0;color:var(--paper)}.rail-links strong{font-size:13px;font-weight:500}.rail-links small{font-size:10px}.rail-links>a>span:last-child{color:var(--cyan);font-size:10px;text-align:right;flex:none;max-width:35%}
@media(min-width:1500px){main{grid-template-columns:minmax(0,1fr) minmax(620px,52%);padding:24px 36px 18px}}
@media(max-width:1000px){main{grid-template-columns:minmax(160px,.65fr) minmax(430px,1.35fr);padding:16px;gap:16px}.masthead{padding:16px}.avatar-caption h1{font-size:30px}.chat-scroll,.task-scroll,.settings-view{padding:22px}.panel-dock button{font-size:11px;padding:13px 6px;gap:6px}.chat-foot>span:first-child{font-size:7px}}
@media(max-width:740px){
 .masthead{height:54px;padding:12px 16px}.masthead img{width:115px}.masthead nav{font-size:10px}
 main{display:block;padding:12px 12px 10px;height:0;min-height:0}
 #world{position:fixed;inset:54px 0 0;height:auto}
 .presence{position:absolute;inset:0 12px;height:auto;min-height:0}
 .avatar-caption{bottom:85px;left:8px}.avatar-caption h1{max-width:65%}
 .workspace{height:100%;gap:12px}.chat-panel{height:auto;min-height:0;background:#080b0bf5}
 .chat-scroll,.task-scroll,.settings-view{min-height:0;padding:20px}
 .panel-bar{padding:11px 14px}.context-bar{flex-wrap:nowrap;font-size:9px;padding:8px 14px}.context-bar>span{flex-basis:auto}
 .panel-dock{gap:7px}.panel-dock button{font-size:10px;gap:5px;padding:13px 5px}.panel-dock button>span{font-size:14px}
 .chat-bottom{padding:12px 15px}.chat-foot>span:first-child{display:none}.chat-foot{justify-content:flex-end}
 .welcome h3{font-size:30px}.welcome p{font-size:13px}.suggested-questions{margin-top:24px}
 footer{padding:6px 14px;min-height:27px;display:flex;flex-wrap:wrap}#demo-controls{margin:0}#demo-controls select{max-width:155px}
 .query-sections ul{columns:1}.message .body{font-size:13px}
}
@media(max-height:780px){.masthead{height:54px}main{padding-top:12px;padding-bottom:12px}.chat-scroll,.task-scroll,.settings-view{padding-top:18px;padding-bottom:18px}.panel-dock button{padding-top:11px;padding-bottom:11px}.chat-bottom{padding-top:10px;padding-bottom:9px}.suggested-questions{margin-top:22px}.welcome h3{margin-top:15px}.avatar-caption{bottom:0}}
.settings-back{display:block;font-size:11px;color:var(--cyan);margin-bottom:14px}.settings-section{display:grid;gap:14px}.settings-section .eyebrow{margin-top:8px}.settings-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}.settings-list li{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 0;border-bottom:1px solid var(--line);font-size:12px}.settings-list strong{display:block;font-size:13px}.settings-list small{display:block;margin-top:4px;color:var(--muted);font-size:10px}.settings-list a{font-size:11px}.settings-form label{font-size:10px;letter-spacing:.08em;display:block;margin-bottom:8px}.settings-form>div{display:flex;gap:10px}.settings-form input{flex:1;min-width:0;background:#0c1212;color:var(--paper);border:1px solid var(--line);padding:12px;font-size:12px;border-radius:0}.settings-form .primary{width:auto;margin:0}.settings-section .secondary{width:100%;text-align:left}.danger{font-size:11px;color:#ff8fa3;border:1px solid #4a2530;padding:8px 10px}.settings-error{font-size:11px;color:var(--pink)}.key-fresh{border:1px solid var(--cyan);padding:14px;display:grid;gap:10px;box-shadow:4px 4px 0 var(--pink)}.key-fresh p{font-size:11px;margin:0;color:var(--cyan)}.key-fresh code{font-size:11px;overflow-wrap:anywhere;background:#0c1212;padding:10px}.settings-links{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.settings-links .secondary{text-align:center;margin:0}.legal-reader iframe{width:100%;height:420px;border:1px solid var(--line);background:#050505}
/* The Moon Pact: in-scene legal acceptance (pact.js). The seal keeps charging behind it. */
.pact{position:fixed;inset:0;z-index:40;display:grid;place-items:center;padding:24px 16px;background:radial-gradient(circle at 50% 30%,#21ddde1f,#050505e8 60%);overflow:auto}
.pact-card{width:min(640px,100%);max-height:calc(100svh - 48px);overflow:auto;background:#0b1316f7;border:1px solid var(--cyan);box-shadow:6px 6px 0 var(--pink);padding:26px 28px;display:grid;gap:16px;animation:pact-in .5s cubic-bezier(.2,.9,.3,1.2)}
@keyframes pact-in{from{transform:translateY(18px) scale(.97);opacity:0}}
.pact-head{display:flex;gap:16px;align-items:center}.pact-head .chat-face{width:72px;height:72px;flex:none}
.pact-kicker{font-size:9px;letter-spacing:.14em;color:var(--muted)}.pact-card h2,.pact-title{font-size:26px;color:var(--paper)}
.pact-lede{color:var(--paper)}
.pact-summary{margin:0;padding:0;list-style:none;display:grid;gap:10px;counter-reset:pact}
.pact-summary li{display:grid;gap:2px;padding:10px 12px 10px 40px;border:1px solid #2a3c40;position:relative;counter-increment:pact}
.pact-summary li::before{content:counter(pact);position:absolute;left:12px;top:10px;color:var(--pink);font-weight:700}
.pact-summary strong{color:var(--cyan);font-size:11px;letter-spacing:.08em;text-transform:uppercase}.pact-summary span{color:var(--muted)}
.pact-docs{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:11px;color:var(--muted)}
.pact-docs button,.pact-options button{border:1px solid var(--line);background:none;color:var(--paper);padding:6px 12px}
.pact-docs button:hover,.pact-options button:not(:disabled):hover{border-color:var(--cyan);color:var(--cyan)}
.pact-reader iframe{width:100%;height:320px;border:1px solid var(--line);background:#fff}
.pact-check{border-top:1px dashed #2a3c40;padding-top:14px;display:grid;gap:10px}
.pact-options{display:flex;flex-wrap:wrap;gap:8px}.pact-options button:disabled{cursor:default}
.pact-options button.picked[data-pact-answer="1"]{border-color:var(--cyan);color:#050505;background:var(--cyan);opacity:1}
.pact-options button.picked[data-pact-answer="0"]{border-color:var(--pink);color:var(--pink)}
.pact-feedback{min-height:1.4em;color:var(--muted)}
.pact-consents{border:0;margin:0;padding:0;display:grid;gap:10px;transition:opacity .3s}.pact-consents:disabled{opacity:.35}
.pact-consents label{display:flex;gap:10px;align-items:flex-start;cursor:pointer}.pact-consents input{accent-color:var(--pink);margin-top:4px;flex:none}
.pact-actions{display:flex;justify-content:space-between;align-items:center;gap:12px}.pact-actions a{color:var(--muted);font-size:11px;white-space:nowrap}.pact-actions .primary{min-width:200px}
.pact-error{color:var(--pink);min-height:0}.pact-error:empty{display:none}
.pact-card.sealed{border-color:var(--pink);animation:pact-seal 1.2s ease}
@keyframes pact-seal{40%{box-shadow:0 0 60px var(--cyan),6px 6px 0 var(--pink)}}
@media (max-width:520px){.pact-card{padding:20px 16px}.pact-head .chat-face{width:56px;height:56px}}
@media (prefers-reduced-motion:reduce){.pact-card,.pact-card.sealed{animation:none}}
/* Verified flex card (flexcard.js) */
#flex-slot{display:grid;gap:12px;margin:8px 0 14px}
.flex-preview{display:grid;gap:12px}.flex-lists{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
.flex-lists ul{margin:6px 0 0;padding-left:18px;color:var(--muted)}.flex-lists li{margin:2px 0}
.flex-consent{display:flex;gap:10px;align-items:flex-start;cursor:pointer}.flex-consent input{accent-color:var(--pink);margin-top:4px;flex:none}
.flex-card{margin:0;border:1px solid var(--cyan);box-shadow:4px 4px 0 var(--pink);background:#050505}.flex-card img{display:block;width:100%;height:auto}
.flex-link{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.flex-link code{flex:1;min-width:0;overflow-wrap:anywhere;font-size:11px;color:var(--cyan);border:1px solid #2a3c40;padding:6px 8px}
.flex-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
