:root{padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);color-scheme:light}body{margin:0;font:14px system-ui,-apple-system,Segoe UI,sans-serif}img{max-width:100%}[hidden]{display:none!important}:root{--bg:#f6f5fb;--surface:#ffffff;--head:#e4ddf3;--head-strong:#5b3f99;--line:#d6d0e6;--fg:#1f1a2e;--muted:#6d6680;--gold:#f1c232;--gold-soft:#ffefb0;--input:#fff7d6;--input-line:#e8cf6b;--danger:#b3261e;--ok:#2e7d4f;--display:"Barlow Condensed","Arial Narrow",system-ui,sans-serif;--body:"Barlow",system-ui,-apple-system,"Segoe UI",sans-serif;--flag:"Noto Color Emoji","Apple Color Emoji","Segoe UI Emoji",sans-serif}:root,:root[data-theme=dark]{color-scheme:only light}*{box-sizing:border-box}body{background:var(--bg);color:var(--fg);font-family:var(--body);font-size:14px}.wrap{padding-inline:16px;padding-block:0 40px;max-width:1500px;margin:0 auto}header.bar{position:sticky;top:env(safe-area-inset-top,0px);z-index:5;background:var(--bg);border-bottom:2px solid var(--head-strong);display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;padding-block:12px}h1{font-family:var(--display);font-weight:700;font-size:28px;letter-spacing:.01em;margin:0;text-wrap:balance;flex:1 1 220px;min-width:0}h1 small{display:block;font-family:var(--body);font-weight:500;font-size:12px;color:var(--muted);letter-spacing:.06em;text-transform:uppercase}.tabs{display:flex;gap:4px;background:var(--head);padding:3px;border-radius:8px}.tabs button{white-space:nowrap;border:0;background:transparent;color:var(--fg);font:600 14px var(--body);padding:7px 14px;border-radius:6px;cursor:pointer}.tabs button[aria-pressed=true]{background:var(--surface);color:var(--head-strong);box-shadow:0 1px 2px #0000001f}.status{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:6px}.status i{width:8px;height:8px;border-radius:50%;background:var(--muted);display:inline-block}.status.ok i{background:var(--ok)}.status.busy i{background:var(--gold)}.status.err i{background:var(--danger)}.banner{margin-top:12px;padding:10px 12px;border-radius:8px;background:var(--head);font-size:13px}h2{font-family:var(--display);font-weight:700;font-size:20px;letter-spacing:.04em;text-transform:uppercase;color:var(--head-strong);margin:26px 0 10px}button:focus-visible,input:focus-visible{outline:2px solid var(--head-strong);outline-offset:1px}.stage{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,440px);gap:20px;align-items:start}@media(max-width:1100px){.stage{grid-template-columns:minmax(0,1fr)}}.groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,500px),1fr));gap:22px}.groups .card{border:3px solid var(--head-strong);border-radius:12px;box-shadow:0 2px 6px color-mix(in srgb,var(--head-strong) 18%,transparent)}.groups .card-h{border-bottom:2px solid var(--head-strong);font-size:18px}.groups .tblwrap{border-top:2px solid var(--head-strong)}.card{background:var(--surface);border:1px solid var(--line);border-radius:10px;overflow:hidden;min-width:0}.card-h{background:var(--head);font-family:var(--display);font-weight:700;font-size:17px;letter-spacing:.06em;padding:6px 12px;display:flex;justify-content:space-between;align-items:center}.card-h span{font-family:var(--body);font-size:12px;font-weight:500;letter-spacing:0;color:var(--muted)}.card-h .done{color:var(--ok)}.games{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border-bottom:1px solid var(--line)}@media(max-width:520px){.games{grid-template-columns:1fr}}.game{background:var(--surface);display:grid;grid-template-columns:26px 1fr;align-items:stretch}.gno{display:grid;place-items:center;background:var(--head);font:700 13px var(--display);color:var(--muted)}.side{display:grid;grid-template-columns:auto minmax(0,1fr) 46px;align-items:center;gap:6px;padding:3px 6px;min-height:30px}.side+.side{border-top:1px dashed var(--line)}.side.win{background:var(--gold-soft);font-weight:600}.flags{font-family:var(--flag);font-size:15px;letter-spacing:1px;white-space:nowrap;min-width:38px}.tname{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tname.tbd{color:var(--muted);font-style:italic}.score{width:44px;height:26px;text-align:center;font:600 15px var(--display);font-variant-numeric:tabular-nums;border:1px solid var(--input-line);background:var(--input);color:var(--fg);border-radius:4px;padding:0}.score[readonly]{background:transparent;border-color:transparent}.score::-webkit-inner-spin-button{display:none}table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}th{font:600 11px var(--body);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);text-align:center;padding:6px 4px;border-bottom:1px solid var(--line)}td{padding:5px 4px;text-align:center;border-bottom:1px solid var(--line)}tr:last-child td{border-bottom:0}td.l,th.l{text-align:left}td.rk{font-family:var(--display);font-weight:700;color:var(--muted);width:28px}tr.q td{background:color-mix(in srgb,var(--gold-soft) 55%,transparent)}tr.q td.tm{font-weight:600}td.tm{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.neg{color:var(--danger)}.tblwrap{overflow-x:auto}.legend{font-size:12px;color:var(--muted);margin-top:8px}.legend b{display:inline-block;width:12px;height:12px;background:var(--gold-soft);border:1px solid var(--gold);vertical-align:-2px;margin-right:4px}.bracket-wrap{overflow-x:auto;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:14px}.bracket{display:grid;grid-template-columns:repeat(4,250px) 220px;gap:0 34px;min-width:max-content}.round{display:flex;flex-direction:column}.round h3{font:700 14px var(--display);letter-spacing:.08em;text-transform:uppercase;color:var(--head-strong);margin:0 0 8px}.rmatches{display:flex;flex-direction:column;justify-content:space-around;flex:1;gap:14px}.km{position:relative;border:1px solid var(--line);border-radius:6px;background:var(--surface)}.km .side{grid-template-columns:40px auto minmax(0,1fr) 46px}.slot{font:700 11px var(--display);white-space:nowrap;background:var(--head);color:var(--muted);border-radius:3px;text-align:center;padding:2px 0}.round:not(:last-child) .km:after{content:"";position:absolute;right:-18px;top:50%;width:18px;border-top:2px solid var(--gold)}.km .note{font-size:11px;color:var(--danger);padding:2px 8px}.final-col{display:flex;flex-direction:column;justify-content:center;gap:28px}.champ{border:2px solid var(--gold);background:var(--gold-soft);border-radius:10px;padding:14px;text-align:center}.champ .lbl{font:700 12px var(--display);letter-spacing:.12em;color:var(--muted)}.champ .who{font:700 22px var(--display);margin-top:4px}.champ .flags{font-size:26px;display:block;margin-top:4px}.third h3{margin-top:0}.setup{display:grid;gap:16px}.field{display:grid;gap:4px;max-width:420px}.field label,.lab{font:600 12px var(--body);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.txt{height:34px;border:1px solid var(--input-line);background:var(--input);color:var(--fg);border-radius:6px;padding:0 10px;font:500 14px var(--body);width:100%;min-width:0}.txt.code{width:64px;text-transform:lowercase;text-align:center}.txt.bad{border-color:var(--danger)}.txt[readonly]{background:transparent}.setup-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,460px),1fr));gap:16px}.tblock{padding:10px 12px;border-bottom:1px solid var(--line);display:grid;gap:6px}.tblock:last-child{border-bottom:0}.tb-h{display:flex;align-items:center;gap:8px;min-width:0}.tb-name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tb-name i{font-weight:400;color:var(--muted)}.prow{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(0,1.1fr);gap:8px;align-items:center}.prow .lab{white-space:nowrap;min-width:64px}.ccw{position:relative;min-width:0}.ccw .ccf{position:absolute;left:9px;top:50%;transform:translateY(-50%);font-family:var(--flag);font-size:16px;pointer-events:none}.ccw .txt{padding-left:34px;text-overflow:ellipsis}.ccw:after{content:"\25be";position:absolute;right:10px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none;font-size:12px}.ccw .txt[readonly]{padding-right:10px}.ccpop{position:fixed;z-index:40;background:var(--surface);color:var(--fg);border:1px solid var(--head-strong);border-radius:8px;box-shadow:0 8px 24px #0000002e;overflow-y:auto;overscroll-behavior:contain;padding:4px}.cco{display:grid;grid-template-columns:26px 1fr auto;gap:8px;align-items:center;padding:7px 8px;border-radius:6px;cursor:pointer;font-size:14px}.cco .f{font-family:var(--flag);font-size:17px}.cco .cd{font:600 11px var(--body);color:var(--muted);letter-spacing:.04em}.cco.on,.cco:hover{background:var(--head)}.ccnone{padding:10px;color:var(--muted);font-size:13px}@media(max-width:520px){.prow{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.prow .lab{grid-column:1/-1}}.trow{display:grid;grid-template-columns:34px minmax(0,1fr) 64px 64px 44px;gap:8px;align-items:center;padding:6px 10px;border-bottom:1px solid var(--line)}.trow:last-child{border-bottom:0}.trow.h{padding-block:6px 4px}.seed{font:700 15px var(--display);color:var(--head-strong)}.help{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:12px 16px;line-height:1.55;max-width:75ch}.help ol{margin:6px 0 0;padding-left:20px}.actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.btn{height:34px;padding:0 14px;border-radius:6px;border:1px solid var(--line);background:var(--surface);color:var(--fg);font:600 13px var(--body);cursor:pointer}.btn.primary{background:var(--head-strong);border-color:var(--head-strong);color:var(--surface)}.btn.danger{color:var(--danger);border-color:var(--danger)}.confirm{display:flex;gap:8px;align-items:center;font-size:13px}.toast{position:fixed;left:50%;bottom:calc(16px + env(safe-area-inset-bottom,0px));transform:translate(-50%);background:var(--fg);color:var(--bg);padding:9px 14px;border-radius:8px;font-size:13px;z-index:20;max-width:calc(100% - 32px)}.empty{padding:40px 0;color:var(--muted);text-align:center}body.board-mode,html:has(body.board-mode){height:100%}body.board-mode .wrap{max-width:none;height:100%;display:flex;flex-direction:column;padding-block:0 6px}body.board-mode header.bar{position:static;padding-block:8px}body.board-mode #app{flex:1;min-height:0;display:flex;flex-direction:column}.stagebar{display:flex;align-items:center;gap:6px;padding-block:8px;flex-wrap:wrap}.stagebar .stg{height:34px;padding:0 14px;border:1px solid var(--line);background:var(--surface);color:var(--fg);border-radius:17px;font:600 14px var(--body);cursor:pointer;white-space:nowrap;touch-action:manipulation}.stagebar .stg[aria-current=true]{background:var(--head-strong);border-color:var(--head-strong);color:var(--surface)}.stagebar .arw{width:40px;height:34px;border-radius:17px;border:1px solid var(--head-strong);background:var(--surface);color:var(--head-strong);font:700 18px var(--body);cursor:pointer}.stagebar .arw:disabled{opacity:.35;cursor:default}.stagebar .stg .ck{color:var(--ok);margin-left:4px}.stagebar .stg[aria-current=true] .ck{color:var(--gold)}.stagebar .spacer{flex:1}.follow{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--muted);white-space:nowrap}.follow input{width:18px;height:18px;accent-color:var(--head-strong)}.board{flex:1;min-height:0;overflow:auto;border-top:2px solid var(--fg);border-bottom:2px solid var(--fg);background:var(--bg);cursor:grab;overscroll-behavior-x:contain;overscroll-behavior-y:auto;scroll-behavior:auto;-webkit-overflow-scrolling:touch}.board.dragging{cursor:grabbing;user-select:none}.board-in{display:flex;align-items:stretch;width:max-content;min-height:100%}.bcol{display:flex;flex-direction:column;padding:0 18px 14px;border-right:2px solid var(--fg)}.bcol.nb{border-right:0;padding-right:32px}.bcol.br{padding-right:34px}.colh{position:sticky;top:0;z-index:2;background:var(--bg);font:700 15px var(--display);letter-spacing:.08em;text-transform:uppercase;color:var(--head-strong);padding:8px 0;margin-bottom:6px;border-bottom:1px solid var(--line)}.gstack{display:flex;flex-direction:column;gap:16px}.gblock{display:grid;grid-template-columns:500px 410px;gap:0;background:var(--surface);border:3px solid var(--head-strong);border-radius:10px;overflow:hidden;box-shadow:0 2px 6px color-mix(in srgb,var(--head-strong) 18%,transparent)}.board .games{grid-template-columns:1fr 1fr;border-bottom:0;border-right:2px solid var(--head-strong)}.board .side{min-height:27px;padding:2px 6px;gap:5px;grid-template-columns:auto minmax(0,1fr) 40px;font-size:13px}.board .score{width:38px;height:23px;font-size:15px}.board .gno{font-size:14px}.board .flags{font-size:14px;min-width:34px}.gt-h{background:var(--head);border-bottom:2px solid var(--head-strong);font:700 16px var(--display);letter-spacing:.08em;padding:4px 10px;display:flex;justify-content:space-between;align-items:center}.gt-h span{font:500 12px var(--body);letter-spacing:0;color:var(--muted)}.gt-h span.done{color:var(--ok)}.board td,.board th{padding:4px;font-size:13px}.board th{font-size:11px;padding:4px}.board .xs{display:table-cell}.board td.tm{max-width:170px}.rankcard{width:470px;background:var(--surface);border:3px solid var(--head-strong);border-radius:10px;overflow:hidden}.rankcard .gt-h{justify-content:center}.nations{width:470px;margin-top:16px;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:10px 12px}.nations h4{margin:0 0 8px;font:700 14px var(--display);letter-spacing:.08em;text-transform:uppercase;color:var(--head-strong);display:flex;justify-content:space-between}.nations h4 span{font:500 12px var(--body);letter-spacing:0;color:var(--muted);text-transform:none}.nat{display:grid;grid-template-columns:24px minmax(0,130px) 1fr 22px;gap:8px;align-items:center;font-size:13px;padding:2px 0}.nat .f{font-family:var(--flag);font-size:16px}.nat .n{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nat .bar{height:10px;border-radius:5px;background:var(--head)}.nat .bar i{display:block;height:100%;border-radius:5px;background:var(--head-strong)}.nat .c{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}.kcol{width:300px}.kbody{flex:1;display:flex;flex-direction:column}.pair{flex:1;display:flex;flex-direction:column;justify-content:space-around;position:relative;padding-block:6px}.board .km{border:1px solid var(--line);border-radius:6px;background:var(--surface);position:relative;z-index:1}.board .km .side{grid-template-columns:38px auto minmax(0,1fr) 40px}.pair:after{content:"";position:absolute;right:-17px;top:calc(25% + 1px);bottom:calc(25% + 1px);width:17px;border:2px solid var(--gold);border-left:0;border-radius:0 4px 4px 0}.pair:before{content:"";position:absolute;right:-50px;top:50%;width:34px;border-top:2px solid var(--gold)}.pair.single{justify-content:center}.pair.single:after,.pair.single:before{display:none}.fbody{flex:1;display:flex;flex-direction:column}.fbody .top{flex:1;display:flex;flex-direction:column;justify-content:flex-end;padding-bottom:22px}.fbody .bot{flex:1;padding-top:26px}.fbody .lbl3{font:700 13px var(--display);letter-spacing:.08em;text-transform:uppercase;color:var(--head-strong);margin-bottom:6px}.board .champ{padding:12px}.board .champ .who{font-size:24px}@media(prefers-reduced-motion:reduce){.board{scroll-behavior:auto}}@media(max-height:600px){body.board-mode,html:has(body.board-mode){height:auto}body.board-mode .wrap{height:auto;display:block}body.board-mode #app{display:block}.board{overflow-x:auto;overflow-y:hidden;cursor:auto;overscroll-behavior:auto;touch-action:pan-x pan-y}.board-in{min-height:0}.colh{position:static}}@media(max-height:560px){body.board-mode header.bar{padding-block:4px;gap:4px 10px;flex-wrap:nowrap}body.board-mode h1{font-size:18px;flex:1 1 auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}body.board-mode h1 small{display:none}body.board-mode .tabs button{padding:5px 10px;font-size:13px}body.board-mode .status span{display:none}body.board-mode .banner{margin-top:4px;padding:5px 10px;font-size:12px}.stagebar{flex-wrap:nowrap;overflow-x:auto;padding-block:5px;scrollbar-width:none}.stagebar .stg{height:30px;padding:0 10px;font-size:13px}.stagebar .arw{height:30px;width:34px;flex:none}.stagebar .follow{display:none}}.mnav,.gpick,.rpick{display:none}@media(max-width:1099px){header.bar{gap:6px 12px}.tabs button{padding:9px 14px}.mnav{display:flex;position:sticky;top:calc(env(safe-area-inset-top,0px) + var(--hdr,96px));z-index:4;background:var(--bg);gap:8px;padding-block:8px;border-bottom:1px solid var(--line);margin-inline:-16px;padding-inline:16px}.mnav button,.gpick button,.rpick button{flex:1;height:40px;border:1px solid var(--line);background:var(--surface);color:var(--fg);border-radius:20px;font:600 15px var(--body);cursor:pointer;white-space:nowrap;padding:0 8px;touch-action:manipulation}.mnav button[aria-pressed=true],.gpick button[aria-pressed=true],.rpick button[aria-pressed=true]{background:var(--head-strong);border-color:var(--head-strong);color:var(--surface)}.rpick{display:flex;gap:8px;margin-bottom:12px;max-width:640px}.gpick button,.rpick button{height:36px;font-size:14px;border-radius:8px}.dash section[data-sec]{display:none}.dash.m-groups section[data-sec=groups],.dash.m-ranking section[data-sec=ranking],.dash.m-ko section[data-sec=ko]{display:block}.dash .stage{display:block}.dash section[data-sec=ranking] .card{max-width:760px}.side{min-height:40px}.score{width:50px;height:34px;font-size:18px}.side{grid-template-columns:auto minmax(0,1fr) 52px}.km .side{grid-template-columns:44px auto minmax(0,1fr) 52px}.txt{font-size:16px;height:40px}.bracket-wrap{overflow:visible;background:transparent;border:0;padding:0}.bracket{display:block;min-width:0}.bracket .round,.bracket .final-col{display:none}.kr-0 .r1,.kr-1 .r2,.kr-2 .r3,.kr-3 .r4{display:flex}.kr-3 .final-col{margin-top:16px;gap:16px}.round h3{display:none}.rmatches{gap:10px}.round:not(:last-child) .km:after{display:none}.km{border-radius:8px}}@media(min-width:760px)and (max-width:1099px){.groups{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.games{grid-template-columns:1fr}.rmatches{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.kr-2 .rmatches,.kr-3 .rmatches{grid-template-columns:minmax(0,1fr);max-width:480px}.kr-3 .final-col{max-width:480px}.groups .xs{display:none}}@media(max-width:759px){.wrap{padding-inline:12px}header.bar{padding-block:8px;gap:6px 10px}h1{font-size:22px;flex-basis:100%}.tabs{flex:1}.tabs button{flex:1;padding:8px 6px}.status{font-size:11px}h2{font-size:17px;margin:14px 0 8px}.mnav{margin-inline:-12px;padding-inline:12px;gap:6px}.mnav button{height:38px;font-size:14px}.gpick,.rpick{display:flex;gap:6px;margin-bottom:10px}.gpick button,.rpick button{height:34px;font-size:13px}.groups .card{display:none}.groups .card.on{display:block}.games{grid-template-columns:1fr}.side{min-height:42px;padding:4px 8px}.xs{display:none}td,th{padding:7px 3px}td.tm{max-width:none}.trow{grid-template-columns:30px minmax(0,1fr) 54px 54px 36px;gap:6px;padding:6px 8px}.txt.code{width:54px;padding:0 4px}}@media(max-height:520px)and (max-width:1099px){header.bar{position:static}h1{font-size:20px;flex-basis:auto}h1 small{display:none}.mnav{top:env(safe-area-inset-top,0px)}}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}@media(prefers-reduced-motion:no-preference){.side.win{transition:background .25s}}.authbtn{height:34px;padding:0 12px;border-radius:6px;border:1px solid var(--head-strong);background:var(--surface);color:var(--head-strong);font:600 13px var(--body);cursor:pointer;white-space:nowrap}.modal{position:fixed;inset:0;z-index:30;background:color-mix(in srgb,#000 45%,transparent);display:grid;place-items:center;padding:16px}.modal form{background:var(--surface);color:var(--fg);border-radius:12px;border:2px solid var(--head-strong);padding:20px;width:min(380px,100%);display:grid;gap:12px}.modal h3{margin:0;font:700 22px var(--display);color:var(--head-strong)}.modal p{margin:0;font-size:13px;color:var(--muted)}.modal .err{color:var(--danger);font-size:13px;min-height:1em}.modal .row{display:flex;gap:8px;justify-content:flex-end}.tipbox{background:var(--surface);color:var(--fg);border-radius:12px;border:2px solid var(--head-strong);padding:20px;width:min(380px,100%);display:grid;gap:10px}.tipbox h3{margin:0;font:700 22px var(--display);color:var(--head-strong)}.tipbox ol{margin:0;padding-left:20px;line-height:1.6}#b-install{border-color:var(--gold);background:var(--gold-soft);color:var(--fg)}@media(max-height:560px){body.board-mode .authbtn{height:28px;font-size:12px;padding:0 8px}}.board{touch-action:pan-x pan-y}.zoomctl{display:flex;align-items:center;gap:4px;flex:none}.zoomctl button{width:34px;height:34px;border-radius:17px;border:1px solid var(--head-strong);background:var(--surface);color:var(--head-strong);font:700 18px var(--body);cursor:pointer;touch-action:manipulation}.zoomctl .zpct{width:auto;min-width:54px;padding:0 8px;font:600 13px var(--body);border-color:var(--line);color:var(--fg)}@media(max-height:560px){.zoomctl button{width:30px;height:30px;font-size:16px}.zoomctl .zpct{min-width:48px;font-size:12px}}
