:root{
  --accent:#1769e0;--accent2:#0f5bd2;--navy:#10213b;--text:#17243a;--muted:#66758a;
  --bg:#f4f7fb;--card:#fff;--line:#dfe6f0;--soft:#eef3f9;--green:#169653;--green-bg:#eaf8f0;
  --blue:#1769e0;--blue-bg:#eaf2ff;--amber:#d97706;--amber-bg:#fff5e6;--red:#d92d20;--red-bg:#fff0ef;
  --purple:#6d46d9;--purple-bg:#f1edff;--shadow:0 8px 24px rgba(31,55,91,.08);--radius:14px;
}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
html,body{width:100%;max-width:100%;overflow-x:hidden;-webkit-text-size-adjust:100%}
body{font-family:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;background:var(--bg);color:var(--text);line-height:1.45;font-size:14px}
button,a,input,select,textarea{font:inherit;touch-action:manipulation}input,select,textarea{font-size:16px!important}
button{cursor:pointer}.hidden{display:none!important}.muted{color:var(--muted)}.nowrap{white-space:nowrap}.danger-text{color:var(--red)}
.app-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.97);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.app-header-in{min-height:66px;max-width:1440px;margin:auto;padding:9px 20px;display:flex;align-items:center;gap:14px}
.brand-mark{width:34px;height:34px;border-radius:10px;background:var(--accent);color:#fff;display:grid;place-items:center;font-weight:900}
.app-title{font-weight:900;font-size:15px}.app-sub{font-size:11px;color:var(--muted);margin-top:2px}.header-spacer{flex:1}
.header-btn{min-height:40px;padding:8px 13px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--text);font-size:12px;font-weight:800;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:5px}
.header-btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.header-btn.danger{color:var(--red);border-color:#f1b7b3}
.page{max-width:1440px;margin:0 auto;padding:16px 20px 94px}.page.slim{max-width:1180px}.section{margin-bottom:16px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.card.pad{padding:16px}
.section-title{font-size:16px;font-weight:900;display:flex;align-items:center;gap:8px}.section-sub{font-size:11px;color:var(--muted);margin-top:3px}
.top-stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:12px}.stat{background:#fff;border:1px solid var(--line);border-radius:12px;padding:11px 13px;min-height:70px}.stat-label{font-size:10px;color:var(--muted);font-weight:800}.stat-value{font-size:24px;font-weight:950;margin-top:3px}.stat.green .stat-value{color:var(--green)}.stat.blue .stat-value{color:var(--blue)}.stat.amber .stat-value{color:var(--amber)}
.stage-bar{position:fixed;left:0;right:0;bottom:0;z-index:45;background:rgba(255,255,255,.98);border-top:1px solid var(--line);padding:8px max(12px,env(safe-area-inset-left)) calc(8px + env(safe-area-inset-bottom));box-shadow:0 -8px 24px rgba(31,55,91,.07)}
.stage-inner{max-width:1440px;margin:auto;display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.stage-item{min-height:42px;border-radius:9px;background:#f0f3f7;color:#99a5b5;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:900}.stage-item.done{background:#eaf8f0;color:var(--green)}.stage-item.current{background:var(--purple-bg);color:var(--purple);outline:1.5px solid #c7b8ff}
.badge{display:inline-flex;align-items:center;gap:4px;border-radius:999px;padding:4px 8px;font-size:10px;font-weight:900}.badge.empty{background:var(--green-bg);color:var(--green)}.badge.called{background:var(--amber-bg);color:var(--amber)}.badge.playing{background:var(--blue-bg);color:var(--blue)}.badge.done{background:#edf1f5;color:#607084}.badge.qual{background:var(--purple-bg);color:var(--purple)}
.btn{min-height:42px;border-radius:10px;border:1px solid var(--line);padding:9px 14px;background:#fff;color:var(--text);font-weight:900;font-size:12px}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.green{background:var(--green);border-color:var(--green);color:#fff}.btn.amber{background:var(--amber);border-color:var(--amber);color:#fff}.btn.danger{background:#fff;border-color:#efb2ad;color:var(--red)}.btn.ghost{background:#f6f8fb}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-row{display:flex;gap:8px;flex-wrap:wrap}.btn-row.end{justify-content:flex-end}
.input,.select{width:100%;min-height:44px;border:1.5px solid var(--line);border-radius:10px;background:#fff;padding:9px 11px;color:var(--text)}.input:focus,.select:focus{outline:none;border-color:#94b6ee;box-shadow:0 0 0 3px #e8f1ff}.label{font-size:10px;font-weight:900;color:var(--muted);margin-bottom:5px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.notice{padding:11px 13px;border-radius:10px;background:#f5f8fc;border:1px solid var(--line);font-size:12px}.notice.warn{background:#fff8ea;border-color:#f2d69b}.notice.ok{background:#edf9f2;border-color:#b9e2c9}.notice.error{background:#fff0ef;border-color:#f3b9b4;color:#9f1d16}
/* reception */
.reception-head{display:flex;align-items:center;gap:10px;margin-bottom:12px}.search-wrap{flex:1}.reception-columns{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:start}.bucket{background:#fff;border:1px solid var(--line);border-radius:14px;padding:13px;min-height:280px}.bucket-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;font-weight:900}.people-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:8px}.person-tile{min-height:58px;padding:9px 10px;border:1.5px solid var(--line);border-radius:10px;background:#fff;text-align:left}.person-tile:hover{border-color:#9bb9e8}.person-name{font-weight:900;font-size:13px}.person-meta{font-size:10px;color:var(--muted);margin-top:3px;display:flex;gap:7px;flex-wrap:wrap}.person-tile.role-guest{background:#fff4e8;border-color:#f2c18b}.person-tile.role-player,.person-tile.role-staff{background:#edf5ff;border-color:#b8d0f2}.person-tile.checked{background:#edf9f2;border-color:#a8d9bd}.person-tile.provisional{background:#fff9db;border-color:#eed98b}
.csv-panel{margin-top:14px;padding:14px}.reconcile-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:12px}.reconcile-list{max-height:360px;overflow:auto;border:1px solid var(--line);border-radius:10px}.reconcile-row{display:grid;grid-template-columns:minmax(100px,1fr) 70px minmax(140px,1.2fr);gap:8px;padding:9px 10px;border-bottom:1px solid #edf1f6;align-items:center;font-size:11px}.reconcile-row:last-child{border-bottom:none}.match-good{color:var(--green);font-weight:900}.match-warn{color:var(--amber);font-weight:900}
/* setup */
.setup-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(310px,.6fr);gap:14px}.team-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:9px}.team-tile{border:1px solid var(--line);background:#fff;border-radius:11px;padding:10px}.team-name{font-weight:900;font-size:13px}.team-members{font-size:11px;color:#435268;margin-top:4px}.team-tags{display:flex;gap:5px;flex-wrap:wrap;margin-top:6px}.mini-tag{padding:2px 6px;border-radius:6px;background:#f0f3f7;color:#5f6c7c;font-size:9px;font-weight:800}.mini-tag.guest{background:#fff1dd;color:#a15b00}.mini-tag.player{background:#e9f2ff;color:#175daf}
.group-preview{display:flex;gap:10px;overflow-x:auto;padding:4px 2px 10px;scroll-snap-type:x proximity}.group-card{min-width:240px;flex:0 0 240px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:11px;scroll-snap-align:start}.group-title{display:flex;justify-content:space-between;align-items:center;font-weight:900;margin-bottom:8px}.group-team{font-size:11px;padding:7px 8px;border-radius:8px;background:#f6f8fb;margin-bottom:5px;display:flex;justify-content:space-between;gap:8px}.quality-list{display:grid;gap:7px}.quality-row{display:flex;justify-content:space-between;gap:12px;font-size:11px}.quality-good{color:var(--green);font-weight:900}.quality-warn{color:var(--amber);font-weight:900}
/* progress + control */
.progress-strip{display:flex;gap:9px;overflow-x:auto;scrollbar-width:none;padding:1px 1px 7px}.progress-strip::-webkit-scrollbar{display:none}.progress-card{min-width:160px;flex:0 0 160px;padding:10px 11px;background:#fff;border:1px solid var(--line);border-radius:11px;text-align:left}.progress-card strong{font-size:12px}.progress-meta{font-size:10px;color:var(--muted);margin-top:4px}.progress-bar{height:6px;background:#e9edf3;border-radius:999px;overflow:hidden;margin-top:7px}.progress-bar>i{display:block;height:100%;background:var(--accent);border-radius:999px}
.table-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.table-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:13px;min-height:250px;box-shadow:var(--shadow);display:flex;flex-direction:column}.table-top{display:flex;align-items:center;gap:8px;margin-bottom:9px}.table-no{font-size:19px;font-weight:950}.table-machine{font-size:10px;color:var(--muted)}.candidate-list{display:grid;gap:6px;flex:1}.candidate{border:1.5px solid var(--line);background:#fff;border-radius:9px;padding:8px 9px;text-align:left}.candidate.selected{border-color:var(--green);background:var(--green-bg);box-shadow:0 0 0 2px rgba(22,150,83,.08)}.cand-kicker{font-size:9px;color:var(--muted);font-weight:800}.cand-teams{font-size:11px;font-weight:900;margin-top:3px;line-height:1.45}.table-action{margin-top:9px;width:100%}.match-block{flex:1;border:1px solid #d7e2f4;background:#f9fbff;border-radius:10px;padding:12px;display:flex;flex-direction:column;justify-content:center;text-align:center}.match-phase{font-size:10px;color:var(--muted);font-weight:800}.match-teams{font-size:14px;font-weight:900;line-height:1.6;margin-top:6px}.match-vs{font-size:10px;color:var(--muted)}.match-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:10px}.match-actions.single{grid-template-columns:1fr}
/* qualifier/repechage */
.qualifier-grid{display:flex;gap:10px;overflow-x:auto;padding-bottom:8px}.qual-card{min-width:220px;flex:0 0 220px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px}.rank-row{display:grid;grid-template-columns:26px 1fr auto;gap:7px;align-items:center;padding:7px 0;border-bottom:1px solid #edf1f5;font-size:11px}.rank-row:last-child{border-bottom:none}.rank-row.qualifier{font-weight:900;color:#4f35af}.repechage-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(330px,.65fr);gap:14px}.rep-group-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.rep-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px}.rep-team-row{display:grid;grid-template-columns:1fr 100px;gap:8px;align-items:center;padding:6px 0;border-bottom:1px solid #edf1f6}.rep-team-row:last-child{border-bottom:none}.ranking{background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden}.ranking-row{display:grid;grid-template-columns:34px 1fr 75px;gap:8px;padding:9px 11px;border-bottom:1px solid #edf1f6;font-size:11px}.ranking-row.cut{border-bottom:2px dashed #b497ff}.ranking-row:last-child{border-bottom:none}.ranking-row strong{font-size:13px}
/* bracket */
.bracket-wrap{overflow-x:auto;padding:5px 2px 12px}.bracket{display:flex;gap:20px;min-width:max-content}.round-col{width:230px}.round-title{font-size:11px;font-weight:900;color:var(--muted);margin-bottom:8px;text-align:center}.bracket-match{background:#fff;border:1px solid var(--line);border-radius:10px;padding:8px 10px;margin:8px 0;min-height:72px}.bm-team{display:flex;justify-content:space-between;gap:8px;font-size:11px;padding:3px 0}.bm-team.winner{font-weight:900;color:var(--accent)}.bm-score{font-weight:900}.bracket-note{font-size:10px;color:var(--muted);text-align:center;margin-top:4px}
/* viewer */
.viewer-shell{max-width:720px;margin:0 auto;padding:14px 14px 80px}.viewer-hero{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden}.viewer-flyer{height:180px;background:#eaf0f8;overflow:hidden}.viewer-flyer img{width:100%;height:100%;object-fit:cover;display:block}.viewer-hero-body{padding:16px}.viewer-title{font-size:20px;font-weight:950}.viewer-store{font-size:11px;color:var(--muted);margin-top:2px}.viewer-choice{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}.viewer-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px;margin-top:10px}.viewer-call{border:2px solid var(--amber);background:#fff8ed;text-align:center}.viewer-call .table-big{font-size:34px;font-weight:950;color:var(--amber)}.viewer-match{font-size:15px;font-weight:900;line-height:1.6;margin-top:6px}.viewer-status-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.viewer-mini{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px}.viewer-mini b{font-size:16px;display:block;margin-top:2px}.viewer-tabs{display:flex;gap:6px;overflow-x:auto;margin-top:10px}.viewer-tab{border:1px solid var(--line);background:#fff;border-radius:999px;padding:7px 11px;font-size:10px;font-weight:900;white-space:nowrap}.viewer-tab.active{background:var(--accent);border-color:var(--accent);color:#fff}.viewer-robin-table{width:100%;border-collapse:collapse;font-size:10px;margin-top:8px}.viewer-robin-table th,.viewer-robin-table td{padding:7px 5px;border-bottom:1px solid #edf1f5;text-align:center}.viewer-robin-table th:nth-child(2),.viewer-robin-table td:nth-child(2){text-align:left}.viewer-robin-table tr.mine{background:#eef5ff;font-weight:900}
/* modal/toast */
.modal{position:fixed;inset:0;z-index:100;background:rgba(15,27,45,.48);display:flex;align-items:center;justify-content:center;padding:18px}.modal-box{width:min(640px,100%);max-height:88vh;overflow:auto;background:#fff;border-radius:16px;border:1px solid var(--line);box-shadow:0 24px 70px rgba(15,27,45,.26);padding:16px}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.modal-title{font-size:16px;font-weight:950}.modal-close{width:38px;height:38px;border:1px solid var(--line);border-radius:10px;background:#fff;font-weight:900}.toast{position:fixed;left:50%;bottom:84px;z-index:130;transform:translateX(-50%);background:#10213b;color:#fff;border-radius:999px;padding:10px 16px;font-size:11px;font-weight:800;box-shadow:0 10px 30px rgba(0,0,0,.2)}
.loader{position:fixed;inset:0;z-index:120;background:rgba(255,255,255,.84);display:grid;place-items:center}.loader-box{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px 20px;font-weight:900;box-shadow:var(--shadow)}
.version-footer{text-align:center;color:#8d99a8;font-size:9px;padding:18px 10px}
@media(max-width:1100px){.top-stats{grid-template-columns:repeat(3,1fr)}.table-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.setup-layout,.repechage-layout{grid-template-columns:1fr}.rep-group-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.app-header-in{padding:8px 12px}.app-title{font-size:13px}.app-sub{display:none}.header-btn span.hide-sm{display:none}.page{padding:12px 10px 88px}.top-stats{grid-template-columns:repeat(2,1fr)}.reception-columns{grid-template-columns:1fr}.form-grid,.form-grid.three{grid-template-columns:1fr}.table-grid{grid-template-columns:1fr}.people-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.reconcile-grid{grid-template-columns:1fr}.reconcile-row{grid-template-columns:1fr 58px 1fr}.stage-inner{gap:3px}.stage-item{font-size:9px;min-height:38px}.rep-group-grid{grid-template-columns:1fr}.viewer-choice{grid-template-columns:1fr}.viewer-flyer{height:150px}}

.mini-select{margin-top:5px;min-height:28px;padding:3px 24px 3px 7px;border:1px solid var(--line);border-radius:7px;background:#fff;font-size:11px;font-weight:800;color:var(--text)}


/* v26.0.4 PointBreak real-event robin matrix */
.robin-matrix-wrap{overflow-x:auto;margin-top:12px;border:1px solid var(--line);border-radius:12px;background:#fff}
.robin-matrix{border-collapse:collapse;min-width:760px;width:100%;font-size:10px}
.robin-matrix th,.robin-matrix td{border-right:1px solid #dfe5ed;border-bottom:1px solid #dfe5ed;padding:7px 6px;text-align:center;white-space:nowrap}
.robin-matrix thead th{background:#f3f6fa;font-weight:950}
.robin-matrix .matrix-team{text-align:left;min-width:170px;font-weight:900}
.robin-matrix .matrix-num{display:inline-flex;width:24px;height:24px;align-items:center;justify-content:center;border:1px solid #cbd4df;border-radius:999px;margin-right:7px;background:#fff}
.robin-matrix .matrix-self{background:#e5e7eb;background-image:linear-gradient(45deg,transparent 49%,#9ca3af 50%,transparent 51%)}
.robin-matrix .matrix-na,.robin-matrix .matrix-pending{color:#9aa5b3;background:#fafbfd}
.robin-matrix .matrix-done{font-weight:950;color:#172033}
.robin-matrix .matrix-rank{font-size:13px;font-weight:950}
@media(max-width:720px){.robin-matrix{font-size:9px}.robin-matrix th,.robin-matrix td{padding:6px 5px}.robin-matrix .matrix-team{min-width:140px}}
.rep-score-actions{display:grid;grid-template-columns:minmax(92px,1fr) auto;gap:7px;align-items:center;min-width:190px}
.rep-score-actions .btn{min-width:72px}

/* v26.0.5 COUNT-UP score action layout fix */
.rep-team-row{
  grid-template-columns:minmax(0,1fr) minmax(172px,190px);
}
.rep-team-row > span:first-child{
  min-width:0;
  overflow-wrap:anywhere;
}
.rep-score-actions{
  display:grid;
  grid-template-columns:minmax(84px,1fr) 68px;
  gap:7px;
  align-items:center;
  min-width:0;
}
.rep-score-actions .input{
  width:100%;
  min-width:0;
}
.rep-score-actions .btn{
  width:68px;
  min-width:68px;
  padding-left:8px;
  padding-right:8px;
}
@media(max-width:1250px){
  .rep-group-grid{grid-template-columns:1fr}
  .rep-team-row{grid-template-columns:minmax(0,1fr) minmax(180px,220px)}
}
@media(max-width:760px){
  .rep-team-row{grid-template-columns:1fr}
  .rep-score-actions{grid-template-columns:minmax(0,1fr) 76px;width:100%}
  .rep-score-actions .btn{width:76px;min-width:76px}
}

/* v26.0.8 guided repechage -> bracket flow */
.bracket-setup-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:14px;align-items:start}
.bracket-preview-match{display:grid;grid-template-columns:72px minmax(0,1fr) 30px minmax(0,1fr);gap:8px;align-items:center;padding:10px 0;border-bottom:1px solid #edf1f6}
.bracket-preview-match:last-child{border-bottom:none}.bracket-preview-match .label{margin:0}.bracket-preview-match .team-name{font-size:12px}
@media(max-width:980px){.bracket-setup-grid{grid-template-columns:1fr}.bracket-preview-match{grid-template-columns:60px minmax(0,1fr) 24px minmax(0,1fr)}}
@media(max-width:620px){.bracket-preview-match{grid-template-columns:1fr}.bracket-preview-match .muted{text-align:center}}

/* v26.0.11 result input: +/- scoreboard, no score candidate tiles */
.result-match-block{padding:14px 16px}
.result-scoreboard{display:grid;grid-template-columns:minmax(0,1fr) 62px minmax(0,1fr);gap:14px;align-items:center;margin-top:8px}
.result-side{display:grid;grid-template-rows:minmax(38px,auto) 46px 72px 46px;gap:7px;align-items:center;text-align:center}
.result-team-name{font-size:13px;font-weight:950;line-height:1.35;display:flex;align-items:center;justify-content:center}
.result-step{width:100%;height:46px;border:1px solid #cfd9e7;border-radius:11px;background:#fff;font-size:28px;font-weight:900;line-height:1;cursor:pointer;touch-action:manipulation}
.result-step:active{background:#eef4ff;transform:translateY(1px)}
.result-number{height:72px;border:1px solid #d6e1f0;background:#f8fbff;border-radius:13px;display:flex;align-items:center;justify-content:center;font-size:40px;font-weight:950;font-variant-numeric:tabular-nums}
.result-separator{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:#66758a;font-size:11px;font-weight:900}
.result-separator strong{font-size:30px;color:#22324a}
.result-hint{margin-top:12px;text-align:center;font-size:12px;font-weight:800;color:#526176;min-height:18px}
@media(max-width:640px){.result-scoreboard{grid-template-columns:minmax(0,1fr) 40px minmax(0,1fr);gap:8px}.result-side{grid-template-rows:minmax(44px,auto) 44px 64px 44px}.result-step{height:44px}.result-number{height:64px;font-size:34px}.result-team-name{font-size:12px}}
