.most-v4{--navy:#0f172a;--blue:#2563eb;--sky:#eaf4ff;--line:#e2e8f0;--muted:#64748b;--green:#16a34a;--red:#dc2626;font-family:Inter,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;color:var(--navy);max-width:1320px;margin:0 auto;padding:0 14px 34px}.most-v4 *{box-sizing:border-box}.v4-hero{min-height:190px;border-radius:24px;padding:30px 34px;background:linear-gradient(120deg,#0f2c59,#1559a6 65%,#0e7490);color:#fff;display:flex;align-items:center;justify-content:space-between;overflow:hidden;position:relative;box-shadow:0 14px 38px rgba(15,23,42,.18)}.v4-hero:after{content:"";position:absolute;width:290px;height:290px;border-radius:50%;background:rgba(255,255,255,.08);right:-80px;top:-100px}.v4-hero span{font-size:12px;letter-spacing:.13em;font-weight:800;opacity:.9}.v4-hero h1{font-size:clamp(28px,4vw,46px);margin:8px 0}.v4-hero p{margin:0;opacity:.9}.v4-trophy{font-size:70px;z-index:1}.v4-kpis-public{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:-28px 22px 16px;position:relative;z-index:2}.v4-kpis-public>div{background:#fff;border:1px solid var(--line);border-radius:16px;padding:17px;text-align:center;box-shadow:0 8px 20px rgba(15,23,42,.08)}.v4-kpis-public b{display:block;font-size:28px;color:#0f3f76}.v4-kpis-public span{font-size:12px;color:var(--muted);font-weight:700}.overall-progress{background:#fff;border:1px solid var(--line);border-radius:15px;padding:16px 18px;margin:15px 0}.overall-progress>div,.sport-progress{display:flex;justify-content:space-between;align-items:center;gap:10px}.overall-progress i,.sport-progress i,.sport-card i{height:8px;background:#e2e8f0;border-radius:999px;display:block;overflow:hidden;margin:9px 0}.overall-progress i em,.sport-progress i em,.sport-card i em{height:100%;display:block;background:linear-gradient(90deg,#2563eb,#06b6d4);border-radius:999px}.overall-progress small{color:var(--muted)}.v4-tabs{display:flex;gap:8px;overflow:auto;padding:6px 0 12px;position:sticky;top:0;background:rgba(255,255,255,.94);backdrop-filter:blur(10px);z-index:10}.v4-tabs button{border:1px solid var(--line);background:#fff;color:#334155;border-radius:999px;padding:9px 14px;white-space:nowrap;font-weight:800;cursor:pointer}.v4-tabs button.active{background:#0f3f76;color:#fff;border-color:#0f3f76}.v4-tab-panel{display:none}.v4-tab-panel.active{display:block}.v4-section-head{display:flex;justify-content:space-between;align-items:end;margin:26px 0 10px;gap:12px}.v4-section-head small{color:#2563eb;font-weight:900;letter-spacing:.12em}.v4-section-head h2,.v4-section-head h3{margin:2px 0 0}.v4-section-head>span{color:var(--muted);font-size:12px;font-weight:700}.sport-cards{display:grid;grid-template-columns:repeat(6,1fr);gap:10px}.sport-card{border:1px solid var(--line);background:#fff;border-radius:16px;padding:16px;text-align:left;cursor:pointer;transition:.18s}.sport-card:hover{transform:translateY(-2px);box-shadow:0 8px 18px rgba(15,23,42,.08)}.sport-card>span{font-size:28px}.sport-card h3{font-size:14px;margin:7px 0}.sport-card b{font-size:20px}.sport-card small{color:var(--muted)}.v4-two-col{display:grid;grid-template-columns:1fr 1fr;gap:16px}.live-grid{display:grid;gap:12px}.v4m-card{border:1px solid var(--line);background:#fff;border-radius:15px;overflow:hidden;margin:8px 0;box-shadow:0 2px 7px rgba(15,23,42,.03)}.v4m-card.is-live{border-color:#fca5a5;box-shadow:0 0 0 2px rgba(239,68,68,.05)}.v4m-card>summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:1.05fr 1.25fr auto;gap:14px;align-items:center;padding:13px}.v4m-card>summary::-webkit-details-marker{display:none}.v4m-meta b,.v4m-meta small{display:block}.v4m-meta b{font-size:12px}.v4m-meta small{color:var(--muted);font-size:11px;margin-top:3px}.v4m-sport{font-size:10px;font-weight:900;color:#2563eb}.v4m-teams{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;text-align:center}.v4m-teams>div{display:flex;gap:7px;align-items:center;justify-content:center}.v4m-teams>div:last-child{flex-direction:row-reverse}.v4m-teams strong{font-size:18px;color:#0f3f76}.kit{display:inline-block;width:14px;height:14px;border-radius:4px;border:1px solid rgba(15,23,42,.15);flex:0 0 auto}.v4m-pill{font-size:10px;font-weight:900;border-radius:999px;padding:6px 8px;background:#f1f5f9;color:#475569}.status-live{background:#fee2e2;color:#b91c1c}.status-half-time{background:#ffedd5;color:#c2410c}.status-completed{background:#dcfce7;color:#166534}.status-postponed{background:#fef3c7;color:#92400e}.status-cancelled{background:#e5e7eb;color:#4b5563}.v4m-detail{border-top:1px solid var(--line);padding:15px;background:#f8fafc}.live-strip{display:flex;align-items:center;gap:9px;background:#fff1f2;color:#be123c;border:1px solid #fecdd3;border-radius:10px;padding:8px 10px;margin-bottom:12px}.pulse{width:9px;height:9px;background:#ef4444;border-radius:50%;box-shadow:0 0 0 0 rgba(239,68,68,.6);animation:pulse 1.4s infinite}@keyframes pulse{70%{box-shadow:0 0 0 8px rgba(239,68,68,0)}}.v4m-scoreboard{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:15px;text-align:center;background:#fff;border-radius:12px;padding:14px}.v4m-scoreboard>div:not(.score-big){display:flex;flex-direction:column;align-items:center;gap:5px}.v4m-scoreboard small{color:var(--muted)}.big-kit{display:block;width:38px;height:38px;border-radius:9px;border:1px solid rgba(15,23,42,.12)}.score-big b{font-size:28px}.score-big small{display:block}.detail-row{display:flex;justify-content:space-between;gap:12px;border-top:1px dashed #cbd5e1;padding:9px 2px;margin-top:8px}.match-events{margin-top:10px;border-top:1px solid var(--line);padding-top:10px}.match-events>b,.match-events span{display:block}.match-events span{padding:5px 0;color:#334155}.match-note{margin-top:10px;background:#fff;border-left:3px solid #2563eb;padding:10px;border-radius:7px;color:#475569}.sport-hero{display:flex;justify-content:space-between;align-items:center;gap:20px;background:linear-gradient(120deg,#eef6ff,#f8fafc);border:1px solid #dbeafe;border-radius:18px;padding:20px;margin:8px 0 18px}.sport-hero>div:first-child{display:flex;align-items:center;gap:12px}.sport-hero>div:first-child>span{font-size:44px}.sport-hero h2{margin:2px 0}.sport-hero small{font-weight:900;color:#2563eb}.sport-progress{display:block;min-width:260px}.sport-progress>b{font-size:25px}.sport-progress>span{display:block;color:var(--muted);font-size:12px}.standings-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.v4-table-card{border:1px solid var(--line);background:#fff;border-radius:15px;overflow:hidden}.v4-table-card header{display:flex;justify-content:space-between;align-items:center;padding:14px}.v4-table-card h3{margin:0}.table-state{text-align:right}.table-state span,.table-state b{display:block}.table-state span{font-size:11px;color:var(--muted)}.table-state b{font-size:10px;color:#2563eb}.table-scroll{overflow:auto}.v4-table-card table{width:100%;border-collapse:collapse;font-size:12px}.v4-table-card th,.v4-table-card td{padding:8px 7px;border-top:1px solid #eef2f7;text-align:center}.v4-table-card th:nth-child(2),.v4-table-card td:nth-child(2){text-align:left}.v4-table-card tr.qualifying{background:#f0fdf4}.table-note{font-size:10px;color:var(--muted);padding:0 12px 12px}.v4-knockout{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.ko-card{background:#fff;border:1px solid var(--line);border-radius:13px;overflow:hidden}.ko-card.ko-final{border:2px solid #f59e0b}.ko-card header{padding:9px 10px;background:#f8fafc}.ko-card header b,.ko-card header small{display:block}.ko-card header small{color:var(--muted);font-size:10px}.ko-card>div{display:flex;justify-content:space-between;gap:8px;padding:9px 10px;border-top:1px solid #eef2f7}.ko-card>div span{display:flex;align-items:center;gap:6px}.ko-card footer{padding:7px 10px;background:#f8fafc;color:var(--muted);font-size:10px}.event-block{margin:10px 0 22px}.fixture-list{display:grid;gap:6px}.finals-flow{display:grid;gap:8px}.finals-flow article{display:grid;grid-template-columns:100px 1fr auto;align-items:center;gap:12px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:11px 14px}.finals-flow time{font-weight:900;color:#0f3f76}.finals-flow div b,.finals-flow div span{display:block}.finals-flow div span{font-size:11px;color:var(--muted)}.finals-flow strong{font-size:10px;background:#dbeafe;color:#1d4ed8;border-radius:999px;padding:5px 7px}.finals-flow article.lunch{background:#fffbeb;border-color:#fde68a}.planning-note{font-size:11px;color:#64748b;background:#f8fafc;border-left:3px solid #0ea5e9;padding:10px 12px}.champion-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:11px}.champion-grid section{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px}.champion-grid section>span{font-size:28px}.champion-grid h3{margin:5px 0 10px}.champion-grid p{display:flex;justify-content:space-between;gap:8px;border-top:1px solid #eef2f7;margin:0;padding:8px 0;font-size:12px}.champion-grid p strong{color:#0f3f76}.empty-card{border:1px dashed #cbd5e1;border-radius:12px;padding:24px;text-align:center;color:var(--muted);background:#fff}.v4-footer-note{text-align:center;color:var(--muted);font-size:11px;margin-top:28px;padding-top:14px;border-top:1px solid var(--line)}
@media(max-width:1050px){.sport-cards{grid-template-columns:repeat(3,1fr)}.v4-knockout{grid-template-columns:repeat(2,1fr)}.v4m-card>summary{grid-template-columns:1fr}.v4m-pill{justify-self:start}.champion-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.v4-hero{padding:23px}.v4-trophy{font-size:50px}.v4-kpis-public{grid-template-columns:repeat(2,1fr);margin:-20px 8px 12px}.v4-two-col,.standings-grid{grid-template-columns:1fr}.sport-cards{grid-template-columns:repeat(2,1fr)}.sport-hero{display:block}.sport-progress{min-width:0;margin-top:12px}.v4m-teams{grid-template-columns:1fr auto 1fr;font-size:12px}.v4m-scoreboard{grid-template-columns:1fr auto 1fr}.v4-knockout,.champion-grid{grid-template-columns:1fr}.finals-flow article{grid-template-columns:75px 1fr}.finals-flow article strong{display:none}}
@media(max-width:480px){.v4-hero h1{font-size:27px}.v4-trophy{display:none}.sport-cards{grid-template-columns:1fr}.v4m-teams>div{display:block}.kit{margin-right:4px}.v4m-scoreboard{gap:8px;padding:10px}.score-big b{font-size:22px}}
/* Beta 2 presentation polish */
.most-v4 .v4-hero span,.most-v4 .v4-hero h1,.most-v4 .v4-hero p{color:#fff!important;text-shadow:0 1px 2px rgba(0,0,0,.18)}
.v4m-teams>strong,.score-big b{white-space:nowrap;word-break:keep-all}
.kit,.big-kit{border:0!important;border-radius:0!important;clip-path:polygon(25% 4%,40% 13%,60% 13%,75% 4%,100% 23%,84% 42%,77% 34%,77% 100%,23% 100%,23% 34%,16% 42%,0 23%);filter:drop-shadow(0 0 1px rgba(15,23,42,.5));background-clip:padding-box}.kit{width:19px;height:17px}.big-kit{width:48px;height:44px}
.v4-table-card tr.tie-review{background:#fffbeb}.tie-badge{display:block;color:#b45309;font-size:9px;font-weight:800;margin-top:2px}.v4-table-card tr.tie-review td:first-child{color:#b45309;font-weight:900}
.match-events span{position:relative;padding:7px 8px 7px 27px;border-left:2px solid #dbeafe;margin-left:6px}.match-events span:before{position:absolute;left:7px;top:7px;font-size:12px}.match-events .event-goal:before{content:"⚽"}.match-events .event-yellow:before{content:"🟨"}.match-events .event-red:before{content:"🟥"}.match-events .event-timeout:before{content:"⏱"}.match-events .event-sub:before{content:"↔"}.match-events .event-generic:before{content:"•"}.detail-row:has(>b:first-child:nth-last-child(2)){align-items:center}.detail-row b+span{font-weight:600}.v4m-detail .detail-row:nth-of-type(3){background:#fffbeb;border:1px solid #fde68a;border-radius:8px;padding:9px 10px}
/* Beta 4 responsive presentation / TV / LED mode */
.v4-hero-side{display:flex;flex-direction:column;align-items:center;gap:8px;z-index:2}.v4-presentation-toggle{border:1px solid rgba(255,255,255,.45);background:rgba(15,23,42,.24);color:#fff;border-radius:999px;padding:8px 12px;font-size:11px;font-weight:850;cursor:pointer;backdrop-filter:blur(7px)}.v4-presentation-toggle:hover{background:rgba(15,23,42,.4)}
.most-v4.is-presentation{max-width:none;width:100%;min-height:100vh;background:#f8fafc;padding:24px 30px 42px;overflow:auto}.most-v4.is-presentation .v4-hero{min-height:220px}.most-v4.is-presentation .v4-hero h1{font-size:clamp(40px,4vw,70px)}.most-v4.is-presentation .v4-hero p{font-size:clamp(16px,1.4vw,24px)}.most-v4.is-presentation .v4-kpis-public b{font-size:clamp(32px,3vw,54px)}.most-v4.is-presentation .v4-kpis-public span{font-size:clamp(13px,1vw,20px)}.most-v4.is-presentation .v4-tabs button{font-size:clamp(14px,1vw,20px);padding:12px 18px}.most-v4.is-presentation .v4-section-head h2{font-size:clamp(26px,2vw,40px)}.most-v4.is-presentation .sport-card h3{font-size:clamp(16px,1.1vw,22px)}.most-v4.is-presentation .sport-card b{font-size:clamp(24px,2vw,36px)}.most-v4.is-presentation .v4m-card>summary{padding:18px}.most-v4.is-presentation .v4m-teams b{font-size:clamp(18px,1.5vw,30px)}.most-v4.is-presentation .v4m-teams>strong{font-size:clamp(20px,1.7vw,32px)}.most-v4.is-presentation .v4m-meta b{font-size:clamp(13px,1vw,19px)}.most-v4.is-presentation .v4m-meta small{font-size:clamp(11px,.8vw,16px)}.most-v4.is-presentation .v4m-pill{font-size:clamp(11px,.8vw,16px)}.most-v4:fullscreen{max-width:none!important;width:100%!important;height:100vh;background:#f8fafc;overflow:auto}
@media(min-width:1600px){.most-v4:not(.is-presentation){max-width:1500px}.most-v4.is-presentation .sport-cards{grid-template-columns:repeat(6,minmax(180px,1fr))}.most-v4.is-presentation .v4-two-col{gap:24px}.most-v4.is-presentation .standings-grid{gap:22px}}
@media(max-width:760px){.v4-hero-side{align-items:flex-end}.v4-presentation-toggle{font-size:10px;padding:7px 9px}.most-v4.is-presentation{padding:12px}.most-v4.is-presentation .v4-hero{min-height:180px}.most-v4.is-presentation .v4-hero h1{font-size:32px}}
/* Beta 5 university medal table */
.v4-medal-table-wrap{overflow:auto;background:#fff;border:1px solid #dbe5f0;border-radius:16px;margin-bottom:22px}.v4-medal-table{width:100%;border-collapse:collapse;min-width:620px}.v4-medal-table th,.v4-medal-table td{padding:13px 14px;border-bottom:1px solid #edf2f7;text-align:center}.v4-medal-table th{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:#64748b;background:#f8fafc}.v4-medal-table th:nth-child(2),.v4-medal-table td:nth-child(2){text-align:left}.v4-medal-table tbody tr:last-child td{border-bottom:0}.most-v4.is-presentation .v4-medal-table th,.most-v4.is-presentation .v4-medal-table td{font-size:clamp(16px,1.35vw,24px);padding:16px 20px}
/* Beta 6 public honours */
.v4-award-winners{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:12px 0 24px}.award-winner-card{background:#fff;border:1px solid #e2e8f0;border-radius:14px;padding:14px;display:flex;flex-direction:column;gap:5px}.award-winner-card small{color:#2563eb;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.award-winner-card b{font-size:16px;color:#0f172a}.award-winner-card strong{color:#7c3aed}.award-winner-card span{color:#64748b}
@media(max-width:900px){.v4-award-winners{grid-template-columns:1fr 1fr}}@media(max-width:600px){.v4-award-winners{grid-template-columns:1fr}}
/* Beta 7 University Sports Calendar */
.sports-calendar-public{max-width:1450px;margin:0 auto;padding:12px}.sports-calendar{background:#fff;border:1px solid #dbe5f0;border-radius:16px;overflow:hidden;margin:14px 0 22px}.calendar-weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-weekdays{background:#0f3f76;color:#fff}.calendar-weekdays b{padding:11px 8px;text-align:center;font-size:12px;letter-spacing:.04em}.calendar-day{min-height:132px;padding:9px;border-right:1px solid #edf2f7;border-top:1px solid #edf2f7;background:#fff}.calendar-day:nth-child(7n){border-right:0}.calendar-day.outside{background:#f8fafc;color:#94a3b8}.calendar-day.today{box-shadow:inset 0 0 0 2px #2563eb}.day-number{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:28px;border-radius:999px;font-weight:900;color:#334155}.calendar-day.today .day-number{background:#2563eb;color:#fff}.calendar-event{margin-top:7px;padding:8px;border-radius:9px;background:#eff6ff;border-left:3px solid #2563eb;color:#0f3f76}.calendar-event b,.calendar-event small{display:block}.calendar-event b{font-size:11px;line-height:1.25}.calendar-event small{font-size:9px;margin-top:3px;color:#64748b;line-height:1.3}.calendar-event.status-completed{background:#f0fdf4;border-left-color:#16a34a}.calendar-event.status-approved{background:#eef2ff;border-left-color:#4f46e5}.calendar-event.status-planned,.calendar-event.status-draft{background:#fffbeb;border-left-color:#f59e0b}.calendar-event.status-cancelled{background:#f1f5f9;border-left-color:#64748b}
.most-v4.is-presentation .sports-calendar .calendar-day{min-height:180px}.most-v4.is-presentation .calendar-weekdays b{font-size:clamp(14px,1vw,20px)}.most-v4.is-presentation .calendar-event b{font-size:clamp(13px,1vw,18px)}.most-v4.is-presentation .calendar-event small{font-size:clamp(10px,.75vw,14px)}
@media(max-width:760px){.sports-calendar-public{padding:6px}.sports-calendar{overflow:auto}.calendar-weekdays,.calendar-days{min-width:760px}.calendar-day{min-height:105px}}

/* Beta 13.9 public live scoreboard */
.v4-public-live-scoreboards{margin:18px 0 26px}.v4ps-live-picker{display:flex;gap:10px;overflow:auto;padding:2px 2px 12px}.v4ps-match-choice{min-width:240px;text-align:left;border:1px solid #dbe5f0;background:#fff;border-radius:13px;padding:11px 13px;cursor:pointer;color:#0f172a}.v4ps-match-choice b,.v4ps-match-choice span,.v4ps-match-choice small{display:block}.v4ps-match-choice span{margin:4px 0;font-weight:800}.v4ps-match-choice small{color:#64748b}.v4ps-match-choice.is-active{border-color:#2563eb;box-shadow:0 0 0 2px rgba(37,99,235,.12)}
.v4ps-board{--sb-bg:#020617;background:var(--sb-bg);color:#f8fafc;border-radius:22px;overflow:hidden;box-shadow:0 18px 50px rgba(2,6,23,.22)}.v4ps-board-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:9px 14px;background:#0f172a;border-bottom:1px solid rgba(148,163,184,.22);font-size:11px;color:#cbd5e1}.v4ps-fullscreen{border:1px solid rgba(255,255,255,.3);background:#1e293b;color:#fff;border-radius:8px;padding:7px 10px;font-weight:800;cursor:pointer}.v4ps-competition{text-align:center;padding:18px 16px 4px}.v4ps-competition strong{display:block;font-size:clamp(18px,2vw,34px);letter-spacing:.02em}.v4ps-competition span{display:block;color:#94a3b8;margin-top:5px;font-size:clamp(11px,1vw,16px)}
.v4ps-main{display:grid;grid-template-columns:minmax(0,1fr) minmax(200px,30%) minmax(0,1fr);gap:clamp(10px,2vw,34px);padding:clamp(14px,2vw,30px);align-items:start}.v4ps-team{text-align:center;min-width:0}.v4ps-team-identity{min-height:155px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:8px}.v4ps-team-identity h3{margin:0;color:#fff;font-size:clamp(22px,3.2vw,54px);line-height:1.05;word-break:break-word}.v4ps-team-identity>i{width:min(150px,65%);height:7px;border-radius:999px;background:#2563eb;box-shadow:0 0 18px currentColor}.v4ps-crest{width:clamp(62px,8vw,126px);height:clamp(62px,8vw,126px);display:grid;place-items:center}.v4ps-crest img{width:100%;height:100%;object-fit:contain}.v4ps-crest-fallback{border-radius:26% 26% 42% 42%;background:linear-gradient(145deg,var(--team-color),#0f172a);border:3px solid rgba(255,255,255,.75);box-shadow:0 8px 22px rgba(0,0,0,.28)}.v4ps-crest-fallback b{font-size:clamp(16px,2vw,30px);color:#fff;text-shadow:0 1px 3px #000}.v4ps-team-score{display:block;font-size:clamp(72px,12vw,190px);line-height:.9;font-variant-numeric:tabular-nums;color:#fff;margin-top:4px}.v4ps-penalty-small{min-height:26px;color:#c4b5fd;font-size:clamp(13px,1.3vw,20px);font-weight:850}.v4ps-center{text-align:center;padding-top:12px}.v4ps-phase{color:#93c5fd;font-weight:900;font-size:clamp(18px,2vw,32px);text-transform:uppercase;letter-spacing:.08em}.v4ps-clock{font-size:clamp(46px,7vw,108px);font-weight:950;color:#facc15;font-variant-numeric:tabular-nums;line-height:1;margin-top:7px}.v4ps-added{min-height:30px;color:#fbbf24;font-weight:900;font-size:clamp(15px,1.5vw,24px);margin-top:4px}.v4ps-live-pill{display:inline-block;margin-top:14px;background:#dc2626;color:#fff;border-radius:999px;padding:6px 11px;font-size:11px;font-weight:900;letter-spacing:.08em}.v4ps-penalty-dots-wrap{margin:15px auto 0;padding:10px 12px;border:1px solid rgba(196,181,253,.35);border-radius:12px;background:rgba(76,29,149,.18)}.v4ps-penalty-dots-wrap>b{display:block;color:#ddd6fe;margin-bottom:7px}.v4ps-penalty-dots-wrap>div{display:flex;align-items:center;justify-content:center;gap:8px}.v4ps-penalty-dots-wrap em{font-style:normal;color:#64748b}.v4ps-penalty-dots-wrap span span{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;margin:0 2px;font-size:11px;font-weight:900}.v4ps-penalty-dots-wrap .is-goal{background:#22c55e;color:#052e16}.v4ps-penalty-dots-wrap .is-miss{background:#ef4444;color:#fff}.v4ps-penalty-dots-wrap .is-pending{border:1px solid #64748b;color:#94a3b8}
.v4ps-team-events{margin-top:16px;display:grid;gap:6px;text-align:left}.v4ps-team-events>div{display:grid;grid-template-columns:45px 26px 1fr;gap:7px;align-items:start;background:rgba(15,23,42,.78);border:1px solid rgba(148,163,184,.18);border-radius:9px;padding:7px 9px}.v4ps-team-events time{font-weight:900;color:#93c5fd}.v4ps-team-events i{font-style:normal;font-size:18px}.v4ps-team-events b,.v4ps-team-events small{display:block}.v4ps-team-events b{font-size:12px}.v4ps-team-events small{color:#cbd5e1}.v4ps-updated{text-align:center;padding:8px 12px 14px;color:#64748b;font-size:10px}.v4ps-board:fullscreen{width:100vw;height:100vh;border-radius:0;overflow:auto}.v4ps-board:fullscreen .v4ps-main{min-height:calc(100vh - 150px);align-items:center}.v4ps-board:fullscreen .v4ps-board-toolbar span{font-size:14px}
.v4-team-logo-row{display:flex;align-items:end;gap:12px;padding:12px 14px 0}.v4-team-logo-row label{flex:1}.v4-team-logo-row input{width:100%;margin-top:5px}.v4-team-logo-preview{width:48px;height:48px;object-fit:contain;border:1px solid #dbe5f0;border-radius:10px;background:#fff;padding:3px}
@media(max-width:760px){.v4ps-main{grid-template-columns:1fr 110px 1fr;gap:7px;padding:12px}.v4ps-team-identity{min-height:110px}.v4ps-team-identity h3{font-size:clamp(15px,5vw,30px)}.v4ps-crest{width:64px;height:64px}.v4ps-team-score{font-size:clamp(54px,18vw,92px)}.v4ps-clock{font-size:clamp(31px,10vw,58px)}.v4ps-phase{font-size:13px}.v4ps-team-events>div{grid-template-columns:34px 22px 1fr;padding:6px}.v4ps-team-events time{font-size:10px}.v4ps-team-events b{font-size:10px}.v4ps-team-events small{font-size:9px}}
@media(max-width:480px){.v4ps-main{grid-template-columns:1fr 88px 1fr}.v4ps-competition{padding-top:12px}.v4ps-team-identity>i{height:5px}.v4ps-team-events{display:none}.v4ps-penalty-dots-wrap{padding:7px 5px}.v4ps-penalty-dots-wrap span span{width:16px;height:16px;font-size:9px}.v4ps-board-toolbar>span{display:none}}

/* Fixed identity rows keep both scores aligned, including fullscreen. */
.v4ps-team-identity{height:calc(clamp(62px,8vw,126px) + clamp(54px,6vw,96px) + 31px);min-height:0;overflow:hidden;flex-shrink:0}
.v4ps-team-identity h3{height:clamp(54px,6vw,96px);font-size:clamp(16px,2.5vw,42px);line-height:1.1;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;overflow-wrap:anywhere;flex-shrink:0}
.v4ps-team-identity>span{flex-shrink:0}.v4ps-team-identity>i{flex-shrink:0}
.v4ps-board:fullscreen .v4ps-main{align-items:start}
.v4ps-winner{color:#86efac;font-size:clamp(14px,2vw,26px);font-weight:900;margin-top:14px;overflow-wrap:anywhere}.v4ps-winner:empty{display:none}
@media(max-width:760px){.v4ps-team-identity{height:calc(64px + clamp(54px,6vw,96px) + 31px)}}

.v4ps-board:fullscreen .v4ps-board-toolbar{position:absolute;right:0;top:0;left:auto;z-index:5;opacity:0;transform:translateY(-100%);transition:opacity .18s,transform .18s}.v4ps-board:fullscreen .v4ps-board-toolbar>span{display:none}.v4ps-board:fullscreen.controls-visible .v4ps-board-toolbar,.v4ps-board:fullscreen .v4ps-board-toolbar:hover,.v4ps-board:fullscreen .v4ps-board-toolbar:focus-within{opacity:1;transform:none}

.v4ps-team-identity h3{height:auto;max-height:2.2em}

/* Public Hub Phase 1 — Beta 13.22 public branch */
.v4-public-hub{padding-top:12px}.v4hub-hero{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:24px 28px;border-radius:22px;background:linear-gradient(125deg,#0f2c59,#1559a6 66%,#0e7490);color:#fff;box-shadow:0 14px 34px rgba(15,23,42,.16)}.v4hub-hero small{font-weight:900;letter-spacing:.14em;opacity:.9}.v4hub-hero h1{margin:5px 0 4px;font-size:clamp(27px,4vw,44px)}.v4hub-hero p{margin:0;opacity:.88}.v4hub-date{min-width:92px;text-align:center;padding:12px 15px;border-radius:16px;background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.22)}.v4hub-date b,.v4hub-date span{display:block}.v4hub-date b{font-size:34px;line-height:1}.v4hub-date span{font-size:12px;margin-top:5px;font-weight:800}
.v4hub-filters{display:grid;grid-template-columns:1fr 1.5fr 1fr auto auto;gap:10px;align-items:end;margin:15px 0;padding:13px;border:1px solid #dbe5f0;border-radius:15px;background:#f8fafc}.v4hub-filters label span{display:block;margin-bottom:5px;font-size:11px;font-weight:850;color:#475569}.v4hub-filters select{width:100%;min-height:40px;border:1px solid #cbd5e1;border-radius:9px;background:#fff;padding:0 9px;color:#0f172a}.v4hub-filters button,.v4hub-filters a{min-height:40px;display:inline-flex;align-items:center;justify-content:center;border-radius:9px;padding:0 14px;font-weight:850;text-decoration:none}.v4hub-filters button{border:1px solid #2563eb;background:#2563eb;color:#fff;cursor:pointer}.v4hub-filters a{border:1px solid #cbd5e1;background:#fff;color:#334155}
.v4hub-kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin:14px 0 4px}.v4hub-kpis>div{background:#fff;border:1px solid #e2e8f0;border-radius:14px;padding:14px;text-align:center;box-shadow:0 4px 14px rgba(15,23,42,.045)}.v4hub-kpis b{display:block;font-size:26px;color:#0f3f76}.v4hub-kpis span{display:block;margin-top:2px;color:#64748b;font-size:11px;font-weight:800}.v4hub-section{margin-top:20px}.v4hub-live-section .v4hub-match{border-color:#fecaca}.v4hub-live-section .v4hub-match.is-live{box-shadow:0 0 0 2px rgba(239,68,68,.06)}
.v4hub-two-col{display:grid;grid-template-columns:1fr 1fr;gap:16px}.v4hub-match-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.v4hub-two-col .v4hub-match-grid{grid-template-columns:1fr}.v4hub-match{background:#fff;border:1px solid #dbe5f0;border-radius:14px;padding:13px;min-width:0}.v4hub-match header{display:flex;align-items:center;justify-content:space-between;gap:9px}.v4hub-match header>span{font-size:11px;font-weight:900;color:#2563eb}.v4hub-status{font-size:9px;text-transform:uppercase;letter-spacing:.06em;border-radius:999px;padding:5px 7px;background:#e2e8f0;color:#475569}.v4hub-status.status-live,.v4hub-match.is-live .v4hub-status{background:#fee2e2;color:#b91c1c}.v4hub-status.status-completed{background:#dcfce7;color:#166534}.v4hub-status.status-postponed,.v4hub-status.status-suspended{background:#fef3c7;color:#92400e}.v4hub-status.status-cancelled,.v4hub-status.status-abandoned{background:#e5e7eb;color:#4b5563}.v4hub-comp{display:block;margin:7px 0 9px;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.v4hub-teams{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:10px}.v4hub-teams strong{font-size:14px;line-height:1.2;overflow-wrap:anywhere}.v4hub-teams strong:last-child{text-align:right}.v4hub-teams>b{font-size:18px;color:#0f3f76;white-space:nowrap}.v4hub-meta{display:flex;gap:7px 12px;flex-wrap:wrap;margin-top:10px;padding-top:8px;border-top:1px solid #eef2f7;color:#64748b;font-size:10px}.v4hub-live-phase{font-weight:900;color:#b91c1c}.v4hub-empty{padding:25px;border:1px dashed #cbd5e1;border-radius:13px;background:#fff;text-align:center;color:#64748b}
.v4hub-competition-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}.v4hub-competition-card{background:#fff;border:1px solid #dbe5f0;border-radius:15px;padding:15px}.v4hub-comp-top{display:flex;justify-content:space-between;gap:8px;color:#2563eb;font-size:10px;font-weight:900}.v4hub-comp-top b{background:#fee2e2;color:#b91c1c;border-radius:999px;padding:4px 7px}.v4hub-competition-card h3{margin:8px 0 5px;font-size:16px}.v4hub-competition-card p{margin:0;color:#64748b;font-size:11px}.v4hub-progress{margin:12px 0}.v4hub-progress i{display:block;height:7px;background:#e2e8f0;border-radius:999px;overflow:hidden}.v4hub-progress i em{display:block;height:100%;background:linear-gradient(90deg,#2563eb,#06b6d4)}.v4hub-progress span{display:block;margin-top:5px;color:#64748b;font-size:10px}.v4hub-competition-card footer{display:flex;justify-content:space-between;gap:8px;border-top:1px solid #eef2f7;padding-top:9px;font-size:10px;color:#64748b}.v4hub-competition-card footer strong{color:#166534}.v4hub-footer{margin-top:26px;padding:12px;border-top:1px solid #e2e8f0;text-align:center;color:#64748b;font-size:10px}
@media(max-width:980px){.v4hub-filters{grid-template-columns:1fr 1fr}.v4hub-kpis{grid-template-columns:repeat(3,1fr)}.v4hub-competition-grid{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.v4hub-hero{padding:20px}.v4hub-date{display:none}.v4hub-filters{grid-template-columns:1fr}.v4hub-kpis{grid-template-columns:1fr 1fr}.v4hub-two-col,.v4hub-match-grid,.v4hub-competition-grid{grid-template-columns:1fr}.v4hub-teams{gap:7px}.v4hub-teams strong{font-size:12px}.v4hub-teams>b{font-size:16px}}

/* Public Hub Phase 1.1 — presentation polish, isolated from the accepted live runtime */
.most-v4.v4-public-hub{
  max-width:1420px;
  width:min(1420px,calc(100vw - 34px));
  margin-left:50%;
  margin-right:0;
  transform:translateX(-50%);
  padding:16px 18px 42px;
}
.v4-public-hub .v4hub-hero{
  min-height:150px;
  padding:28px 34px;
  border-radius:22px;
}
.v4-public-hub .v4hub-hero small,
.v4-public-hub .v4hub-hero h1,
.v4-public-hub .v4hub-hero p{
  color:#fff!important;
  text-shadow:0 1px 2px rgba(0,0,0,.16);
}
.v4-public-hub .v4hub-hero small{font-size:12px;letter-spacing:.16em}
.v4-public-hub .v4hub-hero h1{font-size:clamp(32px,3.3vw,50px);line-height:1.05;margin:8px 0 7px}
.v4-public-hub .v4hub-hero p{font-size:clamp(13px,1.15vw,17px)}
.v4-public-hub .v4hub-date{min-width:104px;padding:14px 16px}
.v4-public-hub .v4hub-date b{font-size:38px}
.v4-public-hub .v4hub-date span{font-size:12px}

.v4-public-hub .v4hub-filters{margin:16px 0 18px;padding:15px 16px;gap:12px}
.v4-public-hub .v4hub-filters label span{font-size:12px}
.v4-public-hub .v4hub-filters select,
.v4-public-hub .v4hub-filters button,
.v4-public-hub .v4hub-filters a{min-height:44px;font-size:13px}

.v4-public-hub .v4hub-kpis{gap:13px;margin:16px 0 10px}
.v4-public-hub .v4hub-kpis>div{padding:18px 14px;border-radius:15px}
.v4-public-hub .v4hub-kpis b{font-size:clamp(28px,2.2vw,36px);line-height:1.05}
.v4-public-hub .v4hub-kpis span{font-size:12px;margin-top:6px}

.v4-public-hub .v4hub-section{margin-top:24px}
.v4-public-hub .v4-section-head{margin:0 0 12px}
.v4-public-hub .v4-section-head small{font-size:11px}
.v4-public-hub .v4-section-head h2{font-size:clamp(21px,1.8vw,28px);line-height:1.15}
.v4-public-hub .v4-section-head>span{font-size:12px}
.v4-public-hub .v4hub-two-col{grid-template-columns:minmax(0,2fr) minmax(0,3fr);gap:20px}
.v4-public-hub .v4hub-match-grid{gap:13px}
.v4-public-hub .v4hub-next-wide .v4hub-match-grid{grid-template-columns:repeat(2,minmax(0,1fr))}

.v4-public-hub .v4hub-match{padding:16px;border-radius:15px;box-shadow:0 3px 12px rgba(15,23,42,.035)}
.v4-public-hub .v4hub-match header>span{font-size:12px}
.v4-public-hub .v4hub-status{font-size:10px;padding:6px 9px}
.v4-public-hub .v4hub-comp{font-size:11px;margin:8px 0 12px}
.v4-public-hub .v4hub-teams{gap:14px}
.v4-public-hub .v4hub-teams strong{font-size:clamp(15px,1.25vw,19px);line-height:1.25}
.v4-public-hub .v4hub-teams>b{font-size:clamp(20px,1.7vw,27px)}
.v4-public-hub .v4hub-meta{font-size:11px;gap:8px 14px;margin-top:13px;padding-top:10px}
.v4-public-hub .v4hub-empty{padding:30px 24px;font-size:13px}

.v4-public-hub .v4hub-competition-grid{gap:14px}
.v4-public-hub .v4hub-competition-card{padding:18px}
.v4-public-hub .v4hub-competition-card h3{font-size:18px;line-height:1.25}
.v4-public-hub .v4hub-competition-card p,
.v4-public-hub .v4hub-progress span,
.v4-public-hub .v4hub-competition-card footer{font-size:11px}
.v4-public-hub .v4hub-footer{font-size:11px;margin-top:30px}

@media(min-width:1500px){
  .most-v4.v4-public-hub{width:min(1460px,calc(100vw - 54px));max-width:1460px}
  .v4-public-hub .v4hub-next-wide .v4hub-match-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:1100px){
  .most-v4.v4-public-hub{width:calc(100vw - 24px);padding-left:12px;padding-right:12px}
  .v4-public-hub .v4hub-two-col{grid-template-columns:1fr 1.25fr;gap:14px}
}
@media(max-width:980px){
  .v4-public-hub .v4hub-two-col{grid-template-columns:1fr}
  .v4-public-hub .v4hub-next-wide .v4hub-match-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:700px){
  .most-v4.v4-public-hub{width:100%;margin:0;transform:none;padding:10px 10px 28px}
  .v4-public-hub .v4hub-hero{min-height:auto;padding:22px 20px}
  .v4-public-hub .v4hub-hero h1{font-size:30px}
  .v4-public-hub .v4hub-kpis>div{padding:15px 10px}
  .v4-public-hub .v4hub-kpis b{font-size:27px}
  .v4-public-hub .v4hub-kpis span{font-size:11px}
  .v4-public-hub .v4hub-next-wide .v4hub-match-grid{grid-template-columns:1fr}
  .v4-public-hub .v4hub-teams strong{font-size:14px}
  .v4-public-hub .v4hub-teams>b{font-size:19px}
}

\n\n/* Public Hub Phase 1.3 — university-scoped public match filtering */\n.v4-public-hub .v4hub-filters{\n  grid-template-columns:minmax(150px,.85fr) minmax(210px,1.25fr) minmax(220px,1.4fr) minmax(160px,.9fr) auto auto;\n}\n.v4-public-hub .v4hub-filters select:disabled{\n  background:#eef2f7;\n  color:#64748b;\n  cursor:not-allowed;\n}\n@media(max-width:1180px){\n  .v4-public-hub .v4hub-filters{grid-template-columns:1fr 1fr 1fr}\n}\n@media(max-width:820px){\n  .v4-public-hub .v4hub-filters{grid-template-columns:1fr 1fr}\n}\n@media(max-width:700px){\n  .v4-public-hub .v4hub-filters{grid-template-columns:1fr}\n}\n

/* Public Hub Phase 1.6 — show server-authoritative match clock on live/suspended cards */
.v4-public-hub .v4hub-match-clock{font-weight:900;color:#b91c1c;background:#fff1f2;border:1px solid #fecdd3;border-radius:999px;padding:3px 8px;white-space:nowrap;font-variant-numeric:tabular-nums}
.v4-public-hub .v4hub-match.is-live .v4hub-match-clock{color:#b91c1c;background:#fff1f2}
@media(max-width:700px){.v4-public-hub .v4hub-match-clock{padding:2px 7px;font-size:10px}}


/* Public Hub Phase 1.7 — prominent live/suspended match clock above the score. */
.v4-public-hub .v4hub-clock-hero{display:flex;align-items:center;justify-content:center;gap:10px;margin:4px 0 10px;padding:7px 10px;border-radius:12px;background:#f8fafc;border:1px solid #e2e8f0;text-align:center}
.v4-public-hub .v4hub-match.is-live .v4hub-clock-hero{background:#fff7ed;border-color:#fed7aa}
.v4-public-hub .v4hub-clock-hero span{font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.06em;color:#b91c1c}
.v4-public-hub .v4hub-clock-hero strong{font-size:clamp(28px,2.4vw,38px);line-height:1;font-weight:950;color:#0f3f76;font-variant-numeric:tabular-nums;white-space:nowrap}
.v4-public-hub .v4hub-match.is-live .v4hub-clock-hero strong{color:#b45309}
.v4-public-hub .v4hub-teams>b{font-size:22px}
@media(max-width:700px){.v4-public-hub .v4hub-clock-hero{gap:7px;padding:6px 8px}.v4-public-hub .v4hub-clock-hero span{font-size:9px}.v4-public-hub .v4hub-clock-hero strong{font-size:26px}.v4-public-hub .v4hub-teams>b{font-size:20px}}

/* Public Hub Phase 2.0 — fixtures, results, standings, knockout and competition detail. */
.v4-public-hub .v4hub-view-tabs{display:flex;gap:8px;overflow-x:auto;margin:18px 0 8px;padding:5px 0 7px;scrollbar-width:thin}
.v4-public-hub .v4hub-view-tabs a{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:0 15px;border:1px solid #dbe5f0;border-radius:999px;background:#fff;color:#334155;text-decoration:none;font-size:12px;font-weight:900;white-space:nowrap;transition:.16s}
.v4-public-hub .v4hub-view-tabs a:hover{border-color:#93c5fd;color:#1d4ed8;transform:translateY(-1px)}
.v4-public-hub .v4hub-view-tabs a.is-active{background:#0f3f76;border-color:#0f3f76;color:#fff;box-shadow:0 5px 14px rgba(15,63,118,.18)}
.v4-public-hub .v4hub-phase2-section{margin-top:14px}

.v4-public-hub .v4hub-schedule-list{display:grid;gap:10px}
.v4-public-hub .v4hub-schedule-row{display:grid;grid-template-columns:92px minmax(0,1fr) auto;gap:15px;align-items:center;background:#fff;border:1px solid #dbe5f0;border-radius:15px;padding:12px 14px;box-shadow:0 2px 8px rgba(15,23,42,.035)}
.v4-public-hub .v4hub-schedule-row.is-live{border-color:#fca5a5;box-shadow:0 0 0 2px rgba(239,68,68,.045)}
.v4-public-hub .v4hub-schedule-date{text-align:center;border-right:1px solid #eef2f7;padding-right:13px}
.v4-public-hub .v4hub-schedule-date b{display:block;font-size:26px;line-height:1;color:#0f3f76}
.v4-public-hub .v4hub-schedule-date span{display:block;margin-top:4px;font-size:10px;text-transform:uppercase;font-weight:900;color:#64748b}
.v4-public-hub .v4hub-schedule-date small{display:block;margin-top:5px;font-size:10px;color:#475569;font-weight:700}
.v4-public-hub .v4hub-schedule-main{min-width:0}
.v4-public-hub .v4hub-schedule-top{display:flex;gap:10px;align-items:center;justify-content:space-between;margin-bottom:7px}
.v4-public-hub .v4hub-schedule-top span{font-size:11px;font-weight:900;color:#2563eb}
.v4-public-hub .v4hub-schedule-top small{max-width:60%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#64748b}
.v4-public-hub .v4hub-schedule-teams{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:14px}
.v4-public-hub .v4hub-schedule-teams strong{font-size:16px;line-height:1.2;overflow-wrap:anywhere}
.v4-public-hub .v4hub-schedule-teams strong:last-child{text-align:right}
.v4-public-hub .v4hub-schedule-teams>b{font-size:22px;color:#0f3f76;white-space:nowrap}
.v4-public-hub .v4hub-schedule-meta{display:flex;gap:8px 14px;flex-wrap:wrap;margin-top:8px;color:#64748b;font-size:10px}
.v4-public-hub .v4hub-schedule-clock{display:flex;align-items:center;justify-content:center;gap:8px;margin:4px 0 8px;padding:5px 9px;border-radius:9px;background:#fff7ed;color:#9a3412}
.v4-public-hub .v4hub-schedule-clock b{font-size:10px;text-transform:uppercase;letter-spacing:.05em}
.v4-public-hub .v4hub-schedule-clock strong{font-size:19px;font-variant-numeric:tabular-nums}

.v4-public-hub .v4hub-standings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.v4-public-hub .v4hub-table-card{overflow:hidden;background:#fff;border:1px solid #dbe5f0;border-radius:15px}
.v4-public-hub .v4hub-table-card>header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:15px 16px;background:#f8fafc;border-bottom:1px solid #eef2f7}
.v4-public-hub .v4hub-table-card>header small{display:block;color:#2563eb;font-size:10px;font-weight:900}
.v4-public-hub .v4hub-table-card>header h3{margin:4px 0 0;font-size:18px}
.v4-public-hub .v4hub-table-card>header>span{font-size:10px;color:#64748b;font-weight:800;white-space:nowrap}
.v4-public-hub .v4hub-table-scroll{overflow:auto}
.v4-public-hub .v4hub-table-card table{width:100%;border-collapse:collapse;font-size:11px}
.v4-public-hub .v4hub-table-card th,.v4-public-hub .v4hub-table-card td{padding:9px 7px;border-bottom:1px solid #eef2f7;text-align:center;white-space:nowrap}
.v4-public-hub .v4hub-table-card th:nth-child(2),.v4-public-hub .v4hub-table-card td:nth-child(2){text-align:left;white-space:normal;min-width:130px}
.v4-public-hub .v4hub-table-card>footer{padding:10px 14px;color:#64748b;font-size:9px;line-height:1.4}

.v4-public-hub .v4hub-bracket-block{margin-bottom:18px}
.v4-public-hub .v4hub-bracket-block>header{margin-bottom:9px}
.v4-public-hub .v4hub-bracket-block>header small{color:#2563eb;font-size:10px;font-weight:900}
.v4-public-hub .v4hub-bracket-block>header h3{margin:3px 0 0;font-size:19px}
.v4-public-hub .v4hub-bracket{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(230px,1fr);gap:12px;overflow-x:auto;padding-bottom:8px;align-items:start}
.v4-public-hub .v4hub-bracket-round{display:grid;gap:9px;min-width:0}
.v4-public-hub .v4hub-bracket-round>h4{margin:0;padding:8px 10px;border-radius:10px;background:#eff6ff;color:#1d4ed8;font-size:12px;text-align:center;text-transform:uppercase;letter-spacing:.05em}
.v4-public-hub .v4hub-ko-match{background:#fff;border:1px solid #dbe5f0;border-radius:12px;overflow:hidden}
.v4-public-hub .v4hub-ko-match.is-final{border-color:#fbbf24;box-shadow:0 0 0 2px rgba(245,158,11,.06)}
.v4-public-hub .v4hub-ko-top{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;background:#f8fafc;border-bottom:1px solid #eef2f7}
.v4-public-hub .v4hub-ko-top>span{font-size:10px;font-weight:900;color:#475569}
.v4-public-hub .v4hub-ko-match>div:not(.v4hub-ko-top){display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px;border-bottom:1px solid #eef2f7}
.v4-public-hub .v4hub-ko-match>div:not(.v4hub-ko-top) span{font-size:12px;font-weight:700;overflow-wrap:anywhere}
.v4-public-hub .v4hub-ko-match>div:not(.v4hub-ko-top) strong{font-size:16px;color:#0f3f76}
.v4-public-hub .v4hub-ko-match>small{display:block;padding:7px 10px;color:#7c3aed;font-weight:800}
.v4-public-hub .v4hub-ko-match>footer{padding:7px 10px;background:#f8fafc;color:#64748b;font-size:9px}

.v4-public-hub .v4hub-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.v4-public-hub .v4hub-detail-card{background:#fff;border:1px solid #dbe5f0;border-radius:17px;padding:18px;box-shadow:0 3px 12px rgba(15,23,42,.035)}
.v4-public-hub .v4hub-detail-title{display:flex;align-items:center;justify-content:space-between;gap:10px;color:#2563eb;font-size:10px;font-weight:900}
.v4-public-hub .v4hub-detail-title>b{background:#dcfce7;color:#166534;border-radius:999px;padding:5px 8px}
.v4-public-hub .v4hub-detail-card h2{font-size:22px;line-height:1.2;margin:9px 0 4px}
.v4-public-hub .v4hub-detail-university{margin:0;color:#64748b;font-size:12px}
.v4-public-hub .v4hub-detail-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:15px 0 9px}
.v4-public-hub .v4hub-detail-stats>div{padding:10px 7px;text-align:center;background:#f8fafc;border-radius:10px}
.v4-public-hub .v4hub-detail-stats b{display:block;font-size:21px;color:#0f3f76}
.v4-public-hub .v4hub-detail-stats span{display:block;margin-top:2px;font-size:9px;color:#64748b;font-weight:800}
.v4-public-hub .v4hub-detail-progress i{display:block;height:7px;background:#e2e8f0;border-radius:999px;overflow:hidden}
.v4-public-hub .v4hub-detail-progress em{display:block;height:100%;background:linear-gradient(90deg,#2563eb,#06b6d4)}
.v4-public-hub .v4hub-detail-card dl{margin:14px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:0 16px}
.v4-public-hub .v4hub-detail-card dl>div{padding:9px 0;border-top:1px solid #eef2f7}
.v4-public-hub .v4hub-detail-card dt{font-size:9px;text-transform:uppercase;letter-spacing:.05em;color:#64748b;font-weight:900}
.v4-public-hub .v4hub-detail-card dd{margin:3px 0 0;color:#0f172a;font-size:12px;font-weight:700;overflow-wrap:anywhere}

@media(max-width:980px){
  .v4-public-hub .v4hub-standings-grid,.v4-public-hub .v4hub-detail-grid{grid-template-columns:1fr}
  .v4-public-hub .v4hub-schedule-row{grid-template-columns:78px minmax(0,1fr) auto}
}
@media(max-width:700px){
  .v4-public-hub .v4hub-view-tabs{margin-top:13px}
  .v4-public-hub .v4hub-view-tabs a{min-height:36px;padding:0 12px;font-size:11px}
  .v4-public-hub .v4hub-schedule-row{grid-template-columns:58px minmax(0,1fr);gap:10px;padding:10px}
  .v4-public-hub .v4hub-schedule-row>.v4hub-status{grid-column:2;justify-self:start}
  .v4-public-hub .v4hub-schedule-date{padding-right:8px}
  .v4-public-hub .v4hub-schedule-date b{font-size:22px}
  .v4-public-hub .v4hub-schedule-date small{font-size:8px}
  .v4-public-hub .v4hub-schedule-top{display:block}
  .v4-public-hub .v4hub-schedule-top small{display:block;max-width:none;margin-top:3px}
  .v4-public-hub .v4hub-schedule-teams{gap:7px}
  .v4-public-hub .v4hub-schedule-teams strong{font-size:12px}
  .v4-public-hub .v4hub-schedule-teams>b{font-size:17px}
  .v4-public-hub .v4hub-detail-stats{grid-template-columns:1fr 1fr}
  .v4-public-hub .v4hub-detail-card dl{grid-template-columns:1fr}
}

/* Public Hub Phase 2.1 — team/score-first hierarchy with compact green live-time strip. */
.v4-public-hub .v4hub-teams{margin-top:2px}
.v4-public-hub .v4hub-teams strong{font-size:16px;font-weight:900;color:#0f172a}
.v4-public-hub .v4hub-teams>b{font-size:26px;font-weight:950;color:#0f3f76}
.v4-public-hub .v4hub-clock-hero{
  display:flex;align-items:center;justify-content:center;gap:7px;
  margin:9px 0 0;padding:5px 9px;border-radius:8px;
  background:#f0fdf4;border:1px solid #bbf7d0;border-left:4px solid #22c55e;
  color:#166534;text-align:center
}
.v4-public-hub .v4hub-match.is-live .v4hub-clock-hero{background:#f0fdf4;border-color:#bbf7d0;border-left-color:#22c55e}
.v4-public-hub .v4hub-clock-hero span{font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.05em;color:#15803d}
.v4-public-hub .v4hub-clock-hero strong{font-size:15px;line-height:1.1;font-weight:950;color:#166534;font-variant-numeric:tabular-nums;white-space:nowrap}
.v4-public-hub .v4hub-match.is-live .v4hub-clock-hero strong{color:#166534}

.v4-public-hub .v4hub-schedule-teams strong{font-size:17px;font-weight:900;color:#0f172a}
.v4-public-hub .v4hub-schedule-teams>b{font-size:24px;font-weight:950;color:#0f3f76}
.v4-public-hub .v4hub-schedule-clock{
  display:flex;align-items:center;justify-content:center;gap:7px;
  margin:7px 0 0;padding:4px 8px;border-radius:7px;
  background:#f0fdf4;border:1px solid #bbf7d0;border-left:4px solid #22c55e;color:#166534
}
.v4-public-hub .v4hub-schedule-clock b{font-size:9px;text-transform:uppercase;letter-spacing:.05em;color:#15803d}
.v4-public-hub .v4hub-schedule-clock strong{font-size:15px;font-weight:950;color:#166534;font-variant-numeric:tabular-nums}

@media(max-width:700px){
  .v4-public-hub .v4hub-teams strong{font-size:14px}
  .v4-public-hub .v4hub-teams>b{font-size:22px}
  .v4-public-hub .v4hub-clock-hero{gap:6px;margin-top:7px;padding:4px 7px}
  .v4-public-hub .v4hub-clock-hero span{font-size:9px}
  .v4-public-hub .v4hub-clock-hero strong{font-size:14px}
  .v4-public-hub .v4hub-schedule-teams strong{font-size:15px}
  .v4-public-hub .v4hub-schedule-teams>b{font-size:22px}
  .v4-public-hub .v4hub-schedule-clock strong{font-size:14px}
}

/* Public Phase 2.3: knockout winner summaries. */
.v4-public-hub .v4hub-ko-award{padding:8px 10px;font-size:11px;font-weight:900;letter-spacing:.02em;border-bottom:1px solid #d1fae5;background:#ecfdf5;color:#166534}
.v4-public-hub .v4hub-ko-award.is-champion{background:#fffbeb;border-bottom-color:#fde68a;color:#92400e}
.v4-public-hub .v4hub-ko-award.is-third{background:#fff7ed;border-bottom-color:#fed7aa;color:#9a3412}

/* Public Phase 2.3.3 — mobile readability polish.
 * Keep desktop/tablet landscape unchanged; compact phone and narrow portrait views
 * into readable stacked sections without horizontal page scrolling.
 */
@media(max-width:820px){
  .v4-public-hub .v4hub-filters{grid-template-columns:1fr}
  .v4-public-hub .v4hub-filters button,
  .v4-public-hub .v4hub-filters a{width:100%}

  .v4-public-hub .v4hub-kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
  .v4-public-hub .v4hub-kpis>div{padding:14px 8px}
  .v4-public-hub .v4hub-kpis>div:last-child:nth-child(odd){grid-column:1 / -1}

  .v4-public-hub .v4hub-view-tabs{
    display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
    gap:8px;overflow:visible;padding-bottom:6px
  }
  .v4-public-hub .v4hub-view-tabs a{
    width:100%;min-width:0;min-height:40px;padding:7px 8px;
    white-space:normal;text-align:center;line-height:1.15
  }

  .v4-public-hub .v4-section-head{align-items:flex-start;flex-direction:column;gap:4px}
  .v4-public-hub .v4-section-head>span{align-self:flex-start}

  .v4-public-hub .v4hub-bracket{
    display:grid;grid-auto-flow:row;grid-template-columns:1fr;grid-auto-columns:auto;
    gap:14px;overflow-x:visible;padding-bottom:0
  }
  .v4-public-hub .v4hub-bracket-round{gap:9px;width:100%}
  .v4-public-hub .v4hub-bracket-round>h4{font-size:12px;padding:9px 10px}
  .v4-public-hub .v4hub-ko-match>div:not(.v4hub-ko-top){padding:11px 12px}
  .v4-public-hub .v4hub-ko-match>div:not(.v4hub-ko-top) span{font-size:13px;line-height:1.3}
  .v4-public-hub .v4hub-ko-match>div:not(.v4hub-ko-top) strong{font-size:17px}
  .v4-public-hub .v4hub-ko-top{padding:9px 11px}
  .v4-public-hub .v4hub-ko-top>span{font-size:10px}
  .v4-public-hub .v4hub-ko-award{font-size:12px;line-height:1.25;padding:9px 11px}
  .v4-public-hub .v4hub-ko-match>footer{font-size:10px;padding:8px 11px}

  .v4-public-hub .v4hub-detail-stats{grid-template-columns:1fr 1fr}
  .v4-public-hub .v4hub-detail-card dl{grid-template-columns:1fr}
}

@media(max-width:480px){
  .v4-public-hub .v4hub-view-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}
  .v4-public-hub .v4hub-kpis b{font-size:25px}
  .v4-public-hub .v4hub-kpis span{font-size:10px}
  .v4-public-hub .v4hub-bracket-block>header h3{font-size:18px}
  .v4-public-hub .v4hub-ko-match>div:not(.v4hub-ko-top) span{font-size:12px}
}


/* Public Phase 2.3.4 — portrait mobile fallback.
 * Some site/theme combinations expose a ~980 CSS-pixel layout viewport on real
 * phones even though the physical screen is much narrower.  Treat portrait
 * viewports up to 980px as mobile so the public controls and knockout bracket
 * remain readable, while leaving tablet/desktop landscape unchanged.
 */
@media (max-width:980px) and (orientation:portrait){
  .v4-public-hub .v4hub-filters{
    grid-template-columns:1fr !important;
  }
  .v4-public-hub .v4hub-filters button,
  .v4-public-hub .v4hub-filters a{
    width:100%;
  }

  .v4-public-hub .v4hub-kpis{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:9px;
  }
  .v4-public-hub .v4hub-kpis>div:last-child:nth-child(odd){
    grid-column:1 / -1;
  }

  .v4-public-hub .v4hub-view-tabs{
    display:grid !important;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:8px;
    overflow:visible;
    padding-bottom:6px;
  }
  .v4-public-hub .v4hub-view-tabs a{
    width:100%;
    min-width:0;
    min-height:40px;
    padding:7px 8px;
    white-space:normal;
    text-align:center;
    line-height:1.15;
  }

  .v4-public-hub .v4-section-head{
    align-items:flex-start;
    flex-direction:column;
    gap:4px;
  }
  .v4-public-hub .v4-section-head>span{align-self:flex-start}

  .v4-public-hub .v4hub-bracket{
    display:grid !important;
    grid-auto-flow:row !important;
    grid-template-columns:minmax(0,1fr) !important;
    grid-auto-columns:auto !important;
    gap:14px;
    overflow-x:visible !important;
    padding-bottom:0;
  }
  .v4-public-hub .v4hub-bracket-round{
    width:100%;
    min-width:0;
    gap:9px;
  }
  .v4-public-hub .v4hub-bracket-round>h4{font-size:12px;padding:9px 10px}
  .v4-public-hub .v4hub-ko-match>div:not(.v4hub-ko-top){padding:11px 12px}
  .v4-public-hub .v4hub-ko-match>div:not(.v4hub-ko-top) span{font-size:13px;line-height:1.3}
  .v4-public-hub .v4hub-ko-match>div:not(.v4hub-ko-top) strong{font-size:17px}
  .v4-public-hub .v4hub-ko-top{padding:9px 11px}
  .v4-public-hub .v4hub-ko-award{font-size:12px;line-height:1.25;padding:9px 11px}
  .v4-public-hub .v4hub-ko-match>footer{font-size:10px;padding:8px 11px}
}

@media (max-width:520px) and (orientation:portrait){
  .v4-public-hub .v4hub-view-tabs{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

/* Public 2.4: official result / Player of the Match / referee summary. */
.v4hub-governance{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;margin-top:8px;padding-top:7px;border-top:1px dashed #dbe5f0;color:#475569;font-size:10px}
.v4hub-governance b{display:inline-flex;align-items:center;padding:4px 7px;border-radius:999px;background:#dcfce7;color:#166534;font-size:9px;letter-spacing:.03em}
.v4hub-schedule-meta .is-official{color:#166534;font-weight:800}
@media(max-width:980px) and (orientation:portrait){.v4hub-governance{font-size:11px}.v4hub-governance b{font-size:10px}}

/* Public 2.5: longer administrative outcome labels */
.v4hub-status{max-width:220px;text-align:center;line-height:1.15}

/* Public 2.7.0 — Volleyball set/rally presentation. */
.v4-public-hub .v4hub-volley-state{display:grid;grid-template-columns:auto auto;justify-content:center;align-items:center;gap:5px 10px;margin:9px 0 0;padding:8px 10px;border:1px solid #bfdbfe;border-left:4px solid #3b82f6;border-radius:8px;background:#eff6ff;color:#1e3a8a;text-align:center}
.v4-public-hub .v4hub-volley-state b{font-size:10px;letter-spacing:.06em;text-transform:uppercase}.v4-public-hub .v4hub-volley-state strong{font-size:21px;line-height:1;font-weight:950;font-variant-numeric:tabular-nums}.v4-public-hub .v4hub-volley-state span{grid-column:1 / -1;font-size:10px;font-weight:800;color:#334155}.v4-public-hub .v4hub-volley-state small{grid-column:1 / -1;font-size:10px;line-height:1.35;color:#475569}
.v4-public-hub .v4hub-schedule-volley{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:5px 9px;margin-top:7px;padding:6px 8px;border:1px solid #bfdbfe;border-left:4px solid #3b82f6;border-radius:7px;background:#eff6ff;color:#1e3a8a}.v4-public-hub .v4hub-schedule-volley b{font-size:9px;letter-spacing:.05em;text-transform:uppercase}.v4-public-hub .v4hub-schedule-volley strong{font-size:16px;font-weight:950;font-variant-numeric:tabular-nums}.v4-public-hub .v4hub-schedule-volley span{width:100%;text-align:center;font-size:10px;color:#475569}
.v4-public-hub .v4hub-table-card.is-volleyball{overflow-x:auto}.v4-public-hub .v4hub-table-card.is-volleyball table{min-width:820px}.v4-public-hub .v4hub-table-card.is-volleyball footer{line-height:1.4}
@media(max-width:700px){.v4-public-hub .v4hub-volley-state{grid-template-columns:1fr auto}.v4-public-hub .v4hub-volley-state strong{font-size:19px}.v4-public-hub .v4hub-table-card.is-volleyball table{min-width:760px}}
