:root{font-family:system-ui,-apple-system,"Segoe UI",sans-serif;color:#f9fafb;background:#071426;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{cursor:pointer}a{color:#f8ce56}.tv-body{min-height:100vh;background:radial-gradient(ellipse at 50% 15%,#25466a 0%,#0b1e35 50%,#050d19 100%)}.scoreboard{width:100vw;min-height:100vh;aspect-ratio:16/9;padding:2.5vh 3.4vw;display:flex;flex-direction:column;overflow:hidden}.topline{display:flex;justify-content:space-between;color:#bacbe0;font-size:clamp(12px,1.08vw,24px);font-weight:800;letter-spacing:.14em}.live{color:#f5d46e;display:flex;gap:12px;align-items:center}.live i{width:12px;height:12px;border-radius:50%;background:#f44d58;box-shadow:0 0 18px #f44d58}.hero{text-align:center;margin-top:1.5vh}.kicker{font-weight:950;color:#ffcf5e;font-size:clamp(20px,2.2vw,48px);letter-spacing:.23em;text-shadow:0 4px 18px #10151c}.hero h1{margin:.45vh 0 0;font-size:clamp(32px,4vw,92px);font-weight:1000;line-height:1.05;letter-spacing:-.04em}.hero h1 span{color:#eac15c}.hero p{color:#aabfd7;font-size:clamp(11px,1.03vw,22px);font-weight:850;letter-spacing:.18em}.versus{flex:1;display:grid;grid-template-columns:minmax(0,1fr) 12% minmax(0,1fr);gap:2%;align-items:stretch;min-height:0;margin:2vh 0 1vh}.team{border:2px solid #3e6189;border-radius:28px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1vh 0;box-shadow:inset 0 0 75px #071b3a,0 16px 38px #0005}.parents{background:linear-gradient(130deg,#173c60,#0b1d34);border-color:#3ba3d8}.children{background:linear-gradient(130deg,#4b281c,#251c25);border-color:#efac46}.symbol{font-size:clamp(35px,5vw,115px);line-height:.95}.parents .symbol{color:#9bdcfc}.children .symbol{color:#ffcc74}.team h2{font-size:clamp(18px,2vw,45px);letter-spacing:.12em;margin:1.2vh 0 0}.score{font-size:clamp(100px,15vw,335px);line-height:1;font-weight:1000;letter-spacing:-.09em;font-variant-numeric:tabular-nums;margin-right:.08em}.parents .score{color:#b7ecff;text-shadow:0 0 50px #2288ce66}.children .score{color:#ffe09b;text-shadow:0 0 50px #fc9a3766}.team-sub{color:#cbd5e1;font-size:clamp(12px,1.2vw,26px);font-weight:800;letter-spacing:.16em}.center{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1vh}.vs{font-size:clamp(35px,4.2vw,90px);font-weight:1000;color:#f7d36b}.divider-symbol{color:#f3d06b;font-size:2vw}.center-label{text-align:center;font-weight:900;font-size:clamp(11px,1vw,22px);line-height:1.3;color:#b8c8d9}.lead{text-align:center;font-size:clamp(16px,1.55vw,34px);font-weight:950;color:#fbd776;letter-spacing:.1em;margin:0 0 1.7vh}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:1vw}.metric{border:1px solid #36516d;border-radius:14px;background:#10263b99;text-align:center;padding:1.35vh .4vw;display:flex;flex-direction:column;gap:.35vh}.metric span,.foot-label{color:#afc0d1;font-size:clamp(10px,.9vw,19px);letter-spacing:.09em;font-weight:850}.metric strong{font-size:clamp(25px,2.5vw,56px);line-height:1.1}.footer{border-top:2px solid #3a526a;margin-top:2.3vh;padding-top:1.45vh;display:grid;grid-template-columns:1fr 1fr 1fr;align-items:end}.footer>div{display:flex;flex-direction:column;gap:.5vh}.footer strong{font-size:clamp(18px,1.7vw,36px)}.time-box{text-align:center}.time-box strong{font-size:clamp(35px,3.4vw,74px);color:#ffdb73;font-variant-numeric:tabular-nums}.status{text-align:right}.admin-body{min-height:100vh;padding:22px;background:#08182c}.admin-panel{max-width:650px;margin:auto;background:#122943;border:1px solid #335575;border-radius:22px;padding:clamp(20px,4vw,40px);box-shadow:0 30px 60px #0005}.eyebrow{color:#ffd36a;letter-spacing:.18em;font-size:12px;font-weight:900}.admin-panel h1{font-size:clamp(26px,5vw,38px);line-height:1.1;margin:12px 0}.admin-panel p{color:#c1d1e1;line-height:1.55}.admin-panel h2{margin-top:28px}.admin-totals{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:24px 0}.admin-totals>div{background:#091a2d;border-radius:14px;text-align:center;padding:16px}.admin-totals small{display:block;color:#c6d4e5}.admin-totals strong{display:block;font-size:48px}.actions{display:grid;gap:12px}.action{width:100%;padding:20px;border:0;border-radius:14px;color:white;text-align:left;font-weight:900;font-size:clamp(19px,4vw,24px);display:flex;justify-content:space-between;align-items:center;gap:12px}.action span{font-size:12px;white-space:nowrap}.parent{background:#166da6}.child{background:#a25a13}.draw{background:#5b5483}.action:hover{filter:brightness(1.17)}button:disabled{opacity:.55;cursor:wait}.toolbar{display:flex;gap:16px;flex-wrap:wrap;align-items:center;margin-top:16px}.secondary{border:1px solid #6c87a0;background:#183957;color:white;border-radius:10px;padding:12px}.history{padding-left:22px;color:#cadae9;line-height:1.9}.logout{text-align:right;margin-top:30px}.logout button{border:0;background:transparent;color:#c2d1e1;text-decoration:underline}.login-form{display:grid;gap:12px}.login-form input{padding:14px;border:1px solid #64809b;border-radius:10px;background:#071628;color:white}.login-form .action{justify-content:center}#notice{min-height:27px;margin-top:12px;font-weight:bold;color:#fbd16d}.error{color:#ffa7a7;margin-bottom:15px}@media(max-aspect-ratio:4/3){.scoreboard{aspect-ratio:auto;min-height:100dvh}.versus{min-height:320px}.score{font-size:clamp(70px,12vw,160px)}.metrics{grid-template-columns:repeat(2,1fr)}.footer{gap:20px}.hero h1{font-size:clamp(24px,4vw,52px)}}

/* 1.2 – tydelig adskillelse mellem test og rigtige resultater */
.test-ribbon{position:absolute;z-index:5;top:0;left:18%;right:18%;background:#9c4c11;color:#fff4d5;border-radius:0 0 16px 16px;padding:8px 20px;text-align:center;font-size:clamp(12px,1.05vw,20px);font-weight:950;letter-spacing:.06em;box-shadow:0 4px 18px #0008}.test-ribbon[hidden]{display:none!important}.scoreboard{position:relative}.mode-box{border:2px solid #2486bb;border-radius:14px;background:#0b2237;padding:16px;margin:18px 0}.mode-box.is-test{border-color:#ffbb55;background:#362710}.mode-box strong{font-size:18px;color:#ffe19c}.mode-box p{margin:7px 0 12px;font-size:14px}.mode-controls{display:flex;flex-wrap:wrap;gap:10px}.mode-controls button[hidden],button[hidden]{display:none!important}.danger{border-color:#bd6767;color:#ffcece}.mode-controls .secondary{background:#206b94}.mode-box.is-test .mode-controls .secondary{background:#1b7951}

/* 1.4 – tydelig og sikker LIVE-prøve */
.rehearsal-ribbon{position:absolute;z-index:5;top:0;left:13%;right:13%;background:#7c2d12;color:#fff8dc;border:2px solid #ffcd56;border-top:0;border-radius:0 0 16px 16px;padding:8px 15px;text-align:center;font-size:clamp(12px,1.05vw,20px);font-weight:950;letter-spacing:.04em;box-shadow:0 4px 18px #0008}.rehearsal-ribbon[hidden]{display:none!important}.mode-box.is-rehearsal{border-color:#ffcc55;background:#432719}.mode-box.is-rehearsal .mode-controls .danger{background:#8b3030;border-color:#e28a70}

/* 1.5: LIVE-status følger API-tilstanden; indikatoren pulserer kun ved aktiv LIVE/LIVE-prøve. */
.live[data-live="true"] i{background:#22c55e;box-shadow:0 0 14px #22c55e,0 0 24px #22c55e88;animation:scoreboard-live-pulse 2s ease-in-out infinite}
.live[data-live="false"] i{background:#f44d58;box-shadow:0 0 18px #f44d58;animation:none}
@keyframes scoreboard-live-pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(.8)}}
@media(prefers-reduced-motion:reduce){.live[data-live="true"] i{animation:none}}

/* 1.6: inaktive prøvevisninger er fjernet. */
