:root{--paper:#fffaf7;--ink:#27304a;--muted:#768099;--pink:#f35e91;--rose:#fff0f5;--purple:#7258d0;--lav:#f2efff;--line:#e5e4ef;--mint:#e5f8ee;--red:#e54853;--shadow:0 14px 40px #40365b10}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:radial-gradient(ellipse at top left,#ffeaf0,transparent 32%),radial-gradient(ellipse at top right,#e8f5ff,transparent 30%),var(--paper);color:var(--ink);font-family:system-ui,-apple-system,'Hiragino Sans','Noto Sans JP',sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.47;cursor:not-allowed}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #6855ce;outline-offset:3px}.shell{max-width:1300px;padding:0 18px;margin:auto}.top{min-height:70px;background:#fffcffed;border-bottom:1px solid #f2e9ef;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px clamp(14px,4vw,45px)}.brand{font-size:clamp(18px,2vw,25px);font-weight:1000;letter-spacing:-1px;white-space:nowrap}.brand em{color:var(--pink);font-style:normal}.toplinks{display:flex;align-items:center;gap:10px}.toplinks a{font-weight:850;color:#57637b;padding:9px 13px;border:1px solid #ece7f1;border-radius:12px;font-size:12px;white-space:nowrap;background:#fff}.toplinks .lang{color:#b64b77;background:#fff0f5;border-color:#ffd3e1}.hero{text-align:center;padding:34px 8px 23px}.eyebrow{font-weight:900;background:#ffe3ee;color:#c34473;padding:8px 17px;border-radius:50px;display:inline-block;font-size:12px}.hero h1{font-size:clamp(31px,5vw,57px);letter-spacing:-.05em;line-height:1.22;margin:17px 0 0}.hero h1 span{color:var(--pink)}.panel{background:#fff;border:1px solid var(--line);border-radius:25px;box-shadow:var(--shadow)}.workspace{padding:18px 19px 18px;margin-bottom:18px}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:13px;flex-wrap:wrap}.toolbarleft{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.toolbar h2{font-size:clamp(16px,2.6vw,21px);margin:0}.modeTag{background:#f0ecff;color:#6650b5;border-radius:99px;padding:6px 12px;font-size:11px;font-weight:900}.tools{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.btn{border:1px solid #e0deee;border-radius:12px;background:#fff;min-height:42px;padding:10px 13px;font-size:12px;font-weight:850;color:#4c5269;display:inline-flex;align-items:center;justify-content:center;gap:5px}.btn:hover{background:#faf8ff}.btn.primary{color:#fff;background:linear-gradient(112deg,#fa6596,#8a6ae5);border:0;box-shadow:0 7px 17px #e75c8a32}.btn.ghost{background:#fff5f9;color:#b34a77;border-color:#ffe0ec}.btn.big{font-size:15px;padding:13px 20px}.btn.small{min-height:35px;padding:7px 10px;font-size:11px}.hint{background:#f6f8fe;border:1px solid #e9edf8;border-radius:14px;color:#596684;font-size:12px;padding:10px 13px;margin:13px 0}.viewActions{display:flex;align-items:center;justify-content:space-between;gap:9px;flex-wrap:wrap;margin-top:12px}.switch{display:flex;gap:3px;border-radius:11px;padding:3px;background:#f4f1fa}.switch button{border:0;background:transparent;padding:8px 12px;border-radius:9px;color:#74738e;font-size:12px;font-weight:850}.switch button.active{background:#fff;color:#6750b1;box-shadow:0 2px 6px #24254b14}.stageScroll{overflow:auto;overscroll-behavior-inline:contain;max-height:78vh;scrollbar-color:#c7bbdf #f5f4fa;border:1px solid #eeedf4;border-radius:18px;background:white;min-height:360px;margin-top:12px}.stageScroll svg{display:block;max-width:none}.stageScroll .bracketNode{cursor:pointer;outline:none}.stageScroll .bracketNode:focus-visible circle{stroke:#6549d6;stroke-width:4}.stageScroll .bracketNode:hover circle{stroke:#f35e91;stroke-width:3}.leagueMatrix{border-collapse:separate;border-spacing:0;font-size:12px;min-width:fit-content;background:#fff;margin:0 auto}.leagueMatrix th,.leagueMatrix td{border-right:1px solid #e8e8f1;border-bottom:1px solid #e8e8f1;text-align:center;min-width:73px;height:57px;padding:4px}.leagueMatrix thead th{position:sticky;top:0;background:#f3f0fc;z-index:2;font-size:12px;max-width:90px}.leagueMatrix tbody th{position:sticky;left:0;background:#f3f0fc;z-index:1;text-align:left;min-width:108px;max-width:140px;padding:7px 9px;overflow:hidden;text-overflow:ellipsis}.leagueMatrix thead th:first-child{left:0;z-index:3;min-width:108px}.leagueMatrix td.diag{background:#eff0f4;color:#b6b6c2}.cellBtn{height:48px;width:100%;min-width:62px;background:#fff;border:0;color:#8e94a6;border-radius:9px;font-weight:900}.cellBtn:hover{background:#f2efff}.cellBtn.won{background:#e1f5ea;color:#12835b}.cellBtn.lost{background:#fff0f1;color:#bb5661}.cellBtn.draw{background:#fff5d8;color:#8b711d}.cellBtn span{display:block;font-size:11px}.ranking{margin:19px 0 0}.ranking h3{font-size:16px;margin:0 0 9px}.rankScroll{overflow:auto}.rankTable{width:100%;border-collapse:collapse;white-space:nowrap;font-size:12px}.rankTable th,.rankTable td{padding:10px 9px;text-align:center;border-bottom:1px solid #edebf2}.rankTable th{background:#f5f2fc;color:#646386}.rankTable td:nth-child(2){text-align:left;font-weight:800}.rankTable .first{background:#edfbf3}.champion{background:#e3f7eb;border:1px solid #c9eed8;color:#16734f;padding:12px 15px;border-radius:12px;margin:11px 0;font-weight:900}.bottomArea{padding:21px 25px;margin:20px 0}.bottomArea h2{font-size:18px;margin:0 0 12px}.bottomArea .help{color:var(--muted);font-size:12px}.social{display:flex;gap:9px;flex-wrap:wrap;margin-top:16px}.social a,.social button{border:1px solid #e6dfed;background:#fff;border-radius:12px;padding:11px 16px;font-weight:850;font-size:12px;cursor:pointer}.foot{padding:19px 0 35px;color:#8a8ea3;font-size:11px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.foot a{color:#6956b1}.toast{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);max-width:calc(100% - 32px);background:#283147;color:#fff;border-radius:12px;padding:13px 16px;z-index:150;opacity:0;pointer-events:none;transition:.18s;font-size:13px}.toast.show{opacity:1}.modalRoot{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:15px;background:#18213991;backdrop-filter:blur(4px)}.modalRoot[hidden]{display:none}.dialog{width:min(530px,100%);max-height:min(91vh,900px);overflow:auto;border:1px solid #ece7f2;border-radius:24px;box-shadow:0 20px 100px #20233f55;background:#fff;padding:23px}.dialog.wide{width:min(590px,100%)}.modalhead{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.modalhead h2{font-size:21px;margin:2px 0 3px}.modalhead .note{color:var(--muted);font-size:12px}.close{border:0;background:#f4f2f7;border-radius:12px;font-size:23px;color:#858199;width:42px;height:42px}.field{display:grid;gap:6px;margin:14px 0}.field label{font-size:13px;font-weight:850}.field input,.field textarea,.field select{width:100%;border:1px solid #dedeea;background:#fff;border-radius:11px;padding:12px;color:var(--ink)}.field textarea{height:150px;resize:vertical;line-height:1.6}.radioTabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}.radioTabs button{border:1px solid #e0dcea;background:#fff;border-radius:13px;padding:13px 6px;color:#757089;font-weight:900;font-size:12px}.radioTabs button.sel{border-color:#ac98ef;background:#f2edff;color:#6846b4}.inline{display:flex;align-items:center;gap:9px;font-size:12px;color:#626b80}.inline input{accent-color:#8063df;width:17px;height:17px}.dialogActions{display:flex;gap:9px;justify-content:flex-end;flex-wrap:wrap;margin-top:22px}.dialogActions .btn.primary{min-width:160px}.winnerOption{display:flex;width:100%;align-items:center;justify-content:space-between;gap:12px;text-align:left;background:#f6f4ff;border:1px solid #e7e0fb;border-radius:13px;padding:16px 13px;margin-top:10px;font-weight:900;color:var(--ink)}.winnerOption.chosen{background:#ffe6e9;border-color:#f4747d;color:#b53643}.winnerOption:hover{border-color:#fa88a6}.scoreInputs{display:grid;grid-template-columns:1fr 14px 1fr;gap:9px;align-items:end;margin-top:20px}.scoreInputs input{text-align:center;font-size:22px;font-weight:900}.scoreInputs .field{min-width:0}.scoreInputs .field label{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.resetRow{margin-top:10px;display:flex;gap:8px;flex-wrap:wrap}.empty{min-height:270px;display:grid;place-content:center;text-align:center;color:var(--muted)}.empty b{font-size:20px;color:var(--ink)}@media(max-width:620px){.shell{padding:0 11px}.top{min-height:60px}.toplinks{gap:5px}.toplinks a{padding:8px 9px;font-size:10px}.hero{padding:24px 5px 19px}.hero h1{font-size:35px}.workspace{padding:12px 11px}.tools .btn{font-size:11px;padding:9px}.stageScroll{max-height:67vh;min-height:350px}.bottomArea{padding:18px 15px}.dialog{padding:18px;border-radius:18px}.toolbar{align-items:flex-start}}
/* Phase 3: polished, readable match-entry design */
.stageScroll{border-color:#e9e3f1;background:#fff;box-shadow:inset 0 1px 2px rgba(63,53,92,.025)}
.workspace{border-color:#e9e4f1;box-shadow:0 16px 45px rgba(80,62,111,.065)}
.modeTag{background:linear-gradient(110deg,#f7edff,#fff1f3);border:1px solid #efe0f5;color:#6854a4}
.winnerChoices{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:10px 0 0}
.winnerChoices .winnerOption{margin:0;padding:14px 13px;min-width:0;word-break:break-word}
.winnerIndicator{display:grid;place-items:center;flex:none;background:#fff;border:1px solid #ded8ef;border-radius:50%;width:27px;height:27px;color:#a3a4b5}
.winnerOption.chosen .winnerIndicator{background:#e4435e;color:#fff;border-color:#e4435e}
.dialogSubsection{font-size:13px;color:#566078;font-weight:900;margin:17px 0 3px}
.scoreInputs{margin-top:5px;align-items:center}
.scoreDash{text-align:center;font-size:22px;color:#b1b5c4;margin-top:22px}
.scoreInputs input{font-size:23px;color:#29334b}
.stageScroll .bracketNode:hover{filter:drop-shadow(0 0 5px #fab6c6)}
@media(max-width:480px){.winnerChoices{grid-template-columns:1fr}.winnerChoices .winnerOption{min-height:48px}}

/* Phase 3.1: score-only knockout entry, refined pastel bracket. */
.scorePreview{margin-top:13px;padding:12px 14px;border-radius:12px;background:#fff7ed;border:1px solid #f4e5d2;color:#99602b;font-size:13px;line-height:1.65;font-weight:750}
.scorePreview.decided{background:#eefaf3;border-color:#c9ead8;color:#16764d}
.scoreInputs input{background:#fffdfa;border:1.5px solid #dcd8ed;transition:border-color .16s,box-shadow .16s}
.scoreInputs input:focus{border-color:#a37cde;box-shadow:0 0 0 3px #8d6ce31a;outline:none}
.stageScroll{background:#fffefa;border:1px solid #eee6ef;box-shadow:inset 0 1px 8px rgba(118,95,143,.035)}
@media print{.scorePreview{display:none}}

/* Phase 3.1.1: a separate one-page print canvas. No scrolling panels or page splits. */
#tournamentPrintSheet{display:none}
@media print{
  @page{size:A4 portrait;margin:8mm}
  html,body{margin:0!important;padding:0!important;background:#fff!important;width:auto!important;height:auto!important;min-height:0!important;overflow:visible!important}
  body>:not(#tournamentPrintSheet){display:none!important}
  #tournamentPrintSheet{display:flex!important;flex-direction:column;align-items:center;justify-content:flex-start;box-sizing:border-box;overflow:hidden!important;border:0!important;page-break-before:avoid!important;page-break-after:avoid!important;break-before:avoid!important;break-after:avoid!important;break-inside:avoid!important;margin:0!important;padding:0!important;color:#283148;background:white}
  #tournamentPrintSheet .printTitle{box-sizing:border-box;margin:0 0 7px!important;padding:0 4px!important;text-align:center;width:100%;font-size:16px;line-height:30px;height:30px;font-weight:850;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  #tournamentPrintSheet .printDrawing{flex:0 0 auto;max-width:100%;display:flex;justify-content:center;align-items:flex-start}
  #tournamentPrintSheet svg{max-width:none!important;max-height:none!important;display:block!important;overflow:visible!important;page-break-inside:avoid!important;break-inside:avoid!important}
  *{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
}

/* Help illustrations: four-across on desktop; horizontal cards on phones. */
.guideSection{margin:20px 0 12px}
.shareSection{margin:12px 0 20px}
.sectionHead{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.sectionHead h2{margin:0;font-size:18px;font-weight:900}
.guide-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0;align-items:stretch}
.guide-item{min-width:0;margin:0;background:#fffaf9;border:1px solid #f0e4ed;border-radius:18px;overflow:hidden;box-shadow:0 4px 13px #40365b0b}
.guide-item img{display:block;width:100%;height:auto;aspect-ratio:960/620;object-fit:contain;background:#fff8f5}
.guide-item figcaption{padding:9px 11px 11px;font-size:11px;line-height:1.5;color:#687188}
.guide-item figcaption strong{display:block;font-size:12px;color:#28314c}
.guide-item figcaption p{margin:3px 0 0}
.share-caption{font-size:18px;font-weight:900;color:#29334c}
.social{display:flex;gap:9px;flex-wrap:wrap;margin-top:0}
.social a,.social button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;border:1px solid #e6dfed;background:#fff;border-radius:12px;padding:11px 16px;font-weight:850;font-size:12px;cursor:pointer}
.social a:hover,.social button:hover{background:#fff0f6;border-color:#fab8ce}
.footer-links{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.footer-links a{font-weight:800;text-decoration:underline;text-underline-offset:3px}
@media(max-width:680px){
  .guideSection{margin:16px 0 6px}
  .shareSection{margin:8px 0 17px}
  .sectionHead{margin-bottom:10px}
  .guide-grid{display:flex;flex-flow:row nowrap;gap:11px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-padding-inline:1px;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;align-items:stretch;padding:0 1px 5px;scrollbar-color:#d9cfe8 #f7f5fb}
  .guide-item{flex:0 0 min(82vw,345px);max-width:345px;scroll-snap-align:start;align-self:stretch}
  .guide-item figcaption{padding:9px 11px 11px}
  .social{gap:8px}
}
@media print{.guideSection,.shareSection,.footer-links{display:none!important}}
