:root {
  --bg: #090909;
  --panel: #141414;
  --panel-2: #1b1b1b;
  --line: rgba(255,255,255,.09);
  --text: #f6f1e8;
  --muted: #aaa39a;
  --gold: #d6aa4b;
  --gold-2: #f4d27a;
  --red: #b21f2d;
  --red-2: #e33c48;
  --green: #3ebd7c;
  --shadow: 0 24px 80px rgba(0,0,0,.45);
}
* { box-sizing: border-box; }
html { min-height: 100%; background: var(--bg); }
body { margin: 0; min-height: 100vh; color: var(--text); background: radial-gradient(circle at 80% -10%, rgba(178,31,45,.17), transparent 35%), radial-gradient(circle at 10% 0%, rgba(214,170,75,.11), transparent 28%), var(--bg); font-family: Inter, Segoe UI, Arial, sans-serif; }
a { color: inherit; text-decoration: none; }
button, input, select { font: inherit; }
.film-grain { pointer-events:none; position:fixed; inset:0; opacity:.025; z-index:50; background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.7'/%3E%3C/svg%3E"); }
.topbar { height:76px; display:flex; align-items:center; justify-content:space-between; padding:0 4vw; border-bottom:1px solid var(--line); background:rgba(8,8,8,.86); backdrop-filter:blur(18px); position:sticky; top:0; z-index:20; }
.brand { display:flex; align-items:center; gap:12px; text-transform:uppercase; font-weight:900; letter-spacing:.12em; }
.brand-mark { width:35px; height:35px; border-radius:50%; display:grid; place-items:center; color:#130b02; background:linear-gradient(135deg,var(--gold-2),var(--gold)); box-shadow:0 0 30px rgba(214,170,75,.28); font-size:14px; padding-left:2px; }
.topnav { display:flex; align-items:center; gap:22px; color:var(--muted); font-size:14px; }
.topnav a:hover,.topnav a.active { color:var(--text); }
.topnav a.active { border-bottom:2px solid var(--gold); padding-bottom:8px; }
.user-chip { color:var(--gold-2); border:1px solid rgba(214,170,75,.3); background:rgba(214,170,75,.08); border-radius:999px; padding:8px 12px; }
.logout-link { color:#e6b4b9!important; }
.page-shell { width:min(1500px,94vw); margin:0 auto; padding:34px 0 70px; }
.footer { text-align:center; color:#706c67; padding:30px; border-top:1px solid var(--line); font-size:13px; }
.eyebrow { color:var(--gold); letter-spacing:.2em; font-weight:800; font-size:12px; }
h1,h2,h3,p { margin-top:0; }
h1 { font-size:clamp(34px,5vw,68px); line-height:.98; letter-spacing:-.045em; }
h2 { letter-spacing:-.025em; }
.muted { color:var(--muted); }
.alert { border-radius:12px; padding:13px 16px; margin-bottom:18px; border:1px solid; }
.alert.error { color:#ffc8ce; background:rgba(178,31,45,.16); border-color:rgba(227,60,72,.35); }
.alert.success { color:#c9f5dc; background:rgba(62,189,124,.13); border-color:rgba(62,189,124,.32); }
.btn { border:1px solid rgba(255,255,255,.12); background:#252525; color:var(--text); padding:11px 16px; border-radius:10px; cursor:pointer; font-weight:800; display:inline-flex; align-items:center; justify-content:center; transition:.18s ease; }
.btn:hover { transform:translateY(-1px); border-color:rgba(255,255,255,.28); }
.btn.primary { color:#180c02; border-color:transparent; background:linear-gradient(135deg,var(--gold-2),var(--gold)); box-shadow:0 10px 30px rgba(214,170,75,.16); }
.btn.ghost { background:transparent; }
.btn.danger { background:rgba(178,31,45,.18); color:#ffd1d5; border-color:rgba(227,60,72,.25); }
.btn.small { padding:8px 11px; font-size:12px; }
.btn.wide { width:100%; padding:14px; }
.login-stage { min-height:calc(100vh - 180px); display:grid; grid-template-columns:minmax(0,1.35fr) minmax(340px,.65fr); align-items:stretch; border:1px solid var(--line); border-radius:24px; overflow:hidden; box-shadow:var(--shadow); }
.poster-panel { position:relative; min-height:680px; padding:64px; display:flex; align-items:flex-end; overflow:hidden; background:linear-gradient(155deg,rgba(0,0,0,.1),rgba(0,0,0,.82)), radial-gradient(circle at 72% 34%,rgba(245,210,122,.55),transparent 7%), radial-gradient(circle at 72% 34%,rgba(178,31,45,.44),transparent 36%), linear-gradient(130deg,#22130d,#070707 66%); }
.poster-panel:before { content:''; position:absolute; width:48%; height:120%; top:-10%; right:8%; transform:skewX(-9deg); background:linear-gradient(90deg,transparent,rgba(244,210,122,.13),transparent); filter:blur(12px); }
.poster-panel:after { content:'KINO'; position:absolute; right:-26px; top:60px; font-size:clamp(100px,16vw,240px); font-weight:1000; color:rgba(255,255,255,.025); transform:rotate(90deg); letter-spacing:.05em; }
.poster-content { position:relative; max-width:730px; z-index:2; }
.poster-content h1 { margin:12px 0 22px; font-size:clamp(62px,8vw,118px); text-shadow:0 8px 50px rgba(0,0,0,.7); }
.poster-content p { max-width:650px; font-size:19px; color:#d0cbc3; line-height:1.65; }
.poster-badges { display:flex; flex-wrap:wrap; gap:10px; margin-top:28px; }
.poster-badges span { border:1px solid rgba(255,255,255,.12); background:rgba(0,0,0,.24); backdrop-filter:blur(8px); border-radius:999px; padding:9px 12px; font-size:13px; }
.login-card { position:relative; background:linear-gradient(180deg,#181818,#111); padding:68px 50px; display:flex; flex-direction:column; justify-content:center; }
.login-card h2 { font-size:44px; margin:10px 0 8px; }
.ticket-notch { position:absolute; width:36px; height:36px; border-radius:50%; background:var(--bg); top:48%; }
.ticket-notch.left { left:-18px; } .ticket-notch.right { right:-18px; display:none; }
.stack-form { display:grid; gap:18px; margin-top:30px; }
.stack-form label { color:#d7d0c8; display:grid; gap:8px; font-size:14px; font-weight:700; }
input,select { width:100%; color:var(--text); background:#0c0c0c; border:1px solid rgba(255,255,255,.13); border-radius:10px; padding:13px 14px; outline:none; }
input:focus,select:focus { border-color:var(--gold); box-shadow:0 0 0 3px rgba(214,170,75,.1); }
.hero { position:relative; overflow:hidden; border:1px solid var(--line); border-radius:22px; background:linear-gradient(110deg,rgba(178,31,45,.24),rgba(214,170,75,.09) 45%,rgba(255,255,255,.02)); padding:48px; margin-bottom:24px; }
.hero.compact { display:flex; justify-content:space-between; align-items:end; }
.hero.compact h1 { font-size:clamp(38px,5vw,72px); margin:8px 0 12px; }
.hero.compact p { margin:0; color:#c0b9b0; }
.hero-stat { text-align:right; padding-left:30px; }
.hero-stat strong { display:block; font-size:58px; color:var(--gold-2); }
.hero-stat span { color:var(--muted); }
.status-strip { display:grid; gap:10px; margin-bottom:24px; }
.status-card { display:grid; grid-template-columns:minmax(180px,1fr) minmax(120px,280px) auto; align-items:center; gap:16px; padding:14px 16px; border:1px solid var(--line); border-radius:14px; background:rgba(20,20,20,.9); }
.status-card span { display:block; color:var(--muted); font-size:12px; margin-top:3px; }
.mini-progress,.progress { overflow:hidden; height:8px; border-radius:999px; background:#080808; border:1px solid rgba(255,255,255,.08); }
.mini-progress span,.progress span { display:block; height:100%; background:linear-gradient(90deg,var(--red-2),var(--gold)); }
.cinema-browser { min-height:620px; display:grid; grid-template-columns:310px minmax(0,1fr); border:1px solid var(--line); border-radius:22px; overflow:hidden; box-shadow:var(--shadow); }
.folder-sidebar { background:linear-gradient(180deg,#18130c,#100f0e); border-right:1px solid var(--line); padding:22px 16px; }
.sidebar-title { display:flex; align-items:end; justify-content:space-between; padding:8px 10px 20px; border-bottom:1px solid var(--line); margin-bottom:12px; }
.sidebar-title span { font-size:23px; font-weight:900; } .sidebar-title small { color:var(--muted); }
.folder-list { display:grid; gap:7px; }
.folder-item { display:grid; grid-template-columns:32px 1fr; gap:10px; align-items:center; padding:13px 11px; border-radius:12px; color:#c7c0b7; border:1px solid transparent; }
.folder-item:hover { background:rgba(255,255,255,.035); }
.folder-item.active { color:var(--text); background:linear-gradient(90deg,rgba(214,170,75,.17),rgba(214,170,75,.04)); border-color:rgba(214,170,75,.2); }
.folder-icon { color:var(--gold); font-size:19px; transform:rotate(90deg); }
.folder-item strong,.folder-item small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.folder-item small { color:#746f68; font-size:11px; margin-top:3px; }
.video-library { background:linear-gradient(180deg,#141414,#0e0e0e); padding:28px; }
.library-toolbar,.page-heading,.panel-heading,.watch-heading { display:flex; justify-content:space-between; align-items:center; gap:24px; }
.library-toolbar { padding-bottom:22px; border-bottom:1px solid var(--line); }
.library-toolbar h2 { font-size:30px; margin:6px 0 0; }
.search-form,.inline-form { display:flex; align-items:center; gap:10px; }
.search-form input { width:min(320px,38vw); }
.movie-list { display:grid; gap:10px; margin-top:20px; }
.movie-row { display:grid; grid-template-columns:68px minmax(0,1fr) auto; gap:16px; align-items:center; padding:13px; border:1px solid var(--line); border-radius:14px; background:rgba(255,255,255,.018); transition:.16s ease; }
.movie-row:hover { background:rgba(255,255,255,.04); border-color:rgba(214,170,75,.22); transform:translateX(2px); }
.movie-poster-mini { height:68px; border-radius:10px; display:grid; place-items:center; color:var(--gold-2); background:radial-gradient(circle,rgba(178,31,45,.5),transparent 70%),#080808; border:1px solid rgba(255,255,255,.08); }
.movie-info h3 { margin:0 0 8px; font-size:17px; }
.movie-meta { display:flex; flex-wrap:wrap; gap:17px; color:#827d76; font-size:12px; }
.movie-meta span:not(:last-child):after { content:'•'; padding-left:17px; }
.empty-state { min-height:420px; display:grid; place-content:center; text-align:center; color:var(--muted); }
.empty-state h3 { color:var(--text); font-size:26px; margin:12px 0 8px; }.empty-icon { font-size:54px; filter:grayscale(1); }
.setup-card { max-width:680px; margin:50px auto; padding:48px; background:var(--panel); border:1px solid var(--line); border-radius:22px; box-shadow:var(--shadow); }
.narrow { max-width:480px; }
.stat-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-bottom:20px; }
.stat-card { padding:22px; border:1px solid var(--line); background:var(--panel); border-radius:15px; }
.stat-card span { display:block; color:var(--muted); font-size:13px; }.stat-card strong { display:block; margin-top:8px; font-size:42px; color:var(--gold-2); }
.admin-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:15px; margin-bottom:20px; }
.admin-tile { display:flex; gap:18px; padding:24px; border:1px solid var(--line); background:linear-gradient(135deg,#181818,#111); border-radius:16px; }
.admin-tile:hover { border-color:rgba(214,170,75,.3); }.admin-tile h2 { margin:0 0 5px; }.admin-tile p { margin:0;color:var(--muted); }.tile-icon { font-size:35px; }
.panel { border:1px solid var(--line); background:var(--panel); border-radius:17px; padding:20px; margin-top:20px; }
.panel-heading { margin-bottom:16px; }.panel-heading h2 { margin:0; }
.table-wrap { overflow:auto; } table { width:100%; border-collapse:collapse; } th,td { text-align:left; padding:13px 12px; border-bottom:1px solid var(--line); font-size:14px; } th { color:var(--gold); font-size:11px; letter-spacing:.12em; text-transform:uppercase; }
.status-pill,.role-badge { display:inline-flex; border-radius:999px; padding:5px 8px; background:#262626; font-size:11px; text-transform:uppercase; letter-spacing:.05em; }
.status-pill.ready { background:rgba(62,189,124,.15);color:#a9ebc8; }.status-pill.failed,.status-pill.cancelled { background:rgba(178,31,45,.16);color:#ffc4ca; }.status-pill.uploading { background:rgba(214,170,75,.14);color:var(--gold-2); }
.page-heading { margin:12px 0 25px; }.page-heading h1 { font-size:48px; margin:7px 0 0; }
.user-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(320px,1fr)); gap:15px; margin-top:20px; }
.user-card { border:1px solid var(--line); background:var(--panel); border-radius:17px; padding:20px; }.user-card.disabled { opacity:.58; }
.user-card-head { display:grid; grid-template-columns:48px 1fr auto; gap:12px; align-items:center; }.user-card-head h2 { margin:0 0 5px; }.avatar { width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,var(--gold),var(--red));font-weight:1000;color:#140b04; }
.status-dot { width:10px;height:10px;border-radius:50%; }.status-dot.online { background:var(--green);box-shadow:0 0 12px var(--green); }.status-dot.offline { background:#777; }
.folder-access-form { display:grid; gap:12px; padding:16px 0; margin:12px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.checkbox-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; max-height:150px; overflow:auto; }.checkbox-list label { font-size:13px;color:#bbb4ac; }.checkbox-list input { width:auto; }
.compact-form { margin-bottom:10px; }.compact-form input { min-width:120px; }
.watch-page { max-width:1250px; margin:0 auto; }.watch-heading h1 { font-size:46px;margin:8px 0 0; }
.screen-frame { background:#000; border:10px solid #161616; border-radius:16px; box-shadow:0 25px 90px #000,0 0 0 1px rgba(214,170,75,.25); overflow:hidden; }.screen-frame video { display:block;width:100%;max-height:75vh;background:#000; }
.expiry-banner { margin-top:18px; display:grid; grid-template-columns:1fr auto auto; gap:15px; align-items:center; padding:16px 18px; background:rgba(178,31,45,.12);border:1px solid rgba(227,60,72,.23);border-radius:13px; }.expiry-banner span { color:var(--muted); }.expiry-banner strong { color:#ffd0d4; }.expiry-banner b { color:var(--gold-2); }
.preparing-card { max-width:700px;margin:70px auto;text-align:center;padding:50px;background:var(--panel);border:1px solid var(--line);border-radius:20px; }.projector { font-size:60px;margin-bottom:15px; }.preparing-card .progress { height:12px;margin:25px 0 10px; }
@media (max-width: 980px) { .login-stage { grid-template-columns:1fr; }.poster-panel { min-height:430px;padding:38px; }.login-card { padding:45px 30px; }.ticket-notch { display:none; }.cinema-browser { grid-template-columns:1fr; }.folder-sidebar { border-right:0;border-bottom:1px solid var(--line); }.folder-list { grid-template-columns:repeat(2,1fr); }.stat-grid { grid-template-columns:repeat(2,1fr); }.topnav a:not(.logout-link) { display:none; } }
@media (max-width: 680px) { .page-shell { width:94vw;padding-top:18px; }.topbar { padding:0 3vw; }.brand { font-size:13px; }.user-chip { display:none; }.poster-content h1 { font-size:55px; }.poster-panel { min-height:390px;padding:26px; }.login-card { padding:35px 22px; }.hero.compact,.library-toolbar,.page-heading,.watch-heading { align-items:flex-start;flex-direction:column; }.hero { padding:28px; }.hero-stat { text-align:left;padding:0; }.folder-list { grid-template-columns:1fr; }.video-library { padding:18px 12px; }.movie-row { grid-template-columns:50px 1fr; }.movie-row form { grid-column:1/-1; }.movie-row .btn { width:100%; }.movie-poster-mini { height:54px; }.search-form,.inline-form { width:100%;flex-direction:column;align-items:stretch; }.search-form input { width:100%; }.stat-grid,.admin-grid { grid-template-columns:1fr; }.status-card { grid-template-columns:1fr; }.expiry-banner { grid-template-columns:1fr; }.checkbox-list { grid-template-columns:1fr; } }
/* Phase 2 Ergänzungen – ans Ende von assets/style.css anhängen */
.token-panel { border-color: rgba(240, 188, 60, .45); }
.token-field { width: 100%; font-family: Consolas, monospace; font-size: 1rem; }
.action-row { display: flex; gap: .5rem; flex-wrap: wrap; }
.stat-grid { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); }
