:root{color:#f4f6f8;font-synthesis:none;--surface:#15181d;--surface-raised:#1b1f25;--surface-soft:#111419;--border:#2d333c;--border-strong:#444c58;--text:#f4f6f8;--muted:#aab3c0;--accent:#91b4ff;--accent-strong:#b5ccff;--danger:#ff9d9d;--success:#9dddb9;--focus:#d7e3ff;background:#0d0f12;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:#0d0f12;min-width:320px;min-height:100vh;margin:0}button,input,select,textarea{font:inherit;border-radius:.65rem}button{color:#09101d;cursor:pointer;background:#769ef5;border:1px solid #769ef5;min-height:2.75rem;padding:.65rem 1rem;font-weight:700}button:hover:not(:disabled){background:#91b4ff}button:disabled{cursor:not-allowed;opacity:.45}button.secondary{border-color:var(--border-strong);color:var(--text);background:0 0}button.text-button{min-height:auto;color:var(--accent);background:0 0;border:0;padding:.35rem .5rem}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--focus);outline-offset:2px}input,select,textarea{border:1px solid var(--border);width:100%;color:var(--text);background:#0e1115;padding:.72rem .8rem}textarea{resize:vertical}.admin-shell{width:min(1500px,100%);min-height:100vh;margin:0 auto;padding:1.5rem}.topbar,.section-heading,.actions,.search-row{align-items:center;gap:.75rem;display:flex}.topbar,.section-heading{justify-content:space-between}.topbar{margin-bottom:1rem}.topbar-actions{align-items:center;gap:.75rem;display:flex}.revision-chip{border:1px solid var(--border);color:var(--muted);border-radius:999px;padding:.45rem .7rem;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.75rem}h1,h2,p{margin-top:0}h1{margin-bottom:0;font-size:clamp(1.65rem,3vw,2.4rem)}h2{margin-bottom:0;font-size:1.15rem}.eyebrow,.step-label{color:var(--accent-strong);letter-spacing:.09em;text-transform:uppercase;margin-bottom:.35rem;font-size:.76rem;font-weight:700}.connection-card,.catalog-panel,.wizard{border:1px solid var(--border);background:var(--surface);border-radius:1rem}.connection-card{grid-template-columns:minmax(12rem,1fr) minmax(14rem,1fr) auto;align-items:end;gap:.8rem;margin-bottom:1rem;padding:1rem;display:grid}label{color:var(--muted);gap:.4rem;font-size:.85rem;font-weight:600;display:grid}.layout{grid-template-columns:minmax(18rem,.72fr) minmax(0,2fr);align-items:start;gap:1rem;display:grid}.catalog-panel,.wizard{padding:1rem}.catalog-panel{max-height:calc(100vh - 2rem);position:sticky;top:1rem;overflow:auto}.game-list{gap:.65rem;margin:1rem 0 0;padding:0;list-style:none;display:grid}.game-list li{margin:0}.game-select{border:1px solid var(--border);background:var(--surface-soft);width:100%;min-height:auto;color:var(--text);text-align:left;border-radius:.7rem;gap:.25rem;padding:.75rem;display:grid}.game-select:hover:not(:disabled){border-color:var(--border-strong);background:var(--surface-raised)}.game-select strong{color:var(--text)}.game-list span,.game-list code,.muted{color:var(--muted);font-size:.82rem}.game-list code{overflow-wrap:anywhere}.wizard{gap:1rem;display:grid}.status-box,.error-box{border-radius:.75rem;margin:0;padding:.85rem 1rem}.status-box{color:#cfddf7;background:#101a2a;border:1px solid #31425f}.error-box{color:var(--danger);background:#261414;border:1px solid #6a3b3b}.warning-box{color:#ead8a3;background:#211b10;border:1px solid #6b572d;border-radius:.75rem;margin:0;padding:.85rem 1rem;font-size:.85rem;line-height:1.5}.badge{border:1px solid var(--border-strong);color:var(--muted);border-radius:999px;padding:.3rem .6rem;font-size:.75rem}.badge.active{color:var(--success);border-color:#456955}fieldset{border:1px solid var(--border);background:var(--surface-raised);border-radius:.85rem;gap:.9rem;min-width:0;margin:0;padding:1rem;display:grid}fieldset:disabled{opacity:.58}legend{padding:0 .5rem;font-weight:750}.search-row input{flex:1}.candidate-grid{grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:.6rem;display:grid}.candidate{border-color:var(--border);background:var(--surface-soft);min-height:6rem;color:var(--text);text-align:left;gap:.25rem;display:grid}.candidate span,.candidate small{color:var(--muted)}.form-grid,.inspection-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;display:grid}.form-grid .wide,.inspection-grid .wide{grid-column:1/-1}.inspection-grid{margin:0}.inspection-grid div{border:1px solid var(--border);background:var(--surface-soft);border-radius:.65rem;min-width:0;padding:.7rem}.inspection-grid dt{color:var(--muted);font-size:.75rem}.inspection-grid dd{overflow-wrap:anywhere;margin:.25rem 0 0}.progress-track{background:#0b0d10;border-radius:999px;height:.6rem;overflow:hidden}.progress-track span{border-radius:inherit;background:var(--accent);height:100%;transition:width .16s ease-out;display:block}.session-card{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;display:grid}.session-card div,.publication-state{border:1px solid var(--border);background:var(--surface-soft);border-radius:.65rem;padding:.7rem}.session-card div{gap:.25rem;display:grid}.session-card span,.publication-state span{color:var(--muted);font-size:.78rem}.session-card code{overflow-wrap:anywhere;color:var(--text)}.primary-link{color:#09101d;background:#769ef5;border:1px solid #769ef5;border-radius:.65rem;align-items:center;width:fit-content;min-height:2.75rem;padding:.65rem 1rem;font-weight:700;text-decoration:none;display:inline-flex}.primary-link:hover{background:#91b4ff}.primary-link:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.publication-state{flex-wrap:wrap;gap:.75rem 1.25rem;display:flex}button.danger{color:#fff1f1;background:#632f35;border-color:#8a4646}button.danger:hover:not(:disabled){background:#754047}@media (width<=900px){.connection-card,.layout{grid-template-columns:1fr}.catalog-panel{max-height:none;position:static}}@media (width<=620px){.admin-shell{padding:.8rem}.topbar,.topbar-actions,.search-row,.actions{flex-direction:column;align-items:stretch}.form-grid,.inspection-grid,.session-card{grid-template-columns:1fr}.form-grid .wide,.inspection-grid .wide{grid-column:auto}}@media (prefers-reduced-motion:reduce){.progress-track span{transition:none}}
