/* PrepSlate Hawaii: shared styles for Open Division, league hub and every league page. */

:root{--ink:#101b2c;--muted:#617084;--lime:#ccff55;--paper:#f3f5f7;--line:#dde3e9}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;font-family:Inter,Arial,sans-serif;background:var(--paper);color:var(--ink)}a{color:inherit}button,select,input{font:inherit}button,a,select{touch-action:manipulation}button{cursor:pointer}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid #518600;outline-offset:4px}.wrap{max-width:1180px;margin:auto;padding:0 28px}.skip{position:absolute;top:-70px}.skip:focus{top:5px;background:white;padding:12px;z-index:10}header{background:#fff;border-bottom:1px solid var(--line)}.nav{height:82px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{text-decoration:none;display:flex;align-items:center;gap:11px;font-size:23px;font-weight:900;letter-spacing:-1px}.mark{display:grid;place-items:center;background:var(--ink);color:var(--lime);width:37px;height:37px;font-style:italic;transform:skew(-8deg);border-radius:7px}.brand small{display:block;font-size:10px;letter-spacing:3px;color:var(--muted);margin-top:4px}.navlinks{display:flex;gap:28px;align-items:center}.navlinks a{text-decoration:none;font-size:14px;font-weight:700}.navlinks .active{border-bottom:3px solid #7baf14;padding:29px 0}.pill{display:inline-flex;padding:8px 12px;border:1px solid var(--line);border-radius:50px;font-size:12px;font-weight:700;gap:7px;align-items:center}.dot{height:7px;width:7px;background:#81b32c;border-radius:50%}.demo{background:#e9efd9;color:#394b1d;font-size:12px;text-align:center;padding:10px 18px;line-height:1.5}.hero{background:var(--ink);color:#fff;position:relative;overflow:hidden}.hero .wrap{position:relative;display:grid;grid-template-columns:1.3fr 1fr;align-items:center;gap:50px;padding-top:57px;padding-bottom:60px}.eyebrow{font-size:11px;font-weight:800;letter-spacing:2px;text-transform:uppercase;display:flex;align-items:center;gap:10px}.hero .eyebrow{color:var(--lime)}.eyebrow:before{content:"";width:23px;height:3px;background:currentColor}.hero h1{font-size:clamp(43px,5.3vw,70px);letter-spacing:-3px;line-height:.98;text-transform:uppercase;font-weight:950;margin:23px 0}.hero h1 span{color:var(--lime)}.hero p{color:#b8c5d6;max-width:420px;font-size:16px;line-height:1.65}.btn{padding:13px 20px;border:1px solid var(--line);border-radius:7px;background:#fff;font-size:13px;font-weight:800;text-decoration:none;display:inline-flex;justify-content:center;align-items:center;gap:12px}.btn.primary{background:var(--lime);border-color:var(--lime);color:var(--ink)}.hero .btn{margin-top:15px}.field{position:absolute;right:-80px;top:0;width:580px;height:440px;transform:rotate(-18deg);opacity:.06;border:2px solid white;background:repeating-linear-gradient(90deg,transparent 0px,transparent 68px,#fff 69px,#fff 71px)}.spotlight{position:relative;border:1px solid #415169;background:#1b293e;border-radius:13px;padding:24px;box-shadow:0 20px 45px #0003}.spothead{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #415169;padding-bottom:17px;font-size:11px;font-weight:700;letter-spacing:1px}.spothead span:first-child{color:var(--lime)}.spotmatch{display:flex;align-items:center;justify-content:space-between;text-align:center;padding:24px 0}.spotmatch img{width:66px;height:66px;object-fit:contain;background:#fff;border-radius:50%;padding:6px}.spotmatch strong{display:block;font-size:18px;margin-top:10px}.spotmatch small{color:#b8c5d6;font-size:11px}.spotmatch .vs{color:#98a7bb;font-size:13px;font-weight:900;font-style:italic}.spotfoot{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #415169;padding-top:17px;font-size:12px;color:#b8c5d6}.spotfoot button{border:0;background:transparent;color:var(--lime);font-weight:800;padding:8px}.main{padding-top:39px;padding-bottom:50px}.sectionhead{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}.sectionhead h2{font-size:29px;letter-spacing:-1px;margin:6px 0}.sectionhead p{font-size:13px;color:var(--muted);margin:0}.season{font-size:12px;color:var(--muted);font-weight:700}.filterbar{background:#fff;border:1px solid var(--line);border-radius:10px;padding:17px 19px;display:flex;gap:17px;align-items:end}.control{display:flex;flex-direction:column;gap:7px;flex:1}.control label{font-size:10px;letter-spacing:1px;font-weight:800;text-transform:uppercase;color:var(--muted)}select,input{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:6px;background:#f9fafb;color:var(--ink);min-height:43px}.filterbar .btn{min-height:43px}.weeknav{display:flex;justify-content:space-between;align-items:center;margin:24px 0 18px;gap:15px}.weeks{display:flex;gap:6px;flex-wrap:wrap}.weeks button{background:transparent;border:1px solid transparent;border-radius:6px;padding:10px 15px;font-size:12px;font-weight:800;color:var(--muted)}.weeks button[aria-pressed=true]{background:var(--ink);color:#fff}.resultcount{font-size:12px;color:var(--muted)}.layout{display:grid;grid-template-columns:minmax(0,1fr) 285px;gap:25px}.day{display:flex;align-items:center;gap:14px;margin:4px 0 15px;font-size:12px;font-weight:850;letter-spacing:.5px}.day:after{content:"";height:1px;flex:1;background:var(--line)}.game{background:#fff;border:1px solid var(--line);border-left:4px solid var(--ink);border-radius:9px;margin-bottom:12px;overflow:hidden}.gamebody{padding:21px;display:grid;grid-template-columns:1fr 70px 1fr;gap:12px;align-items:center}.team{display:flex;align-items:center;gap:12px;min-width:0}.team.right{flex-direction:row-reverse;text-align:right}.logo{width:45px;height:45px;object-fit:contain;flex-shrink:0}.team strong{display:block;font-size:15px;line-height:1.3}.team small{display:block;font-size:11px;color:var(--muted);margin-top:4px}.kickoff{text-align:center}.kickoff strong{display:block;font-size:17px;font-weight:900;white-space:nowrap}.kickoff small{font-size:10px;color:var(--muted);text-transform:uppercase;font-weight:750}.gamefoot{background:#fafbfc;border-top:1px solid #edf0f3;padding:11px 20px;display:flex;justify-content:space-between;gap:15px;align-items:center;font-size:11px;color:var(--muted)}.gamefoot button{background:transparent;border:0;font-size:11px;color:var(--ink);font-weight:800;padding:5px}.sidebar{display:flex;flex-direction:column;gap:17px}.sidecard{background:#fff;border:1px solid var(--line);border-radius:10px;padding:23px}.sidecard h3{font-size:17px;letter-spacing:-.4px;margin:0 0 14px}.sidecard p{color:var(--muted);font-size:13px;line-height:1.6}.sidecard.dark{background:var(--ink);color:white;border:0}.dark p{color:#b8c5d6}.dark .eyebrow{color:var(--lime);font-size:9px}.dark h3{font-size:23px;line-height:1.15;margin-top:17px}.dark .btn{width:100%;margin-top:10px}.legend{display:flex;gap:9px;align-items:start;font-size:12px;line-height:1.6;margin-top:14px;color:var(--muted)}.legend b{color:var(--ink)}.number{background:#edf2e2;color:#4c6c16;display:grid;place-items:center;width:24px;height:24px;border-radius:5px;flex-shrink:0;font-weight:800}.teamsection{border-top:1px solid var(--line);padding-top:35px;margin-top:34px}.teamgrid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.teamtile{border:1px solid var(--line);border-radius:9px;background:#fff;padding:18px 7px;text-align:center;color:var(--ink)}.teamtile:hover,.teamtile[aria-pressed=true]{border-color:#7baf14;background:#f4fae7}.teamtile img{width:54px;height:54px;object-fit:contain}.teamtile strong{display:block;font-size:12px;margin-top:10px}.teamtile small{display:block;font-size:10px;color:var(--muted);margin-top:5px}.about{display:flex;align-items:center;justify-content:space-between;gap:25px;border-top:1px solid var(--line);padding-top:28px;margin-top:30px}.about h3{font-size:18px;margin:0 0 8px}.about p{font-size:12px;color:var(--muted);max-width:640px;line-height:1.6;margin:0}.about a{font-size:12px;white-space:nowrap;font-weight:700}footer{background:#fff;border-top:1px solid var(--line);padding:23px 0}.footerinner{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:var(--muted);gap:20px}.footerinner strong{color:var(--ink);font-size:15px}.empty{padding:35px;background:#fff;border:1px dashed var(--line);border-radius:8px;color:var(--muted);text-align:center}dialog{border:1px solid var(--line);border-radius:16px;padding:29px;max-width:480px;width:calc(100% - 32px);color:var(--ink)}dialog::backdrop{background:#101b2ccc}dialog h2{margin:15px 0;font-size:28px;letter-spacing:-1px}dialog p{font-size:14px;line-height:1.6;color:var(--muted)}.close{float:right;background:#f3f5f7;border:0;border-radius:50%;height:34px;width:34px;font-size:20px}.detailteams{font-weight:850;font-size:22px;margin-top:25px}.dialogactions{display:flex;gap:10px;flex-wrap:wrap;margin-top:23px}.detailmeta{padding:15px;background:var(--paper);border-radius:7px;font-size:13px;line-height:2}.notice{font-size:11px!important;background:#edf2e2;padding:12px;border-radius:6px}.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:var(--ink);color:#fff;padding:13px 21px;border-radius:8px;font-size:13px;z-index:20;box-shadow:0 10px 30px #0003}
@media(max-width:900px){.hero .wrap{gap:30px}.layout{grid-template-columns:1fr}.sidebar{display:grid;grid-template-columns:1fr 1fr}.teamgrid{grid-template-columns:repeat(4,1fr)}.navlinks{gap:18px}.hero h1{font-size:53px}.hero .wrap{padding-top:45px;padding-bottom:45px}}
@media(max-width:600px){.wrap{padding-left:18px;padding-right:18px}.nav{height:72px;gap:12px}.brand{font-size:20px}.brand small{font-size:8px}.navlinks{gap:15px}.navlinks a{font-size:12px}.navlinks a:last-of-type,.nav .pill{display:none}.navlinks .active{padding:25px 0}.hero .wrap{grid-template-columns:1fr;gap:25px;padding-top:32px;padding-bottom:32px}.hero h1{font-size:48px;letter-spacing:-2px}.hero p{font-size:14px}.spotlight{padding:19px}.spotmatch{padding:18px 0}.spotmatch img{height:53px;width:53px}.spotmatch strong{font-size:16px}.main{padding-top:28px}.sectionhead{align-items:start}.sectionhead h2{font-size:25px}.season{font-size:10px}.filterbar{flex-wrap:wrap;padding:14px;gap:12px}.control{flex-basis:40%}.filterbar .search{flex-basis:100%}.filterbar .btn{width:100%}.weeknav{align-items:start;flex-direction:column;gap:8px}.weeks button{padding:9px 12px}.gamebody{padding:17px 13px;grid-template-columns:1fr 55px 1fr;gap:7px}.team,.team.right{flex-direction:column;text-align:center;gap:7px}.team strong{font-size:13px}.team small{font-size:10px}.kickoff strong{font-size:14px}.gamefoot{padding:9px 12px;font-size:10px}.sidebar{grid-template-columns:1fr}.teamgrid{grid-template-columns:repeat(3,1fr);gap:9px}.about,.footerinner{align-items:start;flex-direction:column;gap:15px}.day{font-size:11px}.demo{font-size:10px}.spotfoot{font-size:11px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.schedulehero{background:var(--ink);color:white;padding:46px 0}.schedulehero h1{font-size:clamp(36px,6vw,62px);letter-spacing:-2px;margin:16px 0}.schedulehero h1 span{color:var(--lime)}.schedulehero p{color:#b8c5d6;max-width:740px;line-height:1.65}.schedulehero .eyebrow{color:var(--lime)}.schedulehero .btn{color:var(--ink)}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:22px}.stats{display:flex;gap:32px;margin-top:28px;font-size:12px;color:#b8c5d6}.stats strong{display:block;color:white;font-size:27px;margin-bottom:5px}.filterbar{flex-wrap:wrap}.filterbar .control{min-width:160px}.summary{display:flex;justify-content:space-between;gap:16px;margin:22px 0;font-size:13px;color:var(--muted)}.weekgroup{background:white;border:1px solid var(--line);border-radius:12px;margin-bottom:16px;overflow:hidden}.weekgroup>summary{cursor:pointer;padding:21px 23px;font-weight:850;font-size:18px;display:flex;gap:16px;align-items:center;justify-content:space-between}.weekgroup>summary:after{content:'+';font-size:25px;color:#567717}.weekgroup[open]>summary:after{content:'−'}.weekgroup>summary small{font-size:12px;color:var(--muted);font-weight:500;margin-left:auto}.weekcontents{padding:0 23px 20px}.entrygrid{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin-bottom:23px}.entry{border:1px solid var(--line);border-radius:9px;padding:18px;min-width:0;border-top:3px solid var(--ink)}.tags{display:flex;gap:6px;flex-wrap:wrap;font-size:10px;margin-bottom:14px}.tag{background:#edf2e2;padding:5px 8px;border-radius:4px;font-weight:750}.tag.other{background:#edf0f4;color:#526077}.matchrow{display:grid;grid-template-columns:1fr 26px 1fr;gap:9px;align-items:center}.matchrow b{font-size:17px;line-height:1.25}.matchrow small{display:block;color:var(--muted);font-size:10px;margin-top:5px}.matchrow .host{text-align:right}.versus{text-align:center;font-size:11px;font-weight:800;color:var(--muted)}.entrymeta{border-top:1px solid var(--line);margin-top:17px;padding-top:13px;font-size:12px;line-height:1.7;color:var(--muted)}.entrymeta strong{color:var(--ink)}.source-row{font-size:11px;color:var(--muted);margin-top:11px}.source-row summary{cursor:pointer;padding:5px 0}.source-row p{line-height:1.7;overflow-wrap:anywhere}.callout{background:#e9efd9;border-left:4px solid #7baf14;padding:17px 20px;font-size:13px;line-height:1.65;margin-bottom:24px}.postgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:20px 0}.postcard{border:1px solid var(--line);border-radius:9px;padding:20px;background:white}.postcard h3{margin:0 0 10px}.postcard p{font-size:13px;line-height:1.7;color:var(--muted)}.source-note{font-size:12px;color:var(--muted);line-height:1.75}.divisiongrid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.roster{background:white;border:1px solid var(--line);border-radius:9px;padding:20px}.roster h3{margin-top:0}.roster p{font-size:13px;color:var(--muted);line-height:1.8}.btn:disabled{opacity:.5;cursor:default}@media(max-width:650px){.entrygrid,.postgrid,.divisiongrid{grid-template-columns:1fr}.stats{gap:22px}.weekcontents{padding:0 15px 15px}.weekgroup>summary{font-size:16px;padding:18px 15px}.filterbar .control{min-width:120px}.matchrow b{font-size:16px}.summary{flex-direction:column;gap:5px}.schedulehero{padding:32px 0}.nav .navlinks{gap:12px}.navlinks a:last-of-type{display:block}.navlinks a{font-size:11px}}@media print{header,.filterbar,.actions,.skip,.source-row,.summary .btn{display:none!important}.schedulehero{background:white;color:black;padding:15px 0}.schedulehero p,.stats,.stats strong,.schedulehero h1 span{color:black}.weekgroup{break-inside:auto}.entry{break-inside:avoid}.wrap{max-width:none;padding:0}.weekgroup:not([open]) .weekcontents{display:block}.entrygrid{grid-template-columns:1fr 1fr}body{background:white}.weekgroup>summary:after{display:none}}

.league-tabs{display:flex;gap:9px;flex-wrap:wrap;padding:20px 0}.league-tabs a{border:1px solid var(--line);border-radius:7px;padding:11px 16px;text-decoration:none;font-size:13px;font-weight:800;background:white}.league-tabs a[aria-current=page]{background:var(--ink);color:var(--lime);border-color:var(--ink)}.tag.warn{background:#fff0d4;color:#785200}.coverage{font-size:12px;color:var(--muted);line-height:1.7}.hubgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.leaguecard{background:white;padding:28px;border:1px solid var(--line);border-top:4px solid var(--ink);border-radius:12px}.leaguecard h2{font-size:32px;margin:12px 0}.leaguecard p{color:var(--muted);line-height:1.6;font-size:14px}.leaguecard .btn{margin-top:15px}.source-note p{color:var(--muted)}.entry .conflict-note{background:#fff5e2;color:#72521b;padding:10px;border-radius:6px;margin:12px 0 0;font-size:12px;line-height:1.6}.teamlist{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0}.teamlist button{padding:10px 14px;background:white;border:1px solid var(--line);border-radius:7px;color:var(--ink);font-size:13px}.teamlist button[aria-pressed=true]{background:var(--ink);color:var(--lime)}.source-row a{overflow-wrap:anywhere}summary:focus-visible{outline:3px solid #518600;outline-offset:-3px}.nav .navlinks{flex-wrap:wrap}.checklegend{font-size:12px;line-height:1.7;color:var(--muted);margin:16px 0}.noscript{padding:20px;background:#fff0d4}@media(max-width:650px){.hubgrid{grid-template-columns:1fr}.stats{flex-wrap:wrap}.league-tabs{gap:6px}.league-tabs a{padding:10px 13px}.navlinks .active{padding:10px 0}.nav{height:auto;min-height:72px;padding-top:12px;padding-bottom:12px}.navlinks{justify-content:flex-end}.sectionhead h2{font-size:24px}}
/* Clear section boundaries */
.section-panel{margin:32px 0;padding:30px;border:1px solid var(--line);border-radius:14px;scroll-margin-top:24px}
.section-panel.section-light{background:#fff}
.section-panel.section-muted{background:#eaf0f4}
.section-panel.section-source{background:#e8edf2;border-top:4px solid #7a899c}
.section-panel.section-dark{background:var(--ink);color:#fff;border-color:var(--ink)}
.section-panel.section-dark .eyebrow{color:var(--lime)}
.section-panel.section-dark .sidecard,.section-panel.section-dark .postcard{background:#1b293e;border-color:#415169;color:#fff}
.section-panel.section-dark p,.section-panel.section-dark .coverage,.section-panel.section-dark .postcard p{color:#c4cfdd}
.section-panel.section-dark a{color:var(--lime)}
.section-panel h2{position:relative;padding-top:17px;margin-top:0;font-size:28px;letter-spacing:-.7px}
.section-panel h2:before{content:"";position:absolute;top:0;left:0;width:42px;height:4px;background:#7baf14;border-radius:2px}
.section-panel.section-dark h2:before{background:var(--lime)}
.section-panel .sectionhead{margin-bottom:24px}
.section-panel .eyebrow{margin-bottom:13px}
.section-panel .sidecard.source-note,.section-source .sidecard{background:transparent;border:0;padding:0}
.schedule-tools{padding:20px;background:#eef3f7;border:1px solid #cbd5df;border-top:4px solid var(--ink);border-radius:11px;margin-bottom:26px}
.schedule-tools .filterbar{padding:0;background:transparent;border:0}
.schedule-tools .summary,.schedule-tools .weeknav{margin-bottom:0}
.schedule-tools .checklegend{margin-bottom:0}
.schedule-tools input,.schedule-tools select{background:#fff}
.weekgroup.is-current{border:2px solid #7baf14;box-shadow:0 0 0 3px #ccff5533}
.weekgroup.is-current>summary{background:#f0f8df}
.week-title{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.current-badge{font-size:10px;letter-spacing:.5px;text-transform:uppercase;padding:6px 9px;border-radius:5px;background:var(--lime);color:var(--ink);white-space:nowrap}
.hubgrid .leaguecard{background:#f7f9fb}
.about.section-panel{background:#fff}
@media(max-width:650px){.section-panel{padding:20px 15px;margin:24px 0;border-radius:11px}.section-panel h2{font-size:24px}.schedule-tools{padding:15px}.week-title{gap:7px}.weekgroup>summary{flex-wrap:wrap;gap:9px}.weekgroup>summary small{margin-left:0}.weekgroup>summary:after{margin-left:auto}.current-badge{font-size:9px;padding:5px 7px}}
@media print{.section-panel,.schedule-tools{padding:0;border:0;background:white!important;color:black!important}.section-panel.section-dark p{color:black}.current-badge{background:white;border:1px solid black}.section-panel.section-dark .postcard{background:white;color:black}}

/* Final scores */
.game-score{display:block;font-size:2.1rem;font-weight:900;line-height:1.2;margin:8px 0;font-variant-numeric:tabular-nums;color:#101b2c}.final-tag{background:#d9f5a5;color:#183306;font-weight:800}.pending-tag{background:#edf0f4;color:#526071}.result-sources{border-top:2px solid #b6e35d}.result-sources summary{color:#254607;font-weight:700}

/* Open Division label */
.subtle-label{color:var(--muted);font-weight:400}

/* Shared responsive navigation */
.nav-toggle{display:none;border:1px solid var(--ink);border-radius:8px;background:var(--ink);color:var(--lime);font-weight:800;min-height:44px;padding:10px 14px;align-items:center;justify-content:center;gap:9px}
.nav-toggle-icon{width:18px;display:grid;gap:4px}.nav-toggle-icon i{display:block;height:2px;background:currentColor}
@media screen and (max-width:760px){
  header .nav{height:auto;min-height:72px;flex-wrap:wrap;gap:12px;padding-top:12px;padding-bottom:12px}
  header .brand{flex-shrink:0;font-size:20px}
  header .nav .pill{display:none}
  header.nav-ready .nav-toggle{display:inline-flex;margin-left:auto}
  header .nav .navlinks{flex:0 0 100%;width:100%;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:6px;padding:12px 0 0;border-top:1px solid var(--line)}
  header.nav-ready .navlinks{display:none}
  header.nav-ready.nav-open .navlinks{display:flex}
  header .nav .navlinks a,header .nav .navlinks a:last-of-type{display:flex;align-items:center;min-height:46px;padding:12px 14px;font-size:15px;border:1px solid transparent;border-radius:7px}
  header .nav .navlinks a:hover{background:#f3f5f7}
  header .nav .navlinks a.active{background:#edf5df;border-color:#c2d6a0;border-bottom:1px solid #c2d6a0;color:#24370d}
  .filterbar .control{min-width:0}
  .schedule-tools select,.schedule-tools input{font-size:16px}
  .matchrow b,.team strong{overflow-wrap:anywhere}
}
@media screen and (max-width:360px){
  .filterbar .control{flex-basis:100%}
  .schedule-tools{padding:12px}
  .leaguecard{padding:20px}
}
@media print{.nav-toggle{display:none!important}}

/* Homepage feature uses the original Open Division visual treatment. */
.hero .btn:not(.primary){color:var(--ink)}.featured-link{color:var(--lime);font-weight:800;text-decoration:none;padding:10px 0;min-height:44px;display:inline-flex;align-items:center}.spotfoot{flex-wrap:wrap;gap:10px}
