:root{font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;color:#142238;background:#f4f7fb;font-size:15px;line-height:1.45}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button{cursor:pointer}a{color:#1766d4;text-decoration:none}[hidden]{display:none!important}.topbar{background:#101d32;color:#fff;display:flex;align-items:center;justify-content:space-between;padding:12px max(20px,calc((100vw - 1180px)/2));min-height:74px}.brand{display:flex;align-items:center;gap:12px;font-size:1.2rem}.brand>div{display:grid}.brand small{font-size:.72rem;color:#b3c6dd}.brand-mark{display:grid;place-items:center;background:#2563eb;border-radius:12px;width:44px;height:44px;color:#fff;font-size:26px}.version{color:#93c5fd}.header-actions{display:flex;align-items:center;gap:14px}.container{max-width:1180px;margin:0 auto;padding:28px 20px 55px;min-height:calc(100vh - 125px)}footer{text-align:center;padding:16px;color:#728197;font-size:.78rem}.login-layout{display:grid;grid-template-columns:1.1fr .85fr;align-items:center;gap:55px;min-height:65vh}.login-info h1{font-size:clamp(2.5rem,5vw,4.1rem);line-height:1.12;margin:15px 0;color:#14223d}.login-info p{max-width:490px;font-size:1.1rem;color:#596c82}.mini-feature{padding:8px 0;color:#2454ab;font-weight:650}.eyebrow{font-size:.73rem;letter-spacing:.12em;color:#366bb9;font-weight:800;text-transform:uppercase}.panel{background:#fff;border:1px solid #e1e8f0;border-radius:17px;padding:24px;box-shadow:0 5px 24px #1835570b}.login-card{max-width:440px;width:100%;margin:auto;display:grid;gap:16px}.login-card h2{margin:0}.login-card label,.form-stack label,.settings-form label{display:grid;gap:5px;font-size:.91rem;font-weight:600}.login-card input,.form-stack input,.form-stack textarea,.settings-form input,.inline-form input{width:100%;padding:11px 13px;border:1px solid #c8d5e4;border-radius:10px;background:#fff;color:#142238}.login-card input:focus,.form-stack input:focus,.form-stack textarea:focus,.settings-form input:focus,.inline-form input:focus{outline:2px solid #93c5fd;border-color:#3b82f6}.muted{color:#697a90}.small{font-size:.82rem}.error{color:#b42332;min-height:1em}.btn{display:inline-flex;align-items:center;justify-content:center;gap:5px;border:1px solid transparent;border-radius:10px;padding:11px 15px;font-weight:700;background:#e7edf7;color:#13243a}.btn:disabled{opacity:.48;cursor:not-allowed}.btn.primary{background:#2058c7;color:#fff}.btn.outline{border-color:#cbd5e1;background:#fff;color:#1d3b67}.btn.small{padding:8px 11px;font-size:.84rem}.page-header{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:23px}.page-header h1{margin:3px 0;font-size:2rem}.page-header p{margin:3px 0}.summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:20px}.stat{background:#fff;border:1px solid #e1e8f0;border-radius:14px;padding:17px}.stat strong{display:block;font-size:1.8rem;color:#173c88}.stat small{color:#6b7c90}.two-columns{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px}.panel h2,.panel h3{margin:0 0 11px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:15px}.section-heading h2,.section-heading h3{margin:0}.stack{display:grid;gap:10px}.list-row{border:1px solid #e3eaf2;border-radius:10px;padding:12px;display:flex;justify-content:space-between;align-items:center;gap:12px}.list-row.selected{border:2px solid #2563eb;background:#f7fbff}.list-row .main{min-width:0}.list-row strong{display:block;overflow-wrap:anywhere}.list-row small{color:#6a7c90}.list-row .actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.pill{display:inline-flex;border-radius:50px;font-size:.75rem;padding:3px 9px;font-weight:650;background:#eaf0f9;color:#345882}.pill.good{background:#e0f7ec;color:#13754a}.pill.bad{background:#fff1ed;color:#a4391d}.notice{border-radius:12px;background:#e6f8ed;color:#0a6a42;padding:12px 16px;margin-bottom:18px}.notice.failed{background:#ffedf0;color:#a92734}.inline-form{display:flex;align-items:center;gap:8px}.inline-form input{max-width:245px;text-transform:uppercase;letter-spacing:.12em;font-weight:700}.settings-form{display:grid;gap:12px}.settings-form .check{display:flex;align-items:center;gap:8px}.check input{width:auto}.time-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}.days{display:flex;gap:6px;flex-wrap:wrap}.days label{display:flex;gap:4px;align-items:center;font-size:.78rem;font-weight:500;padding:5px 7px;border-radius:8px;background:#f2f5fa}.days input{width:auto}hr{border:0;border-top:1px solid #e1e8f1;margin:26px 0}.form-stack{display:grid;gap:12px}.dialog{width:min(95vw,460px);border:1px solid #ccd7e8;border-radius:17px;padding:23px;box-shadow:0 18px 50px #14213e35}.dialog::backdrop{background:#101d327c}.dialog h2{margin-top:0}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.item-label{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.item-icon{font-size:1.45rem}.player-body{background:#030610;color:#fff;overflow:hidden}.player-stage{position:relative;width:100vw;height:100dvh;display:grid;place-items:center;background:#05080f}.player-pair{text-align:center;max-width:680px;padding:30px}.player-pair h1{font-size:3rem;margin:24px 0 10px}.player-pair p{color:#abb9ce;font-size:1.15rem}.player-brand{font-size:1.8rem;font-weight:750;color:#8ab9ff}.pair-code{font-size:clamp(2rem,6vw,4.5rem);font-weight:850;letter-spacing:.12em;padding:22px 10px;margin-top:20px;border-radius:18px;background:#1d2f50;color:#fff}.slide-display,.slide{position:absolute;inset:0;overflow:hidden}.slide{display:flex;align-items:center;justify-content:center}.slide>img,.slide>video{max-width:100%;max-height:100%;width:100%;height:100%;object-fit:contain}.slide-message{max-width:85vw;font-size:clamp(1.8rem,5vw,5rem);font-weight:670;white-space:pre-wrap;overflow-wrap:anywhere;text-align:center;line-height:1.4}.play-clock{position:absolute;right:25px;top:16px;color:#fff;background:#101c2eb8;padding:8px 14px;border-radius:12px;font-size:1.7rem;font-weight:700;pointer-events:none}.pause-overlay{position:absolute;inset:0;background:#070b12;display:grid;align-content:center;text-align:center}.pause-overlay h2{font-size:2.7rem}.pause-overlay p{color:#9cacc0}.player-toolbar{position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;padding:10px 16px;background:#0b1425c0;font-size:.83rem;opacity:.18;transition:opacity .2s}.player-stage:hover .player-toolbar,.player-toolbar:focus-within{opacity:1}.player-toolbar div{display:flex;gap:7px}.player-toolbar button{color:#fff;background:#273c5b;border:1px solid #486184;border-radius:8px;padding:7px 11px}.player-toolbar button:focus-visible{outline:3px solid #60a5fa}@media(max-width:780px){.topbar{padding:12px 17px}.container{padding:18px 14px 45px}.login-layout{grid-template-columns:1fr;gap:16px}.login-info h1{font-size:2.45rem}.summary-grid{grid-template-columns:1fr 1fr}.two-columns{grid-template-columns:1fr}.page-header{align-items:flex-start;flex-direction:column}.panel{padding:16px}.list-row{align-items:flex-start;flex-wrap:wrap}.inline-form{flex-wrap:wrap}.player-toolbar{flex-wrap:wrap;gap:9px}.player-toolbar button{padding:8px}.player-pair h1{font-size:2.1rem}}
/* Achtergrondmogelijkheden zoals in de oorspronkelijke SchermLoop. */
.settings-form select{width:100%;padding:11px 13px;border:1px solid #c8d5e4;border-radius:10px;background:#fff;color:#142238}
.slide>img.slide-blurred-background{position:absolute;inset:0;width:100%;height:100%;max-height:none;max-width:none;object-fit:cover;filter:blur(28px);transform:scale(1.12);opacity:.82;pointer-events:none}
.slide>img.slide-foreground{position:relative;z-index:1}

/* Eigen lichtkrant onderaan het afspeelscherm; veilige tekst (geen HTML). */
.news-ticker{position:absolute;left:0;right:0;bottom:48px;height:48px;display:flex;align-items:center;overflow:hidden;background:rgba(8,20,40,.92);color:#fff;z-index:3;font-weight:650;font-size:1.3rem}
.news-ticker-track{display:block;width:max-content;white-space:nowrap;animation:schermloop-ticker 36s linear infinite}
@keyframes schermloop-ticker{from{transform:translateX(100vw)}to{transform:translateX(-100%)}}
.pause-overlay{z-index:5}
.play-clock{z-index:4}
