:root{color-scheme:light;--ink:#173b67;--muted:#526b87;--bg:#edf5ff;--card:#ffffff;--red:#2563cb;--blue:#2563cb;--line:#d0e0f2;--green:#257250;--yellow:#2563cb}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.5 "Segoe UI",Arial,sans-serif}button,input,select,textarea{font:inherit;color:inherit}button,a{touch-action:manipulation;cursor:pointer}a{color:inherit;text-decoration:none}input,select,textarea{width:100%;min-width:0;border:1px solid #becfe4;background:#ffffff;padding:10px 12px;border-radius:3px}input::placeholder,textarea::placeholder{color:#647891;font-size:14px}button:focus-visible,a:focus-visible,input:focus,select:focus,textarea:focus{outline:2px solid #3579d4;outline-offset:2px}
header{background:#ffffff;border-bottom:3px solid var(--red);padding:18px max(22px,calc((100vw - 1250px)/2));display:flex;flex-wrap:wrap;align-items:center;gap:20px;position:relative}.brand{display:flex;flex-direction:column;line-height:1.15;min-width:175px}.brand b{font-size:29px;font-weight:950;letter-spacing:-1px;color:#1c5daa;text-shadow:2px 2px #d5e7ff}.brand small{font-size:12px;letter-spacing:1.8px;margin-top:6px;color:#4c6e98}.ball{display:none}nav{display:flex;gap:0;flex:1;justify-content:center;overflow:auto}nav a{font-size:14px;font-weight:650;white-space:nowrap;padding:11px 12px;border-bottom:2px solid transparent;color:#173b67}nav a:hover{background:#eef5ff}nav a.active{color:#1c5daa;background:#e4efff;border-bottom-color:#2b6ed0}.admin-pill,.menu{border:1px solid #b7cce7;background:transparent;padding:8px 12px;border-radius:3px;font-size:14px}.admin-pill.on{border-color:#69a0df;color:#1c5daa}.menu{display:none}
main{max-width:1300px;margin:auto;padding:27px 24px 45px}.view{display:none}.view.active{display:block}.section-head{display:flex;justify-content:space-between;align-items:end;gap:20px;margin:0 0 23px}.section-head h2{font-size:30px;line-height:1.3;margin:4px 0 0;letter-spacing:-.5px}.section-head p{margin:0;color:var(--muted);font-size:14px}.eyebrow{color:#1c5daa;font-size:12px;font-weight:750;letter-spacing:1.5px}h2,h3,p{margin-top:0}h3{font-size:18px;margin-bottom:14px}p{color:var(--muted)}.entry-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:22px;align-items:start}.panel{background:var(--card);border:1px solid var(--line);padding:22px;border-radius:5px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}label{display:block;font-size:14px;font-weight:600;color:#173b67;margin-bottom:16px}label>input,label>select,label>textarea{margin-top:7px}.form h3{border-bottom:1px solid var(--line);padding-bottom:10px;display:flex;justify-content:space-between;margin:8px 0 14px}.form h3 small{font-size:13px;font-weight:500;color:#1c5daa}.poke-inputs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:24px}.poke-inputs.support{grid-template-columns:repeat(4,minmax(0,1fr))}.slot{background:#f3f8ff;border:1px solid #cbdcf0;padding:10px;margin:0;border-radius:4px;position:relative}.poke-suggest{display:none;position:absolute;z-index:50;left:10px;right:10px;top:100%;margin-top:4px;background:#fff;border:1px solid #b8cee8;border-radius:6px;box-shadow:0 10px 24px #173b6720;max-height:300px;overflow:auto;padding:4px}.poke-suggest.show{display:block}.poke-suggest-item{width:100%;border:0;background:#fff;display:flex;align-items:center;gap:9px;text-align:left;padding:7px;border-radius:4px;cursor:pointer;color:#173b67}.poke-suggest-item:hover,.poke-suggest-item.active{background:#eaf3ff}.poke-suggest-item img{width:42px;height:42px;object-fit:contain;flex:0 0 42px}.poke-suggest-item span{display:flex;flex-direction:column;min-width:0}.poke-suggest-item b{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.poke-suggest-item small{font-size:11px;color:#6b829d;margin-top:2px}.poke-suggest:empty{display:none}.slot>span{font-size:12px;color:#516d8d}.slot-image{height:64px;display:grid;place-items:center;color:#678bb7;font-size:28px;font-weight:400}.slot-image img{height:64px;width:64px;object-fit:contain}.slot input{padding:8px;font-size:14px;margin-top:4px}.skin-picker{margin-top:7px;padding-top:6px;border-top:1px solid #d7e5f4;display:flex;align-items:center;gap:6px;min-height:30px}.skin-picker>span{font-size:11px;font-weight:700;color:#54708f;white-space:nowrap}.skin-choices{display:flex;gap:4px;flex-wrap:wrap;min-width:0}.skin-choice{border:1px solid #c5d8ec;background:#fff;border-radius:4px;padding:3px 5px;cursor:pointer;display:flex;align-items:center;gap:3px;font-size:10px;color:#365a7e}.skin-choice img{width:28px;height:28px;object-fit:contain}.skin-choice.active{border-color:#2162c6;background:#eaf3ff;color:#145da0;font-weight:700}.skin-choice small{font-size:10px;max-width:55px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.no-skin{font-size:11px;color:#8094aa}.poke-suggest{z-index:60}.slot.filled{border-color:#6da1e3;background:#eaf3ff}.entry-aside{display:grid;gap:16px}.entry-aside .panel{padding:18px}.entry-group{padding:12px 0;border-bottom:1px solid var(--line)}.entry-group:last-child{border:0}.entry-group>div{display:flex;justify-content:space-between;gap:10px;font-size:14px}.entry-group b{border-left:3px solid var(--group);padding-left:8px}.entry-group span{color:var(--muted)}.seats{margin-top:10px;display:flex;gap:5px}.seats i{height:6px;flex:1;background:#dbe8f7}.seats i.taken{background:var(--group)}.rules ul{padding-left:18px;font-size:14px;color:#4b6380;margin:0}.rules li{margin:10px 0}.local-note{font-size:13px;color:#546c86;margin:0;line-height:1.7}.btn{border:1px solid #aec9ea;border-radius:3px;padding:10px 15px;font-weight:700;font-size:14px;display:inline-flex;align-items:center;justify-content:center;background:#e9f2ff;color:#173b67}.btn.primary{background:#2162c6;border-color:#2162c6}.btn.ghost{background:#ffffff;border-color:#afc8e8}.btn.danger{background:#fff4f4;border-color:#e8bfc3;color:#a12835}.btn:hover{filter:brightness(1.15)}.btn.small{padding:5px 8px;font-size:13px}.form-actions{border-top:1px solid var(--line);padding-top:16px;display:flex;justify-content:end;flex-wrap:wrap;gap:10px}.stats{display:flex;gap:28px;flex-wrap:wrap;padding-bottom:17px;margin:15px 0;border-bottom:1px solid var(--line)}.stat{display:flex;gap:9px;align-items:baseline}.stat small{font-size:14px;color:var(--muted)}.stat strong{font-size:21px;color:#1c5daa}.leader-strip{background:#e0eeff;border-left:3px solid #4283d7;padding:12px 16px;display:flex;flex-wrap:wrap;gap:16px}.leader-strip span,.leader-strip small{color:var(--muted)}.toolbar{display:grid;grid-template-columns:1fr 180px 180px;gap:12px;margin:20px 0}.team-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.team-card{background:var(--card);border:1px solid var(--line);border-top:3px solid var(--group);border-radius:4px;padding:16px}.team-top{display:flex;justify-content:space-between;gap:8px;align-items:start}.team-top h3{margin:5px 0;font-size:18px}.meta{font-size:13px;color:var(--muted)}.status{font-size:12px;font-weight:650;background:#e4efff;color:#173b67;border-radius:3px;padding:3px 6px;white-space:nowrap}.status.eliminated,.status.defeated{background:#fff0f1;color:#a12835}.status.winner,.status.champion{background:#e6f3ff;color:#1c5daa}.mini-pokes{display:grid;grid-template-columns:repeat(5,1fr);gap:4px;margin:13px 0}.mini-pokes img{width:100%;aspect-ratio:1;object-fit:contain;background:#edf5ff;border-radius:3px}.score{display:flex;justify-content:space-between;gap:8px;border-top:1px solid var(--line);padding-top:12px;font-size:13px;overflow-wrap:anywhere}.card-tools{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}.race-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.race-group{background:var(--card);border:1px solid var(--line);border-left:4px solid var(--group);padding:20px}.race-group-head{display:flex;justify-content:space-between;align-items:center}.race-row{display:grid;grid-template-columns:1fr auto;gap:15px;padding:13px 0;border-top:1px solid var(--line)}.progress{height:4px;background:#dbe8f7;margin-top:9px}.progress i{height:100%;display:block;background:var(--group)}.bracket-board{display:flex;gap:22px;overflow-x:auto;padding-bottom:20px}.bracket-wrap{overflow-x:auto;padding:10px 4px 22px}.bracket-note{font-size:13px;color:var(--muted);margin-bottom:16px}.bracket-columns{display:grid;grid-template-columns:repeat(4,minmax(220px,1fr));gap:28px;min-width:1000px;align-items:start}.round{min-width:220px;display:flex;flex-direction:column}.round-title{font-size:14px;font-weight:800;border-bottom:2px solid var(--red);padding-bottom:10px;margin-bottom:14px;text-align:center}.bracket-match{position:relative;border:1px solid var(--line);background:var(--card);border-radius:6px;overflow:visible;box-shadow:0 2px 8px #173b6712}.bracket-slot{display:flex;justify-content:space-between;align-items:center;min-height:38px;padding:8px 11px;background:#fff}.bracket-slot+.bracket-slot{border-top:1px solid var(--line)}.bracket-slot.won{background:#e6f3ff;color:#145da0;font-weight:800}.bracket-slot b{font-size:15px}.round .bracket-match{margin-bottom:18px}.round-qf .bracket-match{margin-top:24px;margin-bottom:70px}.round-sf .bracket-match{margin-top:96px;margin-bottom:116px}.round-final .bracket-match{margin-top:210px}.bracket-columns .round:not(:last-child) .bracket-match:after{content:"";position:absolute;right:-29px;top:50%;width:28px;border-top:2px solid #b9cbe0}.round-qf .bracket-match:before,.round-sf .bracket-match:before,.round-final .bracket-match:before{content:"";position:absolute;left:-29px;top:50%;width:28px;border-top:2px solid #b9cbe0}.champion-banner{margin-top:22px;padding:14px;text-align:center;background:#fff8dc;border:1px solid #e7c85b;border-radius:6px;font-weight:900;color:#8a6410}.match{border:1px solid var(--line);background:var(--card);border-radius:3px;margin-bottom:16px;overflow:hidden}.match div{display:flex;justify-content:space-between;padding:12px}.match div+div{border-top:1px solid var(--line)}.match .won{background:#e6f3ff;color:#1c5daa}.history-list{display:grid;gap:12px}.history-item{display:grid;grid-template-columns:140px 1fr auto;gap:20px;align-items:center;background:var(--card);border:1px solid var(--line);padding:20px}.history-battle strong{color:#1c5daa}.reverted{opacity:.6}.code-box{background:#f3f8ff;border:1px dashed #a4c2e9;padding:8px;font-size:14px;overflow-wrap:anywhere}.admin-layout{display:grid;grid-template-columns:1fr 1fr;gap:20px}.danger-zone{grid-column:1/-1;border-color:#e8bfc3}.group-edit{display:flex;gap:8px;margin-bottom:10px}.empty{grid-column:1/-1;border:1px dashed #b4cbe7;background:#f7fbff;padding:35px 20px;color:var(--muted);text-align:center}.empty a{color:#1c5daa;display:block;margin-top:10px}
.modal{position:fixed;inset:0;background:#173b6799;z-index:50;display:grid;place-items:center;padding:18px}.modal-card{background:var(--card);width:min(860px,100%);max-height:90vh;overflow:auto;border:1px solid #b8cee9;border-radius:5px;padding:28px;position:relative}.close{position:absolute;right:8px;top:6px;border:0;background:none;font-size:28px}.lineup-detail{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin:14px 0 24px}.poke-card{background:#f3f8ff;border:1px solid var(--line);border-radius:3px;padding:10px;text-align:center;transition:border-color .15s}.poke-card:hover{border-color:#4283d7}.poke-card img{width:100%;aspect-ratio:1;object-fit:contain}.poke-card strong{display:block;font-size:14px;overflow-wrap:anywhere}.badge{display:inline-block;font-size:12px;background:#deebff;padding:2px 5px;margin-top:5px}.badge.shiny{background:#e0eeff;color:#1c5daa}#preview{margin-top:20px}.form-error{background:#fff1f2;border:1px solid #e9bcc3;color:#a12835;padding:11px;margin:12px 0}#toast{position:fixed;bottom:20px;right:20px;z-index:80;background:#1c4e8d;color:#ffffff;padding:13px 18px;max-width:min(480px,calc(100vw - 40px));opacity:0;pointer-events:none;transition:opacity .15s}#toast.show{opacity:1}.hidden{display:none!important}footer{max-width:1252px;margin:auto;border-top:1px solid var(--line);padding:20px 0;color:#526b87;font-size:13px}
@media(max-width:1150px){header{gap:14px}nav{order:3;flex-basis:100%;justify-content:start}.brand{margin-right:auto}.entry-layout{grid-template-columns:minmax(0,1fr) 250px}.poke-inputs.support{grid-template-columns:1fr 1fr}}
@media(max-width:800px){header{padding:16px}.entry-layout{grid-template-columns:1fr}.entry-aside{grid-template-columns:1fr 1fr}.local-note{grid-column:1/-1}.team-grid{grid-template-columns:1fr 1fr}.race-grid,.admin-layout{grid-template-columns:1fr}.history-item{grid-template-columns:1fr;gap:8px}.toolbar{grid-template-columns:1fr 1fr}.toolbar input{grid-column:1/-1}.lineup-detail{grid-template-columns:repeat(3,1fr)}main{padding:22px 16px}.panel{padding:16px}.section-head{align-items:start;flex-wrap:wrap}.section-head h2{font-size:27px}footer{padding:20px 16px}}
@media(max-width:500px){.form-grid,.team-grid,.entry-aside{grid-template-columns:1fr}.poke-inputs{grid-template-columns:1fr 1fr}.lineup-detail{grid-template-columns:1fr 1fr}.form-actions .btn{flex:1}.race-row{grid-template-columns:1fr}.brand b{font-size:26px}nav a{padding:9px 12px}.section-head p{font-size:14px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* White / blue surfaces; keep high contrast in every state. */
body{background:linear-gradient(180deg,#e4f0ff 0,#f6faff 420px,#edf5ff 100%);min-height:100vh}
header{box-shadow:0 2px 8px #154e8910}.brand b{text-shadow:none;color:#1f61b8}.brand small{color:#4c6e98}
.section-head h2{color:#173b67}.panel,.team-card,.race-group,.match,.history-item{box-shadow:0 3px 12px #1b528909;border-radius:8px}
.panel{border-top:3px solid #77a7e6}.slot{border-radius:6px}.slot input{color:#173b67}.slot.filled{box-shadow:inset 0 2px #9cbfee}
.btn{color:#174c8e;border-radius:5px}.btn.primary{color:#ffffff;background:#2162c6}.btn.primary:hover{background:#194fa5;filter:none}.btn.ghost:hover{background:#e9f2ff;filter:none}.btn.danger{color:#a12835}.admin-pill{color:#1d5bab;background:#f1f7ff}
nav a{color:#345a87}nav a.active{color:#174f9a;background:#e4efff}.status,.badge{color:#235692}.status.winner,.status.champion{color:#175a93}.status.eliminated,.status.defeated{color:#a12835}.match .won{color:#19538e}
.poke-card{border-radius:6px}.leader-strip{border-radius:5px}.form-error{color:#a12835}#toast{color:#ffffff;box-shadow:0 5px 20px #16457420}.close{color:#345a87}
@font-face{font-family:GameFont;src:url('img/game_font.ttf') format('truetype');font-display:swap}
.brand{min-width:150px;display:flex;align-items:center;justify-content:center}
.brand img{display:block;width:105px;height:58px;object-fit:contain}
@media(max-width:800px){.brand{min-width:120px}.brand img{width:90px;height:52px}}

body{font-family:GameFont,'Segoe UI',Arial,sans-serif}.brand img{image-rendering:auto}
