:root{color-scheme:dark;--field: #05070f;--field-2: #0a1020;--glass: rgba(19, 30, 54, .68);--glass-2: rgba(11, 19, 36, .86);--rail: rgba(122, 173, 232, .18);--rail-strong: rgba(143, 203, 255, .42);--text: #e8effc;--text-dim: #a3b6d6;--text-faint: #7386a6;--signal: #4fd8ff;--signal-2: #8ef7e0;--signal-3: #7f9bff;--warn: #ffc46b;--alert: #ff7391;--ok: #5fe7ab;--ink: #04121a;--radius: 14px;--radius-sm: 9px;--tap: 44px;--shadow: 0 18px 44px rgba(2, 6, 18, .55);--glow: 0 0 24px rgba(79, 216, 255, .22);--font: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--mono: ui-monospace, "SF Mono", "Cascadia Mono", Menlo, Consolas, monospace}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0;min-height:100%}body{font-family:var(--font);color:var(--text);background:radial-gradient(120% 80% at 12% -10%,rgba(79,216,255,.14),transparent 60%),radial-gradient(90% 70% at 88% 0%,rgba(127,155,255,.12),transparent 55%),linear-gradient(180deg,var(--field-2),var(--field) 45%);background-attachment:fixed;min-height:100dvh;-webkit-text-size-adjust:100%}.app{min-height:100dvh;display:flex;flex-direction:column}.noscript{margin:3rem auto;max-width:34rem;padding:1.25rem;border:1px solid var(--rail);border-radius:var(--radius);color:var(--text)}.panel-surface{position:relative;background:linear-gradient(160deg,var(--glass),var(--glass-2));border:1px solid var(--rail);border-radius:var(--radius);box-shadow:var(--shadow);backdrop-filter:blur(14px) saturate(1.1)}.panel-surface:before,.panel-surface:after{content:"";position:absolute;width:14px;height:14px;border:1px solid var(--rail-strong);pointer-events:none}.panel-surface:before{top:-1px;left:-1px;border-right:0;border-bottom:0;border-top-left-radius:var(--radius)}.panel-surface:after{right:-1px;bottom:-1px;border-left:0;border-top:0;border-bottom-right-radius:var(--radius)}.eyebrow{font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;color:var(--text-faint);font-weight:600}.icon{flex:none;display:block}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:var(--tap);min-width:var(--tap);padding:0 .95rem;border-radius:var(--radius-sm);border:1px solid var(--rail);background:#121e37b3;color:var(--text);font:inherit;font-size:.9rem;font-weight:600;cursor:pointer;-webkit-tap-highlight-color:transparent}.btn--icon{padding:0}.btn--primary{background:linear-gradient(135deg,var(--signal-2),var(--signal));border-color:transparent;color:var(--ink);box-shadow:var(--glow)}.btn--danger{border-color:#ff739166;color:#ffd3dd}.btn--quiet{background:transparent;border-color:transparent;color:var(--text-dim)}.btn--wide{width:100%}.btn:hover:not(:disabled){border-color:var(--rail-strong)}.btn:disabled,.btn[aria-disabled=true]{opacity:.42;cursor:not-allowed}:where(button,a,input,textarea,select,[tabindex]):focus-visible{outline:2px solid var(--signal-2);outline-offset:2px;border-radius:var(--radius-sm)}.field{display:flex;flex-direction:column;gap:.35rem}.field__label{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--text-dim);font-weight:600}.field__hint{font-size:.78rem;color:var(--text-faint)}.field__error:empty{display:none}.field__error{margin:.35rem 0 0;font-size:.8rem;color:var(--alert)}.field-group{display:flex;flex-direction:column;gap:.15rem;margin-bottom:1rem}.input{min-height:var(--tap);width:100%;padding:.6rem .75rem;border-radius:var(--radius-sm);border:1px solid var(--rail);background:#060c18bf;color:var(--text);font:inherit;font-size:1rem}.input--area{min-height:6rem;resize:vertical;font-family:var(--font)}.input--code{font-family:var(--mono);font-size:1.5rem;letter-spacing:.4em;text-transform:uppercase}.input[aria-invalid=true]{border-color:var(--alert)}.switch{display:inline-flex;align-items:center;gap:.5rem;min-height:var(--tap);color:var(--text-dim);font-size:.9rem}.switch input{width:22px;height:22px;accent-color:var(--signal)}.switch-row{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1rem}.chips{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1rem}.chip{min-height:38px;padding:0 .75rem;border-radius:999px;border:1px solid var(--rail);background:#0a1222b3;color:var(--text-dim);font:inherit;font-size:.82rem;cursor:pointer}.chip.is-active{border-color:var(--signal);color:var(--ink);background:linear-gradient(135deg,var(--signal-2),var(--signal));font-weight:700}.tag{display:inline-flex;align-items:center;padding:.1rem .45rem;border-radius:999px;border:1px solid var(--rail);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim);white-space:nowrap}.tag--quiet{border-color:transparent;color:var(--text-faint)}.tag--focused{border-color:var(--signal);color:var(--signal)}.tag--minimized{border-color:var(--warn);color:var(--warn)}.tag--role-owner,.tag--role-administrator{border-color:var(--signal-3);color:var(--signal-3)}.tag--role-controller{border-color:var(--signal);color:var(--signal)}.tag--role-agent{border-color:var(--warn);color:var(--warn)}.pair{flex:1;display:grid;gap:1.25rem;align-content:center;justify-items:center;padding:1.5rem 1rem 3rem}.pair__card{width:min(30rem,100%);padding:1.75rem}.pair__title{margin:.35rem 0 .5rem;font-size:clamp(1.8rem,6vw,2.4rem);letter-spacing:.02em}.pair__lede{margin:0 0 1.5rem;color:var(--text-dim);line-height:1.55}.pair__form{display:grid;gap:1rem}.pair__error:empty{display:none}.pair__error{margin:0;padding:.6rem .75rem;border-radius:var(--radius-sm);border:1px solid rgba(255,115,145,.45);background:#ff73911a;color:#ffd3dd;font-size:.9rem}.pair .cast{width:min(30rem,100%)}.shell{flex:1;display:flex;flex-direction:column;min-height:100dvh}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:.75rem;padding:.6rem clamp(.75rem,3vw,1.5rem);padding-top:max(.6rem,env(safe-area-inset-top));background:linear-gradient(180deg,#070c18eb,#070c18b8);border-bottom:1px solid var(--rail);backdrop-filter:blur(12px)}.brand{display:flex;align-items:center;gap:.5rem}.brand__mark{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:linear-gradient(135deg,var(--signal-2),var(--signal-3));color:var(--ink);font-weight:800;font-size:.78rem;letter-spacing:.06em}.brand__name{font-weight:700;letter-spacing:.14em;text-transform:uppercase;font-size:.82rem}.topbar__room{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-dim);font-size:.88rem}.pill{display:inline-flex;align-items:center;gap:.45rem;padding:.3rem .7rem;border-radius:999px;border:1px solid var(--rail);background:#080e1cb3;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--text-dim)}.pill__dot{width:9px;height:9px;border-radius:50%;background:var(--text-faint)}.pill__dot[data-status=online]{background:var(--ok);box-shadow:0 0 10px var(--ok)}.pill__dot[data-status=connecting],.pill__dot[data-status=reconnecting]{background:var(--warn)}.pill__dot[data-status=offline],.pill__dot[data-status=expired],.pill__dot[data-status=closed]{background:var(--alert)}.banner{margin:0;padding:.7rem clamp(.75rem,3vw,1.5rem);background:#ffc46b1f;border-bottom:1px solid rgba(255,196,107,.35);color:#ffdfae;font-size:.86rem}.layout{flex:1;display:grid;grid-template-columns:1fr;gap:clamp(.75rem,2vw,1.25rem);padding:clamp(.75rem,2vw,1.25rem);padding-bottom:max(1.25rem,env(safe-area-inset-bottom));align-content:start}@media (min-width: 62rem){.layout{grid-template-columns:minmax(0,1fr) 24rem;align-items:start}.layout__stage{position:sticky;top:4.5rem}}.stage{padding:.75rem}.stage__bar{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:0 .25rem .6rem}.stage__readout{font-family:var(--mono);font-size:.72rem;color:var(--signal);letter-spacing:.06em}.stage__frame{position:relative;aspect-ratio:16 / 9;width:100%}.stage__surface{position:absolute;inset:0;overflow:hidden;border-radius:10px;border:1px solid var(--rail-strong);background:linear-gradient(180deg,#0b1426f2,#040810fa),repeating-linear-gradient(90deg,rgba(122,173,232,.07) 0 1px,transparent 1px 8.333%),repeating-linear-gradient(180deg,rgba(122,173,232,.07) 0 1px,transparent 1px 16.66%);touch-action:none}.stage__surface[data-theme=ember]{--signal: #ffab5e;--signal-2: #ffd9a0}.stage__surface[data-theme=aurora]{--signal: #9d7bff;--signal-2: #7ff0d0}.stage__empty{position:absolute;inset:auto 1rem 1rem;margin:0;text-align:center;color:var(--text-faint);font-size:.85rem}.stage--readonly .stage__surface{cursor:default}.gpanel{position:absolute;left:var(--x, 0%);top:var(--y, 0%);width:var(--w, 30%);height:var(--h, 30%);z-index:var(--z, 1);display:flex;flex-direction:column;overflow:visible;border-radius:8px;border:1px solid var(--rail);background:linear-gradient(160deg,#17243ff0,#09101ff0);box-shadow:0 10px 24px #02050e80;color:var(--text);touch-action:none;cursor:grab;user-select:none}.gpanel.is-selected{border-color:var(--signal);box-shadow:0 0 0 1px var(--signal),0 12px 30px #02050e99}.gpanel.is-focused{border-color:var(--signal-2);box-shadow:0 0 0 1px var(--signal-2),0 0 26px #8ef7e047}.gpanel.is-minimized{height:auto!important;opacity:.72}.gpanel.is-minimized .gpanel__body{display:none}.gpanel.is-dragging{cursor:grabbing;box-shadow:0 18px 40px #02050eb3}.gpanel__head{display:flex;align-items:center;justify-content:space-between;gap:.4rem;padding:.3rem .45rem;border-bottom:1px solid var(--rail);border-radius:7px 7px 0 0;background:#080e1c99}.gpanel__title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:clamp(.6rem,1.4vw,.78rem);font-weight:600}.gpanel__state{font-size:clamp(.5rem,1.1vw,.62rem);letter-spacing:.12em;text-transform:uppercase;color:var(--text-faint);white-space:nowrap}.gpanel__body{flex:1;min-height:0;overflow:hidden;padding:.4rem .5rem}.gpanel__handles[hidden]{display:none}.handle{position:absolute;width:var(--tap);height:var(--tap);display:grid;place-items:center;cursor:pointer;touch-action:none}.handle:after{content:"";width:12px;height:12px;border-radius:3px;border:1px solid var(--signal);background:#060c18e6}.handle--nw{top:0;left:0;transform:translate(-50%,-50%);cursor:nwse-resize}.handle--n{top:0;left:50%;transform:translate(-50%,-50%);cursor:ns-resize}.handle--ne{top:0;right:0;transform:translate(50%,-50%);cursor:nesw-resize}.handle--e{top:50%;right:0;transform:translate(50%,-50%);cursor:ew-resize}.handle--se{bottom:0;right:0;transform:translate(50%,50%);cursor:nwse-resize}.handle--s{bottom:0;left:50%;transform:translate(-50%,50%);cursor:ns-resize}.handle--sw{bottom:0;left:0;transform:translate(-50%,50%);cursor:nesw-resize}.handle--w{top:50%;left:0;transform:translate(-50%,-50%);cursor:ew-resize}.actionbar{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;margin-top:.75rem;padding:.5rem .6rem}.actionbar[hidden]{display:none}.actionbar__title{flex:1;min-width:6rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600;font-size:.9rem;color:var(--text-dim)}.preview{height:100%;display:flex;flex-direction:column;gap:.25rem;overflow:hidden;font-size:clamp(.58rem,1.5vw,.8rem);line-height:1.35}.preview__text{margin:0;overflow:hidden;color:var(--text)}.preview--alert .preview__text{color:#ffd3dd}.preview--success .preview__text{color:#c9ffe6}.preview__image{flex:1;min-height:0;width:100%;object-fit:cover;border-radius:5px;background:#040810cc}.preview__glyph{flex:1;display:grid;place-items:center;font-size:1.4rem;color:var(--signal)}.preview__caption,.preview__flags{color:var(--text-faint);font-size:.62em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.preview__eyebrow{font-size:.62em;letter-spacing:.18em;text-transform:uppercase;color:var(--text-faint)}.preview__title{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.preview__reading{display:flex;align-items:baseline;gap:.25rem}.preview__value{font-family:var(--mono);font-size:clamp(1rem,4.5vw,1.9rem);font-weight:700;letter-spacing:-.02em;color:var(--signal-2)}.preview__unit{font-family:var(--mono);color:var(--text-dim)}.preview__trend.trend--up{color:var(--ok)}.preview__trend.trend--down{color:var(--alert)}.preview__trend.trend--flat{color:var(--text-dim)}.sev--success .preview__value{color:var(--ok)}.sev--warning .preview__value{color:var(--warn)}.sev--critical .preview__value{color:var(--alert)}.preview--notification{border-left:3px solid var(--signal);padding-left:.4rem}.sev--warning.preview--notification{border-color:var(--warn)}.sev--critical.preview--notification{border-color:var(--alert)}.sev--success.preview--notification{border-color:var(--ok)}.preview--dashboard{display:grid;grid-template-columns:repeat(auto-fit,minmax(4.5rem,1fr));gap:.3rem;align-content:start}.metric{padding:.25rem .35rem;border-radius:5px;border:1px solid var(--rail);background:#060c188c;display:flex;flex-direction:column;min-width:0}.metric__label{font-size:.62em;letter-spacing:.1em;text-transform:uppercase;color:var(--text-faint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.metric__value{font-family:var(--mono);font-weight:700;color:var(--signal-2);display:flex;gap:.15rem;align-items:baseline}.metric__unit{font-size:.7em;color:var(--text-dim)}.metric.sev--warning .metric__value{color:var(--warn)}.metric.sev--critical .metric__value{color:var(--alert)}.metric.sev--success .metric__value{color:var(--ok)}.preview--timer.is-elapsed .preview__value{color:var(--warn)}.bar{height:5px;border-radius:999px;background:#7aade82e;overflow:hidden}.bar__fill{height:100%;width:var(--fill, 0%);border-radius:inherit;background:linear-gradient(90deg,var(--signal-2),var(--signal))}.build--failed .preview__eyebrow{color:var(--alert)}.build--passed .preview__eyebrow{color:var(--ok)}.build--running .preview__eyebrow{color:var(--signal)}.build--queued .preview__eyebrow,.build--cancelled .preview__eyebrow{color:var(--text-faint)}.rail{display:flex;flex-direction:column;gap:.75rem;min-width:0}.tabs{display:flex;gap:.25rem;padding:.25rem;border-radius:999px;border:1px solid var(--rail);background:#080e1ca6}.tab{flex:1;min-height:40px;border:0;border-radius:999px;background:transparent;color:var(--text-dim);font:inherit;font-size:.82rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;cursor:pointer}.tab.is-active{background:linear-gradient(135deg,#8ef7e0e6,#4fd8ffe6);color:var(--ink)}.rail__body{display:flex;flex-direction:column}.board{display:flex;flex-direction:column;gap:.65rem}.board[hidden]{display:none}.board__head{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.board__danger{margin-top:.5rem;padding-top:.75rem;border-top:1px dashed rgba(255,115,145,.3)}.panel-list,.crew-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem}.panel-list__empty{padding:1rem;text-align:center;color:var(--text-faint);border:1px dashed var(--rail);border-radius:var(--radius-sm);font-size:.85rem}.panel-row{display:flex;align-items:center;gap:.35rem;padding:.35rem;border-radius:var(--radius-sm);border:1px solid var(--rail);background:#0c142699}.panel-row.is-selected{border-color:var(--signal);box-shadow:inset 2px 0 0 var(--signal)}.panel-row__main{flex:1;min-width:0;min-height:var(--tap);display:flex;flex-direction:column;gap:.2rem;align-items:flex-start;padding:.25rem .4rem;border:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}.panel-row__title{font-weight:600;font-size:.92rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.panel-row__meta{display:flex;flex-wrap:wrap;gap:.25rem}.panel-row__actions{display:flex;gap:.15rem}.stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;margin-bottom:.5rem}.stat{padding:.5rem .6rem;border-radius:var(--radius-sm);border:1px solid var(--rail);background:#080e1c8c;display:flex;flex-direction:column;gap:.15rem;min-width:0}.stat__label{font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:var(--text-faint)}.stat__value{font-family:var(--mono);font-size:.85rem;overflow:hidden;text-overflow:ellipsis}.crew{display:flex;align-items:center;gap:.4rem;padding:.55rem .65rem;border-radius:var(--radius-sm);border:1px solid var(--rail);background:#0c14268c}.crew.is-self{border-color:var(--signal)}.crew__name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600;font-size:.92rem}.clearance{margin-top:.5rem;padding:.75rem;border-radius:var(--radius-sm);border:1px solid var(--rail);background:#080e1c80;display:flex;flex-direction:column;gap:.4rem}.clearance__role{margin:0;color:var(--text-dim);font-size:.88rem;line-height:1.5}.clearance__list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.3rem}.clearance__item{padding:.15rem .5rem;border-radius:999px;border:1px solid rgba(95,231,171,.35);color:#bdf5da;font-size:.72rem}.cast{padding:.85rem;display:flex;flex-direction:column;gap:.5rem}.cast__head{display:flex;align-items:center;gap:.5rem;color:var(--signal)}.cast__head .eyebrow{flex:1}.cast__state{font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--text-dim)}.cast__state--connected{color:var(--ok)}.cast__state--unconfigured,.cast__state--error{color:var(--warn)}.cast__message{margin:0;color:var(--text-dim);font-size:.85rem;line-height:1.5}.cast--warn{border-color:#ffc46b73}.cast__actions:empty{display:none}.cast__actions{display:flex;gap:.5rem;flex-wrap:wrap}.sheet{position:fixed;inset:0;z-index:60;display:flex;align-items:flex-end;justify-content:center;padding:0;background:#02050cb8;backdrop-filter:blur(6px)}.sheet[hidden]{display:none}.sheet__card{width:min(38rem,100%);max-height:92dvh;overflow-y:auto;padding:1rem 1rem calc(1rem + env(safe-area-inset-bottom));border-radius:var(--radius) var(--radius) 0 0}@media (min-width: 48rem){.sheet{align-items:center;padding:1.5rem}.sheet__card{border-radius:var(--radius)}}.sheet__head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.75rem}.sheet__title{margin:0;font-size:1.1rem;letter-spacing:.04em}.sheet__hint{margin:0 0 1rem;color:var(--text-faint);font-size:.85rem}.sheet__summary:empty{display:none}.sheet__summary{margin-bottom:.75rem}.sheet__error{margin:0 0 .35rem;padding:.5rem .65rem;border-radius:var(--radius-sm);border:1px solid rgba(255,115,145,.45);background:#ff73911a;color:#ffd3dd;font-size:.85rem}.sheet__actions{position:sticky;bottom:0;display:flex;gap:.5rem;justify-content:flex-end;padding-top:.75rem;background:linear-gradient(180deg,transparent,rgba(9,15,30,.95) 40%)}.metrics-editor{display:flex;flex-direction:column;gap:.5rem}.metric-row{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,.7fr) minmax(0,1fr) auto;gap:.35rem;align-items:center}.metric-row .field__error{grid-column:1 / -1}@media (max-width: 34rem){.metric-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto}}.toasts{position:fixed;left:50%;bottom:max(1rem,env(safe-area-inset-bottom));transform:translate(-50%);z-index:70;width:min(28rem,calc(100vw - 1.5rem));display:flex;flex-direction:column;gap:.4rem;pointer-events:none}.toast{display:flex;align-items:center;gap:.5rem;padding:.5rem .5rem .5rem .85rem;border-radius:var(--radius-sm);border:1px solid var(--rail);background:#0c1426f5;box-shadow:var(--shadow);pointer-events:auto}.toast__text{flex:1;margin:0;font-size:.88rem;line-height:1.45}.toast--error{border-color:#ff739180}.toast--warning{border-color:#ffc46b80}.toast--success{border-color:#5fe7ab80}.offline-chip{position:fixed;top:max(.5rem,env(safe-area-inset-top));left:50%;transform:translate(-50%);z-index:80;padding:.4rem .85rem;border-radius:999px;border:1px solid rgba(255,196,107,.5);background:#261a08f2;color:#ffdfae;font-size:.78rem}.install-chip{position:fixed;left:1rem;bottom:max(1rem,env(safe-area-inset-bottom));z-index:65}@media (prefers-reduced-motion: no-preference){.btn,.chip,.tab,.panel-row{transition:border-color .16s ease,background-color .16s ease,box-shadow .16s ease}.gpanel{transition:box-shadow .18s ease,border-color .18s ease}.gpanel.is-dragging{transition:none}.toast{animation:toast-in .22s ease-out}.sheet__card{animation:sheet-in .24s cubic-bezier(.22,1,.36,1)}.pill__dot[data-status=connecting],.pill__dot[data-status=reconnecting]{animation:sweep 1.4s ease-in-out infinite}.stage__surface:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(100deg,transparent 40%,rgba(79,216,255,.06) 50%,transparent 60%);background-size:300% 100%;animation:scan 9s linear infinite}}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}}@keyframes sheet-in{0%{opacity:0;transform:translateY(16px)}}@keyframes sweep{50%{opacity:.35}}@keyframes scan{0%{background-position:150% 0}to{background-position:-150% 0}}
