:root {
  color-scheme: light dark;
  --bg:#f3f5f7; --panel:rgba(255,255,255,.9); --panel-strong:#fff; --text:#17191c; --muted:#6d737b;
  --line:rgba(15,23,42,.1); --accent:#55c878; --accent-ink:#082311; --danger:#d84a4a; --shadow:0 14px 36px rgba(15,23,42,.08);
}
@media (prefers-color-scheme:dark) {
  :root { --bg:#111315; --panel:rgba(28,31,34,.93); --panel-strong:#1d2023; --text:#f4f6f8; --muted:#a0a6ad; --line:rgba(255,255,255,.09); --accent:#68d68a; --accent-ink:#08170d; --danger:#ff6b6b; --shadow:0 18px 42px rgba(0,0,0,.28); }
}
*{box-sizing:border-box} body{margin:0;min-height:100vh;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:radial-gradient(circle at 20% 0%,color-mix(in srgb,var(--accent) 12%,transparent),transparent 32%),var(--bg);color:var(--text)}
button,input,select{font:inherit} button{cursor:pointer} button:disabled,input:disabled{cursor:not-allowed;opacity:.5}.hidden{display:none!important}.muted{color:var(--muted)}.small-text{font-size:.82rem}.error{color:var(--danger);min-height:1.2em;margin:8px 0 0}
.topbar{height:72px;display:flex;align-items:center;justify-content:space-between;padding:0 max(20px,calc((100vw - 1500px)/2));border-bottom:1px solid var(--line);backdrop-filter:blur(18px);position:sticky;top:0;z-index:10;background:color-mix(in srgb,var(--bg) 82%,transparent)}
.brand{display:flex;align-items:center;gap:12px}.brand strong{display:block;font-size:1rem}.brand span{display:block;color:var(--muted);font-size:.75rem;margin-top:2px}.logo{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:var(--accent);color:var(--accent-ink);font-weight:900;box-shadow:0 8px 24px color-mix(in srgb,var(--accent) 25%,transparent)}
.top-actions{display:flex;align-items:center;gap:18px}.top-link{color:var(--muted);text-decoration:none;font-size:.82rem}.top-link:hover{color:var(--text)}.status{display:flex;gap:8px;align-items:center;color:var(--muted);font-size:.82rem}.dot{width:8px;height:8px;border-radius:50%;background:#888}.dot.online{background:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 18%,transparent)}
.shell{width:min(1500px,calc(100% - 40px));margin:28px auto 50px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow);backdrop-filter:blur(14px)}
.hero{min-height:620px;padding:70px;display:grid;grid-template-columns:1.4fr .8fr;align-items:center;gap:70px}.hero h1{margin:6px 0 18px;font-size:clamp(2.8rem,6vw,6.5rem);line-height:.92;letter-spacing:-.06em;max-width:900px}.hero-copy{max-width:760px;line-height:1.65}.eyebrow{font-size:.72rem;letter-spacing:.16em;font-weight:800;color:var(--accent);margin:0 0 8px}
.start-card{padding:28px;background:var(--panel-strong);border:1px solid var(--line);border-radius:20px}label{display:block;font-size:.8rem;color:var(--muted);margin:0 0 7px}
input,select{width:100%;height:44px;border-radius:12px;border:1px solid var(--line);background:color-mix(in srgb,var(--panel-strong) 92%,var(--bg));color:var(--text);padding:0 13px;outline:none}input:focus,select:focus{border-color:color-mix(in srgb,var(--accent) 75%,var(--line));box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 14%,transparent)}
button{border:1px solid var(--line);background:var(--panel-strong);color:var(--text);min-height:44px;padding:0 16px;border-radius:12px;font-weight:700;transition:.15s ease}button:hover:not(:disabled){transform:translateY(-1px)}button.primary{background:var(--accent);color:var(--accent-ink);border-color:transparent}.start-card>.primary{width:100%;margin-top:12px}.ghost{background:transparent}.small{min-height:34px;padding:0 11px;font-size:.78rem}.danger{color:var(--danger)}
.divider{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:.75rem;margin:18px 0}.divider:before,.divider:after{content:"";height:1px;background:var(--line);flex:1}.join-row{display:grid;grid-template-columns:1fr auto;gap:8px}#roomCodeInput{text-transform:uppercase;letter-spacing:.16em;font-weight:800}
.room-layout{display:grid;grid-template-columns:minmax(0,1fr) 350px;gap:20px}.main-column,.side-column{display:flex;flex-direction:column;gap:20px;min-width:0}.room-head{padding:20px 22px;display:flex;justify-content:space-between;align-items:center}.room-head h2{margin:0;letter-spacing:.18em;font-size:1.7rem}.room-title-row{display:flex;gap:10px;align-items:center}
.player-wrap{overflow:hidden}.empty-player{aspect-ratio:16/9;min-height:280px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#060708;color:#fff;text-align:center}.empty-player h3{margin:12px 0 4px}.empty-player p{margin:0;color:#9fa5ad}.empty-icon{font-size:3rem}video,.external-player{width:100%;display:block;aspect-ratio:16/9;background:#000;max-height:72vh}.external-player iframe{width:100%!important;height:100%!important;border:0;display:block}.external-player>div{width:100%;height:100%}
.player-meta{min-height:76px;padding:13px 18px;display:flex;justify-content:space-between;align-items:center;gap:16px}.player-title-block{min-width:0}.title-line{display:flex;align-items:center;gap:8px;min-width:0}.title-line strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-meta span{font-size:.78rem;color:var(--muted);margin-top:3px}.player-controls-meta{display:flex;align-items:center;gap:10px}.jellyfin-options{display:flex;gap:7px}.jellyfin-options select{height:34px;padding:0 9px;width:auto;max-width:180px;font-size:.75rem}
.badge{display:inline-grid!important;place-items:center;min-width:28px;min-height:24px;padding:0 8px;border-radius:999px;background:color-mix(in srgb,var(--accent) 17%,transparent);color:var(--accent)!important;font-size:.69rem!important;font-weight:900;letter-spacing:.08em}.source-badge,.chip{display:inline-flex;align-items:center;min-height:24px;padding:0 8px;border:1px solid var(--line);border-radius:999px;color:var(--muted)!important;font-size:.66rem!important;white-space:nowrap}
.source-tools{display:grid;grid-template-columns:1fr 1fr;gap:20px}.tool-panel{padding:20px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.section-head h3{margin:0;font-size:1.1rem}.link-form,.upload-form{display:grid;grid-template-columns:1fr auto;gap:8px}.upload-form input[type=file]{padding:9px 11px}.progress-wrap{height:8px;border-radius:999px;background:color-mix(in srgb,var(--line) 80%,transparent);overflow:hidden;margin:13px 0 8px}.progress-bar{height:100%;width:0;background:var(--accent);transition:width .2s ease}
.library-panel,.side-panel,.chat-panel{padding:20px}.library-head{align-items:flex-start}.library-actions{display:flex;gap:8px;align-items:center;width:min(760px,70%)}.library-actions input{height:36px;min-width:170px}.source-filter{display:flex;gap:5px}.filter-btn{min-height:34px;padding:0 10px;font-size:.72rem;background:transparent}.filter-btn.active{background:color-mix(in srgb,var(--accent) 16%,var(--panel-strong));color:var(--accent);border-color:color-mix(in srgb,var(--accent) 30%,var(--line))}
.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(185px,1fr));gap:12px;margin-top:14px}.media-card{display:flex;flex-direction:column;min-height:235px;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:var(--panel-strong)}.media-art{height:150px;display:grid;place-items:center;position:relative;overflow:hidden;background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 18%,var(--panel-strong)),var(--panel-strong))}.media-art img{width:100%;height:100%;object-fit:cover;display:block}.media-art-fallback{font-size:2.3rem}.media-source-tag{position:absolute;left:8px;top:8px;background:rgba(0,0,0,.7);color:#fff;border-radius:999px;font-size:.6rem;font-weight:850;padding:4px 7px;letter-spacing:.08em}.media-body{padding:11px;min-width:0;flex:1}.media-name{font-weight:750;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.media-sub{font-size:.72rem;color:var(--muted);margin-top:4px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.media-overview{font-size:.69rem;color:var(--muted);line-height:1.4;margin-top:8px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.media-card button{margin:0 10px 10px;min-height:34px;font-size:.76rem}.media-card.active{outline:2px solid var(--accent)}.media-card.disabled button{opacity:.45;cursor:not-allowed}
.side-column{position:sticky;top:92px;align-self:start;max-height:calc(100vh - 112px)}.members{display:flex;flex-direction:column;gap:8px}.member{display:flex;align-items:center;gap:10px;padding:10px;border-radius:12px;background:color-mix(in srgb,var(--panel-strong) 80%,transparent)}.avatar{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-weight:850;background:color-mix(in srgb,var(--accent) 17%,var(--panel-strong));color:var(--accent)}.member-name{flex:1;font-size:.88rem}.member-role{color:var(--muted);font-size:.7rem}.chat-panel{min-height:420px;display:flex;flex-direction:column}.chat-messages{flex:1;min-height:260px;max-height:42vh;overflow:auto;display:flex;flex-direction:column;gap:9px;padding-right:3px}.chat-msg{padding:9px 10px;border-radius:12px;background:color-mix(in srgb,var(--panel-strong) 85%,transparent)}.chat-msg strong{display:block;font-size:.75rem;color:var(--accent);margin-bottom:3px}.chat-msg span{font-size:.83rem;overflow-wrap:anywhere}.chat-msg.system{color:var(--muted);background:transparent;padding:3px 2px;font-size:.73rem}.chat-form{display:grid;grid-template-columns:1fr 44px;gap:8px;margin-top:12px}.chat-form button{padding:0}
.toast{position:fixed;right:22px;bottom:22px;z-index:100;background:var(--panel-strong);border:1px solid var(--line);box-shadow:var(--shadow);padding:13px 16px;border-radius:13px;max-width:min(420px,calc(100vw - 44px));font-size:.84rem}.error-toast{border-color:color-mix(in srgb,var(--danger) 50%,var(--line));color:var(--danger)}
@media(max-width:1150px){.source-tools{grid-template-columns:1fr}.library-actions{width:100%;flex-wrap:wrap}.room-layout{grid-template-columns:1fr}.side-column{position:static;max-height:none;display:grid;grid-template-columns:1fr 1fr}.hero{grid-template-columns:1fr;padding:42px;gap:34px}}
@media(max-width:760px){.shell{width:min(100% - 20px,1500px);margin-top:10px}.topbar{padding:0 14px}.top-link{display:none}.hero{padding:25px 18px;min-height:auto}.hero h1{font-size:2.65rem}.room-head{align-items:flex-start;gap:16px}.room-title-row{align-items:flex-start;flex-direction:column}.player-meta{align-items:flex-start;flex-direction:column}.jellyfin-options{flex-wrap:wrap}.section-head{align-items:flex-start;flex-direction:column}.library-actions{align-items:stretch;flex-direction:column}.source-filter{overflow:auto}.link-form,.upload-form{grid-template-columns:1fr}.side-column{grid-template-columns:1fr}.media-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.media-art{height:125px}}

/* v0.0.4 */
.room-permissions{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.permission-title{font-size:.72rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:9px}
.permission-line{display:flex;align-items:center;gap:9px;color:var(--text);margin:0;font-size:.82rem;cursor:pointer}
.permission-line input{width:18px;height:18px;flex:0 0 auto;padding:0}
.permission-note{margin-top:7px;color:var(--muted);font-size:.7rem;line-height:1.45}
.media-processing{position:absolute;left:8px;right:8px;bottom:8px;height:7px;border-radius:999px;overflow:hidden;background:rgba(0,0,0,.55);border:1px solid rgba(255,255,255,.15)}
.media-processing span{display:block;height:100%;background:var(--accent);transition:width .3s ease}
.media-error{color:var(--danger)}

/* v0.0.4 */
.library-locked {
  display: flex;
  align-items: center;
  gap: 16px;
  min-height: 110px;
}
.library-lock-icon {
  font-size: 34px;
  line-height: 1;
}
.room-permissions .permission-line {
  align-items: flex-start;
}

/* v0.0.6: Raumverwaltung, Rechte pro Teilnehmer, Sync-Anzeige */
.room-title-row { display:flex; align-items:center; gap:.55rem; flex-wrap:wrap; }
.room-title-row #roomCode { font-weight:800; letter-spacing:.12em; font-size:.95rem; opacity:.8; }
.member-wrap { border-bottom:1px solid var(--border-color, rgba(255,255,255,.08)); padding:.15rem 0; }
.member-wrap:last-child { border-bottom:0; }
.member-sync { display:block; font-size:.72rem; opacity:.62; margin-top:.1rem; }
.member-admin { margin:.1rem .2rem .6rem 2.8rem; }
.member-admin summary { cursor:pointer; font-size:.78rem; opacity:.78; }
.member-permissions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.35rem .7rem; padding:.55rem 0; font-size:.78rem; }
.member-permissions label { display:flex; gap:.4rem; align-items:center; }
.member-buttons { grid-column:1/-1; display:flex; gap:.35rem; flex-wrap:wrap; margin-top:.25rem; }
@media (max-width:720px){ .member-permissions{grid-template-columns:1fr;} .member-buttons{grid-column:1;} }

/* v0.0.8 - Jellyfin Bibliothekskennwort */
.jellyfin-access-gate{display:grid;grid-template-columns:auto minmax(180px,1fr) minmax(260px,420px);align-items:center;gap:14px;margin:14px 0 18px;padding:16px 18px;border:1px solid color-mix(in srgb,var(--accent) 35%,var(--line));border-radius:16px;background:color-mix(in srgb,var(--accent) 7%,var(--panel-strong))}
.jellyfin-access-gate.hidden{display:none}.jellyfin-access-icon{font-size:1.8rem}.jellyfin-access-copy{display:flex;flex-direction:column;gap:4px}.jellyfin-access-copy span{font-size:.78rem;color:var(--muted)}.jellyfin-access-form{display:grid;grid-template-columns:1fr auto;gap:8px}.jellyfin-access-form input{min-width:0}.jellyfin-access-gate .error{grid-column:2/-1;margin:0}
@media(max-width:760px){.jellyfin-access-gate{grid-template-columns:auto 1fr}.jellyfin-access-form{grid-column:1/-1}.jellyfin-access-gate .error{grid-column:1/-1}}
