:root{--purple:#5b2a86;--purple-dark:#3d175f;--purple-soft:#eee7f5;--black:#111113;--charcoal:#29292e;--gray:#707078;--line:#d8d8dd;--light:#f4f4f6;--white:#fff;--red:#b42318}*{box-sizing:border-box}body{margin:0;font-family:Arial,Helvetica,sans-serif;background:var(--light);color:var(--black)}header{background:var(--black);color:#fff;padding:16px 20px;border-bottom:5px solid var(--purple)}.brand{max-width:1180px;margin:auto;justify-content:space-between;gap:14px}.brand,.brandleft{display:flex;align-items:center}.brandleft{gap:13px}.brandmark{width:48px;height:48px;border:2px solid #fff;border-radius:50%;display:grid;place-items:center;background:var(--purple);font-weight:900;font-style:italic;letter-spacing:-2px}.brandmark span{font-size:20px}.brand h1{margin:0;font-size:24px;letter-spacing:.6px}.brand small{display:block;margin-top:2px;color:#c9c9cf;font-size:11px;font-weight:700;letter-spacing:1.4px}.headerbadge{border:1px solid #55555d;border-radius:999px;padding:7px 12px;color:#d8d8dc;font-size:12px;font-weight:800;letter-spacing:1px}.wrap{max-width:1180px;margin:22px auto 50px;padding:0 16px}.scheduleHero{background:linear-gradient(120deg,var(--purple-dark),var(--purple));color:#fff;border-radius:16px;padding:22px 25px;margin-bottom:14px;display:flex;align-items:center;justify-content:space-between;box-shadow:0 7px 22px #35104b1c}.scheduleHero h2{margin:4px 0 5px;font-size:28px}.scheduleHero p{margin:0;color:#eee6f5}.eyebrow{font-size:11px;font-weight:800;letter-spacing:1.6px;color:#d8c8e8}.heroIcon{width:62px;height:62px;border-radius:15px;background:#ffffff16;display:grid;place-items:center}.heroIcon .icon{width:31px;height:31px}.card,.toolbar{background:#fff;border:1px solid var(--line);border-radius:12px;padding:13px}.toolbar{gap:12px;margin-bottom:14px;box-shadow:0 2px 8px #1111}.navgroup,.toolbar{display:flex;align-items:center}.navgroup{gap:6px}.iconbtn{width:38px;height:38px;padding:0;font-size:25px;display:grid;place-items:center}.monthnav{font-weight:800;min-width:175px;text-align:center}.filtergroup{margin-left:auto;display:flex;align-items:center;gap:7px;color:var(--purple)}.filtergroup .icon{width:19px}.icon{width:20px;height:20px;flex:none}.btn,button,input,select,textarea{font:inherit}.btn,button{border:0;border-radius:8px;padding:10px 14px;cursor:pointer;background:var(--purple);color:#fff;text-decoration:none;font-weight:700}.iconbtn,.secondary{background:#ededf0;color:var(--black)}.adminbtn{background:var(--black)}.danger{background:var(--red)}input,select,textarea{border:1px solid #bdbdc5;border-radius:8px;padding:10px;background:#fff;color:var(--black)}.calendar{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:1px;gap:1px;background:#cfcfd5;border:1px solid #cfcfd5;border-radius:12px;overflow:hidden;box-shadow:0 3px 12px #1111}.day,.dow{background:#fff;padding:8px;min-height:118px}.dow{min-height:auto;font-weight:800;text-align:center;background:var(--charcoal);color:#fff;font-size:12px;letter-spacing:.4px}.day.empty{background:#eeeef1}.day .num{font-weight:800;color:#55555d;font-size:13px}.event{display:block;width:100%;text-align:left;margin-top:6px;padding:6px 7px;border-radius:6px;background:var(--purple-soft);color:var(--black);border-left:4px solid var(--purple);font-size:11px;cursor:pointer;font-weight:400}.event span{margin-right:5px}.event strong{display:block;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.eventteam{font-weight:900}.event.tbd{border-left-style:dashed}.event.changed{background:#e3e3e7}.event.canceled{border-left-color:var(--red);text-decoration:line-through}.team-jv{border-left-color:#2f2f34}.team-frosh{border-left-color:#85858d}.upcoming{margin-top:24px}.sectiontitle{display:flex;align-items:center;gap:10px;margin-bottom:10px}.sectiontitle>.icon{color:var(--purple);width:25px;height:25px}.sectiontitle h3{margin:0;font-size:21px}.sectiontitle span{font-size:12px;color:var(--gray)}.list{display:grid;grid-gap:9px;gap:9px}.gamecard{width:100%;display:flex;align-items:center;gap:14px;background:#fff;color:var(--black);border:1px solid var(--line);padding:12px;text-align:left;border-radius:12px;box-shadow:0 2px 7px #1111110d}.gamecard:hover{border-color:#bda7d0}.datebox{width:54px;height:54px;border-radius:10px;background:var(--black);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;flex:none}.datebox strong{font-size:21px;line-height:20px}.datebox span{font-size:10px;letter-spacing:1px;color:#d4d4d8}.gameinfo{min-width:0;flex:1 1}.gameinfo>strong{display:block;margin:5px 0;font-size:16px}.gametop{display:flex;align-items:center;gap:7px}.status,.teampill{display:inline-flex;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.5px;padding:4px 7px;border-radius:999px}.teampill{background:var(--purple);color:#fff}.status{background:#ededf0;color:#55555d}.status.canceled{background:#fee4e2;color:#912018}.meta{display:flex;gap:15px;flex-wrap:wrap;color:#66666e;font-size:12px}.meta span{display:flex;align-items:center;gap:5px}.meta .icon{width:14px;height:14px}.chev{font-size:27px;color:#96969d}.emptyState{background:#fff;border:1px dashed #c6c6cc;border-radius:12px;padding:24px;text-align:center;color:var(--gray)}.modal{position:fixed;inset:0;background:#000a;display:flex;align-items:center;justify-content:center;padding:18px;z-index:20}.modalbox{background:#fff;border-radius:16px;padding:21px;width:min(650px,100%);max-height:90%;overflow:auto;border-top:6px solid var(--purple)}.modalhead{display:flex;justify-content:space-between;gap:15px;align-items:flex-start}.modalhead h2{margin:7px 0 12px}.closebtn{background:#ededf0;color:#222;width:36px;height:36px;padding:0;font-size:23px}.detailgrid{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px}.detail{display:flex;gap:10px;padding:12px;border-radius:10px;background:#f5f5f7}.detail .icon{color:var(--purple)}.detail span{display:flex;flex-direction:column;gap:3px}.detail b{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:#696970}.detail small{color:#74747c}.detail.full{grid-column:1/-1}.note{margin-top:10px;padding:11px;border-left:3px solid var(--purple);background:var(--purple-soft);border-radius:6px}.grid2{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}.field{display:flex;flex-direction:column;gap:5px}.full{grid-column:1/-1}.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}.muted{color:#667085}.login{max-width:420px;margin:70px auto}.error{background:#fee4e2;color:#912018;padding:10px;border-radius:8px;margin-bottom:12px}@media(max-width:700px){header{padding:12px}.brandmark{width:40px;height:40px}.brand h1{font-size:18px}.headerbadge{display:none}.wrap{margin-top:12px;padding:0 10px}.scheduleHero{padding:18px}.scheduleHero h2{font-size:23px}.scheduleHero p{font-size:13px}.calendar,.heroIcon{display:none}.toolbar{position:-webkit-sticky;position:sticky;top:0;z-index:5;gap:8px}.monthnav{min-width:135px;font-size:14px}.filtergroup{margin-left:0;flex:1 1}.filtergroup .icon{display:none}.filtergroup select{width:100%}.adminbtn{padding:10px}.detailgrid,.grid2{grid-template-columns:1fr}.detail.full{grid-column:auto}.meta{gap:9px}.gamecard{gap:10px}.datebox{width:48px;height:48px}.desktopOnly{display:none}}.brandlogo{width:58px;height:58px;object-fit:contain;background:#fff;border-radius:10px;padding:3px}.event.team-varsity{background:#eee4f5;border-left-color:#5b167f}.event.team-varsity .eventteam{color:#5b167f}.event.team-jv{background:#e7e7e9;border-left-color:#111113}.event.team-jv .eventteam{color:#111113}.event.team-frosh{background:#f0f0f2;border-left-color:#85858d}.event.team-frosh .eventteam{color:#686870}.event.team-jv-frosh{background:#ece7f0;border-left-color:#4c4c52}.event.team-jv-frosh .eventteam{color:#4c4c52}.teamid-varsity{background:#5b167f!important;color:#fff!important}.teamid-jv{background:#111113!important;color:#fff!important}.teamid-frosh{background:#85858d!important;color:#fff!important}.teamid-jv-frosh{background:#4c4c52!important;color:#fff!important}@media(max-width:700px){.brandlogo{width:44px;height:44px}}.legend{display:flex;gap:16px;flex-wrap:wrap;background:#fff;border:1px solid var(--line);padding:9px 13px;border-radius:10px;margin:-5px 0 14px;font-size:12px;font-weight:700}.legend span{display:flex;align-items:center;gap:6px}.dot{width:10px;height:10px;border-radius:50%;display:inline-block}.dot.varsity{background:#5b167f}.dot.jv{background:#111}.dot.frosh{background:#8c8c92}.dot.combo{background:#4c4c52}.dot.all{background:#c7c7cc}.breakBanner{background:#171719;color:#fff;border-left:7px solid #5b167f;border-radius:10px;padding:11px 15px;margin:8px 0;display:flex;align-items:center;gap:12px}.breakBanner b{font-size:15px}.breakBanner span{color:#d0d0d4;font-size:12px}.breakBanner small{margin-left:auto;color:#fff;font-weight:800}.breakday{background:#f1eef4}.miniBreak{margin-top:5px;padding:4px 5px;background:#29292e;color:#fff;border-radius:4px;font-size:9px;font-weight:800}.event em,.miniBreak{text-transform:uppercase}.event em{display:block;font-style:normal;font-size:8px;color:#777;margin-top:2px;letter-spacing:.4px}.event.type-practice{background:#fafafa}.event.type-game{font-weight:600}.event.type-tournament{box-shadow:inset 0 0 0 1px #bbb}.event.type-tryout{background:#e9e9ec}.event.type-camp{background:#f2f2f3}.event.type-travel{background:#e9e4ed}.typepill{display:inline-flex;margin-left:7px;font-size:10px;font-weight:900;text-transform:uppercase;padding:4px 7px;border-radius:999px;background:#ececef;color:#444}.adminlogo{width:90px;height:90px;object-fit:contain;display:block;margin:0 auto 10px}.adminrow{padding:10px 0;border-bottom:1px solid #e4e7ec;display:flex;gap:10px;justify-content:space-between;align-items:center;flex-wrap:wrap}@media(max-width:700px){.legend{gap:9px}.breakBanner{align-items:flex-start;flex-direction:column;gap:3px}.breakBanner small{margin-left:0}.calendar{display:none}}.adminCalendar{display:grid}.adminDayHead{display:flex;align-items:center;justify-content:space-between}.dayAdd{width:24px;height:24px;min-width:24px;padding:0;border-radius:6px;background:#ededf0;color:#3d175f;font-size:18px;line-height:1}.adminCalendar .event:hover{outline:2px solid #5b2a86;outline-offset:1px}.adminModal{width:min(760px,100%)}.eyebrow.dark{color:#5b2a86}@media(max-width:700px){.adminCalendar{display:grid;overflow-x:auto;grid-template-columns:repeat(7,minmax(135px,1fr))}.adminCalendar .day,.adminCalendar .dow{min-width:135px}}