.season-app { background:#f2f7fa; padding-bottom:40px; }
.season-app .container { width:min(1240px,calc(100% - 40px)); }
.season-intro { display:flex; justify-content:space-between; align-items:center; gap:24px; padding:38px 0 26px; }
.season-intro h1 { font-size:clamp(2.3rem,4.6vw,4rem); line-height:1.04; letter-spacing:-.045em; margin:20px 0 16px; }
.season-intro h1 span { color:#0077a1; }
.season-intro p { max-width:620px; font-size:1.1rem; }
.season-badge,.season-eyebrow { font-size:.8rem; font-weight:800; letter-spacing:.1em; }
.season-badge { color:#075068; background:#dbeff5; padding:8px 12px; border-radius:6px; }
.season-app .btn,.season-dialog .btn { min-height:44px; white-space:normal; line-height:1.3; cursor:pointer; }
.season-app .btn-light,.season-dialog .btn-light { background:white; color:#123348; border:1px solid #aec7d5; }
.season-app button:disabled { opacity:.5; cursor:not-allowed; }
.season-app a:not(.btn):not(.week-card),.season-dialog a { text-decoration:underline; text-underline-offset:3px; }
.season-panel { background:white; border:1px solid #d2e1e9; padding:24px; border-radius:14px; margin-bottom:20px; }
.season-panel h2 { margin:0 0 12px; font-size:1.35rem; letter-spacing:-.02em; }
.season-panel summary { font-weight:750; cursor:pointer; font-size:1.1rem; }
.season-panel summary span { font-size:.9rem; font-weight:400; margin-left:14px; color:#486173; }
.season-panel[open] summary { margin-bottom:18px; }
.season-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.season-app label,.season-dialog label { font-weight:650; font-size:1rem; }
.season-app input:not([type=checkbox]):not([type=file]),.season-app select,.season-dialog input:not([type=checkbox]),.season-dialog select { width:100%; min-width:0; display:block; font:inherit; padding:11px 12px; border:1px solid #9fb8c8; border-radius:7px; background:white; color:#102b3f; margin-top:6px; min-height:44px; }
.season-app input[type=checkbox],.season-dialog input[type=checkbox] { width:20px;height:20px;vertical-align:middle;accent-color:#0078a3; }
.season-app :focus-visible,.season-dialog :focus-visible { outline:3px solid #0088b7;outline-offset:3px; }
.span-two { grid-column:1/-1; }
.season-help,.season-privacy { font-size:.9rem; color:#476174; line-height:1.6; }
.season-storage { display:flex; align-items:center; gap:20px; padding:15px 18px; background:#e1edf3; border-radius:10px; }
.season-storage span { font-size:.9rem; flex:1; }
.season-privacy { max-width:1000px; }
.season-notice:empty,.season-error:empty { display:none; }
.season-notice { background:#e5f3f9; border-left:4px solid #0078a3; padding:12px; margin-bottom:18px; }
.season-error { color:#9b2525; font-weight:600; }
.season-toolbar { display:flex;align-items:center;justify-content:space-between;gap:20px;margin:28px 0 18px; }
.season-toolbar h2 { font-size:1.8rem;margin:4px 0; }
.season-toolbar p { margin:0;color:#486173;font-size:.9rem; }
.season-actions { display:flex;align-items:center;flex-wrap:wrap;gap:10px; }
.jump-label { font-size:.8rem!important; }
.season-viewbar { display:flex;align-items:center;gap:18px;margin-bottom:20px; }
.season-viewbar label { flex:0 0 230px; }.season-viewbar p{font-size:.9rem;color:#476174;}
.season-metrics { display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:20px; }
.season-stat { padding:17px;background:#fff;border:1px solid #d2e1e9;border-radius:10px; }
.season-stat strong { font-size:1.9rem;line-height:1.2;display:block;letter-spacing:-.03em; }
.season-stat span { font-size:.9rem; }.season-stat small{display:block;color:#486173;}
.season-columns{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,1fr);gap:22px;align-items:start;}
.season-week-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:20px; }
.season-day { border:1px solid #c8dce7;background:#fff;border-radius:12px;overflow:hidden; }
.season-day-heading{display:flex;justify-content:space-between;align-items:center;background:#e4eff5;padding:12px;}
.season-day h3{font-size:1rem;margin:0;}.season-day-heading button {border:0;background:transparent;color:#006c96;font-size:1.5rem;min-height:44px;min-width:44px;cursor:pointer;}
.season-event { padding:14px 12px;border-bottom:1px solid #dce6ed; border-left:4px solid #79bbd1; }
.season-event.type-game {border-left-color:#0b668b;}.season-event.type-strength{border-left-color:#6c8833;}
.season-event h4{font-size:1rem;margin:0 0 5px;}.season-event p{margin:4px 0;font-size:.875rem;color:#496275;}
.season-event .event-status{display:inline-block;font-size:.8rem;padding:2px 7px;background:#edf4f7;border-radius:4px;color:#17384d;}
.season-event.status-missed,.season-event.status-cancelled{background:#f4f5f6;color:#56666f;border-left-color:#a7b3ba;}
.event-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;}.event-actions button{background:white;border:1px solid #b2cad7;border-radius:5px;min-height:36px;padding:6px 10px;color:#123348;cursor:pointer;font:inherit;font-size:.875rem;}
.season-empty{font-size:.9rem;padding:16px;color:#526a7a;}.outside-season{opacity:.65;}
.season-mix{background:#071b2b;color:white;}.season-mix p{color:#d7eaf5;}.season-mix summary{font-size:.9rem;}.season-mix details{border-top:1px solid #365166;padding-top:12px;}
#season-mix-value{font-size:3rem;font-weight:800;margin:10px 0;letter-spacing:-.04em;}
.guidance-item{padding:18px 0;border-bottom:1px solid #d9e7ef;}.guidance-item:last-child{border:0;padding-bottom:0;}.guidance-item h3{font-size:1rem;margin:8px 0;}.guidance-item p{font-size:.95rem;margin:8px 0;}.guidance-kind{font-size:.75rem;letter-spacing:.03em;font-weight:750;color:#3a647d;text-transform:uppercase;}.guidance-item a{font-size:.875rem;color:#006889;}
.sleep-row{padding:10px 0;border-bottom:1px solid #d2e1e9;font-size:.9rem;}
.season-overview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;max-height:460px;overflow:auto;padding:3px;}
.week-card{background:#f4f9fb;border:1px solid #c4d9e6;border-radius:8px;padding:13px;text-align:left;font:inherit;cursor:pointer;}.week-card strong,.week-card span{display:block;}.week-card span{font-size:.85rem;color:#456175;}.week-card[aria-current=true]{border:2px solid #0077a1;background:#e9f8ff;}
.season-section-heading{display:flex;justify-content:space-between;gap:20px;align-items:center;}
.file-label{position:relative;overflow:hidden;}.file-label input{position:absolute;inset:0;opacity:0;width:100%;cursor:pointer;}.file-label:focus-within{outline:3px solid #0088b7;}
.season-delete{background:none;border:0;text-decoration:underline;color:#893030;cursor:pointer;font:inherit;margin-top:24px;padding:8px 0;}
.season-soreness{border:0;padding:0;margin:22px 0;min-width:0;}.season-soreness legend{font-weight:700;}.soreness-option{padding:10px 0;}.soreness-detail{padding:12px;background:#f1f7fa;margin-top:8px;}.soreness-location-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:16px;}
.season-dialog{border:1px solid #a6c1d1;border-radius:16px;max-width:700px;width:calc(100% - 28px);max-height:90vh;padding:24px;color:#123348;box-shadow:0 24px 100px #0005;}.season-dialog::backdrop{background:#03142299;}.season-dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;}.season-dialog h2{font-size:1.5rem;margin:0 0 20px;}.season-dialog .season-actions{margin-top:20px;}.season-dialog fieldset{border:1px solid #c5d9e6;margin:16px 0;}.repeat-days{display:flex;flex-wrap:wrap;gap:12px;}.repeat-days label{font-size:.9rem;}.checkbox-inline{display:flex;align-items:center;gap:10px;}
.import-preview{max-height:350px;overflow:auto;}.import-preview p{padding:8px 0;border-bottom:1px solid #d2e1e9;font-size:.9rem;}
.season-print{display:none;}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);}
[hidden]{display:none!important;}
@media(max-width:980px){.season-columns{grid-template-columns:1fr;}.season-guidance{display:grid;grid-template-columns:1fr;}.season-toolbar{align-items:flex-start;flex-direction:column;}.season-overview{grid-template-columns:repeat(3,1fr);}}
@media(max-width:600px){.season-app .container{width:calc(100% - 28px);}.season-intro{display:block;padding-top:24px;}.season-intro>.btn{margin-top:10px;}.season-storage,.season-viewbar{flex-direction:column;align-items:flex-start;gap:8px;}.season-viewbar label{flex:auto;width:100%;}.season-panel{padding:18px;}.season-fields,.season-week-grid{grid-template-columns:1fr;}.span-two{grid-column:auto;}.season-metrics{grid-template-columns:repeat(2,minmax(0,1fr));}.season-stat:last-child{grid-column:1/-1;}.season-overview{grid-template-columns:repeat(2,minmax(0,1fr));}.season-dialog{padding:18px;}.soreness-location-list{grid-template-columns:1fr;}.season-section-heading{display:block;}}
@media print{body{background:white!important;}.site-header,.site-footer,.season-intro,.season-app>.container>*{display:none!important;} .season-app>.container>#season-workspace{display:block!important;}#season-workspace>*{display:none!important;}#season-workspace>#season-print{display:block!important;}.season-print h1{font-size:22pt;}.season-print h2{font-size:14pt;}.season-print p,.season-print li{font-size:10pt;}.season-print article{break-inside:avoid;}.season-print img{width:70px;}.season-app{background:white;}.season-app .container{width:100%;}.season-print a{color:black;}}
/* v1.1: calendar first, weekly form second. */
.calendar-panel{margin-top:24px;scroll-margin-top:95px;}.calendar-panel h2{margin-top:8px;}.calendar-panel label{font-size:.85rem;}.calendar-panel input[type=month]{max-width:200px;}
.calendar-day-labels,.calendar-week-dates{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));text-align:center;}
.calendar-day-labels{font-size:.8rem;font-weight:700;color:#4a6375;padding:12px 6px;}
.calendar-week{width:100%;display:block;background:#fff;border:1px solid #c4dbe8;border-radius:10px;padding:12px 6px 8px;margin-bottom:8px;cursor:pointer;color:#18374b;font:inherit;text-align:left;}
.calendar-week:hover{background:#edf8fe;border-color:#0077a1;}.calendar-week[aria-pressed=true]{background:#e4f5fd;border:2px solid #0077a1;}
.calendar-date{display:flex;flex-direction:column;align-items:center;gap:4px;min-height:48px;font-weight:750;}.calendar-date small{font-size:.7rem;font-weight:500;color:#436478;}.muted-date{opacity:.35;}
.calendar-week-hint{display:block;font-size:.8rem;color:#006b94;font-weight:650;text-align:right;padding:5px 10px 0;}
.week-entry{scroll-margin-top:95px;}.week-entry h2{margin:8px 0;}.week-athlete{background:#f1f7fa;padding:16px;border-radius:8px;margin:20px 0;}
.week-input-group{padding:20px 0;border-top:1px solid #d8e6ee;}.week-input-group h3{margin:0 0 12px;font-size:1.2rem;}.week-input-group>label{display:block;max-width:260px;}
.week-count-picks{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0;}.week-count-picks .btn{padding:10px 14px;min-width:44px;}.week-count-picks [aria-pressed=true]{background:#006f99!important;color:white!important;border-color:#006f99!important;}
.week-entry-rows{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:16px;}.week-session-row{background:#f4f9fc;border:1px solid #d4e3ec;border-radius:10px;padding:18px;}.week-session-row h4{margin:0 0 12px;}.week-row-options{margin-top:18px;}.week-row-options summary{font-size:.85rem;color:#3e6176;}.week-row-options .season-fields{margin-top:16px;}.week-row-options input[readonly]{background:#e7eef3;}
.week-other{margin:18px 0;}.week-draft-summary{background:#e6f4fb;border-left:4px solid #0077a1;padding:15px;font-weight:650;}.week-save-actions{padding-top:12px;}.week-save-actions .btn{min-width:150px;}
@media(max-width:680px){.week-entry-rows{grid-template-columns:1fr;}.calendar-panel .season-section-heading{display:block;}.calendar-date{min-height:40px;}.calendar-date small{font-size:.65rem;}.calendar-week{padding:10px 3px 6px;}.week-count-picks{gap:6px;}.week-count-picks .btn{padding:8px;min-width:40px;}.week-save-actions .btn{width:100%;}}
/* v94: season planning and local downloads. */
.season-app{padding-bottom:110px;}.calendar-panel{scroll-margin-top:110px;}
.calendar-controls{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;margin:20px 0 12px;}
.calendar-tabs{display:flex;background:#edf4f8;border:1px solid #c8dce7;padding:4px;border-radius:10px;gap:4px;}
.calendar-tabs button{border:0;background:none;border-radius:7px;padding:10px 22px;min-height:44px;font:inherit;font-weight:700;color:#35566b;cursor:pointer;}
.calendar-tabs button[aria-pressed=true]{background:#07344b;color:#fff;box-shadow:0 2px 5px #1232;}
.calendar-legend{display:flex;flex-wrap:wrap;gap:10px 20px;font-size:.8rem;margin:14px 0 22px;color:#355468;}
.calendar-legend span{display:flex;align-items:center;gap:7px;}.calendar-legend span:before{content:'';height:8px;width:8px;border-radius:50%;background:#0b7f9e;}
.calendar-legend .legend-game:before{background:#3f55a8;}.calendar-legend .legend-strength:before{background:#5c7c29;}.calendar-legend .legend-travel:before{background:#ab672d;}.calendar-legend .legend-rest:before{background:#687785;}
.month-scroll{overflow:auto;border:1px solid #d5e3eb;border-radius:12px;}.month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));min-width:740px;}
.month-day-heading{background:#edf4f8;padding:10px;text-align:center;font-size:.78rem;font-weight:800;letter-spacing:.06em;color:#496677;}
.month-day{min-height:126px;padding:6px;border-right:1px solid #d9e6ed;border-top:1px solid #d9e6ed;min-width:0;}.month-day:nth-child(7n){border-right:0;}.adjacent-month{background:#f5f8fa;}.adjacent-month .month-date-button{color:#8095a2;}
.month-date-button{background:none;border:0;border-radius:8px;min-height:44px;min-width:44px;color:#163b51;font:inherit;font-weight:750;cursor:pointer;}.month-date-button:hover{background:#e2f4fc;}.month-date-button.is-today{background:#00779f;color:#fff;}
.calendar-event{display:block;width:100%;text-align:left;border:0;border-left:3px solid #087c9a;border-radius:5px;margin:4px 0;padding:8px 7px;font:inherit;font-size:.79rem;line-height:1.4;cursor:pointer;min-height:36px;overflow-wrap:anywhere;background:#e5f6fb;color:#114559;}
.calendar-event:hover,.day-existing-event:hover{filter:brightness(.96);}.event-game{background:#edf0fd;color:#343d79;border-left-color:#5369c6;}.event-strength{background:#edf4e3;color:#3b551b;border-left-color:#6b8c3b;}.event-rest{background:#edf1f4;color:#3d5363;border-left-color:#748797;}.event-travel{background:#fff0e0;color:#77451e;border-left-color:#b2733d;}.event-other{background:#f3ecf9;color:#62417b;border-left-color:#8a5bab;}.inactive-event{opacity:.7;text-decoration:line-through;}
.calendar-empty{display:block;font-size:.8rem;color:#6a8090;margin:7px;}.calendar-bottom-actions{margin-top:20px;padding-top:18px;border-top:1px solid #d9e7ee;}.calendar-start{padding:32px;background:#f1f7fa;border:1px dashed #b4cfdf;border-radius:12px;font-size:1rem;}
.calendar-week-day{padding:14px 18px;background:#f7fafc;border:1px solid #d7e4ec;border-radius:12px;margin-bottom:12px;}.calendar-week-day-head{display:flex;justify-content:space-between;align-items:center;gap:10px;}.calendar-week-day-head h3{font-size:1rem;margin:0;}.calendar-week-day .calendar-event{font-size:.95rem;padding:12px;min-height:44px;}
.season-month-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;}.season-month-card{background:#f5fafc;border:1px solid #c9dfeb;border-radius:12px;padding:24px;text-align:left;font:inherit;color:#15374d;cursor:pointer;}.season-month-card:hover{background:#e8f6fd;border-color:#0085b2;}.season-month-card strong,.season-month-card span,.season-month-card small{display:block;}.season-month-card strong{font-size:1.1rem;}.season-month-card span{font-size:.88rem;margin-top:9px;}.season-month-card small{color:#537185;margin-top:9px;}
.day-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:18px;}.day-choices button,.day-existing-event{background:#f2f8fb;border:1px solid #bfd6e4;border-radius:10px;padding:18px;min-height:52px;font:inherit;font-weight:700;color:#20475e;cursor:pointer;}.day-existing-event{display:block;width:100%;text-align:left;padding:12px;margin-bottom:8px;border-left-width:4px;}
#event-details{margin:22px 0;}.season-dialog summary{cursor:pointer;font-weight:700;}#event-details[open] summary{margin-bottom:18px;}#repeat-fields,.event-status-label,#series-scope-label{display:block;margin-top:20px;}
#download-private-label{margin-top:24px;align-items:flex-start;font-size:.9rem;}.setup-save-choice{margin-top:22px;}.sleep-setup-fields{margin-top:16px;}
.weekly-focus-item{border-bottom:1px solid #dce8ef;padding:14px 0;}.weekly-focus-item:last-child{border:0;padding-bottom:0;}.weekly-focus-item p{font-size:.93rem;color:#4b6679;margin:6px 0;}.weekly-focus-item a{font-size:.875rem;color:#006c94;}
.secondary-guidance{display:block;}.secondary-guidance .season-guidance{display:block;}.season-mix[open]>summary{margin-bottom:18px;}.season-mix>summary{color:white;}.season-mix{padding:20px 24px;}.detailed-schedule[open]>summary{margin-bottom:20px;}.detailed-schedule .season-week-grid{margin-top:18px;}
.season-dock{position:fixed;bottom:0;left:0;right:0;background:#071b2bf5;backdrop-filter:blur(10px);color:#fff;z-index:110;display:flex;justify-content:space-between;align-items:center;gap:18px;padding:12px max(20px,calc((100vw - 1240px)/2));border-top:1px solid #00aee955;box-shadow:0 -8px 28px #071b2b18;}.season-dock>span{font-size:.85rem;}.season-dock .btn{min-height:44px;padding:9px 16px;font-size:.85rem;}
@media(max-width:980px){.season-month-cards{grid-template-columns:repeat(2,minmax(0,1fr));}.calendar-controls{align-items:flex-start;}.season-dock{padding:12px 18px;}}
@media(max-width:680px){.season-intro h1{font-size:2.65rem;}.calendar-controls{display:block;}.calendar-controls>.season-actions{margin-top:16px;}.calendar-tabs button{flex:1;padding:9px 15px;}.calendar-tabs{width:100%;}.calendar-panel .season-section-heading>#download-plan{margin:10px 0 0;}.calendar-panel .season-actions .btn{padding:9px 12px;}.calendar-bottom-actions .btn{width:100%;}.season-month-cards{grid-template-columns:1fr;}.season-dock{display:block;padding:8px 12px max(8px,env(safe-area-inset-bottom));}.season-dock>span{display:block;font-size:.7rem;margin-bottom:5px;}.season-dock .season-actions{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;}.season-dock .btn{padding:8px;font-size:.8rem;}.calendar-week-day{padding:12px;}.calendar-legend{gap:8px 12px;}.week-save-actions{position:sticky;bottom:100px;background:#fff;padding:12px 0;z-index:5;}.day-choices button{padding:14px;}.season-app{padding-bottom:132px;}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto;}}
@media print{.season-dock{display:none!important;}}
.print-private-choice{margin-top:20px;font-size:.9rem!important;}.preview-removed{background:#fff1e8;color:#704322;padding:10px!important;border-radius:6px;}
/* v97: landscape calendar preview and printing. */
.calendar-share-actions{justify-content:flex-end;}#download-details-label{margin-top:24px;align-items:flex-start;font-size:.9rem;}
@media(max-width:680px){.calendar-share-actions{justify-content:flex-start;flex-wrap:wrap;width:100%;margin-top:12px;}.calendar-share-actions .btn{flex:1;}}
@page{size:letter landscape;margin:0;}
@media print{html,body{margin:0!important;padding:0!important;-webkit-print-color-adjust:exact;print-color-adjust:exact;}.season-app{padding:0!important;}.season-app>.container{margin:0!important;padding:0!important;width:100%!important;max-width:none!important;}.season-print .document-page{width:11in;height:8.5in;margin:0;border:0;break-inside:avoid;break-after:page;page-break-after:always;}.season-print .document-page:last-child{break-after:auto;page-break-after:auto;}.season-print .document-page svg{display:block;width:100%;height:100%;}.planner-example #season-print:before{display:none!important;}}
