:root{--bg:#0d1117;--surface:#161b22;--border:#30363d;--text:#c9d1d9;--dim:#8b949e;
--accent:#58a6ff;--green:#3fb950;--red:#f85149;--yellow:#e3b341;--purple:#bc8cff;
--orange:#ff9500;}
*{box-sizing:border-box;margin:0;padding:0;}
body{background:var(--bg);color:var(--text);font-family:'Courier New',monospace;font-size:13px;min-height:100vh;}
.container{max-width:1400px;margin:0 auto;padding:16px;}
.header{display:flex;align-items:center;justify-content:space-between;padding-bottom:12px;
border-bottom:1px solid var(--border);margin-bottom:0;}
.header h1{font-size:15px;letter-spacing:2px;color:var(--accent);}
.header-right{display:flex;align-items:center;gap:16px;}
.timer{font-size:18px;font-variant-numeric:tabular-nums;color:var(--yellow);letter-spacing:1px;}
.status-dot{width:8px;height:8px;border-radius:50%;background:var(--green);display:inline-block;margin-right:6px;}
/* Integrity popup */
.integrity-btn{background:none;border:none;color:var(--dim);font-size:14px;cursor:pointer;padding:0 4px;line-height:1;}
.integrity-btn:hover{color:var(--accent);}
.conn-pill{font-size:11px;padding:3px 10px;border-radius:12px;border:1px solid #333;background:#1a1a1a;color:var(--dim);letter-spacing:0.5px;cursor:default;display:inline-flex;align-items:center;gap:5px;white-space:nowrap;}
.conn-pill::before{content:'';display:inline-block;width:7px;height:7px;border-radius:50%;background:currentColor;opacity:0.5;flex-shrink:0;}
.conn-pill.online{background:#0d1f0d;border-color:#2a5a2a;color:#81c784;}
.conn-pill.online::before{opacity:1;box-shadow:0 0 5px #4caf50;}
.conn-pill.offline{background:#1f0d0d;border-color:#5a2a2a;color:#f85149;}
.conn-pill.offline::before{opacity:1;}
.conn-pill.pending{background:#1f1a0d;border-color:#5a4a1a;color:#ffd54f;}
.conn-pill.pending::before{opacity:1;box-shadow:0 0 5px #ffc107;}
.integrity-popup{display:none;position:absolute;top:48px;right:16px;z-index:200;
  background:#1c2128;border:1px solid var(--border);border-radius:6px;
  padding:12px 16px;min-width:280px;font-size:12px;line-height:1.7;
  box-shadow:0 4px 16px rgba(0,0,0,.6);}
.integrity-popup.open{display:block;}
.integrity-popup .copy{color:var(--dim);}
.integrity-ok{color:var(--green);}
.integrity-fail{color:var(--red);}
/* Tabs */
.tabs{display:flex;flex-wrap:wrap;border-bottom:1px solid var(--border);margin-bottom:16px;margin-top:12px;}
.tab-btn{padding:8px 14px;cursor:pointer;border:none;background:none;color:var(--dim);
font-family:inherit;font-size:12px;border-bottom:2px solid transparent;letter-spacing:1px;white-space:nowrap;}
.tab-btn:hover{color:var(--text);}
.tab-btn.active{border-bottom-color:var(--accent);color:var(--accent);}
.tab-content{display:none;}
.tab-content.active{display:block;}
/* Cards */
.card{background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:12px;margin-bottom:12px;}
.card-title{font-size:11px;color:var(--dim);letter-spacing:1px;text-transform:uppercase;
margin-bottom:8px;display:flex;justify-content:space-between;align-items:center;}
.card-title.collapsible{cursor:pointer;user-select:none;}
.card-title.collapsible:hover{color:var(--text);}
.card-toggle{font-size:9px;opacity:.5;transition:transform .15s;display:inline-block;}
.card-toggle.open{transform:rotate(90deg);}
/* Layout */
.columns{display:flex;gap:12px;align-items:flex-start;}
.col-45{flex:0 0 45%;min-width:0;}
.col-55{flex:1;min-width:0;}
.col-60{flex:0 0 60%;min-width:0;}
.col-40{flex:1;min-width:0;}
/* Inputs */
textarea,input[type=text],input[type=number],select{width:100%;background:var(--bg);
border:1px solid var(--border);border-radius:4px;color:var(--text);
font-family:inherit;font-size:13px;padding:8px;resize:vertical;outline:none;}
textarea:focus,input:focus,select:focus{border-color:var(--accent);}
select option{background:var(--surface);}
label{display:block;font-size:11px;color:var(--dim);margin-bottom:4px;margin-top:8px;}
label:first-child{margin-top:0;}
/* Buttons */
button{background:var(--accent);color:#0d1117;border:none;border-radius:4px;
padding:6px 14px;font-family:inherit;font-size:13px;cursor:pointer;font-weight:bold;}
button:hover{filter:brightness(1.1);}
button.danger{background:var(--red);color:#fff;}
button.warn{background:var(--yellow);color:#000;}
button.secondary{background:transparent;border:1px solid var(--border);color:var(--text);}
button.secondary:hover{border-color:var(--accent);color:var(--accent);}
button.active-cat{background:var(--accent);color:#000;border:1px solid var(--accent);}
.ts-btn{width:26px;height:26px;padding:0;border-radius:3px;font-size:13px;cursor:pointer;border:1px solid var(--border);}
.ts-btn.ts-allowed{background:rgba(76,175,80,0.2);color:var(--green);border-color:var(--green);}
.ts-btn.ts-greyed{background:rgba(33,150,243,0.15);color:#64b5f6;border-color:#64b5f6;}
.ts-btn.ts-hidden{background:transparent;color:var(--border);border-color:var(--border);}
.ts-btn:hover:not(:disabled){opacity:0.75;}
button.cue-trigger-btn{margin-top:auto;background:#1a3a1a;color:#81c784;border:1px solid #2a5a2a;padding:7px;border-radius:4px;cursor:pointer;font-size:12px;font-weight:600;letter-spacing:1px;width:100%;}
button.cue-trigger-btn:hover{background:#2a5a2a;}
button.full{width:100%;margin-top:8px;}
button:disabled{opacity:.5;cursor:not-allowed;}
.btn-row{display:flex;gap:6px;align-items:center;margin-top:8px;flex-wrap:wrap;}
.divider{border:none;border-top:1px solid var(--border);margin:10px 0;}
/* Sensor grid */
.sensor-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:12px;}
.sensor-card{background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:14px;}
.sensor-name{font-size:11px;color:var(--dim);margin-bottom:4px;}
.sensor-value{font-size:22px;font-variant-numeric:tabular-nums;font-weight:bold;margin-bottom:4px;}
.sensor-unit{font-size:11px;color:var(--dim);}
.sensor-input-row{display:flex;gap:6px;margin-top:8px;}
.sensor-input-row input{flex:1;}
.zone-ok{background:var(--green);color:#000;padding:2px 8px;border-radius:10px;font-size:11px;}
.mock-row{margin:7px 0;}
.mock-row label{font-size:0.9em;color:var(--dim);display:block;margin-bottom:2px;}
.mock-slider-row{display:flex;align-items:center;gap:6px;}
.mock-slider-row input[type=range]{flex:1;cursor:pointer;}
.mock-val{min-width:44px;text-align:right;font-family:monospace;font-size:0.93em;}
.mock-unit{color:var(--dim);font-size:0.88em;min-width:36px;}
.mock-select{background:var(--surface);color:var(--text);border:1px solid var(--border);padding:3px 6px;border-radius:4px;font-size:0.9em;width:100%;}
.zone-warn{background:var(--yellow);color:#000;padding:2px 8px;border-radius:10px;font-size:11px;}
.zone-crit{background:var(--red);color:#fff;padding:2px 8px;border-radius:10px;font-size:11px;}
.zone-none{background:var(--border);color:var(--dim);padding:2px 8px;border-radius:10px;font-size:11px;}
/* Session list */
.session-list{display:flex;flex-direction:column;gap:6px;}
.session-item{padding:10px 12px;border:1px solid var(--border);border-radius:4px;cursor:pointer;
display:flex;justify-content:space-between;align-items:center;}
.session-item:hover{border-color:var(--accent);}
.session-item.active{border-color:var(--accent);background:rgba(88,166,255,0.08);}
.session-name{font-weight:bold;}
.session-role{font-size:11px;color:var(--dim);}
.session-turns{font-size:11px;color:var(--purple);}
/* Emotion sliders */
.slider-row{display:flex;align-items:center;gap:8px;margin-bottom:6px;}
.emotion-label{width:80px;font-size:11px;color:var(--dim);text-align:right;flex-shrink:0;}
input[type=range]{flex:1;accent-color:var(--accent);cursor:pointer;height:4px;}
.emotion-val{width:36px;font-size:11px;color:var(--dim);text-align:right;font-variant-numeric:tabular-nums;}
/* Event log (legacy — nur noch für interne Nutzung) */
.event-log{max-height:220px;overflow-y:auto;}
.ev-row{display:flex;gap:8px;padding:5px 0;border-bottom:1px solid var(--border);font-size:11px;align-items:baseline;}
.ev-row:last-child{border-bottom:none;}
.ev-ts{color:var(--dim);flex-shrink:0;width:60px;}
.ev-type{color:var(--accent);flex-shrink:0;width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.ev-cred{color:var(--purple);flex-shrink:0;width:55px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.ev-status-ok{color:var(--green);flex-shrink:0;}
/* HISTORIE-Tab */
.hist-filter{background:transparent;border:1px solid var(--border);color:var(--dim);
  padding:3px 10px;font-size:11px;border-radius:3px;cursor:pointer;font-family:inherit;}
.hist-filter:hover{border-color:var(--text);color:var(--text);}
.hist-filter.active{background:rgba(255,255,255,0.08);color:var(--text);border-color:var(--text);}
.hist-log{height:calc(100vh - 220px);overflow-y:auto;font-size:11px;}
.hist-row{display:grid;grid-template-columns:38px 56px 220px 70px 1fr 20px;
  align-items:center;column-gap:8px;padding:5px 8px;
  border-bottom:1px solid rgba(255,255,255,0.04);border-left:3px solid transparent;}
.hist-row:last-child{border-bottom:none;}
.hist-badge{padding:1px 5px;border-radius:3px;font-size:10px;font-weight:700;
  letter-spacing:0.5px;text-align:center;}
.hist-elapsed{color:var(--dim);font-variant-numeric:tabular-nums;}
.hist-type{color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.hist-cred{color:var(--dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.hist-detail{color:var(--dim);font-style:italic;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.hist-ok{color:var(--green);}
.hist-err{color:var(--red);}
.hist-header{display:grid;grid-template-columns:38px 56px 220px 70px 1fr 20px;
  column-gap:8px;padding:3px 8px 6px;border-bottom:1px solid var(--border);
  font-size:10px;color:var(--dim);letter-spacing:0.5px;text-transform:uppercase;}
.ev-status-err{color:var(--red);flex-shrink:0;}
.ev-msg{color:var(--dim);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
/* Activity bars */
.act-bar-wrap{margin-bottom:8px;}
.act-bar-label{font-size:11px;color:var(--dim);margin-bottom:2px;display:flex;justify-content:space-between;}
.act-bar-bg{height:8px;background:var(--bg);border-radius:4px;border:1px solid var(--border);}
.act-bar{height:6px;border-radius:3px;margin:1px;transition:width .4s;}
/* Player table */
table{width:100%;border-collapse:collapse;font-size:12px;}
th{text-align:left;color:var(--dim);font-size:11px;padding:4px 8px;border-bottom:1px solid var(--border);}
td{padding:6px 8px;border-bottom:1px solid var(--border);}
tr:last-child td{border-bottom:none;}
td select,td input[type=text]{padding:4px 6px;font-size:12px;}
/* Decision tree */
.tree-node{border:1px solid var(--border);border-radius:4px;padding:8px 12px;margin:6px 0;
font-size:12px;cursor:default;}
.tree-node.active{border-color:var(--accent);background:rgba(88,166,255,0.08);color:var(--accent);}
.tree-branch{padding-left:20px;border-left:1px solid var(--border);margin-left:10px;}
/* Toast */
#toast{position:fixed;bottom:24px;right:24px;background:var(--surface);border:1px solid var(--accent);
border-radius:6px;padding:12px 20px;font-size:13px;color:var(--text);opacity:0;
transition:opacity .3s;z-index:999;pointer-events:none;max-width:320px;}
#toast.show{opacity:1;}
/* System Alert Banner */
#alertBanner{position:fixed;top:0;left:0;right:0;z-index:1000;display:none;
padding:10px 20px;font-size:13px;font-weight:600;text-align:center;
animation:alertSlideIn .3s ease-out;cursor:pointer;}
#alertBanner.show{display:block;}
#alertBanner.alert-info{background:#1a3a5c;border-bottom:2px solid #58a6ff;color:#a8d4ff;}
#alertBanner.alert-warning{background:#3d2e00;border-bottom:2px solid #d29922;color:#f0c040;}
#alertBanner.alert-critical{background:#4a1010;border-bottom:2px solid #f85149;color:#ff8080;
animation:alertSlideIn .3s ease-out,alertPulse 2s ease-in-out infinite;}
#alertBanner .alert-source{opacity:.6;font-weight:400;margin-right:8px;text-transform:uppercase;font-size:11px;}
#alertBanner .alert-close{float:right;cursor:pointer;opacity:.6;margin-left:12px;font-size:15px;}
#alertBanner .alert-close:hover{opacity:1;}
@keyframes alertSlideIn{from{transform:translateY(-100%)}to{transform:translateY(0)}}
@keyframes alertPulse{0%,100%{opacity:1}50%{opacity:.7}}
/* Media list */
.media-item{display:flex;align-items:center;gap:10px;padding:8px 0;
border-bottom:1px solid var(--border);}
.media-item:last-child{border-bottom:none;}
.media-icon{font-size:16px;flex-shrink:0;}
.media-info{flex:1;}
.media-title{font-weight:bold;}
.media-meta{font-size:11px;color:var(--dim);}
.subplot-item{display:flex;align-items:center;gap:8px;padding:4px 0;font-size:12px;}
.subplot-item input[type=checkbox]{accent-color:var(--accent);}
.info-row{display:flex;justify-content:space-between;font-size:12px;padding:4px 0;
border-bottom:1px solid var(--border);}
.info-row:last-child{border-bottom:none;}
.info-val{color:var(--accent);font-weight:bold;}
/* Spinner in number-inputs ausblenden */
input[type=number].no-spin::-webkit-inner-spin-button,
input[type=number].no-spin::-webkit-outer-spin-button{-webkit-appearance:none;margin:0;}
input[type=number].no-spin{-moz-appearance:textfield;}
/* Public mood bars */
.pub-bar-row{display:flex;align-items:center;gap:8px;margin-bottom:5px;}
.pub-bar-label{width:72px;font-size:11px;color:var(--dim);text-align:right;flex-shrink:0;}
.pub-bar-bg{flex:1;height:6px;background:var(--bg);border-radius:3px;border:1px solid var(--border);}
.pub-bar-fill{height:4px;border-radius:2px;margin:1px;transition:width .5s;}
.pub-bar-val{width:32px;font-size:10px;color:var(--dim);text-align:right;font-variant-numeric:tabular-nums;}
/* Player grid */
.player-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px;margin-bottom:12px;}
.player-card{background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:12px;cursor:pointer;}
.player-card:hover{border-color:var(--dim);}
.player-card.selected{border-color:var(--accent);}
.player-card-name{font-weight:bold;font-size:13px;margin-bottom:1px;}
.player-card-role{font-size:11px;color:var(--dim);margin-bottom:8px;}
.chart-legend{display:flex;flex-wrap:wrap;gap:6px;margin-top:5px;}
.legend-item{display:flex;align-items:center;gap:3px;font-size:10px;color:var(--dim);}
.legend-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;}
.deception-badges{display:flex;gap:5px;margin-top:6px;}
.dec-badge{padding:1px 7px;border-radius:8px;font-size:10px;}
.dec-ok{background:rgba(63,185,80,.13);color:var(--green);border:1px solid rgba(63,185,80,.3);}
.dec-part{background:rgba(227,179,65,.13);color:var(--yellow);border:1px solid rgba(227,179,65,.3);}
.dec-lie{background:rgba(248,81,73,.13);color:var(--red);border:1px solid rgba(248,81,73,.3);}
.strategy-text{font-size:11px;color:var(--dim);font-style:italic;margin-top:7px;
line-height:1.5;padding-top:7px;border-top:1px solid var(--border);min-height:28px;}
/* Chat */
.chat-active-bar{font-size:11px;color:var(--dim);margin-bottom:8px;display:flex;
gap:14px;align-items:center;flex-wrap:wrap;}
.chat-active-name{color:var(--accent);font-weight:bold;}
.chat-turn-badge{background:var(--surface);border:1px solid var(--border);
border-radius:10px;padding:1px 8px;font-size:10px;}
.chat-window{background:var(--bg);border:1px solid var(--border);border-radius:4px;
padding:10px;max-height:190px;overflow-y:auto;display:flex;flex-direction:column;gap:7px;}
.chat-bubble{max-width:74%;padding:6px 11px;border-radius:10px;font-size:12px;line-height:1.5;}
.chat-bubble.player{align-self:flex-end;background:rgba(88,166,255,.11);
border:1px solid rgba(88,166,255,.25);border-bottom-right-radius:3px;}
.chat-bubble.dave{align-self:flex-start;background:rgba(63,185,80,.09);
border:1px solid rgba(63,185,80,.25);color:var(--green);border-bottom-left-radius:3px;}
.chat-who{font-size:10px;color:var(--dim);margin-bottom:2px;}
.chat-empty{font-size:11px;color:var(--dim);font-style:italic;text-align:center;padding:20px 0;}
/* Bottom two-col grid */
.dave-bottom{display:grid;grid-template-columns:55fr 45fr;gap:12px;}
/* Supervisor */
.sv-lamp-row{display:flex;align-items:center;gap:10px;padding:10px 12px;
background:var(--bg);border:1px solid var(--border);border-radius:4px;margin-bottom:10px;}
.sv-lamp{width:16px;height:16px;border-radius:50%;flex-shrink:0;transition:background .4s,box-shadow .4s;}
.sv-green{background:var(--green);box-shadow:0 0 8px rgba(63,185,80,.7);}
.sv-yellow{background:var(--yellow);box-shadow:0 0 8px rgba(227,179,65,.7);}
.sv-red{background:var(--red);box-shadow:0 0 10px rgba(248,81,73,.8);
animation:sv-blink 1.1s ease-in-out infinite;}
@keyframes sv-blink{0%,100%{opacity:1;}50%{opacity:.3;}}
@keyframes sysAlarmPulse{0%,100%{box-shadow:0 0 6px #cc0000;background:#cc0000;}50%{box-shadow:0 0 18px #ff4444,0 0 8px #880000;background:#ee2222;}}
@keyframes empReady{0%,100%{box-shadow:0 0 6px #007700;background:#1a5c1a;}50%{box-shadow:0 0 22px #00cc00,0 0 44px #004400;background:#22761a;}}
@keyframes pulse{0%,100%{opacity:1;}50%{opacity:.6;}}
#empTriggerBtn:disabled{background:#2a2a2a;color:#555;border-color:#444;cursor:not-allowed;}
#empTriggerBtn:not(:disabled){background:#1a5c1a;color:#afffaf;border-color:#00cc00;cursor:pointer;animation:empReady 1.4s ease-in-out infinite;}
.sv-status-txt{font-size:12px;font-weight:bold;}
.sv-detail-txt{font-size:10px;color:var(--dim);}
.mode-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin-bottom:10px;}
/* Öffentlicher Kanal — Emotion-Override-Buttons */
.pub-emo-btn{padding:3px 7px;font-size:10px;letter-spacing:.04em;}
.pub-emo-btn.pub-emo-active{border-color:var(--accent);background:rgba(88,166,255,.15);color:var(--accent);}
.pub-emo-auto.pub-emo-active{border-color:#4caf50;background:rgba(76,175,80,.12);color:#4caf50;}

.mode-btn{padding:7px 4px;font-size:11px;font-weight:bold;text-align:center;border-radius:4px;
cursor:pointer;border:1px solid var(--border);background:var(--surface);color:var(--dim);}
.mode-btn:hover{border-color:var(--accent);color:var(--text);}
.mode-btn.mode-active{border-color:var(--accent);background:rgba(88,166,255,.12);color:var(--accent);}
.mode-btn.mode-warn{border-color:var(--yellow);color:var(--yellow);}
.mode-btn.mode-warn.mode-active{background:rgba(227,179,65,.12);}
.mode-btn.mode-danger{border-color:var(--red);color:var(--red);}
.mode-btn.mode-danger.mode-active{background:rgba(248,81,73,.15);}
.sv-log{max-height:90px;overflow-y:auto;}
.sv-log-row{font-size:10px;padding:3px 0;border-bottom:1px solid var(--border);color:var(--dim);}
.sv-log-row:last-child{border-bottom:none;}
.sv-log-ts{color:var(--accent);margin-right:5px;}
.sv-log-empty{font-size:10px;color:var(--dim);font-style:italic;}
.sv-badge{display:inline-block;font-size:9px;padding:1px 4px;border-radius:3px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;vertical-align:middle;margin-right:3px;}
.sv-badge-warn{background:rgba(210,153,34,.18);color:#d29922;border:1px solid rgba(210,153,34,.35);}
.sv-badge-block{background:rgba(248,81,73,.15);color:#f85149;border:1px solid rgba(248,81,73,.35);}
.sv-badge-esc{background:rgba(210,153,34,.25);color:#ff9500;border:1px solid rgba(210,153,34,.5);}
/* Mini emotion sliders in SL panel */
.mini-slider-row{display:flex;align-items:center;gap:6px;margin-bottom:4px;}
.mini-label{width:68px;font-size:10px;color:var(--dim);text-align:right;flex-shrink:0;}
.mini-val{width:28px;font-size:10px;color:var(--dim);text-align:right;font-variant-numeric:tabular-nums;}
/* Permission Sidebar */
.dave-body-wrap{display:flex;align-items:stretch;gap:12px;}
.dave-stab-area{flex:1;min-width:0;}
.dave-perm-sidebar{width:142px;flex-shrink:0;background:rgba(88,166,255,.05);border:1px solid rgba(88,166,255,.12);border-radius:5px;padding:10px 10px 8px;}
.dave-perm-sb-title{font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--dim);margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid rgba(88,166,255,.12);}
.perm-sb-item{display:flex;align-items:flex-start;gap:7px;padding:7px 6px;border-radius:3px;transition:background .12s;border-bottom:1px solid rgba(255,255,255,.04);}
.perm-sb-item:last-child{border-bottom:none;}
.perm-sb-item:not(.locked){cursor:pointer;}
.perm-sb-item:not(.locked):hover{background:rgba(255,255,255,.06);}
.perm-sb-item.locked{cursor:default;opacity:.55;}
.perm-sb-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0;margin-top:2px;transition:background .2s,box-shadow .2s;}
.perm-sb-item.granted:not(.locked) .perm-sb-dot{background:var(--green);box-shadow:0 0 5px rgba(63,185,80,.45);}
.perm-sb-item:not(.granted):not(.locked) .perm-sb-dot{background:#3a3f47;}
.perm-sb-item.locked.granted .perm-sb-dot{background:var(--accent);}
.perm-sb-item.locked:not(.granted) .perm-sb-dot{background:rgba(248,81,73,.35);}
.perm-sb-label{font-size:10px;line-height:1.35;color:var(--text);}
.perm-sb-item.locked .perm-sb-label{color:var(--dim);}
.toggle{position:relative;display:inline-block;width:38px;height:22px;flex-shrink:0;}
.toggle input{opacity:0;width:0;height:0;}
.toggle-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;
background:var(--border);border-radius:22px;transition:.2s;}
.toggle-slider:before{content:'';position:absolute;height:16px;width:16px;left:3px;bottom:3px;
background:var(--dim);border-radius:50%;transition:.2s;}
.toggle input:checked+.toggle-slider{background:var(--green);}
.toggle input:checked+.toggle-slider:before{transform:translateX(16px);background:#000;}
.toggle.locked .toggle-slider{cursor:not-allowed;}

/* ---- Extracted from inline styles ---- */
.text-dim-xs{font-size:10px;color:var(--dim);}
.text-green-xs{color:var(--green);font-size:10px;}
.text-dim-sm{font-size:11px;color:var(--dim);}
.label-block{font-size:10px;color:var(--dim);display:block;margin-bottom:4px;}
.label-block-3{font-size:10px;color:var(--dim);display:block;margin-bottom:3px;}
.mb-12{margin-bottom:12px;}
.mb-8{margin-bottom:8px;}
.mt-8{margin-top:8px;}
.mt-14{margin-top:14px;}
.mt-6{margin-top:6px;}
.row-8{display:flex;align-items:center;gap:8px;}
.row-6{display:flex;align-items:center;gap:6px;}
.flex-1{flex:1;}
.status-line{font-size:11px;color:var(--dim);min-height:14px;}
/* Spielzustand-Badges */
.gs-badge{display:inline-block;padding:4px 12px;border-radius:3px;font-size:11px;
  letter-spacing:2px;font-weight:700;min-width:100px;text-align:center;border:1px solid transparent;}
.gs-green{background:rgba(63,185,80,.15);border-color:rgba(63,185,80,.4);color:var(--green);}
.gs-yellow{background:rgba(227,179,65,.15);border-color:rgba(227,179,65,.4);color:var(--yellow);}
.gs-red{background:rgba(248,81,73,.15);border-color:rgba(248,81,73,.4);color:var(--red);}
.gs-toggle{background:transparent;border:1px solid var(--border);color:var(--dim);
  padding:2px 8px;font-size:14px;border-radius:3px;cursor:pointer;line-height:1;font-weight:normal;}
.gs-toggle:hover{border-color:var(--accent);color:var(--accent);}

/* Medbay: Hernandez-Zustandsbuttons */
.med-state-btn{
  background:rgba(0,0,0,.4);border:1px solid color-mix(in srgb,var(--c) 30%,transparent);
  color:color-mix(in srgb,var(--c) 50%,#666);border-radius:4px;padding:7px 10px;
  font-size:11px;letter-spacing:1px;font-weight:600;cursor:pointer;text-align:center;
  transition:all .15s;width:100%;}
.med-state-btn:hover{border-color:var(--c);color:var(--c);}
.med-state-btn.active{
  background:color-mix(in srgb,var(--c) 18%,#000);
  border-color:var(--c);color:var(--c);
  box-shadow:0 0 8px color-mix(in srgb,var(--c) 40%,transparent);}
