:root{--bg:#f5fbff;--navy:#12223b;--indigo:#171770;--orange:#ee6c4d;--orange-soft:#fdeee9;--text:#12223b;--muted:#667282;--card:#fff;--line:#dbe7f3;--ok:#1f9d6a;--radius:16px;--shadow:0 6px 24px rgba(18,34,59,.06)}*{box-sizing:border-box;margin:0;padding:0}body,html{height:100%;background:var(--bg);color:var(--text);font-family:Poppins,system-ui,-apple-system,Segoe UI,sans-serif;font-size:14px;-webkit-font-smoothing:antialiased}a{cursor:pointer}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-thumb{background:var(--line);border-radius:8px}::-webkit-scrollbar-track{background:transparent}.app{min-height:100dvh;display:grid;grid-template-rows:auto 1fr auto;grid-gap:16px;gap:16px;padding:0 20px max(16px,env(safe-area-inset-bottom))}.app.work{grid-template-rows:auto auto 1fr auto}header{display:grid;grid-template-columns:1fr auto 1fr;grid-gap:16px;gap:16px;margin:0 -20px;padding:12px 24px;background:var(--navy);color:#fff}.brand,header{align-items:center}.brand{display:flex;gap:14px}.brand img{height:30px;width:auto;display:block}.brand small{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:hsla(0,0%,100%,.6);border-left:1px solid hsla(0,0%,100%,.25);padding-left:14px}nav{display:flex;gap:4px;background:hsla(0,0%,100%,.08);padding:4px}nav,nav a{border-radius:999px}nav a{padding:7px 18px;font-size:12.5px;font-weight:500;color:hsla(0,0%,100%,.7)}nav a.on{color:#fff;background:var(--orange)}.readout{display:flex;justify-content:flex-end;align-items:center;gap:10px;font-size:11.5px;color:hsla(0,0%,100%,.65)}.readout a,.readout span{padding:5px 11px;border-radius:999px;background:hsla(0,0%,100%,.08)}.readout .ok{color:#fff;background:rgba(31,157,106,.35)}.readout .warn{color:#fff;background:rgba(238,108,77,.35)}main{display:grid;grid-template-columns:1fr minmax(300px,420px) 1fr;grid-gap:16px;gap:16px;min-height:0}.panel{position:relative;border:1px solid var(--line);background:var(--card);border-radius:var(--radius);padding:18px 20px;overflow:hidden auto;max-height:calc(100dvh - 170px);box-shadow:var(--shadow);scrollbar-width:thin;scrollbar-color:var(--line) transparent}.panel h2{display:flex;align-items:center;gap:8px;font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--orange);font-weight:600;margin-bottom:14px}.panel p{margin-bottom:10px;line-height:1.6;white-space:pre-wrap;word-break:break-word}.panel p.user{color:var(--muted)}.panel p.user:before{content:"Jij: ";color:var(--navy);font-weight:600}.panel p.assistant{background:var(--bg);border-left:3px solid var(--orange);border-radius:0 10px 10px 0;padding:10px 14px}.panel .muted{color:var(--muted);font-style:italic}.log p{color:var(--muted);font-size:12px;font-family:ui-monospace,Menlo,Consolas,monospace}.log p:before{content:"› ";color:var(--orange)}.stage{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;background:linear-gradient(160deg,var(--indigo),var(--navy) 70%);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px;color:#fff;max-height:calc(100dvh - 170px)}.status{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:hsla(0,0%,100%,.75);min-height:1em}.status.warn{color:#ffb59f;letter-spacing:0;text-transform:none}.core3d{width:360px;height:360px;cursor:pointer;-webkit-tap-highlight-color:transparent;-webkit-mask-image:radial-gradient(circle,#000 55%,transparent 71%);mask-image:radial-gradient(circle,#000 55%,transparent 71%)}.core3d canvas{width:100%!important;height:100%!important;display:block}.core3d.small{width:72px;height:72px}@media (max-width:900px){.core3d{width:240px;height:240px}}.left{display:flex;flex-direction:column;gap:16px;min-height:0;max-height:calc(100dvh - 170px)}.left .panel.log{flex:1 1}.left.with-term .panel.log{flex:0 0 auto;max-height:26%}.left .term.compact{flex:1 1;min-height:0;display:flex;flex-direction:column;padding:12px 14px;background:var(--navy);border-color:var(--navy)}.panel h2 .toggle{margin-left:auto;color:var(--muted);font-weight:500}.panel h2 .toggle:hover{color:var(--orange)}.tabs{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:10px}.tabs .row{padding:4px 10px;font-size:12px;color:hsla(0,0%,100%,.8);border-radius:999px}.tabs .row.active{background:var(--orange);color:#fff}.tabs select{background:hsla(0,0%,100%,.1);border:1px solid hsla(0,0%,100%,.2);color:#fff;font:inherit;font-size:12px;padding:4px 8px;border-radius:999px;outline:none}@media (max-width:900px){.left{max-height:none}.left .panel.log{display:block}.left.with-term .panel.log{max-height:120px}.left .term.compact{min-height:45vh}}.talkbar{display:flex;align-items:center;gap:16px;padding:10px 16px;background:linear-gradient(160deg,var(--indigo),var(--navy));border-radius:var(--radius);color:#fff}.talkbar .status{text-align:left}.talkbar .last{flex:1 1;font-size:13px;color:hsla(0,0%,100%,.85);border-left:2px solid var(--orange);padding-left:12px;max-height:3.2em;overflow:hidden}.workshop{display:grid;grid-template-columns:260px 1fr;grid-gap:16px;gap:16px;min-height:0}.workshop .term{display:flex;flex-direction:column;padding:12px 14px;background:var(--navy);border-color:var(--navy)}.workshop .term h2{margin-bottom:10px;color:hsla(0,0%,100%,.6)}.xterm-host{flex:1 1;min-height:0}.xterm-host .xterm{height:100%}.row{display:flex;align-items:center;gap:8px;padding:9px 12px;border-radius:10px;cursor:pointer;color:var(--text)}.row:hover{background:var(--bg)}.row.active{background:var(--orange-soft);color:var(--orange);font-weight:500}.row.exited{opacity:.45}.row span{flex:1 1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row b,.row small{color:var(--muted)}.row b{font-weight:400;padding:0 4px}.row b:hover{color:var(--orange)}.dot{width:8px;height:8px;border-radius:50%;background:var(--orange);display:inline-block}.dot.on{background:var(--ok)}footer form{display:flex;gap:10px}input{flex:1 1;background:var(--card);border:1px solid var(--line);color:var(--text);font:inherit;padding:13px 18px;border-radius:999px;outline:none;box-shadow:var(--shadow)}input::placeholder{color:var(--muted)}input:focus{border-color:var(--orange)}button{background:var(--orange);border:none;color:#fff;font:inherit;font-weight:500;padding:13px 24px;border-radius:999px;cursor:pointer}button:hover{background:#e2593a}button:disabled{opacity:.6;cursor:default}@media (max-width:900px){header{grid-template-columns:1fr;gap:10px}.brand small,.readout span:first-child{display:none}.readout{justify-content:flex-start}main{grid-template-columns:1fr}.panel,.stage{max-height:40vh}.workshop{grid-template-columns:1fr;grid-template-rows:auto 1fr}.workshop aside{max-height:26vh}.workshop .term{min-height:50vh}}.app.login{display:grid;place-items:center;padding:20px}.app.login form{display:grid;grid-gap:12px;gap:12px;width:min(380px,100%);padding:32px;text-align:center}.app.login form img{height:40px;width:auto;justify-self:center;margin-bottom:6px}.app.login form p.intro{color:var(--muted);font-size:13px;margin-bottom:8px}.app.login input{box-shadow:none;text-align:left}.app.login .status.warn{color:var(--orange);font-size:12.5px}