
.portal-view{display:none}.portal-view.active{display:block}.portal-home-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,.85fr);gap:16px}.portal-main-card h2{margin:.2rem 0}.portal-muted{color:var(--muted)}.portal-status-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:20px 0}.portal-status-grid>div{border:1px solid var(--border);border-radius:14px;padding:12px;background:var(--surface-soft)}.portal-status-grid span{display:block;color:var(--muted);font-size:.85rem}.portal-status-grid strong{display:block;margin-top:4px;font-size:1.15rem}.portal-quick-actions{display:flex;gap:8px;flex-wrap:wrap}.portal-list,.portal-board-list,.portal-record-list{display:grid;gap:10px}.portal-list-item,.portal-board-item,.portal-record-item{border:1px solid var(--border);border-radius:14px;padding:14px;background:var(--surface)}.portal-list-item strong,.portal-board-item h3{display:block;margin-bottom:5px}.portal-meta{font-size:.82rem;color:var(--muted)}.portal-board-body{white-space:pre-wrap;margin-top:10px}.portal-board-actions{display:flex;justify-content:flex-end;margin-top:10px}.portal-editor{border:1px solid var(--border);border-radius:14px;padding:14px;margin-bottom:14px;background:var(--surface-soft)}.portal-editor label{display:grid;gap:6px;margin-bottom:10px}.portal-editor textarea,.portal-editor input[type=text]{width:100%;box-sizing:border-box}.portal-editor-actions{display:flex;justify-content:flex-end;gap:8px}.portal-court-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}.portal-court-item{border:1px solid var(--border);border-radius:14px;padding:12px}.portal-court-item strong{display:block;margin-bottom:5px}.portal-result-current{border:1px solid var(--border);border-radius:16px;padding:16px;background:var(--surface-soft)}.portal-result-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:12px}.portal-result-metrics>div{border:1px solid var(--border);border-radius:12px;padding:10px;background:var(--surface)}.portal-record-head{margin-top:18px}.portal-empty{padding:20px;text-align:center;color:var(--muted);border:1px dashed var(--border);border-radius:14px}@media(max-width:820px){.portal-home-grid{grid-template-columns:1fr}.portal-status-grid,.portal-result-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}

.public-prelim-legend{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin:0 0 14px;color:var(--muted);font-size:.88rem}.public-prelim-legend>span{display:inline-flex;align-items:center;gap:6px}.public-state-dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--border)}.public-state-dot.playing{background:#16a34a}.public-state-dot.waiting{background:#f59e0b}.public-state-dot.completed{background:#64748b}.public-state-dot.qualified{background:#7c3aed}.public-prelim-grid{align-items:start}.public-prelim-card{overflow:hidden}.public-prelim-card header>span{font-size:.8rem}.public-group-progress{height:5px;background:var(--surface-soft);border-radius:999px;overflow:hidden;margin:0 12px 10px}.public-group-progress>span{display:block;height:100%;background:var(--accent);border-radius:inherit}.public-standing-table td:nth-child(n+3),.public-standing-table th:nth-child(n+3){text-align:center}.public-qualified-chip{display:inline-block;margin-left:6px;padding:2px 5px;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-size:.68rem;white-space:nowrap}.public-prelim-match{position:relative}.public-prelim-match.playing{border-left:4px solid #16a34a}.public-prelim-match.completed{border-left:4px solid #64748b}.public-prelim-match.court_wait1,.public-prelim-match.queued{border-left:4px solid #f59e0b}.public-prelim-match>strong{display:block;margin:5px 0}.public-prelim-match>strong span{font-weight:400;color:var(--muted);margin:0 4px}.public-match-result{display:flex;gap:8px;align-items:center;justify-content:flex-end;color:var(--muted);font-size:.84rem}.public-match-result b{color:var(--text);font-size:.95rem}@media(max-width:620px){.public-prelim-legend{gap:8px 12px}.public-standing-table{font-size:.82rem}.public-prelim-card header{align-items:flex-start}.public-match-result{justify-content:flex-start;flex-wrap:wrap}}


/* Stage 31.40 · public my-match search */
.my-match-panel{display:grid;gap:16px}.my-match-search-row{display:grid;gap:8px}.my-match-search-row>label{font-weight:700}.my-match-search-controls{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px}.my-match-search-controls input{min-width:0;border:1px solid var(--border);border-radius:12px;padding:11px 13px;font:inherit;background:var(--surface);color:var(--text)}.my-match-team-choices{display:flex;flex-wrap:wrap;gap:8px}.my-match-choice{border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text);padding:8px 12px;cursor:pointer}.my-match-choice:hover{border-color:var(--primary);background:var(--primary-soft)}.my-match-result{display:grid;gap:18px}.my-match-summary{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:16px;border:1px solid var(--border);border-radius:16px;background:var(--surface-soft)}.my-match-summary h3{margin:2px 0 5px;font-size:1.25rem}.my-match-current{min-width:210px;padding:12px;border-radius:12px;background:var(--surface);border:1px solid var(--border)}.my-match-current span{display:block;color:var(--muted);font-size:.82rem;margin-bottom:5px}.my-match-current strong{display:block}.my-match-current.playing{border-color:#ef4444}.my-match-current.wait1,.my-match-current.waiting,.my-match-current.shared{border-color:#f59e0b}.my-match-current.completed{border-color:#16a34a}.my-match-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.my-match-metrics>div{padding:12px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}.my-match-metrics span{display:block;color:var(--muted);font-size:.82rem}.my-match-metrics b{display:block;margin-top:4px}.my-match-section{display:grid;gap:10px}.my-match-section h3{margin:0}.my-match-games{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}.my-match-game{padding:13px;border:1px solid var(--border);border-left-width:4px;border-radius:12px;background:var(--surface)}.my-match-game.playing{border-left-color:#ef4444}.my-match-game.wait1,.my-match-game.waiting,.my-match-game.shared{border-left-color:#f59e0b}.my-match-game.completed{border-left-color:#16a34a}.my-match-game-head{display:flex;justify-content:space-between;gap:10px}.my-match-game-head span{font-size:.82rem;color:var(--muted)}.my-match-opponent{margin-top:9px}.my-match-placement{margin-top:7px;color:var(--muted);font-size:.88rem}.my-match-score{margin-top:8px;font-weight:800}.my-match-score.win{color:#15803d}.my-match-score.loss{color:#b91c1c}@media(max-width:720px){.my-match-search-controls{grid-template-columns:1fr 1fr}.my-match-search-controls input{grid-column:1/-1}.my-match-summary{display:grid}.my-match-current{min-width:0}.my-match-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}


/* Stage 31.41 · participant registration & reserve management */
.participant-manager{margin-top:18px;border-top:1px solid var(--border);padding-top:18px}.compact-head{align-items:flex-start}.participant-form-grid{display:grid;grid-template-columns:2fr 1.2fr 1fr .8fr;gap:10px}.participant-form-grid label,.participant-list-head label{display:grid;gap:6px}.participant-form-grid input,.participant-form-grid select,.participant-list-head input{width:100%;box-sizing:border-box;border:1px solid var(--border);border-radius:10px;padding:10px;background:var(--surface);color:var(--text);font:inherit}.participant-form-actions{margin-top:10px}.participant-list-head{display:flex;align-items:end;justify-content:space-between;gap:14px;margin:18px 0 10px}.participant-list-head label{min-width:min(360px,100%)}.participant-list-head>span{color:var(--muted);font-size:.84rem}.participant-roster-list{display:grid;gap:7px;max-height:440px;overflow:auto}.participant-row{display:grid;grid-template-columns:38px minmax(0,1fr) auto auto;align-items:center;gap:10px;border:1px solid var(--border);border-radius:12px;padding:10px;background:var(--surface)}.participant-order{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--surface-soft);font-weight:700}.participant-info{min-width:0}.participant-info strong,.participant-info span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.participant-info span{margin-top:3px;color:var(--muted);font-size:.82rem}.participant-status{padding:4px 8px;border-radius:999px;font-size:.78rem;font-weight:700}.participant-status.active{background:var(--accent-soft);color:var(--accent)}.participant-status.reserve{background:var(--surface-soft);color:var(--muted)}.participant-actions{display:flex;gap:6px}.participant-actions .btn{padding:6px 9px;font-size:.8rem}@media(max-width:900px){.participant-form-grid{grid-template-columns:1fr 1fr}.participant-list-head{display:grid}.participant-row{grid-template-columns:34px minmax(0,1fr) auto}.participant-actions{grid-column:2/-1;justify-content:flex-end}}@media(max-width:560px){.participant-form-grid{grid-template-columns:1fr}.participant-row{grid-template-columns:30px minmax(0,1fr) auto}.participant-info span{white-space:normal}.participant-actions{grid-column:1/-1}.participant-list-head label{min-width:0}}

.entry-form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.entry-form-grid label,.entry-lookup-row label,.entry-admin-toolbar label{display:grid;gap:6px}.entry-form-grid span,.entry-lookup-row span,.entry-admin-toolbar span{font-size:.84rem;color:var(--muted);font-weight:700}.entry-form-grid input,.entry-lookup-row input,.entry-admin-toolbar select{width:100%;border:1px solid var(--line);border-radius:12px;padding:11px 12px;background:#fff}.entry-memo{grid-column:span 3}.entry-receipt{display:flex;gap:10px;align-items:center;margin-top:12px}.entry-lookup-row{display:grid;grid-template-columns:minmax(220px,420px) auto;gap:10px;align-items:end}.entry-status-card,.entry-admin-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line)}.entry-status-card div:first-child,.entry-main{display:grid;gap:3px}.entry-status-card span,.entry-main span,.entry-main small{color:var(--muted);font-size:.84rem}.entry-status{display:inline-flex;padding:6px 9px;border-radius:999px;font-size:.78rem;font-weight:800;white-space:nowrap}.entry-status.safe{background:#dcfce7;color:#166534}.entry-status.pending{background:#fef3c7;color:#92400e}.entry-status.danger{background:#fee2e2;color:#991b1b}.entry-code{font-family:monospace;font-size:.8rem}.entry-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.entry-admin-toolbar{display:flex;justify-content:flex-end;margin-bottom:6px}.btn-small{padding:7px 10px!important;font-size:.78rem!important}.entry-status-card p{grid-column:1/-1;margin:0;color:var(--muted)}
@media(max-width:760px){.entry-form-grid{grid-template-columns:1fr}.entry-memo{grid-column:auto}.entry-lookup-row{grid-template-columns:1fr}.entry-status-card,.entry-admin-row{grid-template-columns:1fr auto}.entry-code,.entry-actions{grid-column:1/-1}.entry-actions{justify-content:flex-start}}


/* Stage 31.43 · legacy 230 home and entry UI bridge */
.legacy-home-view,.legacy-entry-view{display:grid;gap:16px}.legacy-home-hero,.legacy-entry-header{display:flex;align-items:center;justify-content:space-between;gap:20px;background:linear-gradient(135deg,#0f2b55,#173f79);color:#fff;border:0}.legacy-home-title h1,.legacy-entry-header h1{margin:7px 0 5px;color:#fff}.legacy-home-title .portal-muted,.legacy-entry-header p{color:#dbeafe}.legacy-home-chip{display:inline-flex;padding:5px 9px;border-radius:999px;background:rgba(255,255,255,.14);font-size:.75rem;font-weight:800;letter-spacing:.04em}.legacy-home-status,.legacy-entry-guide{display:grid;gap:4px;min-width:250px;padding:14px 16px;border-radius:14px;background:rgba(255,255,255,.1)}.legacy-status-dot{width:9px;height:9px;border-radius:50%;background:#4ade80;box-shadow:0 0 0 5px rgba(74,222,128,.14)}.legacy-home-status span:last-child,.legacy-entry-guide span{font-size:.84rem;color:#dbeafe}.legacy-tournament-card{border-top:4px solid #173f79}.legacy-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.legacy-card-head h2{margin:5px 0 0}.legacy-pin{font-size:.8rem;color:#b45309;font-weight:800}.legacy-status-grid{margin:16px 0}.legacy-status-grid>div{background:#f8fbff;border-color:#dbe7f5}.legacy-home-menu{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px}.legacy-home-menu button{display:grid;gap:3px;justify-items:start;text-align:left;border:1px solid var(--border);border-radius:13px;background:var(--surface);padding:12px;cursor:pointer;color:var(--text)}.legacy-home-menu button:hover{border-color:#93b4dc;background:#f6faff}.legacy-home-menu button>span{font-size:1.25rem}.legacy-home-menu button>b{font-size:.9rem}.legacy-home-menu button>small{color:var(--muted)}.legacy-home-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr)}.legacy-notice-card,.legacy-court-card{min-width:0}.legacy-entry-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.75fr);gap:16px}.legacy-entry-form-card{border-top:4px solid #173f79}.legacy-entry-lookup-card{align-self:start;border-top:4px solid #d79b00}.legacy-entry-form-grid{grid-template-columns:1fr 1fr}.legacy-entry-form-grid .legacy-full{grid-column:1/-1}.legacy-entry-agreement{margin-top:12px;padding:11px 12px;border-radius:10px;background:#f6f8fb;color:var(--muted);font-size:.82rem}.legacy-entry-actions{justify-content:flex-end}.legacy-entry-actions .btn{min-width:180px}.legacy-entry-lookup-row{grid-template-columns:1fr}.legacy-entry-lookup-row button{width:100%}
@media(max-width:1050px){.legacy-home-menu{grid-template-columns:repeat(3,minmax(0,1fr))}.legacy-home-grid,.legacy-entry-layout{grid-template-columns:1fr}}
@media(max-width:700px){.legacy-home-hero,.legacy-entry-header{display:grid}.legacy-home-status,.legacy-entry-guide{min-width:0}.legacy-home-menu{grid-template-columns:repeat(2,minmax(0,1fr))}.legacy-card-head{align-items:flex-start}.legacy-entry-cta{white-space:nowrap}.legacy-entry-form-grid{grid-template-columns:1fr}.legacy-entry-form-grid .legacy-full{grid-column:auto}}


/* Stage 31.44 · true page navigation */
.view:not(.active){display:none!important}
.view.active{display:block!important;animation:portalPageIn .16s ease-out}
.view.active.legacy-home-view,.view.active.legacy-entry-view{display:grid!important}
@keyframes portalPageIn{from{opacity:.35;transform:translateY(4px)}to{opacity:1;transform:none}}
body[data-current-view]:not([data-current-view="home"]) .hero{display:none}
@media(max-width:700px){body[data-current-view]:not([data-current-view="home"]) .app-shell{padding-top:6px}}

/* Stage 31.45: entry edit, payment status and reserve order */
.entry-extra,.entry-public-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:10px}
.entry-payment,.entry-wait-number{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:800;white-space:nowrap}
.entry-payment.paid{background:#e7f7ee;color:#13713d;border:1px solid #b9e7ca}
.entry-payment.unpaid{background:#fff3df;color:#975a00;border:1px solid #f4d39a}
.entry-wait-number{background:#eef3ff;color:#244a91;border:1px solid #cbd8f4}
.entry-admin-row>.entry-payment{align-self:center}
@media(max-width:760px){.entry-admin-row>.entry-payment{justify-self:start}.legacy-entry-actions .btn{flex:1}}


/* Stage 31.46 · legacy 230 mobile shell and bottom navigation */
.mobile-page-bar,.mobile-bottom-nav{display:none}
@media(max-width:700px){
  :root{--mobile-navy:#0d2347;--mobile-gold:#e0a900;--mobile-bg:#eef3fb}
  body{background:linear-gradient(180deg,#edf2f9 0,#f8fafc 55%,#edf3fb 100%);padding-bottom:94px}
  .topbar{position:sticky;top:0;z-index:80;background:linear-gradient(135deg,#0b1d3c,#122d58);border-bottom:1px solid rgba(255,255,255,.12);box-shadow:0 8px 22px rgba(13,35,71,.2)}
  .brand{gap:10px}.brand-mark{width:42px;height:42px;border-radius:12px;background:linear-gradient(145deg,#1d3154,#060d19);border:2px solid #f5e8a6;box-shadow:inset 0 0 0 2px rgba(255,255,255,.12),0 4px 10px rgba(0,0,0,.2);font-size:0}
  .brand-mark:after{content:'230';font-size:15px;font-weight:900;color:#f1cf58;text-shadow:0 1px 1px #000}
  .brand strong{font-size:17px;color:#fff}.brand span{display:block!important;color:#a9bddb;font-size:10px}
  .top-actions{margin-left:auto}.role-switch{gap:5px}.role-switch .btn{display:none}.role-switch #currentRoleBadge{display:inline-flex!important;background:#fff;color:#14223c;border:0;padding:9px 12px;font-size:12px}
  .top-actions>[data-operator-only]{display:none!important}
  .app-shell{max-width:760px;padding:12px 10px 18px}
  .mode-tabs{display:none!important}.hero{display:none!important}
  .mobile-page-bar{display:flex;position:sticky;top:65px;z-index:65;align-items:center;justify-content:space-between;gap:10px;margin:0 -1px 10px;padding:9px 4px;background:rgba(238,243,251,.92);backdrop-filter:blur(8px)}
  .mobile-page-bar strong{font-size:18px;color:#0f1f38}.mobile-back-button,.mobile-guide-button{border:1px solid #cbd6e6;background:#fff;color:#14233e;border-radius:999px;min-height:36px;padding:0 13px;font-weight:800}.mobile-back-button{font-size:24px;line-height:1}
  .panel{border:1px solid rgba(206,218,235,.9);border-radius:18px;box-shadow:0 7px 18px rgba(26,51,86,.09);background:rgba(255,255,255,.96)}
  .legacy-home-hero{border-radius:18px;background:linear-gradient(145deg,#16437d,#0d2852);box-shadow:0 12px 24px rgba(13,40,82,.24)}
  .legacy-home-title h1{font-size:22px;line-height:1.35}.legacy-home-status{background:rgba(255,255,255,.12)}
  .legacy-tournament-card{border-top:0}.legacy-card-head h2{font-size:18px}.legacy-entry-cta{border-radius:999px;padding:10px 15px}
  .legacy-status-grid{gap:8px}.legacy-status-grid>div{min-height:70px;border-radius:15px;background:linear-gradient(145deg,#fff,#f4f7fc);box-shadow:0 3px 9px rgba(25,48,79,.07)}
  .legacy-home-menu{gap:9px}.legacy-home-menu button{min-height:86px;justify-items:center;text-align:center;border-radius:16px;background:linear-gradient(145deg,#fff,#f6f8fc);box-shadow:0 3px 10px rgba(30,55,88,.07)}.legacy-home-menu button>span{font-size:22px}.legacy-home-menu button>b{font-size:13px}.legacy-home-menu button>small{display:none}
  .legacy-notice-card .section-head p,.legacy-court-card .section-head p{display:none}
  .legacy-entry-header{border-radius:18px;background:linear-gradient(145deg,#16437d,#0d2852)!important;color:#fff!important;border:0!important;padding:14px!important;gap:10px!important;box-shadow:0 10px 22px rgba(13,40,82,.22)}.legacy-entry-header h1{margin:4px 0 3px!important;font-size:22px!important;line-height:1.2;color:#fff!important}.legacy-entry-header p{margin:0!important;font-size:12px!important;line-height:1.45;color:#dbeafe!important}.legacy-entry-header .legacy-home-chip{padding:4px 8px;font-size:10px}.legacy-entry-guide{display:flex!important;align-items:center;flex-wrap:wrap;gap:4px 7px!important;min-width:0!important;padding:8px 10px!important;border-radius:11px!important;background:rgba(255,255,255,.12)!important}.legacy-entry-guide strong{font-size:12px}.legacy-entry-guide span{font-size:11px!important;line-height:1.35}.entry-form-grid input,.entry-lookup-row input,.entry-admin-toolbar select,.participant-form-grid input,.participant-form-grid select{min-height:48px;border-radius:13px;font-size:16px}
  .legacy-entry-actions .btn{min-height:48px;border-radius:13px;font-size:15px;font-weight:900}
  .section-head h2{font-size:20px}.section-head h2:before{content:'';display:inline-block;width:5px;height:24px;margin-right:9px;border-radius:999px;background:var(--mobile-gold);vertical-align:-5px}
  .portal-status-grid strong,.portal-result-metrics b{font-size:18px}
  .participant-row,.portal-list-item,.portal-board-item,.portal-record-item,.entry-status-card{border-radius:15px;background:linear-gradient(145deg,#fff,#f8faff)}
  .mobile-bottom-nav{display:grid;position:fixed;left:10px;right:10px;bottom:8px;z-index:100;grid-template-columns:repeat(6,1fr);gap:2px;padding:7px 6px calc(7px + env(safe-area-inset-bottom));border-radius:24px;background:linear-gradient(135deg,#0a1b38,#102a55);box-shadow:0 12px 30px rgba(5,19,44,.38);border:1px solid rgba(255,255,255,.15)}
  .mobile-nav-button{display:grid;place-items:center;gap:2px;min-width:0;min-height:58px;border:0;border-radius:16px;background:transparent;color:#c7d1e3;padding:5px 2px}.mobile-nav-button span{font-size:18px}.mobile-nav-button b{font-size:10px;white-space:nowrap}.mobile-nav-button.active{background:rgba(255,255,255,.11);color:#f3c928}.mobile-nav-button.active b{color:#f3c928}
  body[data-current-view="home"] .mobile-page-bar{display:none}
  body[data-current-view="home"] .app-shell{padding-top:10px}
}
@media(max-width:390px){.mobile-nav-button b{font-size:9px}.mobile-bottom-nav{left:5px;right:5px}.legacy-home-menu button{padding:9px 5px}}


/* Stage 31.47 · participant records */
.participant-record-tools{display:grid;grid-template-columns:minmax(220px,1fr) 160px auto auto;gap:10px;align-items:center}
.participant-record-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:16px}
.participant-record-summary>div{padding:14px;border:1px solid #dce5f2;border-radius:16px;background:#f7faff;display:flex;flex-direction:column;gap:6px}.participant-record-summary span{font-size:12px;color:#66758d}.participant-record-summary strong{font-size:20px;color:#10264a}
.public-participant-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.public-participant-card{display:grid;grid-template-columns:34px 1fr auto;gap:10px;align-items:center;padding:14px;border:1px solid #dce5f2;border-radius:16px;background:#fff}.participant-record-number{width:30px;height:30px;border-radius:10px;background:#eef4ff;color:#275bc7;display:grid;place-items:center;font-weight:800}.participant-record-main{min-width:0;display:flex;flex-direction:column;gap:3px}.participant-record-main strong{font-size:16px;color:#10213d}.participant-record-main span,.participant-record-main small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#60708a}.participant-record-phone{color:#2461c8!important}.participant-record-state{padding:6px 9px;border-radius:999px;font-size:12px;font-weight:800}.participant-record-state.active{background:#e7f8ef;color:#157545}.participant-record-state.reserve{background:#fff3d9;color:#946100}
@media(max-width:760px){.participant-record-tools{grid-template-columns:1fr 120px}.participant-record-tools .btn{width:100%}.participant-record-summary{grid-template-columns:repeat(2,1fr)}.public-participant-list{grid-template-columns:1fr}.public-participant-card{padding:12px}.mobile-bottom-nav{overflow-x:auto;justify-content:flex-start}.mobile-nav-button{min-width:74px;flex:0 0 74px}}


/* Stage 31.48 · legacy result archive and podium */
.legacy-result-view{display:grid;gap:16px}.legacy-result-filters{display:grid;grid-template-columns:minmax(240px,1fr) minmax(180px,260px) auto;gap:12px;align-items:end}.legacy-result-filters label{display:grid;gap:7px;font-weight:800}.legacy-result-filters input,.legacy-result-filters select{width:100%;min-height:46px;border:1px solid #cfd9e8;border-radius:12px;padding:0 14px;background:#fff}.legacy-result-admin-actions{display:flex;gap:8px;flex-wrap:wrap}.legacy-result-title{display:flex;justify-content:space-between;gap:14px;align-items:center;margin-bottom:14px}.legacy-result-title strong{font-size:1.25rem}.legacy-result-title span{color:#60708a;font-weight:700}.legacy-podium-grid{display:grid;grid-template-columns:1.15fr 1fr 1fr;gap:12px;margin-bottom:14px}.podium{min-height:105px;border-radius:18px;padding:16px;display:flex;flex-direction:column;gap:9px;border:1px solid #dce5f2;background:#f8fbff}.podium span{font-weight:900}.podium b{font-size:1.08rem;line-height:1.45}.podium.champion{background:linear-gradient(145deg,#fff6ce,#fffdf2);border-color:#e8c95b}.podium.runner{background:linear-gradient(145deg,#f1f5fa,#fff);border-color:#bdcad9}.podium.third{background:linear-gradient(145deg,#fff0e5,#fffaf5);border-color:#dfb18e}.legacy-result-list{display:grid;gap:12px}.legacy-result-item{border:1px solid #dbe4ef;border-radius:16px;padding:16px;background:#fff}.legacy-result-item-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.legacy-result-item-head strong{font-size:1.08rem}.legacy-result-mini-podium{display:grid;grid-template-columns:1fr 1fr 1.4fr;gap:8px;margin:13px 0}.legacy-result-mini-podium>div{display:grid;gap:5px;border-radius:12px;padding:10px;background:#f5f8fc}.legacy-result-mini-podium span{font-size:.78rem;color:#66758c;font-weight:800}.legacy-result-mini-podium b{line-height:1.4}
@media(max-width:760px){.legacy-result-filters{grid-template-columns:1fr}.legacy-result-filters .btn{width:100%}.legacy-result-title{display:grid}.legacy-podium-grid{grid-template-columns:1fr}.podium{min-height:auto}.legacy-result-mini-podium{grid-template-columns:1fr}.legacy-result-admin-actions{width:100%}.legacy-result-admin-actions .btn{flex:1}.legacy-current-result-card,.legacy-result-filter-card,.legacy-result-archive-card{border-radius:18px}.legacy-result-view{gap:12px}}

/* Stage 31.49 · tournament guide and payment information */
.tournament-guide-view{display:none;gap:18px}.tournament-guide-view.active{display:grid}.tournament-guide-hero{display:flex;align-items:center;justify-content:space-between;background:linear-gradient(135deg,#102f62,#214b87);color:#fff}.tournament-guide-hero h1{margin:8px 0 4px}.tournament-guide-hero .portal-muted{color:#d9e7ff}.tournament-guide-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:18px}.guide-info-list{display:grid;gap:0;margin:0}.guide-info-list>div{display:grid;grid-template-columns:130px 1fr;gap:16px;padding:14px 0;border-bottom:1px solid #e7edf6}.guide-info-list>div:last-child{border-bottom:0}.guide-info-list dt{font-weight:800;color:#5c6b81}.guide-info-list dd{margin:0;font-weight:700;color:#14233d}.tournament-payment-card{border:2px solid #e5b31b;background:linear-gradient(180deg,#fffdf5,#fff)}.payment-highlight{display:flex;align-items:end;justify-content:space-between;padding:16px;border-radius:16px;background:#fff4c9;margin-bottom:12px}.payment-highlight span{font-weight:800;color:#715700}.payment-highlight strong{font-size:1.45rem;color:#9b6900}.payment-account-row{display:grid;gap:5px;padding:11px 4px;border-bottom:1px solid #eee}.payment-account-row span{font-size:.86rem;color:#6d7788}.payment-account-row strong{font-size:1.05rem;word-break:break-all}.guide-copy-button{width:100%;margin:16px 0 10px;background:#e5a900;color:#17233b}.guide-detail-text{white-space:normal;line-height:1.8;padding:4px 2px;color:#28364d}.guide-editor{margin-top:18px}.guide-editor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.guide-editor-grid label{display:grid;gap:7px}.guide-editor-grid .legacy-full{grid-column:1/-1}.guide-action-panel{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.guide-action-panel .btn{min-width:150px}
@media(max-width:760px){.tournament-guide-grid{grid-template-columns:1fr}.tournament-guide-hero{align-items:flex-start}.guide-info-list>div{grid-template-columns:105px 1fr}.guide-editor-grid{grid-template-columns:1fr}.guide-editor-grid .legacy-full{grid-column:auto}.guide-action-panel{display:grid;grid-template-columns:1fr}.guide-action-panel .btn{width:100%}}


/* Stage 31.50 · notice center and home popup */
.notice-option-grid{display:flex;flex-wrap:wrap;gap:14px;padding:12px;border:1px solid #dce5f2;border-radius:14px;background:#f7faff}.notice-period-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.notice-period-grid label{display:grid;gap:7px}.notice-period-grid input{min-height:44px;border:1px solid #cfd9e8;border-radius:12px;padding:0 12px;background:#fff}.portal-board-item.important{border:2px solid #e6b625;background:linear-gradient(145deg,#fff9df,#fff)}.notice-meta-row{display:flex;justify-content:space-between;gap:8px;align-items:center}.notice-status{padding:5px 8px;border-radius:999px;font-weight:800;font-size:12px}.notice-status.active{background:#e5f8ee;color:#147244}.notice-status.scheduled{background:#eaf1ff;color:#2557aa}.notice-status.expired{background:#edf0f4;color:#6c7480}.notice-period{margin-top:12px;padding-top:10px;border-top:1px dashed #d8e0ec}.notice-home-item{width:100%;text-align:left;border:0;cursor:pointer}.home-notice-popup{width:min(560px,calc(100vw - 28px));padding:0;border:0;border-radius:22px;box-shadow:0 24px 70px rgba(7,22,49,.4)}.home-notice-popup::backdrop{background:rgba(5,18,40,.62);backdrop-filter:blur(3px)}.home-notice-popup article{padding:22px}.home-notice-popup-head{display:flex;justify-content:space-between;align-items:center}.home-notice-popup-head span{padding:6px 10px;border-radius:999px;background:#fff1bc;color:#8a6200;font-weight:900}.home-notice-popup-head button{width:38px;height:38px;border:0;border-radius:50%;background:#edf2f8;font-size:25px;cursor:pointer}.home-notice-popup h2{margin:20px 0 12px;color:#10213d}.home-notice-popup-body{line-height:1.75;color:#2b3950;max-height:46vh;overflow:auto}.home-notice-popup-actions{display:flex;flex-wrap:wrap;gap:9px;align-items:center;margin-top:22px;padding-top:16px;border-top:1px solid #e4eaf2}.home-notice-popup-actions label{margin-right:auto;font-size:14px;color:#59687f}.home-notice-popup-actions .btn{min-height:42px}
@media(max-width:760px){.notice-period-grid{grid-template-columns:1fr}.notice-meta-row{align-items:flex-start;flex-direction:column}.home-notice-popup article{padding:18px}.home-notice-popup-actions{display:grid;grid-template-columns:1fr 1fr}.home-notice-popup-actions label{grid-column:1/-1}.home-notice-popup-actions .btn{width:100%}}


/* Stage 31.51 · tournament list and history */
.tournament-list-view{display:none;gap:16px}.tournament-list-view.active{display:grid}.tournament-list-head{background:linear-gradient(145deg,#fff,#f6f9ff)}.tournament-list-tools{display:grid;grid-template-columns:minmax(240px,1fr) 180px auto;gap:10px;margin:14px 0}.tournament-list-tools input,.tournament-list-tools select{min-height:46px;border:1px solid #cfd9e8;border-radius:12px;padding:0 13px;background:#fff}.tournament-card-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.tournament-list-card{display:grid;gap:14px;border:1px solid #d9e3ef}.tournament-list-card.current{border:2px solid #d8aa16;background:linear-gradient(145deg,#fffdf4,#fff)}.tournament-card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.tournament-card-top h2{margin:10px 0 4px;font-size:1.18rem}.tournament-card-top p{margin:0;color:#64738a}.tournament-state{display:inline-flex;padding:6px 10px;border-radius:999px;font-size:12px;font-weight:900}.tournament-state.recruiting{background:#e5f8ee;color:#147244}.tournament-state.ongoing{background:#fff1bf;color:#8b6200}.tournament-state.completed{background:#e9edf3;color:#536177}.tournament-card-info{display:grid;gap:7px;color:#43536b;font-size:14px}.tournament-card-progress{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.tournament-card-progress>div{display:grid;gap:5px;padding:10px;border-radius:12px;background:#f3f7fc}.tournament-card-progress span{font-size:12px;color:#69778b}.tournament-card-progress b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tournament-open-btn{width:100%}.tournament-detail-panel{border:2px solid #cbd9ed}.tournament-detail-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:12px 0}.tournament-detail-grid>div{display:grid;gap:6px;padding:13px;border-radius:13px;background:#f5f8fc}.tournament-detail-grid span{font-size:12px;color:#66758b}.tournament-detail-podium{display:grid;grid-template-columns:1.1fr 1fr 1.2fr;gap:10px;margin:14px 0}.tournament-detail-podium>div{display:grid;gap:7px;padding:14px;border-radius:14px;background:#fff8df;border:1px solid #ead481}.tournament-detail-text{line-height:1.8;padding:14px;border-radius:14px;background:#f7f9fc;margin-bottom:14px}.tournament-detail-panel[hidden]{display:none!important}
@media(max-width:760px){.tournament-list-tools{grid-template-columns:1fr}.tournament-card-list{grid-template-columns:1fr}.tournament-detail-grid{grid-template-columns:repeat(2,1fr)}.tournament-detail-podium{grid-template-columns:1fr}.tournament-list-head .section-head{align-items:flex-start}.tournament-list-head .section-head .btn{width:100%;margin-top:8px}}


/* Stage31.53 print center */
.print-center-view{gap:16px}.print-control-grid{display:grid;grid-template-columns:repeat(5,minmax(130px,1fr));gap:12px}.print-control-grid label{display:grid;gap:6px;font-weight:800}.print-control-grid label span{font-size:.82rem;color:var(--muted)}.print-control-grid select{width:100%;padding:11px 12px;border:1px solid var(--border);border-radius:12px;background:var(--surface);color:var(--text);font:inherit}.print-action-row{margin:16px 0 10px}.print-preview-shell{overflow:auto}.print-preview{min-height:420px;background:#dfe6f0;padding:22px;border-radius:16px}.print-sheet{box-sizing:border-box;margin:0 auto;background:#fff;color:#111;box-shadow:0 8px 30px rgba(15,23,42,.18);padding:14mm;width:210mm;min-height:297mm;font-family:"Noto Sans KR","Apple SD Gothic Neo",Arial,sans-serif}.print-sheet.paper-a3{width:297mm;min-height:420mm}.print-sheet.landscape.paper-a4{width:297mm;min-height:210mm}.print-sheet.landscape.paper-a3{width:420mm;min-height:297mm}.print-sheet.mono{filter:grayscale(1)}.print-sheet.scale-small{font-size:10px}.print-sheet.scale-normal{font-size:12px}.print-sheet.scale-large{font-size:14px}.print-title{text-align:center;border-bottom:3px solid #122b50;padding-bottom:10px;margin-bottom:12px}.print-title h1{font-size:1.8em;margin:0 0 5px}.print-title p{margin:0;color:#475569}.print-meta{display:flex;justify-content:space-between;gap:12px;margin:8px 0 14px;color:#475569}.print-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.print-card{break-inside:avoid;border:1px solid #94a3b8;border-radius:8px;padding:9px}.print-card h3{margin:0 0 7px;padding-bottom:5px;border-bottom:1px solid #cbd5e1}.print-table{width:100%;border-collapse:collapse}.print-table th,.print-table td{border:1px solid #94a3b8;padding:5px 6px;text-align:left;vertical-align:top}.print-table th{background:#e8eef7}.print-table .center{text-align:center}.print-podium{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:22px 0}.print-podium>div{text-align:center;border:2px solid #cbd5e1;border-radius:12px;padding:20px 10px}.print-podium span{display:block;font-size:1.1em}.print-podium b{display:block;margin-top:8px;font-size:1.35em}.print-empty{text-align:center;padding:70px 20px;color:#64748b}.print-footer{margin-top:16px;padding-top:8px;border-top:1px solid #cbd5e1;text-align:right;color:#64748b;font-size:.85em}@media(max-width:900px){.print-control-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.print-preview{padding:8px;overflow:auto}.print-sheet{transform-origin:top left}}@media print{body.printing-output>*:not(#printOutputRoot){display:none!important}body.printing-output{background:#fff!important}#printOutputRoot{display:block!important;position:static!important}#printOutputRoot .print-sheet{box-shadow:none;margin:0;width:auto!important;min-height:0!important;padding:10mm}.no-print{display:none!important}}


/* Stage31.53 participant label printing */
.label-print-options{display:grid;grid-template-columns:repeat(3,minmax(150px,1fr));gap:12px;margin-top:12px;padding:14px;border:1px solid var(--border);border-radius:14px;background:var(--surface-soft)}
.label-print-options[hidden]{display:none!important}.label-print-options label{display:grid;gap:6px;font-weight:800}.label-print-options label span{font-size:.82rem;color:var(--muted)}.label-print-options select{padding:11px 12px;border:1px solid var(--border);border-radius:12px;background:var(--surface);font:inherit}
.label-print-sheet{padding:8mm!important}.label-sheet{display:grid;grid-template-columns:repeat(4,40mm);grid-auto-rows:12mm;gap:0;align-content:start;justify-content:center}.participant-label{position:relative;box-sizing:border-box;width:40mm;height:12mm;border:.2mm solid #b7c0cc;padding:1.3mm 2mm;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;overflow:hidden;break-inside:avoid;background:#fff}.participant-label strong{display:block;width:100%;font-size:9.2pt;line-height:1.05;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.participant-label span{display:block;width:100%;margin-top:.7mm;font-size:6.8pt;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#475569}.participant-label em{position:absolute;right:1mm;top:.7mm;font-style:normal;font-size:5.5pt;font-weight:900;color:#9a6700}.participant-label.reserve{background:#fff9e8}
@media(max-width:760px){.label-print-options{grid-template-columns:1fr}.label-sheet{grid-template-columns:repeat(4,40mm);transform-origin:top left}}
@media print{.label-print-sheet{padding:8mm!important}.label-sheet{grid-template-columns:repeat(4,40mm)!important;grid-auto-rows:12mm!important;gap:0!important}.participant-label{width:40mm!important;height:12mm!important;box-shadow:none!important}}

/* Stage 31.54 tournament lifecycle manager */
.tournament-lifecycle-manager{margin-top:24px;border:2px solid #dbe5f3;background:linear-gradient(180deg,#f8fbff,#fff)}
.tournament-create-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.tournament-create-grid label{display:grid;gap:6px}.tournament-create-grid span{font-weight:800;color:#253b5c}
.tournament-copy-options{display:flex;flex-wrap:wrap;gap:10px 18px;margin:14px 0}.tournament-copy-options label{display:flex;align-items:center;gap:7px;font-weight:700}
.tournament-template-list{display:grid;gap:10px}.tournament-template-card{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 15px;border:1px solid #dbe5f3;border-radius:14px;background:#fff}.tournament-template-card>div:first-child{display:grid;gap:3px}.tournament-template-card strong{font-size:16px}.tournament-template-card span,.tournament-template-card small{color:#65758b}.template-head,.reset-head{margin-top:22px}
.tournament-reset-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px}.tournament-reset-grid .btn{min-height:44px}
@media(max-width:900px){.tournament-create-grid{grid-template-columns:1fr 1fr}.tournament-reset-grid{grid-template-columns:1fr 1fr}.tournament-template-card{align-items:flex-start;flex-direction:column}}
@media(max-width:560px){.tournament-create-grid{grid-template-columns:1fr}.tournament-reset-grid{grid-template-columns:1fr}.tournament-template-card .button-row{width:100%}.tournament-template-card .button-row .btn{flex:1}}

/* Stage31.55 backup & recovery management */
.backup-status-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:14px 0}
.backup-status-grid article{padding:15px;border:1px solid var(--line,#dfe5ec);border-radius:14px;background:#fff;display:flex;flex-direction:column;gap:5px;min-width:0}
.backup-status-grid span{font-size:12px;color:#687385;font-weight:700}.backup-status-grid strong{font-size:19px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.backup-status-grid small{color:#7c8798;line-height:1.35}
.backup-action-grid{display:grid;grid-template-columns:minmax(220px,1.4fr) repeat(5,minmax(135px,auto));gap:10px;align-items:end;margin-bottom:15px}.backup-action-grid label:not(.file-button){display:flex;flex-direction:column;gap:6px}.backup-action-grid label span{font-size:12px;font-weight:800;color:#505c6e}
.backup-recovery-list{display:grid;gap:9px}.backup-recovery-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:13px 14px;border:1px solid var(--line,#dfe5ec);border-radius:13px;background:#fff}.backup-recovery-card h4{margin:0 0 5px;font-size:15px}.backup-recovery-card p{margin:0;color:#6f7b8c;font-size:12px;line-height:1.45}.backup-recovery-card .button-row{margin:0;flex-wrap:nowrap}.backup-list-head{margin-top:16px}.backup-import-preview{border:1px solid #aac8ff;background:#f2f7ff;border-radius:13px;padding:13px 15px;margin:12px 0;line-height:1.55}.backup-import-preview strong{display:block;margin-bottom:5px}.backup-import-preview.error{border-color:#f2b8b5;background:#fff4f3;color:#a12622}
@media(max-width:1000px){.backup-status-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.backup-action-grid{grid-template-columns:1fr 1fr}.backup-action-grid label:first-child{grid-column:1/-1}}
@media(max-width:640px){.backup-status-grid{grid-template-columns:1fr 1fr;gap:8px}.backup-status-grid article{padding:12px}.backup-action-grid{grid-template-columns:1fr}.backup-action-grid label:first-child{grid-column:auto}.backup-recovery-card{grid-template-columns:1fr}.backup-recovery-card .button-row{flex-wrap:wrap}.backup-recovery-card .button-row .btn{flex:1}}

/* Stage 31.56 social login */
.social-login-modal[hidden]{display:none}.social-login-modal{position:fixed;inset:0;z-index:10000;display:grid;place-items:center;padding:18px}.social-login-backdrop{position:absolute;inset:0;background:rgba(4,18,38,.66);backdrop-filter:blur(3px)}.social-login-card{position:relative;width:min(420px,100%);background:#fff;border-radius:22px;padding:22px;box-shadow:0 24px 70px rgba(0,0,0,.3);display:grid;gap:12px}.social-login-head{display:flex;justify-content:space-between;gap:12px}.social-login-head strong{display:block;font-size:1.3rem}.social-login-head span,.auth-current span{display:block;color:#667085;font-size:.9rem;margin-top:4px}.icon-close{border:0;background:#eef2f6;width:36px;height:36px;border-radius:50%;font-size:24px}.auth-current{padding:12px;background:#f6f8fb;border-radius:14px}.social-btn{border:0;border-radius:13px;min-height:50px;font-weight:800;font-size:1rem;cursor:pointer}.social-btn.kakao{background:#fee500;color:#191919}.social-btn.naver{background:#03c75a;color:#fff}.social-btn.google{background:#fff;color:#202124;border:1px solid #d9dee8}.social-login-card>p{font-size:.82rem;color:#667085;text-align:center}.auth-settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.auth-settings-grid label:first-child{grid-column:1/-1}.auth-settings-grid label span{display:block;font-weight:700;margin-bottom:6px}.auth-settings-grid input,.auth-settings-grid textarea{width:100%;box-sizing:border-box}@media(max-width:720px){.auth-settings-grid{grid-template-columns:1fr}.auth-settings-grid label:first-child{grid-column:auto}.role-switch #openSocialLoginBtn{order:-1}}

.notification-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.notification-center-view label{display:grid;gap:6px;margin:10px 0}.notification-center-view input,.notification-center-view textarea{width:100%;border:1px solid var(--line,#d8e1ef);border-radius:12px;padding:11px;background:#fff}.push-status-box{display:grid;gap:4px;padding:14px;border-radius:14px;background:#eef4ff;border:1px solid #cbdcf8}.push-status-box span,.push-status-box small{color:#5b6b82}.push-history-list{display:grid;gap:10px}.push-history-card{padding:14px;border:1px solid #dce4ef;border-radius:14px;background:#fff}.push-history-card header{display:flex;justify-content:space-between;gap:10px}.push-history-card p{margin:8px 0}.push-history-card small{color:#68768a}@media(max-width:760px){.notification-grid{grid-template-columns:1fr}.notification-center-view{padding-bottom:110px}}


/* Stage 31.57.1 · responsive navigation and mobile more menu */
@media(min-width:701px){
  .mode-tabs{display:flex!important;align-items:stretch;gap:4px;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;padding:8px!important;white-space:nowrap}
  .mode-tabs .tab{flex:0 0 auto!important;min-width:max-content!important;white-space:nowrap!important;word-break:keep-all!important;padding:10px 14px!important;line-height:1.2!important}
}
.mobile-more-sheet{display:none}
@media(max-width:700px){
  .mobile-bottom-nav{grid-template-columns:repeat(6,minmax(0,1fr))!important;overflow:visible!important;justify-content:stretch!important}
  .mobile-nav-button{min-width:0!important;flex:initial!important}
  .mobile-more-button span{font-size:20px;line-height:1;font-weight:900;letter-spacing:1px}
  .mobile-more-sheet{display:block;position:fixed;inset:0;z-index:120;opacity:0;pointer-events:none;transition:opacity .18s ease}
  .mobile-more-sheet[hidden]{display:none}
  .mobile-more-sheet.open{opacity:1;pointer-events:auto}
  .mobile-more-backdrop{position:absolute;inset:0;border:0;background:rgba(4,16,37,.54);backdrop-filter:blur(2px)}
  .mobile-more-panel{position:absolute;left:10px;right:10px;bottom:88px;padding:14px;border-radius:22px;background:#fff;box-shadow:0 20px 48px rgba(3,18,43,.35);transform:translateY(18px);transition:transform .18s ease}
  .mobile-more-sheet.open .mobile-more-panel{transform:translateY(0)}
  .mobile-more-head{display:flex;align-items:center;justify-content:space-between;padding:0 2px 10px}.mobile-more-head strong{font-size:18px;color:#10213c}.mobile-more-close{width:36px;height:36px;border:1px solid #d6deea;border-radius:50%;background:#f7f9fc;color:#20324e;font-size:23px;line-height:1}
  .mobile-more-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
  .mobile-more-grid button{display:grid;place-items:center;gap:6px;min-height:76px;padding:8px 4px;border:1px solid #e0e7f1;border-radius:15px;background:linear-gradient(145deg,#fff,#f4f7fc);color:#14233e;box-shadow:0 3px 9px rgba(23,48,82,.06)}
  .mobile-more-grid button span{font-size:22px}.mobile-more-grid button b{font-size:11px;line-height:1.25;word-break:keep-all}
  body.mobile-more-open{overflow:hidden}
}
@media(max-width:390px){.mobile-more-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.mobile-more-panel{left:6px;right:6px}}

/* Stage 31.57.2 · 관리자 설정 허브 */
.settings-proxy-source{display:none!important}
.mode-tabs .settings-managed-tab{display:none!important}
.compact-role-switch{display:flex;align-items:center;gap:8px;flex-wrap:nowrap}
.settings-hub-trigger{font-weight:900}
.settings-hub[hidden]{display:none!important}
.settings-hub{position:fixed;inset:0;z-index:10050;display:block}
.settings-hub-backdrop{position:absolute;inset:0;background:rgba(7,20,43,.58);opacity:0;transition:opacity .18s ease}
.settings-hub-panel{position:absolute;top:0;right:0;width:min(520px,94vw);height:100%;background:#f4f7fc;box-shadow:-20px 0 60px rgba(9,28,59,.24);transform:translateX(104%);transition:transform .2s ease;display:flex;flex-direction:column}
.settings-hub.open .settings-hub-backdrop{opacity:1}
.settings-hub.open .settings-hub-panel{transform:translateX(0)}
.settings-hub-head{display:flex;justify-content:space-between;gap:16px;padding:22px 22px 18px;background:linear-gradient(135deg,#10264a,#1f4c86);color:#fff}
.settings-hub-head span{font-size:.7rem;font-weight:900;letter-spacing:.08em;color:#ffd75a}
.settings-hub-head h2{margin:4px 0;font-size:1.55rem}
.settings-hub-head p{margin:0;font-size:.82rem;color:#dbeafe;line-height:1.45}
.settings-hub-close{border:0;background:rgba(255,255,255,.14);color:#fff;width:40px;height:40px;border-radius:12px;font-size:1.6rem;cursor:pointer}
.settings-hub-body{padding:16px 16px 34px;overflow:auto}
.settings-hub-group{background:#fff;border:1px solid #dbe5f2;border-radius:18px;padding:15px;margin-bottom:13px;box-shadow:0 8px 22px rgba(27,55,93,.07)}
.settings-hub-group h3{margin:0 0 11px;font-size:.92rem;color:#10264a}
.settings-hub-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.settings-hub-grid button{min-height:72px;border:1px solid #dbe5f2;border-radius:14px;background:#f8fbff;color:#10264a;padding:11px 12px;text-align:left;font-weight:900;font-size:.86rem;cursor:pointer;transition:.15s ease}
.settings-hub-grid button:hover{border-color:#7da7dc;background:#eef5ff;transform:translateY(-1px)}
.settings-hub-grid small{display:block;margin-top:5px;color:#64748b;font-size:.69rem;font-weight:600;line-height:1.3}
body.settings-hub-open{overflow:hidden}
@media(max-width:700px){
  .top-actions #saveStateBadge{display:none!important}
  .compact-role-switch #roleViewerBtn{display:none}
  .settings-hub-panel{width:100%;top:auto;bottom:0;height:min(88vh,760px);border-radius:24px 24px 0 0;transform:translateY(104%)}
  .settings-hub.open .settings-hub-panel{transform:translateY(0)}
  .settings-hub-head{padding:18px}
  .settings-hub-body{padding:12px 12px 28px}
  .settings-hub-group{padding:13px}
  .settings-hub-grid{gap:8px}
  .settings-hub-grid button{min-height:68px;padding:10px;font-size:.82rem}
}


/* Stage31.58 tournament day readiness */
.readiness-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.8fr);gap:16px}.readiness-overall{display:flex;justify-content:space-between;align-items:center;padding:16px 18px;border-radius:16px;background:#eef4ff;border:1px solid #bfd1ee}.readiness-overall strong{font-size:1.05rem}.readiness-overall span{font-weight:800}.readiness-overall.safe{background:#ecfdf3;border-color:#86efac;color:#166534}.readiness-overall.warning{background:#fff8df;border-color:#f4cf66;color:#7a5600}.readiness-overall.danger{background:#fff0f0;border-color:#f3a6a6;color:#9f1d1d}.readiness-checklist{display:flex;flex-direction:column;gap:10px}.readiness-item{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:12px;align-items:center;padding:13px;border:1px solid #d9e2f0;border-radius:14px;background:#fff}.readiness-item.ok{border-color:#a7dfba;background:#f6fff9}.readiness-item.warn{border-color:#f0d27a;background:#fffdf4}.readiness-item.fail{border-color:#efa6a6;background:#fff7f7}.readiness-icon{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;font-weight:1000;background:#e9eef6}.readiness-item.ok .readiness-icon{background:#22c55e;color:#fff}.readiness-item.warn .readiness-icon{background:#f59e0b;color:#fff}.readiness-item.fail .readiness-icon{background:#ef4444;color:#fff}.readiness-item strong{display:block}.readiness-item strong em{font-size:.68rem;font-style:normal;color:#64748b}.readiness-item p{margin:3px 0 0;color:#64748b;font-size:.8rem}.readiness-summary{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:14px}.readiness-summary div{padding:14px;border-radius:14px;background:#f6f8fc}.readiness-summary span{display:block;color:#64748b;font-size:.76rem}.readiness-summary strong{font-size:1.25rem}@media(max-width:820px){.readiness-layout{grid-template-columns:1fr}.readiness-overall{align-items:flex-start;flex-direction:column;gap:5px}.readiness-item{grid-template-columns:34px minmax(0,1fr)}.readiness-item .btn{grid-column:2;width:100%}.readiness-summary{grid-template-columns:repeat(3,1fr)}}

/* Stage31.58.1 entry tournament selector */
.entry-tournament-help{display:block;margin-top:6px;color:var(--text-muted,#64748b);font-size:.76rem;line-height:1.45}.legacy-entry-form-grid select.form-select{width:100%;min-height:44px;border:1px solid #cbd5e1;border-radius:10px;background:#fff;padding:0 12px;font:inherit;color:#0f1e3a}


/* Stage 31.59 diagnostics */
.diagnostics-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;margin:16px 0}.diagnostics-overall{padding:14px 16px;border-radius:14px;font-weight:900}.diagnostics-overall.safe{background:#dcfce7;color:#166534}.diagnostics-overall.danger{background:#fee2e2;color:#991b1b}.diagnostics-checks,.diagnostics-error-list{display:grid;gap:10px}.diagnostics-check{display:grid;grid-template-columns:36px 1fr;gap:10px;align-items:start;padding:12px;border:1px solid #dbe4f0;border-radius:14px;background:#fff}.diagnostics-check>span{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;font-weight:900}.diagnostics-check.ok>span{background:#dcfce7;color:#166534}.diagnostics-check.fail>span{background:#fee2e2;color:#991b1b}.diagnostics-check.warn>span{background:#fef3c7;color:#92400e}.diagnostics-check p,.diagnostics-error p{margin:4px 0 0;color:#64748b}.diagnostics-error{padding:12px;border-radius:14px;border-left:5px solid #dc2626;background:#fff7f7}.diagnostics-error.warning{border-left-color:#d97706;background:#fffbeb}.diagnostics-error>div{display:flex;justify-content:space-between;gap:10px}.diagnostics-error time,.diagnostics-error small{font-size:.75rem;color:#64748b}.diagnostics-summary-text{white-space:pre-wrap;background:#0f1e3a;color:#fff;border-radius:14px;padding:14px;min-height:120px}@media(max-width:860px){.diagnostics-layout{grid-template-columns:1fr}.diagnostics-error>div{flex-direction:column;gap:2px}}
/* Stage31.61 operation acceptance */
.acceptance-center-view{display:grid;gap:16px}.acceptance-head{border-top:4px solid #d4a017}.acceptance-overall{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:14px 16px;border-radius:14px;background:#eef2f7}.acceptance-overall strong{font-size:1.05rem}.acceptance-overall.safe{background:#dcfce7;color:#166534}.acceptance-overall.warning{background:#fef3c7;color:#92400e}.acceptance-overall.danger{background:#fee2e2;color:#991b1b}.acceptance-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);gap:16px}.acceptance-checklist{display:grid;gap:9px}.acceptance-item{display:grid;grid-template-columns:34px 1fr;gap:10px;align-items:start;padding:12px;border:1px solid #dbe4f0;border-radius:13px;background:#fff}.acceptance-item>span{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;font-weight:900}.acceptance-item.ok>span{background:#dcfce7;color:#15803d}.acceptance-item.warn>span{background:#fef3c7;color:#92400e}.acceptance-item.fail>span{background:#fee2e2;color:#b91c1c}.acceptance-item strong{display:block}.acceptance-item p{margin:3px 0;color:#64748b}.acceptance-item small{color:#94a3b8}.acceptance-item em{font-style:normal;font-size:.68rem;color:#92400e;background:#fef3c7;padding:2px 6px;border-radius:999px}.acceptance-data-summary{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}.acceptance-data-summary>div{padding:12px;border-radius:12px;background:#f4f7fb}.acceptance-data-summary span{display:block;font-size:.75rem;color:#64748b}.acceptance-data-summary strong{display:block;margin-top:4px;font-size:1rem;word-break:keep-all}@media(max-width:800px){.acceptance-layout{grid-template-columns:1fr}.acceptance-overall{align-items:flex-start;flex-direction:column}.acceptance-data-summary{grid-template-columns:1fr 1fr}}

.rehearsal-center-view{display:grid;gap:16px}.rehearsal-head{border-top:4px solid #7c3aed}.rehearsal-overall{display:flex;justify-content:space-between;gap:12px;padding:14px 16px;border-radius:14px;background:#eef2f7}.rehearsal-overall.safe{background:#dcfce7;color:#166534}.rehearsal-overall.danger{background:#fee2e2;color:#991b1b}.rehearsal-layout{display:grid;grid-template-columns:minmax(280px,.7fr) minmax(0,1.3fr);gap:16px}.rehearsal-safety{margin:14px 0;padding:12px;border-radius:12px;background:#f5f3ff;border:1px solid #ddd6fe}.rehearsal-safety strong{color:#6d28d9}.rehearsal-safety p{margin:4px 0 0;color:#64748b}.rehearsal-stages{display:grid;gap:9px}.rehearsal-stage{display:grid;grid-template-columns:32px 1fr;gap:10px;padding:12px;border:1px solid #dbe4f0;border-radius:13px}.rehearsal-stage>span{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;font-weight:900}.rehearsal-stage.ok>span{background:#dcfce7;color:#15803d}.rehearsal-stage.fail>span{background:#fee2e2;color:#b91c1c}.rehearsal-stage p{margin:3px 0;color:#64748b}.rehearsal-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.rehearsal-summary>div{padding:12px;border-radius:12px;background:#f4f7fb}.rehearsal-summary .wide{grid-column:1/-1}.rehearsal-summary span{display:block;font-size:.75rem;color:#64748b}.rehearsal-summary strong{display:block;margin-top:4px}@media(max-width:800px){.rehearsal-layout{grid-template-columns:1fr}.rehearsal-overall{flex-direction:column}.rehearsal-summary{grid-template-columns:1fr 1fr}}


/* Stage31.63 large-scale performance center */
.performance-center-view{display:grid;gap:16px}.performance-head{border-top:4px solid #0f766e}.performance-overall{display:flex;justify-content:space-between;gap:12px;padding:14px 16px;border-radius:14px;background:#eef2f7;font-weight:800}.performance-overall.safe{background:#dcfce7;color:#166534}.performance-overall.danger{background:#fee2e2;color:#991b1b}.performance-layout{display:grid;grid-template-columns:minmax(280px,.7fr) minmax(0,1.3fr);gap:16px}.performance-safety{margin:14px 0;padding:12px;border-radius:12px;background:#ecfeff;border:1px solid #99f6e4}.performance-safety strong{color:#0f766e}.performance-safety p{margin:4px 0 0;color:#64748b}.performance-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.performance-metrics>div{padding:13px;border-radius:12px;background:#f4f7fb}.performance-metrics .wide{grid-column:1/-1}.performance-metrics .danger{background:#fff1f2;color:#9f1239}.performance-metrics span{display:block;font-size:.74rem;color:#64748b}.performance-metrics strong{display:block;margin-top:4px;font-size:1.12rem}.performance-grade{font-weight:900}.performance-grade.grade-a{background:#dcfce7;color:#166534}.performance-grade.grade-b{background:#fef3c7;color:#92400e}.performance-grade.grade-c{background:#fee2e2;color:#991b1b}.performance-advice{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.performance-advice-item{display:grid;grid-template-columns:32px 1fr;gap:10px;padding:12px;border:1px solid #dbe4f0;border-radius:13px}.performance-advice-item>span{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;font-weight:900}.performance-advice-item.ok>span{background:#dcfce7;color:#15803d}.performance-advice-item.warn>span{background:#fef3c7;color:#92400e}.performance-advice-item p{margin:3px 0;color:#64748b}@media(max-width:800px){.performance-layout{grid-template-columns:1fr}.performance-overall{flex-direction:column}.performance-advice{grid-template-columns:1fr}}

/* Stage31.65 automatic SMS approval */
.auto-sms-settings-card{margin:14px 0;border:1px solid #fed7aa;background:linear-gradient(135deg,#fff7ed,#fff)}
.auto-sms-settings-card h3{margin:0;color:#9a3412}.auto-sms-approval-dialog{width:min(620px,calc(100vw - 24px));border:0;border-radius:22px;padding:0;box-shadow:0 24px 70px rgba(15,23,42,.3)}
.auto-sms-approval-dialog::backdrop{background:rgba(15,23,42,.62)}.auto-sms-approval-dialog form{padding:0}.auto-sms-approval-dialog .modal-head,.auto-sms-approval-dialog .modal-body,.auto-sms-approval-dialog .modal-actions{padding:18px 20px}
.auto-sms-approval-dialog textarea{width:100%;min-height:150px;resize:vertical}.auto-sms-actions{display:flex;gap:8px;flex-wrap:wrap}.auto-sms-actions .btn{flex:1;min-width:120px}
@media(max-width:640px){.auto-sms-approval-dialog{width:calc(100vw - 16px)}.auto-sms-actions .btn{flex-basis:calc(50% - 8px)}}


/* Stage31.66 SMS delivery acceptance */
.sms-acceptance-card{margin-top:16px;border:1px solid #bfdbfe;background:linear-gradient(180deg,#eff6ff,#fff)}
.sms-acceptance-actions,.sms-test-send-box{display:flex;gap:10px;flex-wrap:wrap;align-items:end;margin-top:12px}
.sms-test-send-box label{flex:1 1 220px}.sms-test-send-box button{min-height:44px}
.sms-acceptance-result{margin-top:14px}.sms-acceptance-summary{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:13px 14px;border-radius:14px;background:#fff;border:1px solid #dbeafe}.sms-acceptance-summary span{color:#475569;font-size:.88rem}
.sms-check-list{display:grid;gap:8px;margin-top:10px}.sms-check-row{display:flex;justify-content:space-between;gap:14px;padding:11px 12px;border-radius:12px;background:#fff;border:1px solid #e2e8f0}.sms-check-row.pass{border-color:#bbf7d0}.sms-check-row.warn{border-color:#fde68a;background:#fffbeb}.sms-check-row.fail{border-color:#fecaca;background:#fef2f2}.sms-check-row span{color:#475569;text-align:right}.badge-danger{background:#fee2e2!important;color:#b91c1c!important;border-color:#fecaca!important}
@media(max-width:720px){.sms-acceptance-summary,.sms-check-row{align-items:flex-start;flex-direction:column}.sms-check-row span{text-align:left}.sms-acceptance-actions>*{flex:1 1 100%}.sms-test-send-box button{width:100%}}


/* Stage32.3 new tournament wizard */
.wizard-overlay{position:fixed;inset:0;z-index:2147482500;background:rgba(4,18,43,.72);display:flex;align-items:center;justify-content:center;padding:20px;backdrop-filter:blur(5px)}
.wizard-overlay[hidden]{display:none!important}.wizard-dialog{width:min(820px,100%);max-height:min(820px,92vh);overflow:auto;background:#fff;border-radius:24px;box-shadow:0 30px 80px rgba(0,0,0,.34);border:1px solid #d8e3f4}.wizard-head{display:flex;justify-content:space-between;gap:20px;padding:24px 26px 18px;background:linear-gradient(135deg,#102f61,#1f4d8d);color:#fff}.wizard-head h2{margin:3px 0 5px}.wizard-head p{margin:0;opacity:.85}.wizard-kicker{font-size:.72rem;font-weight:900;letter-spacing:.08em;color:#ffe168}.wizard-close{width:42px;height:42px;border:0;border-radius:50%;font-size:25px;background:rgba(255,255,255,.14);color:#fff;cursor:pointer}.wizard-progress{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;padding:16px 22px;border-bottom:1px solid #e1e8f2}.wizard-progress span{padding:9px 7px;border-radius:999px;text-align:center;font-size:.8rem;font-weight:800;background:#f1f5f9;color:#64748b}.wizard-progress span.active{background:#173d74;color:#fff}.wizard-progress span.done{background:#dcfce7;color:#166534}.wizard-body{padding:22px 26px}.wizard-step{display:none}.wizard-step.active{display:block}.wizard-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.wizard-grid label{display:flex;flex-direction:column;gap:7px;font-weight:800;color:#20324d}.wizard-grid input,.wizard-grid select{min-height:46px;padding:10px 12px;border:1px solid #cbd8eb;border-radius:12px;font:inherit;background:#fff}.wizard-checks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:16px 0}.wizard-checks label,.wizard-confirm{display:flex;align-items:center;gap:9px;padding:13px;border:1px solid #d7e1ef;border-radius:13px;font-weight:800}.wizard-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:18px}.wizard-summary article{padding:14px;border-radius:14px;background:#f4f7fb;border:1px solid #dde6f1}.wizard-summary span{display:block;font-size:.75rem;color:#66758a}.wizard-summary strong{display:block;margin-top:5px;color:#102a50}.wizard-message{margin-top:15px;padding:12px;border-radius:12px;background:#fff4e5;color:#8a4b00;font-weight:800}.wizard-message.error{background:#fee2e2;color:#991b1b}.wizard-message.success{background:#dcfce7;color:#166534}.wizard-actions{display:flex;justify-content:flex-end;gap:10px;padding:18px 26px;border-top:1px solid #e1e8f2;background:#fafcff;position:sticky;bottom:0}
@media(max-width:640px){.wizard-overlay{padding:0;align-items:flex-end}.wizard-dialog{border-radius:22px 22px 0 0;max-height:94vh}.wizard-head{padding:18px}.wizard-progress{grid-template-columns:repeat(4,1fr);padding:12px 10px}.wizard-progress span{font-size:.66rem;padding:8px 3px}.wizard-body{padding:18px}.wizard-grid,.wizard-checks,.wizard-summary{grid-template-columns:1fr}.wizard-actions{padding:14px 18px}.wizard-actions .btn{min-height:46px;flex:1}}


/* Stage32.5.1 two-player registration */
.entry-player-card{margin:0;padding:14px;border:1px solid #cbd5e1;border-radius:14px;background:#f8fbff;min-width:0}
.entry-player-card legend{padding:0 8px;font-weight:900;color:#173f79}
.entry-player-grid{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:12px;align-items:end}
.entry-player-grid label{min-width:0}
.entry-primary-contact{display:flex!important;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 12px;border:1px solid #9fb9dc;border-radius:11px;background:#fff;color:#173f79;font-weight:800;white-space:nowrap;cursor:pointer}
.entry-primary-contact input{width:18px;height:18px;accent-color:#173f79}
@media(max-width:900px){.entry-player-grid{grid-template-columns:1fr 1fr}.entry-primary-contact{grid-column:1/-1;justify-content:flex-start}}
@media(max-width:620px){.entry-player-grid{grid-template-columns:1fr}.entry-primary-contact{grid-column:auto}.entry-player-card{padding:12px}}

.admin-entry-management{margin-top:22px}.admin-entry-management .entry-admin-toolbar{justify-content:space-between;align-items:end;gap:12px;flex-wrap:wrap}.admin-entry-management .entry-admin-toolbar:before{content:attr(data-summary);font-weight:800;color:var(--muted);font-size:.88rem}.admin-entry-management #createTestApplicationsBtn{background:#eef2ff;border-color:#a5b4fc;color:#3730a3}.admin-entry-management .entry-admin-list{margin-top:10px}@media(max-width:760px){.admin-entry-management{margin-top:16px}.admin-entry-management .entry-admin-toolbar{display:grid;grid-template-columns:1fr}.admin-entry-management .entry-admin-toolbar:before{grid-row:1}.admin-entry-management #createTestApplicationsBtn{width:100%}}

/* Stage 32.6.3 · public entry status */
.entry-public-status-board{margin-top:18px}
.entry-public-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:14px 0}
.entry-public-summary>div{background:#f6f9fe;border:1px solid #dbe6f5;border-radius:14px;padding:14px}.entry-public-summary span{display:block;color:#64748b;font-size:.86rem}.entry-public-summary strong{display:block;margin-top:5px;font-size:1.25rem}
.entry-public-columns{display:grid;grid-template-columns:1fr 1fr;gap:16px}.entry-public-columns h3{margin:0 0 10px}.entry-public-team-list{display:grid;gap:8px}.entry-public-team-row{display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:10px;border:1px solid #dbe6f5;border-radius:12px;padding:10px 12px;background:#fff}.entry-public-team-row small{display:block;color:#64748b;margin-top:2px}.entry-public-order{width:30px;height:30px;display:grid;place-items:center;border-radius:10px;background:#eef4ff;font-weight:800;color:#1d4ed8}
#currentRoleBadge{cursor:pointer}
@media(max-width:760px){.entry-public-summary{grid-template-columns:1fr 1fr}.entry-public-columns{grid-template-columns:1fr}.entry-public-summary>div:last-child{grid-column:1/-1}}

/* Stage 32.8 tournament guide image */
.tournament-guide-image img,.archived-guide-image{display:block;max-width:100%;height:auto;margin:12px auto 0;border-radius:16px;border:1px solid var(--line,#d9e2f0);background:#fff}
.guide-image-editor-preview{padding:12px;border:1px dashed var(--line,#cbd8ea);border-radius:14px;background:#f8fbff}
.guide-image-editor-preview img{display:block;max-width:100%;max-height:520px;object-fit:contain;margin:0 auto 12px;border-radius:12px}
.archived-guide-image-wrap{margin-top:16px}.archived-guide-image-actions{display:flex;justify-content:flex-end;margin-top:10px}


/* Stage 32.12 · match-day role quick hub */
.stage3212-matchday-hub{padding:18px;border:1px solid #d6e1f0;background:linear-gradient(145deg,#fff,#f5f8fd)}
.stage3212-hub-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}
.stage3212-hub-head h2{margin:7px 0 3px;color:#10264a;font-size:1.35rem}.stage3212-hub-head p{margin:0;color:#66758d}
.stage3212-hub-status{flex:0 0 auto;padding:7px 11px;border-radius:999px;background:#e9eef6;color:#42516a;font-size:.78rem;font-weight:900}
.stage3212-hub-status[data-state="ready"]{background:#e4f7ea;color:#19703b}.stage3212-hub-status[data-state="live"]{background:#fff1cc;color:#8b5b00}
.stage3212-public-actions{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px}
.stage3212-public-actions button{display:grid;grid-template-rows:auto auto auto;place-items:center;gap:3px;min-height:104px;padding:12px 6px;border:1px solid #dce5f1;border-radius:16px;background:#fff;color:#142746;box-shadow:0 4px 12px rgba(28,54,91,.06)}
.stage3212-public-actions button:hover{transform:translateY(-1px);border-color:#9eb6d8;box-shadow:0 8px 18px rgba(28,54,91,.1)}
.stage3212-public-actions span{font-size:1.5rem}.stage3212-public-actions b{font-size:.92rem}.stage3212-public-actions small{font-size:.7rem;color:#728098;text-align:center;line-height:1.3}
.stage3212-admin-actions{display:flex;align-items:center;gap:13px;margin-top:12px;padding:12px;border-radius:14px;background:#10264a;color:#fff}
.stage3212-admin-actions>strong{white-space:nowrap;font-size:.85rem}.stage3212-admin-actions>div{display:flex;flex-wrap:wrap;gap:7px}
.stage3212-admin-actions button{min-height:36px;padding:7px 11px;border:1px solid rgba(255,255,255,.24);border-radius:10px;background:rgba(255,255,255,.1);color:#fff;font-weight:800}
@media(max-width:900px){.stage3212-public-actions{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.stage3212-matchday-hub{padding:14px}.stage3212-hub-head{display:block}.stage3212-hub-status{display:inline-block;margin-top:9px}.stage3212-public-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.stage3212-public-actions button{min-height:92px}.stage3212-admin-actions{display:block}.stage3212-admin-actions>strong{display:block;margin-bottom:8px}.stage3212-admin-actions>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.stage3212-admin-actions button{font-size:.75rem}}

.rehearsal-details{display:grid;gap:8px}.rehearsal-detail{display:grid;grid-template-columns:30px 1fr;gap:10px;padding:11px 12px;border:1px solid #dbe4f0;border-radius:12px;background:#fff}.rehearsal-detail>span{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;font-weight:900}.rehearsal-detail.pass>span{background:#dcfce7;color:#15803d}.rehearsal-detail.warn>span{background:#fef3c7;color:#92400e}.rehearsal-detail.fail>span{background:#fee2e2;color:#b91c1c}.rehearsal-detail p{margin:3px 0 0;color:#64748b}


/* Stage 33.1 · match-day operation dashboard */
.stage331-operation-dashboard{padding:18px;border:1px solid #cad9ec;background:linear-gradient(145deg,#ffffff,#f4f8fe)}
.stage331-dashboard-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px}.stage331-dashboard-head h2{margin:7px 0 3px;color:#10264a}.stage331-dashboard-head p{margin:0;color:#64748b}.stage331-dashboard-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.stage331-dashboard-state{padding:8px 12px;border-radius:999px;background:#e8eef7;color:#42516a;font-size:.78rem;font-weight:900}.stage331-dashboard-state[data-state="live"]{background:#dcfce7;color:#166534}.stage331-dashboard-state[data-state="warn"]{background:#fef3c7;color:#92400e}.stage331-dashboard-state[data-state="danger"]{background:#fee2e2;color:#b91c1c}
.stage331-metric-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px}.stage331-metric-grid button{min-width:0;text-align:left;padding:13px;border:1px solid #dbe5f2;border-radius:14px;background:#fff;color:#10264a;cursor:pointer}.stage331-metric-grid button:hover{border-color:#8eacd3;transform:translateY(-1px)}.stage331-metric-grid span,.stage331-metric-grid small{display:block}.stage331-metric-grid span{font-size:.76rem;font-weight:800;color:#64748b}.stage331-metric-grid strong{display:block;margin:3px 0;font-size:1.55rem}.stage331-metric-grid small{font-size:.68rem;color:#7b8798}.stage331-warning-metric strong{color:#b36b00}.stage331-danger-metric strong{color:#c02626}
.stage331-dashboard-body{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:13px}.stage331-dashboard-body>article{min-width:0;padding:13px;border:1px solid #dbe5f2;border-radius:15px;background:#fff}.stage331-list-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:9px}.stage331-list-head h3{margin:0;font-size:.98rem;color:#10264a}.stage331-list-head span{font-size:.75rem;font-weight:900;color:#64748b}.stage331-dashboard-list{display:grid;gap:7px}.stage331-list-item{display:grid;grid-template-columns:30px minmax(0,1fr);gap:9px;align-items:center;width:100%;padding:9px 10px;border:1px solid #e1e8f2;border-radius:11px;background:#f9fbfe;color:#172b4d;text-align:left;cursor:pointer}.stage331-list-item>span{display:grid;place-items:center;width:28px;height:28px;border-radius:9px;background:#eaf1fb;font-weight:900}.stage331-list-item strong,.stage331-list-item small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stage331-list-item strong{font-size:.8rem}.stage331-list-item small{margin-top:3px;color:#64748b;font-size:.69rem}.stage331-list-item.warn{border-color:#f2d38a;background:#fffaf0}.stage331-list-item.warn>span{background:#fef3c7;color:#92400e}.stage331-list-item.danger{border-color:#f2b4b4;background:#fff6f6}.stage331-list-item.danger>span{background:#fee2e2;color:#b91c1c}.stage331-empty,.stage331-empty-ok{padding:14px;border-radius:11px;background:#f6f8fc;color:#64748b;font-size:.8rem}.stage331-empty-ok{background:#f0fdf4;color:#166534;font-weight:800}
@media(max-width:1000px){.stage331-metric-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.stage331-operation-dashboard{padding:14px}.stage331-dashboard-head{display:block}.stage331-dashboard-actions{margin-top:10px;justify-content:flex-start}.stage331-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.stage331-metric-grid button{padding:11px}.stage331-dashboard-body{grid-template-columns:1fr}.stage331-list-item strong,.stage331-list-item small{white-space:normal}.stage331-dashboard-actions .btn{flex:1}}


/* Stage 34.0 · integrated field operation */
.score-quick-panel{margin-top:14px;padding:14px;border:1px solid var(--line,#d8dee8);border-radius:14px;background:var(--surface-soft,#f7f9fc)}
.score-side-buttons,.score-number-buttons{display:grid;gap:8px}.score-side-buttons{grid-template-columns:1fr 1fr;margin-bottom:10px}.score-number-buttons{grid-template-columns:repeat(6,1fr);margin-bottom:12px}
.score-number-buttons button{min-height:46px;border:1px solid var(--line,#d8dee8);border-radius:12px;background:#fff;font-size:18px;font-weight:700}.score-side-buttons .is-selected{background:var(--primary,#2457e6);color:#fff;border-color:var(--primary,#2457e6)}
.score-live-preview{margin:10px 0 0;padding:10px 12px;border-radius:10px;background:#fff;text-align:center;font-weight:700}
@media(max-width:480px){.score-number-buttons{gap:6px}.score-number-buttons button{min-height:44px;padding:0}.score-quick-panel{padding:12px}}


/* Stage 34.3.2 division manager */
.division-manager-dialog{width:min(920px,96vw);max-width:none;padding:0;overflow:hidden}.division-manager-dialog::backdrop{background:rgba(8,22,48,.64)}.division-manager-dialog .modal-head p{margin:5px 0 0;opacity:.82}.division-manager-body{padding:18px 20px 20px}.division-manager-list{display:grid;gap:10px;max-height:52vh;overflow:auto}.division-manager-item{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:14px;border:1px solid #d8e2ef;border-radius:14px;background:#fff}.division-manager-item.active{border:2px solid #1d4c86;background:#f3f8ff}.division-manager-item>div:first-child{display:grid;gap:4px}.division-manager-item>div:last-child{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.division-manager-item span{font-size:12px;font-weight:900;color:#1d4c86}.division-manager-item small{color:#66758a}.division-add-row{display:grid;grid-template-columns:minmax(180px,1fr) auto auto;gap:9px;margin-top:14px}.division-add-row input,.division-editor-add input{min-height:42px;border:1px solid #cbd8e8;border-radius:11px;padding:0 12px}.division-manager-note{margin:12px 0 0;color:#66758a;font-size:13px}.division-editor-panel{margin:12px 0;padding:14px;border:2px solid #bdd0e8;border-radius:15px;background:#f8fbff}.division-editor-panel-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:10px}.division-editor-panel-head>div{display:grid;gap:3px}.division-editor-panel-head small{color:#66758a}.division-editor-list{display:grid;gap:8px}.division-editor-item{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:11px;border:1px solid #d7e2f0;border-radius:12px;background:#fff}.division-editor-item.active{border-color:#1d4c86;background:#edf5ff}.division-editor-item>div:first-child{display:grid;gap:3px}.division-editor-item>div:last-child{display:flex;gap:6px}.division-editor-item span{font-size:11px;font-weight:900;color:#1d4c86}.division-editor-item small{color:#64748b}.division-editor-add{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:10px}@media(max-width:720px){.division-manager-item,.division-editor-item,.division-editor-panel-head{align-items:stretch;flex-direction:column}.division-manager-item>div:last-child,.division-editor-item>div:last-child{justify-content:stretch}.division-manager-item .btn,.division-editor-item .btn{flex:1}.division-add-row{grid-template-columns:1fr}.division-editor-add{grid-template-columns:1fr}.division-manager-dialog{width:calc(100vw - 12px)}}
