:root { --bg:#091c28; --surface:#122d3a; --surface2:#1b3b48; --surface3:#244653; --line:#315361; --text:#f4f6f5; --muted:#a8bdc7; --gold:#e8bd73; --gold-dark:#b68a42; --green:#58d4a3; --danger:#ff979b; --purple:#bba5f7; font-family:system-ui,-apple-system,'Segoe UI',Arial,sans-serif; color-scheme:dark; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:radial-gradient(ellipse 100vw 60vh at 15% -10%,#164052 0,transparent 65%),var(--bg); color:var(--text); min-height:100vh; }
a { color:inherit; text-decoration:none; }
a:hover { color:var(--gold); }
button,input,textarea,select { font:inherit; }
button { cursor:pointer; }
button:disabled { opacity:.5; cursor:not-allowed; }
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible { outline:2px solid var(--gold); outline-offset:3px; }
.site-header { background:#0b2532dd; border-bottom:1px solid #2b4753; backdrop-filter:blur(16px); position:sticky; top:0; z-index:50; }
.header-wrap { max-width:1220px; margin:auto; min-height:76px; padding:12px 25px; display:flex; gap:24px; align-items:center; justify-content:space-between; }
.brand { display:flex; align-items:center; gap:12px; font-weight:800; font-size:17px; letter-spacing:.08em; }
.brand small { font-size:9px; font-weight:600; letter-spacing:.32em; display:block; color:var(--gold); margin-top:2px; }
.brand-mark { width:43px; height:43px; display:grid; place-items:center; border:2px solid var(--gold); color:var(--gold); border-radius:12px; font-family:system-ui,'Segoe UI',sans-serif; letter-spacing:-.09em; font-weight:800; font-size:19px; }
.header-nav { display:flex; align-items:center; gap:20px; font-size:14px; color:var(--muted); }
.header-nav form { margin:0; }
.link-button { border:0; background:none; padding:0; color:var(--muted); }
.link-button:hover { color:var(--gold); }
.page-wrap { max-width:1220px; padding:40px 25px 65px; margin:0 auto; }
.page-wrap.narrow { max-width:670px; }
.page-heading { display:flex; justify-content:space-between; align-items:center; gap:25px; margin-bottom:28px; }
.page-heading > div { min-width:0; }
.eyebrow { color:var(--gold); letter-spacing:.17em; font-size:11px; font-weight:800; margin-bottom:8px; text-transform:uppercase; }
h1,h2,h3,p { margin-top:0; }
h1,h2,h3 { font-family:Manrope,'Segoe UI',Arial,sans-serif; }
h1 { font-size:clamp(28px,3vw,43px); font-weight:800; letter-spacing:-.05em; line-height:1.15; margin-bottom:12px; }
h2 { font-size:21px; font-weight:800; letter-spacing:-.03em; margin-bottom:12px; }
h3 { font-size:16px; }
p { line-height:1.55; }
.lead { font-size:16px; color:var(--muted); margin-bottom:30px; }
.muted { color:var(--muted); }
.small { font-size:12px; }
.center { text-align:center; }
.text-danger { color:var(--danger)!important; }
.gold-text { color:var(--gold); }
.stack { display:flex; flex-direction:column; gap:15px; }
.stack-top { margin-top:23px; }
.panel { background:linear-gradient(130deg,#173543ee,#112c3a); border:1px solid var(--line); border-radius:17px; padding:24px; box-shadow:0 8px 36px #00000010; }
label { display:block; font-size:13px; font-weight:700; color:#c6d3db; }
label input:not([type=checkbox]),label select,label textarea,.claim-row input,.link-field input { margin-top:8px; }
input:not([type=checkbox]),textarea,select { width:100%; background:#0c2531; border:1px solid #3d5965; border-radius:10px; color:white; outline:none; min-height:44px; padding:10px 12px; }
input::placeholder, textarea::placeholder { color:#7893a1; }
textarea { resize:vertical; min-height:90px; }
.check { display:flex; align-items:center; gap:10px; font-size:13px; font-weight:500; }
.check input { accent-color:var(--gold); width:18px; height:18px; margin:0; }
.two-columns { display:grid; grid-template-columns:1fr 1fr; gap:15px; }
.btn { appearance:none; display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:42px; text-align:center; padding:10px 17px; border-radius:10px; font-size:13px; font-weight:800; border:1px solid transparent; white-space:normal; line-height:1.35; transition:transform .15s,background .15s; }
.btn:hover { transform:translateY(-1px); }
.btn.primary { color:#10232d; background:var(--gold); border-color:var(--gold); }
.btn.primary:hover { background:#ffda98; color:#0c1c24; }
.btn.secondary { background:var(--surface3); color:white; border-color:#365b68; }
.btn.secondary:hover { background:#315564; color:white; }
.btn.ghost { background:transparent; color:var(--muted); border-color:#355463; }
.btn.ghost:hover { color:var(--text); background:#244351; }
.btn.gold-btn { background:var(--gold); color:#102a35; }
.btn.full { width:100%; }
.btn.danger-ghost { color:var(--danger); background:transparent; border-color:#724451; }
.btn.danger-ghost:hover { background:#57313b; }
.buttons-row { display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.buttons-row form { margin:0; }
.pill { display:inline-flex; align-items:center; justify-content:center; border:1px solid #526977; background:#25414b; color:#c8d7de; padding:5px 9px; border-radius:999px; font-size:10px; font-weight:800; letter-spacing:.08em; }
.pill.gold { border-color:#816d4e; color:var(--gold); background:#3d372c; }
.pill.purple { border-color:#786a99; color:var(--purple); background:#302c46; }
.pill.live-pill { color:var(--green); border-color:#336858; background:#183c38; }
.notice { border-radius:12px; padding:13px 17px; margin-bottom:23px; font-size:14px; }
.notice.success { background:#143a32; border:1px solid #35795e; color:#b8e8d2; }
.notice.error { background:#4a2931; border:1px solid #98545c; color:#ffbec4; }
.notice ul { margin:5px 0 0; padding-left:24px; }
.back-link { color:var(--muted); display:inline-block; font-size:13px; margin-bottom:18px; }
.section-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:14px; }
.section-heading h2 { margin-bottom:2px; }
.section-heading p { margin:3px 0 0; }
.tournament-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(285px,1fr)); gap:20px; }
.tournament-card { display:flex; flex-direction:column; gap:15px; }
.tournament-card h2 { margin:0; }
.tournament-card p { margin:0; }
.card-top { display:flex; justify-content:space-between; gap:8px; }
.stats-row { display:grid; grid-template-columns:repeat(3,1fr); padding:20px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); gap:6px; }
.stats-row div { display:flex; flex-direction:column; gap:5px; }
.stats-row strong { font-family:system-ui,'Segoe UI',sans-serif; font-weight:800; font-size:24px; color:white; }
.stats-row span { font-size:11px; color:var(--muted); }
.empty-state { text-align:center; padding:60px 26px; }
.empty-state p { color:var(--muted); }
.giant-icon { font-size:45px; margin-bottom:16px; }
.admin-columns { display:grid; grid-template-columns:1.12fr .88fr; gap:22px; align-items:start; margin-top:23px; }
.admin-columns .panel { margin-bottom:0; }
.link-grid { display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.link-field label { color:var(--muted); font-size:12px; }
.copy-line { display:flex; gap:8px; margin-bottom:8px; }
.copy-line input { font-size:12px; min-width:0; }
.copy-line .btn { white-space:nowrap; }
.people-list { display:grid; grid-template-columns:1fr 1fr; gap:7px 12px; margin-top:17px; }
.person { display:flex; justify-content:space-between; align-items:center; min-width:0; border:1px solid #365262; border-radius:8px; padding:7px 10px; font-size:12px; }
.person span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.person form,.team-row form { margin:0 0 0 5px; }
.icon-btn { border:none; background:none; color:var(--muted); font-size:23px; line-height:1; padding:2px 5px; }
.icon-btn:hover { color:var(--danger); }
.team-row { display:flex; align-items:center; gap:10px; padding:11px 0; border-bottom:1px solid var(--line); font-size:13px; }
.team-row strong { flex:1; }
.team-avatar { width:27px; height:27px; background:#294958; border-radius:8px; color:var(--gold); display:grid; place-items:center; font-weight:800; }
.inline-form { margin-top:20px; border-top:1px solid var(--line); padding-top:15px; display:flex; gap:12px; align-items:flex-end; }
.inline-form label { flex:1; }
.schedule-list { margin-top:14px; }
.schedule-row { display:flex; justify-content:space-between; align-items:center; gap:12px; border-bottom:1px solid var(--line); padding:10px 0; font-size:13px; }
.schedule-row > div { display:flex; flex-direction:column; gap:3px; }
.schedule-row small { color:var(--muted); }
.schedule-row:last-child { color:var(--gold); font-weight:800; border-bottom:0; }
.admin-round { padding:16px 0; border-bottom:1px solid var(--line); }
.admin-round:last-child { border-bottom:0; }
.round-header { display:flex; align-items:center; gap:12px; margin-bottom:10px; }
.round-header strong { flex:1; color:var(--gold); }
.admin-match { display:grid; grid-template-columns:42px minmax(0,1fr) 75px auto; gap:15px; padding:12px 0; align-items:center; border-top:1px solid #2a4956; }
.match-court { display:grid; place-items:center; border:1px solid var(--line); border-radius:8px; padding:8px 5px; color:var(--gold); font-size:12px; font-weight:800; }
.match-teams { display:flex; flex-direction:column; gap:3px; font-size:12px; }
.match-teams small { color:var(--muted); font-size:9px; }
.match-score { font-size:18px; font-weight:800; text-align:center; }
.match-score small { display:block; font-size:10px; color:var(--muted); font-weight:500; }
.match-actions { display:flex; gap:7px; flex-wrap:wrap; justify-content:flex-end; }
.table-scroll { overflow-x:auto; }
.rank-table { width:100%; border-collapse:collapse; white-space:nowrap; font-size:13px; }
.rank-table thead { color:var(--muted); font-size:11px; }
.rank-table th { font-weight:700; }
.rank-table td,.rank-table th { padding:11px 8px; border-bottom:1px solid var(--line); text-align:right; }
.rank-table td:first-child,.rank-table th:first-child { text-align:left; }
.rank-table td:nth-child(2),.rank-table th:nth-child(2) { text-align:left; white-space:normal; min-width:120px; }
.rank-table tbody tr:nth-child(1) td:first-child { color:var(--gold); font-weight:800; }
.rank-table tbody tr:nth-child(2) td:first-child { color:#e4ecf1; font-weight:800; }
/* Participant mobile page */
.public-hero { padding:40px 35px; border:1px solid #47606d; border-radius:20px; background:radial-gradient(circle at 95% 0%,#325663,transparent 45%),linear-gradient(110deg,#173b49,#0e2937); }
.public-hero h1 { max-width:850px; font-size:clamp(32px,5vw,58px); }
.public-hero p { color:#bdced6; }
.hero-actions { display:flex; flex-wrap:wrap; align-items:center; gap:18px; margin-top:23px; }
.live-indicator { display:inline-flex; align-items:center; gap:7px; color:var(--green); font-size:11px; letter-spacing:.08em; font-weight:800; }
.status-dot { display:inline-block; flex:none; width:9px; height:9px; border-radius:100%; background:var(--green); box-shadow:0 0 0 4px #58d4a322; animation:pulse 1.8s infinite; }
@keyframes pulse { 50% { box-shadow:0 0 0 8px #58d4a308; } }
.section-nav { display:flex; overflow:auto; gap:24px; padding:21px 5px; border-bottom:1px solid var(--line); margin-bottom:34px; font-size:13px; font-weight:800; color:var(--muted); }
.section-nav a { white-space:nowrap; }
.section-block { scroll-margin-top:110px; margin:35px 0 48px; }
.court-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.court-card { border:1px solid #486675; border-radius:15px; background:#173743; padding:19px; min-width:0; }
.court-header { display:flex; justify-content:space-between; gap:8px; align-items:center; color:var(--gold); font-size:11px; margin-bottom:12px; }
.court-team { border-bottom:1px solid #2c5460; display:flex; justify-content:space-between; gap:10px; align-items:center; padding:13px 0; font-size:13px; line-height:1.4; }
.court-team > span { min-width:0; overflow-wrap:anywhere; font-weight:700; }
.court-score { display:flex; flex-shrink:0; gap:6px; align-items:center; }
.court-score b { font-size:18px; background:#2a4e5c; border-radius:6px; text-align:center; min-width:28px; padding:6px; }
.court-score strong { font-size:23px; background:#325663; color:var(--gold); border-radius:6px; text-align:center; min-width:33px; padding:5px; }
.court-bottom { display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; padding-top:16px; }
.court-bottom small { color:var(--muted); font-size:10px; }
.text-link { font-size:11px; color:var(--gold); font-weight:700; }
.break-banner { grid-column:1/-1; background:#1b3542; border:1px dashed #456371; border-radius:10px; padding:13px; font-size:12px; color:var(--muted); }
.break-banner strong { color:var(--gold); }
.history-round { border:1px solid var(--line); border-radius:13px; background:#142e3b; padding:8px 18px; margin-bottom:12px; }
.history-heading { display:flex; justify-content:space-between; gap:10px; align-items:center; padding:13px 0; color:var(--gold); font-size:13px; }
.history-heading span { color:var(--muted); font-weight:400; }
.history-match { display:grid; grid-template-columns:30px minmax(0,1fr) 58px 60px; gap:10px; border-top:1px solid var(--line); padding:12px 0; align-items:center; font-size:12px; }
.history-match span:nth-child(2) { overflow-wrap:anywhere; }
.history-match small { display:inline-block; margin:0 5px; font-size:9px; color:var(--muted); }
.history-match strong { font-size:15px; }
.history-match a { color:var(--gold); text-align:right; }
.court-pill { color:var(--gold); font-weight:800; }
.final-banner { background:radial-gradient(circle at 50% 0%,#665234 0,transparent 65%),linear-gradient(135deg,#193643,#102934); border:1px solid #81714f; border-radius:20px; text-align:center; padding:42px 22px; }
.final-banner h2 { font-size:clamp(20px,3vw,32px); }
.final-banner p { color:var(--muted); margin-bottom:0; }
.trophy-icon { font-size:48px; margin-bottom:13px; }
.page-footer { margin-top:70px; }
/* Scoreboard mobile controls */
.scoreboard-body .page-wrap { max-width:920px; }
.score-heading { display:flex; justify-content:space-between; gap:15px; align-items:center; margin:17px 0 30px; }
.score-heading h1 { display:flex; align-items:center; flex-wrap:wrap; gap:20px; }
.clock-area { text-align:right; }
.clock-area small { color:var(--muted); font-size:10px; display:block; letter-spacing:.1em; }
.clock-area strong { font-size:23px; }
.score-headings { display:grid; grid-template-columns:minmax(0,1fr) 90px 120px; text-align:center; font-size:12px; letter-spacing:.1em; font-weight:800; color:var(--muted); padding:0 20px 14px; }
.score-headings span:first-child { text-align:left; }
.scoreline { display:grid; grid-template-columns:minmax(0,1fr) 90px 120px; align-items:stretch; gap:10px; margin-bottom:8px; }
.score-team { display:flex; align-items:center; gap:14px; padding:15px 18px; background:var(--surface); border:1px solid var(--line); border-radius:12px; font-size:clamp(15px,2.2vw,23px); overflow-wrap:anywhere; }
.score-team-index { flex:none; width:29px; height:29px; border:1px solid #456272; border-radius:8px; display:grid; place-items:center; color:var(--gold); font-size:14px; }
.score-number { display:grid; place-items:center; font:800 clamp(35px,7vw,65px)/1 system-ui,Arial,sans-serif; background:#234655; border-radius:12px; border:1px solid #365f6c; }
.score-number.highlight { background:#3a4f49; color:var(--gold); border-color:#6c6850; }
.score-status { display:flex; justify-content:space-between; gap:10px; padding:16px 0; font-size:12px; color:var(--muted); }
.score-control-panel { margin-top:12px; }
.score-control-panel h2 { margin-bottom:0; }
.score-control-panel p { margin-bottom:0; }
.claim-row { display:flex; gap:10px; }
.claim-row input { flex:1; min-width:0; }
.score-actions { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.score-actions > div { background:#1b3c48; border-radius:13px; padding:15px; min-width:0; }
.score-actions p { min-height:34px; font-size:12px; font-weight:700; text-align:center; margin:0 0 10px; }
.stepper { display:grid; grid-template-columns:1fr 1.4fr; gap:8px; }
.stepper button { min-height:68px; border-radius:10px; background:#2b5160; border:1px solid #52717d; color:white; font-size:30px; font-weight:800; }
.stepper button.plus { background:var(--gold); color:#12313c; border-color:var(--gold); }
.score-extra { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.winner-dialog { width:min(90vw,430px); background:#153542; border:1px solid #6d614e; color:white; border-radius:16px; padding:25px; box-shadow:0 20px 60px #0009; }
.winner-dialog::backdrop { background:#000a; }
/* 16:9 TV full screen, landscape and scalable to projector */
.tv-body { background:#091a24; overflow:hidden; }
.tv-root { margin:0!important; padding:0!important; max-width:none!important; width:100vw; height:100dvh; }
.tv-screen { width:100%; height:100%; min-height:0; display:flex; flex-direction:column; gap:1.5vh; background:radial-gradient(ellipse at 60% -40%,#2b5061,transparent 55%),#081b27; padding:2.5vh 2.1vw 1.5vh; position:relative; overflow:hidden; }
.tv-top { display:flex; align-items:center; justify-content:space-between; flex:none; gap:15px; min-height:12%; }
.tv-eyebrow { font-size:clamp(9px,1.1vw,18px); letter-spacing:.16em; color:var(--gold); font-weight:800; margin-bottom:.5vh; }
.tv-top h1 { margin:0; font-size:clamp(22px,3.3vw,65px); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:72vw; }
.tv-status { border:1px solid #43606f; border-radius:14px; padding:1.5vh 1.5vw; display:grid; grid-template-columns:12px 1fr; align-items:center; gap:.6vh .7vw; background:#152e3b; font-size:clamp(11px,1.3vw,21px); white-space:nowrap; }
.tv-status small { color:var(--gold); font-size:clamp(13px,1.7vw,31px); font-weight:800; grid-column:2; }
.tv-roundbar { min-height:10%; background:#153644; border:1px solid #335463; border-radius:12px; display:flex; align-items:center; justify-content:space-between; padding:1.4vh 1.5vw; gap:12px; flex:none; }
.tv-roundbar > div { display:flex; flex-direction:column; gap:.4vh; }
.tv-roundbar span { font-size:clamp(11px,1.4vw,23px); font-weight:800; color:var(--gold); letter-spacing:.08em; }
.tv-roundbar strong { font-size:clamp(10px,1.2vw,21px); }
.tv-roundbar > span:last-child { color:#d2dfdf; }
.tv-courts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.2vw; flex:1 1 auto; min-height:0; }
.tv-court { display:flex; flex-direction:column; gap:1vh; min-width:0; background:linear-gradient(150deg,#193b48,#112c3b); border:1px solid #42606e; border-radius:17px; padding:1.4vw; }
.tv-court-head { display:flex; justify-content:space-between; align-items:center; color:var(--gold); font-size:clamp(10px,1.45vw,27px); font-weight:800; letter-spacing:.1em; padding-bottom:1vh; border-bottom:1px solid #416171; }
.tv-court-head span { font-size:.65em; color:var(--green); }
.tv-team { display:flex; flex-direction:column; justify-content:space-between; flex:1; gap:1vh; min-height:0; padding:1vh 0; border-bottom:1px solid #365965; }
.tv-team-name { font-size:clamp(13px,1.8vw,36px); font-weight:800; line-height:1.18; min-height:2.5em; overflow-wrap:anywhere; }
.tv-score { display:grid; grid-template-columns:1fr 1.35fr; gap:1vw; flex:1 1 auto; align-items:stretch; min-height:0; max-height:11vh; }
.tv-sets,.tv-games { display:grid; place-items:center; border-radius:9px; font:800 clamp(25px,5vw,110px)/1 system-ui,Arial,sans-serif; }
.tv-sets { background:#244956; border:1px solid #507080; color:#f3f6f5; }
.tv-games { background:#4a5346; border:1px solid #857954; color:var(--gold); }
.tv-sets-history { min-height:2vh; font-size:clamp(10px,1vw,18px); color:var(--muted); text-align:center; letter-spacing:.08em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.tv-empty-court { justify-content:center; }
.tv-rest { text-align:center; font-size:clamp(13px,2vw,35px); color:#91afbb; }
.tv-courts.single-final { grid-template-columns:1fr; max-width:78vw; width:100%; margin:0 auto; }
.tv-courts.single-final .tv-court { display:grid; grid-template-columns:1fr 1fr; grid-template-rows:auto 1fr auto; column-gap:4vw; padding:2.5vh 4vw; }
.tv-courts.single-final .tv-court-head { grid-column:1/-1; font-size:clamp(16px,2vw,34px); }
.tv-courts.single-final .tv-team { border-bottom:0; padding:1vh 0; }
.tv-courts.single-final .tv-team-name { font-size:clamp(25px,3vw,62px); }
.tv-courts.single-final .tv-score { max-height:22vh; }
.tv-courts.single-final .tv-sets,.tv-courts.single-final .tv-games { font-size:clamp(55px,7vw,145px); }
.tv-courts.single-final .tv-sets-history { grid-column:1/-1; }
.tv-footer { display:flex; align-items:center; justify-content:space-between; gap:22px; min-height:7%; background:#0f2a36; border-radius:10px; padding:1.1vh 1.6vw; color:#d5e1e5; font-size:clamp(11px,1.2vw,24px); font-weight:800; letter-spacing:.04em; }
.tv-gold { color:var(--gold); }
.tv-loading { grid-column:1/-1; align-self:center; text-align:center; font-size:clamp(17px,2.4vw,40px); color:var(--muted); }
.tv-fullscreen { position:absolute; right:2vw; top:1.5vh; border:1px solid #77909a; border-radius:7px; background:#071d29; color:#fff; opacity:.15; padding:5px 8px; font-size:11px; z-index:3; transition:opacity .15s; }
.tv-fullscreen:hover,.tv-fullscreen:focus-visible { opacity:1; }
@media (max-width:900px) { .admin-columns,.link-grid { grid-template-columns:1fr; } .court-grid { grid-template-columns:1fr 1fr; } }
@media (max-width:620px) {
  .page-wrap { padding:25px 15px 45px; }
  .site-header .header-wrap { min-height:64px; padding:10px 15px; }
  .brand { font-size:14px; }
  .brand-mark { width:38px; height:38px; font-size:17px; }
  .header-nav { gap:12px; font-size:12px; }
  .page-heading { align-items:flex-start; flex-direction:column; }
  .panel { padding:17px; border-radius:13px; }
  .two-columns { grid-template-columns:1fr; }
  .people-list { grid-template-columns:1fr; }
  .copy-line { flex-direction:column; }
  .inline-form { align-items:stretch; flex-direction:column; }
  .admin-match { grid-template-columns:33px minmax(0,1fr) 68px; gap:9px; }
  .match-actions { grid-column:2/-1; justify-content:flex-start; }
  .round-header { flex-wrap:wrap; }
  .public-hero { padding:30px 20px; }
  .section-nav { gap:19px; }
  .court-grid { grid-template-columns:1fr; }
  .section-block { margin-top:28px; }
  .score-heading h1 { gap:10px; }
  .clock-area strong { font-size:19px; }
  .score-headings,.scoreline { grid-template-columns:minmax(0,1fr) 58px 72px; gap:6px; }
  .score-headings { padding:0 8px 11px; font-size:10px; }
  .score-team { padding:10px; gap:8px; font-size:14px; }
  .score-team-index { width:24px; height:24px; font-size:11px; }
  .score-number { font-size:39px; border-radius:8px; }
  .claim-row { flex-direction:column; }
  .score-actions { gap:9px; }
  .score-actions > div { padding:10px; }
  .stepper button { min-height:62px; }
  .score-extra .btn { padding:9px; }
  .history-match { grid-template-columns:24px minmax(0,1fr) 45px; }
  .history-match a { grid-column:2/-1; text-align:left; }
}
@media (orientation:portrait) and (max-width:800px) { .tv-screen:before { content:'TV LIVE CENTER: fuer die beste Ansicht Bildschirm drehen'; font-size:11px; color:var(--gold); text-align:center; } .tv-top { min-height:10%; } .tv-courts { grid-template-columns:1fr; overflow:auto; } .tv-court { min-height:22vh; } .tv-team { flex-direction:row; align-items:center; } .tv-score { max-height:none; min-height:8vh; } .tv-sets-history { display:none; } .tv-courts.single-final { max-width:100%; } .tv-courts.single-final .tv-court { display:flex; } }
@media (prefers-reduced-motion:reduce) { *,*:before,*:after { scroll-behavior:auto!important; animation:none!important; transition:none!important; } }
/* 0.1.1: PIN gate and admin security panel */
#pin-controls label { display:grid; gap:8px; font-weight:700; }
#pin-controls input { font-size:clamp(22px,4vw,30px); letter-spacing:.25em; text-align:center; font-variant-numeric:tabular-nums; }
#scorer-session-actions { border-top:1px solid var(--line); padding-top:16px; }
#scorer-session-actions .btn { width:100%; }
.wrap-actions { flex-wrap:wrap; }
.audit-table { min-width:540px; }
#turnier-sicherheit .notice { margin-top:12px; }
