.league-page{width:100%;padding:32px clamp(18px,3vw,56px);margin:auto;color:var(--ink,#2a1a5e)}.league-top,.league-actions,.league-metrics{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.league-top{justify-content:space-between;margin-bottom:24px}.league-hero{background:linear-gradient(125deg,#2a1a5e,#58358a);color:white;border-radius:24px;padding:clamp(24px,4vw,56px);margin-bottom:24px}.league-hero h1{color:white;font-size:clamp(28px,3.4vw,48px);line-height:1.15}.league-hero p,.league-hero .eyebrow{color:#eee4ff}.league-metrics{margin-top:28px;gap:32px}.league-metrics b{display:block;color:#ffe578;font-size:28px}.league-branch{display:block;max-width:360px;margin:20px 0}.league-tabs{display:flex;gap:8px;overflow:auto;padding:10px 0;position:sticky;top:76px;z-index:3;background:#fffaf6}.league-tabs button{white-space:nowrap;border:1px solid #e4dced;background:white;color:#2a1a5e;border-radius:999px;padding:12px 22px;font-weight:700;cursor:pointer}.league-tabs .selected{background:#2a1a5e;color:white}.league-section{background:white;border:1px solid #e7deee;border-radius:18px;padding:24px;margin:18px 0;min-width:0}.league-section>summary{font-weight:800;font-size:18px;cursor:pointer;color:#4c2477}.league-section summary small{display:block;font-weight:400;margin:8px 0}.league-grid,.league-prizes{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:18px}.league-team{padding:24px;border:1px solid #e7deee;border-radius:16px}.league-team>span{font-size:28px}.league-match{display:flex;justify-content:space-between;align-items:center;gap:16px;border-bottom:1px solid #eee6f3;padding:22px 0}.league-match h3{display:flex;gap:16px;flex-wrap:wrap}.league-match h3 span{color:#d50070;white-space:nowrap}.league-round{margin-top:28px}.league-prize{display:flex;gap:16px;padding:24px;border:1px solid #ecdfbb;background:#fffcf2;border-radius:18px}.league-prize>span{font-size:28px}.league-scorers{padding:0;list-style-position:inside}.league-scorers li{display:flex;gap:20px;justify-content:space-between;border-bottom:1px solid #eee;padding:18px}.league-roster{list-style:none;padding:0}.league-roster>li{display:flex;gap:12px;padding:16px 0;border-bottom:1px solid #eee}.league-roster img{width:56px;height:64px;object-fit:cover;border-radius:10px}.league-roster small{display:block;margin:8px 0}.league-actions{margin:16px 0}.league-actions button{font-size:12px;min-height:38px;padding:9px 13px}.league-dialog{max-width:800px;width:100%;min-width:0}.league-form{display:grid;gap:16px;margin:22px 0}.league-form label{min-width:0}.league-form .checkbox{display:flex;align-items:flex-start;gap:10px}.league-form .checkbox input{flex:0 0 18px;width:18px;height:18px;margin-top:3px}.league-form fieldset{min-width:0}.league-incident{padding:16px;border:1px solid #e7deee;border-radius:12px;display:grid;gap:10px}.league-personal{max-width:620px;margin:40px auto;padding:28px}.league-personal blockquote{padding:20px;margin:20px 0;background:#f5f0fa;border-left:4px solid #d50070;line-height:1.7}.league-credential{border:1px solid #e5d9ed;border-radius:24px;padding:28px;text-align:center;background:white}.league-credential svg{width:min(100%,290px);height:auto}.league-pin{display:block;font-size:42px;letter-spacing:10px;text-align:center;padding:30px;background:#f5effb;border-radius:16px}.league-entry{margin-top:16px}.league-scan-photo{width:130px;height:150px;object-fit:cover;border-radius:12px}#league-camera{width:100%;max-height:360px;border-radius:16px}#league-history svg{width:100%;height:auto}.league-section pre{white-space:pre-wrap;overflow-wrap:anywhere}.league-section caption{padding:12px;text-align:left;font-weight:700}.league-form [hidden]{display:none!important}@media(max-width:700px){.league-page{padding:20px 14px}.league-section{padding:16px}.league-match{align-items:flex-start;flex-direction:column}.league-tabs{top:60px}.league-scorers li{flex-wrap:wrap}.league-personal{margin:10px auto;padding:20px}.league-dialog .form-row{grid-template-columns:1fr}.league-metrics{gap:20px}}@media print{body:has(.league-credential) .league-personal>button{display:none}body:has(.league-credential) .league-personal{margin:0 auto;max-width:480px}}
