:root{font-family:system-ui,-apple-system,"Noto Sans TC",sans-serif;color:#182b40;background:#f3f6fb}*{box-sizing:border-box}body{margin:0}header{background:#102a4b;color:white;padding:17px max(18px,calc((100vw - 1180px)/2));display:flex;justify-content:space-between;gap:12px}header a{color:#ffda57;font-size:21px;font-weight:800;text-decoration:none}header span{font-size:13px;align-self:center}main{max-width:1180px;margin:auto;padding:22px 16px 60px}h1{font-size:clamp(24px,4vw,34px)}h2{font-size:21px}.panel,.match{background:white;border:1px solid #dce3ec;border-radius:15px;padding:18px;margin:12px 0;box-shadow:0 2px 10px #1733510b}.panel.narrow{max-width:450px;margin:60px auto}.cards,.matchgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(245px,1fr));gap:12px}.cards a{text-decoration:none;color:inherit}.match{margin:0;text-align:center;border-top:4px solid #e6b832}.match strong{color:#bf3d32}label{display:block;font-weight:600;margin:10px 0}input,textarea{font:inherit;padding:12px;border:1px solid #bbc8d8;border-radius:9px;width:100%;margin:6px 0}button,.actions a,.links a{background:#1755a1;color:white;border:0;border-radius:9px;padding:12px 16px;font:inherit;font-weight:700;cursor:pointer;display:inline-block;text-decoration:none}button:disabled{opacity:.5}.secondary{background:#64748b}.inline,.actions,.links,.top{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.inline>input{flex:2;min-width:170px}.inline>label{flex:1}.top{justify-content:space-between}.links a{background:#eaf2ff;color:#164e91}.notice{padding:12px;background:#fff0c4;border-radius:9px}.warning{color:#b24129}.scroll{overflow:auto}table{border-collapse:collapse;width:100%}th,td{border-bottom:1px solid #e5e9ef;padding:10px;text-align:left;white-space:nowrap}footer{text-align:center;color:#8896a5;padding:30px}@media(max-width:500px){header span{display:none}.inline>label{min-width:120px}}

.bracket-scroll{overflow-x:auto;padding:12px 0 22px}.bracket{display:flex;gap:20px;min-width:850px;align-items:stretch}.bracket-round{width:205px;display:flex;flex-direction:column;justify-content:space-around;gap:10px}.bracket-round h3{text-align:center;margin:4px 0}.bracket-match{background:#f7faff;border:1px solid #b7c8dd;border-radius:10px;padding:8px;position:relative}.bracket-player{display:flex;justify-content:space-between;border-bottom:1px solid #d7e1ed;padding:6px 2px;font-size:13px}.bracket-player.won{font-weight:800;color:#145a36}.bracket-match small{display:block;color:#66778b;margin-top:5px}

.advance-hint{font-weight:700;margin:12px 0 8px}.advance-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:12px}.advance-choices .advance-player{white-space:normal;min-height:72px;font-size:18px;font-weight:800;background:#eaf2ff;color:#173b70;border:2px solid #9db8e2;border-radius:12px;padding:12px 8px;overflow-wrap:anywhere}.advance-choices .advance-player:hover,.advance-choices .advance-player:focus-visible{background:#cce2ff;border-color:#1659a5;outline:2px solid #1659a5;outline-offset:1px}@media(max-width:380px){.advance-choices .advance-player{font-size:16px}}

.draw-grid{display:grid;grid-template-columns:repeat(3,minmax(190px,1fr));gap:12px;margin:16px 0}.draw-group{border:1px solid #bac6d7;border-radius:12px;padding:10px;min-width:0}.draw-group h3{margin:4px 0 12px}.draw-list{display:flex;flex-direction:column;gap:6px}.draw-player{display:flex;align-items:center;gap:8px;background:#eef4fd;border:1px solid #c3d2e6;border-radius:8px;padding:9px 7px;cursor:grab;color:#132b4c;user-select:none}.draw-player:active{cursor:grabbing}.draw-position{min-width:22px;color:#456080;font-size:12px}.drag-icon{margin-left:auto;color:#64748b}@media(max-width:650px){.draw-grid{grid-template-columns:1fr}}

/* v2.13: 明顯區分晉級者與落敗者；對色覺差異者保留文字與圖示 */
.bracket-player.won{background:#d9fbe5!important;color:#075b2e!important;font-weight:900!important;border:2px solid #13a34a!important;border-radius:8px;padding:8px!important;box-shadow:0 0 0 2px rgba(30,190,89,.15),0 0 14px rgba(27,184,83,.35);animation:twj-win-glow 2.4s ease-in-out infinite alternate}
.bracket-player.won::before{content:'🏆 晉級';font-size:11px;font-weight:900;color:#08602e;margin-right:5px;white-space:nowrap}
.bracket-player.lost{color:#6b7280!important;background:#f0f1f3;opacity:.72;text-decoration:line-through;text-decoration-color:#9ca3af}
@keyframes twj-win-glow{from{box-shadow:0 0 0 1px rgba(30,190,89,.15),0 0 4px rgba(27,184,83,.2)}to{box-shadow:0 0 0 2px rgba(30,190,89,.3),0 0 14px rgba(27,184,83,.45)}}
@media(prefers-reduced-motion:reduce){.bracket-player.won{animation:none}}
