:root{--ink:#111a19;--cream:#f3efe5;--paper:#fffdf7;--orange:#ee5a24;--green:#123d35;--muted:#6e7470;--line:#d8d5cc}*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font-family:Arial,Helvetica,sans-serif}.hero{height:84px;padding:0 max(5vw,24px);display:flex;align-items:center;justify-content:space-between;background:var(--ink);color:white;border-bottom:4px solid var(--orange)}.brand{display:flex;align-items:center;gap:12px;letter-spacing:2px}.brand small{display:block;color:#aeb9b5;font-size:10px;margin-top:3px}.dart{color:var(--orange);font-size:38px}.ghost{border:1px solid #50605d;background:transparent;color:white;padding:11px 18px;cursor:pointer;text-transform:uppercase;letter-spacing:1px}main{width:min(1040px,92vw);margin:auto}.intro{padding:70px 0 36px}.eyebrow{color:var(--orange)!important;letter-spacing:3px;font-size:12px;font-weight:bold}.intro h1{font-size:clamp(48px,8vw,92px);line-height:.88;margin:10px 0 22px;letter-spacing:-5px;text-transform:uppercase;max-width:850px}.intro h1 em{font-style:normal;color:var(--green)}.intro>p:last-child{max-width:540px;color:var(--muted);font-size:18px;line-height:1.5}.card{background:var(--paper);border:1px solid var(--line);padding:36px;box-shadow:9px 9px 0 var(--green);margin-bottom:80px}.section-title{display:flex;align-items:center;gap:17px;border-bottom:1px solid var(--line);padding-bottom:24px;margin-bottom:28px}.section-title>span{background:var(--orange);color:white;font-size:22px;font-weight:bold;padding:13px}.section-title h2,.section-title p{margin:0}.section-title p,label p{color:var(--muted)}.grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}label{font-size:12px;text-transform:uppercase;letter-spacing:1px;font-weight:bold}input,select{display:block;width:100%;margin-top:8px;padding:14px;border:1px solid #c7c6bf;background:white;font-size:16px;color:var(--ink)}input:focus,select:focus{outline:2px solid var(--orange);border-color:transparent}.players-head{margin-top:34px}.players-head h3,.players-head p{margin:0 0 4px}.players-head p{color:var(--muted);font-size:13px}.player-form{display:flex;gap:10px;margin:15px 0}.player-form input{margin:0}.player-form button,.primary{border:0;background:var(--orange);color:white;font-weight:bold;padding:0 22px;cursor:pointer}.player-list{display:grid;grid-template-columns:1fr 1fr;gap:8px}.player{display:flex;align-items:center;justify-content:space-between;background:#edf0eb;padding:12px 14px;border-left:4px solid var(--green)}.player b{display:flex;align-items:center;gap:10px}.player b span{background:var(--green);color:white;width:25px;height:25px;border-radius:50%;display:grid;place-items:center;font-size:11px}.player button{border:0;background:none;color:#9b3c28;cursor:pointer;font-size:18px}.primary{display:flex;align-items:center;justify-content:space-between;width:100%;padding:18px 22px;margin-top:24px;letter-spacing:2px}.primary:disabled{background:#a5a5a0;cursor:not-allowed}.hidden{display:none!important}.tournament-head{margin:60px 0 28px;display:flex;justify-content:space-between;align-items:end}.tournament-head h2{font-size:44px;margin:4px 0;text-transform:uppercase}.tournament-head p{margin:0;color:var(--muted)}.progress-ring{width:100px;height:100px;border:8px solid var(--green);border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center}.progress-ring strong{font-size:22px}.progress-ring span{font-size:10px;color:var(--muted)}.tabs{display:flex;border-bottom:2px solid var(--ink);margin-bottom:20px}.tab{border:0;background:none;padding:13px 22px;font-weight:bold;cursor:pointer}.tab.active{background:var(--ink);color:white}.match-list{display:grid;gap:12px;margin-bottom:70px}.match{background:var(--paper);border:1px solid var(--line);display:grid;grid-template-columns:85px 1fr 150px;align-items:center;padding:18px}.match.done{border-left:6px solid var(--green)}.match-no{color:var(--muted);font-size:11px;text-transform:uppercase}.players-match{display:flex;align-items:center;justify-content:center;gap:18px;font-weight:bold;font-size:18px}.players-match .winner-player{color:var(--orange)}.score-controls{display:flex;align-items:center;gap:8px;justify-content:end}.score-controls select{margin:0;padding:8px;width:55px}.score-controls button{background:var(--green);color:white;border:0;padding:10px;cursor:pointer}.table-wrap{overflow:auto;margin-bottom:70px}table{width:100%;border-collapse:collapse;background:var(--paper)}th,td{text-align:left;padding:15px;border-bottom:1px solid var(--line)}th{background:var(--ink);color:white;font-size:11px;text-transform:uppercase}.winner{text-align:center;background:var(--green);color:white;padding:45px;margin:25px 0 70px}.winner>span{font-size:50px}.winner p{color:#f4ad8e;letter-spacing:3px}.winner h2{font-size:46px;margin:10px}.winner .primary{max-width:300px;margin:25px auto 0}footer{text-align:center;background:var(--ink);color:#8d9995;padding:24px;font-size:12px}footer span{color:var(--orange)}@media(max-width:700px){.grid,.player-list{grid-template-columns:1fr}.card{padding:22px}.intro{padding-top:45px}.intro h1{letter-spacing:-3px}.match{grid-template-columns:1fr;gap:12px}.players-match{justify-content:start}.score-controls{justify-content:start}.tournament-head h2{font-size:30px}.progress-ring{width:78px;height:78px}.player-form{flex-direction:column}.player-form button{padding:14px}}
.bracket-grid{display:flex;gap:28px;overflow-x:auto;align-items:stretch;padding:12px 4px 45px;min-height:430px}.bracket-round{min-width:220px;display:flex;flex-direction:column}.bracket-round h3{text-transform:uppercase;letter-spacing:2px;font-size:12px;color:var(--muted);text-align:center;margin:0 0 16px}.bracket-games{display:flex;flex:1;flex-direction:column;justify-content:space-around;gap:18px}.bracket-game{position:relative;background:var(--paper);border:1px solid var(--line);box-shadow:4px 4px 0 #d7d4ca}.bracket-game:after{content:"";position:absolute;right:-29px;top:50%;width:28px;border-top:2px solid #9aa5a1}.bracket-round:last-child .bracket-game:after{display:none}.bracket-player{display:flex;justify-content:space-between;gap:12px;padding:11px 12px;font-weight:bold}.bracket-player:first-child{border-bottom:1px solid var(--line)}.bracket-player.won{background:var(--green);color:white}.bracket-player small{color:var(--orange);font-size:14px}.bracket-empty{padding:20px;text-align:center;color:var(--muted)}
.bracket-grid>.bracket-grid{min-height:430px;flex:1}.bracket-game.placeholder{opacity:.55;border-style:dashed;box-shadow:none}.bracket-game.placeholder .bracket-player{font-weight:normal;color:var(--muted);font-style:italic}.bracket-lane{border:1px solid var(--line);background:#eae7de;margin-bottom:24px;padding:18px}.lane-title,.grand-final>h3{margin:0;text-transform:uppercase;letter-spacing:2px;color:var(--green)}.bracket-lane .bracket-grid{min-height:260px;padding-bottom:12px}.grand-final{width:min(300px,100%);margin:0 auto 50px;background:#e9b640;padding:20px}.grand-final .bracket-game:after{display:none}
.double-bracket-layout{display:grid;grid-template-columns:minmax(560px,1fr) 250px minmax(560px,1fr);gap:22px;align-items:center;width:96vw;max-width:1800px;margin:0 0 60px 50%;transform:translateX(-50%);overflow-x:auto;padding:18px}.bracket-side{background:#eae7de;border:1px solid var(--line);padding:16px;min-width:560px}.bracket-side>h2{text-align:center;text-transform:uppercase;letter-spacing:3px;font-size:15px;margin:0;color:var(--green)}.bracket-side .bracket-grid{min-height:500px;padding-bottom:10px}.bracket-side .bracket-round{min-width:175px}.winner-side .bracket-grid{flex-direction:row-reverse}.winner-side .bracket-game:after{right:auto;left:-29px}.winner-side .bracket-round:last-child .bracket-game:after{display:none}.grand-final{width:250px;margin:0;background:#e9b640;padding:20px;align-self:center}.grand-final>span{display:block;text-align:center;font-size:38px;margin-bottom:8px}.grand-final>h3{text-align:center;margin-bottom:16px}.grand-final .bracket-game:after{display:none}@media(max-width:900px){.double-bracket-layout{grid-template-columns:560px 230px 560px;justify-content:start}.grand-final{width:230px}}
.bracket-game.preview{border-style:dashed;background:#f7f5ed;box-shadow:none}.bracket-game.preview .bracket-player{font-size:11px;color:var(--muted);font-weight:normal}.bracket-game.preview .bracket-player span:not(:first-child){color:var(--green)}.bracket-side .bracket-games{gap:12px}.bracket-side .bracket-player{padding:9px 10px}.bracket-side .bracket-round h3{background:#dcd8ce;padding:6px;margin-bottom:10px}.bracket-side .bracket-grid{gap:18px}.bracket-side .bracket-round{min-width:160px}
.group-options{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:20px;padding:18px;background:#e9eee8;border-left:4px solid var(--green)}.option-help{margin:22px 0 0;color:var(--muted);font-size:13px;line-height:1.45;text-transform:none;letter-spacing:0}.group-table{margin-bottom:28px}.group-table h3{margin:0;background:var(--green);color:white;padding:12px 15px;text-transform:uppercase;letter-spacing:2px}.qualification{background:var(--green);color:white;padding:32px;margin:20px 0 60px;text-align:center}.qualification>p{color:#f4ad8e;letter-spacing:3px;font-size:11px}.qualification h2{font-size:32px;margin:8px}.qualification #qualifiedPlayers{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:20px}.qualification #qualifiedPlayers span{background:white;color:var(--green);padding:8px 12px;font-weight:bold}.final-actions{display:flex;gap:12px;justify-content:center}.final-actions button{background:var(--orange);color:white;border:0;padding:15px 20px;font-weight:bold;cursor:pointer}@media(max-width:600px){.group-options{grid-template-columns:1fr}.final-actions{flex-direction:column}}
.main-actions{display:flex;gap:10px;align-items:center}.secondary{border:1px solid var(--green);background:white;color:var(--green);padding:12px 16px;font-weight:bold;cursor:pointer;text-transform:uppercase;letter-spacing:1px}.slim-card{box-shadow:none;margin-bottom:24px}.season-section{margin-bottom:80px}.season-toolbar{display:grid;grid-template-columns:1fr auto auto auto;gap:14px;align-items:end}.season-cards,.honors{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:24px 0}.season-cards article,.honors article,.empty-card{background:var(--paper);border:1px solid var(--line);border-left:5px solid var(--green);padding:18px}.season-cards span,.honors b{display:block;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:2px}.season-cards b{display:block;font-size:24px;margin:6px 0}.season-cards small{color:var(--muted)}.season-tabs .season-tab{border:0;background:none;padding:13px 22px;font-weight:bold;cursor:pointer}.season-tabs .season-tab.active{background:var(--ink);color:white}.link-btn{border:0;background:none;color:var(--green);font-weight:bold;cursor:pointer;text-decoration:underline;padding:0}.drop-pill{display:inline-block;background:#e8dacb;color:#80513a;padding:3px 7px;margin:2px;border-radius:999px;font-size:12px}.dropped-row{opacity:.55;background:#f1eee7}.season-import{background:white;color:var(--ink);padding:22px;margin:24px auto;max-width:860px;text-align:left}.season-import h3{margin-top:0;color:var(--green);text-align:center}.season-stats-input{display:grid;gap:8px;margin:18px 0}.season-stat-row{display:grid;grid-template-columns:1fr 130px 180px;gap:10px;align-items:end;background:#f3efe5;padding:10px}.season-stat-row input{padding:9px}.season-match{grid-template-columns:150px 1fr 150px}.season-match p{margin:5px 0;color:var(--muted)}.season-detail{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.season-detail span{background:#edf0eb;padding:7px 9px}.player-detail{box-shadow:none}.player-detail h3{font-size:30px;margin:0 0 8px}.export-actions{display:flex;gap:12px;margin:22px 0 70px}.honors{grid-template-columns:repeat(3,1fr)}.honors article{text-align:center;border-left:0;border-top:5px solid var(--orange)}.honors span{font-size:32px}.honors p{font-size:22px;font-weight:bold;margin:8px 0 0}.stats-cards{grid-template-columns:repeat(3,1fr)}@media(max-width:800px){.main-actions{gap:6px}.ghost{padding:9px}.season-toolbar,.season-stat-row,.season-match{grid-template-columns:1fr}.season-cards,.stats-cards,.honors{grid-template-columns:1fr}.export-actions{flex-direction:column}}
.danger{border:1px solid #9b3c28;background:#fff4ef;color:#9b3c28;padding:12px 16px;font-weight:bold;cursor:pointer;text-transform:uppercase;letter-spacing:1px}.season-match-actions{display:grid;gap:8px}

/* Triple20 dark neon theme */
:root{--ink:#f7f9ff;--cream:#02050a;--paper:rgba(12,18,25,.88);--orange:#0b84ff;--green:#1678ff;--muted:#a7adb8;--line:#27313d;--blue:#1683ff;--blue-2:#006fe8;--panel:#0a0f16;--panel-soft:#101720;--danger:#ff5d5d}body{background:radial-gradient(circle at 50% -10%,rgba(22,131,255,.18),transparent 30%),linear-gradient(180deg,#000 0%,#05070a 42%,#030507 100%);color:var(--ink);font-family:"Helvetica Neue",Inter,Arial,sans-serif;font-weight:500;letter-spacing:-.01em}body:before{content:"";position:fixed;inset:0;pointer-events:none;background:radial-gradient(circle at 20% 20%,rgba(255,255,255,.055),transparent 18%),radial-gradient(circle at 75% 80%,rgba(22,131,255,.075),transparent 24%);opacity:.75}main{position:relative;width:min(1180px,94vw)}.hero{height:118px;background:#000;border-bottom:1px solid rgba(255,255,255,.08);box-shadow:0 1px 0 rgba(22,131,255,.18);padding:0 max(3vw,28px)}.brand{gap:26px;letter-spacing:0}.brand strong{font-size:clamp(34px,5vw,58px);line-height:1;font-weight:900;color:#fff;text-transform:uppercase;text-shadow:0 0 18px rgba(255,255,255,.28)}.brand strong span{color:var(--blue);font-style:italic;text-shadow:0 0 20px rgba(22,131,255,.72)}.brand small{color:var(--muted);font-size:12px;letter-spacing:3px;text-transform:uppercase}.dart{font-size:42px;color:var(--blue);text-shadow:0 0 18px rgba(22,131,255,.75)}.main-actions{gap:12px}.ghost,.secondary,.danger{border:1px solid rgba(22,131,255,.55);background:linear-gradient(145deg,rgba(18,27,37,.9),rgba(7,11,16,.92));color:var(--blue);border-radius:12px;box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 0 0 1px rgba(0,0,0,.25);text-shadow:0 0 12px rgba(22,131,255,.35)}.ghost:hover,.secondary:hover{border-color:var(--blue);box-shadow:0 0 18px rgba(22,131,255,.22)}.danger{border-color:rgba(255,93,93,.65);color:#ff8b8b;background:linear-gradient(145deg,rgba(36,14,17,.92),rgba(12,8,10,.92))}.intro{padding:54px 0 34px}.eyebrow{color:var(--blue)!important;font-weight:800;letter-spacing:3px}.intro h1{color:#fff;text-shadow:0 0 24px rgba(22,131,255,.18);letter-spacing:-4px}.intro h1 em{color:var(--blue);text-shadow:0 0 22px rgba(22,131,255,.45)}.intro>p:last-child,.section-title p,label p,.players-head p,.tournament-head p,.season-match p{color:var(--muted)}.card,.match,.bracket-game,.bracket-side,.bracket-lane,.grand-final,.group-options,.season-cards article,.honors article,.empty-card,.season-import,.winner,.qualification,.player-detail{background:linear-gradient(145deg,rgba(17,25,34,.88),rgba(5,9,13,.94));border:1px solid rgba(92,105,120,.78);border-radius:14px;box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 18px 36px rgba(0,0,0,.28);color:var(--ink)}.card{box-shadow:0 0 0 1px rgba(22,131,255,.16),0 20px 45px rgba(0,0,0,.35);margin-bottom:64px}.section-title{border-bottom-color:rgba(255,255,255,.09)}.section-title>span{background:linear-gradient(180deg,var(--blue),var(--blue-2));border-radius:12px;color:white;box-shadow:0 0 24px rgba(22,131,255,.42)}.section-title h2,.players-head h3,.tournament-head h2,.season-import h3,.player-detail h3{color:#fff;font-weight:850}.grid{gap:22px}label{color:#e9edf5;font-weight:800}input,select{background:#070b10;border:1px solid #34404d;color:#fff;border-radius:10px;font-weight:650}input:focus,select:focus{outline:2px solid var(--blue);box-shadow:0 0 0 4px rgba(22,131,255,.16)}.player-form button,.primary,.score-controls button,.final-actions button{background:linear-gradient(180deg,var(--blue),var(--blue-2));border:1px solid rgba(255,255,255,.12);border-radius:12px;color:#fff;box-shadow:0 0 22px rgba(22,131,255,.28);font-weight:900}.primary:disabled{background:#2a3440;color:#87909c;box-shadow:none}.player{background:rgba(14,21,29,.92);border:1px solid rgba(92,105,120,.55);border-left:4px solid var(--blue);border-radius:12px;color:#fff}.player b span{background:linear-gradient(180deg,var(--blue),var(--blue-2));box-shadow:0 0 18px rgba(22,131,255,.35)}.player button{color:#ff8b8b}.progress-ring{border-color:var(--blue);box-shadow:0 0 24px rgba(22,131,255,.32);color:#fff}.tabs{border-bottom:1px solid rgba(255,255,255,.12)}.tab,.season-tabs .season-tab{color:var(--muted);border-radius:12px 12px 0 0}.tab.active,.season-tabs .season-tab.active{background:linear-gradient(180deg,var(--blue),var(--blue-2));color:#fff;box-shadow:0 -4px 22px rgba(22,131,255,.22)}.match{grid-template-columns:120px 1fr 160px}.match.done{border-left:6px solid var(--blue)}.match-no{color:#8f98a5}.players-match{color:#fff}.players-match .winner-player,.winner p,footer span,.link-btn,.season-cards b,.season-cards span:first-child{color:var(--blue)}.score-controls select{background:#05080c;border-color:#34404d;color:#fff}.table-wrap{border:1px solid rgba(92,105,120,.55);border-radius:14px;background:rgba(7,11,16,.75)}table{background:transparent;color:#e9edf5}th{background:rgba(0,0,0,.38);color:#969da8;font-size:13px;letter-spacing:.04em}td,th{border-bottom:1px solid rgba(255,255,255,.08)}td b{color:#fff}.winner{background:linear-gradient(145deg,rgba(11,132,255,.22),rgba(5,9,13,.94));border-color:var(--blue)}.winner h2{color:#fff}.qualification{background:linear-gradient(145deg,rgba(11,132,255,.25),rgba(5,9,13,.95));border-color:var(--blue)}.qualification>p{color:#98caff}.qualification #qualifiedPlayers span{background:rgba(22,131,255,.16);border:1px solid rgba(22,131,255,.45);border-radius:999px;color:#fff}.group-options{border-left:4px solid var(--blue);background:rgba(11,18,27,.88)}.option-help{color:var(--muted)}.group-table h3{background:linear-gradient(180deg,var(--blue),var(--blue-2));border-radius:12px 12px 0 0;color:#fff}.bracket-game{box-shadow:0 12px 24px rgba(0,0,0,.24)}.bracket-game:after{border-top-color:var(--blue)}.bracket-player:first-child{border-bottom-color:rgba(255,255,255,.1)}.bracket-player.won{background:linear-gradient(180deg,var(--blue),var(--blue-2));color:white}.bracket-player small{color:#8fc4ff}.bracket-game.placeholder,.bracket-game.preview{background:rgba(12,18,25,.5);border-style:dashed;opacity:.72}.bracket-side>h2,.lane-title,.grand-final>h3,.bracket-round h3{color:var(--blue)}.bracket-side .bracket-round h3{background:rgba(22,131,255,.12)}.grand-final{background:linear-gradient(145deg,rgba(22,131,255,.2),rgba(5,9,13,.96));border-color:var(--blue)}.season-cards article,.honors article,.empty-card{border-left-color:var(--blue)}.season-cards small{color:var(--muted)}.drop-pill{background:rgba(22,131,255,.15);border:1px solid rgba(22,131,255,.35);color:#a9d2ff}.dropped-row{opacity:.46;background:rgba(255,255,255,.04)}.season-stat-row,.season-detail span{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08);border-radius:10px}.honors article{border-top-color:var(--blue)}.honors p{color:#fff}.danger:hover{border-color:#ff8b8b;box-shadow:0 0 18px rgba(255,93,93,.18)}footer{background:#000;border-top:1px solid rgba(22,131,255,.22);color:#7d8795}@media(max-width:700px){.hero{height:auto;min-height:96px;align-items:flex-start;gap:14px;flex-direction:column;padding-top:20px;padding-bottom:20px}.main-actions{flex-wrap:wrap}.brand strong{font-size:34px}.match{grid-template-columns:1fr}.intro h1{letter-spacing:-2px}}
.mode-gate{position:fixed;inset:0;z-index:20;display:grid;place-items:center;background:rgba(0,0,0,.82);backdrop-filter:blur(10px);padding:24px}.mode-card{width:min(760px,94vw);background:linear-gradient(145deg,rgba(17,25,34,.96),rgba(5,9,13,.98));border:1px solid var(--blue);border-radius:22px;padding:34px;box-shadow:0 0 50px rgba(22,131,255,.28)}.mode-card h2{font-size:36px;margin:8px 0 24px;color:#fff}.mode-choice-grid,.dashboard-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.mode-choice-grid button,.dash-card{min-height:150px;text-align:left;border:1px solid rgba(92,105,120,.78);border-radius:16px;background:linear-gradient(145deg,rgba(18,27,37,.9),rgba(7,11,16,.92));color:#fff;padding:22px;cursor:pointer;display:flex;flex-direction:column;gap:10px}.mode-choice-grid button:hover,.dash-card:hover{border-color:var(--blue);box-shadow:0 0 24px rgba(22,131,255,.22)}.mode-choice-grid span,.dash-card span{font-size:34px;color:var(--blue)}.mode-choice-grid b,.dash-card b{font-size:24px}.mode-choice-grid small,.dash-card small{color:var(--muted);font-size:16px;line-height:1.35}.dashboard-section,.settings-section{margin-bottom:70px}.dashboard-grid{grid-template-columns:repeat(3,1fr);margin-bottom:24px}.point-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:14px;margin-bottom:24px}.settings-section h3{color:#fff;margin:26px 0 14px}.export-hint{margin-bottom:18px}@media(max-width:900px){.dashboard-grid,.mode-choice-grid{grid-template-columns:1fr}.point-grid{grid-template-columns:1fr 1fr}.main-actions{width:100%}.main-actions button{flex:1 1 auto}}
.withdraw-card{display:grid;grid-template-columns:1fr minmax(320px,460px);gap:18px;align-items:end;margin:0 0 22px;padding:18px;background:linear-gradient(145deg,rgba(17,25,34,.88),rgba(5,9,13,.94));border:1px solid rgba(92,105,120,.78);border-left:5px solid var(--blue);border-radius:14px}.withdraw-card h3{margin:0 0 6px;color:#fff}.withdraw-card p{margin:0;color:var(--muted);line-height:1.45}.swiss-change-actions{display:grid;gap:10px}.withdraw-actions{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end}.withdraw-actions select,.withdraw-actions input{margin:0}.withdrawn-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;color:var(--muted)}.withdrawn-list span{background:rgba(255,93,93,.13);border:1px solid rgba(255,93,93,.35);color:#ffb0b0;border-radius:999px;padding:5px 10px}@media(max-width:800px){.withdraw-card,.withdraw-actions{grid-template-columns:1fr}}
.member-list{display:grid;gap:10px;margin-top:18px}.member-row{display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:12px}.member-row b{display:flex;align-items:center;gap:10px;color:#fff}.member-row b span{background:linear-gradient(180deg,var(--blue),var(--blue-2));border-radius:50%;display:grid;place-items:center;width:28px;height:28px}.member-row small{color:var(--muted)}.empty-line{color:var(--muted)}@media(max-width:700px){.member-row{grid-template-columns:1fr}.member-row .danger{width:100%}}
.manual-tournament-card h3{margin:0 0 8px;color:#fff}.manual-tournament-card p{color:var(--muted);line-height:1.45}.manual-entry-table{margin:22px 0}.manual-entry-table input{margin:0;padding:9px;min-width:72px}.manual-entry-table input[type=checkbox]{width:22px;height:22px;min-width:22px;accent-color:var(--blue)}
.menu-toggle{border:0;background:transparent;color:var(--blue);font-size:42px;line-height:1;cursor:pointer;text-shadow:0 0 18px rgba(22,131,255,.75);padding:4px 6px;border-radius:12px}
.menu-toggle:hover,.menu-toggle:focus-visible{background:rgba(255,255,255,.12);outline:0}
.manual-toggle-row{display:flex;justify-content:flex-end;margin:0 0 16px}.manual-toggle-row .secondary{min-width:230px}
.manual-matches{margin:26px 0}.manual-matches-head{display:flex;justify-content:space-between;gap:18px;align-items:center;margin-bottom:12px}.manual-matches-head h4,.season-detail h4{margin:0 0 5px}.manual-matches-head p{margin:0}.manual-match-row{display:grid;grid-template-columns:82px minmax(150px,1fr) 90px 18px 90px minmax(150px,1fr) 48px;gap:8px;align-items:end;padding:10px 0;border-bottom:1px solid var(--line)}.manual-match-row label{font-size:12px}.manual-match-row input,.manual-match-row select{width:100%;margin-top:4px;padding:9px}.manual-match-separator{align-self:center;text-align:center;font-weight:900;margin-top:18px}.manual-match-remove{padding:10px;font-size:20px}.season-detail{display:block;margin-top:14px}.season-results{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}.season-pairings{display:grid;gap:7px}.season-pairing{display:grid;grid-template-columns:75px minmax(110px,1fr) 64px minmax(110px,1fr);gap:10px;align-items:center;padding:9px 11px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08);border-radius:10px}.season-pairing small{color:var(--muted)}.season-pairing strong{text-align:center;color:var(--blue)}
@media(max-width:900px){.manual-match-row{grid-template-columns:70px 1fr 70px 14px 70px 1fr 44px}}
@media(max-width:650px){.manual-matches-head{align-items:stretch;flex-direction:column}.manual-match-row{grid-template-columns:70px 1fr 44px}.manual-match-row label:nth-of-type(2),.manual-match-row label:nth-of-type(5){grid-column:span 2}.manual-match-separator{display:none}.season-pairing{grid-template-columns:70px 1fr 55px 1fr}.manual-match-remove{grid-column:3;grid-row:1}}
.season-toolbar{grid-template-columns:minmax(260px,1fr) minmax(180px,260px) auto auto auto auto}
.season-section>.season-toolbar{margin-top:34px}
.season-current-summary{display:grid;gap:4px}
.season-current-summary span{color:var(--blue);font-size:11px;font-weight:900;letter-spacing:2px;text-transform:uppercase}
.season-current-summary b{font-size:24px;color:#122033}
.season-current-summary small{color:#65758b}
.season-toolbar label{margin:0}

/* Triple20 friendly light theme */
:root{--ink:#122033;--cream:#eef5ff;--paper:rgba(255,255,255,.94);--muted:#65758b;--line:#cad8ea;--panel:#ffffff;--panel-soft:#f5f9ff}
body{background:radial-gradient(circle at 12% 0%,rgba(14,107,255,.14),transparent 34%),linear-gradient(180deg,#f8fbff 0%,#eef5ff 46%,#fff 100%);color:var(--ink)}
body:before{background:radial-gradient(circle at 78% 12%,rgba(14,107,255,.08),transparent 22%),radial-gradient(circle at 8% 72%,rgba(85,167,255,.12),transparent 28%);opacity:1}
.hero{background:linear-gradient(135deg,#07111f 0%,#0d1f38 70%,#0e6bff 180%);border-bottom:1px solid rgba(14,107,255,.35);box-shadow:0 16px 38px rgba(14,45,95,.16)}
.brand strong,.section-title h2,.players-head h3,.tournament-head h2{color:#fff}
.settings-section h3,.season-import h3,.player-detail h3,.manual-tournament-card h3{color:#122033}
.brand small{color:#c9d8ec}
.ghost{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.28);color:#fff}
.ghost:hover{background:rgba(255,255,255,.18);box-shadow:0 0 0 4px rgba(255,255,255,.1)}
.card,.match,.bracket-game,.bracket-side,.bracket-lane,.grand-final,.group-options,.season-cards article,.honors article,.empty-card,.season-import,.winner,.qualification,.player-detail,.withdraw-card,.mode-card,.mode-choice-grid button,.dash-card{background:linear-gradient(145deg,rgba(255,255,255,.98),rgba(246,250,255,.96));border:1px solid rgba(166,188,218,.9);box-shadow:0 12px 32px rgba(45,77,120,.12);color:#122033}
.card{box-shadow:0 16px 38px rgba(45,77,120,.14);margin-bottom:46px}
.section-title{border-bottom-color:rgba(88,112,145,.18)}
.section-title h2,.players-head h3,.tournament-head h2,.card h3,.match b,.member-row b,td b{color:#122033}
.section-title p,label p,.players-head p,.tournament-head p,.season-match p,.manual-tournament-card p,.withdraw-card p,.mode-choice-grid small,.dash-card small,.empty-line,.member-row small{color:#65758b}
label{color:#263a54}
input,select{background:#fff;border:1px solid #b9c9dc;color:#122033;box-shadow:0 1px 0 rgba(255,255,255,.8)}
input:focus,select:focus{outline:2px solid var(--blue);border-color:transparent;box-shadow:0 0 0 4px rgba(14,107,255,.13)}
.primary,.player-form button,.score-controls button,.final-actions button{background:linear-gradient(180deg,var(--blue),#005bd8);box-shadow:0 10px 24px rgba(14,107,255,.24)}
.secondary{background:#fff;color:var(--blue);border-color:rgba(14,107,255,.45);box-shadow:0 8px 18px rgba(45,77,120,.08);text-shadow:none}
.danger{background:#fff5f5;color:#d64242;border-color:rgba(214,66,66,.45);text-shadow:none;box-shadow:0 8px 18px rgba(120,45,45,.08)}
.danger:hover{background:#ffecec}
.player,.member-row,.season-stat-row,.season-detail span{background:#f7faff;border:1px solid #d8e4f3;color:#122033}
.player b span,.member-row b span{box-shadow:0 8px 18px rgba(14,107,255,.2)}
.tabs{border-bottom:1px solid #c8d7ea}
.tab,.season-tabs .season-tab{color:#65758b}
.tab.active,.season-tabs .season-tab.active{background:linear-gradient(180deg,var(--blue),#005bd8);color:#fff;box-shadow:0 8px 20px rgba(14,107,255,.18)}
.table-wrap{background:#fff;border:1px solid #cad8ea;box-shadow:0 12px 26px rgba(45,77,120,.08)}
table{background:#fff;color:#122033}
th{background:#eaf2ff;color:#4e6078}
td,th{border-bottom:1px solid #e0e9f5}
.match.done{border-left-color:var(--blue)}
.match-no{color:#6d7d91}
.players-match{color:#122033}
.score-controls select{background:#fff;border-color:#b9c9dc;color:#122033}
.winner,.qualification{background:linear-gradient(145deg,rgba(14,107,255,.12),rgba(255,255,255,.97));border-color:rgba(14,107,255,.4)}
.winner h2,.qualification h2,.honors p{color:#122033}
.winner p,.qualification>p{color:var(--blue)}
.bracket-side .bracket-round h3,.group-table h3{background:#e8f1ff;color:var(--blue)}
.bracket-game.placeholder,.bracket-game.preview{background:#f5f9ff;opacity:.85}
.bracket-player:first-child{border-bottom-color:#e0e9f5}
.drop-pill{background:#e8f1ff;border-color:#bfd7ff;color:#0b56c8}
.dropped-row{opacity:.58;background:#f2f6fb}
.withdrawn-list span{background:#fff0f0;color:#c93f3f;border-color:#ffcaca}
footer{background:#f8fbff;border-top:1px solid #d6e2f2;color:#65758b}
@media(max-width:700px){.hero{background:linear-gradient(135deg,#07111f 0%,#0d1f38 80%);position:relative}.main-actions{display:none;position:absolute;left:20px;right:20px;top:calc(100% - 8px);z-index:30;background:#fff;border:1px solid #cad8ea;border-radius:16px;padding:12px;box-shadow:0 18px 38px rgba(25,55,95,.22)}.hero.nav-open .main-actions{display:grid;grid-template-columns:1fr;gap:10px}.hero.nav-open .main-actions .ghost{color:var(--blue);background:#f5f9ff;border-color:#c8d7ea;text-align:left}.hero.nav-open .main-actions .ghost:hover{background:#eaf2ff;box-shadow:none}.menu-toggle{background:rgba(255,255,255,.1)}}
.season-tabs{display:flex;gap:10px;flex-wrap:wrap;border:1px solid #c3d5ec;background:#f0f6ff;border-radius:18px;padding:10px;margin:20px 0 22px;box-shadow:0 10px 24px rgba(45,77,120,.08)}
.season-tabs .season-tab{border:1px solid #b8cce6;background:#fff;color:#263a54;border-radius:999px;padding:12px 18px;font-size:14px;font-weight:900;letter-spacing:.02em;box-shadow:0 4px 12px rgba(45,77,120,.08)}
.season-tabs .season-tab:hover{border-color:var(--blue);color:var(--blue);background:#f8fbff}
.season-tabs .season-tab.active{background:linear-gradient(180deg,var(--blue),#005bd8);border-color:var(--blue);color:#fff;box-shadow:0 10px 22px rgba(14,107,255,.26)}
@media(max-width:700px){.season-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px}.season-tabs .season-tab{width:100%;padding:12px 10px}}
.intro{padding:34px 0 24px}
.intro h1{font-size:clamp(30px,5vw,56px);line-height:.98;letter-spacing:-2px;margin:0 0 14px;max-width:620px}
.intro>p:last-child{font-size:16px;max-width:520px;margin:0}
@media(max-width:700px){.intro{padding:28px 0 20px}.intro h1{font-size:34px;letter-spacing:-1px}}
.sync-status{display:flex;justify-content:center;gap:18px;align-items:center;padding:9px 16px;font-weight:900;font-size:13px;border-bottom:1px solid #d6e2f2;background:#f8fbff;color:#263a54}
.sync-status small{font-weight:700;color:#65758b}.sync-status.online,.sync-status.saved{background:#eaf8ef;color:#176b35}.sync-status.saving{background:#fff7df;color:#8a5d00}.sync-status.offline{background:#fff0e6;color:#9a4d00}.sync-status.conflict{background:#ffecec;color:#b72f2f}.sync-status.view-only{background:#edf4ff;color:#0b56c8}
.cloud-panel h3{margin-top:0;color:#122033}.cloud-login{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;align-items:end}.cloud-login input{margin:0}.cloud-actions{display:flex;flex-wrap:wrap;gap:10px}.view-note{color:#65758b;margin:0 0 16px}.backup-file{border:1px solid rgba(14,107,255,.45);background:#fff;color:var(--blue);border-radius:12px;padding:12px 16px;font-weight:900;cursor:pointer;box-shadow:0 8px 18px rgba(45,77,120,.08)}.backup-file input{display:none}
.access-stats{margin:0 0 30px;padding:0 0 26px;border-bottom:1px solid #d6e2f2}.access-stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:14px 0}.access-stat-grid article{padding:16px;border:1px solid #d6e2f2;border-radius:14px;background:#f5f9ff}.access-stat-grid span{display:block;color:#65758b;font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:1px}.access-stat-grid b{display:block;margin-top:6px;color:var(--blue);font-size:30px}@media(max-width:700px){.access-stat-grid{grid-template-columns:1fr 1fr}}
.login-error{background:#ffecec;color:#a82f2f;border:1px solid #ffcaca;border-radius:12px;padding:10px 12px;font-weight:800}.login-error:empty{display:none}.login-success{background:#eaf8ef;color:#176b35;border:1px solid #bfe5cb;border-radius:12px;padding:10px 12px;font-weight:800}.account-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px}.account-grid>section+section{border-left:1px solid #d6e2f2;padding-left:26px}.member-login{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:end}.member-login input{margin:0}.profile-heading,.profile-heading>div{display:flex;align-items:center;justify-content:space-between;gap:14px}.profile-heading>div{justify-content:flex-start}.profile-avatar{display:grid;place-items:center;width:58px;height:58px;border-radius:50%;background:linear-gradient(180deg,var(--blue),#005bd8);color:#fff;font-size:26px;font-weight:900;box-shadow:0 10px 22px rgba(14,107,255,.24)}.profile-heading h3,.profile-heading p{margin:0}.profile-form{display:grid;grid-template-columns:1fr 1fr auto;gap:14px;align-items:end;margin:24px 0}.profile-form input{margin-bottom:0}.profile-avatar{overflow:hidden;flex:0 0 58px}.profile-avatar img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 100%;transform:scale(1.8);transform-origin:50% 100%}.online-dot{display:inline-block;width:9px;height:9px;margin-left:5px;border-radius:50%;background:#aeb8c5;vertical-align:1px}.online-dot.is-online{background:#22b35b;box-shadow:0 0 0 4px rgba(34,179,91,.14)}.player-profile-head{display:flex;align-items:center;gap:18px;margin:6px 0 22px}.player-profile-head h3,.player-profile-head p{margin:0}.player-profile-avatar{width:88px;height:88px;flex-basis:88px;font-size:36px}.player-profile-realname{color:#65758b;font-weight:800;margin-top:4px!important}.player-profile-stats{margin-bottom:22px}.player-detail>.close-detail{float:right;margin:0}.registered-player-choices{margin:14px 0 20px;padding:16px;border:1px solid #cfe0f5;border-radius:15px;background:#f7fbff}.registered-player-title{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:12px}.registered-player-title small{color:#65758b;font-weight:750}.registered-player-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px}.registered-player{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:11px;width:100%;padding:10px 12px;border:1px solid #d6e2f2;border-radius:13px;background:#fff;color:#102039;text-align:left;cursor:pointer}.registered-player:hover{border-color:var(--blue);box-shadow:0 7px 18px rgba(14,107,255,.12)}.registered-player .profile-avatar{width:42px;height:42px;flex-basis:42px;font-size:18px}.registered-player>span:nth-child(2){overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:850}.registered-player>b{font-size:23px;color:var(--blue)}.admin-members{margin-bottom:30px;padding-bottom:28px;border-bottom:1px solid #d6e2f2}.admin-section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.admin-section-heading h3,.admin-section-heading p{margin:0}.admin-member-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px}.admin-member-card{display:flex;align-items:center;gap:13px;padding:14px;border:1px solid #d6e2f2;border-radius:14px;background:#f8fbff}.admin-member-card .profile-avatar{width:48px;height:48px;flex-basis:48px;font-size:21px}.admin-member-card div{min-width:0;display:grid;gap:3px}.admin-member-card strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-member-card small{color:#65758b;font-weight:750}.admin-section-heading button{margin:0;white-space:nowrap}.avatar-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:20px 0 6px}.avatar-upload{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;margin:0}.avatar-upload input{display:none}.avatar-actions small{color:#65758b;font-weight:800}.avatar-actions button{margin:0}@media(max-width:800px){.account-grid,.member-login,.profile-form{grid-template-columns:1fr}.account-grid>section+section{border-left:0;border-top:1px solid #d6e2f2;padding:24px 0 0}.profile-heading{align-items:flex-start}.profile-heading>div{align-items:flex-start}}
.tournament-actions{display:flex;align-items:center;gap:14px;margin:-8px 0 24px;flex-wrap:wrap}.tournament-actions p{margin:0;color:#65758b;font-weight:800}
body.view-only #settingsForm,body.view-only .admin-only-control,body.view-only #seasonForm,body.view-only #seasonMembers form,body.view-only #seasonMembers .danger,body.view-only #seasonTournaments .danger,body.view-only #toggleManualTournament{display:none!important}
body.view-only .score-controls{font-weight:900;color:#65758b}
.score-controls select:disabled,.score-controls button:disabled{cursor:not-allowed;opacity:.55;pointer-events:none}
.tournament-subnav{display:flex;gap:10px;margin:34px 0 18px}.tournament-subnav button{border:1px solid var(--line);background:var(--paper);color:var(--ink);padding:12px 16px;border-radius:10px;font-weight:800;cursor:pointer}.tournament-subnav button.active{background:var(--blue);border-color:var(--blue);color:#fff}.member-live-empty{margin-top:18px}.member-live-empty h3{margin-top:0}.member-live-empty p{color:var(--muted);margin-bottom:0}@media(max-width:650px){.tournament-subnav{display:grid;grid-template-columns:1fr}.tournament-subnav button{width:100%}}
.competition-nav{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:20px 0 24px;padding:10px;border:1px solid #c3d5ec;background:#f0f6ff;border-radius:18px;box-shadow:0 10px 24px rgba(45,77,120,.08)}.competition-nav button{border:1px solid #b8cce6;background:#fff;color:#263a54;border-radius:12px;padding:15px 18px;font-size:15px;font-weight:900;cursor:pointer}.competition-nav button.active{background:linear-gradient(180deg,var(--blue),#005bd8);border-color:var(--blue);color:#fff;box-shadow:0 10px 22px rgba(14,107,255,.26)}.live-tournament-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}@media(max-width:650px){.competition-nav{grid-template-columns:1fr}.live-tournament-actions{display:grid}.live-tournament-actions button{width:100%}}
@media(max-width:700px){.sync-status{display:grid;gap:3px;text-align:center}.cloud-login{grid-template-columns:1fr}.cloud-actions{display:grid}}
.intro{padding:18px 0 14px}
.intro h1{font-size:clamp(24px,3.2vw,38px);line-height:.96;letter-spacing:-1.5px;margin:0;max-width:460px}
.section-title{align-items:flex-start;gap:0;padding-bottom:18px;margin-bottom:24px}
.section-title>span{display:none!important}
.section-title h2{font-size:clamp(34px,5vw,64px);line-height:.88;letter-spacing:-3px;text-transform:uppercase;margin:0;color:var(--blue);text-shadow:0 0 22px rgba(22,131,255,.24)}
.section-title p{margin-top:12px;font-size:16px;font-weight:800}
@media(max-width:700px){.intro{padding:14px 0 12px}.intro h1{font-size:28px}.section-title h2{font-size:38px;letter-spacing:-1.5px}}
.theme-mode-grid{display:grid;grid-template-columns:minmax(240px,360px) 1fr;gap:18px;align-items:end;margin-bottom:24px}
.theme-preview{display:flex;align-items:center;gap:8px;min-height:48px;padding:10px 12px;border:1px solid #c8d7ea;border-radius:14px;background:#f8fbff}
.theme-preview span{display:block;width:34px;height:34px;border-radius:999px;border:2px solid rgba(255,255,255,.9);box-shadow:0 4px 12px rgba(45,77,120,.18)}
.theme-preview small{margin-left:8px;color:#65758b;font-weight:900}
.season-toolbar{grid-template-columns:minmax(260px,1fr) minmax(220px,320px)!important;align-items:end}
.season-toolbar label{width:100%}
@media(max-width:700px){.theme-mode-grid,.season-toolbar{grid-template-columns:1fr!important}.theme-preview{flex-wrap:wrap}}
main{padding-top:34px}
.intro{display:none!important}
.cloud-actions{display:flex;flex-wrap:wrap;gap:10px}
.cloud-action-btn{border:1px solid rgba(14,107,255,.45);background:#fff;color:var(--blue);border-radius:12px;padding:12px 16px;font-weight:900;cursor:pointer;box-shadow:0 8px 18px rgba(45,77,120,.08);text-transform:uppercase;letter-spacing:1px;font-size:13px;line-height:1.2;display:inline-flex;align-items:center;justify-content:center;min-height:44px}
.cloud-action-btn:hover{border-color:var(--blue);background:#f8fbff;box-shadow:0 12px 24px rgba(14,107,255,.16)}
.cloud-action-btn.danger-cloud{color:#b72f2f;border-color:#ffcaca;background:#fff5f5}
.cloud-action-btn input{display:none}
.backup-file{margin:0}
@media(max-width:700px){main{padding-top:24px}.cloud-actions{display:grid;grid-template-columns:1fr}.cloud-action-btn{width:100%}}

.auth-handoff{text-align:center;padding:24px 10px}.auth-handoff>span{display:grid;place-items:center;width:70px;height:70px;margin:0 auto 18px;border-radius:50%;background:#e9f8ef;color:#1c9b4d;font-size:38px;font-weight:900}.auth-handoff h3{font-size:28px!important;margin:0 0 10px!important}.auth-handoff p{color:#65758b;font-weight:750;line-height:1.5}.auth-handoff>div{display:flex;justify-content:center;gap:12px;margin-top:22px}.auth-handoff .primary{width:auto;margin:0}.auth-handoff .secondary{margin:0}.admin-member-card.admin-account{border-color:#8fb8ee;background:#eef6ff}
@media(max-width:700px){
  body{overflow-x:hidden}
  main{width:calc(100% - 24px);padding-top:18px}
  .hero{padding:16px 18px;min-height:82px}
  .brand{width:100%;gap:12px}.brand strong{font-size:30px}.brand small{font-size:10px;letter-spacing:2px}
  .intro{padding:18px 0 16px}.intro h1{font-size:27px;line-height:1.02;overflow-wrap:anywhere}
  .card{padding:18px;margin-bottom:34px;box-shadow:0 10px 28px rgba(45,77,120,.12)}
  .section-title{align-items:flex-start;padding-bottom:18px;margin-bottom:20px}.section-title h2{font-size:30px;line-height:1;overflow-wrap:anywhere}
  .grid,.group-options,.theme-mode-grid,.season-toolbar{grid-template-columns:1fr!important;gap:14px}
  .tournament-head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;margin:30px 0 20px}.tournament-head h2{font-size:27px;overflow-wrap:anywhere}
  .tournament-actions{display:grid;grid-template-columns:1fr;align-items:stretch}.tournament-actions button{width:100%}
  .tabs{overflow-x:auto;overscroll-behavior-x:contain}.tab{flex:0 0 auto;padding:12px 16px}
  .match{padding:14px;gap:14px}.players-match{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:8px;text-align:center}.players-match span{overflow-wrap:anywhere}
  .score-controls{display:grid;grid-template-columns:1fr auto 1fr auto;gap:7px}.score-controls select{width:100%}.score-controls button{min-width:42px}
  .winner,.qualification{padding:24px 16px}.winner h2,.qualification h2{font-size:30px;overflow-wrap:anywhere}
  .auth-handoff>div,.final-actions,.export-actions,.cloud-actions,.avatar-actions{display:grid;grid-template-columns:1fr;width:100%}.auth-handoff button,.final-actions button,.export-actions button,.cloud-action-btn,.avatar-actions button,.avatar-upload{width:100%}
  .profile-heading{display:grid;grid-template-columns:1fr;gap:18px}.profile-heading>div{min-width:0}.profile-heading>button{width:100%}
  .profile-heading h3,.profile-heading p{overflow-wrap:anywhere}
  .profile-form{grid-template-columns:1fr!important}.profile-form .primary{margin-top:0}
  .admin-section-heading{align-items:stretch;flex-direction:column}.admin-section-heading button{width:100%}
  .admin-member-grid,.registered-player-grid{grid-template-columns:1fr}.admin-member-card{min-width:0}.admin-member-card div{overflow:hidden}.admin-member-card span,.admin-member-card small{overflow-wrap:anywhere}
  .registered-player-title{align-items:flex-start;flex-direction:column}.registered-player{min-width:0}
  .player-detail>.close-detail{float:none;width:100%;margin:0 0 18px}.player-profile-head{align-items:center;gap:14px}.player-profile-avatar{width:72px;height:72px;flex-basis:72px}
  .player-profile-stats{grid-template-columns:1fr 1fr!important}
  .season-tabs{grid-template-columns:1fr 1fr}.season-section .table-wrap table,.manual-entry-table table{min-width:760px}
  .manual-toggle-row{justify-content:stretch}.manual-toggle-row .secondary{width:100%;min-width:0}
  .withdraw-actions{grid-template-columns:1fr}.withdraw-actions button{width:100%}
  .mode-card{padding:20px}.mode-card h2{font-size:28px}.mode-choice-grid button{min-height:120px}
}

/* Empfehlungen verwalten */
.shop-admin{margin:22px 0 26px;border:1px solid color-mix(in srgb,var(--blue) 28%,var(--line));background:color-mix(in srgb,var(--paper) 94%,var(--blue) 6%)}
.shop-admin-heading{display:flex;align-items:center;justify-content:space-between;gap:18px}
.shop-admin-heading h2{margin:3px 0 5px}.shop-admin-heading p{margin:0;color:var(--muted)}
.shop-admin-form{margin-top:22px;padding-top:22px;border-top:1px solid var(--line);display:grid;gap:16px}
.shop-admin-form textarea{width:100%;resize:vertical;min-height:105px}
.shop-admin-form label>small{display:block;margin:4px 0 7px;color:var(--muted);font-weight:500}
.shop-admin-image-row{display:grid;grid-template-columns:auto 112px 1fr;align-items:center;gap:16px}
.shop-image-upload{position:relative;overflow:hidden;display:inline-flex;justify-content:center;cursor:pointer}.shop-image-upload input{position:absolute;inset:0;opacity:0;cursor:pointer}
.shop-admin-image-preview{width:112px;height:112px;border:1px dashed var(--line);border-radius:16px;background:#f7f8fa;display:grid;place-items:center;font-size:38px;overflow:hidden}
.shop-admin-image-preview img{width:100%;height:100%;object-fit:cover}
.shop-admin-image-row p{margin:0;color:var(--muted);font-size:.9rem}
.shop-enabled{display:flex!important;align-items:center;gap:10px}.shop-enabled input{width:20px;height:20px}
.shop-admin-form-actions{display:flex;justify-content:flex-end;gap:10px}
.shop-admin-list{display:grid;gap:10px;margin-top:20px}
.shop-admin-item{display:grid;grid-template-columns:62px minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px;border:1px solid var(--line);border-radius:14px;background:var(--paper)}
.shop-admin-item.is-disabled{opacity:.62}.shop-admin-thumb{width:62px;height:62px;border-radius:11px;background:#f1f4f8;display:grid;place-items:center;overflow:hidden}.shop-admin-thumb img{width:100%;height:100%;object-fit:cover}.shop-admin-thumb i{font-style:normal;font-size:27px}
.shop-admin-item>div:nth-child(2){display:grid;gap:4px}.shop-admin-item small{color:var(--muted)}
.shop-admin-item-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px}.shop-admin-item-actions button{padding:8px 10px;min-height:38px}

@media(max-width:760px){
  .shop-admin-heading{align-items:stretch;flex-direction:column}.shop-admin-heading .primary{width:100%}
  .shop-admin-image-row{grid-template-columns:1fr 96px}.shop-admin-image-row p{grid-column:1/-1}.shop-admin-image-preview{width:96px;height:96px}.shop-image-upload{min-height:48px;align-items:center}
  .shop-admin-form-actions{display:grid;grid-template-columns:1fr 1fr}.shop-admin-form-actions button{width:100%}
  .shop-admin-item{grid-template-columns:56px minmax(0,1fr)}.shop-admin-thumb{width:56px;height:56px}.shop-admin-item-actions{grid-column:1/-1;display:grid;grid-template-columns:42px 42px 1fr 1fr}.shop-admin-item-actions button{width:100%;font-size:.78rem}
}

/* Ergebnis-Korrektur und Änderungsprotokoll */
.score-controls button{min-width:44px}.match.done .score-controls button{padding-left:11px;padding-right:11px;font-size:.76rem;font-weight:900}
.score-history-card{margin:-44px 0 64px;padding:22px;border:1px solid var(--line);border-radius:16px;background:var(--paper);box-shadow:0 12px 28px rgba(15,34,54,.08)}
.score-history-heading{display:flex;justify-content:space-between;align-items:end;gap:16px;padding-bottom:14px;border-bottom:1px solid var(--line)}
.score-history-heading h3{margin:4px 0 0}.score-history-heading small{color:var(--muted)}
.score-history-list{display:grid;gap:8px;margin-top:13px}.score-history-list article{display:grid;grid-template-columns:34px 1fr;align-items:center;gap:10px;padding:10px 12px;border-radius:11px;background:color-mix(in srgb,var(--blue) 6%,var(--paper))}.score-history-list article>span{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:var(--blue);color:#fff;font-weight:900}.score-history-list article>div{display:grid;gap:3px}.score-history-list small{color:var(--muted)}
@media(max-width:760px){.score-history-card{margin:-42px 0 52px;padding:17px}.score-history-heading{align-items:start;flex-direction:column}.score-history-list article{align-items:start}.score-history-list small{line-height:1.4}.live-tournament-actions #undoLastScoreBtn{width:100%}}
@media(max-width:380px){
  .season-tabs{grid-template-columns:1fr}
  .access-stat-grid,.player-profile-stats{grid-template-columns:1fr!important}
  .progress-ring{width:68px;height:68px}
}

/* Teilbare Ergebnisgrafik */
.result-graphic-button{margin:0;text-transform:none;letter-spacing:0}.result-graphic-overlay{position:fixed;inset:0;z-index:1100;display:grid;place-items:center;padding:20px;background:rgba(0,0,0,.82);backdrop-filter:blur(8px)}.result-graphic-dialog{position:relative;width:min(520px,100%);max-height:94vh;overflow:auto;padding:26px;border:1px solid var(--line);border-radius:20px;background:var(--paper);box-shadow:0 30px 90px rgba(0,0,0,.5);text-align:center}.result-graphic-dialog h2{margin:6px 0}.result-graphic-dialog>p{margin:0 0 18px;color:var(--muted)}.result-graphic-dialog>img{display:block;width:min(100%,360px);height:auto;margin:0 auto 20px;border-radius:14px;box-shadow:0 15px 35px rgba(0,0,0,.3)}.result-graphic-dialog>div{display:grid;grid-template-columns:1.25fr 1fr;gap:10px}.result-graphic-dialog>div button{width:100%;margin:0}
@media(max-width:520px){.result-graphic-dialog{padding:20px}.result-graphic-dialog>div{grid-template-columns:1fr}}

/* Offline- und Updatezustand */
body.app-offline #syncStatusBar{background:#fff3cd;border-color:#efd486;color:#6e5310}body.app-offline #syncStatusBar:before{content:"";width:9px;height:9px;margin-right:7px;border-radius:50%;background:#d89c00;box-shadow:0 0 0 4px rgba(216,156,0,.15)}.pwa-notice{position:fixed;z-index:1200;right:18px;bottom:18px;display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:14px;width:min(520px,calc(100vw - 36px));padding:15px 16px;border:1px solid #85b7f4;border-radius:16px;background:#f7fbff;color:#122033;box-shadow:0 22px 55px rgba(4,30,65,.25)}.pwa-notice>div{display:grid;gap:3px}.pwa-notice small{color:#65758b}.pwa-notice button{margin:0;border:0;border-radius:10px;background:var(--blue);color:#fff;padding:10px 13px;font-weight:900;cursor:pointer}.pwa-notice #dismissPwaUpdateBtn{background:transparent;color:#65758b;font-size:24px;padding:4px 7px}@media(max-width:600px){.pwa-notice{grid-template-columns:1fr auto}.pwa-notice>div{grid-column:1/-1}.pwa-notice #installPwaUpdateBtn{width:100%}}

/* Teilnahme-Anmeldung und datensparsame Klickstatistik */
.event-registration{display:flex;align-items:center;gap:10px;margin-top:13px}.event-registration small{color:var(--muted);font-weight:800}.event-registration button{min-height:38px;margin:0;padding:8px 12px;text-transform:none;letter-spacing:0}.registration-names{font-size:12px}.registration-names summary{color:var(--blue);font-weight:900;cursor:pointer}.registration-names span{display:block;max-width:520px;margin-top:6px;color:var(--muted);line-height:1.45}.shop-click-stats{margin:18px 0}.shop-click-stats article{display:grid;grid-template-columns:1fr auto;gap:4px 18px;padding:16px 18px;border:1px solid #cfe0f5;border-radius:14px;background:#f7fbff}.shop-click-stats span{font-weight:850}.shop-click-stats b{grid-row:1/3;grid-column:2;font-size:30px;color:var(--blue)}.shop-click-stats small{color:var(--muted)}@media(max-width:760px){.event-registration{align-items:stretch;flex-direction:column}.event-registration button{width:100%}.shop-click-stats article{grid-template-columns:1fr auto}}

/* Sichtbarkeit nach Benutzerrolle */
body.member-mode #seasonStandings .link-btn{color:var(--blue);font-weight:900}
.profile-avatar img{object-position:center;transform:none}
.avatar-crop-overlay{position:fixed;z-index:10000;inset:0;display:grid;place-items:center;padding:18px;background:rgba(2,8,18,.82);backdrop-filter:blur(8px)}
.avatar-crop-dialog{width:min(470px,100%);max-height:calc(100vh - 36px);overflow:auto;padding:24px;border:1px solid #b9d2f4;border-radius:20px;background:#fff;color:#102039;box-shadow:0 28px 80px rgba(0,0,0,.38)}
.avatar-crop-dialog h3{margin:0 0 6px;font-size:25px}.avatar-crop-dialog p{margin:0 0 18px;color:#65758b;font-weight:700;line-height:1.45}
.avatar-crop-frame{width:min(330px,82vw);aspect-ratio:1;margin:0 auto 18px;border-radius:50%;overflow:hidden;border:4px solid var(--blue);box-shadow:0 0 0 8px rgba(14,107,255,.12);background:#dbe7f5;touch-action:none}
.avatar-crop-frame canvas{display:block;width:100%;height:100%;cursor:grab;touch-action:none}.avatar-crop-frame canvas:active{cursor:grabbing}
.avatar-crop-dialog>label{display:block;color:#102039}.avatar-crop-dialog input[type=range]{padding:0;accent-color:var(--blue)}
.avatar-crop-actions{display:grid;grid-template-columns:1fr 1.5fr;gap:12px;margin-top:18px}.avatar-crop-actions button{width:100%;min-height:52px;margin:0}.avatar-crop-actions .primary{justify-content:center}
@media(max-width:520px){.avatar-crop-dialog{padding:18px}.avatar-crop-actions{grid-template-columns:1fr}.avatar-crop-frame{width:min(290px,76vw)}}
.member-link-control{display:flex;align-items:center;gap:8px}.member-link-control select{min-width:210px;margin:0;padding:10px}.member-link-control button{margin:0;white-space:nowrap}.member-linked{color:#178548!important;font-weight:850}
@media(max-width:900px){.member-row{grid-template-columns:1fr}.member-link-control{display:grid;grid-template-columns:1fr auto}.member-link-control select{min-width:0}.member-row .danger{width:100%}}

/* Empfehlungen / Amazon-Partnerbereich */
.shop-section{padding:54px 0 70px}.shop-hero{max-width:780px;margin-bottom:26px}.shop-hero h1{margin:7px 0 14px;color:#102039;font-size:clamp(40px,7vw,72px);line-height:.95;letter-spacing:-3px}.shop-hero>p:last-child{max-width:650px;color:#65758b;font-size:18px;line-height:1.55}.affiliate-disclosure{display:flex;align-items:center;justify-content:space-between;gap:22px;margin:0 0 24px;padding:17px 20px;border:1px solid #bfd3ee;border-left:5px solid var(--blue);border-radius:14px;background:#f5f9ff;color:#102039}.affiliate-disclosure strong{flex:0 0 auto;color:var(--blue);font-size:12px;letter-spacing:1.2px}.affiliate-disclosure p{margin:0;line-height:1.45}.shop-filters{display:flex;gap:9px;overflow-x:auto;padding:3px 1px 13px;margin-bottom:14px}.shop-filter{flex:0 0 auto;padding:11px 17px;border:1px solid #c6d7eb;border-radius:999px;background:#fff;color:#405672;font-weight:850;cursor:pointer}.shop-filter.active{border-color:var(--blue);background:var(--blue);color:#fff;box-shadow:0 8px 20px rgba(14,107,255,.22)}.shop-product-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-bottom:28px}.shop-product{display:grid;grid-template-columns:142px 1fr;grid-template-rows:auto 1fr;min-height:285px;overflow:hidden;scroll-margin-top:24px;border:1px solid #cad9ea;border-radius:20px;background:#fff;box-shadow:0 16px 36px rgba(37,70,110,.1)}.shop-product.is-targeted{border-color:var(--blue);box-shadow:0 0 0 3px rgba(14,107,255,.16),0 18px 38px rgba(37,70,110,.16)}.shop-product-heading{grid-column:2;padding:22px 22px 0}.shop-product-visual{grid-column:1;grid-row:1/3;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:13px;padding:22px;background:linear-gradient(145deg,#e9f3ff,#f8fbff);color:var(--blue)}.shop-product-visual>span{font-size:58px;filter:drop-shadow(0 8px 12px rgba(14,107,255,.18))}.shop-product-visual small{color:#6a7d95;font-size:10px;font-weight:900;text-align:center;text-transform:uppercase;letter-spacing:1px}.shop-product-body{grid-column:2;display:flex;flex-direction:column;padding:9px 22px 22px}.shop-ad-label{color:#7b8796;font-size:9px;font-weight:900;letter-spacing:1px}.shop-product-kicker{margin:14px 0 4px!important;color:var(--blue)!important;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:1.2px}.shop-product h2{margin:0;color:#102039;font-size:23px;line-height:1.1}.shop-product-body>p{margin:0 0 15px;color:#65758b;line-height:1.45}.shop-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:18px}.shop-tags span{padding:5px 8px;border-radius:999px;background:#eef5ff;color:#3b587a;font-size:10px;font-weight:800}.shop-link{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding:13px 15px;border-radius:11px;background:linear-gradient(180deg,var(--blue),#005bd8);color:#fff;font-weight:900;text-decoration:none}.shop-link.disabled{background:#e7edf4;color:#728095;cursor:not-allowed}.shop-empty{text-align:center;padding:55px 20px;margin-bottom:28px;border:1px dashed #b8cce5;border-radius:18px;background:#f7fbff;color:#405672}.shop-empty>span{font-size:44px}.shop-empty h2{color:#102039}.shop-transparency{color:#102039}.shop-transparency h2{margin-top:0}.shop-transparency p{margin-bottom:0;color:#65758b;line-height:1.55}
@media(max-width:850px){.shop-product-grid{grid-template-columns:1fr}.shop-product{grid-template-columns:1fr;grid-template-rows:auto auto auto}.shop-product-heading{grid-column:1;grid-row:1;padding:20px 20px 14px}.shop-product-visual{grid-column:1;grid-row:2;min-height:120px}.shop-product-body{grid-column:1;grid-row:3;padding:18px 20px 20px}}
@media(max-width:560px){.shop-section{padding-top:24px}.shop-hero h1{letter-spacing:-2px}.affiliate-disclosure{align-items:flex-start;flex-direction:column;gap:8px}.shop-product-visual>span{font-size:46px}}
.shop-product-visual{padding:14px}.shop-product-visual>img{display:block;width:100%;height:180px;object-fit:contain;border-radius:12px;background:#fff}@media(max-width:850px){.shop-product-visual>img{height:220px}}
/* Öffentliche Zuschauer-Startseite */
.public-home{padding:48px 0 72px}.public-home-hero{padding:34px 0 46px}.public-home-hero h1{margin:10px 0 18px;font-size:clamp(44px,7vw,82px);line-height:.92;letter-spacing:-4px;text-transform:uppercase}.public-home-hero h1 em{font-style:normal;color:var(--blue,var(--orange))}.public-home-hero>p:last-child{max-width:650px;color:var(--muted);font-size:18px;line-height:1.5}.public-home-status{min-height:24px}.public-loading{display:inline-flex;padding:9px 13px;border:1px solid var(--line);border-radius:999px;color:var(--muted)}.public-home-block{margin:12px 0 56px}.public-home-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:18px;padding-bottom:14px;border-bottom:1px solid var(--line)}.public-home-heading span,.public-ranking-card>div>span{display:block;color:var(--blue,var(--orange));font-size:11px;font-weight:900;letter-spacing:2px}.public-home-heading h2{margin:5px 0 0;font-size:clamp(27px,4vw,40px)}.public-event-grid,.public-ranking-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.public-live-card,.public-ranking-card,.public-event-row,.public-empty{background:var(--paper);border:1px solid var(--line);border-radius:14px;box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 16px 34px rgba(0,0,0,.2)}.public-live-card,.public-ranking-card{padding:24px}.public-live-card>div:first-child{display:flex;justify-content:space-between;align-items:center}.public-live-card h3,.public-ranking-card h3,.public-event-row h3{margin:9px 0 6px}.public-live-card p,.public-ranking-card p,.public-event-row p{margin:0;color:var(--muted)}.live-dot{display:inline-flex;align-items:center;gap:7px;color:#ff7171;font-size:11px;font-weight:900;letter-spacing:2px}.live-dot:before{content:"";width:9px;height:9px;border-radius:50%;background:#ff5252;box-shadow:0 0 14px #ff5252}.public-live-matches{display:grid;gap:7px;margin-top:18px}.public-live-matches>div{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;padding:10px 12px;border-radius:10px;background:rgba(127,127,127,.08)}.public-live-matches>div span:last-child{text-align:right}.public-live-matches b{color:var(--muted);font-size:12px}.public-event-list{display:grid;gap:10px}.public-event-row{display:grid;grid-template-columns:150px minmax(0,1fr) auto;align-items:center;gap:20px;padding:18px 20px}.public-event-row time{color:var(--blue,var(--orange));font-weight:800}.public-event-row strong{font-size:13px}.public-empty{grid-column:1/-1;padding:26px;color:var(--muted);text-align:center}.public-empty>span{display:block;font-size:34px;color:var(--blue,var(--orange))}.public-ranking-card{display:flex;flex-direction:column}.public-ranking-card ol{list-style-position:inside;margin:20px 0;padding:0}.public-ranking-card li{display:flex;justify-content:space-between;gap:15px;padding:10px 0;border-bottom:1px solid var(--line)}.public-ranking-card .link-btn{margin-top:auto;text-align:left;padding-top:12px}.public-ranking-card small{color:var(--muted)}
.public-admin-schedule{display:grid;grid-template-columns:minmax(220px,.7fr) minmax(0,1.3fr);gap:30px;align-items:center;margin:26px 0 48px}.public-admin-schedule h2{margin:7px 0}.public-admin-schedule p{color:var(--muted)}.public-admin-schedule form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.public-admin-schedule .primary{grid-column:1/-1;margin:0}.public-event-result{display:flex;align-items:center;justify-content:flex-end;gap:12px}.public-delete-event{padding:8px 11px;text-transform:none;letter-spacing:0}
.public-event-row time{display:flex;flex-direction:column;gap:4px}.public-event-row time b{color:var(--ink);font-size:13px}
.public-event-share{display:flex;gap:7px}.public-event-share button{min-height:38px;margin:0;padding:8px 11px;text-transform:none;letter-spacing:0;font-size:12px}.public-event-share .whatsapp-share{border-color:#25d366;color:#16883e}.public-event-share .whatsapp-share:hover{border-color:#25d366;box-shadow:0 0 18px rgba(37,211,102,.2)}
.personal-overview{margin:28px 0;padding:22px;border:1px solid #cbdcf0;border-radius:18px;background:linear-gradient(145deg,#f7fbff,#eef6ff);box-shadow:0 13px 28px rgba(14,107,255,.08)}.personal-overview-head{display:flex;align-items:end;justify-content:space-between;gap:18px}.personal-overview h3{margin:5px 0}.personal-overview p{margin:4px 0;color:var(--muted)}.personal-overview-head button{margin:0}.personal-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:20px 0}.personal-stat-grid article{display:grid;gap:5px;padding:15px;border:1px solid #d7e4f2;border-radius:13px;background:#fff}.personal-stat-grid small{color:var(--muted);font-weight:800}.personal-stat-grid b{color:var(--blue);font-size:25px}.personal-overview-detail{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(220px,.6fr);gap:20px;padding-top:18px;border-top:1px solid #d3e1f0}.personal-overview-detail h4{margin:0 0 10px}.personal-results{display:grid;gap:7px}.personal-results>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-radius:10px;background:#fff}.personal-results span{display:grid;gap:2px;color:var(--muted);font-size:12px}.personal-results span b{color:var(--ink)}.personal-results strong{white-space:nowrap}.personal-next-event{padding:14px;border-radius:13px;background:#fff}.personal-next-event>b{display:block;margin-bottom:5px}.personal-next-event small{display:block;color:var(--muted)}.personal-next-event .link-btn{margin-top:12px}.personal-overview-empty{display:flex;align-items:center;justify-content:space-between;gap:22px}.personal-overview-empty>div{max-width:650px}.personal-overview-empty aside{display:grid;gap:4px;min-width:220px;padding:15px;border-radius:13px;background:#fff}.personal-overview-empty aside small,.personal-overview-empty aside span{color:var(--muted)}
.public-live-open{width:100%;margin-top:18px}.live-viewer-status{font-size:12px!important;color:var(--blue,var(--orange))!important;margin-top:8px!important}.live-qr-overlay{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:20px;background:rgba(0,0,0,.78);backdrop-filter:blur(8px)}.live-qr-dialog{position:relative;width:min(500px,100%);max-height:94vh;overflow:auto;padding:30px;border:1px solid var(--line);border-radius:20px;background:var(--paper);box-shadow:0 28px 80px rgba(0,0,0,.45);text-align:center}.live-qr-dialog h2{margin:8px 0}.live-qr-dialog>p{color:var(--muted)}.live-qr-close{position:absolute;right:14px;top:12px;border:0;background:transparent;color:var(--ink);font-size:30px;cursor:pointer}.live-qr-switch{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:20px 0}.live-qr-switch button.active{background:var(--blue,var(--orange));color:#fff;border-color:var(--blue,var(--orange))}.live-qr-code{display:grid;place-items:center;width:292px;min-height:292px;margin:12px auto;padding:16px;border-radius:14px;background:#fff}.live-qr-code img,.live-qr-code canvas{max-width:100%;height:auto}.live-qr-link{display:block;margin:14px 0;overflow-wrap:anywhere;color:var(--blue,var(--orange));font-size:12px}.live-qr-dialog .primary{margin-top:10px}
.current-live-match{position:relative;border:2px solid var(--blue,var(--orange));box-shadow:0 0 0 3px rgba(14,107,255,.14),0 16px 34px rgba(0,0,0,.22)}.current-live-label{grid-column:1/-1;margin:-18px -18px 12px;padding:9px 13px;border-radius:12px 12px 0 0;background:var(--blue,var(--orange));color:#fff;font-size:11px;font-weight:900;letter-spacing:1.3px}body.view-only .score-controls{display:none}.current-live-match .players-match{font-size:clamp(19px,4vw,25px)}
@media(max-width:700px){.current-live-label{margin:-14px -14px 4px}.current-live-match{order:-1;padding-top:14px}.current-live-match .players-match{padding:8px 0 4px}}

/* Mobile Saisonwertung */
.season-mobile-ranking{display:none}
@media(max-width:760px){
  .season-section{margin-bottom:42px}.season-section>.section-title{margin-bottom:16px}.season-section>.section-title h2{font-size:34px}.season-toolbar{display:block!important;padding:16px!important;margin-bottom:16px}.season-current-summary{margin-bottom:14px}.season-current-summary span,.season-current-summary b,.season-current-summary small{display:block}.season-current-summary b{margin:4px 0;font-size:20px}.season-toolbar label{width:100%}.season-toolbar select{width:100%;font-size:17px}
  .season-tabs{display:flex;gap:7px;overflow-x:auto;margin:0 -3vw 16px;padding:0 3vw 9px;border-bottom:0;scrollbar-width:none;scroll-snap-type:x proximity}.season-tabs::-webkit-scrollbar{display:none}.season-tabs .season-tab{flex:0 0 auto;min-height:44px;padding:11px 15px;border:1px solid var(--line);border-radius:999px;background:var(--paper);scroll-snap-align:start}.season-tabs .season-tab.active{border-radius:999px}
  .season-desktop-ranking{display:none}.season-mobile-ranking{display:grid;gap:10px;margin-bottom:20px}.season-mobile-player{overflow:hidden;border:1px solid var(--line);border-radius:15px;background:var(--paper);box-shadow:0 10px 24px rgba(0,0,0,.14)}.season-mobile-player.podium-1{border-color:#e3b341;box-shadow:0 0 0 2px rgba(227,179,65,.18),0 12px 28px rgba(0,0,0,.16)}.season-mobile-player.podium-2{border-color:#9ba8b7}.season-mobile-player.podium-3{border-color:#b87949}.season-mobile-player.is-own-player{border-color:var(--blue);box-shadow:0 0 0 2px rgba(14,107,255,.18),0 12px 28px rgba(0,0,0,.16)}
  .season-mobile-summary{display:grid;grid-template-columns:42px minmax(0,1fr) auto 24px;align-items:center;gap:10px;width:100%;padding:15px 13px;border:0;background:transparent;color:var(--ink);text-align:left;cursor:pointer}.season-mobile-rank{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:rgba(14,107,255,.11);color:var(--blue);font-size:17px;font-weight:900}.podium-1 .season-mobile-rank{background:#e3b341;color:#211600}.podium-2 .season-mobile-rank{background:#9ba8b7;color:#101820}.podium-3 .season-mobile-rank{background:#b87949;color:#fff}.season-mobile-name{display:grid;gap:3px;min-width:0}.season-mobile-name b{overflow:hidden;text-overflow:ellipsis;font-size:17px;white-space:nowrap}.season-mobile-name small{color:var(--blue);font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.8px}.season-mobile-points{display:grid;text-align:right}.season-mobile-points b{font-size:21px;color:var(--blue)}.season-mobile-points small{color:var(--muted);font-size:10px;text-transform:uppercase}.season-mobile-chevron{font-size:22px;color:var(--muted);transition:transform .2s}.season-mobile-player.is-open .season-mobile-chevron{transform:rotate(180deg)}
  .season-mobile-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;padding:1px;border-top:1px solid var(--line);background:var(--line)}.season-mobile-details>div{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:50px;padding:11px;background:var(--paper)}.season-mobile-details span{color:var(--muted);font-size:11px}.season-mobile-details b{color:var(--ink)}.season-mobile-details .season-mobile-drops{grid-column:1/-1}.season-mobile-drops b{display:flex;gap:5px}.season-mobile-drops i{padding:3px 6px;border-radius:999px;background:rgba(14,107,255,.12);color:var(--blue);font-size:11px;font-style:normal}.season-mobile-profile{grid-column:1/-1;padding:14px!important;background:var(--paper)!important;text-align:center!important}
  .season-overview .season-cards{gap:8px;margin-top:14px}.season-overview .season-cards article{padding:14px}.season-overview .season-cards b{font-size:19px}.season-match{gap:10px!important}.season-match-actions{display:grid;gap:8px}.season-match-actions button{width:100%}.season-pairing{grid-template-columns:1fr auto 1fr!important;gap:7px!important}.season-pairing small{grid-column:1/-1}.season-pairing b:last-child{text-align:right}
}
@media(max-width:760px){.public-home{padding-top:18px}.public-home-hero{padding-bottom:30px}.public-home-hero h1{letter-spacing:-2px}.public-home-heading{align-items:flex-start;flex-direction:column}.public-home-heading .secondary{width:100%}.public-event-grid,.public-ranking-grid,.public-admin-schedule,.public-admin-schedule form{grid-template-columns:1fr}.public-event-row{grid-template-columns:1fr;gap:5px}.public-event-result{align-items:stretch;flex-direction:column;margin-top:10px}.public-event-share{display:grid;grid-template-columns:1fr 1fr}.public-event-share button,.public-delete-event{width:100%}.public-live-matches>div{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)}}
@media(max-width:760px){.personal-overview{padding:17px}.personal-overview-head,.personal-overview-empty{align-items:stretch;flex-direction:column}.personal-overview-head button{width:100%}.personal-stat-grid{grid-template-columns:1fr 1fr}.personal-overview-detail{grid-template-columns:1fr}.personal-results>div{align-items:flex-start;flex-direction:column}.personal-overview-empty aside{min-width:0;width:100%}}
.admin-dashboard{margin:0 0 30px;padding:0 0 30px;border-bottom:1px solid #d6e2f2}.admin-dashboard-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.admin-dashboard-grid article{display:grid;gap:5px;min-height:118px;padding:17px;border:1px solid #cfe0f5;border-radius:16px;background:linear-gradient(145deg,#f8fbff,#edf5ff)}.admin-dashboard-grid small{color:#65758b;font-size:11px;font-weight:900;letter-spacing:.8px;text-transform:uppercase}.admin-dashboard-grid b{color:#122033;font-size:25px;line-height:1.05}.admin-dashboard-grid span{overflow:hidden;color:#65758b;font-size:13px;font-weight:750;text-overflow:ellipsis}.admin-dashboard-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:15px}.admin-dashboard-actions button{width:auto;margin:0}.admin-dashboard-actions small{margin-left:auto;color:#65758b;font-weight:750}.admin-upcoming-list{margin-top:20px}.admin-upcoming-list h4{margin:0 0 8px}.admin-upcoming-list button{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;margin:0;padding:11px 13px;border:0;border-top:1px solid #d6e2f2;background:transparent;color:#122033;text-align:left;cursor:pointer}.admin-upcoming-list button:hover{color:var(--blue)}.admin-checkin{margin:0 0 30px;padding:24px;border:1px solid #8fb8ee;border-radius:18px;background:#f5f9ff}.checkin-summary{display:grid;grid-template-columns:auto 1fr;align-items:baseline;gap:0 9px;margin-bottom:16px}.checkin-summary b{grid-row:1/3;color:var(--blue);font-size:42px}.checkin-summary span{font-size:18px;font-weight:900}.checkin-summary small{color:#65758b;font-weight:750}.checkin-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.checkin-member{display:grid;grid-template-columns:auto auto 1fr auto;align-items:center;gap:10px;padding:11px;border:1px solid #d6e2f2;border-radius:13px;background:#fff;cursor:pointer}.checkin-member.is-present{border-color:#60bc7d;background:#effaf3}.checkin-member>input{width:20px;height:20px;margin:0;accent-color:#22a654}.checkin-member .profile-avatar{width:38px;height:38px;flex-basis:38px;font-size:16px}.checkin-member>span:nth-of-type(2){display:grid;min-width:0}.checkin-member b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.checkin-member small{color:#65758b;font-weight:750}.checkin-member>strong{color:#8a96a7;font-size:12px}.checkin-member.is-present>strong{color:#16813c}.checkin-guest-form{display:grid;grid-template-columns:1fr auto;gap:10px;margin-top:15px}.checkin-guest-form input,.checkin-guest-form button{margin:0}.checkin-guests{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}.checkin-guest{display:inline-flex;align-items:center;gap:7px;padding:7px 9px;border-radius:999px;background:#e4effd;font-weight:800}.checkin-guest button{width:22px;height:22px;margin:0;padding:0;border:0;border-radius:50%;background:#fff;color:#a82f2f}.checkin-transfer{margin:18px 0 0}@media(max-width:760px){.admin-dashboard-grid,.checkin-list{grid-template-columns:1fr 1fr}.admin-dashboard-actions{align-items:stretch;flex-direction:column}.admin-dashboard-actions button{width:100%}.admin-dashboard-actions small{margin:4px 0 0}.checkin-member{grid-template-columns:auto auto 1fr}.checkin-member>strong{grid-column:2/4}.admin-checkin{padding:18px}.checkin-guest-form{grid-template-columns:1fr}}@media(max-width:520px){.admin-dashboard-grid,.checkin-list{grid-template-columns:1fr}}
