:root{--navy:#16324f;--blue:#1f6e8c;--cyan:#45a9c8;--bg:#f2f5f7;--card:#fff;--text:#17222b;--muted:#677480;--border:#dbe3e8;--green:#2e7d32;--red:#b3261e;--shadow:0 12px 35px rgba(22,50,79,.09)}*{box-sizing:border-box}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--text)}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}.topbar{min-height:74px;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:14px clamp(18px,4vw,56px);box-shadow:0 4px 18px rgba(0,0,0,.15)}.brand{font-weight:900;letter-spacing:.09em;font-size:19px}.subbrand{font-size:12px;opacity:.75;margin-top:3px}.topbar nav{display:flex;align-items:center;gap:22px}.topbar nav a,.linkbtn{color:#fff;font-weight:700;font-size:14px}.topbar form{margin:0}.linkbtn{border:0;background:none;cursor:pointer;padding:0}.shell{max-width:1280px;margin:0 auto;padding:34px clamp(16px,3vw,34px) 70px}footer{text-align:center;color:var(--muted);padding:20px;font-size:12px}.pagehead{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:22px}.pagehead h1,h1{font-size:34px;line-height:1.1;margin:5px 0 6px;color:var(--navy)}h2{color:var(--navy);margin:6px 0 10px}.eyebrow{font-size:12px;letter-spacing:.14em;font-weight:900;color:var(--blue)}.muted{color:var(--muted)}.small{font-size:12px}.meta{display:flex;gap:10px;flex-wrap:wrap}.meta span,.badge{padding:5px 9px;border-radius:999px;background:#e8f1f5;color:var(--navy);font-size:12px;font-weight:800}.panel,.auth-card,.empty,.stat{background:var(--card);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow)}.panel{padding:22px;margin:16px 0}.auth-card{max-width:520px;margin:60px auto;padding:30px}.auth-card.wide{max-width:760px}.empty{padding:42px;text-align:center}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.stat{padding:20px}.stat span{display:block;color:var(--muted);font-weight:700;font-size:13px}.stat strong{display:block;font-size:32px;color:var(--navy);margin-top:6px}.gridcards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.form{display:grid;gap:16px}.grid2{grid-template-columns:repeat(2,minmax(0,1fr))}.full{grid-column:1/-1}label{display:grid;gap:6px;font-weight:800;font-size:13px;color:var(--navy)}input,select,textarea{width:100%;padding:12px 13px;border:1px solid #bccad3;border-radius:10px;background:#fff;font:inherit;color:var(--text);outline:none}input:focus,select:focus,textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(31,110,140,.12)}.check{display:flex;grid-template-columns:auto 1fr;align-items:center;gap:10px}.check input{width:auto}.primary,.secondary{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:10px;padding:12px 16px;font-weight:900;letter-spacing:.03em;cursor:pointer}.primary{background:var(--blue);color:#fff}.secondary{background:#e8f1f5;color:var(--navy)}.button{text-decoration:none}.button:hover{text-decoration:none;filter:brightness(.98)}.alert{padding:14px 16px;border-radius:10px;margin-bottom:16px}.alert.success{background:#e9f5ea;color:#205f26;border:1px solid #b9dbbd}.alert.error{background:#fff0ef;color:#8f201a;border:1px solid #edc1bd}.callout{background:#fff8e8;border:1px solid #ead8a4;padding:14px;border-radius:10px;margin-top:20px}.chips{display:flex;gap:8px;flex-wrap:wrap}.chip{background:#eef1f3;padding:7px 10px;border-radius:999px;font-size:12px;font-weight:800;color:var(--muted)}.chip.ok{background:#e6f3e7;color:var(--green)}table{width:100%;border-collapse:collapse}th{text-align:left;font-size:12px;color:var(--muted);letter-spacing:.04em;text-transform:uppercase;border-bottom:2px solid var(--border);padding:10px}td{padding:12px 10px;border-bottom:1px solid var(--border);vertical-align:top}.members{display:grid;grid-template-columns:repeat(2,1fr);gap:12px 18px}.members label{display:grid;grid-template-columns:190px 1fr;align-items:center}.hint{margin-top:18px;font-size:13px}hr{border:0;border-top:1px solid var(--border);width:100%;margin:6px 0}@media(max-width:800px){.topbar{align-items:flex-start;gap:14px;flex-direction:column}.topbar nav{gap:12px;flex-wrap:wrap}.pagehead{align-items:flex-start;flex-direction:column}.stats,.gridcards,.grid2,.members{grid-template-columns:1fr}.members label{grid-template-columns:1fr}.shell{padding-top:22px}table{display:block;overflow-x:auto}.pagehead h1,h1{font-size:28px}}

.actions{display:flex;gap:10px;align-items:center}.actions.wrap{flex-wrap:wrap}.inline-form{display:flex;gap:8px;align-items:center}.inline-form select{min-width:88px}
.planner-toolbar{display:flex;justify-content:space-between;gap:24px;align-items:flex-end}.planner-toolbar>div:first-child{max-width:720px}
.planner-summary{display:grid;grid-template-columns:1fr 1fr;gap:16px}.panel.compact{margin:0;padding:18px}
.queue-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:9px 0;border-bottom:1px solid var(--border)}.queue-row:last-child{border-bottom:0}
.mini{border:1px solid var(--border);background:#fff;color:var(--navy);padding:7px 9px;border-radius:8px;font-weight:800;cursor:pointer}.mini.warning{background:#fff8e8;border-color:#ead8a4}
.section-title{display:flex;justify-content:space-between;align-items:end;gap:16px;margin-top:26px}.legend{display:flex;gap:8px;flex-wrap:wrap}
.heat-card{background:var(--card);border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow);margin:16px 0;overflow:hidden}
.heat-head{display:flex;justify-content:space-between;gap:18px;align-items:end;padding:18px 20px;background:#f8fbfc;border-bottom:1px solid var(--border)}
.heat-head h2{margin-bottom:0}.heat-controls{display:flex;gap:12px;align-items:end}.heat-controls label{min-width:150px}.heat-controls .check{min-width:auto;padding-bottom:10px}
.lane-grid{display:grid;gap:0}.lane-grid.cols-2{grid-template-columns:repeat(2,1fr)}.lane-grid.cols-3{grid-template-columns:repeat(3,1fr)}.lane-grid.cols-4{grid-template-columns:repeat(4,1fr)}
.lane-card{padding:16px;border-right:1px solid var(--border);position:relative}.lane-card:last-child{border-right:0}.lane-name{font-size:17px;font-weight:950;color:var(--navy);margin-bottom:12px}
.lane-card label{margin-bottom:10px}.catchup{background:#fff8e8;border:1px solid #ead8a4;border-radius:9px;padding:8px}.free-state{font-weight:950;color:var(--muted);font-size:20px;letter-spacing:.08em;text-align:center;padding:8px}
.heat-foot{padding:10px 18px;background:#fafcfd;border-top:1px solid var(--border)}
@media(max-width:1000px){.lane-grid.cols-4,.lane-grid.cols-3{grid-template-columns:repeat(2,1fr)}.lane-card{border-bottom:1px solid var(--border)}.planner-toolbar{align-items:flex-start;flex-direction:column}.heat-head{align-items:flex-start;flex-direction:column}.heat-controls{width:100%;flex-wrap:wrap}}
@media(max-width:650px){.planner-summary,.lane-grid.cols-2,.lane-grid.cols-3,.lane-grid.cols-4{grid-template-columns:1fr}.heat-controls{align-items:stretch;flex-direction:column}.heat-controls label{min-width:0}.lane-card{border-right:0}.actions{flex-wrap:wrap}.inline-form{width:100%}}

.judge-shell{max-width:1180px;margin:0 auto}.judge-top{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:16px}.judge-event{font-weight:800;color:var(--muted)}
.judge-team{background:var(--navy);color:#fff;border-radius:18px;padding:18px 22px;margin-bottom:16px}.judge-team .eyebrow{color:#b9d7e4}.judge-teamname{font-size:34px;font-weight:950;line-height:1.05;margin:6px 0}.status-pill{display:inline-block;padding:6px 10px;border-radius:999px;background:#eaf3f7;color:var(--navy);font-size:12px;font-weight:900;letter-spacing:.05em}
.judge-form{display:grid;gap:16px}.time-entry{background:#fff;border:1px solid var(--border);border-radius:18px;padding:18px;display:grid;grid-template-columns:1.5fr 1fr;gap:16px}.time-input{font-size:38px!important;font-weight:950;text-align:center;letter-spacing:.04em}.plausibility{grid-column:1/-1;color:var(--muted);font-size:13px}
.errors-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.error-tile{background:#fff;border:1px solid var(--border);border-radius:14px;padding:12px;min-height:135px;display:flex;flex-direction:column;justify-content:space-between}.error-label{font-weight:900;font-size:15px}.error-sec{font-size:12px;color:var(--muted)}
.stepper{display:grid;grid-template-columns:44px 1fr 44px;gap:6px}.stepper input{text-align:center;font-size:22px;font-weight:900;padding:6px}.step{font-size:28px;font-weight:900;border:0;border-radius:10px;background:var(--navy);color:#fff;cursor:pointer}
.judge-next{width:100%;border:0;border-radius:14px;padding:18px;background:var(--blue);color:#fff;font-size:18px;font-weight:950;cursor:pointer}.success-block,.error-block{padding:18px;border-radius:14px;margin:14px 0}.success-block{background:#ecf7ef;border:1px solid #bddfc5}.error-block{background:#fff0ee;border:1px solid #e7b6af}.error-block.compact{padding:9px;margin:8px 0}
.review-score{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:16px 0}.review-score>div{background:#fff;border:1px solid var(--border);border-radius:16px;padding:18px}.review-score span{display:block;font-size:11px;color:var(--muted);font-weight:900}.review-score strong{display:block;font-size:28px;color:var(--navy);margin-top:5px}.review-row{display:flex;justify-content:space-between;border-bottom:1px solid var(--border);padding:9px 0}.fehlerfrei{font-size:24px;font-weight:950;color:#2e7d32;padding:12px 0}
.signature-pad{width:100%;height:180px;border:2px dashed var(--border);background:#fff;border-radius:12px;touch-action:none}.confirm-box{background:#eef5f8;padding:14px;border-radius:10px;font-weight:800}.danger{background:#b3261e;color:#fff;border:0;border-radius:12px;padding:14px;font-weight:900}.full{width:100%}
.live-hero{display:flex;justify-content:space-between;align-items:center;background:#eef5f8;border:1px solid var(--border);border-radius:16px;padding:16px 20px;margin-bottom:14px}.live-hero h2{margin:0}
.live-lanes{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.live-lane-card{background:#fff;border:1px solid var(--border);border-radius:16px;padding:15px}.live-lane-card h2{min-height:52px}.live-score{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:12px 0}.live-score>div{background:#f5f8fa;padding:8px;border-radius:8px}.live-score span{font-size:10px;color:var(--muted);display:block}.live-score strong{font-size:17px}.status-line{font-weight:950;padding:8px 0;color:var(--blue)}
.release-bar{display:flex;justify-content:space-between;align-items:center;gap:20px;background:var(--navy);color:#fff;border-radius:16px;padding:18px 20px;margin:16px 0}.release-bar .eyebrow,.release-bar .small{color:#c8dae2}.primary.big{padding:16px 22px;font-size:16px}
.data-table{width:100%;border-collapse:collapse}.data-table th,.data-table td{padding:9px;border-bottom:1px solid var(--border);text-align:left}.data-table th{font-size:11px;color:var(--muted);text-transform:uppercase}
@media(max-width:1100px){.errors-grid{grid-template-columns:repeat(3,1fr)}.live-lanes{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.errors-grid{grid-template-columns:repeat(2,1fr)}.time-entry,.review-score,.live-lanes{grid-template-columns:1fr}.judge-top,.release-bar{align-items:stretch;flex-direction:column}.judge-teamname{font-size:28px}}

.fallback-badge{display:inline-block;margin-top:8px;padding:6px 9px;border-radius:8px;background:#fff0c7;border:1px solid #e1c46e;color:#6f5400;font-size:11px;font-weight:950;letter-spacing:.04em}
.repeat-badge{display:block;margin:8px 0;padding:7px 9px;border-radius:8px;background:#eef5ff;border:1px solid #bfd2ea;color:#17324d;font-size:11px;font-weight:900}
.special-actions{display:grid;gap:10px;margin-top:10px}.special-form{display:grid;gap:7px;padding:10px;border:1px solid var(--border);border-radius:10px;background:#fafcfd}
.warning-btn{background:#c67c00;color:#fff;border:0;border-radius:10px;padding:10px 12px;font-weight:900;cursor:pointer}
.lane-actions{display:grid;gap:8px;margin-top:10px}.next-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.next-card{border:1px solid var(--border);border-radius:12px;padding:12px;background:#fafcfd}
details{margin-top:8px}details summary{cursor:pointer;font-weight:850;color:var(--navy)}
@media(max-width:800px){.next-grid{grid-template-columns:1fr}}

.public-body{margin:0;background:#08121c;color:#eef5f8;font-family:Aptos,Segoe UI,Arial,sans-serif;overflow:hidden}
.public-stage{box-sizing:border-box;width:100vw;height:100vh;padding:2.2vh 2.2vw;overflow:hidden}
.public-body .card{background:#102333;border:1px solid #24475f;border-radius:18px;padding:1.4vw;box-shadow:none;color:#eef5f8}
.pub-header{display:flex;justify-content:space-between;align-items:end;gap:2vw;margin-bottom:2vh}
.pub-eyebrow{font-size:clamp(11px,1vw,18px);font-weight:900;letter-spacing:.14em;color:#79bdd7;text-transform:uppercase}
.pub-eyebrow.second{margin-top:1.4vh}
.pub-title{font-size:clamp(28px,3vw,58px);font-weight:950;line-height:1.02;color:white}
.phase-line{font-size:clamp(18px,1.5vw,30px);font-weight:900;color:#b8d4df}
.pub-muted{color:#98aebb;font-size:clamp(12px,1vw,18px)}.pub-empty{display:flex;align-items:center;justify-content:center;color:#91a8b5;font-weight:800;min-height:12vh}
.connection-indicator{position:fixed;right:1vw;bottom:.8vh;padding:.35em .7em;background:#173d2c;border:1px solid #3e7c5b;border-radius:999px;font-size:clamp(10px,.65vw,13px);font-weight:900;letter-spacing:.08em;color:#d8f6e1}
.connection-indicator.offline{background:#5f3b13;border-color:#9a6e35;color:#ffe6b8}

.mod-grid{display:grid;grid-template-columns:3fr 1fr;gap:1.4vw;height:100%}.mod-main{height:calc(100% - 2.8vw);overflow:hidden}.mod-side{display:grid;grid-template-rows:auto 1fr 1fr;gap:1.2vh;min-height:0}
.mod-three{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1vw;margin-top:2vh}.block-title{font-size:clamp(14px,1.25vw,24px);font-weight:950;color:#d8e8ef;border-bottom:3px solid #2b6682;padding-bottom:.6vh;margin-bottom:.7vh}.block-title.now{color:#fff;border-color:#54b9df}.block-title.quiet{color:#9fb4bf;border-color:#38505f}
.pub-lane{background:#0b1b29;border:1px solid #203e52;border-radius:12px;padding:.75vw;margin:.55vh 0}.pub-lane-name{font-size:clamp(11px,.85vw,16px);font-weight:950;color:#69c1e4}.pub-teamname{font-size:clamp(15px,1.4vw,28px);font-weight:950;line-height:1.05;overflow-wrap:anywhere}.pub-subline{font-size:clamp(10px,.75vw,14px);color:#9bb6c3;margin-top:.3vh}.pub-mini-tag{font-size:.55em;color:#ffd17a;border:1px solid #7a6130;border-radius:5px;padding:.08em .35em;margin-left:.25em}
.threshold{display:flex;justify-content:space-between;gap:1vw;padding:.6vh 0;border-bottom:1px solid #27465a;font-size:clamp(13px,1vw,18px)}.threshold span{font-weight:950;color:#fff}.rank-row,.fast-row{display:grid;grid-template-columns:auto 1fr auto;gap:.6vw;align-items:center;border-bottom:1px solid #213d4f;padding:.45vh 0;font-size:clamp(11px,.85vw,16px)}.fast-row{grid-template-columns:auto 1fr}.fast-row strong{color:#fff}.rank-row span,.fast-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.announcer-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1vw;height:88vh;overflow:hidden}.ann-card{background:#102333;border:1px solid #24475f;border-radius:16px;padding:1vw;min-height:0}.ann-top{display:flex;justify-content:space-between;font-size:clamp(11px,.8vw,15px);font-weight:950;color:#6fc4e5}.ann-team{font-size:clamp(18px,1.55vw,30px);font-weight:950;margin:.5vh 0 1vh;overflow-wrap:anywhere}.ann-result{display:flex;gap:.8vw;align-items:baseline;flex-wrap:wrap}.ann-result strong{font-size:clamp(24px,2vw,40px);color:white}.ann-result span{font-size:clamp(14px,1vw,20px)}.ann-result .ok{color:#8de0a7;font-weight:950}.ann-result.dq{font-size:clamp(22px,2vw,38px);font-weight:950;color:#ffac9f}.ann-errors{display:flex;gap:.4vw;flex-wrap:wrap;margin-top:.8vh}.ann-errors span{background:#321e1b;border:1px solid #6f4038;border-radius:6px;padding:.25em .45em;font-size:clamp(10px,.65vw,13px)}

.result-layout{display:grid;grid-template-columns:3fr 1fr;gap:1.2vw;height:88vh}.ranking-board{overflow:hidden}.result-side{display:grid;grid-template-rows:2fr 1fr;gap:1.2vh;min-height:0}
.ranking-line{display:grid;grid-template-columns:5% 26% 1fr 12%;gap:.6vw;align-items:center;border-bottom:1px solid #203c4e;padding:.55vh 0}.rank-no{font-size:clamp(14px,1.25vw,24px);font-weight:950}.rank-team{font-size:clamp(14px,1.25vw,24px);font-weight:900;overflow-wrap:anywhere}.rank-runs{font-size:clamp(10px,.8vw,15px);color:#9fb7c3}.best-run{color:#fff;font-weight:900}.rank-best{text-align:right;font-size:clamp(16px,1.4vw,28px);font-weight:950;color:#fff}
.threshold-strip{display:flex;gap:.8vw;flex-wrap:wrap}.threshold-strip span{background:#102333;border:1px solid #2a5269;border-radius:10px;padding:.5em .8em;font-size:clamp(12px,.9vw,18px)}.threshold-strip b{color:#fff}

.schedule-three{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1.3vw;height:93vh}.sched-block{background:#102333;border:2px solid #24475f;border-radius:20px;padding:1.4vw;overflow:hidden}.sched-block.now{border-color:#55bde5;background:#133148}.sched-block.quiet{opacity:.8}.sched-label{font-size:clamp(18px,1.8vw,34px);font-weight:950;margin-bottom:1.2vh;color:#fff}.sched-block .pub-lane{padding:1.2vw;margin:1vh 0}.sched-block .pub-lane-name{font-size:clamp(14px,1.1vw,22px)}.sched-block .pub-teamname{font-size:clamp(22px,2vw,40px)}

.heat-page{height:89vh}.heat-overview-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1vw}.heat-overview-card{background:#102333;border:1px solid #27475c;border-radius:16px;padding:1vw}.heat-overview-card.current{border:3px solid #55bde5;background:#143047}.heat-no{font-size:clamp(20px,1.7vw,34px);font-weight:950;margin-bottom:.8vh}.heat-overview-row{display:grid;grid-template-columns:28% 1fr;gap:.6vw;border-top:1px solid #27465a;padding:.55vh 0;font-size:clamp(13px,1vw,20px)}.heat-overview-row strong{color:#68c2e5}.heat-overview-row span{font-weight:850;overflow-wrap:anywhere}.heat-overview-row small{color:#ffd17a}

@media(max-width:1100px){.public-body{overflow:auto}.public-stage{height:auto;min-height:100vh;overflow:visible}.mod-grid,.result-layout{grid-template-columns:1fr}.mod-side,.result-side{grid-template-rows:auto}.mod-three,.schedule-three{grid-template-columns:1fr}.announcer-grid{grid-template-columns:repeat(2,1fr);height:auto}.heat-overview-grid{grid-template-columns:repeat(2,1fr)}}

.tie-card{display:grid;grid-template-columns:1fr minmax(220px,320px) auto;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--border)}
.locked-badge{padding:10px 14px;border-radius:10px;background:#e8f4eb;border:1px solid #b7d8bf;color:#1f6a31;font-weight:950}
.ll-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.ll-card{border:1px solid var(--border);border-radius:14px;padding:12px;background:#fafcfd}.ll-card h3{margin-top:0}.ll-row{display:grid;grid-template-columns:auto auto 1fr;gap:8px;padding:7px 0;border-bottom:1px solid var(--border);align-items:center}.ll-row b{text-align:right}.winner-box{padding:10px;background:#e8f4eb;border-radius:8px;font-weight:900;margin-top:10px}
.bracket-scroll{overflow-x:auto;padding-bottom:8px}.bracket-grid{display:grid;grid-template-columns:repeat(5,minmax(230px,1fr));gap:14px;min-width:1180px}.bracket-col-title{font-weight:950;color:var(--navy);margin-bottom:8px}.match-card{border:1px solid var(--border);border-radius:13px;padding:10px;background:#fff;margin-bottom:12px}.match-card.done{background:#f4faf6}.match-label{font-size:12px;font-weight:900;color:var(--muted);margin-bottom:6px}.match-slot{display:grid;grid-template-columns:auto 1fr auto;gap:6px;align-items:center;padding:7px 0;border-top:1px solid var(--border)}.lane-dot{font-size:11px;font-weight:900;color:var(--blue)}.winner-mark{font-size:9px;font-weight:950;color:#25753a;background:#e4f3e8;padding:3px 5px;border-radius:5px}
.ko-duel{display:grid;grid-template-columns:1fr 1fr;gap:16px}.ko-side{margin:0}.lane-hero{font-size:22px;font-weight:950;color:var(--blue);margin-bottom:6px}.compact-errors{grid-template-columns:repeat(2,1fr);margin:12px 0}.ko-error{font-size:12px;background:#f6f8f9;border:1px solid var(--border);border-radius:8px;padding:8px}.ko-error input{margin-top:5px}.ko-result-line{margin-top:12px;padding:12px;border-radius:9px;background:#eef5f8;font-size:18px;font-weight:900}
@media(max-width:1000px){.ll-grid{grid-template-columns:repeat(2,1fr)}.tie-card{grid-template-columns:1fr}.ko-duel{grid-template-columns:1fr}}
@media(max-width:600px){.ll-grid{grid-template-columns:1fr}}

.ll-score-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.ll-score-card{margin:0}.ll-error-list{display:grid;gap:6px;margin:12px 0}.ll-error-list label{font-size:12px;background:#f6f8f9;border:1px solid var(--border);padding:7px;border-radius:8px}.ll-error-list input{margin-top:4px}
.event-order-list{display:grid;gap:7px}.event-order-row{display:grid;grid-template-columns:42px 1fr auto auto;gap:12px;align-items:center;padding:9px 11px;border:1px solid var(--border);border-radius:9px;background:#fafcfd}.event-order-row.done{background:#f0f8f2}.event-order-row em{font-style:normal;font-size:11px;font-weight:900;color:var(--blue)}.event-order-row b{font-size:11px;color:var(--muted)}
.women-bracket{display:grid;grid-template-columns:repeat(4,minmax(220px,1fr));gap:12px;overflow-x:auto}

.final-display-layout{display:grid;grid-template-columns:3fr 1fr;gap:1.2vw;height:54vh}.current-final-card{overflow:hidden}.final-next-stack{display:grid;grid-template-rows:1fr 1fr;gap:1.2vh;min-height:0}
.final-label{font-size:clamp(34px,3.2vw,62px);font-weight:950;color:#fff;margin:1vh 0 2vh}
.final-duel-public{display:grid;grid-template-columns:1fr 1fr;gap:1.2vw}.final-duel-public>div{background:#0b1b29;border:1px solid #2a4b60;border-radius:16px;padding:1.3vw}.final-duel-public span{display:block;color:#69c1e4;font-weight:950;font-size:clamp(14px,1.1vw,22px)}.final-duel-public strong{display:block;font-size:clamp(26px,2.5vw,48px);line-height:1.05;margin:.8vh 0;color:#fff}.final-duel-public b{display:block;font-size:clamp(14px,1.1vw,22px);color:#d9eef7}
.ll-public-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.8vw}.ll-public-lane{background:#0b1b29;border:1px solid #2a4b60;border-radius:14px;padding:1vw}.ll-public-lane>div{color:#69c1e4;font-weight:950}.ll-public-lane strong{display:block;font-size:clamp(18px,1.6vw,30px);margin:.5vh 0}.ll-public-lane span{font-size:clamp(16px,1.2vw,24px);font-weight:950}
.next-final-name{font-size:clamp(20px,1.6vw,30px);font-weight:950;margin:.8vh 0}.final-mini-row{display:grid;grid-template-columns:auto 1fr;gap:.6vw;border-top:1px solid #28465a;padding:.5vh 0;font-size:clamp(12px,.9vw,18px)}
.final-tree-card{height:32vh;margin-top:1.2vh;overflow:hidden}.final-tree-public{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(170px,1fr);gap:.7vw;overflow:hidden;margin-top:.8vh}.final-tree-item{background:#0b1b29;border:1px solid #27465a;border-radius:10px;padding:.7vw;min-height:8vh}.final-tree-item.done{opacity:.65}.final-tree-item.active{border:3px solid #55bde5;background:#15364d}.final-tree-item small{display:block;color:#69c1e4;font-weight:900}.final-tree-item strong{display:block;color:#fff;font-size:clamp(12px,1vw,19px);margin:.25vh 0}.final-tree-item span{font-size:clamp(10px,.7vw,14px);color:#a9c0cc}
.moderator-final-layout{display:grid;grid-template-columns:3fr 1fr;gap:1.2vw;height:50vh}.moderator-final-row{display:grid;grid-template-columns:15% 1fr 38%;gap:1vw;align-items:center;border-top:1px solid #28465a;padding:1.2vh 0}.moderator-final-row b{color:#69c1e4;font-size:clamp(14px,1.1vw,22px)}.moderator-final-row strong{font-size:clamp(22px,2vw,38px);color:#fff}.moderator-final-row span{text-align:right;font-size:clamp(13px,1vw,20px);font-weight:900}
@media(max-width:1100px){.ll-score-grid{grid-template-columns:repeat(2,1fr)}.final-display-layout,.moderator-final-layout{grid-template-columns:1fr;height:auto}.public-body{overflow:auto}.final-tree-card{height:auto}.final-tree-public{grid-auto-flow:row;grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.ll-score-grid{grid-template-columns:1fr}.event-order-row{grid-template-columns:32px 1fr}.event-order-row em,.event-order-row b{grid-column:2}.final-duel-public,.ll-public-grid{grid-template-columns:1fr}.final-tree-public{grid-template-columns:1fr}}

.mobile-admin-share{display:grid;grid-template-columns:160px 1fr;gap:18px;align-items:center}.mobile-admin-share img{width:150px;height:150px;background:#fff;padding:5px;border-radius:10px}.mobile-admin-share code{display:block;overflow-wrap:anywhere}
.mobile-live-body{margin:0;background:#eef2f4;color:#173042;font-family:Aptos,Segoe UI,Arial,sans-serif}.mobile-top{position:sticky;top:0;z-index:10;background:#0c2131;color:#fff;display:flex;justify-content:space-between;padding:12px 16px;font-weight:950;letter-spacing:.05em}.mobile-top span{font-size:11px;background:#245d3c;padding:4px 7px;border-radius:999px}.mobile-live{max-width:720px;margin:0 auto;padding:14px}.mobile-hero{background:#102d42;color:#fff;border-radius:18px;padding:18px;margin-bottom:12px}.mobile-hero h1{font-size:28px;line-height:1.05;margin:4px 0 6px}.mobile-hero p{margin:0;color:#bdd1dc}.mobile-state{display:inline-block;margin-top:10px;background:#e2f1f8;color:#123047;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:950}
.mobile-search{display:grid;grid-template-columns:1fr auto;gap:8px;margin-bottom:12px}.mobile-search input{font-size:18px;padding:13px;border:1px solid #b9c8d0;border-radius:12px}.mobile-search button{border:0;border-radius:12px;background:#126b99;color:#fff;font-weight:900;padding:0 16px}
.mobile-card{background:#fff;border:1px solid #d1dce2;border-radius:16px;padding:14px;margin-bottom:12px}.mobile-card h2{font-size:18px;margin:0 0 10px}.mobile-team-link,.mobile-rank-row{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;padding:11px 2px;border-top:1px solid #e2e8ec;text-decoration:none;color:#173042}.mobile-rank-row{grid-template-columns:32px 1fr auto}.mobile-rank-row b{font-size:20px}.mobile-rank-row strong{white-space:nowrap}.mobile-final-round{border-top:1px solid #e1e8ec;padding:11px 0}.mobile-final-round.done{opacity:.58}.mobile-final-round small,.mobile-final-round strong,.mobile-final-round span{display:block}.mobile-final-round small{font-size:10px;color:#4b7f99;font-weight:950}.mobile-final-round strong{font-size:17px;margin:2px 0 5px}.mobile-final-round span{font-size:13px;color:#526b79}.mobile-back{display:inline-block;margin:0 0 10px;color:#245d7a;text-decoration:none;font-weight:850}
.mobile-kpi{display:flex;justify-content:space-between;align-items:center;background:#eef4f7;border-radius:10px;padding:11px}.mobile-kpi strong{font-size:28px}.mobile-run{display:grid;grid-template-columns:38px 1fr auto;gap:8px;align-items:center;padding:11px 0;border-bottom:1px solid #e4e9ec}.mobile-run b{font-size:18px}.mobile-run span{font-size:13px;color:#58707e}.mobile-next{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center}.mobile-next strong{color:#0b668f}
.ceremony{height:100%;display:flex;flex-direction:column;justify-content:center}.ceremony-grid{display:grid;grid-template-columns:1.2fr 1.2fr .8fr;gap:1.2vw;margin-top:3vh}.podium-row{display:grid;grid-template-columns:50px 1fr;gap:1vw;align-items:center;padding:1.2vh 0;border-bottom:1px solid #29475a}.podium-row b{font-size:clamp(24px,2vw,40px);color:#65c2e5}.podium-row strong{font-size:clamp(20px,1.7vw,34px)}.ceremony-fast{font-size:clamp(36px,4vw,76px);font-weight:950;color:#fff;margin:.8vh 0}
@media(max-width:700px){.mobile-admin-share{grid-template-columns:1fr}.ceremony-grid{grid-template-columns:1fr}}

.narrow-panel{max-width:720px}.mirror-status{display:grid;gap:8px;margin:12px 0}.mirror-status>div{display:flex;justify-content:space-between;gap:12px;padding:10px;border:1px solid var(--border);border-radius:9px;background:#fafcfd}.mirror-status span{color:var(--muted)}.json-preview{max-height:360px;overflow:auto;background:#0d1720;color:#dcecf5;padding:12px;border-radius:10px;font-size:11px;white-space:pre-wrap}.actions form{display:inline-block}

.user-grid{display:grid;grid-template-columns:repeat(5,1fr) auto;gap:10px;align-items:end}.user-row{display:grid;grid-template-columns:1fr 1.2fr 180px auto 1fr 1fr auto;gap:9px;align-items:center;padding:9px 0;border-bottom:1px solid var(--border)}
.device-id{display:grid;gap:5px;background:#eef4f7;border-radius:10px;padding:12px;margin-bottom:12px}.device-id code{overflow-wrap:anywhere}.registration-list{display:grid;gap:7px}.registration-row{display:grid;grid-template-columns:1fr 220px auto;gap:10px;align-items:center;padding:9px;border:1px solid var(--border);border-radius:10px}.tag{margin-left:8px;font-size:10px;background:#eaf3f7;padding:3px 6px;border-radius:999px;font-weight:900}
.judge-warning{background:#fff3d6;border:1px solid #d6ac55;color:#67470c;border-radius:9px;padding:9px;margin-top:8px;font-weight:800}.judge-help{background:#edf5fa;border:1px solid #bdd6e4;border-radius:9px;padding:9px;margin-top:8px;font-size:12px}.draft-state{margin-top:7px;font-size:11px;color:var(--muted);font-weight:800}
.selftest-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.selftest{display:grid;grid-template-columns:auto 1fr;gap:5px 9px;padding:11px;border-radius:10px;border:1px solid var(--border)}.selftest span{grid-column:2;color:var(--muted);font-size:12px}.selftest.ok b{color:#267640}.selftest.fail b{color:#a44a18}.acceptance-row{display:grid;grid-template-columns:1.7fr 150px 1fr auto;gap:10px;align-items:center;border-top:1px solid var(--border);padding:9px 0}.acceptance-row>div{display:grid;gap:3px}.acceptance-row code{font-size:10px;color:var(--blue)}
@media(max-width:1050px){.user-grid,.user-row,.acceptance-row{grid-template-columns:1fr}.registration-row{grid-template-columns:1fr}.selftest-grid{grid-template-columns:1fr}}


/* V1.0.2 navigation, workflow dashboard and safer judge time entry */
.app-topbar{align-items:stretch}.brand-block{align-self:center}.main-nav{display:flex;align-items:stretch!important;gap:10px!important}.nav-group{display:flex;flex-direction:column;justify-content:center;gap:3px;padding:0 10px;border-left:1px solid rgba(255,255,255,.16)}.nav-group-label{font-size:9px;font-weight:900;letter-spacing:.14em;color:#9fc1d2}.nav-group a{padding:4px 7px;border-radius:6px}.nav-group a.active{background:rgba(255,255,255,.14);text-decoration:none}.main-nav form{align-self:center;margin-left:5px!important}
.compact-stats{margin-bottom:18px}.current-event-card{display:flex;justify-content:space-between;align-items:center;gap:20px;background:linear-gradient(135deg,#fff,#edf5f8);border:1px solid var(--border);border-radius:18px;padding:20px 22px;box-shadow:var(--shadow);margin:18px 0 22px}.current-event-card h2{font-size:28px}.workflow-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.workflow-card{position:relative;background:#fff;border:1px solid var(--border);border-radius:18px;padding:20px;box-shadow:var(--shadow);overflow:hidden}.workflow-card:before,.phase-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:#789}.workflow-card.phase-prep:before,.phase-card.phase-prep:before{background:#4d7991}.workflow-card.phase-live:before,.phase-card.phase-live:before{background:#2e7d32}.workflow-card.phase-public:before,.phase-card.phase-public:before{background:#8965a8}.workflow-card.phase-final:before,.phase-card.phase-final:before{background:#b16b28}.workflow-number{position:absolute;right:15px;top:12px;font-size:54px;line-height:1;font-weight:950;color:#edf2f4}.workflow-card p{margin:0 0 15px;color:var(--muted)}.workflow-links{display:grid;gap:8px}.workflow-links a{display:grid;gap:2px;padding:11px 12px;border:1px solid var(--border);border-radius:11px;background:#fafcfd;text-decoration:none}.workflow-links a:hover{border-color:#9bb8c7;background:#f3f8fa}.workflow-links b{color:var(--navy)}.workflow-links span{font-size:12px;color:var(--muted)}.system-strip{margin-top:18px;background:#e8eef1;border:1px solid #cad7dd;border-radius:16px;padding:18px;display:flex;justify-content:space-between;align-items:center;gap:20px}.system-strip h2{margin:3px 0}
.event-phase-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.phase-card{position:relative;background:#fff;border:1px solid var(--border);border-radius:18px;padding:18px;box-shadow:var(--shadow);overflow:hidden}.phase-head{display:flex;gap:12px;align-items:center;margin-bottom:12px}.phase-head>span{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#edf3f5;color:var(--navy);font-size:18px;font-weight:950}.phase-head h2{margin:2px 0}.phase-action{display:grid;gap:2px;padding:12px;border-top:1px solid var(--border);text-decoration:none}.phase-action:hover{background:#f6f9fa;text-decoration:none}.phase-action b{color:var(--navy)}.phase-action span{font-size:12px;color:var(--muted)}.phase-action.emphasized{background:#eef6f9;border:1px solid #c7dce5;border-radius:10px;margin:7px 0}.lane-launchers,.phase-action-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.lane-launchers a,.phase-action-grid a{display:grid;gap:2px;text-align:center;padding:11px;border:1px solid var(--border);border-radius:10px;background:#fafcfd;text-decoration:none;font-weight:850}.lane-launchers span{font-size:10px;color:var(--muted)}.event-rule-info{display:flex;justify-content:space-between;align-items:center}
.time-entry-v2{grid-template-columns:1fr!important}.time-entry-title{display:grid;gap:4px}.time-entry-title>strong{font-size:19px;color:var(--navy)}.time-entry-title>span{font-size:12px;color:var(--muted)}.split-time{display:grid;grid-template-columns:minmax(120px,220px) 34px minmax(120px,220px) 36px;align-items:end;justify-content:center;gap:8px;padding:12px 0}.time-part{display:grid;gap:5px;text-align:center}.time-part>span{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.time-part input{font-size:54px!important;line-height:1;font-weight:950;text-align:center;padding:14px 8px;border:2px solid #9db5c2;border-radius:14px;font-variant-numeric:tabular-nums}.time-part input:focus{border-color:var(--blue);box-shadow:0 0 0 5px rgba(31,110,140,.14)}.time-comma,.time-unit{font-size:48px;font-weight:950;color:var(--navy);padding-bottom:12px}.time-unit{font-size:28px}.time-preview{text-align:center;font-size:15px;color:var(--muted)}.time-preview strong{font-size:24px;color:var(--navy);margin-left:6px}.time-source{max-width:320px;margin:0 auto;width:100%}
@media(max-width:900px){.main-nav{width:100%;flex-wrap:wrap}.nav-group{border-left:0;padding:0}.workflow-grid,.event-phase-grid{grid-template-columns:1fr}.current-event-card,.system-strip{align-items:flex-start;flex-direction:column}.event-rule-info{align-items:flex-start;flex-direction:column;gap:10px}}
@media(max-width:600px){.split-time{grid-template-columns:1fr 24px 1fr 28px;gap:4px}.time-part input{font-size:42px!important}.time-comma{font-size:40px}.time-unit{font-size:24px}.lane-launchers,.phase-action-grid{grid-template-columns:1fr 1fr}}

/* V1.0.3: loginfreie Geräteregistrierung und Admin-Zuweisung */
.device-wait-card{text-align:center}.device-wait-card .device-id{text-align:left}.device-wait-icon{font-size:44px;margin:14px 0 4px}.device-approved{font-size:18px;margin:14px 0}.device-assignment-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:16px 0;text-align:left}.device-assignment-summary>div{display:grid;gap:3px;padding:10px;border:1px solid var(--border);border-radius:10px;background:#fafcfd}.device-assignment-summary span{font-size:11px;color:var(--muted);text-transform:uppercase;font-weight:900}.device-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.device-steps>div{display:grid;grid-template-columns:34px 1fr;gap:9px;align-items:center;padding:12px;border:1px solid var(--border);border-radius:11px;background:#fafcfd}.device-steps b{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--navy);color:#fff}.pending-panel{border:2px solid #c5dce6}.pending-device-card{border:1px solid var(--border);border-radius:14px;padding:16px;margin-top:12px;background:#fbfdfe}.pending-device-head{display:flex;justify-content:space-between;gap:14px;align-items:start;margin-bottom:14px}.pending-device-head>div{display:grid;gap:3px}.pending-device-head strong{font-size:24px;color:var(--navy);letter-spacing:.08em}.pending-device-head span,.pending-device-head small{font-size:11px;color:var(--muted)}.device-assignment-grid{display:grid;grid-template-columns:1.2fr 1fr .7fr 1.2fr 1.4fr auto;gap:9px;align-items:end}.compact-empty{padding:24px;box-shadow:none;margin-top:12px}.danger{border:0;border-radius:8px;padding:8px 10px;background:#fff0ef;color:#8f201a;font-weight:850;cursor:pointer}
@media(max-width:1100px){.device-steps{grid-template-columns:repeat(2,1fr)}.device-assignment-grid{grid-template-columns:repeat(2,1fr)}.device-assignment-grid button{grid-column:1/-1}.device-assignment-summary{grid-template-columns:1fr}}
@media(max-width:650px){.device-steps,.device-assignment-grid{grid-template-columns:1fr}.pending-device-head{flex-direction:column}.device-assignment-grid button{grid-column:auto}}

/* V1.0.5 compact Hauptbewerter workspace */
.judge-page{height:100vh;overflow:hidden;background:#edf2f4}.judge-page .judge-appbar{min-height:44px;height:44px;padding:5px 14px;box-shadow:0 2px 8px rgba(0,0,0,.12)}.judge-appbar-brand{display:flex;align-items:center;gap:10px}.judge-appbar-brand b{font-size:14px;letter-spacing:.06em}.judge-appbar-brand span{font-size:11px;opacity:.72}.judge-appbar-context{font-size:18px;font-weight:950;letter-spacing:.05em}.judge-page .linkbtn{font-size:12px}.judge-page .shell{height:calc(100vh - 44px);max-width:none;padding:7px 10px 8px;overflow:hidden}.judge-page .alert{margin:0 0 6px;padding:7px 10px;font-size:12px}.judge-page .alert ul{margin:3px 0}.judge-compact{max-width:1180px;height:100%;margin:auto;display:flex;flex-direction:column;gap:6px}.compact-head{min-height:32px;margin:0;align-items:center}.judge-identity{display:flex;align-items:baseline;gap:10px}.judge-identity strong{font-size:20px;color:var(--navy)}.judge-identity span,.judge-run-context{font-size:12px;color:var(--muted);font-weight:800}.compact-team{display:flex;align-items:center;justify-content:space-between;gap:12px;border-radius:10px;padding:7px 11px;margin:0;min-height:48px}.compact-team .judge-teamname{font-size:24px;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.compact-team-flags{display:flex;gap:5px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.compact-team .status-pill,.compact-team .fallback-badge,.compact-team .repeat-badge{font-size:10px;padding:4px 7px;margin:0}.compact-judge-form{display:flex;flex-direction:column;gap:6px;min-height:0;flex:1}.compact-time-entry{display:grid;grid-template-columns:74px minmax(300px,430px) minmax(145px,1fr);align-items:center;gap:8px;border-radius:10px;padding:6px 10px;min-height:92px}.compact-time-label{font-size:11px;letter-spacing:.11em;font-weight:950;color:var(--blue);writing-mode:horizontal-tb}.compact-split-time{display:grid;grid-template-columns:130px 18px 130px 22px;gap:4px;padding:0;justify-content:start;align-items:end}.compact-time-part{gap:2px}.compact-time-part>span{font-size:9px}.compact-time-part input{font-size:34px!important;height:58px;padding:5px 6px;border-radius:9px}.compact-split-time .time-comma{font-size:34px;padding-bottom:7px}.compact-split-time .time-unit{font-size:20px;padding-bottom:8px}.compact-time-status{display:grid;gap:2px;justify-items:end;min-width:0}.compact-time-status strong{font-size:23px;color:var(--navy);font-variant-numeric:tabular-nums}.compact-time-status span{font-size:10px;color:var(--muted);font-weight:800}.compact-warning{grid-column:2/-1;margin:0;padding:4px 7px;font-size:10px}.compact-errors-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;min-height:0;flex:1;align-content:stretch}.compact-error-tile{min-height:0;padding:7px 8px;border-radius:9px;gap:5px}.compact-error-head{min-height:35px}.compact-error-tile .error-label{font-size:12px;line-height:1.12}.compact-error-tile .error-sec{font-size:9px;margin-top:2px}.compact-stepper{grid-template-columns:34px 1fr 34px;gap:4px}.compact-stepper .step{font-size:22px;line-height:1;height:34px;border-radius:7px}.compact-stepper input{height:34px;font-size:18px;padding:2px;border-radius:7px}.compact-judge-next{min-height:44px;padding:9px;border-radius:9px;font-size:16px;flex:0 0 auto}.judge-page .success-block,.judge-page .error-block{margin:0;padding:12px}.judge-page .empty.compact-empty{padding:24px}
@media(max-width:900px){.judge-page .shell{padding:5px 7px}.judge-appbar-brand span{display:none}.compact-time-entry{grid-template-columns:56px minmax(260px,1fr) 120px}.compact-split-time{grid-template-columns:minmax(90px,120px) 16px minmax(90px,120px) 20px}.compact-errors-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.compact-error-tile .error-label{font-size:11px}.compact-stepper{grid-template-columns:30px 1fr 30px}.compact-stepper .step{height:32px}.compact-stepper input{height:32px}.compact-team .judge-teamname{font-size:21px}}
@media(max-width:700px){.judge-page{overflow:auto}.judge-page .shell{height:auto;overflow:visible}.judge-compact{height:auto}.compact-time-entry{grid-template-columns:1fr 115px}.compact-time-label{display:none}.compact-split-time{grid-template-columns:minmax(85px,1fr) 16px minmax(85px,1fr) 20px}.compact-time-status{justify-items:end}.compact-errors-grid{grid-template-columns:repeat(2,1fr)}.compact-team{align-items:flex-start;flex-direction:column}.judge-appbar-context{font-size:15px}}
.time-source-admin{margin:7px 0}.time-source-admin label{font-size:10px;gap:3px}.time-source-admin select{padding:7px 8px;font-size:12px}

/* V1.0.7: Ablauf-/Moderatoranzeige - drei Durchgaenge untereinander, Bahnen horizontal, FullHD ohne Scrollen */
.schedule-page{height:100%;display:grid;grid-template-rows:auto minmax(0,1fr);gap:1.2vh;min-height:0}
.schedule-header{margin:0;min-height:0}
.schedule-page .pub-title{font-size:clamp(26px,2.6vw,50px)}
.schedule-stack{height:auto;min-height:0;display:grid;grid-template-columns:1fr;grid-template-rows:repeat(3,minmax(0,1fr));gap:1vh}
.schedule-stack .sched-block{min-height:0;padding:.9vh 1vw;display:grid;grid-template-rows:auto minmax(0,1fr);align-content:stretch;border-radius:16px}
.schedule-stack .sched-label{font-size:clamp(16px,1.35vw,26px);margin:0 0 .55vh}
.sched-lanes{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.7vw;min-height:0;align-items:stretch}
.sched-lanes>.pub-lane{margin:0;padding:.65vh .7vw;min-height:0;display:flex;flex-direction:column;justify-content:center}
.sched-lanes>.pub-empty{grid-column:1/-1;min-height:0}
.schedule-stack .pub-lane-name{font-size:clamp(11px,.75vw,15px)}
.schedule-stack .pub-teamname{font-size:clamp(18px,1.55vw,30px);line-height:1.02}

.mod-grid{height:100%;min-height:0}
.mod-main{height:100%;min-height:0;display:flex;flex-direction:column}
.mod-stack{display:grid;grid-template-columns:1fr;grid-template-rows:repeat(3,minmax(0,1fr));gap:.8vh;margin-top:1vh;min-height:0;flex:1}
.mod-heat-row{min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);padding:.15vh 0}
.mod-heat-row .block-title{font-size:clamp(13px,1vw,19px);padding-bottom:.35vh;margin-bottom:.45vh;border-bottom-width:2px}
.mod-lanes{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.55vw;min-height:0;align-items:stretch}
.mod-lanes>.pub-lane{margin:0;padding:.5vh .55vw;min-height:0;display:flex;flex-direction:column;justify-content:center}
.mod-lanes>.pub-empty{grid-column:1/-1;min-height:0}
.mod-lanes .pub-lane-name{font-size:clamp(10px,.65vw,13px)}
.mod-lanes .pub-teamname{font-size:clamp(14px,1.05vw,21px)}
.mod-lanes .pub-subline{font-size:clamp(9px,.6vw,12px)}

@media(max-width:1100px){
  .public-body{overflow:hidden}
  .public-stage{height:100vh;min-height:0;overflow:hidden}
  .schedule-stack{grid-template-columns:1fr;grid-template-rows:repeat(3,minmax(0,1fr))}
  .sched-lanes,.mod-lanes{grid-template-columns:repeat(4,minmax(0,1fr))}
  .mod-grid{grid-template-columns:3fr 1fr}
}
@media(max-width:760px){
  .public-body{overflow:auto}
  .public-stage{height:auto;min-height:100vh;overflow:visible}
  .schedule-page{height:auto}
  .schedule-stack{grid-template-rows:none}
  .sched-lanes,.mod-lanes{grid-template-columns:repeat(2,minmax(0,1fr))}
  .mod-grid{grid-template-columns:1fr}
  .mod-main{height:auto}
}

/* V1.0.10 – vereinfachte Qualifikationsplanung */
.assignment-panel{padding:20px}.assignment-panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:14px}.assignment-panel-head h2{margin:.15rem 0 .25rem}.assignment-count{min-width:54px;height:54px;border-radius:16px;display:grid;place-items:center;font-size:1.55rem;font-weight:800;background:var(--surface-2,#eef2f5)}
.assignment-row{display:grid;grid-template-columns:minmax(220px,1fr) minmax(360px,1.5fr) auto;gap:12px;align-items:center;padding:12px 0;border-top:1px solid var(--border,#dfe4e8)}.assignment-team{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.assignment-form{display:grid;grid-template-columns:minmax(240px,1fr) auto;gap:8px;align-items:center}.assignment-form select{width:100%}.assignment-readiness{margin:0}.assignment-empty{padding:18px;border-radius:12px;background:var(--surface-2,#f3f5f7);font-weight:700}.compact-callout{margin-top:14px}.simple-planner-toolbar{margin-top:16px}.simple-heat-card{margin-bottom:16px}.simple-heat-controls{align-items:end}.simple-lane-card{min-height:118px;display:flex;flex-direction:column;justify-content:center}.lane-assignment-name{font-size:1.12rem;font-weight:800;margin-top:6px}.lane-assignment-meta{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.large-free-state{font-size:1.25rem;padding:18px 10px}.advanced-plan-edit{margin-top:12px;border-top:1px solid var(--border,#dfe4e8);padding-top:10px}.advanced-plan-edit summary{cursor:pointer;font-weight:700;color:var(--muted,#5f6b76)}.advanced-lane-grid{margin-top:12px}
@media(max-width:980px){.assignment-row{grid-template-columns:1fr}.assignment-form{grid-template-columns:1fr auto}.assignment-readiness{justify-self:start}}
@media(max-width:620px){.assignment-form{grid-template-columns:1fr}.assignment-panel-head{align-items:center}.assignment-count{min-width:46px;height:46px}}

/* V1.0.11 – Anmeldung und R1-Startplanung auf einem Bildschirm */
.registration-pagehead{align-items:center}.registration-summary{display:flex;align-items:baseline;gap:6px;padding:8px 12px;border-radius:12px;background:#eef3f6}.registration-summary strong{font-size:1.5rem;color:var(--navy)}.registration-summary span{font-size:.85rem;color:var(--muted);font-weight:800}
.registration-workspace{display:grid;grid-template-columns:minmax(320px,.82fr) minmax(620px,1.8fr);gap:14px;align-items:start}.registration-checkin{padding:14px;position:sticky;top:8px;max-height:calc(100vh - 115px);display:flex;flex-direction:column}.registration-section-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.registration-section-head h2{margin:0 0 3px}.registration-section-head p{margin:0;font-size:12px}.registration-search{width:170px;padding:8px 10px}.compact-registration-list{margin-top:10px;overflow:auto;min-height:0}.compact-checkin-row{grid-template-columns:minmax(130px,1fr) 118px 42px;gap:6px;padding:7px 2px}.checkin-team{min-width:0}.checkin-team strong{display:inline;font-size:13px}.checkin-team small{display:block;color:var(--muted);font-size:10px;font-weight:750;margin-top:2px}.compact-checkin-row select{padding:7px 6px;font-size:11px}.compact-save{padding:7px 5px;font-size:11px}
.registration-board{min-width:0}.board-head{padding:2px 2px 9px}.waiting-pool{border:2px dashed #b9c7d0;background:#f6f9fb;border-radius:12px;padding:9px 10px;margin-bottom:10px}.waiting-pool-title{font-size:11px;font-weight:950;color:var(--blue);letter-spacing:.08em;margin-bottom:6px}.waiting-pool-title span{display:inline-grid;place-items:center;background:#dfe9ef;border-radius:999px;min-width:22px;height:22px;margin-left:5px}.waiting-chips{display:flex;gap:6px;flex-wrap:wrap}.team-chip{border:1px solid #ccd8df;background:#fff;border-radius:9px;padding:7px 9px;font-size:12px;font-weight:850;cursor:grab;user-select:none;touch-action:manipulation}.team-chip.selected{outline:3px solid rgba(31,111,235,.25);border-color:#1f6feb}.heat-board-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.planning-heat-card{background:#fff;border:1px solid #dbe3e8;border-radius:13px;padding:10px;box-shadow:0 3px 12px rgba(20,45,60,.06)}.planning-heat-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px}.planning-heat-head>div{display:grid}.heat-kicker{font-size:9px;font-weight:950;color:var(--muted);letter-spacing:.11em}.planning-heat-head strong{font-size:20px;color:var(--navy)}.planning-heat-head small{font-size:10px;color:var(--muted);font-weight:750}.release-heat-button{padding:8px 9px;font-size:10px;white-space:nowrap}.planning-lanes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.planning-lane{position:relative;min-height:82px;border-radius:10px;padding:7px;border:2px solid #dce5ea;background:#f7f9fa;display:flex;flex-direction:column;justify-content:center;align-items:stretch}.planning-lane.free{border-style:dashed;cursor:pointer}.planning-lane.free:hover,.planning-lane.drag-over{border-color:#1f6feb;background:#edf5ff}.planning-lane.occupied{background:#f2f7f9}.lane-letter{font-size:9px;font-weight:950;letter-spacing:.08em;color:var(--blue);margin-bottom:4px}.lane-team{display:flex;align-items:center;justify-content:space-between;gap:5px;cursor:grab}.lane-team strong{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lane-team small{font-size:9px;color:var(--muted)}.free-lane-label{font-size:17px;font-weight:950;color:#91a0a9;text-align:center}.unassign-form{margin-top:3px;text-align:right}.text-button{border:0;background:transparent;color:var(--muted);font-size:9px;font-weight:800;cursor:pointer;padding:1px 3px}.hidden-drag-form{display:none}.board-empty{grid-column:1/-1;padding:20px}.board-empty p{margin-bottom:0;color:var(--muted)}
@media(max-width:1050px){.registration-workspace{grid-template-columns:1fr}.registration-checkin{position:static;max-height:none}.compact-registration-list{max-height:310px}.heat-board-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.heat-board-grid{grid-template-columns:1fr}.registration-section-head{flex-direction:column}.registration-search{width:100%}.compact-checkin-row{grid-template-columns:1fr 115px 42px}}

/* V1.0.13 – Anmeldung am PC/Notebook + klarere Qualifikations-Ergebnisanzeige */
.registration-row-v13{border-bottom:1px solid var(--border);padding:8px 2px}.registration-row-v13>.checkin-team{display:flex;align-items:baseline;gap:5px;flex-wrap:wrap}.registration-row-v13>.checkin-team small{flex-basis:100%}.checkin-actions{display:flex;gap:5px;align-items:center;flex-wrap:wrap;margin-top:5px}.checkin-actions form{margin:0}.mini-button{padding:6px 8px;font-size:10px}.compact-action{padding:8px 10px;font-size:11px;white-space:nowrap}.full-search{width:100%;margin-top:10px}.quick-new-team,.quick-edit-team{background:#f3f7f9;border:1px solid var(--border);border-radius:10px;padding:9px;margin-top:8px;display:grid;gap:7px}.quick-new-team[hidden],.quick-edit-team[hidden]{display:none}.quick-new-team input[name=name],.quick-edit-team input[name=name]{width:100%;padding:8px}.quick-actions{display:flex;gap:6px;flex-wrap:wrap}.inline-check{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:800}
.qualification-result-head{display:grid;grid-template-columns:31% 1fr;align-items:end;border-bottom:1px solid #315064;padding-bottom:.45vh}.quali-columns-head{display:grid;grid-template-columns:1fr 1fr 30%;gap:.6vw;font-size:clamp(9px,.7vw,13px);font-weight:950;color:#70c5e7;letter-spacing:.08em}.quali-columns-head strong{text-align:right;color:#fff}.qualification-ranking-line{grid-template-columns:5% 26% 1fr 1fr 12%}.quali-run{font-size:clamp(10px,.78vw,15px);color:#a9bfca;line-height:1.15}.quali-run span{display:block;font-weight:850}.quali-run small{display:block;font-size:.82em;color:#8da9b6;margin-top:.12em}.quali-run.best-run span,.quali-run.best-run small{color:#fff}.qualification-ranking-line .rank-best{font-size:clamp(18px,1.55vw,30px)}

/* V1.0.16 compact registration + row-based live/moderator views */
.compact-registration-list .registration-row-v13{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 10px;align-items:center;padding:7px 2px}.compact-registration-list .checkin-team small{font-size:10px}.compact-row-actions{margin:0;justify-content:flex-end;flex-wrap:nowrap}.present-badge{font-size:9px;font-weight:950;letter-spacing:.08em;color:#2d6b45;background:#e7f3ea;border-radius:999px;padding:4px 7px}.row-more{position:relative}.row-more summary{list-style:none;cursor:pointer;font-size:22px;line-height:24px;width:28px;text-align:center;color:var(--muted)}.row-more summary::-webkit-details-marker{display:none}.row-more form{position:absolute;right:0;top:28px;z-index:20;background:#fff;border:1px solid var(--border);box-shadow:var(--shadow);border-radius:9px;padding:8px;min-width:205px}.danger-text{color:#8b352f!important;white-space:nowrap}.quick-edit-team{grid-column:1/-1}
.compact-public-head{align-items:center;margin-bottom:1.2vh}.live-tabs{display:flex;gap:.45vw;background:#0b1b29;border:1px solid #29495e;border-radius:12px;padding:.3vw}.live-tabs a{color:#a9c0cb;text-decoration:none;font-weight:950;font-size:clamp(11px,.85vw,17px);letter-spacing:.06em;padding:.55em .9em;border-radius:8px}.live-tabs a.active{background:#1d6688;color:#fff}.flow-table{display:grid;gap:1.1vh}.flow-head,.flow-row{display:grid;grid-template-columns:12% 7% repeat(4,1fr);gap:.7vw;align-items:stretch}.flow-head{padding:0 .8vw}.flow-head b{text-align:center;color:#6bc2e5;font-size:clamp(11px,.85vw,16px);letter-spacing:.08em}.flow-row{min-height:21vh;background:#102333;border:2px solid #24475f;border-radius:15px;padding:.8vw}.flow-row.now{border-color:#56bce4;background:#14344a}.flow-row.prepare{opacity:.78}.flow-state,.flow-dg{display:flex;align-items:center;font-size:clamp(16px,1.4vw,27px);font-weight:950}.flow-dg{color:#77c4e2}.flow-team{display:flex;align-items:center;justify-content:center;text-align:center;background:#0b1b29;border:1px solid #24465b;border-radius:11px;padding:.6vw;font-size:clamp(18px,1.65vw,32px);font-weight:950;overflow-wrap:anywhere}.flow-team:has(:empty){color:#9fb2bd}
.moderator-tablet{height:100%;display:grid;grid-template-rows:auto 1fr auto;gap:1vh;overflow:hidden}.moderator-head{display:flex;justify-content:space-between;align-items:end}.moderator-flow{min-height:0;padding:.8vw}.mod-flow-head,.mod-flow-row{display:grid;grid-template-columns:10% 6% repeat(4,1fr);gap:.55vw;align-items:stretch}.mod-flow-head b{text-align:center;color:#69c1e4;font-size:clamp(10px,.75vw,14px)}.mod-flow-row{border-top:1px solid #29485b;padding:.6vh 0;min-height:11vh}.mod-flow-row.now{background:#123148;border:1px solid #55bde5;border-radius:10px;padding:.55vw}.mod-flow-row>strong,.mod-flow-row>b{display:flex;align-items:center;font-size:clamp(11px,.9vw,17px)}.mod-flow-row>b{color:#6fc4e5}.mod-flow-team{display:flex;flex-direction:column;justify-content:center;background:#0b1b29;border:1px solid #234459;border-radius:9px;padding:.45vw;min-width:0}.mod-flow-team>strong{font-size:clamp(13px,1.15vw,22px);overflow-wrap:anywhere}.mod-flow-team small{font-size:clamp(9px,.65vw,12px);color:#9eb8c5;margin-top:.25vh}.mod-flow-team .catchup{color:#ffd17a;font-weight:900}.moderator-bottom{display:grid;grid-template-columns:.8fr 1.2fr 1.2fr;gap:.8vw;max-height:29vh;overflow:hidden}.moderator-bottom .card{padding:.8vw;overflow:hidden}
@media(max-width:900px){.compact-registration-list .registration-row-v13{grid-template-columns:1fr}.compact-row-actions{justify-content:flex-start}.flow-head,.flow-row{grid-template-columns:18% 10% repeat(4,minmax(140px,1fr));min-width:900px}.flow-table{overflow-x:auto}.moderator-bottom{grid-template-columns:1fr 1fr}.moderator-bottom section:last-child{display:none}}

/* V1.0.17 – kompakte Anmeldung, Moderator Full-HD, Navigation nur Mobile Live */
.icon-edit{border:0;background:transparent;color:var(--blue);font-size:21px;font-weight:900;line-height:28px;width:30px;height:30px;border-radius:7px;cursor:pointer}.icon-edit:hover{background:#eaf3f7}.compact-row-actions{gap:3px}.compact-row-actions .present-badge{margin-right:1px}.row-more>form button{font-size:12px;padding:6px 8px}
.moderator-screen{height:100%;display:grid;grid-template-rows:auto 1fr auto;gap:1vh;overflow:hidden}
.mobile-view-tabs{position:sticky;top:43px;z-index:8;display:flex;gap:5px;background:#eef2f4;padding:5px 0 10px;margin-bottom:2px}.mobile-view-tabs button{flex:1;border:1px solid #b9cbd5;background:#fff;color:#31566b;border-radius:10px;padding:10px 5px;font-size:11px;font-weight:950;letter-spacing:.03em}.mobile-view-tabs button.active{background:#126b99;color:#fff;border-color:#126b99}.mobile-tab-panel{display:none}.mobile-tab-panel.active{display:block}.mobile-current-dg{font-size:26px;font-weight:950;color:#126b99;margin-bottom:10px}.mobile-lane-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.mobile-lane-grid>div{background:#eef4f7;border-radius:10px;padding:10px;min-height:64px}.mobile-lane-grid small{display:block;font-size:9px;font-weight:950;color:#397793}.mobile-lane-grid strong{display:block;margin-top:4px;font-size:15px;overflow-wrap:anywhere}.mobile-flow-block{border-top:1px solid #dce5ea;padding:10px 0;display:grid;grid-template-columns:1fr 1fr;gap:6px}.mobile-flow-block>div{grid-column:1/-1;display:flex;justify-content:space-between}.mobile-flow-block>div>b{font-size:11px;color:#397793}.mobile-flow-block>div>strong{font-size:16px}.mobile-flow-block>span{background:#eef4f7;border-radius:8px;padding:7px;font-size:12px;font-weight:800}.mobile-flow-block>span small{display:block;font-size:9px;color:#397793;font-weight:950;margin-bottom:2px}

/* V1.0.18 – klare Anzeige-Rollen, modale Anmeldung, breitere Quali-Namensspalte */
.qualification-result-head{grid-template-columns:45% 55%}
.quali-columns-head{grid-template-columns:36.36% 36.36% 27.28%}
.qualification-ranking-line{grid-template-columns:5% 40% 20% 20% 15%}
.qualification-ranking-line .rank-team{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-right:1vw}
.registration-modal{border:0;border-radius:14px;padding:0;width:min(440px,calc(100vw - 32px));box-shadow:0 18px 60px rgba(8,31,47,.28);color:var(--text)}
.registration-modal::backdrop{background:rgba(8,25,38,.48)}
.registration-modal-card{padding:18px;display:grid;gap:12px}
.registration-modal-head{display:flex;justify-content:space-between;align-items:center;gap:12px}
.registration-modal-head h3{margin:0;color:var(--navy)}
.modal-close{border:0;background:#edf2f4;border-radius:8px;width:34px;height:34px;font-size:20px;cursor:pointer;color:var(--muted)}
.registration-modal .quick-edit-team{display:grid!important;margin:0;background:transparent;border:0;padding:0;gap:10px}
.registration-modal .quick-edit-team input[name=name]{font-size:16px;padding:10px}
.modal-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.icon-more{border:0;background:transparent;color:var(--muted);font-size:23px;font-weight:900;line-height:30px;width:30px;height:30px;border-radius:7px;cursor:pointer}
.icon-more:hover{background:#eaf3f7}

/* V1.0.19 Moderator ergebniszentriert + Ergebnisansager Live-Fenster */
.announcer-screen{height:100%;display:grid;grid-template-rows:auto 1fr;gap:1vh;overflow:hidden}.announcer-head{display:flex;justify-content:space-between;align-items:end}.announcer-legend{font-size:clamp(11px,.85vw,16px);color:#b8c9d3}.ann-dot{display:inline-block;width:.7em;height:.7em;border-radius:50%;margin:0 .3em 0 .8em;background:#d9a441}.ann-dot.confirmed{background:#65cf88}.announcer-heats{display:grid;grid-template-rows:1.08fr .92fr;gap:1vh;min-height:0}.ann-heat{background:#102333;border:1px solid #29485b;border-radius:14px;padding:.75vw;min-height:0;overflow:hidden}.ann-heat.current{border:2px solid #55bde5}.ann-heat.previous{opacity:.88}.ann-heat-head{display:flex;align-items:baseline;gap:1vw;margin-bottom:.6vh}.ann-heat-head span{font-weight:950;color:#69c1e4;letter-spacing:.08em;font-size:clamp(11px,.8vw,15px)}.ann-heat-head strong{font-size:clamp(22px,1.8vw,34px)}.ann-lanes{display:grid;grid-template-columns:repeat(4,1fr);gap:.65vw;height:calc(100% - 3.2vh)}.ann-lane{background:#091b28;border:1px solid #28495d;border-radius:10px;padding:.65vw;min-width:0;overflow:hidden}.ann-lane.is-confirmed{border-color:#65cf88}.ann-lane-top{display:flex;justify-content:space-between;align-items:center;color:#69c1e4;font-size:clamp(10px,.7vw,13px)}.ann-confirmed{color:#7fe29d;font-weight:950}.ann-working{color:#ffd17a;font-weight:900}.ann-waiting{color:#9eb3bf}.ann-lane-team{font-size:clamp(17px,1.25vw,24px);font-weight:950;margin:.45vh 0 .7vh;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ann-values{display:grid;grid-template-columns:1fr 1fr;gap:.4vw;font-size:clamp(11px,.8vw,15px);color:#9fb7c4}.ann-values strong{display:block;color:#fff;font-size:clamp(15px,1.1vw,21px)}.ann-total{display:flex;justify-content:space-between;align-items:baseline;margin-top:.55vh;border-top:1px solid #29485b;padding-top:.45vh;color:#69c1e4;font-weight:900}.ann-total strong{font-size:clamp(22px,1.7vw,32px);color:#fff}.ann-errorline{display:flex;gap:.3vw;flex-wrap:wrap;margin-top:.4vh}.ann-errorline span{font-size:clamp(9px,.58vw,11px);background:#30201d;border-radius:5px;padding:.2em .35em}.ann-pending{color:#839ba8;margin-top:1vh}.ann-main-result.dq{font-size:clamp(22px,1.8vw,34px);font-weight:950;color:#ff9f92}
.moderator-results-first{grid-template-rows:auto 1fr}.mod-main-grid{display:grid;grid-template-columns:minmax(0,3.35fr) minmax(300px,1fr);gap:.8vw;min-height:0}.mod-ranking-card{padding:.8vw;overflow:hidden}.mod-section-title{display:flex;justify-content:space-between;align-items:baseline;color:#69c1e4;font-weight:950;letter-spacing:.08em}.mod-section-title small{color:#8fa8b6;letter-spacing:0}.mod-rank-head,.mod-rank-line{display:grid;grid-template-columns:7% 43% 15% 15% 20%;align-items:center;gap:.3vw}.mod-rank-head{font-size:clamp(10px,.7vw,13px);color:#69c1e4;border-bottom:1px solid #365568;padding:.6vh .3vw}.mod-rank-line{min-height:5.4vh;border-bottom:1px solid #29485b;padding:.3vh .3vw}.mod-rank-line>b{font-size:clamp(16px,1.25vw,24px)}.mod-rank-line>strong{font-size:clamp(16px,1.25vw,24px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mod-rank-line>div{font-size:clamp(13px,.95vw,18px)}.mod-rank-line>em{font-style:normal;text-align:right;font-size:clamp(18px,1.4vw,27px);font-weight:950;color:#fff}.mod-info-column{display:grid;grid-template-rows:1.35fr 1fr .9fr;gap:.7vh;min-height:0}.mod-info-column>.card{padding:.65vw;overflow:hidden}.mod-mini-heat{border-top:1px solid #29485b;padding:.45vh 0}.mod-mini-heat>b{color:#69c1e4;margin-right:.5vw}.mod-mini-heat>span{font-weight:950}.mod-mini-heat>div{display:grid;grid-template-columns:1fr 1fr;gap:.2vh .4vw;margin-top:.25vh}.mod-mini-heat small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mod-mini-heat i{font-style:normal;color:#69c1e4;font-weight:950;margin-right:.25em}

/* V1.0.23 Moderator: sonnenlichttaugliche Volluebersicht */
.moderator-overview{height:100vh;display:grid;grid-template-rows:2.8vh 1fr;gap:.25vh;padding:.3vh .35vw;overflow:hidden;background:#06111a}
.mod-statusline{display:flex;align-items:center;gap:.8vw;min-height:0;padding:0 .35vw;border-bottom:2px solid #395364;font-size:clamp(11px,.78vw,15px);font-weight:900;color:#dce8ee}
.mod-statusline>strong{font-size:clamp(13px,.9vw,17px);color:#fff}.mod-status-next{color:#aebfc8}.mod-event{margin-left:auto;color:#91a6b1;font-weight:700}
.mod-overview-grid{display:grid;grid-template-columns:minmax(0,5.2fr) minmax(245px,1fr);gap:.4vw;min-height:0}
.mod-table-wrap{min-height:0;display:grid;grid-template-rows:2.8vh 1fr;border:2px solid #385567;background:#091722;overflow:hidden}
.mod-rank-body{min-height:0;display:flex;flex-direction:column;overflow:hidden}
.mod-rank-grid{display:grid;grid-template-columns:6% 46% 14% 14% 20%;align-items:center;gap:.15vw}
.mod-table-wrap .mod-rank-head{height:2.8vh;padding:0 .35vw;border-bottom:2px solid #526b79;font-size:clamp(10px,.65vw,12px);font-weight:950;color:#c8d8e0;background:#102431}
.mod-table-wrap .mod-rank-line{flex:1;min-height:0;padding:0 .35vw;border-bottom:1px solid #263c49;background:#091722;box-shadow:inset 0 0 0 0 transparent}
.mod-table-wrap .mod-rank-line>b{font-size:clamp(12px,.82vw,16px);color:#d7e4ea}
.mod-table-wrap .mod-rank-line>strong{font-size:clamp(12px,.84vw,16px);font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#fff}
.mod-table-wrap .mod-rank-line>div{font-size:clamp(11px,.76vw,15px);font-weight:800;color:#d2e0e7}
.mod-table-wrap .mod-rank-line>em{font-style:normal;text-align:right;font-size:clamp(13px,.9vw,18px);font-weight:950;color:#fff;padding-right:.3vw}
/* breite, kontrastreiche Markierungen statt kleiner Symbole oder Zusatztexte */
.mod-table-wrap .mod-rank-line.mark-last{background:#164a2f;box-shadow:inset 10px 0 0 #70e09b,inset -2px 0 0 #70e09b}
.mod-table-wrap .mod-rank-line.mark-next{background:#55410b;box-shadow:inset 10px 0 0 #ffd54f,inset -2px 0 0 #ffd54f}
.mod-table-wrap .mod-rank-line.mark-both{background:#17465a;box-shadow:inset 10px 0 0 #6edcff,inset -2px 0 0 #6edcff}
.mod-side-compact{display:grid;grid-template-rows:auto auto 1fr;align-content:start;gap:.35vh;min-height:0;overflow:hidden}
.mod-side-block{border:2px solid #385567;background:#0a1823;padding:.35vh .35vw;overflow:hidden}.mod-side-title{font-size:clamp(10px,.68vw,13px);font-weight:950;color:#bcd0da;border-bottom:1px solid #3c5665;padding-bottom:.2vh}
.mod-heat-block{display:grid;grid-template-columns:18% 1fr;border-bottom:2px solid #3b5564;padding:.25vh 0}.mod-heat-block>b{font-size:clamp(22px,1.8vw,34px);color:#fff;align-self:center;text-align:center}.mod-heat-block p{display:grid;grid-template-columns:12% 1fr;margin:0;padding:.13vh 0;font-size:clamp(10px,.72vw,14px);font-weight:850;line-height:1.15}.mod-heat-block p strong{color:#fff}.mod-heat-block p span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#e2edf2}
.mod-side-row{display:grid;grid-template-columns:12% 1fr 28%;gap:.2vw;align-items:center;border-bottom:1px solid #263e4c;padding:.25vh 0;font-size:clamp(10px,.7vw,14px)}.mod-side-row span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:800}.mod-side-row>strong{text-align:right;color:#fff}

/* V1.0.24 Moderator: ca. 60 Gruppen auf Full-HD, zweigeteilte Rangliste, feste DG-Fenster */
.moderator-overview{height:100vh;display:block;padding:.25vh .25vw;overflow:hidden;background:#06111a}
.moderator-overview .mod-overview-grid{height:100%;display:grid;grid-template-columns:minmax(0,4.8fr) minmax(330px,1.35fr);gap:.35vw;min-height:0}
.mod-ranking-split{display:grid;grid-template-columns:1fr 1fr;gap:.3vw;min-width:0;min-height:0}
.moderator-overview .mod-table-wrap{height:100%;min-height:0;display:grid;grid-template-rows:2.45vh 1fr;border:2px solid #385567;background:#091722;overflow:hidden}
.moderator-overview .mod-rank-body{min-height:0;display:flex;flex-direction:column;overflow:hidden}
.moderator-overview .mod-rank-grid{grid-template-columns:8% 43% 14% 14% 21%;gap:.08vw}
.moderator-overview .mod-table-wrap .mod-rank-head{height:2.45vh;padding:0 .22vw;font-size:clamp(9px,.54vw,11px)}
.moderator-overview .mod-table-wrap .mod-rank-line{flex:1;min-height:0;padding:0 .22vw;line-height:1;overflow:hidden}
.moderator-overview .mod-table-wrap .mod-rank-line>b{font-size:clamp(10px,.66vw,13px)}
.moderator-overview .mod-table-wrap .mod-rank-line>strong{font-size:clamp(10px,.68vw,13px);line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.moderator-overview .mod-table-wrap .mod-rank-line>div{font-size:clamp(9px,.61vw,12px);line-height:1;font-weight:850}
.moderator-overview .mod-table-wrap .mod-rank-line>em{font-size:clamp(10px,.72vw,14px);line-height:1;padding-right:.12vw}
.moderator-overview .mod-table-wrap .mod-rank-line.mark-last{background:#17613a;box-shadow:inset 8px 0 0 #8affb2,inset -2px 0 0 #8affb2}
.moderator-overview .mod-table-wrap .mod-rank-line.mark-next{background:#6a5005;box-shadow:inset 8px 0 0 #ffe04d,inset -2px 0 0 #ffe04d}
.moderator-overview .mod-table-wrap .mod-rank-line.mark-both{background:#17566e;box-shadow:inset 8px 0 0 #78e5ff,inset -2px 0 0 #78e5ff}
.mod-side-fixed{height:100%;display:grid;grid-template-rows:minmax(0,59%) minmax(0,41%);gap:.35vh;overflow:hidden}
.mod-heats-fixed{display:grid;grid-template-rows:repeat(3,minmax(0,1fr));gap:.35vh;min-height:0}
.mod-heat-fixed{min-height:0;border:2px solid #385567;background:#0a1823;padding:.35vh .35vw;display:grid;grid-template-columns:23% 1fr;align-items:center;overflow:hidden}
.mod-heat-fixed.is-current{border-color:#72cce9;background:#10283a}
.mod-heat-fixed>b{font-size:clamp(18px,1.45vw,28px);text-align:center;color:#fff;white-space:nowrap}
.mod-heat-lanes{min-width:0}.mod-heat-lanes p{display:grid;grid-template-columns:11% 1fr;margin:0;padding:.22vh 0;font-size:clamp(10px,.69vw,13px);font-weight:900;line-height:1.08;border-bottom:1px solid #263e4c}.mod-heat-lanes p:last-child{border-bottom:0}.mod-heat-lanes p span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mod-heat-empty{text-align:center;font-size:clamp(16px,1.2vw,23px);color:#78909c}
.mod-stats-fixed{min-height:0;display:grid;grid-template-rows:1fr 1fr 1fr;gap:.3vh;overflow:hidden}.mod-stat-panel{min-height:0;border:2px solid #385567;background:#0a1823;padding:.25vh .3vw;overflow:hidden}.mod-stat-panel .mod-side-title{font-size:clamp(9px,.62vw,12px);padding-bottom:.12vh}.mod-stat-panel .mod-side-row{padding:.12vh 0;font-size:clamp(9px,.61vw,12px);line-height:1.05}
\n\n/* V1.0.25 Moderator: feste 30 Zeilen je Ranglistenhälfte, ruhiges Full-HD-Raster */
.moderator-overview .mod-table-wrap{grid-template-rows:2.15vh minmax(0,1fr)}
.moderator-overview .mod-table-wrap .mod-rank-head{height:2.15vh;padding:0 .18vw;font-size:clamp(8px,.48vw,10px)}
.moderator-overview .mod-rank-body{display:grid;grid-template-rows:repeat(35,minmax(0,1fr));min-height:0;overflow:hidden}
.moderator-overview .mod-table-wrap .mod-rank-line{min-height:0;height:auto;padding:0 .18vw;line-height:.95;border-bottom:1px solid #203642}
.moderator-overview .mod-table-wrap .mod-rank-line>b{font-size:clamp(9px,.56vw,11px)}
.moderator-overview .mod-table-wrap .mod-rank-line>strong{font-size:clamp(9px,.58vw,11.5px);line-height:.95}
.moderator-overview .mod-table-wrap .mod-rank-line>div{font-size:clamp(8px,.53vw,10.5px);line-height:.95}
.moderator-overview .mod-table-wrap .mod-rank-line>em{font-size:clamp(9px,.60vw,12px);line-height:.95;padding-right:.08vw}
.moderator-overview .mod-table-wrap .mod-rank-line.is-empty{background:#091722}
/* Die ganze Zeile ist die Markierung; kein Balken über der Rangnummer. */
.moderator-overview .mod-table-wrap .mod-rank-line.mark-last{background:#17613a;box-shadow:none}
.moderator-overview .mod-table-wrap .mod-rank-line.mark-next{background:#6a5005;box-shadow:none}
.moderator-overview .mod-table-wrap .mod-rank-line.mark-both{background:#17566e;box-shadow:none}
/* Rechte Informationsspalte bleibt geometrisch stabil. DGs kompakter, Damenwertung größer. */
.mod-side-fixed{grid-template-rows:minmax(0,43%) minmax(0,57%)}
.mod-heats-fixed{grid-template-rows:repeat(3,minmax(0,1fr))}
.mod-heat-fixed{padding:.20vh .28vw;grid-template-columns:22% 1fr}
.mod-heat-fixed>b{font-size:clamp(16px,1.18vw,23px)}
.mod-heat-lanes p{padding:.10vh 0;font-size:clamp(9px,.61vw,12px);line-height:1}
.mod-stats-fixed{grid-template-rows:minmax(0,1.5fr) minmax(0,.75fr) minmax(0,.75fr);gap:.3vh}
.mod-stat-panel{padding:.20vh .28vw}
.mod-stat-panel .mod-side-title{font-size:clamp(9px,.58vw,11.5px)}
.mod-stat-panel .mod-side-row{padding:.10vh 0;font-size:clamp(9px,.57vw,11px);line-height:1}


/* V1.0.26 Moderator: Full-HD Feinabstimmung nach Praxisskizze */
.moderator-overview{
    height:100vh;
    box-sizing:border-box;
    padding:.25vh .25vw .9vh;
}
.moderator-overview .mod-overview-grid{height:100%;min-height:0}
.mod-ranking-split,.moderator-overview .mod-table-wrap{height:100%;min-height:0}
.moderator-overview .mod-rank-body{height:100%;min-height:0}
/* Keine seitlichen Marker mehr – ausschließlich die komplette Zeilenfläche kennzeichnet den Status. */
.moderator-overview .mod-table-wrap .mod-rank-line.mark-last,
.moderator-overview .mod-table-wrap .mod-rank-line.mark-next,
.moderator-overview .mod-table-wrap .mod-rank-line.mark-both{
    box-shadow:none !important;
    border-left:0 !important;
    outline:0 !important;
}
/* Rechte Spalte: drei kurze, immer gleich hohe DG-Felder; danach eine große Damenwertung. */
.mod-side-fixed{
    grid-template-rows:minmax(0,46%) minmax(0,54%);
    gap:.35vh;
}
.mod-heats-fixed{
    grid-template-rows:repeat(3,minmax(0,1fr));
    gap:.35vh;
}
.mod-heat-fixed{
    padding:.16vh .28vw;
    grid-template-columns:24% 1fr;
}
.mod-heat-fixed>b{font-size:clamp(17px,1.25vw,25px)}
.mod-heat-lanes p{
    padding:.06vh 0;
    font-size:clamp(9px,.60vw,12px);
    line-height:.98;
}
/* Reihenfolge bleibt: Damenwertung, schnellste Allgemein, schnellste Damen.
   Damenwertung erhält den deutlich größten Anteil. */
.mod-stats-fixed{
    grid-template-rows:minmax(0,2.25fr) minmax(0,.78fr) minmax(0,.78fr);
    gap:.3vh;
}


/* V1.0.27 Moderator: sichere Unterkante und ausschließlich gewertete Gruppen */
.moderator-overview{
    height:100dvh;
    max-height:100dvh;
    box-sizing:border-box;
    padding:.25vh .25vw 1.8vh;
}
.moderator-overview .mod-overview-grid,
.moderator-overview .mod-ranking-split,
.moderator-overview .mod-table-wrap{
    min-height:0;
    max-height:100%;
    box-sizing:border-box;
}
.moderator-overview .mod-table-wrap{
    height:calc(100dvh - 2.05vh);
}
.moderator-overview .mod-rank-body{
    min-height:0;
    overflow:hidden;
}


/* V1.0.28 Moderator: echte sichere Unterkante + Luft fuer Zeitspalten */
.moderator-overview{
    height:100dvh;
    max-height:100dvh;
    box-sizing:border-box;
    padding:.25vh .55vw 2.8vh .25vw;
}
.moderator-overview .mod-overview-grid{
    height:calc(100dvh - 3.05vh);
    max-height:calc(100dvh - 3.05vh);
    min-height:0;
}
.moderator-overview .mod-ranking-split,
.moderator-overview .mod-table-wrap{
    height:100%;
    max-height:100%;
    min-height:0;
}
.moderator-overview .mod-table-wrap{
    height:100%;
}
.moderator-overview .mod-rank-body{
    height:auto;
    min-height:0;
}
/* Etwas mehr Innenabstand an allen Zahlen, besonders BEST am rechten Tabellenrand. */
.moderator-overview .mod-rank-grid{
    grid-template-columns:8% 41% 15% 15% 21%;
    column-gap:.18vw;
}
.moderator-overview .mod-table-wrap .mod-rank-head,
.moderator-overview .mod-table-wrap .mod-rank-line{
    padding-left:.28vw;
    padding-right:.55vw;
    box-sizing:border-box;
}
.moderator-overview .mod-table-wrap .mod-rank-line>em{
    padding-right:.25vw;
}


/* V1.0.29 Admin-Livecockpit: kompakter Betrieb + Notbetrieb + Kontrollranking */
.admin-live-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.admin-live-head>div{display:flex;gap:12px;align-items:baseline}.admin-live-head b{font-size:20px}.admin-live-head span{color:var(--muted)}
.admin-live-layout{display:grid;grid-template-columns:minmax(0,3.25fr) minmax(360px,1.25fr);gap:10px;align-items:start}
.admin-live-main{min-width:0}.admin-live-dgline{display:flex;justify-content:space-between;align-items:center;background:#eef5f8;border:1px solid var(--border);border-radius:10px;padding:7px 12px;margin-bottom:8px}.admin-live-dgline strong{font-size:22px}
.admin-live-lanes{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.admin-live-lane{background:#fff;border:1px solid var(--border);border-radius:10px;padding:9px;min-width:0}.admin-live-lane h2{font-size:18px;line-height:1.05;min-height:38px;margin:8px 0;overflow:hidden}.admin-lane-top{display:flex;justify-content:space-between;gap:5px;font-size:12px}.admin-lane-top span{font-weight:900;color:var(--blue)}
.admin-scoreline{display:grid;grid-template-columns:1fr 1fr 1.15fr;gap:4px}.admin-scoreline span{background:#f5f8fa;padding:5px;border-radius:6px;font-size:10px;color:var(--muted)}.admin-scoreline b,.admin-scoreline strong{display:block;font-size:15px;color:var(--text)}.admin-scoreline strong{font-size:17px}
.admin-emergency{margin-top:7px}.admin-emergency-fields{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-top:6px;padding-top:6px;border-top:2px solid #e6a700}.admin-emergency-fields label{font-size:10px;font-weight:900}.admin-emergency-fields input{width:100%;box-sizing:border-box;padding:7px}.admin-emergency-fields button{grid-column:1/-1}.admin-special{margin-top:6px;font-size:11px}
.admin-release-compact{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:8px;padding:8px 10px;background:#eef5f8;border:1px solid var(--border);border-radius:10px}.admin-release-compact div{display:flex;flex-direction:column}.admin-release-compact span{font-size:11px;color:var(--muted)}
.admin-next-strip{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}.admin-next-strip>div{border:1px solid var(--border);border-radius:8px;padding:7px;background:#fff}.admin-next-strip span{display:block;font-size:11px;margin-top:2px}
.admin-live-side{display:grid;grid-template-rows:auto auto;gap:8px;min-width:0}.admin-rank-panel,.admin-women-panel{background:#fff;border:1px solid var(--border);border-radius:10px;padding:8px;overflow:hidden}.admin-live-side h3{font-size:12px;margin:0 0 5px;color:var(--blue);letter-spacing:.04em}
.admin-rank-head,.admin-rank-row{display:grid;grid-template-columns:7% 41% 14% 14% 24%;align-items:center;gap:2px;padding:3px 4px;font-size:10px;border-bottom:1px solid var(--border)}.admin-rank-head{font-weight:950;color:var(--muted)}.admin-rank-row span:nth-child(2){white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:800}.admin-rank-row strong{text-align:right}.admin-rank-row.is-latest{background:#d8f3df;border-left:5px solid #18864b;padding-left:2px}
.admin-women-row{display:grid;grid-template-columns:10% 1fr 24%;gap:4px;padding:4px;border-bottom:1px solid var(--border);font-size:11px}.admin-women-row span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:800}.admin-women-row strong{text-align:right}
@media(max-width:1250px){.admin-live-layout{grid-template-columns:1fr}.admin-live-side{grid-template-columns:1fr 1fr}.admin-live-lanes{grid-template-columns:repeat(2,1fr)}}

/* V1.0.30 kompakte, manuell unterstützte Q2-Planung */
.qplan-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:8px}.qplan-head>div:first-child{display:flex;gap:14px;align-items:baseline}.qplan-head b{font-size:18px}.qplan-head span{color:var(--muted);font-weight:800}.qplan-actions,.qplan-gap{display:flex;gap:7px;align-items:center}.qplan-gap label{font-size:12px;font-weight:900}.qplan-gap input{width:54px;padding:6px}
.qplan-note{padding:7px 10px;margin-bottom:8px;border:1px solid var(--border);border-radius:8px;background:#eef5f8;font-size:12px}
.qplan-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;align-items:start}.qplan-heat{border:1px solid var(--border);border-radius:9px;background:#fff;overflow:hidden}.qplan-heat.has-free{border-color:#d2a624}.qplan-heat header{display:flex;justify-content:space-between;padding:5px 8px;background:#eef3f6;font-size:12px}.qplan-lanes{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.qplan-lane{min-width:0;border-right:1px solid var(--border);padding:5px}.qplan-lane:last-child{border-right:0}.qplan-lane>b{font-size:10px;color:var(--blue)}.qplan-team{min-height:31px}.qplan-team strong,.qplan-team small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.qplan-team strong{font-size:11px}.qplan-team small{font-size:9px;color:var(--muted)}
.qplan-lane.is-free{background:#fff8dc}.qplan-free-btn{width:100%;min-height:31px;padding:3px;border:1px dashed #c99700;background:#fff3b8;color:#6c5200;font-size:10px;font-weight:950;border-radius:5px}
.qplan-dialog{width:min(620px,90vw);max-height:75vh;border:0;border-radius:12px;padding:14px;box-shadow:0 20px 60px #0008}.qplan-dialog::backdrop{background:#07131bbd}.qplan-dialog h3{margin:0 0 2px}.qplan-dialog>p{margin:0 0 8px;color:var(--muted);font-size:11px}.dialog-close{float:right}.dialog-close button{border:0;background:none;font-size:22px;padding:0 4px}.qplan-candidate{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;padding:6px 0;border-bottom:1px solid var(--border)}.qplan-candidate span strong,.qplan-candidate span small{display:block}.qplan-candidate span small{font-size:10px;color:var(--muted)}.qplan-exceptions{margin-top:10px;border-top:2px solid #d4a600;padding-top:7px}.qplan-exceptions summary{font-size:11px;font-weight:950;color:#795d00}.qplan-candidate.exception{background:#fff8dc;padding-left:5px}
.qplan-footer{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-top:8px;padding:7px 9px;border:1px solid var(--border);border-radius:8px;background:#fff;font-size:11px}.qplan-footer>div{display:flex;gap:6px;flex-wrap:wrap}.qplan-footer>div span{background:#eef3f6;padding:2px 5px;border-radius:4px}
@media(max-width:1250px){.qplan-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* V1.0.31 – aufgeräumtes übergeordnetes Dashboard */
.clean-dashboard-head{margin-bottom:9px}.dashboard-system-nav{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;margin-bottom:10px}.dashboard-system-nav a{padding:9px 10px;border:1px solid var(--border);border-radius:8px;background:#fff;text-align:center;font-size:12px;text-decoration:none;color:inherit}
.dashboard-events{display:grid;gap:6px}.dashboard-event-row{display:grid;grid-template-columns:125px minmax(0,1fr) auto;align-items:center;gap:12px;padding:9px 10px;border:1px solid var(--border);border-radius:9px;background:#fff}.dashboard-event-date strong,.dashboard-event-date span{display:block}.dashboard-event-date strong{font-size:14px}.dashboard-event-date span{font-size:9px;font-weight:900;color:var(--muted);margin-top:2px}.dashboard-event-main h2{font-size:17px;margin:0 0 2px}.dashboard-event-main .meta{font-size:10px}.dashboard-event-actions{display:flex;gap:6px;align-items:center}.dashboard-event-actions .button,.dashboard-event-actions button{white-space:nowrap}.event-more{min-width:34px;padding-left:9px;padding-right:9px;font-size:18px}
.dashboard-dialog{width:min(610px,92vw);border:0;border-radius:12px;padding:14px;box-shadow:0 20px 60px #0008}.dashboard-dialog::backdrop{background:#07131bbd}.small-dialog{width:min(500px,92vw)}.dashboard-dialog-head{display:flex;justify-content:space-between;align-items:start;margin-bottom:9px}.dashboard-dialog-head h2{margin:0}.dialog-x{border:0;background:none;font-size:24px;padding:0 4px}.dashboard-edit-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.dashboard-edit-grid label{font-size:10px;font-weight:900}.dashboard-edit-grid label.wide{grid-column:1/-1}.dashboard-edit-grid input{width:100%;margin-top:3px}.dashboard-dialog-actions{display:flex;justify-content:flex-end;gap:7px;margin-top:11px}.danger-zone{margin-top:8px;border-top:1px solid var(--border);padding-top:8px}.danger-zone summary{font-size:11px;font-weight:900}.danger-zone input{width:100%;margin:6px 0}.danger-button{background:#9d2525;color:#fff;border:0;border-radius:6px;padding:8px 10px;font-weight:900}
.dashboard-future{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:10px;padding:7px 10px;border:1px dashed var(--border);border-radius:8px;color:var(--muted);font-size:10px}.dashboard-future b{color:var(--text);font-size:12px}
@media(max-width:1000px){.dashboard-system-nav{grid-template-columns:repeat(3,1fr)}.dashboard-event-row{grid-template-columns:100px 1fr}.dashboard-event-actions{grid-column:1/-1;justify-content:flex-end}}

/* V1.0.33 Moderator: größere rechte Informationsspalte + dynamische Cut-Linien */
.moderator-overview .mod-side-fixed .mod-heat-fixed>b{font-size:clamp(20px,1.48vw,29px)}
.moderator-overview .mod-side-fixed .mod-heat-lanes p{font-size:clamp(11px,.76vw,15px);line-height:1.02}
.moderator-overview .mod-side-fixed .mod-stat-panel .mod-side-title{font-size:clamp(11px,.72vw,14px)}
.moderator-overview .mod-side-fixed .mod-stat-panel .mod-side-row{font-size:clamp(11px,.70vw,14px);line-height:1.04}
.moderator-overview .mod-rank-line{position:relative}
.moderator-overview .mod-rank-line.cut-direct{border-bottom:3px solid #55d88a !important}
.moderator-overview .mod-rank-line.cut-ll{border-bottom:3px solid #e6b94b !important}
.mod-cut-label{position:absolute;right:.28vw;bottom:-1px;z-index:3;padding:1px .25vw;background:#06111a;color:#fff;font-size:clamp(7px,.43vw,9px);font-weight:950;line-height:1;letter-spacing:.025em;white-space:nowrap}
.cut-direct .mod-cut-label{color:#7af0a7}.cut-ll .mod-cut-label{color:#ffd866}
.moderator-overview .mod-side-row.cut-women{position:relative;border-bottom:3px solid #e68bd4;padding-bottom:1.25vh}
.mod-women-cut-label{position:absolute;right:0;bottom:.08vh;font-size:clamp(7px,.44vw,9px);line-height:1;color:#ffb9ed;font-weight:950;white-space:nowrap}

/* V1.0.34 Moderator: feste Grenzraster und besser lesbare rechte Informationsspalte */
.moderator-overview .mod-side-fixed .mod-heat-fixed>b{font-size:clamp(23px,1.70vw,33px)}
.moderator-overview .mod-side-fixed .mod-heat-lanes p{font-size:clamp(13px,.88vw,17px);line-height:1.05}
.moderator-overview .mod-side-fixed .mod-stat-panel .mod-side-title{font-size:clamp(13px,.84vw,16px);line-height:1.05}
.moderator-overview .mod-side-fixed .mod-stat-panel .mod-side-row{font-size:clamp(13px,.82vw,16px);line-height:1.05}
.mod-stats-fixed{grid-template-rows:minmax(0,1.45fr) minmax(0,.72fr) minmax(0,.72fr) minmax(0,.72fr);gap:.3vh}
.mod-women-raster{display:grid;grid-template-rows:repeat(4,minmax(0,1fr));height:calc(100% - 2.0vh);min-height:0}
.mod-women-raster .mod-side-row{min-height:0}.mod-women-raster .mod-side-row.is-empty{opacity:.45}
.moderator-overview .mod-side-row.cut-women{border-bottom:3px solid #e68bd4 !important;padding-bottom:.10vh}
.mod-cut-times-panel{display:grid;grid-template-rows:auto 1fr 1fr;align-items:center}
.mod-cut-time-row{display:grid;grid-template-columns:1fr auto;gap:.5vw;align-items:center;border-bottom:1px solid #263e4c;font-weight:950}
.mod-cut-time-row:last-child{border-bottom:0}.mod-cut-time-row span{font-size:clamp(13px,.82vw,16px);color:#d7e4ea}.mod-cut-time-row strong{font-size:clamp(20px,1.35vw,26px);color:#fff;white-space:nowrap}
.mod-cut-label,.mod-women-cut-label{display:none !important}
.moderator-overview .mod-rank-line.cut-direct{border-bottom:3px solid #55d88a !important}
.moderator-overview .mod-rank-line.cut-ll{border-bottom:3px solid #e6b94b !important}

/* V1.0.35 Moderator: 10 feste Damenzeilen + markante Abschnittsköpfe */
.mod-side-fixed{grid-template-rows:minmax(0,34%) minmax(0,66%);gap:.35vh}
.mod-heats-fixed{grid-template-rows:repeat(3,minmax(0,1fr));gap:.30vh}
.mod-heat-fixed{position:relative;padding:2.05vh .28vw .10vh;grid-template-columns:24% 1fr}
.mod-heat-title{position:absolute;left:0;right:0;top:0;height:1.72vh;display:flex;align-items:center;padding:0 .35vw;background:#1b536d;color:#fff;font-size:clamp(10px,.66vw,13px);font-weight:950;letter-spacing:.055em}
.mod-heat-fixed.is-current .mod-heat-title{background:#16724a}
.moderator-overview .mod-side-fixed .mod-heat-fixed>b{font-size:clamp(21px,1.52vw,30px)}
.moderator-overview .mod-side-fixed .mod-heat-lanes p{font-size:clamp(12px,.82vw,16px);padding:.03vh 0}
.mod-stats-fixed{grid-template-rows:minmax(0,2.35fr) minmax(0,1.02fr) minmax(0,.70fr) minmax(0,.70fr);gap:.28vh}
.mod-stat-panel{position:relative;padding:2.05vh .30vw .12vh}
.mod-stat-panel .mod-side-title{position:absolute;left:0;right:0;top:0;height:1.72vh;display:flex;align-items:center;padding:0 .35vw;background:#244f67;color:#fff;border:0;font-size:clamp(11px,.72vw,14px) !important;font-weight:950;letter-spacing:.04em}
.mod-women-panel .mod-side-title{background:#71345f}
.mod-cut-times-panel .mod-side-title{background:#315e3f}
.mod-women-raster{height:100%;display:grid;grid-template-rows:repeat(10,minmax(0,1fr));min-height:0}
.mod-women-raster .mod-side-row{padding:0 .05vw;min-height:0;font-size:clamp(11px,.70vw,14px) !important;line-height:.98 !important}
.mod-women-raster .mod-side-row.cut-women{border-bottom:3px solid #e68bd4 !important}
.mod-cut-times-panel{grid-template-rows:repeat(3,minmax(0,1fr));padding-top:2.05vh}
.mod-cut-time-row span{font-size:clamp(12px,.76vw,15px)}.mod-cut-time-row strong{font-size:clamp(18px,1.20vw,24px)}

/* V1.0.38 Bewerter: kompakte strukturierte Fehlerliste */
.judge-error-list{min-height:0;flex:1;display:grid;grid-template-rows:auto repeat(10,minmax(0,1fr));border:1px solid #d7e0e5;border-radius:10px;overflow:hidden;background:#fff}
.judge-error-list-head,.judge-error-row{display:grid;grid-template-columns:minmax(0,1fr) 105px 150px;gap:8px;align-items:center;padding:0 9px}
.judge-error-list-head{min-height:25px;background:#eaf1f5;color:var(--navy);font-size:10px;font-weight:950;letter-spacing:.08em;border-bottom:1px solid #c9d5dc}
.judge-error-list-head span:nth-child(2){text-align:right}.judge-error-list-head span:last-child{text-align:center}
.judge-error-row{min-height:0;border-bottom:1px solid #e1e7eb}.judge-error-row:last-child{border-bottom:0}
.judge-error-row>strong{font-size:13px;line-height:1.05}.judge-error-penalty{text-align:right;font-size:11px;color:var(--muted);font-weight:850}
.judge-error-counter{grid-template-columns:38px 58px 38px;gap:4px;justify-content:end}
.judge-error-counter .step{height:30px;font-size:21px;border-radius:6px}.judge-error-counter input{height:30px;font-size:17px;padding:1px;border-radius:6px}
.judge-simple-confirm{display:grid;gap:9px}.judge-simple-confirm p{margin:0;color:var(--muted);font-size:13px}.judge-simple-confirm .judge-next{margin-top:2px}
@media(max-width:700px){.judge-error-list{grid-template-rows:auto repeat(10,minmax(38px,1fr))}.judge-error-list-head,.judge-error-row{grid-template-columns:minmax(0,1fr) 82px 132px;padding:0 6px;gap:5px}.judge-error-row>strong{font-size:12px}.judge-error-penalty{font-size:10px}.judge-error-counter{grid-template-columns:34px 52px 34px}}

/* V1.0.39 Bewerter: Fehlerliste passt sich an die verfuegbare Tablet-Hoehe an.
   Der Abschluss-Button bleibt im sichtbaren Bereich. */
.judge-page .judge-shell.judge-compact{height:100%;max-height:100%;min-height:0;overflow:hidden}
.judge-page .compact-judge-form{height:100%;min-height:0;overflow:hidden}
.judge-page .judge-error-list{
  flex:1 1 0;
  height:auto;
  min-height:0;
  grid-template-rows:22px repeat(10,minmax(0,1fr));
}
.judge-page .judge-error-list-head,
.judge-page .judge-error-row{min-height:0;padding-top:0;padding-bottom:0}
.judge-page .judge-error-row>strong{font-size:clamp(13px,1.9vh,17px);line-height:1}
.judge-page .judge-error-penalty{font-size:clamp(10px,1.45vh,13px);line-height:1}
.judge-page .judge-error-counter .step{height:clamp(25px,3.8vh,31px);font-size:clamp(19px,2.8vh,23px);padding:0}
.judge-page .judge-error-counter input{height:clamp(25px,3.8vh,31px);font-size:clamp(16px,2.3vh,19px);padding:0 2px}
.judge-page .compact-judge-next{flex:0 0 auto;min-height:42px;margin:0}
@media(max-height:760px){
  .judge-page .compact-head{min-height:34px;padding-top:3px;padding-bottom:3px}
  .judge-page .compact-team{min-height:40px;padding-top:4px;padding-bottom:4px}
  .judge-page .compact-team .judge-teamname{font-size:21px}
  .judge-page .compact-time-entry{min-height:72px;padding-top:3px;padding-bottom:3px}
  .judge-page .compact-time-part input{height:48px;font-size:30px!important}
  .judge-page .judge-error-list-head{min-height:18px;font-size:9px}
  .judge-page .compact-judge-next{min-height:38px;padding:6px;font-size:15px}
}
@media(max-height:650px){
  .judge-page .judge-run-context,.judge-page .compact-time-status span{display:none}
  .judge-page .compact-time-entry{min-height:62px}
  .judge-page .compact-time-part input{height:42px;font-size:27px!important}
  .judge-page .judge-error-row>strong{font-size:clamp(12px,2.15vh,15px)}
  .judge-page .judge-error-counter .step,.judge-page .judge-error-counter input{height:24px}
}

/* V1.0.40 Hauptbewerter: echte dynamische Viewport-Hoehe + Hochformat-Arbeitsflaeche */
.judge-page{height:100vh;height:100dvh;min-height:100dvh;overflow:hidden}
.judge-page .shell{height:calc(100vh - 44px);height:calc(100dvh - 44px);min-height:0;overflow:hidden}
.judge-page .judge-shell.judge-compact{
  height:100%;min-height:0;max-height:none;
  display:grid;
  grid-template-rows:auto auto minmax(0,1fr);
  gap:5px;
  overflow:hidden;
}
.judge-page .compact-head{min-height:0;height:auto;padding:2px 0;margin:0}
.judge-page .compact-team{min-height:0;height:auto;padding:5px 10px;margin:0}
.judge-page .compact-team .judge-teamname{font-size:clamp(20px,2.8vh,27px)}
.judge-page .compact-judge-form{
  height:auto;min-height:0;overflow:hidden;
  display:grid;
  grid-template-rows:auto minmax(0,1fr) auto;
  gap:5px;
}
.judge-page .compact-time-entry{
  min-height:0;height:auto;
  padding:4px 8px;
  grid-template-columns:64px minmax(270px,410px) minmax(130px,1fr);
}
.judge-page .compact-time-part input{height:clamp(42px,6.2vh,56px);font-size:clamp(28px,4.4vh,34px)!important}
.judge-page .compact-split-time .time-comma{font-size:clamp(27px,4.3vh,34px);padding-bottom:5px}
.judge-page .compact-split-time .time-unit{font-size:clamp(17px,2.8vh,20px);padding-bottom:7px}
.judge-page .compact-time-status strong{font-size:clamp(19px,3vh,23px)}
.judge-page .judge-error-list{
  height:100%;min-height:0;max-height:100%;
  display:grid;
  grid-template-rows:20px repeat(10,minmax(0,1fr));
  overflow:hidden;
}
.judge-page .judge-error-list-head,.judge-page .judge-error-row{
  min-height:0;height:auto;padding:0 8px;overflow:hidden
}
.judge-page .judge-error-row>strong{
  font-size:clamp(13px,2.05vh,17px);
  line-height:.98;white-space:nowrap;overflow:hidden;text-overflow:ellipsis
}
.judge-page .judge-error-penalty{font-size:clamp(10px,1.55vh,13px);line-height:1}
.judge-page .judge-error-counter{grid-template-columns:34px 52px 34px;gap:3px}
.judge-page .judge-error-counter .step,
.judge-page .judge-error-counter input{
  height:min(3.8vh,29px);min-height:22px;padding:0;border-radius:5px
}
.judge-page .judge-error-counter .step{font-size:clamp(18px,2.7vh,22px)}
.judge-page .judge-error-counter input{font-size:clamp(15px,2.2vh,18px)}
.judge-page .compact-judge-next{
  height:clamp(38px,5.5vh,46px);min-height:38px;
  padding:5px 8px;font-size:clamp(14px,2vh,17px);margin:0
}
.judge-orientation-notice{display:none}
@media (orientation:landscape) and (max-height:700px) and (pointer:coarse){
  .judge-page .judge-shell.judge-compact{display:none}
  .judge-page .judge-orientation-notice{
    height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;
    gap:8px;text-align:center;padding:24px;background:#fff;border:1px solid var(--border);border-radius:12px
  }
  .judge-orientation-notice strong{font-size:clamp(22px,4vw,34px);color:var(--navy)}
  .judge-orientation-notice span{font-size:15px;color:var(--muted);font-weight:750}
}
@media (orientation:portrait){
  .judge-page .shell{padding:5px 7px 6px}
  .judge-page .judge-shell.judge-compact{max-width:820px}
  .judge-page .compact-time-entry{grid-template-columns:52px minmax(250px,1fr) minmax(115px,.55fr)}
  .judge-page .compact-split-time{grid-template-columns:minmax(90px,1fr) 15px minmax(90px,1fr) 19px}
  .judge-page .judge-error-list-head,.judge-page .judge-error-row{grid-template-columns:minmax(0,1fr) 92px 126px}
}
@media (orientation:portrait) and (max-height:700px){
  .judge-page .judge-appbar{height:38px;min-height:38px}
  .judge-page .shell{height:calc(100dvh - 38px)}
  .judge-page .judge-appbar-brand span,.judge-page .compact-time-status span{display:none}
  .judge-page .compact-team{padding-top:3px;padding-bottom:3px}
  .judge-page .compact-time-entry{padding-top:2px;padding-bottom:2px}
}

/* V1.0.41 Bewerter: robuste Zeiteingabe + schliessbare Validierung */
.judge-page .shell{position:relative}
.judge-page .judge-validation-alert{
  position:absolute;z-index:50;left:10px;right:10px;top:7px;
  margin:0;max-height:min(34dvh,220px);overflow:auto;
  padding:8px 42px 8px 10px;box-shadow:0 4px 16px rgba(0,0,0,.18)
}
.judge-alert-close{
  position:absolute;right:6px;top:4px;width:30px;height:30px;padding:0;
  border:0;border-radius:7px;background:rgba(255,255,255,.72);
  color:#8f201a;font-size:24px;font-weight:900;line-height:28px;cursor:pointer
}
.judge-page #time-seconds{min-width:0}


/* V1.0.44 PWA/Tablet: Judge-Appbar darf nicht von der globalen Mobile-Topbar umgebrochen werden. */
@media(max-width:800px){
  .judge-page .judge-appbar{
    height:44px;min-height:44px;
    flex-direction:row;align-items:center;justify-content:space-between;
    gap:10px;padding:5px 14px;overflow:hidden;
  }
  .judge-page .judge-appbar-brand{min-width:0;white-space:nowrap}
  .judge-page .judge-appbar-context{margin-left:auto;white-space:nowrap}
  .judge-page .judge-appbar form{flex:0 0 auto}
}
@media (orientation:portrait) and (max-height:700px) and (max-width:800px){
  .judge-page .judge-appbar{height:38px;min-height:38px}
}

/* V1.0.49 Anmeldung: linke Gruppenliste bleibt auch im breiten Desktop-Layout lesbar.
   Die Aktionszeile liegt bewusst unter dem Gruppennamen; [hidden] muss die Grid-Regel ueberstimmen. */
.compact-registration-list .registration-row-v13{
  grid-template-columns:minmax(0,1fr);
  gap:4px;
}
.compact-registration-list .compact-row-actions{
  justify-content:flex-start;
  flex-wrap:wrap;
  min-width:0;
}
.compact-registration-list .registration-row-v13[hidden]{display:none!important}

/* V1.0.53 Moderator: Bezirk nur bei den Durchgangsgruppen rechts oben */
.moderator-overview .mod-heat-team small{font-size:.72em;font-weight:700;color:#a9bcc6;white-space:nowrap}

/* V1.0.54 Bewerter: Aktionsbutton bleibt auf kleinen 10-Zoll-PWA-Viewports vollständig sichtbar. */
.judge-page .compact-judge-form{padding-bottom:env(safe-area-inset-bottom,0px)}
@media (orientation:portrait) and (max-height:820px){
  .judge-page .judge-shell.judge-compact{gap:3px}
  .judge-page .compact-judge-form{gap:3px}
  .judge-page .compact-head{padding:0}
  .judge-page .compact-team{padding-top:2px;padding-bottom:2px}
  .judge-page .compact-time-entry{padding-top:1px;padding-bottom:1px}
  .judge-page .compact-time-part input{height:clamp(38px,5.5vh,46px)}
  .judge-page .judge-error-list{grid-template-rows:17px repeat(10,minmax(0,1fr))}
  .judge-page .judge-error-row>strong{font-size:clamp(11px,1.8vh,14px)}
  .judge-page .judge-error-penalty{font-size:clamp(9px,1.35vh,11px)}
  .judge-page .judge-error-counter .step,
  .judge-page .judge-error-counter input{height:min(3.2vh,25px);min-height:20px}
  .judge-page .compact-judge-next{height:40px;min-height:40px;flex:none}
}


/* V1.0.56 Bewerter: der Fehlerblock belegt den gesamten verbleibenden Viewport. */
.judge-page .judge-appbar{
  display:flex!important;flex-direction:row!important;align-items:center!important;
  height:40px!important;min-height:40px!important;padding:3px 10px!important;
  gap:8px;overflow:hidden
}
.judge-page .judge-appbar-main{
  display:flex;align-items:center;gap:6px;min-width:0;overflow:hidden;
  white-space:nowrap;text-overflow:ellipsis;font-size:clamp(12px,1.75vh,15px)
}
.judge-page .judge-appbar-main strong:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis}
.judge-page .judge-appbar form{margin-left:auto;flex:0 0 auto}
.judge-page .shell{
  box-sizing:border-box;height:calc(100dvh - 40px)!important;min-height:0!important;
  overflow:hidden!important;padding:4px 6px 5px!important
}
.judge-page .judge-shell.judge-compact{
  display:grid!important;grid-template-rows:auto minmax(0,1fr)!important;
  height:100%!important;min-height:0!important;gap:4px!important;overflow:hidden!important
}
.judge-page .compact-team{min-height:0!important;padding:3px 8px!important;margin:0!important}
.judge-page .compact-team .judge-teamname{font-size:clamp(19px,2.7vh,25px)!important}
.judge-page .compact-judge-form{
  display:grid!important;grid-template-rows:auto minmax(0,1fr) auto!important;
  height:100%!important;min-height:0!important;overflow:hidden!important;gap:4px!important;
  padding-bottom:env(safe-area-inset-bottom,0px)
}
.judge-page .compact-time-entry{min-height:0!important;padding:2px 7px!important}
.judge-page .judge-error-list{
  display:grid!important;grid-template-rows:20px repeat(10,minmax(0,1fr))!important;
  height:100%!important;min-height:0!important;max-height:none!important;overflow:hidden!important
}
.judge-page .judge-error-list-head,.judge-page .judge-error-row{
  min-height:0!important;height:auto!important;padding-top:0!important;padding-bottom:0!important
}
.judge-page .judge-error-row>strong{font-size:clamp(13px,1.9vh,17px)!important;line-height:1!important}
.judge-page .judge-error-penalty{font-size:clamp(10px,1.45vh,13px)!important}
.judge-page .judge-error-counter .step,.judge-page .judge-error-counter input{
  height:clamp(24px,3.5vh,31px)!important;min-height:22px!important
}
.judge-page .compact-judge-next{
  display:block!important;visibility:visible!important;opacity:1!important;
  position:relative!important;inset:auto!important;width:100%!important;
  height:clamp(38px,5.2dvh,44px)!important;min-height:38px!important;
  margin:0!important;padding:4px 8px!important;flex:none!important
}
@media (orientation:portrait) and (max-height:760px){
  .judge-page .judge-appbar{height:36px!important;min-height:36px!important}
  .judge-page .shell{height:calc(100dvh - 36px)!important;padding:3px 5px 4px!important}
  .judge-page .judge-shell.judge-compact,.judge-page .compact-judge-form{gap:3px!important}
  .judge-page .compact-team{padding:2px 7px!important}
  .judge-page .compact-team .judge-teamname{font-size:clamp(18px,2.5vh,22px)!important}
  .judge-page .compact-time-entry{padding:1px 6px!important}
  .judge-page .judge-error-list{grid-template-rows:17px repeat(10,minmax(0,1fr))!important}
  .judge-page .judge-error-row>strong{font-size:clamp(11px,1.75vh,14px)!important}
  .judge-page .judge-error-penalty{font-size:clamp(9px,1.3vh,11px)!important}
  .judge-page .judge-error-counter .step,.judge-page .judge-error-counter input{
    height:clamp(20px,3.1vh,25px)!important;min-height:20px!important
  }
  .judge-page .compact-judge-next{height:38px!important;min-height:38px!important}
}

/* V1.0.57 Bewerter: harte 3-Zonen-Aufteilung innerhalb der tatsaechlichen Form-Flaeche.
   Der Button besitzt eine eigene feste Grid-Zeile; nur die Fehlerzeilen teilen sich den Rest. */
.judge-page .judge-shell.judge-compact{
  grid-template-rows:max-content minmax(0,1fr)!important;
}
.judge-page .compact-judge-form{
  height:auto!important;
  max-height:100%!important;
  align-self:stretch!important;
  grid-template-rows:max-content minmax(0,1fr) 42px!important;
  min-height:0!important;
  overflow:hidden!important;
}
.judge-page .compact-time-entry{
  grid-row:1!important;
  align-self:start!important;
}
.judge-page .judge-error-list{
  grid-row:2!important;
  align-self:stretch!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  grid-template-rows:18px repeat(10,minmax(0,1fr))!important;
  overflow:hidden!important;
}
.judge-page .compact-judge-next{
  grid-row:3!important;
  align-self:stretch!important;
  height:42px!important;
  min-height:42px!important;
  max-height:42px!important;
  overflow:hidden!important;
}
.judge-page .judge-error-row{
  min-height:0!important;
  height:100%!important;
  overflow:hidden!important;
}
@media (orientation:portrait) and (max-height:760px){
  .judge-page .compact-judge-form{grid-template-rows:max-content minmax(0,1fr) 38px!important}
  .judge-page .compact-judge-next{height:38px!important;min-height:38px!important;max-height:38px!important}
  .judge-page .judge-error-list{grid-template-rows:16px repeat(10,minmax(0,1fr))!important}
}

/* V1.0.134 Bewerter: Button wird nicht mehr vom Grid-Inhalt positioniert.
   Er ist innerhalb des Formulars absolut am unteren Rand verankert; der reservierte
   Innenabstand gehoert damit garantiert dem Button. Der Fehlerblock nutzt exakt den Rest. */
.judge-page .compact-judge-form{
  position:relative!important;
  display:grid!important;
  grid-template-rows:max-content minmax(0,1fr)!important;
  height:100%!important;
  max-height:none!important;
  min-height:0!important;
  padding-bottom:46px!important;
  box-sizing:border-box!important;
  overflow:hidden!important;
}
.judge-page .compact-time-entry{grid-row:1!important;min-height:0!important}
.judge-page .judge-error-list{
  grid-row:2!important;
  min-height:0!important;
  height:100%!important;
  overflow:hidden!important;
  grid-template-rows:18px repeat(10,minmax(0,1fr))!important;
}
.judge-page .judge-error-list-head,
.judge-page .judge-error-row,
.judge-page .judge-error-row>*{min-height:0!important}
.judge-page .judge-error-row{height:auto!important;align-self:stretch!important}
.judge-page .compact-judge-next{
  position:absolute!important;
  left:0!important;right:0!important;bottom:0!important;
  width:100%!important;height:42px!important;min-height:42px!important;max-height:42px!important;
  margin:0!important;z-index:20!important;display:block!important;visibility:visible!important;
}
@media (orientation:portrait) and (max-height:760px){
  .judge-page .compact-judge-form{padding-bottom:42px!important}
  .judge-page .compact-judge-next{height:38px!important;min-height:38px!important;max-height:38px!important}
  .judge-page .judge-error-list{grid-template-rows:16px repeat(10,minmax(0,1fr))!important}
}


/* V1.0.134 Bewerter/PWA: Android-Standalone meldet bei diesem Tablet 56px weniger
   sichtbare Hoehe als CSS 100vh. Die Hoehe kommt deshalb direkt vom sichtbaren
   Visual Viewport und nicht mehr von 100vh. */
.judge-page{
  height:var(--ffc-visible-height,100dvh)!important;
  min-height:0!important;
  max-height:var(--ffc-visible-height,100dvh)!important;
  overflow:hidden!important;
}
.judge-page .shell{
  height:calc(var(--ffc-visible-height,100dvh) - 44px)!important;
  min-height:0!important;
  max-height:calc(var(--ffc-visible-height,100dvh) - 44px)!important;
  box-sizing:border-box!important;
  overflow:hidden!important;
}


/* V1.0.134: Gruppenname fuer Hauptbewerter deutlich groesser/schneller erfassbar. */
.judge-page .compact-team .judge-teamname{
  font-size:clamp(36px,5vh,44px)!important;
  line-height:1.02!important;
  font-weight:950!important;
  margin:0!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}


/* V1.0.134: Freigaben nur nach vollstaendiger Entscheidung; Admin-DG als Einheit. */
button:disabled,.button:disabled{
  opacity:.38!important;
  cursor:not-allowed!important;
  filter:grayscale(.35);
}
.admin-live-current{
  border:2px solid rgba(18,50,71,.22);
  border-radius:14px;
  padding:10px;
  background:rgba(255,255,255,.72);
}
.admin-live-current .admin-live-lanes{
  margin-bottom:0;
}
.admin-live-current .admin-release-compact{
  margin-top:10px;
  border-top:2px solid rgba(18,50,71,.15);
  border-radius:0 0 10px 10px;
  box-shadow:none;
}
.admin-live-current .admin-release-compact.is-ready{
  border-top-width:3px;
}


/* V1.0.134: Loeschen bewusst vom verbindlichen Bestaetigen trennen. */
.signature-field{display:block}
.signature-field-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:6px;
  font-weight:800;
}
.signature-field-head .signature-clear{
  width:auto!important;
  flex:0 0 auto;
  margin:0!important;
  padding:7px 12px!important;
  font-size:13px!important;
}
.signature-field .signature-pad{
  display:block;
  width:100%;
}
.signature-form .judge-next{
  margin-top:14px!important;
}


/* V1.0.134: Lange Gruppennamen duerfen die Fehler-/Punkte-Spalten nie verbreitern. */
.judge-page .compact-team{
  min-width:0!important;
  max-width:100%!important;
  overflow:hidden!important;
}
.judge-page .compact-team .judge-teamname{
  display:block!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  box-sizing:border-box!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
.judge-page .compact-team .judge-teamname.is-long{
  font-size:clamp(30px,4.1vh,36px)!important;
}
.judge-page .compact-team .judge-teamname.is-very-long{
  font-size:clamp(24px,3.35vh,30px)!important;
}
.judge-page .compact-judge-form,
.judge-page .errors-grid,
.judge-page .compact-errors{
  min-width:0!important;
  max-width:100%!important;
  overflow:hidden!important;
}
.judge-page .error-row,
.judge-page .judge-error-row{
  min-width:0!important;
  max-width:100%!important;
}


/* V1.0.134: Bei langen Gruppennamen bleibt das Ende (insb. Gruppennummer) sichtbar.
   Die Mitte wird gekuerzt; CSS-Ellipsis ist fuer den angezeigten Namen deaktiviert. */
.judge-page .compact-team .judge-teamname{
  text-overflow:clip!important;
}


/* V1.0.134 Anmeldung Tablet: kein Browser-Kontextmenue/Textmarkieren beim Ziehen. */
.registration-page .draggable-team,
.draggable-team{
  -webkit-user-select:none!important;
  user-select:none!important;
  -webkit-touch-callout:none!important;
  touch-action:manipulation;
}

/* V1.0.134 Q1/Q2-Uebergang */
.q2-transition{padding:24px!important}.q2-transition .big{margin-top:14px;min-height:52px}
.q2-pending-list{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 14px}
.q2-pending-list span{background:#eef3f6;border:1px solid #d5e0e6;border-radius:999px;padding:5px 9px;font-size:13px;font-weight:700}


/* V1.0.134 Admin-Live: Seite bleibt viewportfest; nur Ergebnislisten scrollen. */
body:has(.admin-live-layout){
  overflow-y:hidden;
}
.admin-live-layout{
  height:calc(100dvh - 185px);
  min-height:0!important;
  overflow:hidden!important;
}
.admin-live-main,
.admin-live-side{
  min-height:0!important;
  max-height:100%!important;
  overflow:hidden!important;
}
.admin-live-side{
  display:flex!important;
  flex-direction:column!important;
  gap:12px;
}
.admin-live-side .admin-rank-panel{
  flex:1 1 auto;
  min-height:0!important;
  display:flex;
  flex-direction:column;
  overflow:hidden!important;
}
.admin-live-side .admin-rank-head{
  flex:0 0 auto;
}
.admin-live-side .admin-rank-scroll{
  flex:1 1 auto;
  min-height:0;
  overflow-y:auto;
  overflow-x:hidden;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
  scrollbar-gutter:stable;
}
.admin-live-side .admin-women-panel{
  flex:0 0 auto;
  max-height:32%;
  overflow-y:auto;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
}


/* V1.0.134 Bewerter: sofortiges Submit-Feedback, Doppeltaps verhindern. */
.judge-submit-status{
  position:fixed;
  inset:0;
  z-index:9998;
  background:rgba(237,242,244,.72);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:24px;
  font-weight:900;
  letter-spacing:.03em;
  color:#123247;
  pointer-events:all;
}
.judge-submit-status[hidden]{display:none!important}
.judge-next.is-loading{opacity:.7!important}

/* V1.0.134 Moderator: Rohzeit + Fehler je Q1/Q2; Zuschauer-Quali: weicher Seitenwechsel */
.moderator-overview .mod-quali-run{display:flex!important;flex-direction:column;justify-content:center;min-width:0;line-height:.88!important}
.moderator-overview .mod-quali-run>span{display:block;font-size:clamp(8px,.53vw,10.5px);font-weight:950;color:#fff;white-space:nowrap}
.moderator-overview .mod-quali-run>small{display:block;font-size:clamp(6.5px,.40vw,8px);font-weight:800;color:#9fb5c0;white-space:nowrap;margin-top:.08vh}
#rankingPages{position:relative;overflow:hidden}
#rankingPages .ranking-page{position:absolute;inset:0;width:100%;opacity:0;transform:translateX(3%);pointer-events:none;transition:opacity 1.15s ease,transform 1.15s ease}
#rankingPages .ranking-page.is-active{position:relative;opacity:1;transform:translateX(0);pointer-events:auto}

/* V1.0.134 Zuschauer-Quali: BESTZEIT nicht abschneiden; Moderator Q1/Q2 Hierarchie */
.qualification-result-head{grid-template-columns:31% minmax(0,1fr);padding-right:.55vw;box-sizing:border-box}
.quali-columns-head{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(6.8vw,34%);min-width:0}
.qualification-ranking-line{grid-template-columns:5% 38% minmax(0,19%) minmax(0,19%) minmax(7.2vw,19%);padding-right:.55vw;box-sizing:border-box}
.qualification-ranking-line .rank-best{min-width:0;white-space:nowrap;padding-right:.15vw;box-sizing:border-box}
.moderator-overview .mod-quali-run>span{font-weight:950;color:#fff}
.moderator-overview .mod-quali-run>small{font-weight:750;color:#9fb5c0}

/* V1.0.134 Moderator: Q1/Q2 horizontal ausnutzen + BEST-Kopf exakt ausrichten */
.moderator-overview .mod-rank-grid{grid-template-columns:8% 39% 17% 17% 19%;column-gap:.18vw}
.moderator-overview .mod-rank-head>span:nth-child(3),
.moderator-overview .mod-rank-head>span:nth-child(4){text-align:left}
.moderator-overview .mod-rank-head>span:nth-child(5){text-align:right;padding-right:.25vw;box-sizing:border-box}
.moderator-overview .mod-quali-run{display:flex!important;flex-direction:row;align-items:baseline;justify-content:flex-start;gap:.20vw;white-space:nowrap;overflow:hidden;line-height:1!important}
.moderator-overview .mod-quali-run>span{display:inline;font-size:clamp(9px,.61vw,12px);font-weight:950;color:#fff}
.moderator-overview .mod-quali-run>small{display:inline;font-size:clamp(6.5px,.40vw,8px);font-weight:750;color:#79a9bd;margin:0}

/* V1.0.134 Moderator Detail größer; Durchgangsanzeige 15 DG pro Full-HD-Seite */
.moderator-overview .mod-quali-run>small{font-size:clamp(7.5px,.49vw,9.5px);font-weight:800;color:#79a9bd}
@media(min-width:1101px){
  .heat-page{height:89vh;overflow:hidden}
  .heat-overview-grid{grid-template-columns:repeat(5,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr));gap:.45vw .45vh;height:100%}
  .heat-overview-card{min-height:0;overflow:hidden;border-radius:9px;padding:.34vw .42vw}
  .heat-overview-card.current{border-width:2px}
  .heat-no{font-size:clamp(15px,1.05vw,21px);margin-bottom:.20vh;line-height:1}
  .heat-overview-row{grid-template-columns:24% minmax(0,1fr);gap:.28vw;padding:.16vh 0;font-size:clamp(10px,.68vw,13px);line-height:1.05;min-width:0}
  .heat-overview-row strong{white-space:nowrap}
  .heat-overview-row span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
}

/* V1.0.134 Durchgangsübersicht: 15 DG als 3 Spalten × 5 Zeilen */
@media(min-width:1101px){
  .heat-overview-grid{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(5,minmax(0,1fr));gap:.45vw .45vh}
  .heat-overview-card{padding:.34vw .48vw}
  .heat-no{font-size:clamp(15px,1.05vw,21px)}
  .heat-overview-row{grid-template-columns:18% minmax(0,1fr);font-size:clamp(10px,.70vw,14px)}
}

/* V1.0.134 Moderator: Q1/Q2 räumlich klarer trennen und freie Breite nutzen */
.moderator-overview .mod-rank-grid{grid-template-columns:8% 38% 18% 18% 18%;column-gap:.18vw}
.moderator-overview .mod-rank-head>span:nth-child(3),
.moderator-overview .mod-rank-line>div:nth-child(3){padding-left:.35vw}
.moderator-overview .mod-rank-head>span:nth-child(4),
.moderator-overview .mod-rank-line>div:nth-child(4){padding-left:1.15vw}
.moderator-overview .mod-rank-head>span:nth-child(5){text-align:right;padding-right:.25vw}

/* V1.0.134 Durchgangsübersicht: 3×5 vollständig im Viewport, Fläche besser ausnutzen */
@media(min-width:1101px){
  .public-stage:has(#heatPages){height:100vh;padding-top:.7vh;padding-bottom:.7vh;box-sizing:border-box;overflow:hidden}
  .public-stage:has(#heatPages) .pub-header{margin-bottom:.55vh}
  .public-stage:has(#heatPages) .pub-eyebrow{font-size:clamp(11px,.78vw,15px);line-height:1}
  .public-stage:has(#heatPages) .pub-title{font-size:clamp(30px,2.75vw,53px);line-height:1.02}
  #heatPages{height:calc(100vh - 8.2vh);min-height:0;overflow:hidden}
  #heatPages .heat-page{height:100%;min-height:0}
  #heatPages .heat-overview-grid{height:100%;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(5,minmax(0,1fr));gap:.38vw .38vh}
  #heatPages .heat-overview-card{min-height:0;height:auto;padding:.28vw .48vw;border-radius:8px;display:flex;flex-direction:column;justify-content:flex-start}
  #heatPages .heat-no{font-size:clamp(16px,1.12vw,22px);line-height:1;margin-bottom:.10vh}
  #heatPages .heat-overview-row{grid-template-columns:17% minmax(0,1fr);gap:.30vw;padding:.10vh 0;font-size:clamp(11px,.75vw,15px);line-height:1.03}
  #heatPages .heat-overview-row strong{font-size:.92em}
  #heatPages .heat-overview-row span{font-size:1em}
}

/* V1.0.134 Durchgangskarten: Inhalt proportional zur tatsächlichen Kartenhöhe */
@media(min-width:1101px){
  #heatPages .heat-auto-card{
    display:grid;
    grid-template-rows:minmax(0,.85fr) repeat(4,minmax(0,1fr));
    align-items:stretch;
    container-type:size;
    padding:.22cqh .48vw;
  }
  #heatPages .heat-auto-card .heat-no{
    display:flex;align-items:center;
    margin:0;
    font-size:clamp(16px,2.15cqh,26px);
    line-height:1;
  }
  #heatPages .heat-auto-card .heat-overview-row{
    display:grid;
    grid-template-columns:17% minmax(0,1fr);
    align-items:center;
    padding:0;
    min-height:0;
    line-height:1;
    font-size:clamp(11px,1.65cqh,19px);
  }
  #heatPages .heat-auto-card .heat-overview-row strong{font-size:.90em;line-height:1}
  #heatPages .heat-auto-card .heat-overview-row span{font-size:1em;line-height:1;min-width:0}
}

/* V1.0.134 Durchgangskarten: robuste dynamische Zeilen ohne cqh-Schriftfehler */
@media(min-width:1101px){
  #heatPages .heat-auto-card{
    container-type:normal;
    display:grid;
    grid-template-rows:.72fr repeat(4,1fr);
    align-items:stretch;
    padding:.20vh .52vw;
    overflow:hidden;
  }
  #heatPages .heat-auto-card .heat-no{
    display:flex;align-items:center;margin:0;
    font-size:clamp(18px,2.05vh,27px);
    line-height:1;
    min-height:0;
  }
  #heatPages .heat-auto-card .heat-overview-row{
    display:grid;
    grid-template-columns:minmax(72px,16%) minmax(0,1fr);
    align-items:center;
    gap:.38vw;
    padding:0;
    min-height:0;
    overflow:hidden;
    font-size:clamp(14px,1.62vh,20px);
    line-height:1;
  }
  #heatPages .heat-auto-card .heat-overview-row strong{
    font-size:.88em;line-height:1;white-space:nowrap;
  }
  #heatPages .heat-auto-card .heat-overview-row span{
    font-size:1em;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;
  }
}

/* V1.0.134 Durchgangskarten: dichter, größere Schrift, Trennlinie über volle Kartenbreite */
@media(min-width:1101px){
  #heatPages .heat-auto-card{
    grid-template-rows:.64fr repeat(4,1fr);
    padding:.10vh .52vw .14vh;
  }
  #heatPages .heat-auto-card .heat-no{
    font-size:clamp(19px,2.18vh,29px);
  }
  #heatPages .heat-auto-card .heat-overview-row{
    grid-template-columns:minmax(72px,15%) minmax(0,1fr);
    gap:.28vw;
    font-size:clamp(15px,1.78vh,22px);
    border-bottom:1px solid #294b5d;
    width:100%;
    box-sizing:border-box;
  }
  #heatPages .heat-auto-card .heat-overview-row:last-child{border-bottom:0}
  #heatPages .heat-auto-card .heat-overview-row strong{font-size:.86em}
}

/* V1.0.134 Durchgangskarten: Trennlinien garantiert über volle Innenbreite */
@media(min-width:1101px){
  #heatPages .heat-auto-card .heat-overview-row{
    position:relative;
    border-bottom:0;
    width:auto;
    min-width:0;
  }
  #heatPages .heat-auto-card .heat-overview-row:not(:last-child)::after{
    content:"";
    position:absolute;
    left:0;
    right:0;
    bottom:0;
    height:1px;
    background:#2f6178;
    pointer-events:none;
  }
}

/* V1.0.134 Durchgangskarten: Grid wirklich über volle Kartenbreite strecken */
@media(min-width:1101px){
  #heatPages .heat-auto-card{
    justify-content:stretch;
    justify-items:stretch;
    width:100%;
    box-sizing:border-box;
  }
  #heatPages .heat-auto-card .heat-no,
  #heatPages .heat-auto-card .heat-overview-row{
    width:100%;
    max-width:none;
    box-sizing:border-box;
  }
  #heatPages .heat-auto-card .heat-overview-row{
    border-top:0;
  }
  #heatPages .heat-auto-card .heat-overview-row:not(:last-child)::after{
    left:0;
    right:0;
  }
}

/* V1.0.134 Zuschauer-Quali: 15 Gruppen pro Ranking-Seite */
.qualification-ranking-line{padding:.34vh 0;min-height:0}
.qualification-ranking-line .rank-no,
.qualification-ranking-line .rank-team,
.qualification-ranking-line .rank-best{line-height:1.05}
.qualification-ranking-line .quali-run{line-height:1.02}

/* V1.0.134 Zuschauer-Ergebnis: Rankingfenster nutzt die volle verbleibende Bildschirmhöhe */
@media(min-width:1101px){
  .public-stage:has(#rankingPages){
    height:100vh;
    box-sizing:border-box;
    overflow:hidden;
    display:flex;
    flex-direction:column;
  }
  .public-stage:has(#rankingPages) .pub-header{
    flex:0 0 auto;
  }
  .public-stage:has(#rankingPages) .result-layout{
    flex:1 1 auto;
    height:auto;
    min-height:0;
  }
  .public-stage:has(#rankingPages) .ranking-board{
    height:100%;
    min-height:0;
    box-sizing:border-box;
  }
  .public-stage:has(#rankingPages) #rankingPages{
    min-height:0;
  }
}

/* V1.0.134 Zuschauer-Quali: Zeitdarstellung/Spalten analog Moderator */
@media(min-width:1101px){
  .qualification-result-head{grid-template-columns:43% minmax(0,57%);padding-right:.7vw}
  .quali-columns-head{grid-template-columns:34% 34% 32%;align-items:end}
  .quali-columns-head>span:nth-child(1),
  .quali-columns-head>span:nth-child(2){text-align:left}
  .quali-columns-head>strong{text-align:right;padding-right:.15vw}
  .qualification-ranking-line{
    grid-template-columns:6% 37% minmax(0,19%) minmax(0,19%) minmax(0,19%);
    padding-right:.7vw;
  }
  .qualification-ranking-line .quali-run{
    display:flex;flex-direction:row;align-items:baseline;justify-content:flex-start;
    gap:.28vw;white-space:nowrap;overflow:hidden;min-width:0;
  }
  .qualification-ranking-line .quali-run>span{
    display:inline;font-size:clamp(15px,1.02vw,21px);font-weight:950;color:#fff;line-height:1;
  }
  .qualification-ranking-line .quali-run>small{
    display:inline;font-size:clamp(11px,.72vw,15px);font-weight:800;color:#79a9bd;line-height:1;margin:0;
  }
  .qualification-ranking-line .rank-best{
    text-align:right;font-size:clamp(15px,1.02vw,21px);font-weight:950;
  }
}

/* V1.0.134 Zuschauer-Quali: volle Höhe + Kopf exakt auf Datenraster */
@media(min-width:1101px){
  .public-stage:has(#rankingPages){
    height:100dvh;
    min-height:0;
    padding-top:.8vh;
    padding-bottom:.8vh;
  }
  .public-stage:has(#rankingPages) .pub-header{margin-bottom:.65vh}
  .public-stage:has(#rankingPages) .result-layout{
    flex:1 1 0;
    height:0;
    min-height:0;
    overflow:hidden;
  }
  .public-stage:has(#rankingPages) .ranking-board{
    height:100%;
    min-height:0;
    display:flex;
    flex-direction:column;
    padding-bottom:.65vh;
  }
  .public-stage:has(#rankingPages) #rankingPages{
    flex:1 1 auto;
    min-height:0;
    height:auto;
  }
  .public-stage:has(#rankingPages) .ranking-page{height:100%}

  /* Kopf und Daten verwenden exakt dasselbe 5-Spalten-Raster. */
  .qualification-result-head{
    display:grid;
    grid-template-columns:6% 37% 19% 19% 19%;
    column-gap:0;
    padding-left:0;
    padding-right:.7vw;
    box-sizing:border-box;
  }
  .qualification-result-head>.pub-eyebrow{grid-column:1 / 3}
  .qualification-result-head>.quali-columns-head{
    grid-column:3 / 6;
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    column-gap:0;
    width:100%;
  }
  .qualification-result-head>.quali-columns-head>span:nth-child(1),
  .qualification-result-head>.quali-columns-head>span:nth-child(2){text-align:left}
  .qualification-result-head>.quali-columns-head>strong{text-align:right;padding-right:.15vw}
  .qualification-ranking-line{
    grid-template-columns:6% 37% 19% 19% 19%;
    column-gap:0;
    padding-right:.7vw;
    box-sizing:border-box;
  }
}

/* V1.0.134 Zuschauer-Quali: 15 Zeilen verteilen sich über die volle Rankinghöhe */
@media(min-width:1101px){
  .public-stage:has(#rankingPages) #rankingPages{
    flex:1 1 0;
    height:0;
    min-height:0;
  }
  .public-stage:has(#rankingPages) #rankingPages .ranking-page{
    height:100%;
    min-height:0;
    grid-template-rows:repeat(15,minmax(0,1fr));
    align-content:stretch;
  }
  .public-stage:has(#rankingPages) #rankingPages .ranking-page.is-active{
    display:grid!important;
  }
  .public-stage:has(#rankingPages) .qualification-ranking-line{
    height:100%;
    min-height:0;
    align-items:center;
    padding-top:0;
    padding-bottom:0;
  }
}

/* V1.0.134 Zuschauer-Quali: Qualifikationszonen */
.qualification-ranking-line.zone-qualified{
  background:rgba(28,145,82,.22);
}
.qualification-ranking-line.zone-lucky-loser{
  background:rgba(226,153,45,.16);
}
.qualification-ranking-line.zone-qualified:hover,
.qualification-ranking-line.zone-lucky-loser:hover{
  filter:brightness(1.08);
}

/* V1.0.134 Lucky-Loser-Zone: dezentes Gelb/Orange */
.qualification-ranking-line.zone-lucky-loser{
  background:rgba(245,166,35,.24);
}

/* V1.0.134 Admin-Live: alle freigegebenen DG */
.admin-live-main .admin-next-strip{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));max-height:31vh;overflow-y:auto;align-content:start}
.admin-live-main .admin-next-strip>div{min-width:0}
.admin-live-main .admin-next-strip form{margin-top:6px}
.admin-released-heats{margin-top:8px;min-height:0}
.admin-released-heats h3{margin:0 0 5px}

/* V1.0.134 Admin-Live Rangliste: Scrollbar darf BEST-Zeit nicht überdecken */
.admin-rank-scroll{
  scrollbar-gutter:stable;
  padding-right:12px;
  box-sizing:border-box;
}
.admin-rank-scroll .admin-rank-head,
.admin-rank-scroll .admin-rank-row{
  padding-right:6px;
  box-sizing:border-box;
}
.admin-rank-scroll .admin-rank-head>*:last-child,
.admin-rank-scroll .admin-rank-row>*:last-child{
  padding-right:4px;
}

/* V1.0.134 Admin-Live: Kopf exakt über Ranking-Spalten + Damen scrollbar-sicher */
.admin-live-side .admin-rank-head,
.admin-live-side .admin-rank-row{
  grid-template-columns:7% 41% 14% 14% 24%;
  column-gap:2px;
  box-sizing:border-box;
}
.admin-live-side .admin-rank-head{
  padding-left:4px;
  padding-right:22px; /* entspricht Scrollbar-Gutter + Innenabstand der Ergebniszeilen */
}
.admin-live-side .admin-rank-head>span:nth-child(3),
.admin-live-side .admin-rank-head>span:nth-child(4){text-align:center}
.admin-live-side .admin-rank-head>span:nth-child(5){text-align:right;padding-right:4px}
.admin-live-side .admin-rank-row>span:nth-child(3),
.admin-live-side .admin-rank-row>span:nth-child(4){text-align:center}
.admin-live-side .admin-women-panel{
  scrollbar-gutter:stable;
  padding-right:12px;
  box-sizing:border-box;
}
.admin-live-side .admin-women-row{
  padding-right:6px;
  box-sizing:border-box;
}
.admin-live-side .admin-women-row>strong{padding-right:4px}

/* V1.0.134 Bewerter-Zurück + sofortige Notbetrieb-Eingabe */
.judge-review-back{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;margin:0 0 8px;padding:10px 14px;font-weight:900}
.admin-emergency-fields.emergency-hidden{display:none!important}

/* V1.0.134 Admin-Live: einzelne freigegebene DG nicht auf volle Breite ziehen */
.admin-live-main .admin-next-strip{
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.admin-live-main .admin-next-strip>div:only-child{
  grid-column:auto;
  width:auto;
}
@media(max-width:1100px){
  .admin-live-main .admin-next-strip{grid-template-columns:1fr}
}

/* V1.0.134 Moderator: weniger vertikaler Zellrand, dadurch größere Schrift bei 30 Zeilen */
.moderator-overview .mod-rank-body{
  grid-template-rows:repeat(35,minmax(0,1fr));
}
.moderator-overview .mod-table-wrap .mod-rank-line{
  padding-top:0;
  padding-bottom:0;
  line-height:.88;
  align-items:center;
}
.moderator-overview .mod-table-wrap .mod-rank-line>b{
  font-size:clamp(10px,.64vw,12.5px);
  line-height:.88;
}
.moderator-overview .mod-table-wrap .mod-rank-line>strong{
  font-size:clamp(10px,.67vw,13px);
  line-height:.88;
}
.moderator-overview .mod-table-wrap .mod-rank-line>div{
  font-size:clamp(9px,.59vw,11.5px);
  line-height:.88;
}
.moderator-overview .mod-table-wrap .mod-rank-line>em{
  font-size:clamp(10px,.69vw,13.5px);
  line-height:.88;
}
.moderator-overview .mod-quali-run{
  line-height:.88!important;
}
.moderator-overview .mod-quali-run>span{
  font-size:clamp(9.5px,.65vw,12.5px);
}
.moderator-overview .mod-quali-run>small{
  font-size:clamp(8px,.52vw,10px);
}

/* V1.0.134 Mobile Live: kompakter, suchfreundlich, robuste lange Namen */
.mobile-event-strip{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 10px;padding:7px 3px;color:#58707e;font-size:12px}
.mobile-event-strip b{color:#126b99;font-size:11px;white-space:nowrap}
.mobile-search{display:block;margin-bottom:10px}
.mobile-search-input-wrap{position:relative;min-width:0}
.mobile-search input{width:100%;box-sizing:border-box;padding-right:46px}
.mobile-search-clear{position:absolute;right:5px;top:50%;transform:translateY(-50%);width:36px;height:36px;padding:0!important;border:0!important;border-radius:50%!important;background:#dfe8ed!important;color:#31566b!important;font-size:25px;line-height:1;font-weight:700}
.mobile-view-tabs button{font-size:12px}
.mobile-flow-block{min-width:0}
.mobile-flow-team{display:grid!important;grid-template-columns:22px minmax(0,1fr);align-items:center;gap:4px;background:#eef4f7;border-radius:8px;padding:7px;font-size:12px;font-weight:800;color:#173042;text-decoration:none;min-width:0;overflow:hidden}
.mobile-flow-team small{display:block!important;margin:0!important}
.mobile-flow-team>span{display:block;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mobile-flow-team.is-free{color:#58707e}
.mobile-rank-row{grid-template-columns:30px minmax(0,1fr) auto;min-width:0;padding:9px 7px;border-radius:7px}
.mobile-rank-name{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:800}
.mobile-rank-time{display:flex;flex-direction:column;align-items:flex-end;white-space:nowrap}
.mobile-rank-time strong{font-size:13px}
.mobile-rank-time small{font-size:9px;color:#55798b;font-weight:800}
.mobile-rank-row.is-qualified{background:#dff3e6}
.mobile-rank-row.is-lucky-loser{background:#fff0cc}
.mobile-team-link span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mobile-live .mobile-hero h1{color:#fff!important;text-shadow:none!important;overflow-wrap:anywhere;word-break:normal}
.mobile-run{grid-template-columns:32px minmax(0,1fr) auto;min-width:0}
.mobile-run span{min-width:0;overflow-wrap:anywhere}
@media(max-width:420px){
 .mobile-live{padding:10px}
 .mobile-card{padding:11px}
 .mobile-flow-team{font-size:11.5px}
 .mobile-rank-row{grid-template-columns:27px minmax(0,1fr) auto}
 .mobile-rank-row b{font-size:17px}
}

/* V1.0.134 Mobile Qualifikation: Q1/Q2 in zwei kompakten Halbzeilen */
.mobile-rank-row.mobile-rank-row-q12{
  grid-template-columns:28px minmax(0,1fr) minmax(132px,42%);
  min-height:52px;
  padding-top:3px;
  padding-bottom:3px;
}
.mobile-rank-rounds{display:grid;grid-template-rows:1fr 1fr;min-width:0;align-self:stretch}
.mobile-rank-round{display:grid;grid-template-columns:22px 1fr auto;align-items:center;gap:3px;min-width:0;line-height:1}
.mobile-rank-round:first-child{border-bottom:1px solid rgba(54,105,127,.18)}
.mobile-rank-round>b{font-size:9px;color:#25779b}
.mobile-rank-round>strong{font-size:11px;white-space:nowrap;text-align:right}
.mobile-rank-round>small{font-size:8.5px;color:#55798b;font-weight:800;white-space:nowrap;text-align:right}
@media(max-width:390px){
 .mobile-rank-row.mobile-rank-row-q12{grid-template-columns:25px minmax(0,1fr) minmax(124px,44%)}
 .mobile-rank-round{grid-template-columns:20px 1fr auto;gap:2px}
 .mobile-rank-round>strong{font-size:10.5px}
 .mobile-rank-round>small{font-size:8px}
}

/* V1.0.134 Mobile: 1./2. QU übereinander, BEST ganz rechts + weitere DG */
.mobile-rank-row.mobile-rank-row-q12{
 grid-template-columns:25px minmax(0,1fr) minmax(105px,35%) 54px;
 column-gap:4px;
}
.mobile-rank-round{grid-template-columns:34px minmax(0,1fr);gap:2px}
.mobile-rank-round>b{font-size:8px;white-space:nowrap}
.mobile-rank-round>span{font-size:9px;font-weight:800;white-space:nowrap;text-align:right;overflow:hidden;text-overflow:ellipsis}
.mobile-rank-best{font-size:12px;text-align:right;white-space:nowrap;align-self:center}
.mobile-later-heats{border-top:1px solid #d9e3e8;margin-top:7px;padding-top:8px}
.mobile-later-heats>small{font-size:9px;font-weight:900;color:#4e8298}
.mobile-later-heats>div{display:flex;flex-wrap:wrap;gap:5px;margin-top:5px}
.mobile-later-heats span{padding:4px 7px;border-radius:6px;background:#edf3f6;color:#173042;font-size:10px;font-weight:900}
@media(max-width:390px){
 .mobile-rank-row.mobile-rank-row-q12{grid-template-columns:23px minmax(0,1fr) minmax(100px,37%) 50px}
 .mobile-rank-round{grid-template-columns:31px minmax(0,1fr)}
 .mobile-rank-round>span{font-size:8.5px}
 .mobile-rank-best{font-size:11px}
}

/* V1.0.134 Mobile Qualifikation: QU-Label direkt an Zeit + BEST wie Gruppenname */
.mobile-rank-round{
  grid-template-columns:minmax(0,1fr) auto;
  gap:3px;
}
.mobile-rank-round>b{
  justify-self:end;
  text-align:right;
  font-size:8px;
  white-space:nowrap;
}
.mobile-rank-round>span{
  justify-self:end;
  text-align:right;
}
.mobile-rank-best{
  font-size:inherit;
  font-weight:900;
  line-height:1;
}
@media(max-width:390px){
 .mobile-rank-round{grid-template-columns:minmax(0,1fr) auto}
 .mobile-rank-best{font-size:inherit}
}

/* V1.0.134 Mobile Live/Ablauf: weitere DG als klare kompakte Liste statt Badge-Wolke */
.mobile-later-heats>div{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:4px 8px;
  margin-top:5px;
}
.mobile-later-heats span{
  display:block;
  padding:5px 8px;
  border-radius:6px;
  background:#edf3f6;
  color:#173042;
  font-size:10px;
  font-weight:900;
  text-align:left;
  white-space:nowrap;
}

/* V1.0.134 */
.mobile-rank-rounds{display:grid;grid-template-rows:1fr 1fr;align-items:stretch}
.mobile-rank-round{display:grid;grid-template-columns:34px minmax(0,1fr);gap:3px;align-items:center}
.mobile-rank-round>b{justify-self:start;width:34px;text-align:left;font-size:8px}
.mobile-rank-round>span{justify-self:end;text-align:right;font-size:9px}
.mobile-later-heats>div{display:block;margin-top:0}
.mobile-later-heats .mobile-flow-later{display:grid;grid-template-columns:1fr 1fr;gap:6px;border-top:1px solid #dce5ea;padding:10px 0}
.mobile-later-heats .mobile-flow-later>div{grid-column:1/-1;display:flex;justify-content:space-between;margin:0}
.mobile-later-heats .mobile-flow-later>div>b{font-size:11px;color:#397793}
.mobile-later-heats .mobile-flow-later>div>strong{font-size:16px}
.mobile-later-heats .mobile-flow-later .mobile-flow-team{padding:7px;font-size:12px;text-align:left}
@media(max-width:390px){.mobile-rank-round{grid-template-columns:31px minmax(0,1fr)}.mobile-rank-round>b{width:31px}}

/* V1.0.134 Mobile Qualifikation: QU-Bezeichnung direkt vor der Zeit */
.mobile-rank-round{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:4px;
}
.mobile-rank-round>b{
  width:auto;
  flex:0 0 auto;
  justify-self:auto;
  text-align:right;
  margin:0;
}
.mobile-rank-round>span{
  flex:0 0 auto;
  min-width:0;
  justify-self:auto;
  text-align:right;
}
@media(max-width:390px){
 .mobile-rank-round{display:flex;gap:3px}
 .mobile-rank-round>b{width:auto}
}

/* V1.0.134 Mobile: echte feste Spalte für 1. QU / 2. QU */
.mobile-rank-rounds{
  display:grid;
  grid-template-columns:34px minmax(0,1fr);
  grid-template-rows:1fr;
  gap:4px;
  align-items:stretch;
}
.mobile-rank-labels,.mobile-rank-values{
  display:grid;
  grid-template-rows:1fr 1fr;
  align-items:center;
  min-width:0;
}
.mobile-rank-labels b{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  margin:0;
  font-size:8px;
  line-height:1;
  white-space:nowrap;
  color:#25779b;
}
.mobile-rank-values>span{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  min-width:0;
  font-size:9px;
  line-height:1;
  font-weight:800;
  white-space:nowrap;
  color:#173042;
}
@media(max-width:390px){
 .mobile-rank-rounds{grid-template-columns:31px minmax(0,1fr);gap:3px}
}

/* V1.0.134: fester QU-Block bleibt zweizeilig, sitzt aber direkt an den Zeiten */
.mobile-rank-row.mobile-rank-row-q12{
  grid-template-columns:25px minmax(0,1fr) auto 54px;
}
.mobile-rank-rounds{
  width:max-content;
  min-width:0;
  justify-self:end;
  grid-template-columns:34px auto;
}
.mobile-rank-values>span{min-width:78px}
@media(max-width:390px){
 .mobile-rank-row.mobile-rank-row-q12{grid-template-columns:23px minmax(0,1fr) auto 50px}
 .mobile-rank-rounds{grid-template-columns:31px auto}
 .mobile-rank-values>span{min-width:72px}
}

/* V1.0.134: QU-Block maximal kompakt rechts, mehr Platz für Gruppenname */
.mobile-rank-row.mobile-rank-row-q12{
  grid-template-columns:25px minmax(0,1fr) auto 54px;
  column-gap:3px;
}
.mobile-rank-rounds{
  width:auto;
  justify-self:end;
  grid-template-columns:29px auto;
  gap:2px;
}
.mobile-rank-labels b{font-size:7.5px}
.mobile-rank-values>span{
  min-width:0;
  width:auto;
  font-size:8.5px;
}
.mobile-rank-best{margin-left:1px}
@media(max-width:390px){
 .mobile-rank-row.mobile-rank-row-q12{grid-template-columns:23px minmax(0,1fr) auto 50px;column-gap:2px}
 .mobile-rank-rounds{grid-template-columns:28px auto;gap:2px}
 .mobile-rank-values>span{min-width:0;width:auto;font-size:8px}
}

/* V1.0.134 Ergebnisdisplay: Qualifikations-Grenzen im rechten Block */
.result-side .result-cut-card{padding-top:10px;padding-bottom:10px}
.result-cut-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:5px 0;border-bottom:1px solid rgba(58,92,108,.16)}
.result-cut-row:last-child{border-bottom:0}
.result-cut-row span{font-size:clamp(10px,.72vw,14px);font-weight:800;color:#426b7d;white-space:nowrap}
.result-cut-row strong{font-size:clamp(15px,1.05vw,21px);color:#123247;white-space:nowrap}

/* V1.0.134 Ergebnisdisplay: mehr Breite für Gruppennamen */
@media(min-width:1101px){
  .qualification-result-head{
    grid-template-columns:5% 42% 16% 16% 21%;
  }
  .qualification-result-head>.pub-eyebrow{grid-column:1 / 3}
  .qualification-result-head>.quali-columns-head{
    grid-column:3 / 6;
    grid-template-columns:16fr 16fr 21fr;
  }
  .qualification-ranking-line{
    grid-template-columns:5% 42% 16% 16% 21%;
  }
  .qualification-ranking-line .rank-team{
    padding-right:.45vw;
  }
}

/* V1.0.134 Ergebnisdisplay: Qualifikations-Grenzen kontrastreich weiß */
.result-side .result-cut-card .result-cut-row span,
.result-side .result-cut-card .result-cut-row strong{
  color:#fff;
}

/* V1.0.134 Ergebnisdisplay: gewünschte Spaltenaufteilung */
@media(min-width:1101px){
  .qualification-result-head,
  .qualification-ranking-line{
    grid-template-columns:5% 51% 16% 16% 12%;
  }
  .qualification-result-head>.pub-eyebrow{grid-column:1 / 3}
  .qualification-result-head>.quali-columns-head{
    grid-column:3 / 6;
    grid-template-columns:16fr 16fr 12fr;
  }
}

/* V1.0.134 Ergebnisdisplay: sauberer Seiten-Fade ohne stehenbleibende Einzelzeile */
.qualification-ranking .ranking-pages{position:relative}
.qualification-ranking .ranking-page,
.qualification-ranking .ranking-page.is-active{
  position:absolute!important;
  inset:0;
  width:100%;
  height:100%;
  transform:none!important;
  display:grid!important;
}
.qualification-ranking .ranking-page{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .85s ease, visibility 0s linear .85s;
}
.qualification-ranking .ranking-page.is-active{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transition:opacity .85s ease, visibility 0s linear 0s;
}

/* V1.0.134 Ergebnisdisplay: Fade strikt sequentiell.
   Alte Seite komplett weg, danach erst neue Seite einblenden. */
.qualification-ranking .ranking-page,
.qualification-ranking .ranking-page.is-active,
.qualification-ranking .ranking-page.is-leaving{
  position:absolute!important;
  inset:0;
  width:100%;
  height:100%;
  transform:none!important;
  display:grid!important;
}
.qualification-ranking .ranking-page{
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none;
  transition:none!important;
}
.qualification-ranking .ranking-page.is-active{
  opacity:1!important;
  visibility:visible!important;
  transition:opacity .70s ease!important;
}
.qualification-ranking .ranking-page.is-leaving{
  opacity:0!important;
  visibility:visible!important;
  transition:opacity .70s ease!important;
}

/* V1.0.134 Ergebnisdisplay: Fade-Fix am tatsächlich verwendeten #rankingPages.
   V1.0.127/128 zielten irrtümlich auf einen nicht vorhandenen Elternselektor. */
#rankingPages .ranking-page,
#rankingPages .ranking-page.is-active,
#rankingPages .ranking-page.is-leaving{
  position:absolute!important; inset:0!important; width:100%!important; height:100%!important;
  transform:none!important; display:grid!important;
  grid-template-rows:repeat(15,minmax(0,1fr))!important;
  align-content:stretch!important; pointer-events:none!important;
}
#rankingPages .ranking-page{
  opacity:0!important; visibility:hidden!important; transition:none!important;
}
#rankingPages .ranking-page.is-active{
  opacity:1!important; visibility:visible!important; transition:opacity .70s ease!important;
}
#rankingPages .ranking-page.is-leaving{
  opacity:0!important; visibility:visible!important; transition:opacity .70s ease!important;
}

.q2-pending-actions{display:flex;flex-wrap:wrap;gap:7px}.q2-pending-actions .q2-pending-team{display:inline-flex;align-items:center;gap:6px;padding:4px 5px 4px 10px}.q2-pending-actions .q2-pending-team form{margin:0}.q2-pending-actions .q2-pending-team button{width:22px;height:22px;border:0;border-radius:50%;padding:0;font-weight:900;cursor:pointer;background:#b53a3a;color:#fff}.registration-modal form+form{margin-top:9px}

/* V1.0.134 Moderator: Q1-Wartehinweis anstelle leerer DG-Fenster */
.moderator-overview .mod-q1-waiting{display:block}
.moderator-overview .mod-q1-waiting-card{height:100%;box-sizing:border-box;padding:1.1vw;border:2px solid rgba(96,195,235,.42);border-radius:14px;background:rgba(13,48,68,.78);overflow:hidden}
.moderator-overview .mod-q1-waiting-card>strong{display:block;margin:.55vw 0 .65vw;font-size:clamp(16px,1.15vw,23px);line-height:1.08;color:#fff}
.moderator-overview .mod-q1-waiting-card>p{margin:0 0 .55vw;font-size:clamp(11px,.76vw,15px);line-height:1.2;color:#c8dce6}
.moderator-overview .mod-q1-waiting-teams{display:flex;flex-wrap:wrap;gap:.3vw}
.moderator-overview .mod-q1-waiting-teams span{padding:.22vw .45vw;border-radius:7px;background:#eaf2f5;color:#123247;font-size:clamp(10px,.68vw,13px);font-weight:900;white-space:nowrap}
.moderator-overview .mod-q1-waiting-card>small{display:block;margin-top:.65vw;color:#7ec6e5;font-size:clamp(10px,.66vw,13px);font-weight:800}

/* V1.0.134 Mobile: dritter Qualifikations-Reiter */
.mobile-view-tabs button{min-width:0}
.mobile-rank-row.is-women-qualified{background:#f7ddea}
@media(max-width:420px){
 .mobile-view-tabs{gap:3px}
 .mobile-view-tabs button{padding:9px 2px;font-size:9.5px;letter-spacing:0}
}
\n\n/* V1.0.142 Moderator: einheitliche Live-Farblogik */
.moderator-overview .mod-table-wrap .mod-rank-line.mark-current,
.moderator-overview .mod-women-raster .mod-side-row.mark-current{background:#17613a !important}
.moderator-overview .mod-table-wrap .mod-rank-line.mark-next,
.moderator-overview .mod-women-raster .mod-side-row.mark-next{background:#6a5005 !important}
.moderator-overview .mod-table-wrap .mod-rank-line.mark-prepare,
.moderator-overview .mod-women-raster .mod-side-row.mark-prepare{background:#17465a !important}
.moderator-overview .mod-table-wrap .mod-rank-line.mark-last-result,
.moderator-overview .mod-women-raster .mod-side-row.mark-last-result{outline:1px solid rgba(255,255,255,.38);outline-offset:-1px}
.moderator-overview .mod-heat-fixed.is-current .mod-heat-title{background:#16724a !important}
.moderator-overview .mod-heat-fixed.is-next .mod-heat-title{background:#9a7400 !important;color:#fff}
.moderator-overview .mod-heat-fixed.is-prepare .mod-heat-title{background:#1b536d !important}


/* V1.0.144 Moderator: 35 gleich hohe Zeilen pro Ranglistenspalte (70 Gruppen gesamt). */
.moderator-overview .mod-rank-body{grid-template-rows:repeat(35,minmax(0,1fr))!important;height:100%;min-height:0}
.moderator-overview .mod-table-wrap .mod-rank-line{min-height:0!important;height:auto!important;padding-top:0!important;padding-bottom:0!important;line-height:.82!important}
.moderator-overview .mod-table-wrap .mod-rank-line>b{font-size:clamp(9px,.57vw,11.5px);line-height:.82}
.moderator-overview .mod-table-wrap .mod-rank-line>strong{font-size:clamp(9px,.60vw,12px);line-height:.82}
.moderator-overview .mod-table-wrap .mod-rank-line>div{font-size:clamp(8px,.53vw,10.5px);line-height:.82}
.moderator-overview .mod-table-wrap .mod-rank-line>em{font-size:clamp(9px,.62vw,12.5px);line-height:.82}
.moderator-overview .mod-quali-run>span{font-size:clamp(8.5px,.58vw,11.5px)}
.moderator-overview .mod-quali-run>small{font-size:clamp(7px,.46vw,9px)}
\n\n/* V1.0.145 Moderator: Live-Markierungen + kompakter DG-Bereich */
/* Ranglistenfarben: AM START grün, NÄCHSTER DG gelb, zuletzt freigegebener DG blau. */
.moderator-overview .mod-table-wrap .mod-rank-line.mark-current,
.moderator-overview .mod-women-raster .mod-side-row.mark-current{background:#17613a !important;outline:0 !important}
.moderator-overview .mod-table-wrap .mod-rank-line.mark-next,
.moderator-overview .mod-women-raster .mod-side-row.mark-next{background:#6a5005 !important;outline:0 !important}
.moderator-overview .mod-table-wrap .mod-rank-line.mark-last-result,
.moderator-overview .mod-women-raster .mod-side-row.mark-last-result{background:#17465a !important;outline:0 !important}
/* IN VORBEREITUNG erhält bewusst keine Markierung in den Ranglisten. */
.moderator-overview .mod-table-wrap .mod-rank-line.mark-prepare,
.moderator-overview .mod-women-raster .mod-side-row.mark-prepare{background:transparent !important;outline:0 !important}

/* DG links deutlich schmäler/kleiner; dadurch mehr Breite für Gruppe + Bezirk rechts. */
.moderator-overview .mod-side-fixed .mod-heat-fixed{grid-template-columns:13% minmax(0,87%) !important}
.moderator-overview .mod-side-fixed .mod-heat-fixed>b{font-size:clamp(10px,.72vw,15px) !important;text-align:left;padding-left:.12vw;letter-spacing:0;white-space:nowrap}
.moderator-overview .mod-side-fixed .mod-heat-lanes{min-width:0}
.moderator-overview .mod-side-fixed .mod-heat-lanes p{grid-template-columns:8% minmax(0,92%) !important}
.moderator-overview .mod-side-fixed .mod-heat-team{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.moderator-overview .mod-side-fixed .mod-heat-team small{font-size:.82em;font-weight:800}

/* V1.0.149: Veranstaltungswechsel in der Anmeldung */
.registration-page-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.registration-event-switcher{display:flex;align-items:center;gap:7px;padding:7px 10px;border-radius:12px;background:#eef3f6}.registration-event-switcher span{font-size:.72rem;font-weight:900;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.registration-event-switcher select{min-width:260px;max-width:430px;padding:7px 9px;font-weight:800;background:#fff}
@media(max-width:700px){.registration-page-actions{width:100%;justify-content:stretch}.registration-event-switcher{width:100%;display:grid}.registration-event-switcher select{min-width:0;max-width:none;width:100%}}

/* V1.0.153: Qualifikationsabschluss und Finalvorschau */
.qualification-finish-status{display:grid;gap:8px;margin:16px 0}.qualification-finish-status span{padding:10px 12px;border-radius:10px;font-weight:850}.qualification-finish-status .ok{background:#e7f6eb;color:#176b35}.qualification-finish-status .warn{background:#fff1d6;color:#815500}.qualification-finish-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.secondary-note{font-size:.88rem;color:var(--muted);font-weight:750}.final-preview-table{display:grid;gap:3px}.final-preview-row{display:grid;grid-template-columns:54px minmax(180px,1fr) 88px 88px 100px 150px;gap:8px;align-items:center;padding:8px 10px;border-radius:8px;background:#f5f8fa}.final-preview-row.head{font-size:.75rem;font-weight:900;text-transform:uppercase;color:var(--muted);background:#eaf0f3}.final-preview-row.tie-auto{background:#fff4d8;border:1px solid #e4bd62}.final-preview-row.tie-open{background:#fde5e5;border:2px solid #c95050}.final-preview-row .time{font-variant-numeric:tabular-nums;font-weight:850}.tie-explain{grid-column:2/-1;font-size:.82rem;font-weight:750}.ll-preview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.ll-preview-card{border:1px solid #d7e0e5;border-radius:12px;padding:12px;background:#f8fafb}.ll-preview-card h3{margin:0 0 8px}.ll-preview-slot{display:grid;grid-template-columns:62px 70px minmax(0,1fr) 80px;gap:7px;padding:5px 0;border-top:1px solid #e2e8eb;align-items:center}.final-mode-summary{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 16px}.final-mode-summary span{padding:6px 9px;border-radius:999px;background:#eaf1f5;font-weight:850;font-size:.82rem}@media(max-width:850px){.final-preview-row{grid-template-columns:44px minmax(120px,1fr) 70px 70px}.final-preview-row>*:nth-child(5),.final-preview-row>*:nth-child(6){grid-column:auto}.ll-preview-grid{grid-template-columns:1fr}}

/* V1.0.154: Lucky-Loser-Uebersicht auf Moderator/Displays */
.ll-overview-card{min-height:0}.ll-overview-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.8vw;margin-top:1vh}.ll-overview-heat{background:#0b1b29;border:1px solid #2a4b60;border-radius:14px;padding:.8vw;min-width:0}.ll-overview-heat.active{outline:3px solid #69c1e4;outline-offset:1px}.ll-overview-heat.done{opacity:.88}.ll-overview-head{display:flex;justify-content:space-between;gap:.5vw;align-items:baseline;margin-bottom:.5vh}.ll-overview-head strong{font-size:clamp(18px,1.35vw,28px);color:#fff}.ll-overview-head span{font-size:clamp(11px,.8vw,16px);font-weight:900;color:#69c1e4}.ll-overview-row{display:grid;grid-template-columns:3.5em 1fr auto;gap:.45vw;align-items:center;border-top:1px solid #28465a;padding:.48vh 0;min-width:0}.ll-overview-row b{color:#69c1e4;font-size:clamp(11px,.75vw,15px)}.ll-overview-row strong{font-size:clamp(13px,1vw,20px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ll-overview-row span{font-size:clamp(11px,.78vw,16px);font-weight:900;white-space:nowrap}.ll-overview-winner{margin-top:.6vh;font-weight:950;color:#fff}.moderator-final-layout.is-ll{height:auto;display:block}.moderator-final-layout.is-ll+.final-tree-card{margin-top:1.2vh}@media(max-width:1100px){.ll-overview-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){.ll-overview-grid{grid-template-columns:1fr}}

/* V1.0.155: getrennte LL-Anzeige und echter 16:9-KO-Turnierbaum */
.ll-display-full .ll-overview-card{height:calc(100vh - 13vh);display:flex;flex-direction:column}.ll-display-full .ll-overview-grid{flex:1;align-items:stretch}.ll-display-full .ll-overview-heat{display:flex;flex-direction:column;justify-content:flex-start;padding:1.05vw}.ll-display-full .ll-overview-head strong{font-size:clamp(22px,1.7vw,34px)}.ll-display-full .ll-overview-row{padding:1.05vh 0;grid-template-columns:4.2em minmax(0,1fr) auto}.ll-display-full .ll-overview-row strong{font-size:clamp(16px,1.25vw,25px)}
.ko-bracket-card{height:calc(100vh - 13vh);overflow:hidden;display:flex;flex-direction:column;padding:1.2vw 1.35vw}.ko-bracket-heading{display:flex;justify-content:space-between;align-items:end;gap:2vw;flex:0 0 auto}.ko-bracket-heading strong{display:block;font-size:clamp(20px,1.5vw,30px);color:#fff;margin-top:.2vh}.ko-bracket-heading>span{color:#a9c0cc;font-weight:800;font-size:clamp(11px,.78vw,15px)}.ko-bracket{flex:1;min-height:0;display:grid;grid-template-columns:1.45fr 1.18fr 1fr 1.08fr;gap:2.4vw;margin-top:1vh;position:relative}.ko-round{min-width:0;display:flex;flex-direction:column}.ko-round h3{height:3vh;margin:0;color:#69c1e4;font-size:clamp(12px,.8vw,16px);letter-spacing:.08em}.ko-round-body{flex:1;min-height:0;display:flex;flex-direction:column;justify-content:space-around;gap:.4vh}.ko-match{position:relative;background:#0b1b29;border:1px solid #2a4b60;border-radius:10px;padding:.38vw .48vw;min-width:0}.ko-match:after{content:"";position:absolute;top:50%;right:-2.45vw;width:2.45vw;border-top:1px solid #42657a}.ko-final .ko-match:after{display:none}.ko-match.active{outline:3px solid #69c1e4;outline-offset:1px;background:#15364d}.ko-match.done{border-color:#4f7967}.ko-match>b{display:block;color:#69c1e4;font-size:clamp(9px,.62vw,12px);margin-bottom:.2vh}.ko-team{display:grid;grid-template-columns:1.2em minmax(0,1fr) auto;gap:.4vw;align-items:center;padding:.22vh .1vw;border-top:1px solid #233f51;min-width:0}.ko-team span{font-weight:850;font-size:clamp(10px,.72vw,14px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ko-team small{font-weight:900;color:#8ecce5}.ko-team.pending span{color:#9ab0bd;font-style:italic}.ko-qf .ko-round-body{padding:4.8% 0}.ko-sf .ko-round-body{padding:16% 0}.ko-final .ko-round-body{padding:28% 0;gap:4vh}.ko-main-final{border-width:2px}.ko-small-final{opacity:.82}
@media(max-width:1100px){.ko-bracket-card{height:auto;overflow:auto}.ko-bracket{grid-template-columns:1fr 1fr;gap:1.2vw}.ko-match:after{display:none}.ll-display-full .ll-overview-card{height:auto}}
/* V1.0.156 Admin LL live + 2x2 LL presentation */
.admin-ll-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:16px}.admin-ll-current h2{margin:.2em 0 .6em}.admin-ll-current .admin-lane-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.admin-run-state{display:flex;flex-direction:column;gap:.35rem;margin:.8rem 0}.admin-run-state strong{font-size:1.05rem}.admin-ll-emergency{margin-top:.8rem;border-top:1px solid #d8e0e5;padding-top:.7rem}.admin-ll-emergency summary{cursor:pointer;font-weight:900}.admin-ll-emergency form{margin-top:.6rem}.admin-release-strip{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-top:1rem;padding:1rem;border-radius:12px;background:#f4f6f7}.admin-release-strip.ready{background:#e8f6ed}.admin-ll-side{align-self:start}.admin-ll-list-row{display:flex;flex-direction:column;gap:.25rem;padding:.75rem;border-bottom:1px solid #dfe5e8}.admin-ll-list-row.active{border-left:4px solid #1f9ed1}.admin-ll-list-row.done{opacity:.72}.admin-ll-list-row>span{font-size:.78rem;font-weight:900}.admin-ll-list-row>small{font-size:.78rem}.admin-ll-list-row>strong{color:#15733a}.ll-display-full .ll-overview-grid,.moderator-ll-main .ll-overview-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));height:100%;gap:.8vw}.ll-display-full .ll-overview-row strong,.moderator-ll-main .ll-overview-row strong{white-space:normal;overflow:visible;text-overflow:clip;line-height:1.08}.moderator-ll-layout{height:calc(100vh - 13vh);display:grid;grid-template-columns:minmax(0,1fr) 31vw;gap:1vw;min-height:0}.moderator-ll-main,.moderator-ll-main .ll-overview-card{height:100%;min-height:0}.moderator-ll-main .ll-overview-card{display:flex;flex-direction:column}.moderator-ll-main .ll-overview-grid{flex:1}.moderator-r16-preview{height:100%;overflow:hidden;padding:1vw}.moderator-r16-preview h3{margin:.2vh 0 .7vh}.r16-preview-match{background:#0b1b29;border:1px solid #2a4b60;border-radius:8px;padding:.45vw;margin:.42vh 0}.r16-preview-match>b{color:#69c1e4;font-size:clamp(10px,.65vw,13px)}.r16-preview-team{font-size:clamp(11px,.78vw,15px);font-weight:850;padding:.18vh 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.r16-preview-team.pending{color:#9fb3bf;font-style:italic}.announcer-heats.final-ll{grid-template-rows:1fr}.announcer-heats.final-ko{grid-template-rows:1fr .7fr}.announcer-heats.final-ko .ann-lanes{grid-template-columns:repeat(2,1fr)}
@media(max-width:1100px){.admin-ll-layout{grid-template-columns:1fr}.admin-ll-current .admin-lane-grid{grid-template-columns:repeat(2,1fr)}.moderator-ll-layout{height:auto;grid-template-columns:1fr}.ll-display-full .ll-overview-grid,.moderator-ll-main .ll-overview-grid{grid-template-columns:1fr}}
/* V1.0.158 Finalphasen-Konsolidierung */
.ll-display-with-ranking{height:calc(100vh - 13vh);display:grid;grid-template-columns:minmax(0,1fr) 25vw;gap:1vw;min-height:0}.ll-display-with-ranking .ll-display-heats,.ll-display-with-ranking .ll-display-heats .ll-overview-card{height:100%;min-height:0}.ll-display-with-ranking .ll-overview-card{display:flex;flex-direction:column}.ll-display-with-ranking .ll-overview-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));flex:1;height:auto}.ll-display-with-ranking .ll-overview-row strong{white-space:normal;overflow:visible;text-overflow:clip;line-height:1.08}.ll-overview-row.is-winner{background:rgba(52,160,92,.16)}.ll-overview-row.is-winner strong:after{content:" · SIEGER";color:#78d59a;font-size:.72em}.ll-overview-row.is-loser{opacity:.62}.ll-standings-card{height:100%;min-height:0;overflow:hidden;padding:1vw}.ll-standing-block{margin-top:.8vh}.ll-standing-block h3{margin:.2vh 0 .45vh;font-size:clamp(12px,.85vw,17px);color:#fff}.ll-standing-row{display:grid;grid-template-columns:2.2em minmax(0,1fr) 2.6em auto;gap:.35vw;align-items:center;border-top:1px solid #29485b;padding:.42vh 0}.ll-standing-row b{color:#69c1e4}.ll-standing-row strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ll-standing-row span{font-size:.78em;color:#9fc6d9}.ll-standing-row em{font-style:normal;font-weight:900;white-space:nowrap}.ll-standing-row.pending{opacity:.45}.ll-standing-note{display:block;color:#91aab8;margin-top:.8vh;line-height:1.2}.ll-standing-block.losers{max-height:48%;overflow:hidden}.moderator-ll-side{height:100%;display:grid;grid-template-rows:42% minmax(0,1fr);gap:.8vh;min-height:0}.moderator-ll-side .ll-standings-card,.moderator-ll-side .moderator-r16-preview{height:auto;min-height:0}.moderator-ll-side .ll-standing-block.losers{display:none}.moderator-ll-layout{grid-template-columns:minmax(0,1fr) 33vw}.ko-match:after{display:none!important}.ko-connectors{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible;z-index:0}.ko-connectors path{fill:none;stroke:#42657a;stroke-width:1.5;vector-effect:non-scaling-stroke}.ko-round{position:relative;z-index:1}.ko-match.next-up{outline:2px solid #e0bd4d;outline-offset:1px}.ko-match.prepare-up{outline:2px solid #7d93a0;outline-offset:1px}.women-final-strip{display:grid;grid-template-columns:1.25fr repeat(4,minmax(0,1fr));gap:.55vw;align-items:stretch;margin-top:.7vh;flex:0 0 auto}.women-final-strip>div:first-child{padding:.35vw}.women-final-mini{background:#0b1b29;border:1px solid #2a4b60;border-radius:8px;padding:.35vw .45vw;min-width:0}.women-final-mini b,.women-final-mini span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.women-final-mini b{color:#69c1e4;font-size:clamp(9px,.62vw,12px)}.women-final-mini span{font-size:clamp(9px,.66vw,13px);font-weight:800}.women-final-mini.active{outline:3px solid #69c1e4}.women-final-mini.next-up{outline:2px solid #e0bd4d}.women-final-mini.prepare-up{outline:2px solid #7d93a0}.admin-ll-side{display:flex;flex-direction:column;gap:12px}.admin-ll-side .admin-rank-panel{height:min(56vh,620px)}.admin-ll-compact-overview{margin:0}.admin-ll-current .admin-lane-card{min-width:0}.admin-ll-current .admin-lane-grid{align-items:stretch}
@media(max-width:1100px){.ll-display-with-ranking{height:auto;grid-template-columns:1fr}.ll-standings-card{height:auto}.moderator-ll-side{height:auto;grid-template-rows:auto}.women-final-strip{grid-template-columns:1fr 1fr}.ko-connectors{display:none}}

/* V1.0.159: klassischer Turnierraster, Moderator-AF kompakt, LL-Admin wie Quali */
.ko-connectors{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible;z-index:0}.ko-connectors path{fill:none;stroke:#42657a;stroke-width:1.4;vector-effect:non-scaling-stroke}.ko-round{position:relative;z-index:1}
.moderator-r16-preview{display:flex;flex-direction:column;min-height:0}.moderator-r16-preview h3{font-size:clamp(10px,.7vw,14px);line-height:1.15;margin:.15vh 0 .45vh}.moderator-r16-preview{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:auto auto repeat(4,minmax(0,1fr));column-gap:.45vw;row-gap:.32vh}.moderator-r16-preview>.pub-eyebrow,.moderator-r16-preview>h3{grid-column:1/-1}.moderator-r16-preview .r16-preview-match{margin:0;min-height:0;padding:.28vw .38vw;display:flex;flex-direction:column;justify-content:center}.moderator-r16-preview .r16-preview-team{font-size:clamp(9px,.65vw,13px);padding:.08vh 0;line-height:1.05}
.admin-ll-current .admin-ll-qualification-clone{margin-top:0;padding:10px}.admin-ll-current .admin-live-lanes{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.admin-ll-current .admin-live-lane h2{font-size:18px;line-height:1.05;min-height:38px;margin:8px 0;overflow:hidden}.admin-ll-current .admin-scoreline{min-height:42px}.admin-ll-current .admin-emergency-fields{margin-top:8px}
.admin-rank-legend{display:flex;gap:5px;flex-wrap:wrap;padding:4px 4px 6px;font-size:9px;font-weight:900}.admin-rank-legend span{padding:2px 5px;border-radius:5px}.admin-rank-legend .fixed{background:#d8f3df;border-left:4px solid #18864b}.admin-rank-legend .ll{background:#fff0c7;border-left:4px solid #d28a00}.admin-rank-row.is-final-qualified{background:#d8f3df;border-left:4px solid #18864b;padding-left:2px}.admin-rank-row.is-ll-qualified{background:#fff0c7;border-left:4px solid #d28a00;padding-left:2px}
@media(max-width:1100px){.admin-ll-current .admin-live-lanes{grid-template-columns:repeat(2,1fr)}}

/* V1.0.160 · Moderator-AF lesbarer, Admin-LL-Stand und Damen-Schedule */
.admin-ll-standings-wrap .ll-standings-card{height:auto;background:#fff;color:#0b1b29;border-color:#d6e0e6;box-shadow:none}
.admin-ll-standings-wrap .pub-eyebrow,.admin-ll-standings-wrap .ll-standing-row b{color:#08749d}
.admin-ll-standings-wrap .ll-standing-block h3,.admin-ll-standings-wrap .ll-standing-row strong{color:#0b1b29}
.admin-ll-standings-wrap .ll-standing-row{border-top-color:#d6e0e6}
.admin-ll-standings-wrap .ll-standing-row span,.admin-ll-standings-wrap .ll-standing-note{color:#5f7480}
.admin-ll-standings-wrap .ll-standing-block.losers{display:none}
.women-sequence-note{display:block;margin-top:.25vh;color:#91aab8;font-size:clamp(9px,.58vw,12px);line-height:1.15}
/* V1.0.161 Finalphase: klare Ablaufmarkierung und Moderator-Full-HD */
.ko-match.active,.women-final-mini.active{outline:3px solid #25b85a!important;outline-offset:2px!important;background:rgba(37,184,90,.12)!important}
.ko-match.next-up,.women-final-mini.next-up{outline:3px solid #f0dc00!important;outline-offset:2px!important}
.ko-match.prepare-up,.women-final-mini.prepare-up{outline:3px solid #e34b3f!important;outline-offset:2px!important}
.moderator-final-info{padding:.75vw;overflow:hidden;min-height:0}
.mod-final-fast-grid{display:grid;grid-template-columns:1fr 1fr;gap:.55vw;margin-top:.45vh}.mod-final-fast-grid>div{min-width:0}.mod-final-fast-grid b{display:block;color:#69c1e4;font-size:clamp(10px,.72vw,14px);margin-bottom:.2vh}.mod-final-fast-grid span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:clamp(10px,.68vw,13px);line-height:1.35}.mod-final-fast-grid span strong{color:#fff;margin-right:.25em}.mod-member-warning{margin-top:.55vh;padding:.45vw;border:2px solid #e0bd4d;border-radius:8px;display:flex;flex-direction:column;gap:.15vh;font-size:clamp(10px,.68vw,13px)}.mod-member-warning>b{color:#f0dc00}.mod-member-warning strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mod-member-ok{margin-top:.55vh;color:#78d59a;font-size:clamp(9px,.62vw,12px)}
.moderator-ko-overview{display:grid;grid-template-columns:minmax(0,1fr) 24vw;gap:.8vw;height:calc(100vh - 45vh);min-height:0}.moderator-ko-overview>div,.moderator-ko-overview .ko-bracket-card{height:100%;min-height:0}.moderator-ko-overview .ko-bracket-card{padding:.7vw}.moderator-ko-overview aside{min-height:0}.moderator-ko-overview .moderator-final-info{height:100%}
.final-member-names{display:block;grid-column:2/-1;color:#b8d2df;font-size:clamp(10px,.72vw,14px);line-height:1.25;margin-top:.2vh}

/* V1.0.164: Damen direkt im Turnierbaum; LL-Moderator-AF wieder exakt V1.0.159 */
.ko-sf .ko-round-body.ko-sf-mixed{padding:8% 0;gap:.7vh}
.ko-final .ko-round-body.ko-final-mixed{padding:10% 0;gap:1.0vh}
.ko-women-match{background:#51243f;border:2px solid #e68bd4}
.ko-women-match>b{color:#ffb9ed}
.ko-women-match .ko-team{border-top-color:#7b4569}
.ko-women-match .ko-team.pending span{color:#e8bddb}
.ko-connectors path.women-link{stroke:#e68bd4;stroke-width:2}
.ko-women-match.done{border-color:#c66daf}
@media(max-width:1100px){.ko-sf .ko-round-body.ko-sf-mixed,.ko-final .ko-round-body.ko-final-mixed{padding:0}}
/* V1.0.165: verbindliche Finalbahn-Auslosung */
.lane-assignment-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px;margin-top:12px}
.lane-assignment-row{border:1px solid #d6e0e5;border-radius:8px;padding:8px 10px;display:grid;gap:3px}
.lane-assignment-row span{font-size:.86rem}
.ko-team .ko-lane{display:block;min-width:0;margin:0;padding:0;background:none;color:#69c1e4;font-size:clamp(10px,.72vw,14px);font-style:normal;font-weight:900;text-align:left}
.moderator-upcoming-lane{display:grid;grid-template-columns:72px 1fr;gap:8px;margin-top:7px;padding-top:7px;border-top:1px solid rgba(125,220,255,.18)}
.moderator-upcoming-lane b{color:#7bdcff}

/* V1.0.166 – Finalbahn-Steuerung zentral im Admin-Live */
.admin-final-lanes-panel{margin-top:12px;background:#fff;border:1px solid #d6e0e6;border-radius:12px;padding:14px;color:#0b1b29}
.admin-final-lanes-panel h3{margin:3px 0 8px}.admin-final-lanes-panel .eyebrow{color:#08749d}
.admin-final-lane-list{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin:9px 0 12px;max-height:245px;overflow:auto}
.admin-final-lane-list>div{display:grid;grid-template-columns:minmax(72px,1fr) auto auto;gap:6px;border:1px solid #d6e0e6;border-radius:7px;padding:5px 7px;font-size:.78rem}
.admin-final-lane-list span{white-space:nowrap}.admin-final-lane-list.compact{max-height:180px}
@media(max-width:1100px){.admin-final-lane-list{grid-template-columns:1fr}}

/* V1.0.167 · zentraler Übergang LL -> Finalphase */
.admin-final-transition{max-width:1500px;margin:18px auto;padding:28px}
.admin-final-transition .lead{max-width:1100px;font-size:1.05rem;line-height:1.45}
.final-transition-grid{display:grid;grid-template-columns:minmax(340px,.8fr) minmax(560px,1.2fr);gap:22px;margin-top:22px}
.final-transition-grid>div,.final-transition-lanes{border:1px solid #cbd8df;border-radius:14px;padding:18px;background:#fff}
.final-transition-af{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.final-transition-af>div{border:1px solid #ccd9e0;border-radius:8px;padding:9px 11px;display:grid;gap:3px}
.final-transition-af span{display:block;font-weight:700}
.final-transition-lanes{margin-top:22px}
.admin-final-lane-list.transition-list{max-height:340px;overflow:auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:12px 0 18px}
.admin-final-lane-list.transition-list>div{border:1px solid #d4dee4;border-radius:7px;padding:7px 9px}
.admin-final-lane-list.transition-list span{display:block}
@media(max-width:1000px){.final-transition-grid{grid-template-columns:1fr}.admin-final-lane-list.transition-list{grid-template-columns:1fr 1fr}}

/* V1.0.169 · LL-Ergebnisdarstellung Mobile / Moderator */
.ll-overview-row{grid-template-columns:3.5em minmax(0,1fr) auto auto}.ll-overview-row .ll-team-name{min-width:0}.ll-winner-badge{font-style:normal;font-size:clamp(9px,.62vw,12px);font-weight:950;color:#78d59a;border:1px solid rgba(120,213,154,.55);border-radius:999px;padding:.12em .48em;white-space:nowrap}.ll-result{display:flex;align-items:baseline;justify-content:flex-end;gap:.32em;min-width:0}.ll-result .ll-total{color:#fff;font-size:1em}.ll-result small{color:#69c1e4;font-size:.72em;font-weight:800;white-space:nowrap}.ll-overview-row.is-winner strong:after{content:none!important}.ll-overview-winner{display:none!important}
.mobile-final-round.mobile-ll-round.done{opacity:1}.mobile-ll-row{display:grid;grid-template-columns:58px minmax(0,1fr) auto;grid-template-areas:"lane team badge" "lane result result";column-gap:7px;row-gap:2px;align-items:center;border-top:1px solid #e2e8ec;padding:7px 0}.mobile-ll-row.is-winner{background:rgba(52,160,92,.10);border-radius:7px;padding-left:5px;padding-right:5px}.mobile-ll-lane{grid-area:lane;color:#4b7f99;font-size:11px;white-space:nowrap}.mobile-ll-team{grid-area:team!important;color:#173042!important;font-size:14px!important;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.mobile-ll-winner{grid-area:badge;font-style:normal;font-size:9px;font-weight:950;color:#15733a;border:1px solid #75b98c;border-radius:999px;padding:2px 5px;white-space:nowrap}.mobile-ll-result{grid-area:result!important;display:flex!important;justify-content:flex-end;align-items:baseline;gap:5px;color:#173042!important}.mobile-ll-result strong{display:inline!important;font-size:14px!important;margin:0!important}.mobile-ll-result small{display:inline!important;color:#2d83a8!important;font-size:10px!important;font-weight:800}.mobile-ll-round>strong{margin-bottom:3px}


/* V1.0.170 Meldungen + LL-Layout Feinabstimmung */
.alert,.success-block,.error-block{position:relative;padding-right:44px}.flash-close{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:28px;height:28px;border:0;border-radius:50%;background:rgba(0,0,0,.08);color:inherit;font-size:20px;font-weight:900;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}.flash-close:hover{background:rgba(0,0,0,.14)}.flash-message,.success-block{transition:opacity .22s ease,transform .22s ease}.flash-hiding{opacity:0;transform:translateY(-4px)}
.ll-overview-row{grid-template-columns:4.2em minmax(0,1fr) 4.8em 10.2em;gap:.45vw}.ll-overview-row .ll-winner-badge{justify-self:end}.ll-overview-row .ll-result{width:10.2em;justify-content:flex-end;font-variant-numeric:tabular-nums}.ll-overview-row .ll-result .ll-total{display:inline-block;min-width:4.5em;text-align:right}.ll-overview-row .ll-result small{display:inline-block;min-width:5.2em;text-align:left}.ll-display-full .ll-overview-row{grid-template-columns:4.2em minmax(0,1fr) 4.8em 10.2em}.moderator-ll-main .ll-overview-row{grid-template-columns:4.2em minmax(0,1fr) 4.8em 10.2em}
.mobile-final-round.mobile-ll-round{border:1px solid #d7e1e6;border-radius:10px;padding:8px 10px;margin:8px 0;background:#fbfcfd}.mobile-final-round.mobile-ll-round>small{margin:0}.mobile-final-round.mobile-ll-round>strong{margin:1px 0 3px}.mobile-ll-row{grid-template-columns:58px minmax(0,1fr) auto 128px;grid-template-areas:"lane team badge result";min-height:38px;padding:4px 0;column-gap:7px;row-gap:0;align-items:center}.mobile-ll-row.is-winner{padding-left:5px;padding-right:5px}.mobile-ll-result{justify-content:flex-end!important;white-space:nowrap}.mobile-ll-result strong{min-width:49px;text-align:right}.mobile-ll-result small{min-width:68px;text-align:left}.mobile-ll-lane,.mobile-ll-team,.mobile-ll-winner,.mobile-ll-result{align-self:center}
@media(max-width:560px){.mobile-ll-row{grid-template-columns:54px minmax(0,1fr) auto;grid-template-areas:"lane team badge" "lane result result";min-height:44px}.mobile-ll-result{justify-content:flex-end!important}.ll-overview-row{grid-template-columns:3.6em minmax(0,1fr) 4.5em 9.5em}}


/* V1.0.171: LL rows - stable result columns and compact mobile alignment */
.ll-overview-row,.ll-display-full .ll-overview-row,.moderator-ll-main .ll-overview-row{grid-template-columns:4.2em minmax(0,1fr) 10.8em!important;gap:.45vw;align-items:center}
.ll-team-cell{display:flex;align-items:center;gap:.45em;min-width:0}
.ll-team-cell .ll-team-name{min-width:0;flex:1 1 auto}
.ll-team-cell .ll-winner-badge{flex:0 0 auto;justify-self:auto}
.ll-overview-row .ll-result{display:grid!important;grid-template-columns:4.7em 5.7em;width:10.8em!important;gap:.35em;align-items:baseline;justify-content:stretch!important;font-variant-numeric:tabular-nums}
.ll-overview-row .ll-result .ll-total{min-width:0!important;text-align:right;white-space:nowrap}
.ll-overview-row .ll-result small{min-width:0!important;text-align:left;white-space:nowrap}
.mobile-ll-row{grid-template-columns:58px minmax(0,1fr) 128px!important;grid-template-areas:"lane team result"!important;min-height:34px!important;padding:3px 0!important;align-items:center!important}
.mobile-ll-team{display:flex!important;align-items:center!important;gap:6px!important;line-height:1.15!important}
.mobile-ll-team>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mobile-ll-winner{flex:0 0 auto;align-self:center}
.mobile-ll-result{align-self:center!important;display:grid!important;grid-template-columns:49px 72px!important;gap:5px!important;justify-content:end!important;align-items:baseline!important}
.mobile-ll-result strong,.mobile-ll-result small{min-width:0!important;margin:0!important;white-space:nowrap}
@media(max-width:560px){.mobile-ll-row{grid-template-columns:54px minmax(0,1fr)!important;grid-template-areas:"lane team" "lane result"!important;min-height:40px!important}.mobile-ll-result{justify-self:end!important}.ll-overview-row{grid-template-columns:3.6em minmax(0,1fr) 10em!important}.ll-overview-row .ll-result{grid-template-columns:4.4em 5.2em;width:10em!important}}


/* V1.0.172: LL-Qualifikationsrang bleibt in der rechten Ergebnisspalte */
.ll-overview-row .ll-result .ll-qual-rank{grid-column:1 / -1;justify-self:end;text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}

/* V1.0.173: Herkunft der fuer Platz 17-28 massgeblichen Bestzeit */
.ll-time-source{display:inline-block;margin-left:.38rem;padding:.08rem .32rem;border:1px solid currentColor;border-radius:.35rem;font-size:.68em;font-style:normal;font-weight:800;line-height:1.15;vertical-align:.08em;opacity:.82}

/* V1.0.174: LL loser ranking shows the actual ranking time; source badge identifies Q1/Q2/LL. */
.ll-standing-row.ll-loser-ranking-row{grid-template-columns:2.2em minmax(0,1fr) auto}


/* V1.0.177: Ergebnisansager zeigt im LL aktuellen + vorherigen DG; Moderator bekommt Bestzeiten unter LL */
.announcer-heats.final-ll{grid-template-rows:1.08fr .92fr}
.moderator-ll-main{display:grid!important;grid-template-rows:minmax(0,1fr) auto;gap:.75vh;height:100%;min-height:0}
.moderator-ll-overview{min-height:0;overflow:hidden}
.moderator-ll-overview .ll-overview-card{height:100%;min-height:0;padding:.75vw}
.moderator-ll-overview .ll-overview-grid{gap:.55vw}
.moderator-ll-overview .ll-overview-round{min-height:0;padding:.55vw}
.moderator-ll-fastest{display:grid;grid-template-columns:1fr 1fr;gap:.75vw;min-height:0}
.moderator-fast-card{padding:.55vw .7vw!important;min-height:0}
.moderator-fast-row{display:grid;grid-template-columns:1.7em minmax(0,1fr) 5.2em;gap:.35vw;align-items:center;border-top:1px solid #29485b;padding:.22vh 0;font-size:clamp(10px,.68vw,13px)}
.moderator-fast-row b{color:#69c1e4}.moderator-fast-row span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:800}.moderator-fast-row strong{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
@media(max-width:1100px){.moderator-ll-main{height:auto}.moderator-ll-fastest{grid-template-columns:1fr}.announcer-heats.final-ll{grid-template-rows:auto auto}}

/* V1.0.179: Finalphase erst nach Adminfreigabe; kompakter Moderator-KO und Mobile-Finalregister */
.moderator-ko-stage{display:grid;grid-template-columns:minmax(0,1fr) 25vw;gap:.8vw;height:calc(100vh - 9.5vw);min-height:0}.moderator-ko-tree,.moderator-ko-tree .ko-bracket-card{height:100%;min-height:0}.moderator-ko-tree .ko-bracket-card{padding:.65vw}.moderator-ko-side{display:flex;flex-direction:column;gap:.7vw;min-height:0}.moderator-ko-side .moderator-final-info{height:auto}.moderator-member-card{padding:.8vw}.moderator-member-team{border-top:1px solid #28465a;padding:.55vh 0}.moderator-member-team b{display:block;color:#69c1e4;font-size:clamp(11px,.8vw,16px)}.moderator-member-team span{display:block;margin-top:.25vh;color:#fff;font-size:clamp(11px,.72vw,15px);line-height:1.25}.mobile-final-tabs{overflow-x:auto}.mobile-final-tabs button{min-width:52px}.mobile-ko-match{border:1px solid #d7e1e6;border-radius:10px;padding:8px 10px;margin:8px 0}.mobile-ko-match.active{outline:2px solid #25b85a;background:rgba(37,184,90,.07)}.mobile-ko-match.done{background:#f6f8f9}.mobile-ko-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:3px}.mobile-ko-head strong{font-size:15px}.mobile-ko-head small{font-size:9px;font-weight:950;color:#397793}.mobile-ko-row{display:grid;grid-template-columns:62px minmax(0,1fr) 58px;gap:7px;align-items:center;border-top:1px solid #e2e8ec;min-height:34px}.mobile-ko-row b{font-size:10px;color:#4b7f99}.mobile-ko-row span{font-size:13px;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mobile-ko-row strong{text-align:right;font-size:13px}.announcer-heats.final-ll .ann-lanes{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:1100px){.moderator-ko-stage{grid-template-columns:1fr;height:auto}}

/* V1.0.181: Admin-Finaluebergang vollstaendig kontrollierbar */
.final-transition-check-grid{display:grid;grid-template-columns:minmax(320px,.7fr) minmax(520px,1.3fr);gap:22px;margin-top:22px}
.final-transition-check-grid>div{border:1px solid #cbd8df;border-radius:14px;padding:18px;background:#fff;min-width:0}
.final-transition-ranking h2,.final-transition-ll h2{margin-top:0}
.final-transition-rank-list{display:grid;grid-template-columns:1fr}
.final-transition-rank-list>div{display:grid;grid-template-columns:2.2em minmax(0,1fr) auto;gap:8px;align-items:center;border-top:1px solid #dbe4e9;padding:5px 0;min-width:0}
.final-transition-rank-list b{color:#197aa5}.final-transition-rank-list strong{white-space:normal;overflow:visible;text-overflow:clip}.final-transition-rank-list span{font-weight:800;font-variant-numeric:tabular-nums}
.admin-final-transition .final-transition-ll .ll-standings-card{height:auto;min-height:0;overflow:visible;padding:0;border:0;box-shadow:none;background:transparent;color:#0b1b29}
.admin-final-transition .final-transition-ll .ll-standing-block.losers{max-height:none;overflow:visible}
.admin-final-transition .final-transition-ll .ll-standing-block h3{color:#0b1b29}
.admin-final-transition .final-transition-ll .ll-standing-row{border-color:#dbe4e9}
.admin-final-transition .final-transition-af-grid{grid-template-columns:1fr}
@media(max-width:1000px){.final-transition-check-grid{grid-template-columns:1fr}.final-transition-rank-list{grid-template-columns:1fr}}

/* V1.0.184 Finalbetrieb: Admin-Live analog Quali/LL; Moderator-Namenswarnung lesbar */
.admin-final-live-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;align-items:start}
.admin-final-current .admin-final-qualification-clone{margin-top:0;padding:10px}
.admin-final-current .admin-final-lanes{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.admin-final-current .admin-live-lane h2{font-size:18px;line-height:1.05;min-height:38px;margin:8px 0;overflow:hidden}
.admin-final-current .admin-scoreline{min-height:42px}
.admin-final-upcoming{margin-top:10px}
.admin-final-upcoming .admin-next-strip{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));max-height:none;overflow:visible}
.mod-member-warning .mod-member-missing-list{display:grid;gap:.16vh;margin-top:.15vh}
.mod-member-warning .mod-member-missing-list strong{display:block;white-space:normal;overflow:visible;text-overflow:clip;line-height:1.18}

/* V1.0.185 – Mobile Live: chronologische Register und eindeutige Live-Markierung */
.mobile-view-tabs button.is-live{border:2px solid #25b85a;box-shadow:0 0 0 1px rgba(37,184,90,.12) inset}
.mobile-live-badge{display:inline-block;margin-left:4px;padding:1px 5px;border-radius:999px;background:#25b85a;color:#fff;font-size:8px;font-weight:950;line-height:1.35;vertical-align:1px;letter-spacing:.02em}
.mobile-view-tabs button.active.is-live{border-color:#25b85a}

/* V1.0.187 – Finalphase Admin-Live: Bahnkarten wie in Qualifikation/LL vierteln */
.admin-final-current .admin-final-lanes{
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
}
@media(max-width:1100px){
  .admin-final-current .admin-final-lanes{grid-template-columns:repeat(2,minmax(0,1fr));}
}
/* V1.0.188: KO-Ergebnisse wie LL: Sieger direkt in der Zeile, grün hinterlegt,
   Ergebniszeit rechts anstelle des Qualirangs sobald ein Lauf freigegeben ist. */
.ko-team.is-winner{background:rgba(37,184,90,.14)}
.ko-team.is-winner>span{color:#dff7e7}
.ko-winner-badge{display:inline-block;margin-left:.45em;font-style:normal;font-size:.72em;font-weight:950;color:#78d59a;border:1px solid rgba(120,213,154,.55);border-radius:999px;padding:.08em .42em;vertical-align:.08em;white-space:nowrap}
.ko-result-time{font-weight:950!important;color:#fff!important;font-variant-numeric:tabular-nums;white-space:nowrap}

/* V1.0.189: Mobile-Live Finaldurchgänge wie LL – Ergebnisdetails + Sieger */
.mobile-ko-row{grid-template-columns:62px minmax(0,1fr) 128px;gap:7px;align-items:center}
.mobile-ko-row.is-winner{background:rgba(52,160,92,.10);border-radius:7px;padding-left:5px;padding-right:5px}
.mobile-ko-team{display:flex!important;align-items:center;gap:6px;min-width:0;color:#173042!important}
.mobile-ko-team>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:800}
.mobile-ko-winner{font-style:normal;font-size:9px;font-weight:950;color:#15733a;border:1px solid #75b98c;border-radius:999px;padding:2px 5px;white-space:nowrap;flex:0 0 auto}
.mobile-ko-result{display:flex!important;justify-content:flex-end;align-items:baseline;gap:5px;white-space:nowrap;color:#173042!important}
.mobile-ko-result strong{font-size:13px!important;text-align:right;margin:0!important}
.mobile-ko-result small{display:inline!important;color:#2d83a8!important;font-size:10px!important;font-weight:800}
@media(max-width:560px){.mobile-ko-row{grid-template-columns:58px minmax(0,1fr);grid-template-areas:"lane team" "lane result"}.mobile-ko-lane{grid-area:lane}.mobile-ko-team{grid-area:team}.mobile-ko-result{grid-area:result;justify-content:flex-start}}
/* V1.0.190: KO-Zeiten auf allen grossen Anzeigebildschirmen wie im LL: Gesamt (Laufzeit + Fehler). */
.ko-result-time{display:inline-flex;align-items:baseline;justify-content:flex-end;gap:4px;min-width:max-content}
.ko-result-time strong{font:inherit;font-weight:950;color:inherit}
.ko-result-time span{font-size:.72em;font-weight:850;color:#58bde8;white-space:nowrap}
/* V1.0.190: KO-Zeiten auf Schedule, Result und Moderator wie im LL: Gesamt (Laufzeit + Fehler). */
.ko-result-time{display:inline-flex;align-items:baseline;justify-content:flex-end;gap:4px;min-width:max-content}
.ko-result-time strong{font:inherit;font-weight:950;color:inherit}
.ko-result-time span{font-size:.72em;font-weight:850;color:#58bde8;white-space:nowrap}

/* V1.0.191: Sieger-Markierung darf die feste Bahnspalte im Mobile-Live nicht verschieben. */
.mobile-ko-row.is-winner{padding-left:0;padding-right:0}

/* V1.0.193: KO-Ergebnisspalte feste Breite – Zeit/Fehlerinhalt darf die Position nicht verschieben. */
.ko-team{
  grid-template-columns:1.2em minmax(0,1fr) 10.8em;
}
.ko-team>small{
  width:100%;
  min-width:0;
  text-align:right;
  justify-self:stretch;
}
.ko-result-time{
  width:100%;
  min-width:0;
  justify-content:flex-end;
}

/* V1.0.194: Teilnehmernamen-Warnung auch im Admin-Live der Finalphase. */
.admin-member-warning{margin:0 0 14px;padding:12px 14px;border:2px solid #d4ad25;border-radius:10px;background:#fff9dc;display:flex;flex-direction:column;gap:4px;color:#102b45}
.admin-member-warning>strong{color:#8a6500}
.admin-member-missing-list{display:grid;gap:2px;margin-top:3px}
.admin-member-missing-list b{display:block;white-space:normal;overflow:visible}

/* V1.0.195: KO-Ergebnis intern in feste Teilspalten teilen.
   Gesamtzeit bleibt immer an derselben X-Position; Länge von Laufzeit/Fehlern verschiebt sie nicht. */
.ko-result-time{
  display:grid;
  grid-template-columns:4.15em 6.25em;
  column-gap:.4em;
  align-items:baseline;
  justify-content:end;
  width:100%;
  min-width:0;
}
.ko-result-time strong{
  display:block;
  width:auto;
  min-width:0;
  text-align:right;
  white-space:nowrap;
}
.ko-result-time span{
  display:block;
  width:auto;
  min-width:0;
  text-align:left;
  white-space:nowrap;
}

/* V1.0.196: Admin-Live Teilnehmerwarnung als rechte Seitenspalte */
.admin-final-live-layout{grid-template-columns:minmax(0,4fr) minmax(250px,1fr);gap:18px}
.admin-final-side{min-width:0}
.admin-final-side .admin-member-warning{margin:0;position:sticky;top:12px}
@media(max-width:1100px){
 .admin-final-live-layout{grid-template-columns:1fr}
 .admin-final-side .admin-member-warning{position:static}
}

/* V1.0.197: rechte Teilnehmerwarnung bündig mit Oberkante des Hauptcontainers */
.admin-final-live-layout{align-items:start}
.admin-final-side{align-self:start}
.admin-final-side .admin-member-warning{top:0}

/* V1.0.198: Admin-Live Warnbox exakt an Panel-Oberkante ausrichten.
   Ursache: .panel hat margin:16px 0; die Seitenspalte hatte keinen entsprechenden oberen Abstand. */
.admin-final-side{margin-top:16px}
.admin-final-side .admin-member-warning{top:12px}
@media(max-width:1100px){
  .admin-final-side{margin-top:0}
}

/* V1.0.199 – Moderator: Gruppennamen im Finalbaum nicht künstlich abschneiden.
   Die gemeinsame KO-Komponente bleibt für Schedule/Result unverändert. */
body.moderator-view .ko-match .ko-team-name,
body.moderator-view .ko-match .team-name,
body.moderator-view .ko-team-name,
body.moderator-view .ko-slot-team {
    min-width: 0;
    max-width: none !important;
    width: auto !important;
    overflow: visible !important;
    text-overflow: clip !important;
    white-space: nowrap !important;
}

/* Im Moderator-Finalbaum bekommt der Name den verfügbaren Mittelraum;
   Bahn links und Zeit/Q-Rang rechts bleiben feste Spalten. */
body.moderator-view .ko-match-row {
    grid-template-columns: 18px minmax(0, 1fr) 138px !important;
}
body.moderator-view .ko-match-row .ko-team-name,
body.moderator-view .ko-match-row .team-name {
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    max-width: 100% !important;
}

/* Mehr Platz für den Turnierbaum, ohne die rechte Infospalte zu entfernen. */
body.moderator-view .moderator-finals-layout {
    grid-template-columns: minmax(0, 1fr) minmax(270px, 320px) !important;
}

/* V1.0.200 – Moderator-KO: Platz vom rechten Infobereich an den Turnierbaum zurückgeben.
   Der rechte Bereich ist reine Zusatzinformation und wird deshalb schmaler.
   Schnellste Zeiten werden dort untereinander statt zweispaltig dargestellt. */
.moderator-ko-stage{
    grid-template-columns:minmax(0,1fr) 19vw !important;
    gap:.65vw !important;
}
.moderator-ko-side .mod-final-fast-grid{
    grid-template-columns:1fr !important;
    gap:.45vh !important;
}
.moderator-ko-side .mod-final-fast-grid span{
    white-space:normal;
    overflow:visible;
    text-overflow:clip;
    line-height:1.18;
}
.moderator-ko-side .mod-member-warning{
    padding:.5vw;
}
.moderator-ko-side .mod-member-warning strong{
    white-space:normal;
    overflow:visible;
    text-overflow:clip;
}

/* Die tatsächliche KO-Namenszelle darf den zusätzlichen Platz nun auch nutzen.
   Ergebnis/Q-Rang rechts bleibt unverändert fixiert. */
.moderator-ko-tree .ko-team > span{
    max-width:none !important;
}

/* V1.0.202 – Moderator-Finalbaum: rechte Reservespalte nur so breit wie ihr Inhalt.
   Global bleiben 10.8em für Ergebniszeiten reserviert; im Moderator ist das bei
   offenen Paarungen mit nur Q-Rang/Platzhalter unnötig und kürzt die Namen. */
.moderator-ko-tree .ko-team{
    grid-template-columns:1.2em minmax(0,1fr) auto !important;
}
.moderator-ko-tree .ko-team > small:not(.ko-result-time){
    width:auto !important;
    min-width:auto !important;
    justify-self:end !important;
}
.moderator-ko-tree .ko-team > .ko-result-time{
    width:10.8em !important;
    min-width:10.8em !important;
}

/* V1.0.204: Mobile-Live Finalzeiten mit festen Teilspalten.
   Weder Stellenzahl der Gesamtzeit noch Fehlerzahl verschiebt die X-Position. */
.mobile-ko-result{display:grid!important;grid-template-columns:4.2em 7.4em;column-gap:.4em;align-items:baseline;justify-content:end;width:100%;min-width:0;white-space:nowrap;font-variant-numeric:tabular-nums}
.mobile-ko-result strong{display:block;width:auto;min-width:0;margin:0!important;text-align:right!important;white-space:nowrap}
.mobile-ko-result small{display:block!important;width:auto;min-width:0;text-align:left;white-space:nowrap}
@media(max-width:560px){.mobile-ko-result{justify-content:start}}


/* V1.0.205: Mobile-Live – stabile Zeitspalten + verlinkte Gruppen */
.mobile-ko-row{
  grid-template-columns:62px minmax(0,1fr) 154px!important;
}
.mobile-ko-result{
  grid-template-columns:5.2em 8.2em!important;
  column-gap:.45em!important;
  justify-content:end!important;
  overflow:visible!important;
}
.mobile-ko-result strong{
  min-width:5.2em!important;
  text-align:right!important;
  overflow:visible!important;
}
.mobile-ko-result small{
  min-width:8.2em!important;
  overflow:visible!important;
}
.mobile-final-team-link{
  color:inherit!important;
  text-decoration:none!important;
  font:inherit;
  font-weight:inherit;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.mobile-final-team-link:active,
.mobile-final-team-link:hover{
  text-decoration:underline!important;
}
.mobile-run-history{
  grid-template-columns:minmax(90px,1fr) minmax(110px,auto) auto;
}
.mobile-run-history b{
  font-size:14px;
}
@media(max-width:560px){
  .mobile-ko-row{
    grid-template-columns:58px minmax(0,1fr)!important;
  }
  .mobile-ko-result{
    justify-content:start!important;
  }
  .mobile-run-history{
    grid-template-columns:minmax(90px,1fr) auto;
  }
  .mobile-run-history span{
    grid-column:1 / -1;
    grid-row:2;
  }
}

/* V1.0.207: veranstaltungsbezogene Darstellung / Tag-Nacht-Modus */
.public-body{background:var(--ffc-display-bg,#08121c)!important;color:var(--ffc-display-text,#eef5f8)!important;font-family:var(--ffc-display-font,Aptos,Segoe UI,Arial,sans-serif)!important;font-size:calc(16px * var(--ffc-font-scale,1))}
.public-body .card,.public-body .ko-match,.public-body .women-final-mini{background-color:var(--ffc-display-surface,#102333);border-color:var(--ffc-display-border,#24475f);color:var(--ffc-display-text,#eef5f8)}
.public-body .pub-eyebrow,.public-body .mod-final-fast-grid b,.public-body .ko-team .ko-lane{color:var(--ffc-display-accent,#69c1e4)!important}
.ko-match.active,.women-final-mini.active{outline-color:var(--ffc-state-current,#25b85a)!important;background:color-mix(in srgb,var(--ffc-state-current,#25b85a) 12%,transparent)!important}
.ko-match.next-up,.women-final-mini.next-up{outline-color:var(--ffc-state-next,#f0dc00)!important}
.ko-match.prepare-up,.women-final-mini.prepare-up{outline-color:var(--ffc-state-prepare,#e34b3f)!important}
.ko-team.is-winner{background:color-mix(in srgb,var(--ffc-state-winner,#25b85a) 14%,transparent)!important}
.ko-women-match{border-color:var(--ffc-state-women,#e68bd4)!important;background:color-mix(in srgb,var(--ffc-state-women,#e68bd4) 28%,var(--ffc-display-surface,#102333))!important}
.mobile-live-body{font-family:var(--ffc-display-font,Aptos,Segoe UI,Arial,sans-serif);font-size:calc(16px * var(--ffc-font-scale,1))}
.mobile-live-body .mobile-card,.mobile-live-body .mobile-final-round,.mobile-live-body .mobile-ko-match{border-color:var(--ffc-display-border,#d7e1e6)}
.mobile-ko-match.active{outline-color:var(--ffc-state-current,#25b85a)!important}.mobile-ko-row.is-winner,.mobile-ll-row.is-winner{background:color-mix(in srgb,var(--ffc-state-winner,#25b85a) 12%,transparent)!important}.mobile-live-badge{background:var(--ffc-state-current,#25b85a)!important}
.appearance-presets{display:flex;justify-content:space-between;align-items:center;gap:24px}.appearance-presets p{max-width:720px}.appearance-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.color-field{display:grid;grid-template-columns:54px 1fr;align-items:center;gap:10px}.color-field input[type=color]{height:44px;padding:3px}.color-field code{font-size:12px;color:var(--muted)}.appearance-preview{--p-bg:#08121c;--p-surface:#102333;--p-text:#eef5f8;--p-muted:#9fc6d9;--p-border:#24475f;--p-accent:#69c1e4;--p-current:#25b85a;--p-next:#f0dc00;--p-prepare:#e34b3f;--p-winner:#25b85a;--p-women:#e68bd4;--p-font:Aptos,Segoe UI,Arial,sans-serif;--p-scale:1;background:var(--p-bg);color:var(--p-text);font-family:var(--p-font);font-size:calc(16px * var(--p-scale));border-radius:14px;padding:18px;margin:22px 0}.preview-card{background:var(--p-surface);border:1px solid var(--p-border);border-radius:12px;padding:14px}.preview-title{color:var(--p-accent);font-weight:950;margin-bottom:10px}.preview-row{display:grid;grid-template-columns:120px 1fr auto;gap:12px;padding:10px;border-top:1px solid var(--p-border);align-items:center}.preview-row.current{border-left:5px solid var(--p-current)}.preview-row.next{border-left:5px solid var(--p-next)}.preview-row.prepare{border-left:5px solid var(--p-prepare)}.preview-row.winner{border-left:5px solid var(--p-winner)}.preview-row.women{border-left:5px solid var(--p-women)}
@media(max-width:900px){.appearance-presets{align-items:flex-start;flex-direction:column}.appearance-grid{grid-template-columns:1fr 1fr}}@media(max-width:600px){.appearance-grid{grid-template-columns:1fr}.preview-row{grid-template-columns:1fr auto}.preview-row>b{grid-column:1/-1}}

/* V1.0.212: Abschlusskontrolle, Finale-Namenscheck, vollständige Siegerehrung */
.result-review-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,1fr);gap:24px}.final-member-gate{max-width:980px}.final-member-gate-teams{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:18px 0}.final-member-gate-teams>div{border:1px solid var(--border,#cbd5df);border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:5px}.ceremony-complete{justify-content:flex-start;padding-top:1.5vh}.ceremony-complete-grid{display:grid;grid-template-columns:minmax(0,2.2fr) minmax(320px,.8fr);gap:1vw;margin-top:1.4vh;min-height:0}.ceremony-side{display:grid;gap:1vw;align-content:start}.ceremony-ranking-cols{display:grid;grid-auto-flow:column;grid-template-rows:repeat(14,auto);grid-auto-columns:minmax(0,1fr);column-gap:1.3vw}.ceremony-rank-row{display:grid;grid-template-columns:2.5em minmax(0,1fr);gap:.45em;padding:.22vh 0;border-bottom:1px solid #29475a;font-size:clamp(13px,1.05vw,20px)}.ceremony-rank-row b{color:#65c2e5;text-align:right}.ceremony-rank-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ceremony-fast-row{display:grid;grid-template-columns:5em 1fr;gap:.5em;padding:.35vh 0}.ceremony-fast-row b{font-size:clamp(18px,1.5vw,28px)}
@media(max-width:900px){.result-review-grid,.ceremony-complete-grid,.final-member-gate-teams{grid-template-columns:1fr}.ceremony-ranking-cols{grid-auto-flow:row;grid-template-rows:none;grid-template-columns:1fr}}

/* V1.0.213: Herkunftsbadge bei schnellsten Zeiten */
.run-stage-badge{display:inline-block;margin-left:.35em;padding:.08em .38em;border:1px solid currentColor;border-radius:999px;font-size:.72em;font-style:normal;font-weight:800;line-height:1.2;vertical-align:.08em;white-space:nowrap;opacity:.9}

/* V1.0.214: Moderator – fokussierte Finalteilnehmer nach kleinem Herrenfinale */
.moderator-final-members{padding:.8vw}
.moderator-final-member-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65vw;margin-top:.6vh}
.moderator-final-member-lane{border:2px solid #ff5a16;padding:.55vw;min-width:0}
.moderator-final-member-head{border-bottom:1px solid #36566a;padding-bottom:.45vh;margin-bottom:.45vh}
.moderator-final-member-head strong{display:block;color:#69c1e4;font-size:clamp(12px,.82vw,17px)}
.moderator-final-member-head b{display:block;color:#fff;font-size:clamp(12px,.86vw,18px);white-space:normal;line-height:1.15;margin-top:.18vh}
.moderator-final-member-row{display:grid;grid-template-columns:3.4em minmax(0,1fr);gap:.35em;align-items:baseline;padding:.18vh 0}
.moderator-final-member-row em{font-style:normal;color:#69c1e4;font-weight:900;font-size:clamp(10px,.68vw,14px)}
.moderator-final-member-row span{color:#fff;font-weight:800;font-size:clamp(11px,.74vw,15px);line-height:1.15}


/* V1.0.215: Sieger-Badge ausserhalb der Ellipsis-Zone; Moderator-Finalisten untereinander. */
.ko-team > .ko-team-label{display:flex!important;align-items:center;gap:.38em;min-width:0;overflow:visible!important;text-overflow:clip!important;white-space:nowrap}
.ko-team > .ko-team-label > .ko-team-name-text{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:inherit;font-weight:inherit;color:inherit}
.ko-team > .ko-team-label > .ko-winner-badge{display:inline-block!important;flex:0 0 auto;overflow:visible!important}
.moderator-final-member-grid{grid-template-columns:minmax(0,1fr)!important;gap:.65vh!important}
.moderator-final-member-lane{width:100%;box-sizing:border-box}
.moderator-final-member-head{display:grid;grid-template-columns:5.2em minmax(0,1fr);gap:.5em;align-items:baseline}
.moderator-final-member-head strong,.moderator-final-member-head b{display:block!important;margin:0!important;white-space:nowrap!important;overflow:hidden;text-overflow:ellipsis}
.moderator-final-member-row{grid-template-columns:5.2em minmax(0,1fr)!important}
.moderator-final-member-row span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* V1.0.216: KO-Anzeigen – Bildschirmbreite besser nutzen, Namen vor Zeitdetails priorisieren. */
@media (min-width:1101px){
  /* Auf allen grossen KO-Anzeigen die bisher ungenutzten Aussenraender verkleinern. */
  .public-stage:has(.ko-bracket){padding-left:.65vw;padding-right:.65vw}

  /* Moderator: rechte Infospalte bleibt gut lesbar, der Baum erhaelt aber deutlich mehr Breite. */
  .moderator-ko-stage{grid-template-columns:minmax(0,1fr) 20vw!important;gap:.45vw!important}
  .moderator-ko-tree .ko-bracket-card{padding-left:.45vw!important;padding-right:.45vw!important}

  /* Weniger Leerraum zwischen AF/VF/HF/Finale; die gewonnene Breite geht an die Matchkarten. */
  .ko-bracket{grid-template-columns:1.38fr 1.16fr 1.02fr 1.08fr!important;gap:1.05vw!important}
  .ko-match:after{right:-1.1vw!important;width:1.1vw!important}

  /* Gesamtzeit oben, kleinere Aufschluesselung darunter. Dadurch wird die Ergebniszone schmaler. */
  .ko-team{grid-template-columns:1.2em minmax(0,1fr) 5.15em!important;column-gap:.28vw!important}
  .ko-result-time,
  .moderator-ko-tree .ko-team > .ko-result-time{
    width:5.15em!important;
    min-width:5.15em!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:flex-end!important;
    justify-content:center!important;
    gap:0!important;
    line-height:1.02!important;
  }
  .ko-result-time strong{font-size:1em!important;line-height:1.02!important;text-align:right!important}
  .ko-result-time span{font-size:.58em!important;line-height:1.02!important;text-align:right!important;color:#58bde8!important}

  /* Badge bleibt sichtbar; der Gruppenname bekommt den gesamten verbleibenden Raum. */
  .ko-team > .ko-team-label{gap:.25em!important}
  .ko-winner-badge{font-size:.62em!important;padding:.05em .28em!important}
}

/* V1.0.217: Gruppennummer immer sichtbar + ungenutzten Innenraum im KO-Baum reduzieren. */
.ko-team-name-text{display:flex!important;align-items:baseline;min-width:0!important;overflow:hidden!important;white-space:nowrap!important}
.ko-team-name-base{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ko-team-name-suffix{display:block;flex:0 0 auto;margin-left:.24em;white-space:nowrap;overflow:visible!important;text-overflow:clip!important}
@media (min-width:1101px){
  .ko-bracket{grid-template-columns:1.46fr 1.18fr 1.04fr 1.10fr!important;gap:.72vw!important}
  .ko-match:after{right:-.76vw!important;width:.76vw!important}
  .ko-team{column-gap:.20vw!important}
  .ko-team > .ko-team-label{gap:.20em!important}
}

/* V1.0.218: KO-Spalten ohne ungenutzte AF-Breite; Mobile-Finalzeiten bleiben in derselben Zeile. */
@media (min-width:1101px){
  /* AF war in V1.0.217 versehentlich verbreitert worden. Die Spalten werden kompakter
     und gleichmaessiger verteilt; der frei werdende Raum kommt VF/HF/Finale zugute. */
  .ko-bracket{grid-template-columns:1.20fr 1.18fr 1.10fr 1.12fr!important;gap:.62vw!important}
  .ko-match:after{right:-.66vw!important;width:.66vw!important}
}

@media (max-width:560px){
  /* Kein Umbruch der Ergebniszeit unter den Gruppennamen: Bahn | Gruppe | Ergebnis. */
  .mobile-ko-row{
    grid-template-columns:46px minmax(0,1fr) 82px!important;
    grid-template-areas:"lane team result"!important;
    gap:5px!important;
    align-items:center!important;
  }
  .mobile-ko-lane{grid-area:lane}
  .mobile-ko-team{grid-area:team;min-width:0!important}
  .mobile-ko-result{
    grid-area:result;
    display:flex!important;
    flex-direction:column!important;
    align-items:flex-end!important;
    justify-content:center!important;
    gap:0!important;
    min-width:0!important;
    width:82px!important;
    white-space:nowrap!important;
    line-height:1.05!important;
  }
  .mobile-ko-result strong{
    display:block!important;
    width:auto!important;
    min-width:0!important;
    text-align:right!important;
    font-size:13px!important;
    line-height:1.05!important;
  }
  .mobile-ko-result small{
    display:block!important;
    width:auto!important;
    min-width:0!important;
    text-align:right!important;
    font-size:8px!important;
    line-height:1.05!important;
  }
}
\n/* V1.0.219: Siegerehrung – 3 Gesamtspalten + Damen + Bestzeiten */
.ceremony-v219{padding:.7vh .55vw 0!important}
.ceremony-v219 .pub-title{font-size:clamp(30px,3.25vw,62px);line-height:1;margin:.35vh 0 1vh}
.ceremony-v219-grid{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,1fr) minmax(0,1fr);gap:.65vw;min-height:0;flex:1}
.ceremony-v219-grid>.card,.ceremony-v219-fastest>.card{padding:1.05vw!important;min-width:0}
.ceremony-v219-overall-cols{display:grid;grid-auto-flow:column;grid-template-rows:repeat(19,minmax(0,1fr));grid-auto-columns:minmax(0,1fr);column-gap:.65vw;height:calc(100vh - 17vh)}
.ceremony-v219-rank{display:grid;grid-template-columns:2.1em minmax(0,1fr) auto;gap:.3em;align-items:center;min-width:0;padding:.12vh .2vw;border-bottom:1px solid #29475a;font-size:clamp(12px,.92vw,18px);line-height:1.08}
.ceremony-v219-rank>b{color:#65c2e5;text-align:right;font-size:1em}
.ceremony-v219-rank .team-name-split{display:flex;min-width:0;gap:.25em;align-items:baseline;white-space:nowrap}
.ceremony-v219-rank .team-name-base{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.ceremony-v219-rank .team-name-number{flex:0 0 auto;font-weight:800}
.ceremony-v219-rank.fastest-team{background:rgba(37,184,90,.14);border-radius:5px;border-bottom-color:rgba(37,184,90,.45)}
.fastest-team-badge{font-style:normal;font-size:clamp(7px,.48vw,10px);font-weight:950;line-height:1;padding:.22em .38em;border:1px solid #4fd27a;border-radius:999px;color:#8ff0ac;white-space:nowrap}
.ceremony-v219-women-list{display:grid;grid-auto-rows:minmax(0,1fr);height:calc(100vh - 17vh)}
.ceremony-v219-women .ceremony-v219-rank{font-size:clamp(12px,.94vw,18px)}
.ceremony-v219-fastest{display:grid;grid-template-rows:1fr 1fr;gap:.65vw;min-width:0}
.ceremony-v219-fast-row{display:grid;grid-template-columns:1.5em 3.4em minmax(0,1fr) auto;gap:.28em;align-items:center;padding:.45vh 0;border-bottom:1px solid #29475a;font-size:clamp(11px,.78vw,16px);min-width:0}
.ceremony-v219-fast-row>b{color:#65c2e5;text-align:right}.ceremony-v219-fast-row>strong{font-size:1.05em}.ceremony-v219-fast-row>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
@media(max-width:1100px){.ceremony-v219-grid{grid-template-columns:1fr}.ceremony-v219-overall-cols{grid-auto-flow:row;grid-template-rows:none;grid-template-columns:1fr;height:auto}.ceremony-v219-women-list{height:auto}.ceremony-v219-fastest{grid-template-columns:1fr;grid-template-rows:auto}}


/* V1.0.220: Siegerehrung – max. 60 Gesamtgruppen (3x20), kompakte Damenzeilen, Top 10 */
.ceremony-v220 .ceremony-v219-grid{grid-template-columns:minmax(0,3fr) minmax(0,1fr) minmax(0,1fr)!important;align-items:stretch}
.ceremony-v220 .ceremony-v219-overall{position:relative;overflow:hidden}
.ceremony-v220-overall-pages{height:calc(100vh - 20vh);min-height:0}
.ceremony-v220-overall-page{display:none!important;grid-auto-flow:column!important;grid-template-rows:repeat(20,minmax(0,1fr))!important;grid-auto-columns:minmax(0,1fr)!important;column-gap:.55vw!important;height:100%!important}
.ceremony-v220-overall-page.is-active{display:grid!important}
.ceremony-v220 .ceremony-v219-rank{min-height:0}
.ceremony-v220 .ceremony-v219-rank .team-name-number{font:inherit!important;font-weight:inherit!important;color:inherit!important}
.ceremony-v220 .ceremony-v219-women-list{display:grid!important;grid-auto-rows:calc((100vh - 20vh)/20)!important;align-content:start!important;height:calc(100vh - 20vh)!important}
.ceremony-v220 .ceremony-v219-women .ceremony-v219-rank{height:auto!important;min-height:0!important}
.ceremony-v220 .ceremony-v219-fastest{height:calc(100vh - 20vh);grid-template-rows:1fr 1fr!important}
.ceremony-v220 .ceremony-v219-fast-row{padding:.22vh 0!important;font-size:clamp(10px,.72vw,15px)!important}
.ceremony-v220-page-indicator{position:absolute;right:1vw;bottom:.35vh;font-size:clamp(8px,.55vw,11px);font-weight:900;color:#65c2e5;letter-spacing:.08em}
@media(max-width:1100px){
 .ceremony-v220-overall-pages,.ceremony-v220 .ceremony-v219-women-list,.ceremony-v220 .ceremony-v219-fastest{height:auto!important}
 .ceremony-v220-overall-page{grid-auto-flow:row!important;grid-template-rows:none!important;grid-template-columns:1fr!important;height:auto!important}
 .ceremony-v220 .ceremony-v219-women-list{grid-auto-rows:auto!important}
}

/* V1.0.221: Siegerehrung – Folgeseiten behalten immer das feste 3-Spalten-Raster */
.ceremony-v220-overall-page{
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  grid-auto-columns:unset!important;
}
@media(max-width:1100px){
 .ceremony-v220-overall-page{grid-template-columns:1fr!important}
}

/* Qualifikationsanzeigen: nur die konfigurierten Bahnen verwenden. */
.flow-table .flow-head,.flow-table .flow-row{
  grid-template-columns:12% 7% repeat(var(--qualification-lanes,4),minmax(0,1fr));
}
@media(max-width:900px){
  .flow-table .flow-head,.flow-table .flow-row{
    grid-template-columns:18% 10% repeat(var(--qualification-lanes,4),minmax(140px,1fr));
    min-width:640px;
  }
}
/* Public Mobile-Live: sichtbare Aktualität auch bei unterbrochener Verbindung. */
.mobile-public-updated{font-size:11px;color:var(--ffc-display-muted,#5f7482);text-align:center;margin:12px 0 24px}
