:root{--navy:#071827;--navy2:#0b1d2b;--slate:#142531;--card:#1a2c38;--card2:#203541;--gold:#d8b65f;--gold2:#f1d47d;--text:#f6f7f8;--muted:#a9b7c1;--line:#3c4d58;--light:#e8ecee;--dark:#15232c;--red:#e04b43;--green:#3ecf8e;--blue:#64a8ff;--shadow:0 18px 55px rgba(0,0,0,.22)}*{box-sizing:border-box}html{background:var(--navy);color-scheme:dark}body{margin:0;background:radial-gradient(circle at 90% 0,#133348 0,transparent 32%),var(--navy);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;min-height:100vh}a{color:inherit}button,input,select,textarea{font:inherit}.wrap{max-width:1120px;margin:auto;padding:24px}.narrow{max-width:650px}.brand{color:var(--gold);font-weight:900;letter-spacing:.12em;text-transform:uppercase;font-size:.8rem}.subline,.muted{color:var(--muted)}h1{font-size:clamp(2rem,5vw,3.7rem);line-height:1.02;margin:.22em 0 .35em;font-weight:900;letter-spacing:-.035em}h2{font-size:1.45rem;margin:.25em 0 .7em}h3{color:var(--gold);text-transform:uppercase;font-size:.76rem;letter-spacing:.1em;margin:22px 0 9px}.card{background:linear-gradient(145deg,rgba(31,52,64,.98),rgba(18,37,48,.98));border:1px solid rgba(216,182,95,.33);border-radius:22px;padding:22px;margin:18px 0;box-shadow:var(--shadow)}.btn{appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--gold);border-radius:14px;padding:12px 16px;background:rgba(7,24,39,.35);color:var(--text);font-weight:800;text-decoration:none;cursor:pointer;transition:.18s transform,.18s background,.18s opacity}.btn:hover{transform:translateY(-1px);background:rgba(216,182,95,.08)}.btn:disabled{opacity:.38;cursor:not-allowed;transform:none}.btn.primary{background:var(--gold);color:#14212a;border-color:var(--gold)}.btn.ghost{border-color:var(--line);color:var(--muted)}.btn.block{width:100%}.btn.xl{min-height:60px;font-size:1.08rem}.btn.small{padding:8px 11px;border-radius:10px;font-size:.82rem}.alert{padding:13px 16px;border-radius:12px;margin:12px 0}.alert.good{background:rgba(62,207,142,.12);border:1px solid rgba(62,207,142,.45)}.alert.bad{background:rgba(224,75,67,.12);border:1px solid rgba(224,75,67,.45)}label{display:grid;gap:7px;color:var(--muted);font-size:.82rem;font-weight:700;margin:8px 0}input,select,textarea{width:100%;background:#0e202c;color:var(--text);border:1px solid var(--line);border-radius:11px;padding:12px;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--gold);box-shadow:0 0 0 2px rgba(216,182,95,.12)}textarea{resize:vertical}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.form-inline{display:flex;gap:12px;align-items:end;flex-wrap:wrap}.form-inline label{min-width:130px;flex:1}.check-row{display:flex;align-items:center;gap:10px!important;background:#10232f;border:1px solid var(--line);border-radius:14px;padding:14px 16px!important;color:var(--text)!important}.check-row input{width:22px;height:22px;accent-color:var(--gold)}.center{text-align:center}.hidden{display:none!important}.quick{display:flex;gap:10px;flex-wrap:wrap}.section-title,.admin-title,.public-head,.scorer-head,.starter-top{display:flex;align-items:center;justify-content:space-between;gap:16px}.back{display:inline-block;color:var(--gold);text-decoration:none;margin-bottom:8px}.eyebrow{text-transform:uppercase;letter-spacing:.11em;color:var(--gold);font-size:.75rem;font-weight:900}
/* scorer */.scorer-wrap{max-width:820px;padding-bottom:100px}.scorer-head h1{font-size:clamp(1.15rem,4vw,1.6rem);font-weight:800;letter-spacing:-.015em}.start-card{text-align:center;padding:38px 24px}.start-course{font-size:clamp(2.5rem,10vw,5rem);font-weight:900;color:var(--gold);letter-spacing:.08em;margin:24px 0}.start-course span{color:var(--muted);font-size:.55em}.hole-nav{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px}.hole-nav .btn:last-child{justify-self:end}.hole-title{text-align:center;font-size:2rem;font-weight:900;color:var(--text)}.hole-title span{font-size:.52em;color:var(--muted);font-weight:700;white-space:nowrap}.score-list{display:grid;gap:12px;margin:24px 0}.score-row{display:grid;grid-template-columns:minmax(150px,1fr) 58px 88px 58px 58px;align-items:center;gap:8px;background:rgba(6,20,31,.42);border:1px solid rgba(255,255,255,.05);padding:12px;border-radius:16px}.player-cell{display:flex;flex-direction:column;gap:3px;min-width:0}.player-cell strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.status-link{appearance:none;background:none;border:0;color:var(--muted);font-size:.7rem;padding:0;text-align:left;cursor:pointer}.step{height:58px;border:1px solid var(--gold);background:#10232f;color:#fff;font-size:2rem;font-weight:700;border-radius:12px;cursor:pointer}.score-input{height:58px;background:var(--light);color:#15232c;text-align:center;font-size:1.65rem;font-weight:900;border:0;border-radius:12px;padding:0}.running{text-align:right;font-weight:900;font-variant-numeric:tabular-nums}.under,.lscore.under{color:var(--red)!important}.score-row.inactive{grid-template-columns:minmax(160px,1fr) auto}.special{color:var(--gold);font-weight:900}.special.big{font-size:1.3rem}.sync{display:flex;align-items:center;justify-content:center;gap:7px;color:var(--muted);font-size:.78rem}.dot{width:8px;height:8px;border-radius:50%;background:#777}.dot.online{background:var(--green)}.dot.offline{background:var(--red)}.sticky-action{position:fixed;left:0;right:0;bottom:0;background:linear-gradient(180deg,transparent,var(--navy) 30%);padding:28px max(14px,calc((100vw - 790px)/2)) 14px;z-index:20}.reader-banner{position:sticky;top:0;z-index:100;background:#7a302f;color:white;text-align:center;font-weight:900;padding:10px;display:none}.reader-banner.show{display:block}.toast{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%) scale(.95);background:#0e202c;border:1px solid var(--gold);box-shadow:0 20px 80px #000;padding:18px 26px;border-radius:16px;font-weight:900;opacity:0;pointer-events:none;transition:.2s;z-index:200}.toast.show{opacity:1;transform:translate(-50%,-50%) scale(1)}.finish-mark{width:70px;height:70px;border-radius:50%;display:grid;place-items:center;background:var(--gold);color:#12212b;font-size:2rem;font-weight:900;margin:auto}.review-card{max-width:820px}.table-scroll{overflow:auto;-webkit-overflow-scrolling:touch}.review-table{width:100%;border-collapse:collapse;min-width:520px}.review-table th,.review-table td{border-bottom:1px solid var(--line);padding:10px;text-align:center}.review-table th:first-child,.review-table td:first-child{text-align:left;position:sticky;left:0;background:var(--slate);z-index:2}.review-table small{display:block;color:var(--muted);font-size:.65rem}.review-table thead th{color:var(--gold);font-size:.76rem;text-transform:uppercase;letter-spacing:.06em}.review-table tfoot th{border-top:2px solid var(--gold);color:var(--gold)}.score-link{display:inline-grid;place-items:center;width:38px;height:38px;background:#e5e8ea;color:#14222c;border-radius:8px;text-decoration:none;font-weight:900}.review-table.compact td,.review-table.compact th{padding:7px}.mini-score{width:58px;padding:8px;text-align:center}
/* live */.live-wrap{max-width:1000px}.public-head{padding:4px 0 10px}.live-pill{border:1px solid rgba(62,207,142,.45);color:#9aefc6;background:rgba(62,207,142,.08);padding:8px 12px;border-radius:999px;font-size:.78rem;font-weight:900}.pulse{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--green);margin-right:6px;box-shadow:0 0 0 0 rgba(62,207,142,.5);animation:pulse 1.8s infinite}@keyframes pulse{70%{box-shadow:0 0 0 8px rgba(62,207,142,0)}}.main-tabs{display:grid;grid-template-columns:1fr 1fr;background:#10232f;border:1px solid var(--line);border-radius:14px;padding:4px;margin:14px 0}.main-tabs a{text-align:center;padding:12px;border-radius:10px;text-decoration:none;color:var(--muted);font-weight:800}.main-tabs a.active{background:var(--gold);color:#14222c}.leader-head{display:flex;justify-content:space-between;gap:14px;align-items:end}.leader-head h1{margin-bottom:0}.class-tabs,.view-switch{display:flex;gap:7px;overflow:auto;padding:5px 0}.class-tabs a,.view-switch a{white-space:nowrap;text-decoration:none;border:1px solid var(--line);border-radius:999px;padding:9px 12px;color:var(--muted);font-size:.78rem;font-weight:800}.class-tabs a.active,.view-switch a.active{border-color:var(--gold);color:var(--gold);background:rgba(216,182,95,.08)}.leaderboard-card{padding:8px 14px}.table-head,.leader-row{display:grid;grid-template-columns:60px minmax(0,1fr) 76px 75px;gap:8px;align-items:center}.table-head{color:var(--gold);font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;font-weight:900;padding:9px 8px;border-bottom:1px solid var(--line)}#leaderRows{display:flex;flex-direction:column}.leader-row{text-decoration:none;padding:14px 8px;border-bottom:1px solid rgba(255,255,255,.07);transition:order .7s ease,background 1.2s ease,transform .5s ease}.leader-row.flash{background:rgba(216,182,95,.11)}.rank{font-size:1.02rem;font-weight:900}.pname{font-weight:800}.lscore{text-align:center;font-weight:900;font-size:1.15rem}.progress{text-align:right;color:var(--muted);font-weight:800}.net-details{margin:15px 0;color:var(--muted)}.net-details summary{cursor:pointer}.net-links{display:flex;gap:8px;margin-top:8px}.net-links a{color:var(--gold)}.flight-list{display:grid;gap:10px}.flight-card{display:flex;justify-content:space-between;align-items:center;gap:16px;background:var(--slate);border:1px solid rgba(216,182,95,.25);border-radius:16px;padding:16px;text-decoration:none}.flight-card div{display:grid;gap:5px}.flight-card span{color:var(--muted);font-size:.83rem}.flight-card b{color:var(--gold);font-size:1.2rem}.scorecard-block{border-top:1px solid var(--line);padding-top:10px;margin-top:20px}.hole-grid{display:grid;grid-template-columns:repeat(9,minmax(45px,1fr));gap:7px}.hole-cell{text-align:center;background:#10232f;border:1px solid var(--line);border-radius:10px;padding:8px 4px;display:grid;gap:6px}.hole-cell small{font-size:.62rem;color:var(--muted)}.golf-score{width:34px;height:34px;display:grid;place-items:center;margin:auto;font-weight:900;position:relative}.golf-score.birdie{border:2px solid var(--red);border-radius:50%}.golf-score.eagle{border:2px double var(--red);border-radius:50%;outline:1px solid var(--red);outline-offset:2px}.golf-score.bogey{border:2px solid var(--text)}.golf-score.doublebogey{border:2px double var(--text);outline:1px solid var(--text);outline-offset:2px}.special-page{font-size:6rem;font-weight:900;color:var(--gold);text-align:center;padding:70px}
/* admin */.admin-shell{max-width:1500px;margin:auto;padding:16px}.admin-top{display:flex;align-items:center;justify-content:space-between;gap:20px;background:#0d202d;border:1px solid var(--line);border-radius:16px;padding:13px 16px;position:sticky;top:8px;z-index:50;box-shadow:var(--shadow)}.admin-top nav{display:flex;gap:5px;flex-wrap:wrap}.admin-top nav a{text-decoration:none;color:var(--muted);padding:8px 9px;border-radius:9px;font-size:.78rem}.admin-top nav a:hover{background:#182c38;color:var(--text)}.admin-content{padding:22px 4px}.admin-content h1{font-size:2.7rem}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.kpis>div{background:var(--slate);border:1px solid rgba(216,182,95,.25);border-radius:16px;padding:17px}.kpis span{display:block;color:var(--muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.08em}.kpis b{font-size:2rem;color:var(--gold)}table{width:100%;border-collapse:collapse}th,td{padding:10px 8px;border-bottom:1px solid var(--line);text-align:left}th{color:var(--gold);font-size:.72rem;text-transform:uppercase;letter-spacing:.07em}.status{border-radius:999px;padding:5px 8px;font-size:.7rem;font-weight:900}.status.live{background:rgba(62,207,142,.13);color:#89e7ba}.status.finished{background:rgba(100,168,255,.13);color:#96c4ff}.status.not_started{background:rgba(255,255,255,.06);color:var(--muted)}.admin-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:16px}.flight-admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.codebox{margin-top:12px;padding:12px;border:1px dashed var(--gold);border-radius:12px;display:grid;gap:5px}.codebox b{color:var(--gold);font-size:1.25rem}.codebox small{color:var(--muted);overflow-wrap:anywhere}.status-form{display:flex;align-items:center;gap:8px;background:#10232f;padding:8px;border-radius:10px}.status-form select{width:auto}.starter-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.starter-card{background:white;color:#16242d;border-radius:18px;padding:22px;text-align:center;break-inside:avoid}.starter-card .brand{color:#997c31}.starter-card p{min-height:42px}.starter-card .qr{width:210px;height:210px;max-width:75%}.manual-code{display:grid;gap:3px;margin-top:10px}.manual-code small{text-transform:uppercase;letter-spacing:.1em}.manual-code strong{font-size:1.8rem;letter-spacing:.16em}
/* monitor */.monitor{min-height:100vh;padding:2.2vw 3vw;display:grid;grid-template-rows:auto 1fr auto;background:radial-gradient(circle at 85% 0,#18394d,transparent 35%),#071827}.monitor header{display:flex;justify-content:space-between;align-items:center}.monitor h1{color:var(--gold);font-size:clamp(2rem,4vw,5rem);text-transform:uppercase;letter-spacing:.03em;text-align:center}.monitor-single{align-self:center}.monitor-table{max-width:1500px;margin:auto;background:#10232f;border:1px solid rgba(216,182,95,.35);border-radius:24px;padding:1vw 2vw}.monitor .table-head,.monitor .leader-row{grid-template-columns:110px minmax(0,1fr) 150px 130px;font-size:clamp(1rem,1.6vw,2rem);padding:1.1vh 1vw}.monitor .table-head{font-size:clamp(.8rem,1vw,1.2rem)}.monitor footer{text-align:center;color:var(--muted);font-size:.85rem}.monitor-overview{align-self:center}.overview-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4vw}.mini-board{background:#10232f;border:1px solid rgba(216,182,95,.35);border-radius:18px;padding:1vw 1.2vw}.mini-board h2{color:var(--gold);font-size:clamp(1rem,1.5vw,1.7rem);text-transform:uppercase}.mini-board div{display:flex;justify-content:space-between;gap:10px;border-top:1px solid var(--line);padding:.65vh 0;font-size:clamp(.85rem,1.05vw,1.3rem)}
@media(max-width:760px){.wrap{padding:14px}.card{padding:15px;border-radius:17px}.scorer-head{align-items:flex-start}.scorer-head .btn{font-size:.75rem;padding:8px}.hole-nav{grid-template-columns:1fr 1fr}.hole-title{grid-column:1/-1;grid-row:1;text-align:left;font-size:1.7rem}.hole-nav .btn{grid-row:2}.score-row{grid-template-columns:minmax(90px,1fr) 48px 66px 48px 45px;padding:9px;gap:6px}.step,.score-input{height:52px}.step{font-size:1.7rem}.score-input{font-size:1.45rem}.player-cell strong{font-size:.86rem}.running{font-size:.86rem}.form-grid,.admin-grid,.flight-admin-grid{grid-template-columns:1fr}.kpis{grid-template-columns:repeat(2,1fr)}.admin-top{position:static;align-items:flex-start;flex-direction:column}.admin-top nav{overflow:auto;flex-wrap:nowrap;width:100%}.leader-head{align-items:flex-start;flex-direction:column}.hole-grid{grid-template-columns:repeat(5,1fr)}.starter-grid{grid-template-columns:1fr}.public-head .brand{font-size:.68rem}}
@media print{body{background:white!important}.no-print,.admin-top{display:none!important}.admin-shell,.admin-content{padding:0;margin:0;max-width:none}.starter-grid{grid-template-columns:repeat(2,1fr);gap:10mm}.starter-card{border:1px solid #bbb;box-shadow:none;page-break-inside:avoid}.starter-card .qr{width:50mm;height:50mm}}

/* RC3: mobile scorer touch + clearer leaderboard mode */
.step,.score-input{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.step{-webkit-user-select:none;user-select:none}
.leaderboard-mode{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 8px 12px;border-bottom:1px solid var(--line);color:var(--gold);font-size:.78rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase}
.leaderboard-mode b{display:inline-flex;align-items:center;justify-content:center;min-width:78px;padding:7px 10px;border-radius:999px;background:var(--gold);color:#14222c;font-size:.72rem;letter-spacing:.08em}

/* RC4: scorer safety, compact mobile score tables, monitor and import */
.scorer-wrap{padding-bottom:86px}.scorer-bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:120;display:grid;grid-template-columns:1fr 1fr;gap:1px;background:#091722;border-top:1px solid rgba(216,182,95,.35);padding:7px max(10px,env(safe-area-inset-left)) calc(7px + env(safe-area-inset-bottom));box-shadow:0 -8px 24px rgba(0,0,0,.28)}.scorer-bottom-nav button{appearance:none;border:1px solid rgba(216,182,95,.72);background:transparent;color:var(--muted);font:inherit;font-weight:900;padding:12px;border-radius:11px;cursor:pointer}.scorer-bottom-nav button.active{border-color:var(--gold);background:var(--gold);color:#14222c}.scorer-leader-pane{min-height:68vh}.scorer-leader-pane iframe{display:block;width:100%;height:calc(100vh - 155px);min-height:650px;border:0;border-radius:16px;background:#071827}.scorer-leader-note{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:.78rem;margin-bottom:8px}.embedded-live{padding:8px}.embedded-live .public-head{display:none}.score-column-label{text-align:right;color:var(--muted);font-size:.64rem;font-weight:900;text-transform:uppercase;letter-spacing:.09em;padding:0 8px 5px}.finished-banner{position:fixed;left:50%;top:18px;transform:translate(-50%,-140%);z-index:210;width:min(92vw,620px);background:#6f4d18;color:#fff;border:1px solid var(--gold);border-radius:14px;padding:12px 16px;box-shadow:var(--shadow);display:grid;gap:3px;transition:transform .25s ease}.finished-banner.show{transform:translate(-50%,0)}.finished-banner span{font-size:.78rem;color:#fff8df}.finished-card .alert{margin-top:14px}.code-input{text-transform:uppercase;letter-spacing:.16em;font-size:1.35rem;text-align:center;font-weight:900}.scorer-code-page{padding-top:9vh}
.review-fit{width:100%;overflow:hidden}.fit-table{table-layout:fixed;min-width:0!important;width:100%}.fit-table th,.fit-table td{padding:7px 4px!important;white-space:normal}.fit-table th:first-child,.fit-table td:first-child{width:54px;position:static!important;background:transparent!important}.fit-table thead th{font-size:.68rem;overflow:hidden;text-overflow:ellipsis}.fit-table .score-link{width:34px;height:34px}.fit-table tr.course-a+tr.course-b td,.fit-table tr.course-a+tr.course-c td,.fit-table tr.course-b+tr.course-a td,.fit-table tr.course-b+tr.course-c td,.fit-table tr.course-c+tr.course-a td,.fit-table tr.course-c+tr.course-b td{border-top:2px solid rgba(216,182,95,.38)}.mobile-flight-detail .fit-table td:not(:first-child){font-weight:900;font-size:1rem}.review-table.fit-table tfoot th{font-size:.68rem;overflow-wrap:anywhere}.mobile-review{max-width:100%}
.leaderboard-mode{padding-top:13px!important;padding-bottom:13px!important}.leaderboard-mode span{padding-right:18px}.leaderboard-mode b{margin-left:auto}.danger{border-color:#a74d4d!important;color:#ffc1c1!important;background:rgba(167,77,77,.08)!important}.import-fallback summary{cursor:pointer;font-weight:900;color:var(--gold)}.import-preview input,.import-preview select{min-width:78px;padding:8px}.import-preview input[name="first[]"],.import-preview input[name="last[]"]{min-width:130px}.monitor-sub{color:var(--muted);margin-top:4px}.monitor-single,.monitor-overview{min-height:0}.monitor-table{height:72vh;display:grid;grid-template-rows:auto 1fr;overflow:hidden}.monitor-rows{overflow:hidden;scroll-behavior:auto}.monitor-rows .leader-row{display:grid}.monitor-empty{padding:8vh;text-align:center;color:var(--muted);font-size:2vw}.mini-board b{color:var(--gold)}
@media(max-width:760px){.review-card{padding:12px}.fit-table th,.fit-table td{padding:6px 2px!important}.fit-table th:first-child,.fit-table td:first-child{width:46px}.fit-table thead th{font-size:.61rem;letter-spacing:0}.fit-table .score-link{width:30px;height:30px;border-radius:7px}.fit-table td{font-size:.84rem}.fit-table small{font-size:.55rem}.score-column-label{padding-right:2px}.scorer-leader-pane iframe{height:calc(100vh - 125px);min-height:560px}.leaderboard-mode{gap:22px}.leaderboard-mode span{padding-right:14px}.mobile-flight-detail{padding:12px}.import-preview{min-width:760px}.overview-grid{grid-template-columns:repeat(2,1fr)}}

/* RC4.1 hotfix */
.pdf-picker{display:grid;grid-template-columns:auto minmax(180px,1fr);gap:10px 12px;align-items:center;margin:14px 0 16px}.pdf-picker-title{grid-column:1/-1;color:var(--muted);font-size:.82rem;font-weight:800}.pdf-native-input{position:fixed!important;left:-10000px!important;top:auto!important;width:1px!important;height:1px!important;opacity:.001!important}.pdf-pick-btn{white-space:nowrap}.pdf-file-name{min-height:48px;display:flex;align-items:center;padding:10px 12px;border:1px solid var(--line);background:#0e202c;border-radius:11px;color:var(--muted);overflow-wrap:anywhere}.row-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap}.inline-delete{display:inline;margin:0}.link-danger{appearance:none;border:0;background:none;padding:0;color:#ffaaaa;text-decoration:underline;cursor:pointer;font:inherit}.soft-sep{border:0;border-top:1px solid var(--line);margin:18px 0}.tiny{font-size:.72rem}@media(max-width:600px){.pdf-picker{grid-template-columns:1fr}.pdf-pick-btn,.pdf-file-name{width:100%}.row-actions{justify-content:flex-start}}

/* RC4.3: Import confidence + test reset */
.import-preview tr.needs-review{background:rgba(214,167,61,.10)}
.gender-source{display:inline-block;padding:.25rem .5rem;border-radius:999px;font-size:.72rem;font-weight:700;white-space:nowrap;border:1px solid var(--line)}
.gender-source.known{color:#8bd8b0;border-color:rgba(69,196,132,.45)}
.gender-source.name{color:var(--gold);border-color:rgba(216,178,82,.5)}
.gender-source.review{color:#ffb3b3;border-color:rgba(220,90,90,.5)}
.danger-zone{border-color:rgba(200,90,90,.45)}
.danger-zone.critical{border-color:rgba(230,70,70,.75)}

/* RC4.6: Save button must never be hidden by the fixed Scoring/Leaderboard navigation */
.scorer-wrap{
  padding-bottom:calc(190px + env(safe-area-inset-bottom));
}
.sticky-action{
  bottom:calc(72px + env(safe-area-inset-bottom));
  z-index:110;
  padding:18px max(14px,calc((100vw - 790px)/2)) 10px;
  background:linear-gradient(180deg,transparent,var(--navy) 34%);
}
.scorer-bottom-nav{
  z-index:120;
}
@media(max-width:760px){
  .scorer-wrap{
    padding-bottom:calc(185px + env(safe-area-inset-bottom));
  }
  .sticky-action{
    bottom:calc(72px + env(safe-area-inset-bottom));
    padding:16px 14px 8px;
  }
}

/* RC4.10: sichtbarer manueller Scorer-Zugang */
.scorer-access-card{display:flex;align-items:center;justify-content:space-between;gap:16px;background:rgba(216,182,95,.08);border:1px solid rgba(216,182,95,.42);border-radius:16px;padding:14px 16px;margin:12px 0 18px}.scorer-access-card div{display:grid;gap:3px}.scorer-access-card strong{font-size:1rem;color:var(--text)}.scorer-access-card span{font-size:.8rem;color:var(--muted)}.scorer-access-btn{white-space:nowrap}
@media(max-width:620px){.scorer-access-card{align-items:stretch;flex-direction:column}.scorer-access-btn{width:100%}}

/* RC4.25: minimal admin return control for public live + clubhouse monitor */
.admin-return-btn{position:fixed;top:max(10px,env(safe-area-inset-top));left:max(10px,env(safe-area-inset-left));z-index:1200;display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:7px 11px;border-radius:10px;background:rgba(7,24,39,.88);border:1px solid rgba(216,182,95,.55);box-shadow:0 5px 18px rgba(0,0,0,.24);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:#fff;text-decoration:none;font-size:.78rem;font-weight:800;line-height:1;white-space:nowrap}
.admin-return-btn:hover{background:rgba(216,182,95,.16)}
.monitor-admin-return{top:max(12px,env(safe-area-inset-top));left:max(12px,env(safe-area-inset-left))}
@media print{.admin-return-btn{display:none!important}}

/* RC4.32 – Live-Leaderboard Positionsanimation */
#leaderRows{position:relative}
.leader-row{will-change:transform}
.leader-row.rank-moving{position:relative;box-shadow:0 10px 26px rgba(0,0,0,.18);border-radius:10px}
.leader-row.rank-up{background:rgba(62,207,142,.13)}
.leader-row.rank-down{background:rgba(216,182,95,.09)}
.leader-row-new{opacity:0;transform:translateY(10px)}
.rank{display:flex;align-items:center;gap:5px}
.rank-delta{font-size:.58rem;line-height:1;opacity:.9}
.rank-up .rank-delta{color:#9aefc6}
.rank-down .rank-delta{color:var(--gold)}
@media (prefers-reduced-motion: reduce){.leader-row{transition:none!important;transform:none!important}.rank-delta{display:none}}

/* RC4.33 – ruhiger Live-Ticker im Stil einer Turnierübertragung */
.live-ticker{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:stretch;margin:12px 0 18px;border:1px solid rgba(216,182,95,.32);border-radius:14px;overflow:hidden;background:rgba(8,28,40,.78);box-shadow:0 8px 22px rgba(0,0,0,.12)}
.live-ticker-label{display:flex;align-items:center;gap:8px;padding:12px 16px;background:rgba(216,182,95,.13);border-right:1px solid rgba(216,182,95,.28);color:#fff;font-size:.78rem;letter-spacing:.04em;white-space:nowrap}
.live-ticker-label .pulse{width:8px;height:8px}
.live-ticker-viewport{min-width:0;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;scroll-behavior:smooth}
.live-ticker-viewport::-webkit-scrollbar{display:none}
.live-ticker-track{display:flex;align-items:stretch;min-width:max-content;height:100%}
.live-ticker-item{display:flex;align-items:center;min-height:46px;padding:10px 22px;color:#f1f4f6;font-size:.86rem;font-weight:750;white-space:nowrap;transition:background .45s ease,color .45s ease,opacity .45s ease,transform .45s ease}.live-ticker-item+.live-ticker-item::before{content:'•';color:#fff;font-size:.58em;font-weight:400;margin-right:22px;opacity:.9}
.live-ticker-item.placeholder{color:var(--muted);font-weight:650}
.live-ticker-item.up{color:#fff}
.live-ticker-item.down{color:#fff}
.live-ticker-item.score{color:#fff}
.live-ticker-item.ticker-new{animation:tickerSoftIn .8s cubic-bezier(.22,.75,.24,1)}
@keyframes tickerSoftIn{from{opacity:0;transform:translateX(16px);background:rgba(216,182,95,.14)}to{opacity:1;transform:translateX(0);background:transparent}}
@media(max-width:760px){.live-ticker{grid-template-columns:1fr}.live-ticker-label{border-right:0;border-bottom:1px solid rgba(216,182,95,.2);padding:9px 12px}.live-ticker-item{min-height:42px;padding:9px 16px;font-size:.8rem}}
@media(prefers-reduced-motion:reduce){.live-ticker-viewport{scroll-behavior:auto}.live-ticker-item.ticker-new{animation:none}}

/* RC4.37 – echter kontinuierlicher Live-Ticker */
.live-ticker-viewport{overflow:hidden!important;scroll-behavior:auto!important}
.live-ticker-track{display:flex;align-items:center;width:max-content;min-width:max-content;will-change:transform;transform:translate3d(0,0,0)}
.ticker-copy{display:flex;align-items:center;flex:0 0 auto}
.live-ticker-item{flex:0 0 auto;padding:10px 18px!important}
.live-ticker-item strong{font-weight:800;color:#fff}
.ticker-detail{font-weight:650;color:#d7dfe4}
.live-ticker-sep{flex:0 0 auto;color:#fff;font-size:.58rem;line-height:1;opacity:.95;margin:0 12px}
.live-ticker-item+.live-ticker-item::before{content:none!important}

/* RC4.38 – Clubhouse Live-Ticker exakt auf die kompakte Höhe der Live-Seite begrenzen.
   Der Monitor hat mit Header + Ticker + Inhalt + Footer vier sichtbare Grid-Zeilen.
   Ohne diese explizite Zeile fällt der Ticker in die flexible 1fr-Zeile und wird überhoch. */
.monitor{grid-template-rows:auto auto minmax(0,1fr) auto!important}
.monitor .live-ticker{align-self:start;width:100%;min-height:0;height:auto;margin:12px 0 18px!important}
.monitor .live-ticker-label{padding:12px 16px!important;font-size:.78rem!important;line-height:1.2!important}
.monitor .live-ticker-item{min-height:46px!important;padding:10px 18px!important;font-size:.86rem!important;line-height:1.2!important}
.monitor .live-ticker-track,.monitor .live-ticker-viewport,.monitor .ticker-copy{height:46px;min-height:46px;max-height:46px}

/* RC4.45 – Clubhouse-Abstände kompakter.
   Ticker minimal tiefer unter dem Kopf; Wertungsüberschrift rückt deutlich näher an den Ticker. */
.monitor .live-ticker{margin:18px 0 6px!important}
.monitor .monitor-single{align-self:start!important;width:100%}
.monitor .monitor-single>h1{margin:18px 0 18px!important}

/* RC4.55: aufgeräumtes Turnier-Cockpit / hierarchische Admin-Startseite */
.dashboard-v2 .admin-content{max-width:1240px;margin:0 auto}
.admin-top-v2{position:relative;top:auto;padding:18px 20px}
.admin-top-v2 nav{gap:12px}
.admin-top-v2 nav a{font-size:.9rem;padding:10px 13px}
.dashboard-heading{margin:10px 2px 18px}
.dashboard-heading h1{margin:.08em 0 .18em}
.dashboard-status-card{padding:24px 26px}
.dashboard-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:18px}
.dashboard-section-head h2{margin:4px 0 0}
.dashboard-kicker{display:block;color:var(--gold);font-weight:900;text-transform:uppercase;letter-spacing:.12em;font-size:.72rem}
.dashboard-live-pill{display:inline-flex;align-items:center;gap:8px;color:#84e7b5;background:rgba(62,207,142,.10);border:1px solid rgba(62,207,142,.42);border-radius:999px;padding:8px 12px;font-weight:900;font-size:.82rem;white-space:nowrap}
.dashboard-live-pill i{width:9px;height:9px;border-radius:50%;background:var(--green);box-shadow:0 0 12px rgba(62,207,142,.65)}
.dashboard-kpis>div{padding:16px 18px;background:rgba(10,32,45,.58)}
.dashboard-hubs{display:grid;gap:14px;margin-top:18px}
.dashboard-hub{background:linear-gradient(145deg,rgba(31,52,64,.98),rgba(18,37,48,.98));border:1px solid rgba(216,182,95,.33);border-radius:22px;box-shadow:var(--shadow);overflow:hidden}
.dashboard-hub>summary{list-style:none;cursor:pointer;padding:22px 24px;display:flex;align-items:center;justify-content:space-between;gap:24px;user-select:none}
.dashboard-hub>summary::-webkit-details-marker{display:none}
.dashboard-hub>summary strong{display:block;font-size:1.55rem;line-height:1.15;margin:5px 0 5px}
.dashboard-hub>summary small{display:block;color:var(--muted);font-size:.93rem;line-height:1.4}
.hub-arrow{font-size:2.1rem;color:var(--gold);transform:rotate(0deg);transition:transform .2s ease;line-height:1}
.dashboard-hub[open] .hub-arrow{transform:rotate(90deg)}
.dashboard-hub[open]>summary{border-bottom:1px solid rgba(216,182,95,.20)}
.hub-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:16px}
.hub-grid-live{grid-template-columns:repeat(4,minmax(0,1fr))}
.hub-grid-system{grid-template-columns:repeat(5,minmax(0,1fr))}
.hub-tile{min-height:190px;display:flex;flex-direction:column;text-decoration:none;background:rgba(8,30,43,.56);border:1px solid var(--line);border-radius:18px;padding:18px;transition:.18s transform,.18s border-color,.18s background}
.hub-tile:hover{transform:translateY(-2px);border-color:rgba(216,182,95,.70);background:rgba(14,40,54,.8)}
.tile-mark{width:42px;height:42px;border:1px solid rgba(216,182,95,.65);border-radius:12px;display:inline-flex;align-items:center;justify-content:center;color:var(--gold);font-size:.74rem;font-weight:900;letter-spacing:.08em;margin-bottom:14px;background:rgba(216,182,95,.06)}
.hub-tile b{font-size:1.12rem;margin-bottom:7px}
.hub-tile small{color:var(--muted);font-size:.84rem;line-height:1.45;flex:1}
.hub-tile em{font-style:normal;color:var(--gold);font-weight:900;font-size:.84rem;margin-top:14px}
.danger-tile .tile-mark{border-color:rgba(224,75,67,.55);color:#ffaaa6;background:rgba(224,75,67,.08)}
.dashboard-flight-snapshot{margin-top:18px}
.flight-snapshot-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.flight-snapshot{display:flex;align-items:center;justify-content:space-between;gap:14px;text-decoration:none;background:rgba(8,30,43,.50);border:1px solid var(--line);border-radius:14px;padding:13px 14px}
.flight-snapshot:hover{border-color:rgba(216,182,95,.55)}
.flight-snapshot>div{min-width:0;display:grid;gap:4px}
.flight-snapshot small{color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dashboard-more{margin:12px 2px 0}
@media(max-width:1050px){.hub-grid,.hub-grid-live{grid-template-columns:repeat(2,minmax(0,1fr))}.hub-grid-system{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){
 .admin-top-v2{padding:14px 15px;gap:12px}.admin-top-v2 .admin-brand-block strong{font-size:.9rem}.admin-top-v2 nav{gap:3px}.admin-top-v2 nav a{font-size:.78rem;padding:8px 9px}
 .dashboard-v2 .admin-content{padding-top:16px}.dashboard-heading{align-items:flex-end}.dashboard-heading h1{font-size:2.55rem}
 .dashboard-status-card{padding:18px}.dashboard-section-head{align-items:center}.dashboard-section-head h2{font-size:1.22rem}.dashboard-live-pill{font-size:.72rem;padding:7px 10px}
 .dashboard-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
 .dashboard-hub>summary{padding:18px}.dashboard-hub>summary strong{font-size:1.32rem}.dashboard-hub>summary small{font-size:.84rem}
 .hub-grid,.hub-grid-live,.hub-grid-system{grid-template-columns:1fr;padding:12px}.hub-tile{min-height:148px;padding:16px}
 .flight-snapshot-grid{grid-template-columns:1fr}.dashboard-flight-snapshot .section-title{align-items:flex-start}.dashboard-flight-snapshot .btn{font-size:.72rem}
}


/* RC4.75: iOS touch reliability for scorer footer + save action */
.scorer-bottom-nav{
  z-index:500;
  isolation:isolate;
  -webkit-transform:translateZ(0);
  transform:translateZ(0);
  pointer-events:auto;
  touch-action:manipulation;
}
.scorer-bottom-nav button{
  min-height:58px;
  touch-action:manipulation;
  -webkit-tap-highlight-color:transparent;
  -webkit-touch-callout:none;
  -webkit-user-select:none;
  user-select:none;
  pointer-events:auto;
}
.sticky-action{pointer-events:none;}
.sticky-action #saveBtn{
  pointer-events:auto;
  touch-action:manipulation;
  -webkit-tap-highlight-color:transparent;
  -webkit-touch-callout:none;
  -webkit-user-select:none;
  user-select:none;
}


/* RC4.76: iOS touch reliability for previous/next hole navigation */
.hole-nav .btn[data-go]{
  touch-action:manipulation;
  -webkit-tap-highlight-color:transparent;
  -webkit-touch-callout:none;
  -webkit-user-select:none;
  user-select:none;
  pointer-events:auto;
}


/* RC4.79: robust segment separators in flight/review score tables.
   Normal rows keep the subtle line; only the first row of a new course segment is gold. */
.review-table.fit-table tbody tr.course-a td,
.review-table.fit-table tbody tr.course-b td,
.review-table.fit-table tbody tr.course-c td{
  border-top:0!important;
  border-bottom:1px solid var(--line)!important;
}
.review-table.fit-table tbody tr.segment-start td{
  border-top:2px solid rgba(216,182,95,.52)!important;
}


/* RC4.80: leaderboard position snapshot in flight detail header */
.flight-player-head{display:flex;flex-direction:column;align-items:center;gap:3px;line-height:1.05;min-width:0}
.flight-rank-badge{display:inline-flex;align-items:center;justify-content:center;padding:3px 7px;border:1px solid rgba(216,182,95,.55);border-radius:999px;color:var(--gold);font-size:.62rem;font-weight:900;letter-spacing:.02em;text-transform:none;white-space:nowrap}
.flight-rank-sub{color:var(--muted);font-size:.55rem;font-weight:800;letter-spacing:.01em;text-transform:none;white-space:nowrap}
.flight-rank-sub-empty{visibility:hidden}
.flight-rank-empty{color:var(--muted);font-size:.52rem;font-weight:700;letter-spacing:0;text-transform:none;white-space:nowrap;opacity:.75}
@media(max-width:760px){.flight-rank-badge{font-size:.56rem;padding:3px 5px}.flight-rank-sub{font-size:.5rem}.flight-rank-empty{font-size:.48rem}}


/* RC4.82: bewusste Scorer-Uebernahme statt automatischem Writer-Wechsel */
.reader-banner.show{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap}
.reader-banner button{appearance:none;border:1px solid rgba(255,255,255,.72);background:rgba(255,255,255,.10);color:#fff;border-radius:9px;padding:6px 10px;font:inherit;font-size:.72rem;font-weight:900;cursor:pointer;touch-action:manipulation}
.scorer-role-dialog{position:fixed;inset:0;z-index:900;display:none;align-items:center;justify-content:center;padding:20px}
.scorer-role-dialog.show{display:flex}
.scorer-role-backdrop{position:absolute;inset:0;background:rgba(2,12,20,.78);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
.scorer-role-card{position:relative;z-index:1;width:min(92vw,560px);background:linear-gradient(145deg,#203541,#132936);border:1px solid rgba(216,182,95,.55);border-radius:22px;padding:24px;box-shadow:0 24px 90px rgba(0,0,0,.55)}
.scorer-role-card h2{margin:.35em 0 .55em;font-size:clamp(1.35rem,5vw,1.8rem)}
.scorer-role-card p{color:var(--muted);line-height:1.5;margin:0 0 20px}
.scorer-role-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:560px){.scorer-role-actions{grid-template-columns:1fr}.scorer-role-card{padding:20px}.reader-banner{font-size:.92rem}}

/* RC4.85: Starterkarte – manuellen Scorer-Zugang sauber dreizeilig darstellen */
.manual-scorer-link{
  margin-top:12px;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:5px;
  line-height:1.25;
}
.manual-scorer-link small,
.manual-scorer-link span{display:block}
.manual-scorer-link span{font-size:.82rem;overflow-wrap:anywhere}

/* RC5.016 scorer start sequence */
.rc5-start-course{display:flex;align-items:center;justify-content:center;gap:clamp(10px,2.8vw,26px);flex-wrap:nowrap;letter-spacing:0}.rc5-start-course .rc5-course-letter{font-size:1em;color:var(--gold);line-height:1}.rc5-start-course .rc5-course-arrow{font-size:.55em;color:var(--muted);line-height:1}@media(max-width:560px){.rc5-start-course{font-size:clamp(2.3rem,16vw,4.2rem);gap:10px}.scorer-head h1{overflow-wrap:anywhere}}


/* RC5.025: AK50 scorer mobile fit + compact embedded leaderboard + robust text scaling */
html{
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
}

/* Im Scorer-Overlay bleibt nur die eigentliche Livewertung sichtbar.
   Der große Public-Header/LIVE-Pill und der Live-Ticker gehören zur öffentlichen Ansicht. */
.embedded-live{
  padding:0 4px 10px;
}
.embedded-live .public-head,
.embedded-live .live-ticker{
  display:none!important;
}
.embedded-live .main-tabs{
  margin:2px 0 12px;
}
.embedded-live .leader-head{
  margin-top:4px;
}
.embedded-live .leaderboard-card{
  margin-top:14px;
}

/* Viererflight: alle vier Scorezeilen bleiben oberhalb des festen Speichern-Buttons sichtbar. */
@media(max-width:760px){
  .scorer-wrap.players-4 .scoring-card{padding:13px 13px 10px}
  .scorer-wrap.players-4 .hole-nav{gap:8px}
  .scorer-wrap.players-4 .hole-nav .btn{min-height:52px;padding:9px 10px;line-height:1.12}
  .scorer-wrap.players-4 .hole-title{font-size:1.62rem;margin-bottom:0}
  .scorer-wrap.players-4 .score-list{gap:8px;margin:15px 0 8px}
  .scorer-wrap.players-4 .score-row{
    grid-template-columns:minmax(82px,1fr) 44px 62px 44px 34px;
    gap:5px;
    padding:7px 8px;
    border-radius:14px;
  }
  .scorer-wrap.players-4 .step,
  .scorer-wrap.players-4 .score-input{height:48px}
  .scorer-wrap.players-4 .step{font-size:1.6rem}
  .scorer-wrap.players-4 .score-input{font-size:1.38rem}
  .scorer-wrap.players-4 .player-cell strong{font-size:.82rem}
  .scorer-wrap.players-4 .running{font-size:.82rem}
  .scorer-wrap.players-4 .sync{margin-top:5px;font-size:.72rem}
  .scorer-wrap.players-4 + .scorer-bottom-nav button{min-height:54px}
  .scorer-wrap.players-4 .sticky-action .btn.xl{min-height:56px}
}

/* Kleine/gezommte iPhone-Viewports: nicht die Schrift winzig machen, sondern Abstände
   und Bedienelemente leicht verdichten. So bleibt die Oberfläche vollständig bedienbar. */
@media(max-width:390px){
  .scorer-wrap{padding-left:10px;padding-right:10px}
  .scorer-head h1{font-size:1.12rem}
  .scorer-wrap.players-4 .scoring-card{padding:11px 10px 9px}
  .scorer-wrap.players-4 .score-row{
    grid-template-columns:minmax(76px,1fr) 42px 58px 42px 30px;
    gap:4px;
    padding:6px;
  }
  .scorer-wrap.players-4 .step,
  .scorer-wrap.players-4 .score-input{height:46px}
  .scorer-wrap.players-4 .player-cell strong{font-size:.8rem}
  .scorer-wrap.players-4 .running{font-size:.78rem}
  .embedded-live .main-tabs a{padding:10px 8px}
  .embedded-live .class-tabs a{padding:8px 10px}
}

/* Sehr niedrige effektive Viewports (z.B. Display-Zoom): vertikale Reserven reduzieren. */
@media(max-height:720px) and (max-width:760px){
  .scorer-head{margin-bottom:4px}
  .scorer-wrap.players-4 .hole-nav .btn{min-height:48px}
  .scorer-wrap.players-4 .score-list{gap:6px;margin:10px 0 6px}
  .scorer-wrap.players-4 .score-row{padding-top:5px;padding-bottom:5px}
  .scorer-wrap.players-4 .step,
  .scorer-wrap.players-4 .score-input{height:43px}
  .sticky-action{padding-top:10px}
}

/* RC5.026: dedicated scorer leaderboard + zoom-safe four-player scorer */
.scorer-inline-leader{padding:14px;overflow:hidden}
.scorer-inline-class-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}
.scorer-inline-class-tabs button{appearance:none;border:1px solid var(--line);background:#10232f;color:var(--muted);border-radius:999px;min-height:44px;padding:8px 12px;font:inherit;font-size:.9rem;font-weight:900}
.scorer-inline-class-tabs button.active{border-color:var(--gold);color:var(--gold);background:rgba(216,182,95,.08)}
.scorer-inline-head,.scorer-inline-row{display:grid;grid-template-columns:44px minmax(0,1fr) 58px 50px;align-items:center;column-gap:8px}
.scorer-inline-head{padding:0 4px 8px;border-bottom:1px solid var(--line);color:var(--gold);font-size:.72rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.scorer-inline-row{min-height:58px;padding:8px 4px;border-bottom:1px solid var(--line);font-weight:900}
.scorer-inline-row:last-child{border-bottom:0}
.scorer-inline-row .rank{font-variant-numeric:tabular-nums}
.scorer-inline-row .name{min-width:0;overflow-wrap:anywhere;line-height:1.12}
.scorer-inline-row .score,.scorer-inline-row .hole{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.scorer-inline-row .score.under{color:var(--red)}
.scorer-leader-pane{padding-bottom:92px}
.scorer-leader-pane iframe{display:none!important}

/* Viererflight bei effektiv kleiner/gezommter Handybreite: vertikal verdichten,
   die Schrift aber weiterhin klar lesbar halten. */
@media(max-width:430px){
  .scorer-wrap.players-4{padding-top:7px;padding-left:8px;padding-right:8px}
  .scorer-wrap.players-4 .scorer-head{margin-bottom:7px}
  .scorer-wrap.players-4 .scorer-head .brand{font-size:.70rem;line-height:1.08}
  .scorer-wrap.players-4 .scorer-head h1{font-size:.98rem;line-height:1.08;margin-top:5px}
  .scorer-wrap.players-4 .scoring-card{padding:9px 8px 7px;border-radius:17px}
  .scorer-wrap.players-4 .hole-nav{gap:5px}
  .scorer-wrap.players-4 .hole-title{font-size:1.45rem;line-height:1;margin:0 0 2px}
  .scorer-wrap.players-4 .hole-title span{font-size:.48em}
  .scorer-wrap.players-4 .hole-nav .btn{min-height:42px;padding:6px 7px;font-size:.78rem;line-height:1.04;border-radius:11px}
  .scorer-wrap.players-4 .score-list{gap:4px;margin:8px 0 4px}
  .scorer-wrap.players-4 .score-row{grid-template-columns:minmax(70px,1fr) 39px 54px 39px 25px;gap:3px;padding:4px 5px;border-radius:11px;min-height:48px}
  .scorer-wrap.players-4 .step,.scorer-wrap.players-4 .score-input{height:40px;border-radius:9px}
  .scorer-wrap.players-4 .step{font-size:1.38rem}
  .scorer-wrap.players-4 .score-input{font-size:1.18rem}
  .scorer-wrap.players-4 .player-cell strong{font-size:.73rem;line-height:1.05}
  .scorer-wrap.players-4 .running{font-size:.72rem}
  .scorer-wrap.players-4 .sync{display:none}
  .scorer-wrap.players-4 .sticky-action{padding:5px 8px 5px;bottom:calc(70px + env(safe-area-inset-bottom))}
  .scorer-wrap.players-4 .sticky-action .btn.xl{min-height:48px;padding:8px 10px;font-size:.98rem;border-radius:12px}
  .scorer-bottom-nav{padding-top:5px;padding-bottom:calc(5px + env(safe-area-inset-bottom))}
  .scorer-bottom-nav button{min-height:52px;padding:8px;font-size:.92rem}
  .scorer-inline-leader{padding:10px 8px}
  .scorer-inline-head,.scorer-inline-row{grid-template-columns:34px minmax(0,1fr) 52px 44px;column-gap:5px}
  .scorer-inline-head{font-size:.63rem;letter-spacing:.04em}
  .scorer-inline-row{min-height:52px;padding:6px 2px;font-size:.9rem}
  .scorer-inline-row .name{font-size:.88rem}
}


/* RC4.309 – In der Standard-iPhone-Ansicht darf das Inline-Leaderboard etwas größer sein,
   solange noch genügend Platz vorhanden ist. Die sehr schmale/Zoom-Ansicht ab <=390px bleibt
   unverändert bei der verdichteten Accessibility-Darstellung. */
@media (min-width:391px) and (max-width:430px){
  .scorer-inline-head{font-size:.66rem;letter-spacing:.05em}
  .scorer-inline-row{min-height:56px;padding:7px 2px;font-size:.98rem}
  .scorer-inline-row .name{font-size:.96rem;line-height:1.14}
  .scorer-name-main{font-size:1.02em}
  .scorer-round-strokes{font-size:.72rem;line-height:1.14}
  .scorer-inline-row .score,
  .scorer-inline-row .hole{font-size:1.02rem}
  .scorer-card-value{font-size:1.04em}
}

/* Sehr niedriger effektiver Viewport (Display-Zoom): weitere reine Platzverdichtung. */
@media(max-width:430px) and (max-height:760px){
  .scorer-wrap.players-4 .scorer-head h1{font-size:.9rem}
  .scorer-wrap.players-4 .scoring-card{padding-top:7px}
  .scorer-wrap.players-4 .hole-title{font-size:1.34rem}
  .scorer-wrap.players-4 .hole-nav .btn{min-height:38px}
  .scorer-wrap.players-4 .score-row{min-height:44px;padding-top:2px;padding-bottom:2px}
  .scorer-wrap.players-4 .step,.scorer-wrap.players-4 .score-input{height:37px}
  .scorer-wrap.players-4 .sticky-action .btn.xl{min-height:44px}
}

/* RC5.028: Standard-iPhone-Darstellung anhand der effektiven CSS-Breite erkennen.
   Wichtig: Safari zieht seine Browserleisten von der sichtbaren Höhe ab; deshalb darf die
   Standard-Erkennung NICHT von min-height abhängen. Display-Zoom liegt auf dem getesteten
   iPhone unterhalb dieser Breite und behält dadurch die kompakte RC5.026-Regel. */
@media (min-width:385px) and (max-width:430px){
  .scorer-wrap.players-4 .scorer-head{margin-bottom:10px}
  .scorer-wrap.players-4 .scorer-head .brand{font-size:.79rem;line-height:1.10}
  .scorer-wrap.players-4 .scorer-head h1{font-size:1.10rem;line-height:1.10;margin-top:6px}
  .scorer-wrap.players-4 .scoring-card{padding:13px 12px 11px;border-radius:19px}
  .scorer-wrap.players-4 .hole-nav{gap:8px}
  .scorer-wrap.players-4 .hole-title{font-size:1.72rem;line-height:1.02;margin:0 0 4px}
  .scorer-wrap.players-4 .hole-title span{font-size:.50em}
  .scorer-wrap.players-4 .hole-nav .btn{min-height:52px;padding:8px 10px;font-size:.90rem;line-height:1.05;border-radius:13px}
  .scorer-wrap.players-4 .score-list{gap:8px;margin:13px 0 7px}
  .scorer-wrap.players-4 .score-row{grid-template-columns:minmax(92px,1fr) 48px 64px 48px 30px;gap:5px;padding:7px 8px;border-radius:14px;min-height:60px}
  .scorer-wrap.players-4 .step,.scorer-wrap.players-4 .score-input{height:50px;border-radius:11px}
  .scorer-wrap.players-4 .step{font-size:1.70rem}
  .scorer-wrap.players-4 .score-input{font-size:1.45rem}
  .scorer-wrap.players-4 .player-cell strong{font-size:.88rem;line-height:1.06}
  .scorer-wrap.players-4 .running{font-size:.84rem}
  .scorer-wrap.players-4 .sticky-action{padding:8px 10px 7px;bottom:calc(76px + env(safe-area-inset-bottom))}
  .scorer-wrap.players-4 .sticky-action .btn.xl{min-height:58px;padding:10px 12px;font-size:1.10rem;border-radius:14px}
  .scorer-bottom-nav button{min-height:58px;font-size:1rem}
}


/* RC5.030: verständlicher Ausfall/WD direkt im Scorer */
.player-more{height:42px;min-width:28px;padding:0 2px;border:0;background:transparent;color:var(--muted);font-size:1.45rem;font-weight:900;line-height:1;cursor:pointer;border-radius:8px}
.player-more:active{background:rgba(216,182,95,.12);color:var(--gold)}
.score-row.withdrawn{grid-template-columns:minmax(130px,1fr) minmax(145px,auto);opacity:.78}
.withdrawn-state{display:flex;flex-direction:column;align-items:flex-end;text-align:right;line-height:1.08}
.withdrawn-state strong{color:var(--gold);font-size:.84rem}
.withdrawn-state span{color:var(--muted);font-size:.66rem;margin-top:3px}
.withdraw-modal{position:fixed;inset:0;z-index:300;background:rgba(0,0,0,.72);display:grid;place-items:center;padding:18px}
.withdraw-modal.hidden{display:none}
.withdraw-dialog{width:min(100%,520px);background:var(--slate);border:1px solid var(--gold);border-radius:20px;padding:22px;box-shadow:0 24px 80px rgba(0,0,0,.55)}
.withdraw-dialog h2{margin:.2rem 0 .8rem;font-size:1.55rem}
.withdraw-dialog p{line-height:1.35}
.withdraw-actions{display:grid;grid-template-columns:1fr 1.35fr;gap:10px;margin-top:20px}
.withdraw-actions .btn{min-height:52px;white-space:normal;line-height:1.1}
.withdraw-warning{margin:12px 0 0;color:var(--muted);font-size:.72rem}
@media(max-width:430px){
  .scorer-wrap.players-4 .player-more{height:37px;font-size:1.25rem}
  .score-row.withdrawn{grid-template-columns:minmax(105px,1fr) minmax(122px,auto)!important}
  .withdrawn-state strong{font-size:.76rem}.withdrawn-state span{font-size:.60rem}
  .withdraw-dialog{padding:18px 16px;border-radius:17px}.withdraw-dialog h2{font-size:1.35rem}
  .withdraw-actions{grid-template-columns:1fr;gap:8px}
}

/* RC5.031: eindeutiger Ausfall-Button statt Drei-Punkte-Menü */
.player-more{height:42px;min-width:70px;padding:0 7px;border:1px solid rgba(216,182,95,.72);background:#10232f;color:var(--text);font-size:.70rem;font-weight:900;line-height:1;cursor:pointer;border-radius:10px;display:flex;align-items:center;justify-content:center;gap:5px;white-space:nowrap}
.player-more:active{background:rgba(216,182,95,.16);color:var(--gold)}
.player-out-icon{position:relative;width:19px;height:20px;display:inline-block;flex:0 0 19px}
.person-head{position:absolute;width:7px;height:7px;border:2px solid var(--gold);border-radius:50%;left:2px;top:1px}
.person-body{position:absolute;width:12px;height:8px;border:2px solid var(--gold);border-bottom:0;border-radius:8px 8px 0 0;left:0;bottom:1px}
.person-x{position:absolute;right:-2px;bottom:-1px;color:var(--gold);font-size:14px;font-weight:900;line-height:1;text-shadow:0 0 2px #10232f}
.player-out-label{color:var(--gold);letter-spacing:.01em}.out-short{display:none}
@media(max-width:430px){
  .scorer-wrap.players-4 .score-row{grid-template-columns:minmax(92px,1fr) 48px 64px 48px 54px}
  .scorer-wrap.players-4 .player-more{height:42px;min-width:54px;padding:0 4px;gap:3px;font-size:.64rem}
  .scorer-wrap.players-4 .player-out-icon{width:17px;height:18px;flex-basis:17px}
  .scorer-wrap.players-4 .out-full{display:none}.scorer-wrap.players-4 .out-short{display:inline}
}
@media(max-width:370px){
  .scorer-wrap.players-4 .score-row{grid-template-columns:minmax(70px,1fr) 39px 54px 39px 42px;gap:3px}
  .scorer-wrap.players-4 .player-more{min-width:42px;padding:0 2px}.scorer-wrap.players-4 .player-out-label{display:none}
}

/* RC5.032: Ausfall eindeutig dem Spieler zuordnen – rotes Kreuz unter dem Namen. */
.score-row{grid-template-columns:minmax(150px,1fr) 58px 88px 58px}
.player-cell{align-self:stretch;justify-content:center}
.player-more{appearance:none;width:max-content;min-width:0;height:auto;padding:2px 0 0;border:0;background:transparent;color:#ef5b5b;border-radius:0;display:inline-flex;align-items:center;justify-content:flex-start;gap:5px;font-size:.66rem;font-weight:900;line-height:1.05;cursor:pointer;white-space:nowrap}
.player-more:active{background:transparent;color:#ff7878;transform:translateY(1px)}
.player-out-cross{width:17px;height:17px;display:inline-grid;place-items:center;border:2px solid currentColor;border-radius:50%;font-size:14px;font-weight:1000;line-height:1;flex:0 0 17px}
.player-out-label{color:inherit;letter-spacing:.01em}
.score-row.withdrawn{grid-template-columns:minmax(130px,1fr) minmax(145px,auto)}
@media(max-width:760px){
  .score-row{grid-template-columns:minmax(90px,1fr) 48px 66px 48px}
  .player-more{font-size:.61rem;gap:4px;padding-top:3px}
  .player-out-cross{width:15px;height:15px;flex-basis:15px;font-size:12px}
}
@media(max-width:430px){
  .scorer-wrap.players-4 .score-row{grid-template-columns:minmax(90px,1fr) 42px 58px 42px}
  .scorer-wrap.players-4 .player-more{height:auto;min-width:0;padding:2px 0 0;font-size:.57rem;gap:3px}
  .scorer-wrap.players-4 .player-out-cross{width:14px;height:14px;flex-basis:14px;font-size:11px}
}
@media(max-width:430px) and (max-height:760px){
  .scorer-wrap.players-4 .player-more{font-size:.54rem;padding-top:1px}
  .scorer-wrap.players-4 .player-out-cross{width:13px;height:13px;flex-basis:13px;font-size:10px}
}
@media (min-width:385px) and (max-width:430px){
  .scorer-wrap.players-4 .score-row{grid-template-columns:minmax(112px,1fr) 48px 64px 48px}
  .scorer-wrap.players-4 .player-more{font-size:.62rem;gap:4px}
  .scorer-wrap.players-4 .player-out-cross{width:15px;height:15px;flex-basis:15px;font-size:12px}
}

/* RC5.034: rotes Ausfall-X geometrisch exakt im Kreis zentrieren. */
.player-out-cross{position:relative;font-size:0;line-height:0;display:inline-block;box-sizing:border-box}
.player-out-cross::before,.player-out-cross::after{content:"";position:absolute;left:50%;top:50%;width:62%;height:2px;background:currentColor;border-radius:2px;transform-origin:center}
.player-out-cross::before{transform:translate(-50%,-50%) rotate(45deg)}
.player-out-cross::after{transform:translate(-50%,-50%) rotate(-45deg)}
@media(max-width:430px){.player-out-cross::before,.player-out-cross::after{height:1.8px}}


/* RC5.036 – Player scorecard from compact scorer leaderboard */
.scorer-inline-player{appearance:none;width:100%;border:0;background:transparent;color:var(--text);font:inherit;text-align:left;cursor:pointer}
.scorer-inline-player:active{background:rgba(216,182,95,.08)}
.scorer-detail-back{appearance:none;border:1px solid var(--gold);background:transparent;color:var(--gold);border-radius:12px;padding:9px 12px;font:inherit;font-size:.82rem;font-weight:900;margin:0 0 12px;cursor:pointer}
.scorer-player-detail h2{margin:0 0 2px;font-size:1.45rem}.scorer-detail-hcpi{margin-bottom:8px}.scorer-detail-scorecard{margin-top:14px}.scorer-detail-scorecard h3{margin:0 0 10px}.scorer-detail-scorecard h4{margin:12px 0 7px;color:var(--gold)}
@media(max-width:520px){.scorer-player-detail .hole-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}.scorer-player-detail .hole-cell{padding:7px 3px}.scorer-player-detail .golf-score{width:32px;height:32px}}


/* RC4.253 – Scorefelder sind reine Anzeige; Eingabe ausschließlich über +/- */
.score-input[readonly]{cursor:default;caret-color:transparent;user-select:none;-webkit-user-select:none;pointer-events:none}


/* RC4.253 – iPhone Anzeigezoom: gleiche Scorer-Größe wie Standardansicht.
   Safari meldet bei Anzeigezoom eine kleinere CSS-Breite. Deshalb werden die
   RC5-Standardgrößen auch unterhalb 385px wiederhergestellt. */
@media (min-width:320px) and (max-width:384px){
  .scorer-wrap.players-4{padding-top:7px;padding-left:8px;padding-right:8px}
  .scorer-wrap.players-4 .scorer-head{margin-bottom:10px}
  .scorer-wrap.players-4 .scorer-head .brand{font-size:.79rem;line-height:1.10}
  .scorer-wrap.players-4 .scorer-head h1{font-size:1.10rem;line-height:1.10;margin-top:6px}
  .scorer-wrap.players-4 .scoring-card{padding:13px 12px 11px;border-radius:19px}
  .scorer-wrap.players-4 .hole-nav{gap:8px}
  .scorer-wrap.players-4 .hole-title{font-size:1.72rem;line-height:1.02;margin:0 0 4px}
  .scorer-wrap.players-4 .hole-title span{font-size:.50em}
  .scorer-wrap.players-4 .hole-nav .btn{min-height:52px;padding:8px 10px;font-size:.90rem;line-height:1.05;border-radius:13px}
  .scorer-wrap.players-4 .score-list{gap:8px;margin:13px 0 7px}
  .scorer-wrap.players-4 .score-row{grid-template-columns:minmax(92px,1fr) 48px 64px 48px;gap:5px;padding:7px 8px;border-radius:14px;min-height:60px}
  .scorer-wrap.players-4 .step,.scorer-wrap.players-4 .score-input{height:50px;border-radius:11px}
  .scorer-wrap.players-4 .step{font-size:1.70rem}
  .scorer-wrap.players-4 .score-input{font-size:1.45rem}
  .scorer-wrap.players-4 .player-cell strong{font-size:.88rem;line-height:1.06}
  .scorer-wrap.players-4 .player-more{font-size:.62rem;gap:4px;padding-top:3px}
  .scorer-wrap.players-4 .player-out-cross{width:15px;height:15px;flex-basis:15px}
  .scorer-wrap.players-4 .sticky-action{padding:8px 10px 7px;bottom:calc(76px + env(safe-area-inset-bottom))}
  .scorer-wrap.players-4 .sticky-action .btn.xl{min-height:58px;padding:10px 12px;font-size:1.10rem;border-radius:14px}
  .scorer-bottom-nav button{min-height:58px;font-size:1rem}
}
/* Auch bei geringer effektiver Höhe Anzeigezoom nicht wieder verkleinern. */
@media (min-width:320px) and (max-width:384px) and (max-height:760px){
  .scorer-wrap.players-4 .scorer-head h1{font-size:1.10rem}
  .scorer-wrap.players-4 .scoring-card{padding-top:13px}
  .scorer-wrap.players-4 .hole-title{font-size:1.72rem}
  .scorer-wrap.players-4 .hole-nav .btn{min-height:52px}
  .scorer-wrap.players-4 .score-row{min-height:60px;padding-top:7px;padding-bottom:7px}
  .scorer-wrap.players-4 .step,.scorer-wrap.players-4 .score-input{height:50px}
  .scorer-wrap.players-4 .sticky-action .btn.xl{min-height:58px}
}

/* RC4.253 – Schutz gegen übersprungene Löcher */
.scorer-sequence-warning{margin:0 0 10px;font-size:.82rem;line-height:1.3}

/* RC4.253 – Zoomschutz Spieler-Scorekarte im Scorer-Leaderboard */
.scorer-player-detail{touch-action:pan-y}
.scorer-player-detail .hole-grid,.scorer-player-detail .hole-cell,.scorer-player-detail .golf-score{touch-action:pan-y}

/* RC4.253 – gesamte Scorer-App ohne manuellen Zoom */
body.scorer-nozoom{touch-action:pan-y;-ms-touch-action:pan-y}
body.scorer-nozoom *{touch-action:inherit}
body.scorer-nozoom input,body.scorer-nozoom button,body.scorer-nozoom a{touch-action:manipulation}

/* RC4.253 – Scorer-Meldungen im App-Stil statt nativer Browser-Alerts */
.scorer-message-modal{position:fixed;inset:0;z-index:1200;background:rgba(2,12,20,.76);display:grid;place-items:center;padding:18px;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
.scorer-message-modal.hidden{display:none}
.scorer-message-dialog{width:min(92vw,520px);background:linear-gradient(145deg,#203541,#132936);border:1px solid rgba(216,182,95,.62);border-radius:20px;padding:22px;box-shadow:0 24px 80px rgba(0,0,0,.55)}
.scorer-message-dialog h2{margin:.28rem 0 .65rem;font-size:1.45rem}
.scorer-message-dialog p{margin:0;color:var(--muted);font-size:.96rem;line-height:1.4}
.scorer-message-actions{display:grid;grid-template-columns:1fr;gap:9px;margin-top:20px}
.scorer-message-actions:has(.btn:not(.hidden)+.btn){grid-template-columns:1fr 1.25fr}
.scorer-message-actions .btn{min-height:52px;white-space:normal;line-height:1.1}
@media(max-width:430px){
  .scorer-message-dialog{padding:18px 16px;border-radius:17px}
  .scorer-message-dialog h2{font-size:1.3rem}
  .scorer-message-actions{grid-template-columns:1fr!important}
}

/* RC4.253 – gemeinsame Abschlusskontrolle vor endgültigem Rundenende */
.scorer-final-review{padding-bottom:18px}
.scorer-final-review h2{margin:.25rem 0 .45rem}
.scorer-review-table .score-link{display:inline-grid;place-items:center;min-width:38px;height:38px;border-radius:9px;background:#e5e8ea;color:#14222c;text-decoration:none;font-weight:950}
.scorer-review-table small{display:block;font-size:.62rem;color:var(--muted)}
.scorer-review-table tfoot th{color:var(--gold);border-top:2px solid rgba(216,182,95,.55)}
.scorer-review-table .segment-start td,.scorer-review-table .segment-start th{border-top:2px solid rgba(216,182,95,.30)}
.scorer-final-check{display:flex;align-items:center;gap:10px;margin:16px 0 12px;font-weight:900}
.scorer-final-check input{width:24px;height:24px;accent-color:var(--gold)}
.scorer-finished-card{text-align:center}
@media(max-width:520px){
  .scorer-final-review{padding:14px 8px}
  .scorer-final-review .review-fit{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .scorer-review-table{min-width:440px}
  .scorer-review-table th,.scorer-review-table td{padding:6px 4px;font-size:.78rem}
  .scorer-review-table .score-link{min-width:34px;height:34px}
}

/* RC4.253 – AK-Offen-Layout: eigene rechte Spalte GESAMT · ZU PAR */
.scoring-card .score-list{
  position:relative;
  padding-top:27px;
}
.scoring-card .score-list::before{
  content:"GESAMT · ± PAR";
  position:absolute;
  top:3px;
  right:8px;
  width:72px;
  text-align:center;
  font-size:.52rem;
  line-height:1.08;
  letter-spacing:.08em;
  color:var(--muted);
  font-weight:900;
  white-space:nowrap;
}
.scoring-card .score-row{
  grid-template-columns:minmax(0,1fr) 64px 76px 64px 72px;
}
.scoring-card .running-to-par{
  width:72px;
  min-width:72px;
  align-self:stretch;
  display:grid;
  place-items:center;
  text-align:center;
}
.scoring-card .running-to-par strong{
  font-size:1.05rem;
  line-height:1;
  font-weight:950;
  color:#f4f5f5;
  white-space:nowrap;
}

@media(max-width:430px){
  .scoring-card .score-list{
    padding-top:24px;
  }
  .scoring-card .score-list::before{
    right:2px;
    width:54px;
    font-size:.42rem;
    letter-spacing:.04em;
  }
  .scoring-card .score-row{
    grid-template-columns:minmax(0,1fr) 54px 66px 54px 54px;
    gap:7px;
  }
  .scoring-card .running-to-par{
    width:54px;
    min-width:54px;
  }
  .scoring-card .running-to-par strong{
    font-size:.94rem;
  }
}

/* RC4.253 – 9-Loch-Zwischensummen in der Abschlusskontrolle */
.scorer-review-table .course-subtotal-row th{
  border-top:2px solid rgba(216,182,95,.72);
  border-bottom:1px solid rgba(216,182,95,.28);
  color:var(--gold);
  background:rgba(216,182,95,.055);
  font-weight:950;
}
.scorer-review-table .course-subtotal-row th:first-child{
  text-align:left;
  letter-spacing:.05em;
  text-transform:uppercase;
}
.scorer-review-table .course-subtotal-row small{
  display:block;
  margin-top:2px;
  color:var(--muted);
  font-size:.60rem;
}
.scorer-review-table tfoot th{
  border-top:3px solid rgba(216,182,95,.85);
  background:rgba(216,182,95,.08);
}


/* RC4.253 – Korrektur in Abschlusskontrolle:
   gesamte Lochzeile 3 s gelb, tatsächlich korrigierte Scorezelle zusätzlich rot */
.scorer-review-table tr.just-corrected-row > td{
  animation:correctedRowFlash 4s ease-out both;
}
.scorer-review-table .score-link.just-corrected{
  animation:correctedScoreRedFlash 4s ease-out both;
  position:relative;
  z-index:3;
}
@keyframes correctedRowFlash{
  0%{background:rgba(255,216,103,.46)}
  18%{background:rgba(255,216,103,.38)}
  65%{background:rgba(255,216,103,.18)}
  100%{background:transparent}
}
@keyframes correctedScoreRedFlash{
  0%{background:#e74b4b;color:#fff;box-shadow:0 0 0 3px rgba(231,75,75,.95),0 0 24px rgba(231,75,75,.72);transform:scale(1.16)}
  18%{background:#ef6868;color:#fff;box-shadow:0 0 0 3px rgba(231,75,75,.80),0 0 18px rgba(231,75,75,.55);transform:scale(1.09)}
  65%{background:#f2a0a0;color:#17232c;box-shadow:0 0 0 1px rgba(231,75,75,.35);transform:scale(1.02)}
  100%{background:#e5e8ea;color:#14222c;box-shadow:none;transform:scale(1)}
}

/* RC4.253 – Regression-Fix: ZU PAR bleibt auch im Viererflight zwingend 5. Spalte.
   Höhere Spezifität als die historischen RC5-Viererflight-Regeln. */
.scorer-wrap.players-4 .scoring-card .score-row{
  grid-template-columns:minmax(92px,1fr) 48px 64px 48px 54px;
  gap:5px;
  padding:7px 8px;
  min-height:60px;
}
.scorer-wrap.players-4 .scoring-card .running-to-par{
  grid-column:5;
  grid-row:1;
  width:54px;
  min-width:54px;
  align-self:stretch;
  display:grid;
  place-items:center;
  margin:0;
  padding:0;
}
.scorer-wrap.players-4 .scoring-card .player-cell{grid-column:1;grid-row:1}
.scorer-wrap.players-4 .scoring-card .minus{grid-column:2;grid-row:1}
.scorer-wrap.players-4 .scoring-card .score-input{grid-column:3;grid-row:1}
.scorer-wrap.players-4 .scoring-card .plus{grid-column:4;grid-row:1}
.scorer-wrap.players-4 .scoring-card .score-list{
  padding-top:24px;
}
.scorer-wrap.players-4 .scoring-card .score-list::before{
  right:8px;
  width:54px;
}
@media(max-width:430px){
  .scorer-wrap.players-4 .scoring-card .score-row{
    grid-template-columns:minmax(88px,1fr) 42px 58px 42px 48px;
    gap:5px;
    padding:6px 7px;
    min-height:58px;
  }
  .scorer-wrap.players-4 .scoring-card .running-to-par{
    width:48px;
    min-width:48px;
  }
  .scorer-wrap.players-4 .scoring-card .score-list::before{
    right:7px;
    width:48px;
    font-size:.41rem;
    letter-spacing:.035em;
  }
}
@media(max-width:370px){
  .scorer-wrap.players-4 .scoring-card .score-row{
    grid-template-columns:minmax(74px,1fr) 39px 54px 39px 44px;
    gap:3px;
    padding:5px;
  }
  .scorer-wrap.players-4 .scoring-card .running-to-par{
    width:44px;
    min-width:44px;
  }
  .scorer-wrap.players-4 .scoring-card .score-list::before{
    right:5px;
    width:44px;
    font-size:.39rem;
  }
}

/* RC4.253 – AK-Offen Offline-Sicherung */
.offline-complete-card{text-align:center;margin-top:14px}
.offline-complete-card h2{margin:.35rem 0 .7rem}
.sync .dot.offline{background:#e0a844;box-shadow:0 0 0 3px rgba(224,168,68,.12)}

/* RC4.253 – sichtbarer Offline-/Sync-Status direkt über dem Speichern-Button */
.sticky-action .scorer-sync-status{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:24px;
  margin:0 0 6px;
  padding:3px 8px;
  font-size:.72rem;
  line-height:1.15;
  text-align:center;
  color:var(--muted);
}
.sticky-action .scorer-sync-status .dot{flex:0 0 auto}
.sticky-action .scorer-sync-status .dot.offline{
  background:#e0a844;
  box-shadow:0 0 0 3px rgba(224,168,68,.15);
}
@media(max-width:430px){
  .sticky-action .scorer-sync-status{font-size:.66rem;min-height:22px;margin-bottom:4px}
}

/* RC4.253 – Syncstatus darf von alten Viererflight-Regeln nicht ausgeblendet werden */
.scorer-wrap.players-4 .sticky-action .scorer-sync-status,
.scorer-wrap .sticky-action .scorer-sync-status{
  display:flex !important;
  visibility:visible !important;
  opacity:1 !important;
}

/* RC4.253 – Offline-Hinweis im eingebetteten Leaderboard */
.scorer-offline-leader-notice{
  display:flex;
  flex-direction:column;
  gap:3px;
  margin:0 0 10px;
  padding:10px 12px;
  border:1px solid rgba(224,168,68,.65);
  border-radius:12px;
  background:rgba(224,168,68,.10);
  color:var(--text);
  font-size:.76rem;
  line-height:1.25;
}
.scorer-offline-leader-notice strong{color:#e0a844}
.scorer-offline-leader-notice.hidden{display:none!important}

/* RC4.253 – Scorer-App: Browser-Pull-to-refresh möglichst unterbinden.
   Normales vertikales Scrollen bleibt erhalten. */
html,body{overscroll-behavior-y:contain}
.scorer-offline-leader-notice strong{display:block}


/* RC4.253 – Flight-Detail: tatsächliches Layout */
.flight-detail-page .flight-status-card .flight-status-main-form{
  margin-bottom:14px !important;
}
.flight-detail-page .flight-status-card .flight-status-action-form{
  margin:0 0 14px 0 !important;
}
.flight-detail-page .flight-status-card .flight-reopen-form{
  margin-bottom:18px !important;
}
.flight-detail-page .flight-status-card .flight-status-action-form .btn{
  margin:0 !important;
}
.flight-detail-page .flight-status-card .soft-sep{
  margin:18px 0 !important;
}

/* Spielerstatus: exakt drei feste Spalten */
.flight-detail-page .player-status-card .quick{
  display:flex !important;
  flex-direction:column !important;
  gap:10px !important;
}
.flight-detail-page .player-status-card .status-form{
  display:grid !important;
  grid-template-columns:120px minmax(0,1fr) 92px !important;
  gap:10px !important;
  align-items:center !important;
  width:100% !important;
  min-width:0 !important;
  box-sizing:border-box !important;
  margin:0 !important;
}
.flight-detail-page .player-status-card .status-form > strong{
  display:block !important;
  width:120px !important;
  min-width:120px !important;
  max-width:120px !important;
  line-height:1.08 !important;
  overflow-wrap:anywhere !important;
}
.flight-detail-page .player-status-card .status-form > select{
  width:100% !important;
  min-width:0 !important;
  max-width:none !important;
  box-sizing:border-box !important;
}
.flight-detail-page .player-status-card .status-form > .btn{
  width:92px !important;
  min-width:92px !important;
  max-width:92px !important;
  margin:0 !important;
  padding-left:10px !important;
  padding-right:10px !important;
  justify-self:end !important;
  white-space:nowrap !important;
}

@media (max-width:560px){
  .flight-detail-page .player-status-card .status-form{
    grid-template-columns:100px minmax(0,1fr) 84px !important;
    gap:8px !important;
  }
  .flight-detail-page .player-status-card .status-form > strong{
    width:100px !important;
    min-width:100px !important;
    max-width:100px !important;
  }
  .flight-detail-page .player-status-card .status-form > .btn{
    width:84px !important;
    min-width:84px !important;
    max-width:84px !important;
    font-size:.9rem !important;
    padding-left:8px !important;
    padding-right:8px !important;
  }
}


/* RC4.290 – Scorer-Leaderboard Accessibility Card Layout
   Gleiche Logik wie im öffentlichen Leaderboard:
   normale Handybreite = bisherige Tabelle,
   stark vergrößert / sehr schmal = Spielerkarte. */
@media(max-width:390px){
  .scorer-inline-head{
    display:none !important;
  }

  .scorer-inline-row{
    display:grid !important;
    grid-template-columns:auto minmax(0,1fr) auto !important;
    grid-template-rows:auto auto !important;
    column-gap:10px !important;
    row-gap:9px !important;
    align-items:center !important;
    min-height:0 !important;
    padding:15px 4px !important;
    width:100% !important;
    box-sizing:border-box !important;
    text-align:left !important;
  }

  .scorer-inline-row .rank{
    grid-column:1 !important;
    grid-row:1 !important;
    min-width:38px !important;
    width:auto !important;
    align-self:center !important;
    justify-self:start !important;
    font-size:1.02em !important;
    line-height:1 !important;
  }

  .scorer-inline-row .name{
    grid-column:2 / 4 !important;
    grid-row:1 !important;
    min-width:0 !important;
    width:auto !important;
    max-width:none !important;
    overflow:visible !important;
    overflow-wrap:normal !important;
    word-break:normal !important;
    hyphens:none !important;
    white-space:normal !important;
    font-size:1.02em !important;
    line-height:1.12 !important;
    font-weight:900 !important;
  }

  /* Nur an Leerzeichen umbrechen – niemals mitten im Namen. */
  .scorer-inline-row .name{
    word-spacing:normal !important;
  }

  .scorer-inline-row .score,
  .scorer-inline-row .hole{
    grid-row:2 !important;
    position:relative !important;
    width:auto !important;
    min-width:0 !important;
    max-width:none !important;
    margin:0 !important;
    border:1px solid rgba(255,255,255,.10) !important;
    border-radius:10px !important;
    background:rgba(7,24,39,.26) !important;
    font-size:.95em !important;
    line-height:1 !important;
    white-space:nowrap !important;
  }

  .scorer-inline-row .score{
    grid-column:2 !important;
    justify-self:start !important;
    text-align:left !important;
    padding:7px 10px 7px 42px !important;
  }

  .scorer-inline-row .hole{
    grid-column:3 !important;
    justify-self:end !important;
    text-align:right !important;
    padding:7px 10px 7px 44px !important;
  }

  .scorer-inline-row .score::before,
  .scorer-inline-row .hole::before{
    position:absolute !important;
    left:9px !important;
    top:50% !important;
    transform:translateY(-50%) !important;
    color:var(--gold) !important;
    font-size:.58em !important;
    font-weight:900 !important;
    letter-spacing:.06em !important;
  }

  .scorer-inline-row .score::before{content:"± PAR";}
  .scorer-inline-row .hole::before{content:"LOCH";}
}


/* RC4.291 – vollständige Informationszeile im Scorer-Leaderboard */
.scorer-inline-row .name{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
}
.scorer-name-main{
  display:block;
  min-width:0;
}
.scorer-round-strokes{
  display:block;
  margin-top:4px;
  color:#f4f6f7;
  font-size:.69rem;
  font-weight:700;
  line-height:1.12;
  white-space:nowrap;
  letter-spacing:.015em;
}
.scorer-round-strokes .rl{color:var(--gold);font-weight:900}
.scorer-round-strokes .rv{color:#f4f6f7}
.scorer-round-strokes .sep{color:rgba(244,246,247,.55);padding:0 .24em}
.scorer-card-label{display:none}
.scorer-card-value{display:inline}

/* Vergrößerte Handy-/Accessibility-Ansicht:
   Labels stehen wirklich im DOM und sind damit garantiert sichtbar. */
@media(max-width:390px){
  .scorer-inline-row .name{
    grid-column:2 / 4 !important;
    grid-row:1 !important;
    overflow:visible !important;
  }
  .scorer-name-main{
    white-space:normal !important;
    overflow-wrap:normal !important;
    word-break:normal !important;
    hyphens:none !important;
    line-height:1.12 !important;
  }
  .scorer-round-strokes{
    margin-top:6px !important;
    font-size:.72em !important;
    white-space:normal !important;
    line-height:1.18 !important;
  }

  .scorer-inline-row .score,
  .scorer-inline-row .hole{
    display:flex !important;
    align-items:center !important;
    gap:8px !important;
    padding:8px 10px !important;
  }

  .scorer-card-label{
    display:inline-block !important;
    color:var(--gold) !important;
    font-size:.60em !important;
    font-weight:900 !important;
    letter-spacing:.06em !important;
    line-height:1 !important;
    white-space:nowrap !important;
  }
  .scorer-card-value{
    display:inline-block !important;
    font-size:1em !important;
    font-weight:900 !important;
    line-height:1 !important;
    white-space:nowrap !important;
  }

  /* Alte Pseudo-Labels aus RC4.290 deaktivieren – kein doppelter Text. */
  .scorer-inline-row .score::before,
  .scorer-inline-row .hole::before{
    content:none !important;
    display:none !important;
  }
}


/* RC4.292 – Spieler-Einzelansicht: Brutto-Summen baugleich AK50 / AK65+ */
.scorer-detail-scorecard h3{
  display:flex;
  align-items:baseline;
  gap:.35em;
  flex-wrap:wrap;
  font-size:1.35rem;
  line-height:1.15;
}
.scorer-detail-day-score{
  color:var(--muted);
  font-size:.72em;
  font-weight:850;
  white-space:nowrap;
}
.scorer-detail-scorecard h4{
  display:flex;
  align-items:baseline;
  gap:.28em;
  flex-wrap:wrap;
}
.scorer-detail-course-score{
  color:#f4f6f7;
  font-size:.88em;
  font-weight:850;
  text-transform:none;
  letter-spacing:0;
  white-space:nowrap;
}
@media(max-width:520px){
  .scorer-detail-scorecard h3{
    font-size:1.32rem;
  }
  .scorer-detail-day-score{
    display:block;
    flex-basis:100%;
    margin-top:4px;
    font-size:.72em;
    line-height:1.2;
  }
  .scorer-detail-course-score{
    font-size:.94em;
  }
}

/* RC4.305 – Admin mobil sauber innerhalb des Viewports + öffentliches Leaderboard in der Kopfleiste */
.admin-top-v2,
.admin-top-v2 .admin-brand-block,
.admin-top-v2 .admin-nav-block,
.admin-top-v2 .admin-nav-links,
.admin-content{
  min-width:0;
  max-width:100%;
}
.admin-nav-block{
  display:grid;
  justify-items:end;
  gap:3px;
}
.admin-nav-links{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  flex-wrap:wrap;
  gap:18px;
}
.admin-version{
  color:var(--gold);
  font-size:.68rem;
  font-weight:900;
  letter-spacing:.08em;
}

@media(max-width:760px){
  .admin-shell{
    width:100%;
    max-width:100%;
    padding:12px;
    overflow-x:hidden;
  }
  .admin-top-v2{
    width:100%;
    max-width:100%;
    padding:14px;
  }
  .admin-top-v2 .admin-nav-block{
    display:grid;
    width:100%;
    overflow:visible;
    justify-items:stretch;
    gap:4px;
  }
  .admin-top-v2 .admin-nav-links{
    display:grid;
    grid-template-columns:1fr 1.55fr 1fr;
    width:100%;
    gap:5px;
  }
  .admin-top-v2 .admin-nav-links a{
    min-width:0;
    padding:8px 4px;
    text-align:center;
    white-space:normal;
    overflow-wrap:normal;
    line-height:1.15;
    font-size:.74rem;
  }
  .admin-top-v2 .admin-version{
    justify-self:end;
  }
  .admin-content{
    width:100%;
    max-width:100%;
    padding:18px 0;
    min-width:0;
  }
}

/* RC4.309 – Scorer-Inline-Leaderboard optisch wie öffentliches Leaderboard,
   jedoch ohne Favoriten-Stern. */
.scorer-inline-leader{
  padding:8px 14px;
  overflow:hidden;
}
.scorer-inline-mode{
  margin-bottom:2px;
}
.scorer-inline-class-tabs{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  margin-bottom:12px;
}
.scorer-inline-class-tabs button{
  appearance:none;
  border:1px solid var(--line);
  background:#10232f;
  color:var(--muted);
  border-radius:999px;
  min-height:48px;
  padding:10px 14px;
  font:inherit;
  font-size:1rem;
  font-weight:800;
}
.scorer-inline-class-tabs button.active{
  border-color:var(--gold);
  color:var(--gold);
  background:rgba(216,182,95,.08);
}
.scorer-inline-head,
.scorer-inline-row{
  display:grid;
  grid-template-columns:60px minmax(0,1fr) 76px 72px;
  gap:8px;
  align-items:center;
}
.scorer-inline-head{
  padding:9px 8px;
  border-bottom:1px solid var(--line);
  color:var(--gold);
  font-size:.68rem;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-weight:900;
}
.scorer-inline-rows{
  display:flex;
  flex-direction:column;
}
.scorer-inline-row{
  width:100%;
  min-height:0;
  padding:14px 8px;
  border:0;
  border-bottom:1px solid rgba(255,255,255,.07);
  background:transparent;
  color:inherit;
  font:inherit;
  text-align:left;
  text-decoration:none;
  transition:background .18s ease,transform .05s ease;
}
.scorer-inline-row:last-child{border-bottom:0}
.scorer-inline-row:active{transform:translateY(1px)}
.scorer-inline-row .rank{
  font-size:1.02rem;
  font-weight:900;
  font-variant-numeric:tabular-nums;
  line-height:1;
}
.scorer-inline-row .name{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  min-width:0;
  font-weight:800;
  line-height:1.12;
}
.scorer-name-main{
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  gap:0 .28em;
  width:100%;
  min-width:0;
  font-size:1.02em;
  line-height:1.08;
}
.scorer-name-first,
.scorer-name-last{
  display:inline-block;
  white-space:nowrap;
  overflow-wrap:normal;
  word-break:normal;
  hyphens:none;
}
.scorer-round-strokes{
  display:block;
  margin-top:4px;
  color:#f4f6f7;
  font-size:.72rem;
  font-weight:700;
  line-height:1.14;
  white-space:nowrap;
  letter-spacing:.015em;
}
.scorer-round-strokes .rl{color:var(--gold);font-weight:900}
.scorer-round-strokes .rv{color:#f4f6f7}
.scorer-round-strokes .sep{color:rgba(244,246,247,.55);padding:0 .24em}
.scorer-inline-row .score,
.scorer-inline-row .hole{
  font-variant-numeric:tabular-nums;
  white-space:nowrap;
}
.scorer-inline-row .score{
  text-align:center;
  font-weight:900;
  font-size:1.15rem;
}
.scorer-inline-row .hole{
  text-align:right;
  color:var(--text);
  font-weight:800;
  font-size:1.08rem;
}
.scorer-inline-row .score.under{color:var(--red)}
.scorer-card-label{display:none}
.scorer-card-value{display:inline}

@media(max-width:430px){
  .scorer-inline-leader{padding:10px 12px}
  .scorer-inline-head,
  .scorer-inline-row{
    grid-template-columns:52px minmax(0,1fr) 62px 50px;
    column-gap:8px;
  }
  .scorer-inline-head{
    font-size:.70rem;
    letter-spacing:.07em;
  }
  .scorer-inline-row{
    padding:14px 4px;
  }
  .scorer-inline-row .rank{font-size:1.05rem}
  .scorer-inline-row .name{font-size:1rem}
  .scorer-name-main{font-size:1.05em;line-height:1.06}
  .scorer-round-strokes{font-size:.76rem;line-height:1.16}
  .scorer-inline-row .score{font-size:1.22rem}
  .scorer-inline-row .hole{font-size:1.10rem}
}

/* Sehr schmale / vergrößerte iPhone-Ansicht: Kartenlayout analog zum öffentlichen Leaderboard. */
@media(max-width:390px){
  .scorer-inline-head{display:none !important}
  .scorer-inline-row{
    display:grid !important;
    grid-template-columns:auto minmax(0,1fr) auto !important;
    grid-template-rows:auto auto !important;
    column-gap:10px !important;
    row-gap:9px !important;
    align-items:center !important;
    min-height:0 !important;
    padding:15px 4px !important;
    width:100% !important;
    box-sizing:border-box !important;
    text-align:left !important;
  }
  .scorer-inline-row .rank{
    grid-column:1 !important;
    grid-row:1 !important;
    min-width:38px !important;
    width:auto !important;
    align-self:center !important;
    justify-self:start !important;
    font-size:1.02em !important;
  }
  .scorer-inline-row .name{
    grid-column:2 / 4 !important;
    grid-row:1 !important;
    min-width:0 !important;
    width:auto !important;
    max-width:none !important;
    overflow:visible !important;
    white-space:normal !important;
    font-size:1.02em !important;
    line-height:1.12 !important;
  }
  .scorer-name-main{
    flex-wrap:wrap !important;
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
    overflow:visible !important;
  }
  .scorer-round-strokes{
    margin-top:6px !important;
    font-size:.72em !important;
    white-space:normal !important;
    line-height:1.18 !important;
  }
  .scorer-inline-row .score,
  .scorer-inline-row .hole{
    display:flex !important;
    align-items:center !important;
    gap:8px !important;
    grid-row:2 !important;
    width:auto !important;
    min-width:0 !important;
    max-width:none !important;
    margin:0 !important;
    padding:8px 10px !important;
    border:1px solid rgba(255,255,255,.10) !important;
    border-radius:10px !important;
    background:rgba(7,24,39,.26) !important;
    font-size:.95em !important;
    line-height:1 !important;
  }
  .scorer-inline-row .score{
    grid-column:2 !important;
    justify-self:start !important;
    text-align:left !important;
  }
  .scorer-inline-row .hole{
    grid-column:3 !important;
    justify-self:end !important;
    text-align:right !important;
  }
  .scorer-card-label{
    display:inline-block !important;
    color:var(--gold) !important;
    font-size:.60em !important;
    font-weight:900 !important;
    letter-spacing:.06em !important;
    line-height:1 !important;
    white-space:nowrap !important;
  }
  .scorer-card-value{
    display:inline-block !important;
    font-size:1em !important;
    font-weight:900 !important;
    line-height:1 !important;
    white-space:nowrap !important;
  }
}

/* RC4.310 – Scorer-Leaderboard wirklich wie das öffentliche Leaderboard.
   Gleiche mobile Spalten, Zeilenabstände, Schriftgewichte und Namensdarstellung.
   Einziger bewusster Unterschied: im Scorer gibt es keinen Favoriten-Stern. */
.scorer-inline-row .name{
  font-weight:800;
}
.scorer-inline-row .rank{
  font-size:1.02rem;
  font-weight:900;
}
.scorer-inline-row .score{
  font-size:1.15rem;
  font-weight:900;
  text-align:center;
}
.scorer-inline-row .hole{
  font-size:1rem;
  font-weight:800;
  text-align:right;
}
.scorer-round-strokes{
  margin-top:3px;
  font-size:.69rem;
  font-weight:600;
  line-height:1.05;
}
.scorer-round-strokes .rl{font-weight:800}
.scorer-round-strokes .sep{padding:0 .28em}

@media(max-width:520px){
  .scorer-inline-leader{
    padding:8px 14px;
  }
  .scorer-inline-head,
  .scorer-inline-row{
    grid-template-columns:52px minmax(0,1fr) 58px 44px !important;
    column-gap:6px !important;
    align-items:center !important;
  }
  .scorer-inline-head{
    padding:9px 8px !important;
    font-size:.68rem !important;
    letter-spacing:.08em !important;
  }
  .scorer-inline-row{
    min-height:0 !important;
    padding:14px 8px !important;
  }
  .scorer-inline-row .rank{
    font-size:1.02rem !important;
    line-height:1 !important;
  }
  .scorer-inline-row .name{
    min-width:0 !important;
    overflow:hidden !important;
    font-size:1rem !important;
    line-height:1.12 !important;
  }
  .scorer-name-main{
    display:flex !important;
    flex-direction:column !important;
    flex-wrap:nowrap !important;
    align-items:flex-start !important;
    gap:0 !important;
    width:auto !important;
    max-width:100% !important;
    min-width:0 !important;
    font-size:1em !important;
    line-height:1.08 !important;
  }
  .scorer-name-first,
  .scorer-name-last{
    display:block !important;
    white-space:nowrap !important;
    overflow:visible !important;
    margin:0 !important;
  }
  .scorer-round-strokes{
    margin-top:5px !important;
    max-width:100% !important;
    white-space:normal !important;
    font-size:.69rem !important;
    font-weight:600 !important;
    line-height:1.18 !important;
  }
  .scorer-inline-row .score{
    width:58px !important;
    min-width:58px !important;
    max-width:58px !important;
    justify-self:center !important;
    text-align:center !important;
    font-size:1.15rem !important;
  }
  .scorer-inline-row .hole{
    width:44px !important;
    min-width:44px !important;
    max-width:44px !important;
    justify-self:end !important;
    text-align:right !important;
    font-size:1rem !important;
  }
}

/* iPhone-Standardbreite: exakt die öffentliche Vier-Spalten-Ansicht beibehalten.
   Das Kartenlayout ist nur für wirklich schmalere/Anzeigezoom-Viewports gedacht. */
@media(min-width:391px) and (max-width:430px){
  .scorer-inline-head{display:grid !important}
  .scorer-inline-row{
    display:grid !important;
    grid-template-columns:52px minmax(0,1fr) 58px 44px !important;
    grid-template-rows:auto !important;
    column-gap:6px !important;
    row-gap:0 !important;
    padding:14px 8px !important;
  }
  .scorer-inline-row .rank,
  .scorer-inline-row .name,
  .scorer-inline-row .score,
  .scorer-inline-row .hole{
    grid-row:auto !important;
  }
  .scorer-inline-row .rank{grid-column:1 !important}
  .scorer-inline-row .name{grid-column:2 !important}
  .scorer-inline-row .score{grid-column:3 !important}
  .scorer-inline-row .hole{grid-column:4 !important}
  .scorer-card-label{display:none !important}
  .scorer-card-value{display:inline !important}
}

/* RC4.310 Feinschliff: exakt wie öffentlich – LOCH ist gedämpft dargestellt. */
@media(max-width:520px){
  .scorer-inline-row .hole{color:var(--muted) !important}
}


/* RC4.459 – Scoring-Eingabe: Spielernamen deutlich lesbarer,
   kompaktere Score-Steuerung und rechts nur noch „± ZU PAR“.
   Rein optische Anpassung – keine Scoring-/Speicherlogik. */
.scoring-card .score-list{
  padding-top:27px !important;
}
.scoring-card .score-list::before{
  content:"± ZU PAR" !important;
  right:7px !important;
  width:58px !important;
  font-size:.56rem !important;
  letter-spacing:.075em !important;
}

/* Mehr Breite für den Namen, Eingabeelemente etwas kompakter. */
.scoring-card .score-row{
  grid-template-columns:minmax(170px,1fr) 56px 68px 56px 58px !important;
  gap:7px !important;
  padding:12px 10px !important;
}
.scoring-card .player-cell{
  min-width:0 !important;
  padding-right:2px !important;
}
.scoring-card .player-cell strong{
  display:block !important;
  white-space:normal !important;
  overflow:visible !important;
  text-overflow:clip !important;
  overflow-wrap:break-word !important;
  word-break:normal !important;
  font-size:clamp(1.02rem,2.2vw,1.20rem) !important;
  line-height:1.06 !important;
  font-weight:900 !important;
  letter-spacing:-.01em !important;
}
.scoring-card .step{
  height:56px !important;
  min-width:0 !important;
  font-size:1.85rem !important;
}
.scoring-card .score-input{
  height:56px !important;
  min-width:0 !important;
  font-size:1.50rem !important;
}
.scoring-card .running-to-par{
  width:58px !important;
  min-width:58px !important;
}
.scoring-card .running-to-par strong{
  font-size:.98rem !important;
  font-variant-numeric:tabular-nums !important;
  letter-spacing:-.01em !important;
}

/* Normale Smartphones, inkl. iPhone-Breite aus dem Praxistest. */
@media(max-width:520px){
  .scoring-card .score-list{
    padding-top:25px !important;
  }
  .scoring-card .score-list::before{
    right:4px !important;
    width:48px !important;
    font-size:.47rem !important;
    letter-spacing:.05em !important;
  }
  .scoring-card .score-row{
    grid-template-columns:minmax(122px,1fr) 44px 54px 44px 48px !important;
    gap:4px !important;
    padding:10px 7px !important;
    min-height:76px !important;
  }
  .scoring-card .player-cell strong{
    font-size:1.02rem !important;
    line-height:1.04 !important;
  }
  .scoring-card .step{
    height:54px !important;
    font-size:1.72rem !important;
    border-radius:12px !important;
  }
  .scoring-card .score-input{
    height:54px !important;
    font-size:1.38rem !important;
    border-radius:12px !important;
  }
  .scoring-card .running-to-par{
    width:48px !important;
    min-width:48px !important;
  }
  .scoring-card .running-to-par strong{
    font-size:.88rem !important;
  }
  .scoring-card .player-more{
    margin-top:4px !important;
  }
}

/* Viererflights: dieselbe lesbare Namenslogik, aber vertikal weiterhin kompakt. */
@media(max-width:520px){
  .scorer-wrap.players-4 .scoring-card .score-row{
    grid-template-columns:minmax(112px,1fr) 42px 52px 42px 46px !important;
    gap:4px !important;
    padding:7px 6px !important;
    min-height:62px !important;
  }
  .scorer-wrap.players-4 .scoring-card .player-cell strong{
    font-size:.94rem !important;
    line-height:1.03 !important;
  }
  .scorer-wrap.players-4 .scoring-card .step,
  .scorer-wrap.players-4 .scoring-card .score-input{
    height:50px !important;
  }
  .scorer-wrap.players-4 .scoring-card .running-to-par{
    grid-column:5 !important;
    width:46px !important;
    min-width:46px !important;
  }
  .scorer-wrap.players-4 .scoring-card .running-to-par strong{
    font-size:.84rem !important;
  }
  .scorer-wrap.players-4 .scoring-card .score-list::before{
    right:6px !important;
    width:46px !important;
  }
}

/* Sehr schmale Geräte: Vorzeichen + zwei Ziffern bleiben in der rechten Spalte darstellbar. */
@media(max-width:370px){
  .scoring-card .score-row,
  .scorer-wrap.players-4 .scoring-card .score-row{
    grid-template-columns:minmax(100px,1fr) 39px 48px 39px 44px !important;
    gap:3px !important;
    padding-left:5px !important;
    padding-right:5px !important;
  }
  .scoring-card .player-cell strong,
  .scorer-wrap.players-4 .scoring-card .player-cell strong{
    font-size:.88rem !important;
  }
  .scoring-card .running-to-par,
  .scorer-wrap.players-4 .scoring-card .running-to-par{
    width:44px !important;
    min-width:44px !important;
  }
  .scoring-card .score-list::before,
  .scorer-wrap.players-4 .scoring-card .score-list::before{
    width:44px !important;
    right:5px !important;
    font-size:.42rem !important;
  }
}

/* RC4.484 – übersichtliche Startlisten-Kontrollansicht */
.import-review-card{overflow:visible}.import-review-head{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;margin-bottom:18px}.import-review-head h2{margin:.15rem 0 .3rem}.import-review-stats{display:grid;grid-template-columns:repeat(3,minmax(105px,1fr));gap:10px;min-width:390px}.import-review-stats>div{border:1px solid var(--line);background:rgba(5,22,34,.38);border-radius:14px;padding:12px 14px;text-align:center}.import-review-stats strong{display:block;font-size:1.45rem;color:var(--gold);line-height:1}.import-review-stats span{display:block;color:var(--muted);font-size:.72rem;margin-top:5px;line-height:1.15}.import-review-stats .warn{border-color:rgba(214,168,75,.65);background:rgba(214,168,75,.08)}.import-review-guide{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:12px 14px;border:1px solid var(--line);border-radius:13px;background:rgba(5,22,34,.28);margin:14px 0}.import-review-legend,.player-statuses{display:flex;flex-wrap:wrap;gap:7px}.review-chip{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;font-size:.7rem;font-weight:800;line-height:1;border:1px solid var(--line);white-space:nowrap}.review-chip.ok{color:#9de2ba;border-color:rgba(89,194,137,.45);background:rgba(44,139,92,.12)}.review-chip.attention{color:#f1cf78;border-color:rgba(214,168,75,.5);background:rgba(214,168,75,.10)}.review-chip.bad{color:#ffb1b1;border-color:rgba(202,88,88,.55);background:rgba(172,57,57,.12)}.review-chip.neutral{color:#c6d6e2;background:rgba(111,151,181,.10)}.import-toolbar{display:flex;justify-content:space-between;gap:14px;align-items:end;margin:15px 0 18px}.import-mode-compact{display:grid;gap:6px;min-width:min(520px,100%)}.import-mode-compact>span{font-size:.72rem;color:var(--gold);font-weight:900;text-transform:uppercase;letter-spacing:.05em}.import-mode-compact select{width:100%}.flight-review-list{display:grid;gap:10px}.flight-review{border:1px solid rgba(143,182,211,.27);border-radius:18px;background:rgba(6,25,39,.40);overflow:hidden}.flight-review.has-attention{border-color:rgba(214,168,75,.48)}.flight-review-head{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:10px 13px;background:rgba(15,48,70,.72);border-bottom:1px solid var(--line)}.flight-review-title{display:flex;align-items:end;gap:10px;flex-wrap:wrap}.flight-label{color:var(--gold);font-weight:950;font-size:.75rem;letter-spacing:.08em;margin-right:2px;align-self:center}.flight-review-title label{display:grid;gap:4px}.flight-review-title label span,.flight-existing label span,.player-fields label>span{font-size:.64rem;color:var(--muted);font-weight:800;text-transform:uppercase;letter-spacing:.045em}.flight-review-title input{width:88px;min-width:0;padding:8px 9px}.flight-review-title input[type="time"]{width:122px}.player-count{font-size:.74rem;color:var(--muted);align-self:center;margin-left:4px}.flight-existing{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap}.flight-existing>div{display:grid;text-align:right}.flight-existing>div strong{font-size:.78rem;color:#f0d58d}.flight-existing>div span{font-size:.7rem;color:var(--muted)}.flight-existing label{display:grid;gap:4px}.flight-existing select{min-width:230px;padding:8px}.flight-existing.protected{border-left:2px solid rgba(202,88,88,.55);padding-left:12px}.player-review-list{display:grid}.import-player{padding:9px 13px;border-bottom:1px solid rgba(143,182,211,.16);background:transparent}.import-player:last-child{border-bottom:0}.import-player.needs-review{background:rgba(172,57,57,.065)}.import-player.has-note{background:rgba(214,168,75,.055)}.player-review-top{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:6px}.import-use{display:flex;align-items:center;gap:7px;font-size:.78rem;font-weight:850}.import-use input{width:20px;height:20px}.player-fields{display:grid;grid-template-columns:1fr 1.15fr .58fr .78fr .68fr 1.2fr;gap:7px;align-items:end}.player-fields label{display:grid;gap:5px;min-width:0}.player-fields input,.player-fields select,.static-field{width:100%;min-width:0;padding:7px 8px;min-height:37px}.static-field{display:flex;align-items:center;border:1px solid var(--line);border-radius:9px;background:rgba(255,255,255,.025);font-weight:850;color:#d8e3eb}.field-review input,.field-review select{border-color:#d6a84b!important;box-shadow:0 0 0 1px rgba(214,168,75,.18)}.player-review-notes{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}.player-review-notes>div{border-radius:8px;background:rgba(214,168,75,.09);border:1px solid rgba(214,168,75,.28);padding:5px 8px;color:#e2c573;font-size:.66rem;line-height:1.2}.import-submit-bar{position:sticky;bottom:8px;z-index:6;margin-top:14px;border:1px solid rgba(216,182,95,.55);border-radius:16px;background:rgba(6,25,39,.96);backdrop-filter:blur(8px);padding:10px 12px;display:flex;align-items:center;justify-content:space-between;gap:16px;box-shadow:0 14px 40px rgba(0,0,0,.28)}.import-submit-bar>div{display:grid;gap:2px}.import-submit-bar>div span{font-size:.72rem;color:var(--muted)}.review-filter-hidden{display:none!important}
@media(max-width:1100px){.import-review-head{display:grid}.import-review-stats{min-width:0;width:100%}.flight-review-head{display:grid;grid-template-columns:minmax(270px,.85fr) minmax(0,1.15fr);align-items:center}.flight-existing{justify-content:flex-end}.flight-existing>div{text-align:right}.player-fields{grid-template-columns:minmax(100px,1fr) minmax(120px,1.15fr) 76px 104px 82px minmax(115px,1.2fr)}.club-field{grid-column:auto}.import-player{padding:8px 11px}.player-review-top{margin-bottom:5px}.review-chip{padding:4px 7px;font-size:.64rem}.import-use{font-size:.72rem}.flight-review-title input{padding:6px 7px}.flight-existing select{min-width:190px;padding:6px}.player-fields label>span{font-size:.58rem}.player-fields input,.player-fields select,.static-field{font-size:.82rem;padding:6px 7px;min-height:34px}}
@media(max-width:760px){.import-review-stats{grid-template-columns:repeat(3,1fr);gap:6px}.import-review-stats>div{padding:9px 5px}.import-review-stats strong{font-size:1.2rem}.import-review-stats span{font-size:.6rem}.import-review-guide,.import-toolbar,.player-review-top,.import-submit-bar{align-items:stretch;flex-direction:column}.import-review-legend{margin-top:4px}.import-toolbar .btn{width:100%}.flight-review-head{padding:12px}.flight-review-title{display:grid;grid-template-columns:auto 1fr 1.35fr auto;width:100%;align-items:end}.flight-label{align-self:end;padding-bottom:10px}.flight-review-title input,.flight-review-title input[type="time"]{width:100%}.flight-existing{width:100%;display:grid;grid-template-columns:1fr}.flight-existing select{width:100%;min-width:0}.import-player{padding:12px}.player-statuses{justify-content:flex-start}.player-fields{grid-template-columns:1fr 1fr;gap:8px}.club-field{grid-column:1/-1}.player-fields label>span{font-size:.58rem}.player-fields input,.player-fields select,.static-field{padding:8px;min-height:40px}.import-submit-bar .btn{width:100%}.import-submit-actions{display:grid;width:100%;grid-template-columns:1fr}}

.import-submit-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.ai-processing-overlay{position:fixed;inset:0;z-index:99999;display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(2,12,20,.82);backdrop-filter:blur(8px);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .18s ease,visibility .18s ease}.ai-processing-overlay.show{opacity:1;visibility:visible;pointer-events:auto}.ai-processing-dialog{width:min(650px,94vw);border:1px solid rgba(216,182,95,.65);border-radius:22px;background:linear-gradient(180deg,#17384c 0%,#0b2639 100%);box-shadow:0 28px 90px rgba(0,0,0,.55);padding:30px 34px;text-align:center}.ai-processing-dialog h2{font-size:1.65rem;margin:.35rem 0 .65rem}.ai-processing-dialog p{color:#c5d4df;line-height:1.5;margin:.25rem auto 1rem;max-width:560px}.ai-processing-note{margin:16px 0 18px;border:1px solid rgba(216,182,95,.4);border-radius:14px;background:rgba(216,182,95,.08);padding:13px 16px;color:#e8d9ac;line-height:1.4}.ai-hourglass{width:72px;height:86px;margin:0 auto 8px;color:#e0bd62;animation:aiHourglassTurn 2.4s ease-in-out infinite}.ai-hourglass svg{width:100%;height:100%}.ai-sand-top{animation:aiSandTop 2.4s ease-in-out infinite;transform-origin:center}.ai-sand-bottom{animation:aiSandBottom 2.4s ease-in-out infinite;transform-origin:center}.ai-processing-progress{height:7px;border-radius:999px;background:rgba(255,255,255,.10);overflow:hidden;margin:4px 0 11px}.ai-processing-progress span{display:block;width:35%;height:100%;border-radius:inherit;background:linear-gradient(90deg,#c89e40,#f2d278);animation:aiProgress 1.5s ease-in-out infinite}.ai-processing-time{font-weight:850;color:#f1d27a;margin-bottom:8px}.ai-import-busy{overflow:hidden}@keyframes aiProgress{0%{transform:translateX(-110%)}100%{transform:translateX(330%)}}@keyframes aiHourglassTurn{0%,42%{transform:rotate(0)}52%,92%{transform:rotate(180deg)}100%{transform:rotate(360deg)}}@keyframes aiSandTop{0%,40%{opacity:1;transform:scaleY(1)}50%,100%{opacity:.25;transform:scaleY(.2)}}@keyframes aiSandBottom{0%,40%{opacity:.25;transform:scaleY(.2)}50%,100%{opacity:1;transform:scaleY(1)}}
