:root{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans JP",sans-serif;color:#203b43;background:#f2f5f5;font-size:17px;line-height:1.5;--green:#087c69;--amber:#936019;--line:#dce4e5}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button,a{ -webkit-tap-highlight-color:transparent}button{cursor:pointer;border:1px solid #cbd8da;border-radius:8px;background:white;padding:9px 14px;color:inherit;font-weight:600}button:hover{background:#eef5f2}button:disabled{cursor:wait;opacity:.5}a{color:inherit;text-decoration:none}input,select{border:1px solid #c4d1d4;background:white;border-radius:7px;min-height:42px;padding:7px 10px;max-width:100%;color:inherit}label{display:flex;flex-direction:column;gap:5px;font-size:15px;color:#567078}input[type=checkbox]{min-height:20px;width:20px;accent-color:var(--green)}.check{flex-direction:row;align-items:center}.app-header{background:#143d3a;color:white;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 28px}.app-header>a:first-child{font-weight:750}.app-header span{font-size:16px}.app-header b{border:1px solid #789c96;border-radius:5px;padding:2px 6px;font-weight:500;margin-left:8px}.app-header>a:last-child{font-size:15px}.page{max-width:1800px;margin:auto;padding:25px 28px 45px}.heading,.row,.toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}h1{font-size:27px;margin:3px 0;font-weight:750;letter-spacing:.02em}h2{font-size:20px;margin:0}h3{font-size:17px;margin:0}p{margin:7px 0}.muted{color:#6b7f84;font-size:14px}.eyebrow{color:#547974;font-size:13px;letter-spacing:.16em;font-weight:750}.pill{display:inline-block;border-radius:20px;padding:3px 9px;font-size:13px;background:#edf2f3;color:#587078}.pill.green{background:#e1f2eb;color:#18705d}.pill.amber{background:#fff1d9;color:#8a5e18}.pill.blue{background:#e7eefb;color:#365c95}.layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:20px;margin-top:22px}.panel{background:#fff;border:1px solid var(--line);border-radius:13px;padding:18px;min-width:0}.sidebar{align-self:start;position:sticky;top:12px;padding:14px 10px}.sidebar input,.sidebar select{width:100%;margin:5px 0}.player-list{max-height:calc(100vh - 240px);min-height:350px;overflow:auto;margin-top:10px}.player-row{display:block;width:100%;text-align:left;border:0;border-radius:8px;padding:10px;margin-bottom:2px;font-weight:500}.player-row.active{background:#e5f2ed;border-left:3px solid var(--green);padding-left:7px}.player-row strong{font-size:16px}.player-row .sub{display:flex;flex-wrap:wrap;gap:4px;justify-content:space-between;color:#74868a;font-size:13px;margin-top:4px}.number{display:inline-block;color:#64867f;font-size:14px;width:30px;font-weight:650}.content{min-width:0;display:flex;flex-direction:column;gap:16px}.name-row{align-items:flex-start}.name-row h2{font-size:25px}.actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.primary{background:var(--green);color:white;border-color:var(--green)}.primary:hover{background:#086956}.notice{padding:10px 14px;background:#fff6e5;border:1px solid #eed8af;border-radius:8px;color:#825916;font-size:14px}.source-note{margin-top:14px;border-top:1px solid var(--line);padding-top:10px}.source-note summary{cursor:pointer;color:#697e83;font-size:14px}.source-note p{font-size:14px}.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:17px}.kpi{border:1px solid var(--line);border-radius:10px;padding:11px 14px;background:#fcfdfd}.kpi label{font-size:14px}.kpi strong{display:block;font-size:31px;line-height:1.2;margin:7px 0;font-variant-numeric:tabular-nums;letter-spacing:-.03em}.kpi small{color:#7a8c90;font-size:13px}.calendar-top{margin-bottom:14px}.month-controls{display:flex;align-items:center;gap:8px}.month-controls select{font-size:20px;font-weight:700;border:0}.legend{display:flex;gap:12px;color:#6b7e83;font-size:13px;flex-wrap:wrap}.dot:before{content:'';display:inline-block;width:8px;height:8px;background:#daf0e7;border-radius:2px;margin-right:5px}.dot.manual:before{background:#bfd1ef}.dot.alert:before{background:#f2d2a6}.calendar-scroll{overflow-x:auto;overscroll-behavior-x:contain}.calendar{--calendar-columns:repeat(7,minmax(128px,1fr)) 120px 136px;min-width:1200px}.calendar-head,.calendar-week{display:grid;grid-template-columns:var(--calendar-columns);gap:6px}.calendar-week{margin-bottom:6px}.weekday{text-align:center;color:#7c8e91;font-size:13px;padding:2px 0 6px}.day{display:flex;flex-direction:column;position:relative;text-align:left;padding:9px;min-height:157px;border-radius:8px;background:white;gap:5px;font-weight:400;overflow:hidden}.day:hover{border-color:#469e8a}.day .date{font-size:15px;font-weight:650;display:flex;justify-content:space-between;align-items:center}.day .load{font-size:23px;color:#187462;font-weight:720;line-height:1.1}.day small{font-size:12px;color:#6d8186}.day .sessions{font-size:13px;line-height:1.7;min-height:35px}.day .event{display:block;white-space:normal;overflow-wrap:anywhere;background:#3c7464;color:white;font-size:15px;font-weight:700;line-height:1.45;padding:7px 6px;margin:3px -9px 4px;min-height:36px}.day .event-rest{background:#475569;color:#fff}.day .event-camp{background:#966221}.day .event-game{background:#36638e}.day.rest{background:#f5f8f7}.day.manual{background:#eef3fc;border-color:#b9cbea}.day.issue{box-shadow:inset 0 3px #dbaf70}.day.selected{outline:2px solid var(--green);outline-offset:-2px}.day.unknown{background:repeating-linear-gradient(135deg,#fafafa,#fafafa 8px,#f5f6f6 8px,#f5f6f6 16px)}.day.blank{border:0;background:transparent;cursor:default}.calendar-caption{display:flex;justify-content:space-between;gap:10px;margin-top:11px;font-size:13px;color:#7b8d91}.twocol{display:grid;grid-template-columns:1fr 1fr;gap:16px}.targets{display:grid;gap:10px;margin-top:14px}.target-row{display:grid;grid-template-columns:80px 1fr 100px;gap:12px;align-items:center;font-size:14px}.target-row .bar{height:7px;border-radius:4px;background:#edf2f0;margin-top:5px;overflow:hidden}.target-row .bar i{display:block;height:100%;background:#599b8a;border-radius:4px}.target-row strong{font-size:20px}.alert-list{max-height:225px;overflow:auto;margin-top:12px}.alert-row{display:flex;gap:10px;width:100%;text-align:left;font-size:14px;font-weight:400;border:0;border-bottom:1px solid #edf0ef;border-radius:0;padding:8px 0}.alert-row span{color:#a07129}.chart-scroll{overflow:auto;margin-top:12px}.plot-label{fill:#6a8183;font-size:12px}.history-line{font-size:14px;color:#687d83}.loading{padding:60px;text-align:center}#toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);background:#153e39;color:#fff;padding:12px 22px;border-radius:10px;z-index:50;box-shadow:0 3px 20px #0002;max-width:90%;display:none}#toast.show{display:block}dialog{border:0;border-radius:14px;padding:0;width:min(740px,95vw);max-height:91dvh;color:inherit;box-shadow:0 18px 80px #132b4350}dialog::backdrop{background:#0f242f66}dialog .modal-head{display:flex;justify-content:space-between;align-items:center;padding:18px 22px;border-bottom:1px solid var(--line);position:sticky;top:0;background:white;z-index:2}dialog .modal-body{padding:20px 22px}dialog .modal-foot{display:flex;justify-content:flex-end;gap:10px;padding:15px 22px;border-top:1px solid var(--line);position:sticky;bottom:0;background:white}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-grid .full{grid-column:1/-1}.divider{margin:20px 0 15px;border:0;border-top:1px solid var(--line)}.session-edit{display:grid;grid-template-columns:minmax(160px,1fr) 80px 83px 82px 42px;gap:8px;margin-bottom:10px;align-items:end}.session-edit .load-line{grid-column:1/-1;text-align:right;font-size:14px;color:var(--green);margin-top:-6px}.remove{padding:9px 0;color:#8d5c55}.detail-kpis{display:flex;gap:20px;margin:15px 0;font-size:14px}.detail-kpis b{font-size:22px;display:block}.blocks{display:grid;grid-template-columns:1fr 1fr 1fr 40px;gap:8px;margin-bottom:9px}.date-tools{display:flex;align-items:end;gap:8px;flex-wrap:wrap;margin-top:15px}.wide{width:100%}.muted-button{border:0;background:transparent;color:#647b80;font-size:14px}.error{color:#a24b36;font-size:15px}.success{color:var(--green)}.mobile-picker{display:none}.status-line{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.backup-text{width:100%;min-height:150px}.readonly-items{font-size:15px;border-left:3px solid #bdd3cd;padding-left:14px}.source-list{padding-left:20px;font-size:14px}.compact{font-size:14px;padding:6px 10px}.no-results{padding:25px;text-align:center;color:#71898c}
@media(max-width:1400px){.layout{grid-template-columns:220px minmax(0,1fr)}.page{padding:20px 15px}.twocol{grid-template-columns:1fr}.panel{padding:14px}.kpi{padding:10px}.kpi strong{font-size:27px}.app-header{padding:16px}.heading h1{font-size:24px}}
@media(max-width:760px){.app-header{padding:13px 15px;flex-wrap:wrap;gap:6px}.app-header span{font-size:13px}.app-header>a:first-child{font-size:15px}.app-header>a:last-child{font-size:13px;width:100%;text-align:right}.page{padding:17px 10px}.layout{display:block;margin-top:15px}.sidebar{display:none}.mobile-picker{display:block;margin-top:12px;width:100%}.mobile-picker select{width:100%}.heading h1{font-size:23px}.heading .muted{font-size:13px}.kpis{gap:6px;grid-template-columns:1fr 1fr;margin-top:13px}.kpi strong{font-size:29px}.name-row h2{font-size:23px}.name-row .actions{width:100%;justify-content:flex-start;gap:6px}.name-row .actions button{font-size:14px}.calendar-caption{display:block}.calendar-top .legend{margin-top:5px}.panel{border-radius:10px;padding:13px}.content{gap:12px}.form-grid{grid-template-columns:1fr;gap:12px}.form-grid .full{grid-column:auto}.session-edit{grid-template-columns:1fr 1fr 1fr 35px}.session-edit label:first-child{grid-column:1/-1}.session-edit .load-line{grid-column:1/-1}.blocks{grid-template-columns:1fr 1fr 35px}.blocks select{grid-column:1/3}.blocks button{grid-column:3;grid-row:auto}dialog .modal-body{padding:15px}dialog .modal-head,dialog .modal-foot{padding:13px 15px}.target-row{grid-template-columns:65px 1fr 85px;gap:7px}.detail-kpis{gap:12px}.day{min-height:154px}.status-line .muted{font-size:12px}}
@media print{.app-header,.sidebar,.actions,.mobile-picker,.muted-button{display:none}.layout{display:block}.page{padding:0}.panel{break-inside:avoid}.calendar{min-width:0;--calendar-columns:repeat(7,minmax(0,1fr)) 65px 70px}.calendar-week{break-inside:avoid}.calendar-panel{break-inside:auto}.calendar-help,.month-jumps{display:none}.calendar-scroll{overflow:visible}.day{min-height:125px}.chart-scroll svg{min-width:0}.kpis{grid-template-columns:repeat(4,1fr)}}

.calendar-month{font-size:21px;font-weight:750;color:#285f54;padding:18px 0 10px;border-top:1px solid var(--line);margin-top:16px;scroll-margin-top:18px}.calendar-month:first-child{margin-top:0;padding-top:5px;border-top:0}.calendar-head{align-items:center;margin-bottom:6px}.summary-heading{color:#285f54;font-weight:700;background:#edf5f1;border-radius:6px;padding:7px 0}.weekday small{display:block;font-size:12px;font-weight:400}.month-jumps{display:flex;flex-wrap:wrap;gap:5px}.month-jumps button{min-width:45px}.calendar-top .legend{width:100%}.calendar-help{margin-bottom:12px}.day .load{white-space:nowrap;font-size:23px}.day .load small{font-weight:400;font-size:12px}.day .sessions{margin-top:3px;display:flex;flex-direction:column;gap:5px}.session-line{display:flex;justify-content:space-between;gap:4px;flex-wrap:wrap;border-bottom:1px solid #e7eeeb;padding-bottom:3px}.session-line b{font-weight:500;color:#567a6e;margin-left:auto;font-variant-numeric:tabular-nums}.period-total{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:9px 5px;gap:8px;background:#edf5f1;border-color:#cfded7;text-align:center;overflow:hidden;min-height:157px}.period-total.month{background:#edf2f7;border-color:#d5e0e9;color:#355a70}.period-total:hover{filter:brightness(.98)}.period-total>span{font-size:13px;font-weight:500}.period-total strong{font-size:25px;line-height:1.2;font-weight:750;font-variant-numeric:tabular-nums;white-space:nowrap;letter-spacing:-.03em}.period-total small{font-size:12px;color:#687f80;font-weight:400}.period-details{max-height:55vh;overflow:auto;margin:12px 0}.period-details>div{display:flex;justify-content:space-between;gap:20px;padding:7px 4px;border-bottom:1px solid #e4ece9;font-size:15px}.period-sum{font-size:28px;color:var(--green);margin-left:20px;font-variant-numeric:tabular-nums}.chart-month-label{flex-direction:row;align-items:center}.chart-month-label select{font-size:15px}.day .pill{padding:2px 4px;font-size:12px}

/* Large, continuous two-panel timeline. Both plots share the same scrolling date axis. */
.trend-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin:18px 0}.trend-legend{font-size:15px;color:#345249}.trend-legend>span:before{content:'';display:inline-block;width:24px;height:4px;margin:0 7px 3px 0;background:#137863}.trend-legend>.daily-key:before{height:12px;background:#8bbda7;margin-bottom:0}.trend-legend>.chronic-key:before{background:#376f9e}.trend-frame{display:grid;grid-template-columns:64px minmax(0,1fr);border:1px solid #d7e3dd;border-radius:10px;overflow:hidden;background:white}.trend-axis{width:64px;height:720px;background:white;display:block}.trend-panel .chart-scroll{margin:0;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;scrollbar-width:auto}.trend-panel #trend-plot{display:block;height:720px;min-width:0;max-width:none}.trend-panel .plot-label{fill:#3c5b51;font-size:15px;font-weight:500}.trend-day{cursor:pointer}.trend-day:hover,.trend-day:focus{fill:#14765a12;outline:none}.trend-day:focus{stroke:#14765a;stroke-width:1}.trend-toolbar #trend-range{font-size:16px;min-width:118px;text-align:center;font-variant-numeric:tabular-nums}.trend-panel .actions button{min-width:44px}.calendar-caption{flex-wrap:wrap}.day .date{flex-wrap:wrap;gap:4px}.day .load{font-size:27px;display:flex;align-items:baseline;gap:6px}.day .load small{font-size:13px}.day .sessions{font-size:14px}.day{min-height:185px}.period-total{min-height:185px}.period-total>span{font-size:15px}.period-total strong{font-size:29px}.period-total small{font-size:12px}.weekday{font-size:15px}.weekday small{font-size:12px}.detail-kpis{flex-wrap:wrap}.detail-kpis>span{min-width:90px}.detail-kpis b{font-size:25px}.session-edit input,.session-edit select{font-size:16px}.month-jumps button{min-height:40px}.kpi small{font-size:13px}.muted{line-height:1.65}
@media(max-width:760px){.trend-toolbar{gap:10px}.trend-toolbar .actions{width:100%;justify-content:space-between}.trend-panel .plot-label{font-size:14px}.detail-kpis{display:grid;grid-template-columns:1fr 1fr;gap:12px}.session-edit{grid-template-columns:1fr 1fr 1fr 35px}.name-row .actions button{font-size:14px}.form-grid input,.form-grid select{font-size:16px}}
@media print{.trend-frame{display:block}.trend-axis{display:none}.trend-panel .chart-scroll{overflow:visible}.trend-panel #trend-plot{width:100%!important;height:auto}.trend-toolbar .actions{display:none}.calendar{--calendar-columns:repeat(7,minmax(0,1fr)) 65px 85px;min-width:0}.day .event{font-size:11px}.day .load{font-size:18px}.day .sessions{font-size:10px}.period-total strong{font-size:20px}}

/* Dense dates stay legible while the daily bars and weekly lines retain separate axes. */
.trend-frame{grid-template-columns:64px minmax(0,1fr) 64px}.trend-panel .date-label{font-size:12px;fill:#35574b}.trend-legend{gap:16px}.high-key,.high-tag{background:#ffe3a0;color:#754100;border-radius:4px;padding:1px 5px;font-size:12px;font-weight:700}.high-tag{display:inline-block;margin-right:4px}.high-tag[hidden]{display:none}.session-line.high-intensity{background:#fff0c6;border:1px solid #ecc578;border-left:4px solid #d39019;border-radius:5px;padding:5px;color:#744b0d}.session-line.high-intensity b{color:#744b0d}.session-edit{display:block;padding:12px;border:1px solid #d8e2de;border-radius:9px;background:#f8faf9;margin-bottom:12px}.session-edit.high-intensity{background:#fff5d9;border-color:#e7bd65;box-shadow:inset 4px 0 #d39019}.session-head{display:grid;grid-template-columns:minmax(0,1fr) auto 35px;align-items:end;gap:10px;margin-bottom:10px}.session-head select{width:100%}.session-load{display:flex;flex-direction:column;align-items:flex-end;white-space:nowrap;font-size:14px;padding-bottom:7px;gap:4px}.session-load b{font-size:23px;color:#176b55}.session-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.session-fields input,.session-fields select{width:100%}.session-edit label{font-size:14px}.session-edit .remove{min-height:42px}.session-head label:first-child{grid-column:auto}
@media(max-width:760px){.session-head{gap:6px;grid-template-columns:minmax(0,1fr) auto 30px}.session-fields{gap:6px}.session-edit{padding:10px}.session-edit input,.session-edit select{padding:6px}.session-load b{font-size:21px}.session-load{font-size:12px}.session-head select{font-size:16px}.session-edit label{font-size:13px}}

.session-fields label:first-child{grid-column:auto}
/* Planning overview and compact Sunday totals. */
.calendar{--calendar-columns:repeat(7,minmax(128px,1fr)) 150px;min-width:1100px}
.week-stack{display:flex;flex-direction:column;background:#edf3f0;border-left:1px solid #cbdad3}
.week-stack .period-total{display:flex;flex-direction:column;justify-content:center;gap:4px;min-height:88px;padding:10px 6px;border:0;border-bottom:1px solid #cbdad3;text-align:center;background:transparent;border-radius:0;flex:1}
.week-stack strong{font-size:26px}.week-stack .ac span{font-size:14px}.week-stack .ac strong{color:#c23540}
.phase-start{display:block;padding:10px 7px;background:#173e50;color:#fff;font-size:18px;font-weight:800;line-height:1.3;border-radius:6px;margin:6px 0}
.planning-example{padding:12px 16px;background:#eef3f8;border-left:4px solid #648ab4;border-radius:5px;font-size:15px;line-height:1.8}
.daily-key:before{background:#3985d6!important}.rehab-prescription{white-space:pre-wrap;text-align:left;font-size:14px;line-height:1.5;overflow-wrap:anywhere}
.prescription-card{padding:16px;background:#f0edfa;border-radius:8px;margin:16px 0}.prescription-card p{white-space:pre-wrap;font-size:18px}.phase-edit{max-width:360px;margin-top:16px}
.view-tabs{display:flex;gap:8px;flex-wrap:wrap}.view-tabs .active{background:#173e50;color:white;border-color:#173e50}
.summary-page{max-width:none}.summary-panel{overflow:hidden}.summary-legend{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}.summary-legend span{padding:6px 12px;border-radius:5px;font-size:14px;font-weight:600}.summary-status{font-size:14px;color:#52666b;min-height:22px}
.summary-scroll{overflow:auto;max-height:78vh;border:1px solid #d4dfe2;border-radius:8px;position:relative;overscroll-behavior:contain}
.summary-table{width:calc(190px + var(--timeline-width));font-size:16px}
.summary-date-row,.summary-team-row,.summary-player-row{display:flex;width:100%;border-bottom:1px solid #dce4e6;background:#fff}
.summary-date-row{position:sticky;top:0;z-index:5;height:64px;background:#edf3f5}.summary-team-row{position:sticky;top:64px;z-index:4;height:52px;background:#f4f6f8}
.summary-name{position:sticky;left:0;z-index:3;width:190px;min-width:190px;padding:10px 12px;background:inherit;border:0;border-right:1px solid #c9d5d8;border-radius:0;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:4px;text-align:left;font-size:16px;line-height:1.25}.summary-name small{font-size:11px;color:#64757a}.summary-name strong{font-size:16px}
.summary-dates{width:var(--timeline-width);display:flex}.summary-dates span{width:22px;min-width:22px;writing-mode:vertical-rl;text-align:center;font-size:12px;border-right:1px solid #dce4e6;padding-top:4px}.summary-dates .sunday{color:#bf4850;background:#f8e9e9}
.summary-track{position:relative;width:var(--timeline-width);height:60px;background:repeating-linear-gradient(90deg,transparent 0,transparent 21px,#edf0f2 21px,#edf0f2 22px)}.summary-team-row .summary-track{height:51px}
.summary-band{position:absolute;top:9px;height:42px;border:1px solid #ffffff70;border-radius:5px;padding:5px 9px;display:flex;align-items:center;overflow:hidden;white-space:nowrap;font-size:14px;font-weight:700;text-align:left;line-height:1.2;color:#123b44;box-sizing:border-box}
.summary-band:hover{filter:brightness(.96);z-index:2}.summary-band.unplanned{background:repeating-linear-gradient(135deg,#f0f2f4 0,#f0f2f4 6px,#e3e7ea 6px,#e3e7ea 8px);color:#67757b}
.summary-band.team-band{height:34px;background:#344f69;color:#fff}.summary-unread{display:block;padding:18px;color:#7a8389}
.phase-0{background:#82b6ee;color:#173654}.phase-1{background:#626c76;color:#fff}.phase-2{background:#8ccfb1;color:#153f32}.phase-3{background:#a4cc6d;color:#243c42}.phase-4{background:#f0cb58;color:#403006}.phase-5{background:#de9b64;color:#4b260c}.phase-6{background:#286e63;color:#fff}.phase-7{background:#7b4fa6;color:#fff}.summary-band.wl-band{background:#007f91;color:#fff}
@media(max-width:700px){.heading{align-items:flex-start;gap:14px;flex-direction:column}.summary-name{width:145px;min-width:145px}.summary-table{width:calc(145px + var(--timeline-width))}.summary-name strong{font-size:14px}.summary-panel{padding:12px}.view-tabs button{font-size:14px}}

/* Compact monthly working surface. Planning values and stored phases stay unchanged. */
.app-header{padding:8px 18px;gap:8px}
.page{padding:8px 16px 24px}
.heading{gap:8px;min-height:34px}
.heading h1{font-size:22px;margin:0}
.view-tabs{gap:5px}.view-tabs button{font-size:14px;padding:6px 10px}
.layout{grid-template-columns:190px minmax(0,1fr);gap:12px;margin-top:8px}
.panel{padding:10px;border-radius:9px}
.content{gap:8px}
.sidebar{padding:8px;top:8px}
.sidebar input,.sidebar select{min-height:34px;margin:3px 0;padding:4px 8px;font-size:14px}
.player-list{max-height:calc(100dvh - 200px);min-height:200px;margin-top:6px}
.player-row{padding:7px;margin-bottom:0}.player-row.active{padding-left:4px}
.player-row .sub{margin-top:1px}.player-row strong{font-size:15px}
.name-row{align-items:center;gap:6px}
.name-row>div:first-child{display:flex;align-items:center;flex-wrap:wrap;gap:5px 10px}
.name-row h2{font-size:21px;white-space:nowrap}
.status-line{gap:4px}.status-line .pill{padding:2px 6px}
.plan-overview .actions{gap:5px}
.plan-overview button{font-size:14px;padding:5px 9px;min-height:32px}
.plan-overview .source-note{margin-top:6px;padding-top:5px;gap:4px}
.history-line{font-size:13px}
.plan-overview .notice{padding:5px 8px;margin:5px 0;font-size:13px}
.kpis{margin-top:6px;gap:6px}
.kpi{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px;align-items:center;padding:5px 8px;border-radius:6px}
.kpi label{font-size:14px;line-height:1.25}
.kpi strong{font-size:22px;margin:0;letter-spacing:0}
.kpi>small{display:none}
.calendar-top{gap:6px 12px;margin-bottom:5px}
.calendar-month{font-size:20px;line-height:1.3;padding:0!important;margin:0!important;border:0}
.month-jumps{gap:4px}.month-jumps button{padding:4px 9px;min-height:32px;min-width:39px;font-size:14px}
.month-jumps button.active{background:#173e50;color:white;border-color:#173e50}
.calendar-top .legend{width:auto;margin:0;font-size:12px;gap:8px}
.calendar{min-width:900px;--calendar-columns:repeat(7,minmax(108px,1fr)) 112px}
.calendar-head,.calendar-week{gap:4px}
.calendar-head{margin-bottom:3px}.calendar-week{margin-bottom:4px;align-items:stretch}
.weekday{font-size:14px;padding:2px 0;line-height:1.4}
.summary-heading{padding:2px 0;border-radius:4px}
.day{padding:5px;gap:3px;min-height:96px;border-radius:5px;justify-content:flex-start}
.day.other-month{background:#f1f4f4;color:#697a7d}
.day.other-month .event{opacity:.8}
.day .date{display:flex;flex-wrap:nowrap;align-items:flex-start;gap:4px;line-height:1.25;min-height:18px}
.day-number{display:flex;flex-wrap:wrap;align-items:center;gap:3px;flex-shrink:0;font-size:14px}
.phase-start{display:block;flex:0 1 auto;min-width:0;margin:0 0 0 auto;padding:2px 4px;font-size:14px;line-height:1.2;letter-spacing:-.02em;text-align:right;border-radius:4px;overflow-wrap:anywhere}
.day-meta{display:flex;align-items:center;justify-content:space-between;gap:4px;min-width:0}
.day .event{flex:1;min-width:0;min-height:0;padding:3px 4px;margin:0;font-size:14px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-radius:3px}
.day .load{flex-shrink:0;font-size:21px;gap:2px;line-height:1.15}
.day .load small{font-size:12px}
.day .sessions{font-size:14px;line-height:1.25;min-height:0;gap:2px;margin-top:1px}
.session-line{flex-wrap:nowrap;align-items:baseline;gap:3px;padding-bottom:1px;border-bottom:0;min-width:0}
.session-label{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.session-line b{flex-shrink:0;font-size:14px}
.session-line.high-intensity{padding:1px 3px;border-width:0 0 0 3px;border-radius:3px}
.day .high-tag{display:none}
.more-sessions{font-size:12px;color:#536b73;line-height:1.25}
.day .rehab-prescription{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;font-size:14px;line-height:1.3;white-space:normal}
.week-stack{border-radius:5px;overflow:hidden;min-height:0}
.week-stack .period-total{flex:1;min-height:0;padding:3px 4px;gap:0;display:flex;flex-direction:row;justify-content:space-between;align-items:center}
.week-stack .period-total>span{font-size:12px;line-height:1.2;text-align:left;max-width:65px}
.week-stack .period-total strong{font-size:21px;line-height:1.2}
.week-stack .ac>span{font-size:12px}
.calendar-caption{margin-top:4px;gap:2px;font-size:12px;line-height:1.3}
.planning-example{padding:5px 10px;font-size:14px;line-height:1.4}
.planning-example>summary{cursor:pointer;font-size:14px}
.planning-example>div{padding-top:6px}
.trend-toolbar{margin:8px 0;gap:8px}
.trend-panel .date-label{font-size:12px}
.trend-legend{font-size:14px;gap:10px}
.trend-panel>p{margin:5px 0 0;font-size:13px}
.summary-legend{margin:8px 0;gap:5px}
.summary-legend span{padding:4px 8px}
@media(max-width:1100px){
 .layout{display:block;margin-top:6px}
 .sidebar{display:none}
 .mobile-picker{display:block;margin:6px 0}
 .mobile-picker select{width:100%;min-height:34px;padding:4px 8px;font-size:16px}
}
@media(max-width:760px){
 .app-header{padding:6px 10px;gap:4px}
 .app-header>a:last-child{width:auto;margin-left:auto}
 .page{padding:6px 8px 18px}
 .heading{flex-direction:row;align-items:center;gap:5px}
 .heading h1{font-size:20px}
 .view-tabs button{padding:5px 8px}
 .panel{padding:8px}
 .name-row .actions{width:auto;gap:4px}
 .name-row .actions button{font-size:14px}
 .kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px}
 .kpi{padding:4px 6px}.kpi strong{font-size:22px}
 .calendar-top .legend{width:auto;margin:0}
 .day{min-height:96px}
 .trend-toolbar .actions{width:auto}
}
@media print{
 .calendar{min-width:0;--calendar-columns:repeat(7,minmax(0,1fr)) 80px}
 .day .date{flex-wrap:wrap}.phase-start{font-size:12px}
 .day .event,.day .sessions,.session-line b{font-size:12px}
 .day-meta{flex-wrap:wrap}.day .load{font-size:18px}
 .kpi>small{display:none}
}


/* Internal revision 4: keep every month in the document, with compact month anchors. */
.calendar>.calendar-month{margin:14px 0 5px!important;padding:4px 0!important;scroll-margin-top:12px;border-bottom:2px solid #cbd8da!important}
.calendar>.calendar-month:first-child{margin-top:4px!important}
.trend-legend .week-key:before{background:#6d28d9}
.trend-legend .chronic-key:before{background:repeating-linear-gradient(to right,#b75b00 0 7px,transparent 7px 11px)}
.phase-8{background:#de9b64;color:#4b260c}

/* Period labels are continuous and shown on every date. */
.phase-label{display:inline-block;margin-left:auto;padding:2px 4px;font-size:14px;line-height:1.25;text-align:right;border-radius:4px;overflow-wrap:anywhere}
.day .phase-label{max-width:calc(100% - 34px)}
.phase-edit{display:flex;align-items:center;gap:8px}.phase-edit .phase-label{margin-left:0}.phase-edit small{font-size:13px;color:#5a6c72}
.phase-band{cursor:help}

/* Meeting context stays collapsed so the calendar keeps its compact height. */
.meeting-context p{margin:8px 0;font-size:14px;line-height:1.55}.meeting-day-notes{margin:10px 0;padding:10px 12px;border-left:3px solid #ba8a2e;background:#fff8e6;font-size:14px}.meeting-day-notes p{margin:5px 0;line-height:1.5}.meeting-day-notes small{display:block;color:#5a6c72;font-size:13px}

/* Plan / actual comparison retains the compact calendar layout. */
.pa-controls{padding:16px}.pa-controls label{min-width:150px}.pa-status{display:flex;flex-wrap:wrap;gap:8px 24px;margin-top:12px;font-size:14px}.pa-controls .muted{font-size:14px;margin:8px 0}.pa-table-panel{padding:0;overflow:hidden}.pa-scroll{overflow:auto;max-height:70vh}.pa-table{border-collapse:collapse;width:100%;min-width:920px;font-size:14px}.pa-table th,.pa-table td{padding:10px 12px;border-bottom:1px solid #dce3e8;text-align:right}.pa-table thead th{position:sticky;top:0;background:#173c4a;color:white;z-index:2}.pa-table th:first-child{position:sticky;left:0;text-align:left;background:#edf3f6;z-index:1}.pa-table thead th:first-child{z-index:3;background:#173c4a}.pa-table td:last-child{text-align:left;min-width:190px}.pa-table small{display:block;color:#526875;font-size:12px}.pa-table button{padding:4px;background:transparent;color:inherit;border:0}.pa-changed td:nth-child(3){background:#fff1d6}.pa-history{padding:14px}.pa-day-values{display:flex;gap:24px;flex-wrap:wrap}.pa-sessions{padding-left:20px}.pa-sessions li{padding:6px 0}.pa-sessions b{float:right;margin-left:16px}.pa-page .heading{flex-wrap:wrap}#plan-save-reason{width:100%;font:inherit;padding:10px;border:1px solid #a9b6bf;border-radius:6px}.pa-controls .row{flex-wrap:wrap}@media(max-width:600px){.pa-controls .actions{width:100%;flex-wrap:wrap}.pa-controls label{flex:1}.pa-page{padding:10px}.pa-status{gap:8px}.pa-scroll{max-height:65vh}}

/* Revision 9: movement beside the date, daily intensity beside load. */
.day .date{display:flex;align-items:flex-start;gap:5px;flex-wrap:nowrap}.day .date .event{margin-left:auto;min-width:0;max-width:calc(100% - 40px);text-align:right;font-size:14px;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.day-meta{display:flex;justify-content:space-between;align-items:center;gap:4px;flex-wrap:nowrap}.day-intensity{font-size:14px;font-weight:700;white-space:nowrap}.intensity-High{color:#b42332}.intensity-Middle{color:#935800}.intensity-Low{color:#176b62}.day .sessions{min-height:0}.day .session-line{font-size:14px}.day .session-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.day .load{white-space:nowrap}.day .load small{font-size:12px}.day .date .day-number{flex-shrink:0}.ramp-cap-note{font-size:14px;margin:6px 0}

/* Week-to-week direction; equality follows the displayed precision. */
.week-stack .period-total{gap:3px}
.week-stack .period-total>span{min-width:0;overflow-wrap:anywhere}
.week-stack .period-total strong{display:inline-flex;align-items:center;justify-content:flex-end;gap:3px;flex-shrink:0;white-space:nowrap;font-variant-numeric:tabular-nums}
.weekly-trend{display:inline-flex;align-items:center;justify-content:center;width:17px;height:20px;flex:0 0 17px}
.weekly-trend svg{display:block;width:17px;height:17px}
.weekly-trend.trend-up{color:#bb650b}
.weekly-trend.trend-down{color:#246bc0}
.weekly-trend.trend-steady{color:#697681}
.weekly-trend.trend-down svg{transform:rotate(180deg)}
.weekly-trend.trend-steady svg{transform:rotate(90deg)}

/* Keep view navigation separate from the selected player's plan actions. */
.heading{flex-direction:column;align-items:stretch;gap:6px}
.view-tabs{display:flex;align-items:stretch;justify-content:flex-start;gap:0;border-bottom:1px solid #cbd8da;margin:0;flex-wrap:wrap}
.view-tabs button{border:0;border-bottom:3px solid transparent;border-radius:0;background:transparent;padding:9px 15px;margin-bottom:-1px;color:#536b73;min-height:42px}
.view-tabs button:hover{background:#e6eeec}
.view-tabs button.active{background:transparent;color:#075f51;border-bottom-color:#087c69}
.view-tabs button:focus-visible,.plan-more summary:focus-visible{outline:2px solid #087c69;outline-offset:2px}
.plan-overview .source-note{justify-content:flex-start;gap:8px 12px}
.plan-overview .undo-inline{border:0;background:transparent;text-decoration:underline;text-underline-offset:3px;padding:2px 4px;min-height:28px;font-size:13px}
.plan-primary-actions{flex-wrap:nowrap;align-items:center}
.plan-primary-actions>button{min-width:78px}
.plan-more{position:relative}
.plan-more>summary{display:flex;align-items:center;gap:12px;list-style:none;border:1px solid #cbd8da;border-radius:7px;background:white;cursor:pointer;font-weight:600;font-size:14px;padding:5px 10px;min-height:32px}
.plan-more>summary::-webkit-details-marker{display:none}
.plan-more[open]>summary,.plan-more>summary:hover{background:#eef5f2}
.plan-more-options{position:absolute;right:0;top:calc(100% + 5px);z-index:20;min-width:200px;max-width:calc(100vw - 40px);padding:5px;border:1px solid #cbd8da;border-radius:8px;background:white;box-shadow:0 5px 18px #173e501a}
.plan-overview .plan-more-options button{display:block;width:100%;min-height:42px;border:0;background:transparent;text-align:left;padding:8px 12px}
.plan-overview .plan-more-options button:hover{background:#edf4f1}
.day .event[hidden]{display:none}
@media(max-width:760px){.view-tabs{flex-wrap:nowrap}.view-tabs button{flex:1;min-width:0;padding:9px 6px;font-size:14px}.name-row .plan-primary-actions{width:auto;margin-left:auto;justify-content:flex-end}.plan-overview .source-note{align-items:center}.plan-overview .history-line{flex:0 1 auto}.plan-primary-actions>button{min-width:70px}}
@media print{.view-tabs,.plan-more,.undo-inline{display:none}}

/* Calendar, actuals and the original plan share a single workspace. */
.comparison-picker{flex-direction:row;align-items:center;margin-left:auto;font-size:14px;gap:8px}
.comparison-picker select{min-height:34px;padding:4px 8px;font-size:14px}
.actual-through{color:#2c6784;font-size:14px;font-weight:600}
.day-comparison{display:flex;justify-content:space-between;gap:5px;padding:3px 0;border-top:1px solid #dbe6eb;font-size:13px;color:#526875;font-variant-numeric:tabular-nums}
.day-comparison b{font-weight:650}.difference.positive{color:#b16412}.difference.negative{color:#246bc0}
.week-stack .period-total{flex-wrap:wrap}.week-stack .week-comparison{display:block;flex:1 0 100%;font-size:11px;line-height:1.3;text-align:right}.week-comparison .difference{display:inline;margin-left:4px}
.actual-key:before{content:'';display:inline-block;background:#3985d6;width:9px;height:9px;margin-right:5px}
.comparison-key:before{content:'';display:inline-block;width:23px;border-top:2px dashed #718096;margin-right:5px;vertical-align:middle}
.compare-values{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:20px}
.compare-values>div{padding:12px;border:1px solid #d8e2e7;border-radius:9px;display:flex;flex-direction:column;gap:2px;font-size:14px}
.compare-values .confirmed-value{background:#eef5fc;border-color:#adcbe6}.compare-values b{font-size:29px;line-height:1.3}.compare-values small{font-size:12px;color:#567078}
.compare-columns{display:grid;grid-template-columns:1fr 1fr;gap:18px}.compare-columns section{min-width:0;border:1px solid #dde5e8;border-radius:9px;padding:13px}
.compare-columns section:last-child{border-top:3px solid #3985d6}.compare-sessions{list-style:none;padding:0;margin:8px 0}.compare-sessions li{display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid #e4ecee;font-size:15px}.compare-sessions li span{min-width:0;overflow-wrap:anywhere}.compare-sessions b{white-space:nowrap;align-self:flex-start}
.compare-original,.compare-input{border-top:1px solid #dbe4e8;margin-top:17px;padding-top:12px}.compare-original summary,.compare-input summary{cursor:pointer;font-size:15px;font-weight:650}
.button-link{display:inline-flex;align-items:center;border:1px solid #b7cbd2;border-radius:8px;padding:8px 12px;font-size:15px;font-weight:600}
@media(max-width:600px){.comparison-picker{margin:0}.compare-values{gap:6px}.compare-values>div{padding:8px}.compare-values b{font-size:24px}.compare-columns{gap:10px}.compare-columns section{padding:9px}.compare-sessions li{font-size:14px;flex-wrap:wrap}.compare-sessions b{margin-left:auto}.modal-foot{flex-wrap:wrap}}

.trend-legend>.comparison-key:before{background:none;height:0;border-top:2px dashed #718096}
.week-stack{display:grid;grid-template-rows:repeat(3,auto);min-height:min-content}
.week-stack .period-total{display:grid;grid-template-columns:minmax(0,1fr) max-content;gap:2px;min-height:35px;padding:4px;align-content:center}
.week-stack .period-total>span{max-width:none;font-size:12px;overflow-wrap:anywhere}
.week-stack .period-total strong{font-size:19px}
.week-stack .week-comparison{grid-column:1/-1;white-space:normal;line-height:1.3;text-align:right}

/* Revision 16: the existing plan occupies the top, with actuals below it. */
.calendar{--calendar-columns:repeat(7,minmax(108px,1fr)) 184px;min-width:982px}
.day{gap:6px;min-height:145px}.day-plan,.day-actual{display:flex;flex-direction:column;gap:4px;width:100%;min-width:0}
.day-plan{flex:1}.day-plan+.day-actual{border-top:4px solid #526f80;padding-top:7px;margin-top:5px}
.day .day-kind{font-size:13px;font-weight:700;min-width:0}.day .day-kind small{font-size:11px}
.day .day-plan .load,.day .day-actual .load{font-size:23px}.day .day-actual .load{color:#2a689a}
.day .day-actual .sessions{margin-top:0}.day.actual-only .day-actual{margin-top:2px}
.week-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border:1px solid #c2d1d7;border-radius:6px;overflow:hidden;min-height:154px}
.week-column{display:grid;grid-template-rows:25px repeat(3,minmax(43px,1fr));min-width:0;background:#eef5f1}
.week-column+.week-column{border-left:3px solid #526f80;background:#edf4fb}
.week-column-title{font-size:14px;text-align:center;padding:3px 0;border-bottom:1px solid #b9cbd4}
.week-pair .period-total{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:0;padding:3px 2px;gap:1px;border:0;border-bottom:1px solid #d1dfe4;background:transparent;border-radius:0}
.week-pair .period-total:last-child{border-bottom:0}.week-pair .period-total>span{font-size:11px;line-height:1.2;white-space:nowrap}
.week-pair .period-total strong{display:inline-flex;gap:2px;align-items:center;justify-content:center;white-space:nowrap;font-size:21px;line-height:1.2}
.week-pair .period-total.ac strong{color:#ba3341}.week-pair .weekly-trend{width:14px;flex-basis:14px}.week-pair .weekly-trend svg{width:14px}
.trend-legend>.planned-key:before{background:#2366b1;height:6px}.trend-legend>.actual-series-key:before{background:none;height:0;border-top:3px dashed #709ac2}
.detail-stacked section{padding:13px;border:1px solid #d3dfe5;border-radius:8px;background:#f9fcfa}
.detail-stacked h3{display:flex;justify-content:space-between;gap:16px;align-items:baseline}.detail-stacked h3 b{font-size:28px}
.detail-stacked .detail-actual{background:#f4f8fd}.detail-stacked .detail-plan+.detail-actual{border-top:4px solid #526f80;margin-top:12px}
.detail-stacked.actual-only .detail-actual{border-top:1px solid #d3dfe5}
@media print{.calendar{--calendar-columns:repeat(7,minmax(0,1fr)) 126px;min-width:0}.week-pair .period-total strong{font-size:17px}}

/* Revision 17: pitching stages below the annual period band. */
.summary-player-row .summary-track{height:82px}
.summary-player-row .summary-band{top:7px;height:36px}
.summary-bullpen{position:absolute;top:50px;height:22px;min-height:0;border:0;border-radius:4px;padding:1px 7px;text-align:left;font-size:13px;line-height:20px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-shadow:inset 0 0 0 1px #00000012}
.bullpen-standing{background:#bde5f3;color:#154d6a}
.bullpen-seated{background:#e3c8f3;color:#563275}
.summary-bullpen:hover,.summary-bullpen:focus-visible{filter:brightness(.94);outline:2px solid #244a5f;outline-offset:1px}
.summary-bullpen-legend{display:flex;gap:10px;flex-wrap:wrap;margin:9px 0 0;font-size:13px;font-weight:700}
.summary-bullpen-legend span{padding:3px 10px;border-radius:4px}

/* Revision 18: stage strips overlap the lower part of the annual period. */
.summary-player-row .summary-track{height:72px}
.summary-player-row .summary-band{top:6px;height:60px;align-items:center}
.summary-player-row .summary-band.phase-with-stages{align-items:flex-start;padding-top:7px}
.summary-bullpen{top:42px;height:20px;line-height:18px;z-index:3;border-radius:3px}

.summary-player-row .summary-track{isolation:isolate}
.summary-player-row .summary-band{overflow:visible}
.summary-phase-title{position:sticky;left:198px;min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis}

/* Revision 19: compact player rows while retaining both period and bullpen labels. */
.summary-player-row .summary-name{padding:4px 12px;gap:2px}
.summary-player-row .summary-name small{font-size:12px}
.summary-player-row .summary-track{height:52px}
.summary-player-row .summary-band{top:3px;height:46px;padding-top:4px;padding-bottom:4px}
.summary-player-row .summary-band.phase-with-stages{padding-top:4px}
.summary-player-row .summary-bullpen{top:28px;height:18px;line-height:16px;padding-top:1px;padding-bottom:1px}

/* Revision 21: persistent view switching and a four-line timeline tooltip. */
.planner-navigation{position:sticky;top:0;z-index:30;background:#f2f5f5;padding:4px 0;margin-bottom:8px;align-items:center}
.planner-navigation .view-tabs{width:100%;background:#f2f5f5}
.sidebar{top:62px}
.calendar-month{scroll-margin-top:64px}
.trend-tooltip{position:fixed;z-index:45;pointer-events:none;background:#173e50;color:#fff;border:1px solid #547482;border-radius:7px;padding:10px 13px;box-shadow:0 4px 16px #173e5030;font-size:14px;line-height:1.65;white-space:nowrap;font-variant-numeric:tabular-nums}
.trend-tooltip[hidden]{display:none}
.trend-tooltip>div{display:block}
.trend-bullpen-band{cursor:help}
.trend-legend>.actual-series-key:before{height:9px;background:#9fc4e8;border:0}
.trend-legend>.planned-key:before{height:9px;background:#2366b1}
@media(max-width:760px){.planner-navigation{width:100%;gap:0;flex-direction:row}.planner-navigation .view-tabs{flex-wrap:nowrap}}
@media print{.planner-navigation,.trend-tooltip{display:none}}

/* Revision 22: weekly actual/plan overlays; distinct teal chronic load and red A/C. */
.trend-legend .chronic-key:before{background:#007f87}
.trend-legend .ac-key:before{background:#d43b43}
.trend-legend .actual-line-key:before{background:#52646c;height:4px}
.trend-legend .planned-line-key:before{background:repeating-linear-gradient(to right,#52646c 0 7px,transparent 7px 11px);height:3px}

/* Revision 24: remove action aligned with the menu heading. */
.session-head{grid-template-columns:minmax(0,1fr) 40px;align-items:start}
.session-head>label{grid-column:1;grid-row:1}
.session-head>.remove{grid-column:2;grid-row:1;align-self:start;justify-self:end;margin:0;width:36px;min-height:36px;height:36px;padding:0;border:1px solid #b51e28;border-radius:6px;background:#c62835;color:#fff;font-size:26px;font-weight:700;line-height:1;cursor:pointer}
.session-head>.remove:hover{background:#a91d29}
.session-head>.remove:focus-visible{outline:3px solid #e9949a;outline-offset:2px}
.session-head>.session-load{grid-column:1 / -1;grid-row:2;flex-direction:row;align-items:center;justify-content:flex-end;padding:0}
.plan-primary-actions{flex-wrap:wrap}
.plan-primary-actions button[disabled]{opacity:.55;cursor:not-allowed}
.shared-empty{padding:24px;font-size:16px}

/* Revision 25: readable daily intensity and unique participant counts. */
.day .day-meta .day-intensity{font-size:16px;font-weight:750;line-height:1.35;padding:2px 5px;white-space:normal}
.summary-count-row{display:flex;min-height:29px;border-bottom:1px solid #dce4e5}
.summary-count-row>.summary-name{min-height:29px;display:flex;align-items:center;justify-content:space-between;padding:3px 9px;background:#f1f5f7;font-size:14px}
.summary-count-row .summary-name small{font-size:12px;font-weight:400}
.summary-counts{display:grid;grid-template-columns:repeat(var(--day-count),22px);width:var(--timeline-width);flex-shrink:0;background:#f9fbfc}
.summary-count{display:flex;align-items:center;justify-content:center;border-right:1px solid #e1e7ea;font-size:14px;font-weight:650;color:#76878c;min-height:29px}
.summary-count.has-participants{color:#244d76;background:#dfeef8}
.summary-count small{font-size:10px;align-self:flex-start}
.summary-count-note{font-size:13px;color:#637980;margin:5px 0}

.summary-count-row>.summary-name{flex-direction:row}
.summary-count-row{position:sticky;z-index:4;background:#f9fbfc}

.summary-ac-alert{position:absolute;top:3px;width:16px;height:18px;min-height:0;padding:0;border:1px solid #fff;border-radius:4px;background:#b82025;color:#fff;font-size:15px;font-weight:800;line-height:16px;z-index:5;cursor:pointer;box-shadow:0 0 0 1px #b82025}.summary-ac-alert:focus-visible{outline:3px solid #172f53;outline-offset:1px}

.plan-primary-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.plan-primary-actions>button,.plan-primary-actions>.button-link{white-space:nowrap}

/* The player calendar is scoped to one person by the server. */
.player-view .sidebar,.player-view .mobile-picker,.player-view .planner-navigation{display:none}.player-view .layout{display:block}.player-view .content{width:100%;min-width:0}

/* Calendar-level selection, copying and touch/mouse reordering. */
.calendar-edit-bar{position:sticky;top:58px;z-index:25;margin:0 0 12px;padding:10px 12px;background:#eef6f3;border:1px solid #b5d5ca;border-radius:8px;box-shadow:0 3px 8px #173e5010}
.calendar-edit-buttons{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.calendar-edit-buttons strong{font-size:15px;margin-right:8px;min-width:115px}
.calendar-edit-buttons button,.calendar-edit-status button{font-size:14px;padding:6px 10px;min-height:38px}
.calendar-edit-bar button:disabled{cursor:not-allowed}
.calendar-edit-status{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:6px;color:#49665d;font-size:14px;min-height:24px}
.calendar-copy-label{padding:1px 8px;border-radius:4px;background:#d8e9ff;color:#225180}
.calendar-day-cell{position:relative;display:flex;min-width:0}
.calendar-day-cell>.day{width:100%;height:100%;min-width:0}
.day .date{flex-wrap:wrap}
.day .date .calendar-phase{margin-left:auto;max-width:calc(100% - 40px);padding:3px 5px;border-radius:3px;font-size:13px;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.day .date .calendar-movement{flex:0 0 100%;max-width:100%;margin:1px 0 0;text-align:left;font-size:11px;line-height:1.3;white-space:normal}
.day.can-arrange .date{padding-right:29px}
.calendar-drag-handle{position:absolute;right:3px;top:3px;z-index:2;display:grid;place-items:center;width:30px;height:33px;min-height:0;padding:0;border:1px solid #c2d8d0;border-radius:5px;background:#edf6f1;color:#426e61;font-size:25px;line-height:1;cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none}
.calendar-drag-handle:disabled{cursor:not-allowed;opacity:.4}
.day.board-selected{outline:3px solid #087c69;outline-offset:-3px;background-color:#e7f5ef}
.day.board-move-target:hover{outline:3px dashed #267cc4;outline-offset:-3px}
.day.board-drag-source{opacity:.42}
.day.board-drop{outline:4px solid #267cc4;outline-offset:-4px;background:#e2efff}
.day.board-shift{box-shadow:inset 0 0 0 2px #72a8cd}
.day.board-shift:after{content:attr(data-shift-label);position:absolute;bottom:4px;right:4px;padding:3px 7px;background:#225e8c;color:white;font-size:14px;font-weight:700;border-radius:4px}
.calendar-dragging{user-select:none;-webkit-user-select:none;cursor:grabbing}
.calendar-drag-ghost{position:fixed;z-index:100;pointer-events:none;padding:9px 14px;border-radius:7px;background:#173e50;color:white;box-shadow:0 5px 15px #0003;font-size:17px;font-weight:700}
.calendar-drag-handle:focus-visible,.calendar-edit-bar button:focus-visible{outline:3px solid #267cc4;outline-offset:2px}
@media(max-width:760px){.calendar-edit-bar{top:54px;padding:8px}.calendar-edit-buttons{gap:5px}.calendar-edit-buttons strong{width:100%;min-width:0}.calendar-edit-buttons button{padding:6px 9px;min-height:42px}.calendar-drag-handle{height:36px}.calendar-edit-status{font-size:13px}}
@media print{.calendar-edit-bar,.calendar-drag-handle{display:none}.day.can-arrange .date{padding-right:0}}

/* Placement-only draft: aggregate calculations run after confirmation. */
.calendar-edit-bar.arranging{background:#fff7e5;border-color:#c99d44}
.calendar-confirm-actions{display:flex;gap:6px;margin-left:auto}
.calendar-staging-note{font-weight:650;color:#80590e}
.day.board-pending .day-plan{background:#fff2cc;border-left:3px solid #c18c22;padding-left:5px}
.calendar-staging .week-pair,.awaiting-calendar-confirm .chart-scroll{opacity:.48}
@media(max-width:760px){.calendar-confirm-actions{margin-left:0}.calendar-staging-note{width:100%}}

/* Revision 36: a single operation row with its drag hint on the right. */
.calendar-edit-main{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center}.calendar-drag-hint{white-space:nowrap;font-size:14px;color:#526771;text-align:right}.calendar-edit-status:empty,.summary-status:empty{display:none}
@media(max-width:760px){.calendar-edit-main{gap:6px}.calendar-drag-hint{font-size:12px}.calendar-edit-buttons strong{width:auto}}
/* Revision 38: source tasks stay separate from throwing quantities. */
.autumn-group{display:inline-block;font-size:11px!important;line-height:1.4;margin-left:5px;padding:0 4px;border-radius:4px;background:#e8edf8;color:#354f87;vertical-align:middle;font-weight:650}
.summary-source-task{position:absolute;top:1px;z-index:4;padding:0;border:0;background:transparent;color:#6a36a1;font-size:12px;line-height:13px;width:13px;height:13px;border-radius:2px}
.source-task-key{color:#6a36a1}.source-citation,.source-task-list small{display:block;color:#65777c;font-size:12px;margin-top:2px}
.source-task-list{max-height:220px;overflow:auto;margin:9px 0 16px}.source-guidance{white-space:pre-line;margin:12px 0}
.source-day-details{border:1px solid #cad4df;border-radius:8px;padding:10px 12px;margin-top:12px;background:#f7f9fc;font-size:14px}
.source-policy-label{max-width:100%;white-space:normal}
.trend-legend .reference-line-key::before{height:0;background:none;border-top:3px dotted #64748b}

/* Revision 42: one calendar, common label palette, focused actions. */
.workspace-links{display:flex;gap:16px;font-size:14px}.workspace-links a{white-space:nowrap}.player-list{max-height:calc(100vh - 185px)}.player-row{min-height:44px}.input-preview{display:flex;gap:5px;justify-content:space-between;align-items:center;background:#fff2cc;padding:3px 5px;border-radius:4px}.input-preview small{color:#705415!important;font-size:11px}.input-preview b{font-size:16px;color:#705415}.actual-edit-hint{display:block;font-size:12px;color:#33665c;margin-top:4px}.day-actual[data-actual-day]:hover{background:#edf6f2}.day-editor-tabs{display:flex;align-items:center;gap:8px;margin-bottom:12px}.day-editor-tabs strong{padding:8px 18px;background:#e0eee8;border-radius:7px;color:#1f6454}.actual-editor{width:min(900px,96vw);height:92dvh;max-height:94dvh;overflow:hidden;display:flex;flex-direction:column}.actual-editor:not([open]){display:none}.actual-editor .modal-body{padding:0;display:flex;flex-direction:column;flex:1;min-height:0}.actual-editor .modal-body>.error:empty{display:none}.actual-editor .day-editor-tabs{margin:10px 14px}.actual-editor .existing-actual{padding:8px 16px;max-height:28vh;overflow:auto;flex-shrink:0;background:#f7f9f9}.existing-actual summary{cursor:pointer;font-size:14px}.actual-editor iframe{display:block;width:100%;border:0;flex:1;min-height:240px}.actual-editor .compare-input [data-pa]{display:none}.summary-name strong{line-height:1.5}.plan-more-options{z-index:45}
@media(max-width:760px){.app-header{flex-wrap:wrap;padding:12px 16px}.app-header>span{display:none}.workspace-links{gap:12px;font-size:13px}.actual-editor{width:98vw;height:96dvh;max-height:97dvh}.actual-editor .modal-head{padding:10px 14px}}
.camp-summary{margin:14px 0 20px;padding:18px 20px;border:1px solid #cbdcda;border-radius:12px;background:#f4f8f7;min-width:0}.camp-heading{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.camp-heading h3{margin:0;font-size:21px}.camp-heading button{margin-left:auto;background:#fff}.camp-role{font-size:14px;color:#4a6561}.camp-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin:17px 0 14px}.camp-metrics>div{border-left:2px solid #dce7e3;padding-left:14px}.camp-metrics>div:first-child{border:0;padding-left:0}.camp-metrics span{display:block;font-size:14px;color:#425e57}.camp-metrics strong{display:block;font-size:28px;color:#193f39;font-variant-numeric:tabular-nums;line-height:1.6}.camp-metrics strong small{font-size:14px;margin-left:4px}.camp-progress{height:13px;border-radius:6px;overflow:hidden;display:flex;background:#dfe7e6}.camp-progress i{display:block;height:100%}.camp-bullpen{background:#2366b1}.camp-practice{background:#9362be}.camp-game{background:#cf605c}.camp-breakdown{display:flex;gap:16px;flex-wrap:wrap;margin-top:10px;font-size:14px}.camp-breakdown i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:5px}.camp-scope{font-size:13px;color:#56716a;margin:9px 0 0}.camp-method{font-size:14px;margin-top:8px;color:#425e57}.camp-method summary,.camp-day-detail summary{cursor:pointer;width:fit-content;text-decoration:underline;text-underline-offset:3px}.camp-method p{margin:8px 0;line-height:1.6}.camp-day-count{display:flex;justify-content:space-between;gap:4px;font-size:13px;color:#23598c;margin-top:6px;padding-top:4px;border-top:1px solid #cddcec}.camp-day-detail{padding:12px 15px;background:#eef5fb;border-left:3px solid #2366b1;border-radius:5px;margin:0 0 15px;font-size:14px}.camp-day-detail>strong{font-size:18px;display:block}.camp-day-detail>span{display:block;margin-top:5px}.camp-day-detail details{margin-top:9px}.camp-day-detail p{margin:7px 0}.camp-day-detail small{color:#4b635e;line-height:1.5}
@media(max-width:760px){.camp-summary{padding:13px}.camp-metrics{grid-template-columns:1fr 1fr;gap:13px 8px}.camp-metrics strong{font-size:25px}.camp-metrics>div:nth-child(3){padding-left:0;border:0}.camp-heading{gap:8px}.camp-heading h3{font-size:19px}.camp-heading button{margin:0;min-height:40px}.camp-breakdown{gap:6px 12px}.camp-role{font-size:13px}}
/* Revision 44: period above, one representative event on each exact date below. */
.summary-table{--summary-day-width:34px}.summary-dates span{width:var(--summary-day-width);min-width:var(--summary-day-width);font-size:13px}.summary-track{background:repeating-linear-gradient(90deg,transparent 0,transparent calc(var(--summary-day-width) - 1px),#e3e9ec calc(var(--summary-day-width) - 1px),#e3e9ec var(--summary-day-width));flex-shrink:0}.summary-counts{grid-template-columns:repeat(var(--day-count),var(--summary-day-width))}.summary-player-row .summary-track{height:63px}.summary-player-row .summary-band{top:3px;height:25px;min-height:0;padding:3px 6px;border-radius:3px;align-items:center;font-size:13px}.summary-player-row .summary-phase-title{line-height:19px}.summary-daily-events{position:absolute;top:32px;left:0;width:var(--timeline-width);display:grid;grid-template-columns:repeat(var(--day-count),var(--summary-day-width));height:27px;border-top:1px solid #d9e2e6}.summary-event{min-width:0;min-height:0;width:calc(var(--summary-day-width) - 2px);height:26px;padding:0;border:1px solid #0000000c;border-radius:3px;font-size:13px;line-height:24px;font-weight:700;letter-spacing:-.3px;box-shadow:none;white-space:nowrap;cursor:pointer}.summary-event small{font-size:10px;vertical-align:top;line-height:15px}.summary-event:hover,.summary-event:focus-visible{outline:2px solid #184f6b;outline-offset:-2px;filter:brightness(.95)}.summary-event.event-pending{border:1px dashed #a96e27}.summary-event-legend,.summary-status-legend{display:flex;align-items:center;flex-wrap:wrap;gap:5px;margin:7px 0;font-size:13px}.summary-event-legend>span{padding:3px 8px;border-radius:4px;font-weight:650}.summary-legend>b,.summary-event-legend>b{font-size:13px;margin-right:5px}.summary-legend{align-items:center}.summary-status-legend{color:#68777c;gap:14px}.summary-status-legend .summary-ac-key{color:#a83232}.summary-ac-alert{top:6px;width:14px;height:17px;font-size:13px;line-height:15px;z-index:3}.summary-source-task{top:16px;font-size:10px;z-index:4}.summary-event-legend .event-pending{background:#fff5dd;color:#775519}.summary-event.event-cb,.summary-event-legend .event-cb{background:#dfefdf;color:#27582e}.summary-event.event-long,.summary-event-legend .event-long{background:#bbdfc7;color:#174f32}.summary-event.event-standing,.summary-event-legend .event-standing{background:#c2e3f4;color:#1a5170}.summary-event.event-middle,.summary-event-legend .event-middle{background:#cfd9f2;color:#304677}.summary-event.event-seated,.summary-event-legend .event-seated{background:#e1ccf1;color:#5c3576}.summary-event.event-bp,.summary-event-legend .event-bp{background:#f6dfad;color:#744e16}.summary-event.event-live,.summary-event-legend .event-live{background:#f4c99b;color:#7b420b}.summary-event.event-intrasquad,.summary-event-legend .event-intrasquad{background:#f2bebe;color:#852e3b}.summary-event.event-game,.summary-event-legend .event-game{background:#af3f4d;color:#fff}.summary-event.event-nt,.summary-event-legend .event-nt{background:#edf1f5;color:#677681}.summary-event.event-rest,.summary-event-legend .event-rest{background:#475569;color:#fff}.summary-event.event-net,.summary-event-legend .event-net{background:#d3e9ed;color:#2f5c67}.summary-event.event-shadow,.summary-event-legend .event-shadow{background:#e4e4ef;color:#595874}.summary-event.event-pre,.summary-event-legend .event-pre{background:#e9dff0;color:#725880}.summary-event.event-control,.summary-event-legend .event-control{background:#efe5bf;color:#705b19}.summary-event.event-prep,.summary-event-legend .event-prep{background:#e0e6f1;color:#546480}.summary-event.event-other,.summary-event-legend .event-other{background:#edf0de;color:#5e6740}.summary-event.event-unknown,.summary-event-legend .event-unknown{background:repeating-linear-gradient(135deg,#fafbfc,#fafbfc 5px,#edf0f2 5px,#edf0f2 7px);color:#76858d}

/* Revision 47: stronger player boundaries; holidays share the existing team row. */
.summary-player-row{border-bottom:3px solid #82939e}
.summary-team-row{height:88px}
.summary-team-row .summary-track{height:87px}
.summary-team-row>.summary-name{display:flex;padding:3px 9px;align-items:flex-start;justify-content:center;font-size:13px}
.summary-team-row .team-band{top:3px;height:25px;font-size:13px}
.summary-team-row .team-fixture{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:0;padding:0 1px;line-height:1;background:#204d69;color:#fff;cursor:pointer}
.summary-team-row .team-fixture[data-team-lane="farm"]{background:#35694e}
.team-fixture small{font-size:12px;line-height:13px}
.team-fixture b{font-size:13px;line-height:14px}
.team-fixture:focus-visible{outline:2px solid #172b35;outline-offset:-2px}
.team-fixture-detail{max-width:min(380px,90vw);margin:auto;padding:14px 18px;border:1px solid #8096a1;border-radius:8px;background:#fff;color:#173544;box-shadow:0 6px 24px #172b352d;font-size:14px}
.team-fixture-detail p{margin:6px 0}
.team-fixture-detail button{margin-top:4px}
.summary-player-row{isolation:isolate}
/* Recorded season totals: three independent scales, never a readiness score. */
.season-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:10px 0 3px}.season-cards>div{background:#f5f8f9;border:1px solid #e0e7eb;border-radius:7px;padding:6px 10px}.season-cards small{color:#53636d;font-size:12px}.season-metric{position:relative;min-height:29px;display:flex;align-items:center;justify-content:flex-end;isolation:isolate}.season-metric b{font-size:16px;font-variant-numeric:tabular-nums;padding:3px 6px;white-space:nowrap;color:#19353d}.season-metric b small{margin-left:4px;font-size:10px;color:#77551d}.season-bar{position:absolute;left:0;top:4px;bottom:4px;z-index:-1;border-radius:3px;min-width:0}.season-innings{background:#dfd5f0;border-left:3px solid #8360ac}.season-pitches{background:#cde1f6;border-left:3px solid #3979b5}.season-load{background:#c6e5da;border-left:3px solid #218066}.season-bar[style="width:0.00%"],.season-bar[style="width:0%"]{border:0}.season-card-note{margin:3px 0 7px;color:#697780;font-size:11px}.season-panel{padding:18px}.season-panel h2{margin:0}.season-range{font-size:14px;color:#496169;margin:6px 0}.season-controls{display:flex;gap:12px}.season-controls label{font-size:12px;color:#53636d;display:grid;gap:4px}.season-controls select{min-height:36px;padding:5px 9px}.season-note{color:#64737b;font-size:12px;line-height:1.55;margin:10px 0}.season-scroll{max-height:calc(100vh - 285px);overflow:auto;border:1px solid #d9e2e5;border-radius:8px}.season-table{border-collapse:separate;border-spacing:0;width:100%;min-width:780px;table-layout:fixed}.season-table th,.season-table td{border-bottom:1px solid #dce4e7;padding:6px 12px;text-align:left}.season-table thead th{position:sticky;top:0;background:#eaf1f3;z-index:2;font-size:13px;height:38px}.season-table th:first-child{width:200px}.season-table th:last-child{width:120px}.season-table tbody th{font-size:13px;font-weight:500}.season-table tbody th button{background:none;border:0;padding:0;min-height:0;color:#193f4a;font-size:14px;font-weight:700;text-align:left;box-shadow:none}.season-table tbody th>small{display:block;color:#6b5b85;font-size:10px;line-height:1.2}.season-table tbody tr:hover{background:#f7fafb}.season-coverage{font-size:13px;font-variant-numeric:tabular-nums;white-space:nowrap}.season-coverage small{color:#73828a;margin-left:2px;font-size:11px}.season-coverage span{display:block;color:#7e6650;font-size:10px}.season-table thead th:nth-child(2){border-top:3px solid #8360ac}.season-table thead th:nth-child(3){border-top:3px solid #3979b5}.season-table thead th:nth-child(4){border-top:3px solid #218066}
@media(max-width:760px){.season-cards{gap:5px}.season-cards>div{padding:5px}.season-metric b{font-size:14px;padding:2px}.season-cards small{font-size:10px}.season-panel{padding:12px}.season-panel>.row{align-items:flex-start;flex-direction:column;gap:10px}.season-scroll{max-height:65vh}.season-controls{width:100%}.season-controls label{flex:1}.season-table th:first-child{width:170px}.view-tabs button{padding:9px 10px;font-size:13px}}
.spring-event-details{margin:6px 0 10px;font-size:13px;color:#40565d}.spring-event-details summary{cursor:pointer;font-weight:650}.spring-event-details p{margin:7px 0;line-height:1.5}.spring-event-table{overflow-x:auto}.spring-event-table table{border-collapse:collapse;min-width:560px;width:100%}.spring-event-table th,.spring-event-table td{border:1px solid #d9e2e6;padding:6px 10px;text-align:left}.spring-event-table th{background:#eff4f5}.summary-spring-row{display:flex;height:28px;border-bottom:1px solid #bdcbd0;background:#f6faf9}.summary-spring-row .summary-name{padding:2px 8px;font-size:12px;flex-direction:row;justify-content:space-between;gap:3px;white-space:nowrap}.summary-spring-row .summary-name small{font-size:10px}.spring-event-cell{font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;border-right:1px solid #e3e9ec}.spring-event-cell.event-bp{background:#f6dfad;color:#744e16}.spring-event-cell.event-live{background:#f4c99b;color:#7b420b}.spring-event-cell.event-intrasquad{background:#f2bebe;color:#852e3b}.spring-event-cell.event-game{background:#af3f4d;color:#fff}.spring-event-cell.event-rest{background:#475569;color:white}

.summary-band.winter-pending{border:2px dashed #8f5b00;background:#fff1c7!important;color:#643f00!important}

.winter-review-pending{background:#fff1c7;color:#643f00;border:1px solid #b67d25;font-size:12px;white-space:normal}

.individual-review-badge{font-size:11px;line-height:1.4;white-space:normal;background:#fff4dc;color:#714b06;border:1px solid #e4c77e}.summary-name .individual-review-badge{display:block;margin-top:2px;max-width:170px}.player-row .individual-review-badge{display:none}
/* Complete player handout: no line clamps, actuals, or calendar editing controls. */
.recommended-overview h1{margin:0;font-size:24px}.recommended-overview{padding:16px 20px}.recommended-draft{color:#8b5a0c;font-size:14px;margin:8px 0 0}
.recommended-calendar{padding:18px}.recommended-toolbar{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.recommended-toolbar h2{margin:0;font-size:22px}.recommended-month{scroll-margin-top:75px;margin-top:24px}.recommended-month h3{font-size:22px;border-bottom:2px solid #b8ceca;padding-bottom:8px;margin:0 0 10px}.recommended-scroll{overflow-x:auto;padding-bottom:8px}.recommended-grid{min-width:980px}.recommended-week{display:grid;grid-template-columns:repeat(7,minmax(120px,1fr)) 100px;gap:5px;margin-bottom:5px;align-items:stretch}.recommended-week.weekdays>div{padding:8px;text-align:center;background:#e6efed;font-size:15px;font-weight:700;border-radius:4px}.recommended-week.weekdays>div:nth-child(7){color:#b0424f}
.recommended-day{background:#fff;border:1px solid #ceddd9;border-radius:7px;display:flex;flex-direction:column;min-width:0;overflow:hidden}.recommended-day header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:5px;padding:9px 8px 6px}.recommended-day time{font-size:18px;font-weight:800}.recommended-phase{font-size:12px;padding:3px 6px;border-radius:4px;line-height:1.3}.recommended-event{padding:5px 8px;margin:0 6px 5px;border-radius:4px;font-size:13px;font-weight:600;overflow-wrap:anywhere}.recommended-sessions{list-style:none;padding:0 7px;margin:0;flex:1}.recommended-sessions li{padding:9px 4px;border-bottom:1px solid #e2e9e7;overflow-wrap:anywhere}.recommended-sessions li:last-child{border-bottom:0}.recommended-sessions strong,.recommended-sessions span,.recommended-sessions small{display:block;white-space:normal;line-height:1.55}.recommended-sessions strong{font-size:15px}.recommended-sessions span{font-size:14px;color:#3f565a;margin-top:2px}.recommended-sessions small{font-size:12px;color:#657a7e;margin-top:3px}.recommended-sessions .high-intensity{background:#fff0e7;border-left:3px solid #d1843f;border-radius:4px;margin:3px 0;padding-left:6px}.recommended-empty{font-size:15px;color:#6a797d}.recommended-rest{background:#f1f4f4}.recommended-day footer{display:flex;align-items:baseline;justify-content:space-between;background:#eff5f3;padding:7px 10px;font-size:12px;color:#46625a;border-top:1px solid #dce7e3}.recommended-day footer b{font-size:20px;color:#185544}.recommended-totals{padding:12px 8px;background:#e7f0ed;border-radius:7px;display:flex;flex-direction:column;gap:18px}.recommended-totals span{font-size:12px}.recommended-totals strong{display:flex;align-items:center;font-size:20px;margin-top:3px}.recommended-totals .weekly-trend{display:inline-flex}.recommended-blank{background:#f7f9f8;border-radius:5px}
@media(max-width:760px){.recommended-calendar{padding:12px}.recommended-overview{padding:14px}.recommended-overview .row{gap:10px;flex-wrap:wrap}.recommended-overview h1{font-size:22px}.recommended-overview button{min-height:42px}.view-tabs{overflow-x:auto}.view-tabs button{flex-shrink:0;white-space:nowrap}.recommended-month{scroll-margin-top:90px}}
@media print{.recommended-page .sidebar,.recommended-page .mobile-picker,.recommended-page .actions,.recommended-toolbar,.recommended-draft{display:none!important}.recommended-page,.recommended-page .content{padding:0!important;width:100%!important;max-width:none!important}.recommended-page .layout{display:block}.recommended-overview,.recommended-calendar{border:0;box-shadow:none;padding:0}.recommended-scroll{overflow:visible;padding:0}.recommended-grid{min-width:0}.recommended-week{grid-template-columns:repeat(7,minmax(0,1fr)) 65px;gap:3px;break-inside:avoid}.recommended-month{break-before:page;margin:10px 0 0}.recommended-month:first-of-type{break-before:auto}.recommended-sessions strong{font-size:10px}.recommended-sessions span{font-size:9px}.recommended-sessions small{font-size:8px}.recommended-day time{font-size:12px}.recommended-phase,.recommended-event{font-size:9px}.recommended-totals{padding:7px 3px}.recommended-totals span{font-size:8px}.recommended-totals strong,.recommended-day footer b{font-size:12px}.recommended-day footer{font-size:8px;padding:4px}.recommended-week.weekdays>div{font-size:10px;padding:4px}.recommended-day header{padding:5px}.recommended-sessions{padding:0 3px}.recommended-sessions li{padding:5px 2px}.recommended-day,.recommended-event,.recommended-phase,.recommended-totals{-webkit-print-color-adjust:exact;print-color-adjust:exact}}

@media(max-width:760px){.planner-navigation .view-tabs{overflow-x:auto;overflow-y:hidden}.planner-navigation .view-tabs button{flex:0 0 auto;min-width:max-content;padding:9px 10px;white-space:nowrap}}

/* Independent spring and autumn classifications; they do not move dates. */
.planning-group-filters{display:flex;gap:16px;align-items:end;flex-wrap:wrap;margin:12px 0 18px}.planning-group-filters label{display:grid;gap:5px;font-size:14px;font-weight:700}.planning-group-filters select{min-width:190px;background:#fff}.planning-group-count{padding:10px;color:#52656a}.planning-group-badges{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px;font-weight:500;font-size:11px;line-height:1.4}.planning-group{border:1px solid #c7d8d4;border-radius:5px;padding:3px 5px;background:#edf6f3;color:#244c43}.planning-group[class*="autumn-"]{background:#f7f0e4;border-color:#e2d3b9;color:#624b28}.planning-group.autumn-C{background:#eee7f7;border-color:#d8cbe8;color:#5a4276}.planning-group.autumn-B{background:#edf0f3;border-color:#d5dce0;color:#455764}.summary-name .planning-group-badges{font-size:10px}.summary-player-row{min-height:66px}.player-row .planning-group-badges{font-size:10px}.planning-group.spring-pending,.planning-group.spring-individual{background:#fff4de}.recommended-overview>.row{flex-wrap:wrap}@media(max-width:700px){.planning-group-filters{gap:8px}.planning-group-filters label{flex:1;min-width:140px}.planning-group-filters select{min-width:0;width:100%}}

/* Keep uncertainty and the AC warning together in the daily legend. */
.summary-event-legend>span.summary-event-status{display:inline-flex;align-items:center;gap:5px;padding:0;white-space:nowrap}.summary-event-status>span{padding:3px 8px;border-radius:4px}.summary-event-legend .summary-ac-key{color:#a83232;background:transparent}
.adjustment-panel{padding:18px!important}.adjust-period{display:flex;align-items:center;gap:7px;font-size:13px;margin-left:auto}.adjust-period input{max-width:155px}.adjust-provenance{font-size:12px;color:#647480;margin:10px 0 14px}.adjust-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.adjust-card{min-width:0;border:1px solid #dce4e8;border-radius:12px;background:#fcfdfd;padding:13px}.adjust-card header{display:flex;align-items:center;flex-wrap:wrap;gap:6px;min-height:38px;margin-bottom:12px}.adjust-card header>span{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#e3efeb;color:#245b4b;font-weight:800}.adjust-card h3{font-size:15px;margin:0}.adjust-badge{font-size:11px;padding:4px 7px;border-radius:5px;background:#e5f1eb;color:#26684e}.adjust-badge.attention{background:#fff0d6;color:#935d11}.adjust-badge.pending{background:#e9edf0;color:#65737c}.adjust-issues{list-style:none;padding:0;margin:0;max-height:274px;overflow-y:auto}.adjust-issues li+li{border-top:1px solid #e7ecef}.adjust-issues button{display:flex;gap:8px;text-align:left;background:none;border:0;box-shadow:none;border-radius:0;padding:10px 0;width:100%;font-size:12px}.adjust-issues button b{white-space:nowrap;color:#38664f}.adjust-issues button span{line-height:1.5}.adjust-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin:0 0 14px}.adjust-metrics div{padding:6px 1px;border-bottom:1px solid #dce5e7}.adjust-metrics dt{font-size:10px;color:#647480}.adjust-metrics dd{margin:4px 0 0;font-size:20px;font-weight:800}.adjust-legend{display:flex;gap:9px;flex-wrap:wrap;font-size:10px;margin-bottom:8px}.adjust-legend span:before{content:'';display:inline-block;width:12px;height:3px;background:currentColor;vertical-align:middle;margin-right:3px}.adjust-legend .purple{color:#7255b8}.adjust-legend .teal{color:#148b90}.adjust-legend .red{color:#cf4e52}.adjust-card svg{width:100%;display:block;font-size:10px;overflow:visible}.adjust-axis{font-size:9px;fill:#647480}.adjust-note{font-size:12px;color:#647480;line-height:1.5;margin:9px 0 0}.adjust-empty{min-height:218px;display:flex;align-items:center;line-height:1.8;font-size:14px;color:#586d69}.adjust-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px}.adjust-actions button{font-size:12px;padding:8px 10px}.proposal-card{background:#f6fbf8;border-color:#c6dfd2}.adjust-clear{font-size:14px;color:#387756;padding:18px 0}.adjust-changes{margin-top:17px;border-top:1px solid #d7e4db;padding-top:12px}.adjust-change{display:grid;grid-template-columns:60px 1fr auto;gap:10px;align-items:center;padding:10px 0;border-top:1px solid #e6ebed;font-size:13px}.adjust-change button{font-weight:bold;font-size:13px}.adjust-change span,.adjust-change small{display:block}.adjust-change small{margin-top:5px;color:#527768}.adjust-rules{margin-top:12px;font-size:12px;color:#637572}.adjust-rules p{line-height:1.7}.adjust-rules summary{cursor:pointer}@media(max-width:1050px){.adjust-grid{grid-template-columns:1fr}.adjust-empty{min-height:0}.adjust-card svg{max-width:530px}.adjust-issues{max-height:200px}.adjust-metrics dt{font-size:12px}.adjust-card h3{font-size:16px}.adjust-period{margin-left:0}.adjust-change{grid-template-columns:55px 1fr}.adjust-change>b{grid-column:2}}

.adjust-card h3{font-size:17px}.adjust-issues button{font-size:14px}.adjust-metrics dt{font-size:12px}.adjust-metrics dd{font-size:24px}.adjust-legend{font-size:12px}.adjust-note,.adjust-rules{font-size:13px}.adjust-actions button{font-size:14px}

/* Same pitch-count scope in 2026 history and 2027 plans. */
.camp-count-comparison{background:#f4f8f7;border:1px solid #cbdcda;border-radius:12px;padding:16px 20px;margin:14px 0 18px;min-width:0}.camp-count-comparison h3{font-size:20px;margin:0}.count-table-scroll{overflow-x:auto;margin-top:12px}.camp-count-comparison table{border-collapse:collapse;width:100%;font-size:14px;font-variant-numeric:tabular-nums}.camp-count-comparison th,.camp-count-comparison td{padding:7px 10px;text-align:right;border-bottom:1px solid #d5e0dc}.camp-count-comparison th:first-child{text-align:left;font-weight:500}.camp-count-comparison thead{color:#51635b;font-size:13px}.camp-count-comparison .count-total{background:#e2efea;color:#17463b;font-size:21px;font-weight:700}.camp-count-comparison .count-total th{font-size:16px;font-weight:700}.camp-count-comparison td small{display:block;font-size:11px;font-weight:400}.count-coverage{font-size:12px;color:#53665f;margin:9px 0}.count-target{font-size:14px;line-height:1.7;margin:10px 0 0;padding-top:9px;border-top:1px solid #cbdcda}.camp-count-comparison .camp-method{font-size:12px}.camp-count-comparison .camp-method p{max-width:100ch}.camp-count-comparison .camp-role{font-size:12px}
@media(max-width:760px){.camp-count-comparison{padding:12px}.camp-count-comparison th,.camp-count-comparison td{padding:6px}.camp-count-comparison table{font-size:12px}.camp-count-comparison .count-total{font-size:19px}.camp-count-comparison .count-total th{font-size:14px}.count-target{font-size:12px}}

.period103-goal{display:flex;align-items:baseline;flex-wrap:wrap;gap:12px 28px;margin:16px 0;font-size:17px}.period103-goal b{font-size:25px;margin-left:6px}.period103-gap{color:#8f441b}.period103-met{color:#17623c}.period103-note{font-size:14px;color:#405b53;margin:8px 0 14px}.period103-weeks{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:12px 0}.period103-weeks>div{background:#fff;padding:12px;border-radius:8px}.period103-weeks span,.period103-weeks small{display:block;margin-top:6px}.period103-weeks strong{font-size:21px}.period103-weeks small{color:#51635b;font-size:13px}@media(max-width:760px){.period103-weeks{grid-template-columns:repeat(2,minmax(0,1fr))}.period103-goal{gap:9px 18px;font-size:15px}.period103-goal b{font-size:22px}}

.period103-weeks .period103-status{display:inline;font-size:12px;margin-left:3px}.period103-weeks .period103-met{color:#17623c}.period103-weeks .period103-gap{color:#8f441b}.camp-progress .camp-preparation{background:#7a9bb0}.camp-progress .camp-standing{background:#92abb7}

/* Spring period audit, revision 107. */
.camp-overview214{padding:22px 24px}.camp-overview-heading{display:flex;justify-content:space-between;align-items:center;gap:16px}.camp-overview-heading h2{margin:0;font-size:23px}.camp-overview-heading>span{color:#60716d;font-size:15px;white-space:nowrap}.camp-overview214 .count-table-scroll{margin-top:18px;max-height:calc(100vh - 260px);min-height:280px;overflow:auto;overscroll-behavior:contain}.camp-overview-table{width:100%;min-width:920px;border-collapse:separate;border-spacing:0;table-layout:fixed;font-size:16px;font-variant-numeric:tabular-nums}.camp-overview-table .camp-player-col{width:20%}.camp-overview-table .camp-ready-col{width:9%}.camp-overview-table .camp-pitch-col{width:8%}.camp-overview-table .camp-week-col{width:11.75%}.camp-overview-table th,.camp-overview-table td{padding:12px 8px;vertical-align:middle;text-align:center;border-bottom:1px solid #e2eae7}.camp-overview-table thead th{position:sticky;top:0;z-index:3;height:43px;background:#edf4f1;color:#304d45;font-size:14px;font-weight:700}.camp-overview-table thead tr:nth-child(2) th{top:43px;background:#f6f9f7;height:39px}.camp-overview-table thead th[rowspan]{height:82px}.camp-overview-table thead tr:first-child th:first-child{left:0;z-index:5;text-align:left;padding-left:16px}.camp-overview-table tbody th{position:sticky;left:0;z-index:2;background:#fff;text-align:left;padding-left:16px}.camp-overview-table tbody tr:hover>th,.camp-overview-table tbody tr:hover>td{background-color:#f5f9f7}.camp-overview-table th button{display:flex;align-items:center;gap:10px;border:0;padding:5px 0;background:transparent;color:#164f43;font-size:16px;text-align:left;font-weight:700;line-height:1.35}.camp-overview-table th button:hover span:last-child{text-decoration:underline}.camp-number{color:#768781;min-width:26px;font-size:13px;font-weight:600}.camp-overview-table .camp-ready{font-size:15px;color:#53675f}.camp-overview-table .camp-pitch{font-size:18px}.camp-overview-table .camp-planned{font-weight:700}.camp-overview-table small{display:block;font-size:12px;font-weight:400;color:#6a7b74;margin-top:4px;white-space:nowrap}.camp-deficit{display:inline-block;min-width:46px;padding:5px 6px;border-radius:7px;font-size:16px;font-weight:700}.camp-deficit.camp-tone--green{color:#176141;background:#e0f3e7}.camp-deficit.camp-tone--yellow{color:#855300;background:#fff3bf}.camp-deficit.camp-tone--red{color:#b42332;background:#ffe1e4}.camp-deficit--held,.camp-deficit--unknown{color:#78847f;background:#f0f3f1;font-size:13px}.camp-week strong{font-size:18px;font-weight:650}.camp-week.camp-tone--green strong,.camp-week.camp-tone--yellow strong,.camp-week.camp-tone--red strong{display:inline-block;min-width:48px;padding:3px 6px;border-radius:5px}.camp-week.camp-tone--green strong{color:#176141;background:#e0f3e7}.camp-week.camp-tone--yellow strong{color:#855300;background:#fff3bf}.camp-week.camp-tone--red strong{color:#b42332;background:#ffe1e4}.camp-color-key{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px;margin:-4px 0 12px;font-size:12px}.camp-color-key span{padding:3px 7px;border-radius:5px}.camp-color-key .camp-tone--green{color:#176141;background:#e0f3e7}.camp-color-key .camp-tone--yellow{color:#855300;background:#fff3bf}.camp-color-key .camp-tone--red{color:#b42332;background:#ffe1e4}.camp-overview-table .camp-saved-note{color:#956018;font-size:11px}.camp-overview214 .count-table-scroll:focus-visible{outline:2px solid #287867;outline-offset:3px}@media(max-width:700px){.camp-overview214{padding:16px 12px}.camp-overview-heading{align-items:flex-start}.camp-overview-heading h2{font-size:20px}.camp-overview-heading>span{font-size:13px}.camp-overview214 .count-table-scroll{max-height:calc(100vh - 220px)}}

/* February calendar totals: each week pairs workload with pitch count. */
.camp-overview222 .camp-overview-table{min-width:1120px}.camp-overview222 .camp-player-col{width:17%}.camp-overview222 .camp-ready-col{width:7%}.camp-overview222 .camp-week-col{width:7.25%}.camp-overview222 .camp-total-col{width:9%}.camp-overview222 .camp-overview-table th,.camp-overview222 .camp-overview-table td{padding:10px 5px}.camp-overview222 .camp-overview-table tbody th{padding-left:12px}.camp-overview222 .camp-overview-table th button{font-size:15px;gap:6px}.camp-overview222 .camp-overview-key{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 18px;margin-top:10px}.camp-overview222 .camp-stack-key{font-size:13px;color:#53675f;white-space:nowrap}.camp-overview222 .camp-color-key{margin:0}.camp-overview222 .count-table-scroll{margin-top:12px}.camp-overview222 .camp-metric strong{display:inline-block;min-height:27px;padding:3px 6px;font-size:18px;white-space:nowrap}.camp-overview222 .camp-metric--plan-only{vertical-align:middle}.camp-overview222 .camp-metric small{font-size:12px;min-height:17px;margin-top:6px}.camp-overview222 .camp-metric--pitches{border-right:1px solid #ccdcd4}.camp-overview222 .camp-month-total{background:#f0f6f2}.camp-overview222 .camp-month-total strong{font-size:19px}.camp-overview222 .camp-month-heading{background:#dcece3}.camp-overview222 .camp-overview-table thead tr:nth-child(2) .camp-month-heading{background:#e7f1eb}.camp-overview222 .camp-number{min-width:24px;font-size:12px}@media(max-width:700px){.camp-overview222 .camp-overview-heading{gap:8px}.camp-overview222 .camp-overview-key{gap:8px}.camp-overview222 .camp-color-key{justify-content:flex-start}}

.camp-overview222 .camp-color-key .camp-pitch-tolerance{color:#53675f;background:transparent;border-left:1px solid #cbdcd3;border-radius:0;padding-left:10px}

/* Keep only planned values in the grid; native popovers expose their criteria. */
.camp-metric-trigger{border:0;padding:3px 0;background:transparent;border-radius:6px;min-height:38px;color:inherit;font:inherit;cursor:pointer}.camp-metric-trigger:hover{background:transparent}.camp-metric-trigger:hover strong{text-decoration:underline;text-underline-offset:3px}.camp-metric-trigger:focus-visible{outline:2px solid #287867;outline-offset:3px}.camp-metric-popup{width:min(390px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto;padding:18px 20px;border:1px solid #b8cdc3;border-radius:12px;background:#fff;color:#203b43;box-shadow:0 12px 44px #123d3a35;font-size:15px}.camp-metric-popup-heading{display:flex;align-items:center;justify-content:space-between;gap:14px}.camp-metric-popup-heading h3{margin:0;font-size:16px;line-height:1.5}.camp-metric-popup-heading button{flex:0 0 auto;font-size:13px;padding:6px 9px}.camp-metric-popup-status{margin:12px 0 0;font-size:14px;font-weight:700}.camp-metric-popup.camp-tone--green .camp-metric-popup-status{color:#176141}.camp-metric-popup.camp-tone--yellow .camp-metric-popup-status{color:#855300}.camp-metric-popup.camp-tone--red .camp-metric-popup-status{color:#b42332}.camp-metric-popup dl{display:grid;grid-template-columns:90px minmax(0,1fr);gap:10px 12px;margin:16px 0 0;line-height:1.55}.camp-metric-popup dt{color:#60716a}.camp-metric-popup dd{margin:0;font-weight:600;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}

.adjust-variance107{padding:14px 0;border-bottom:1px solid #d6e1df;margin-bottom:18px;display:flex;gap:12px;flex-wrap:wrap}.adjust-variance107 details,.adjust-variance107>p{width:100%}.adjust-scenario107{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin-top:12px}.adjust-scenario107 label{display:flex;flex-direction:column;gap:4px}.adjust-scenario107 input{width:170px}.adjust-variance107>span{font-variant-numeric:tabular-nums}

/* Revision 111: a single date marker, with no additional panels. */
.view-tabs .planner-today{margin-left:auto;background:#0f6075;color:#fff;border-color:#0f6075;white-space:nowrap;font-size:14px}
.calendar-day-cell.is-today>.day{box-shadow:inset 0 0 0 3px #087f9c}
.day .today-tag{background:#0f6075;color:#fff;border-radius:4px;padding:1px 4px;margin-left:5px;font-size:12px}
.summary-dates>.is-today{background:#0f6075;color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.2}
.summary-dates>.is-today b{font-size:11px;margin-top:3px}
.summary-has-today .summary-dates,.summary-has-today .summary-counts{position:relative}
.summary-has-today .summary-name{z-index:7}
.summary-has-today .summary-track::before,.summary-has-today .summary-counts::before{content:'';position:absolute;left:var(--today-x);width:var(--summary-day-width);top:0;bottom:0;box-shadow:inset 2px 0 #087f9c,inset -2px 0 #087f9c;background:#087f9c0a;z-index:6;pointer-events:none}

.view-tabs .planner-today:hover,.view-tabs .planner-today:focus{background:#0b4d60;color:#fff}

/* 112: compact source-program labels; keep the existing calendar geometry. */
.summary-event.event-pd{background:#dfd6ef;color:#533779}.summary-event.event-mc{background:#d7e9f2;color:#24556b}.summary-event.event-feedback{background:#e9edf0;color:#465761}.summary-event.event-control{font-size:11px;letter-spacing:-.5px}

/* Same daily-load categories as the dashboard; calculation is unchanged. */
.trend-legend>.daily-key:before{display:none}.trend-category-legend{font-size:14px;gap:8px 16px;margin:0 0 12px;flex-wrap:wrap}.trend-category-legend>span:before{content:"";display:inline-block;width:13px;height:13px;border-radius:2px;background:var(--category-color);margin-right:6px;vertical-align:-1px}

/* Revision116: one complete calendar, with reference data separated. */
.main-view-tabs,.reference-view-tabs{display:flex;align-items:stretch;gap:0}
.view-tabs .main-view-tabs button{font-size:16px;font-weight:700;padding:10px 16px}
.reference-view-tabs{margin-left:auto;border-left:1px solid #cbd8da;padding-left:10px}
.view-tabs .reference-view-tabs button{font-size:13px;padding:10px 12px;color:#52656b}
.view-tabs .reference-view-tabs button.active{color:#075f51}
.view-tabs .planner-today{margin-left:10px}
.calendar{--calendar-columns:repeat(7,minmax(160px,1fr)) 184px;min-width:1304px}
.day .sessions{display:flex;flex-direction:column;gap:5px;width:100%}
.day .session-line{align-items:flex-start;width:100%;gap:5px;border-bottom:1px solid #dbe4e799;padding-bottom:4px}
.day .session-line:last-child{border-bottom:0}
.day .session-label{white-space:normal;overflow:visible;text-overflow:clip;font-size:14px;line-height:1.35;text-align:left}
.day .session-label>span{display:block;font-weight:600}
.day .session-label small{display:block;font-size:12px;line-height:1.4;color:#4b6470;font-weight:400;margin-top:2px}
.day .session-line b{flex-shrink:0;font-size:13px}
.remote-plan-update{padding:10px;background:#fff2cc;border-radius:7px;font-size:14px}
.remote-plan-update button{margin-left:12px}
.plan-signals{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}
.plan-signal{padding:12px 15px;border:1px solid #d3dfe0;border-radius:8px;background:#f7faf9}
.plan-signal header{display:flex;gap:9px;align-items:center;font-size:15px}
.signal-dot{width:15px;height:15px;border-radius:50%;display:inline-block;flex-shrink:0;background:#84939b;box-shadow:0 0 0 4px #84939b18}
.signal-green .signal-dot{background:#159653;box-shadow:0 0 0 4px #15965318}
.signal-yellow .signal-dot{background:#d49310;box-shadow:0 0 0 4px #d4931020}
.signal-red .signal-dot{background:#cf3947;box-shadow:0 0 0 4px #cf394719}
.plan-signal p{margin:8px 0 0;font-size:14px;line-height:1.5}
.plan-signal small{display:block;color:#60757a;margin-top:4px;font-size:12px}
@media(max-width:760px){.planner-navigation .view-tabs{overflow-x:auto;align-items:stretch}.main-view-tabs,.reference-view-tabs{flex:0 0 auto}.reference-view-tabs{margin-left:12px}.view-tabs .main-view-tabs button{font-size:15px;white-space:nowrap;padding:9px 10px;flex:0 0 auto}.view-tabs .reference-view-tabs button{white-space:nowrap;flex:0 0 auto}.view-tabs .planner-today{flex:0 0 auto}.plan-signals{grid-template-columns:1fr;gap:8px}}
@media print{.plan-signals{display:none}.calendar{min-width:0;--calendar-columns:repeat(7,minmax(0,1fr)) 126px}.day .session-label{font-size:10px}.day .session-label small,.day .session-line b{font-size:9px}}

/* The two signal rows sit beside the name, inside its pinned column. */
.summary-player-row>.summary-name-with-signals{flex-direction:row;align-items:center;justify-content:space-between;gap:8px}
.summary-player-row>.summary-name-with-signals>strong{flex:1;min-width:0;line-height:20px;white-space:normal;overflow-wrap:anywhere}
.summary-mini-signals{display:grid;flex:0 0 36px;gap:1px;margin:0}
.summary-mini-signal{display:flex;align-items:center;gap:6px;font-size:11px;line-height:13px;font-weight:600;color:#40565d}
.summary-mini-signal .signal-dot{width:8px;height:8px;box-shadow:0 0 0 2px #84939b18}
.summary-mini-signal.signal-green .signal-dot{box-shadow:0 0 0 2px #15965318}
.summary-mini-signal.signal-yellow .signal-dot{box-shadow:0 0 0 2px #d4931020}
.summary-mini-signal.signal-red .signal-dot{box-shadow:0 0 0 2px #cf394719}
@media(max-width:700px){.summary-player-row>.summary-name-with-signals{gap:6px;padding-left:8px;padding-right:8px}.summary-player-row>.summary-name-with-signals>strong{line-height:18px}}

/* Requested rules tab: compact player rows, with numerical detail on demand. */
.rules-page{display:flex;flex-direction:column;gap:16px;max-width:1600px}
.rules-page>.planning-group-filters{margin:0}
.rules-definition p,.rules-player-result p{font-size:14px;line-height:1.65;overflow-wrap:anywhere}
.rules-state-definitions{display:grid;grid-template-columns:1fr 1fr;gap:5px 24px;margin:14px 0}
.rules-state-definitions>p{display:flex;align-items:flex-start;gap:12px;margin:0;padding:7px 0}
.rules-verdict{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:750;white-space:nowrap;flex-shrink:0;color:#294d54}
.rules-verdict .signal-dot{width:12px;height:12px;box-shadow:none}
.rules-numerical>summary,.rules-player-detail>summary,.rules-calculation-notes>summary{cursor:pointer;padding:10px 0;font-size:14px;font-weight:650;color:#205c54}
.rules-numerical{margin-top:12px;border-top:1px solid #d5e2df}
.rules-numerical-grid{display:grid;grid-template-columns:minmax(260px,.7fr) minmax(0,1.3fr);gap:22px}
.rules-numerical-grid h3{font-size:16px;margin-bottom:8px}
.rules-table-scroll{overflow-x:auto}
.rules-criteria-table{width:100%;border-collapse:collapse;font-size:13px;line-height:1.5;font-variant-numeric:tabular-nums}
.rules-criteria-table th,.rules-criteria-table td{text-align:left;vertical-align:top;border-bottom:1px solid #dbe5e3;padding:7px 8px}
.rules-criteria-table thead th{background:#edf5f1;color:#315850;font-weight:650}
.rules-goal-table{min-width:490px}
.rules-goal-table td:last-child{min-width:240px}
.rules-counts{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.rules-count{display:inline-flex;align-items:center;gap:7px;font-size:14px}
.rules-count b{font-variant-numeric:tabular-nums}
.rules-evaluation-date{font-size:13px;color:#5b7478;margin:10px 0 18px}
.rules-player-result{border-top:2px solid #cbd9d7;padding:13px 0}
.rules-player-result>header{display:flex;align-items:center;gap:10px 16px;flex-wrap:wrap}
.rules-player-result>header>button{border:0;background:transparent;padding:2px 0;font-size:17px;font-weight:750;text-align:left;min-width:160px;color:#184f4b}
.rules-player-result>header>button:hover{text-decoration:underline}
.rules-player-result>header>span:not(.rules-verdict){font-size:14px;color:#405c63}
.rules-player-result>header>small{font-size:13px;color:#60757b;margin-left:auto}
.rules-player-main{margin-top:7px}
.rules-player-reason{margin:4px 0}
.rules-next-step{color:#315b56}
.rules-player-detail{margin-top:5px}
.rules-player-detail>summary{padding:4px 0}
.rules-player-detail[open]{background:#f5f8f7;padding:10px 13px;border-radius:6px;margin:9px 0}
.rules-player-result>footer{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.rules-metric-list{list-style:none;margin:8px 0;padding:0;font-size:13px;line-height:1.6;font-variant-numeric:tabular-nums}
.rules-metric-list>li{display:flex;gap:5px 14px;flex-wrap:wrap;padding:5px 0;border-bottom:1px solid #dce6e3}
.rules-metric-list>li>span:first-child{flex-basis:300px}
.rules-metric-list>li[data-rule-check-state="below"],.rules-metric-list>li[data-rule-check-state="above"]{color:#9a5319}
.rules-metric-list>li[data-rule-check-state="unknown"]{color:#61767a}
.rules-actual-result{border-top:1px solid #cfddda;margin-top:14px;padding-top:10px}
.rules-actual-result h3{display:flex;align-items:center;flex-wrap:wrap;gap:10px;font-size:14px}
.rules-calculation-notes>summary{font-weight:500}
.rules-pending-update{color:#936216}
@media(max-width:1000px){.rules-numerical-grid{grid-template-columns:1fr}.rules-page .reference-view-tabs{margin-left:0}}
@media(max-width:760px){.rules-state-definitions{grid-template-columns:1fr;gap:0}.rules-player-result>header{gap:7px 11px}.rules-player-result>header>button{min-width:0;flex-basis:100%;font-size:18px}.rules-player-result>header>small{margin-left:0}.rules-counts{gap:10px}.rules-results>.row{align-items:flex-start}.rules-player-detail[open]{padding:8px}.rules-metric-list>li>span:first-child{flex-basis:100%}.rules-page{gap:12px}}
@media print{.rules-player-result>footer{display:none}.rules-page{max-width:none}.rules-player-detail,.rules-numerical{break-inside:avoid}}
.rules-definition{background:#fff;border:1px solid #dce5e3;border-radius:8px;padding:15px}
.rules-rule-section{border-top:1px solid #d7e3df;margin-top:14px;padding:4px 0;min-width:0}
.rules-rule-section>h3{font-size:16px;line-height:1.5;margin:14px 0 10px;color:#184f4b}
.rules-rule-section>summary{font-weight:700;padding:7px 0;color:#184f4b}
.rules-rule-section ul{padding-left:22px;line-height:1.8}
.rules-rule-section li+li{margin-top:5px}
.rules-definition .count-table-scroll{max-width:100%;min-width:0;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;margin:12px 0 18px}
.rules-definition .count-table-scroll:focus-visible{outline:2px solid #32786a;outline-offset:3px;border-radius:3px}
.rules-criteria{width:100%;min-width:780px;table-layout:fixed;border-collapse:collapse;font-size:14px;line-height:1.7;text-align:left;font-variant-numeric:tabular-nums}
.rules-criteria th,.rules-criteria td{padding:12px 14px;border-bottom:1px solid #dce5e2;vertical-align:top;overflow-wrap:anywhere}
.rules-criteria tr>:first-child{width:21%}
.rules-criteria thead th{font-weight:700;line-height:1.5}
.rules-criteria tbody th{font-weight:650;color:#315b54;background:#f6faf8}
.rules-criteria tbody tr:nth-child(even) td{background:#fafcfb}
.rules-cell-block{display:block}
.rules-cell-block+.rules-cell-block{margin-top:7px}
.rules-criteria tbody th .rules-cell-block+.rules-cell-block{margin-top:3px}
.rules-criteria thead{background:#edf5f1;color:#234f4a}
.rules-criteria small{display:block;color:#657b78}
.rules-source{color:#6a7e7b;font-size:12px;margin:10px 0 3px;overflow-wrap:anywhere}
.rules-player-application{border-top:1px solid #dce5e2;padding:8px 0}
.rules-player-application>summary{font-weight:650;color:#234f4a}
@media(max-width:760px){.rules-definition{padding:11px;min-width:0}.rules-criteria{min-width:720px;font-size:13px}.rules-criteria th,.rules-criteria td{padding:11px 12px}.rules-criteria tbody th{position:sticky;left:0;z-index:1;box-shadow:1px 0 #dce5e2}.rules-rule-section ul{padding-left:20px}}
.rules-signal-priority>h2{margin:0 0 8px;font-size:19px}
.rules-signal-priority .rules-signal-purpose{margin:0 0 6px;font-weight:650}
.rules-signal-priority .rules-signal-scope{margin:6px 0;font-size:13px;line-height:1.55;color:#49625e}
.rules-signal-label{display:inline-flex;align-items:center;justify-content:center;min-width:42px;padding:3px 7px;border-radius:5px;font-size:13px;font-weight:750}
.rules-signal-label.signal-green{background:#dff1e7;color:#175738}
.rules-signal-label.signal-yellow{background:#fff0bc;color:#735700}
.rules-signal-label.signal-red{background:#fbe3e3;color:#9c2525}
.rules-signal-label.signal-gray{background:#e8ecee;color:#4d5d64}
.rules-signal-priority>.rules-numerical,.rules-support{margin-top:9px;border-top:1px solid #d5e2df}
.rules-support>summary{cursor:pointer;padding:10px 0;font-size:14px;font-weight:650;color:#4f6661}
.rules-signal-priority>.rules-numerical>.rules-rule-section,.rules-support>.rules-rule-section{margin-left:8px}
@media(max-width:760px){.rules-signal-priority>h2{font-size:18px}.rules-signal-priority>.rules-numerical>.rules-rule-section,.rules-support>.rules-rule-section{margin-left:0}}

.rules-signal-overview{min-width:0;table-layout:auto}
.rules-signal-overview tr>:first-child{width:92px}
.rules-signal-overview tbody th{background:#fff;position:static;box-shadow:none}
.rules-signal-overview tbody tr:nth-child(even) td{background:#fff}
@media print{.rules-definition .count-table-scroll{overflow:visible}.rules-criteria{min-width:0}.rules-criteria tbody th{position:static}.rules-criteria tr{break-inside:avoid}}

.rules-signal-comparison tr>:first-child{width:80px}

/* Shared save stays available while moving through the calendar. */
.plan-save-status{font-size:14px;margin:10px 0;color:#526d69}.plan-save-status.unshared{color:#855b19;font-weight:650}
.plan-share-bar[hidden]{display:none}.plan-share-bar{position:fixed;bottom:14px;left:50%;transform:translateX(-50%);z-index:35;display:flex;align-items:center;gap:20px;justify-content:space-between;max-width:calc(100vw - 24px);padding:12px 16px;background:#fff;border:2px solid #087c69;border-radius:12px;box-shadow:0 5px 22px #153e3925}.plan-share-bar>div{display:flex;flex-direction:column;gap:2px;min-width:0}.plan-share-bar strong{font-size:16px}.plan-share-bar span{font-size:13px;color:#855b19}.plan-share-bar button{flex-shrink:0}.plan-share-bar:not([hidden])~#toast{bottom:105px}body:has(.plan-share-bar:not([hidden])) .page{padding-bottom:110px}@media(max-width:760px){.plan-share-bar{width:calc(100vw - 20px);gap:10px;padding:10px}.plan-share-bar button{font-size:15px;padding:10px}.plan-share-bar strong{font-size:14px}.plan-share-bar span{font-size:12px}}@media print{.plan-share-bar,.plan-save-status{display:none}}

/* Numeric signal criteria are read in order without opening another panel. */
.rules-quantified>.rules-numerical{margin-top:0;border-top:0}.rules-quantified>.rules-numerical>.rules-rule-section{margin-left:0;padding-top:10px}.rules-quantified .rules-rule-section>h3{font-size:18px;margin:16px 0 12px}.rules-quantified .rules-criteria tbody th{line-height:1.6}.rules-quantified .rules-support{margin-top:18px}@media(max-width:760px){.rules-quantified .rules-rule-section>h3{font-size:17px}.rules-quantified>.rules-numerical>.rules-rule-section{padding-top:6px}}

/* Revision155: editable newcomer templates use the same timeline, without actuals. */
.planning-item-picker{max-width:300px;margin:12px 0}.control-program-note{padding:10px 12px;background:#f5efdb;border-radius:7px;font-size:15px}
.nc-summary-divider{display:flex;min-height:38px;border-top:4px solid #496f68;border-bottom:1px solid #cad8d4;background:#e6f0ed}.nc-summary-divider .summary-name{font-size:15px;font-weight:750;background:#e6f0ed;display:flex;justify-content:center;align-items:flex-start;padding:7px 10px}.nc-summary-divider .summary-track{min-height:38px}.nc-summary-row>.summary-name{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:3px}.nc-summary-row .summary-name strong{font-size:15px}.nc-summary-row .summary-name small{font-size:12px;font-weight:500;white-space:normal}.nc-summary-row .nc-empty{display:block;border:0;background:transparent;cursor:default}.nc-summary-row .summary-track::after{display:none}
/* Keep newcomer names and milestone labels below the pinned summary header stack. */
.nc-summary-group{position:relative;isolation:isolate;z-index:0;--nc-name-width:190px}.nc-summary-row{isolation:auto}.nc-summary-row>.summary-name,.nc-summary-divider>.summary-name{z-index:7;background:#fff}.nc-summary-divider>.summary-name{background:#e6f0ed}@media(max-width:700px){.nc-summary-group{--nc-name-width:145px}}.nc-summary-draft{position:absolute;top:4px;bottom:3px;display:flex;align-items:center;justify-content:center;background:#e8d6a9d9;border-inline:2px solid #a88a45;color:#624c20;z-index:5;pointer-events:none}.nc-summary-draft span,.nc-draft-label{writing-mode:vertical-rl;text-orientation:upright;letter-spacing:2px;font-weight:750;font-size:17px}.nc-day.nc-draft-day{background:#f6edd7;border:1px solid #c9ad6d;border-radius:8px}.nc-draft-day>.nc-draft-label{margin:auto;color:#624c20;align-self:center}
.nc-page> .row{margin-bottom:16px}.nc-overview{display:flex;align-items:flex-start;gap:16px;flex-wrap:wrap;margin-bottom:14px}.nc-overview>label{min-width:190px;font-size:16px;font-weight:650}.nc-overview>p{width:100%;order:3;margin:0;color:#55706a;font-size:14px}.nc-status{align-self:center;color:#526e68;font-size:15px}.nc-plan-metrics{display:flex;flex-wrap:wrap;gap:18px;width:100%;border-top:1px solid #dce5e1;padding-top:12px}.nc-plan-metrics>span{display:flex;flex-direction:column;min-width:145px;font-size:15px}.nc-plan-metrics b{font-size:25px;font-variant-numeric:tabular-nums}.nc-plan-metrics small{font-size:13px;color:#61736f}
.nc-calendar-scroll{overflow-x:auto;margin-top:15px;overscroll-behavior-x:contain}.nc-calendar{min-width:1100px}.nc-month{margin-bottom:24px}.nc-month>h3{font-size:23px;margin:12px 0}.nc-week{display:grid;grid-template-columns:repeat(7,minmax(126px,1fr)) 145px;gap:6px;margin-bottom:6px}.nc-week-head>span{text-align:center;font-size:15px;color:#617573;font-weight:650;padding:4px}.nc-day{display:flex;flex-direction:column;align-items:stretch;min-height:164px;text-align:left;padding:9px 8px;gap:5px;background:#fff;overflow:hidden;font-weight:400}.nc-date{display:flex;justify-content:space-between;align-items:center;font-size:17px;font-weight:750;gap:4px}.nc-date small{font-size:12px;font-weight:500;color:#70817c}.nc-main{display:block;font-size:16px;font-weight:700;padding:5px 8px;margin:0 -8px;border-radius:2px}.nc-main.event-cb{background:#dfefdf;color:#27582e}.nc-main.event-long{background:#bbdfc7;color:#174f32}.nc-main.event-standing{background:#c2e3f4;color:#1a5170}.nc-main.event-seated{background:#e1ccf1;color:#5c3576}.nc-main.event-bp{background:#f6dfad;color:#744e16}.nc-main.event-live{background:#f4c99b;color:#7b420b}.nc-main.event-intrasquad{background:#f2bebe;color:#852e3b}.nc-main.event-game{background:#af3f4d;color:#fff}.nc-main.event-rest{background:#475569;color:#fff}.nc-main.event-nt{background:#edf1f5;color:#677681}.nc-main.event-control{background:#efe5bf;color:#705b19}.nc-main.event-other{background:#edf0de;color:#5e6740}.nc-main.event-unknown{background:#eee;color:#5c6c6f}.nc-sessions{font-size:13px;line-height:1.6;overflow-wrap:anywhere;flex:1}.nc-day>strong{color:#187462;font-size:17px}.nc-blank{background:transparent;border:0}.nc-week-total{display:flex;flex-direction:column;gap:12px;padding:12px 10px;background:#e9f0ed;border-radius:8px;font-size:14px}.nc-week-total span{display:flex;flex-direction:column}.nc-week-total b{font-size:23px;font-variant-numeric:tabular-nums}.nc-session{display:grid;grid-template-columns:1fr 42px;gap:7px;padding:12px 0;border-top:1px solid #dce5e1}.nc-fields{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.nc-fields input,.nc-fields select{width:100%}#newcomer-editor .modal-body>label{max-width:330px}#newcomer-editor .modal-body>.actions{margin-top:15px}
@media(max-width:760px){.nc-overview{gap:10px}.nc-overview>label{min-width:135px;flex:1}.nc-plan-metrics{display:grid;grid-template-columns:1fr 1fr;gap:12px}.nc-plan-metrics>span{min-width:0}.nc-plan-metrics b{font-size:23px}.nc-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.nc-page>.row .actions{width:100%;justify-content:space-between}}

/* Shared phase date editor. */
.phase-dates191{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 20px;margin-top:18px}.phase-dates191 label{display:grid;gap:8px;font-weight:700}.phase-dates191 input{width:100%;min-width:0;font:inherit;padding:12px;border:1px solid #9baea9;border-radius:8px}.phase-note191{margin:18px 0 4px}@media(max-width:480px){.phase-dates191{grid-template-columns:1fr}}

/* Planner navigation: one distinct route back to the daily dashboard. */
.workspace-links{align-items:center;flex-shrink:0}
.workspace-links .dashboard-return{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 16px;border:1px solid #f9da96;border-radius:8px;background:#f5c76a;color:#173d3a;font-size:15px;font-weight:750;line-height:1.35;white-space:nowrap}
.workspace-links .dashboard-return:hover{background:#ffdc91;border-color:#ffdc91}
.workspace-links .dashboard-return:active{background:#e7b852}
.workspace-links .dashboard-return:focus-visible{outline:3px solid #fff;outline-offset:3px}
@media(max-width:760px){.workspace-links{margin-left:auto}.workspace-links .dashboard-return{font-size:14px;padding:9px 12px}}

/* Alert target207 is distinct from today, manual edits and selected day. */
.calendar-panel #planner-alert-range207{width:fit-content;max-width:calc(100vw - 300px);justify-content:flex-start}.calendar-alert-caption207 strong{overflow-wrap:anywhere}@media(max-width:760px){.calendar-panel #planner-alert-range207{max-width:calc(100vw - 32px)}}
.calendar-day-cell.calendar-alert207{border-radius:10px;background:#fff0cf;box-shadow:inset 0 0 0 3px #c97412;scroll-margin-top:100px}.calendar-day-cell.calendar-alert207>.day{border:2px solid #c97412;background:#fff9e9}.calendar-alert-caption207{grid-column:1/-1;position:sticky;left:0;z-index:2;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;background:#fff0cf;border:2px solid #c97412;border-radius:8px;padding:10px 12px;margin:10px 0;max-width:100%;font-size:15px;line-height:1.6}.calendar-alert-caption207 button{background:white;border:1px solid #a86819;border-radius:6px;padding:7px 10px;font:inherit;cursor:pointer}.calendar-alert-caption207 button:focus-visible{outline:3px solid #266fb6;outline-offset:2px}


/* Multiple-player list selection. Group filters and player calendars retain their own state. */
.player-filter240{position:relative;display:flex;align-items:center;gap:8px}.player-filter240 details{position:relative}.player-filter240 summary{display:flex;align-items:center;gap:12px;list-style:none;cursor:pointer;min-height:44px;padding:10px 14px;border:1px solid #a9c2bc;border-radius:8px;background:#fff;font-size:14px;font-weight:700;color:#174b43}.player-filter240 summary::-webkit-details-marker{display:none}.player-filter240 summary::after{content:'▾';font-size:12px}.player-filter240 summary span{color:#52656a;font-weight:500}.player-filter240 details[open] summary{border-color:#23786b;box-shadow:0 0 0 2px #d4ebe5}.player-picker-panel240{position:absolute;z-index:120;top:calc(100% + 6px);left:0;width:min(620px,calc(100vw - 32px));padding:12px;border:1px solid #b6cec7;border-radius:10px;background:#fff;box-shadow:0 10px 32px #123d3a26}.player-picker-list240{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));max-height:300px;overflow:auto;gap:3px;padding:2px}.player-picker-list240 label{display:flex;align-items:center;gap:8px;min-height:38px;padding:6px;border-radius:5px;font-weight:500;cursor:pointer}.player-picker-list240 label:has(input:checked){background:#e0f1eb;color:#174b43}.player-picker-list240 input{width:18px;height:18px;margin:0;flex:0 0 auto;accent-color:#23786b}.player-picker-list240 span{font-size:13px;line-height:1.4}.player-picker-footer240{display:flex;align-items:center;gap:8px;margin-top:10px;padding-top:10px;border-top:1px solid #dfebe7}.player-picker-footer240>span{margin-right:auto;font-size:13px;color:#52656a}.list-empty240{padding:16px;color:#52656a}@media(max-width:700px){.player-filter240{width:100%;flex-wrap:wrap}.player-filter240 details{position:static}.player-filter240 summary{min-width:180px}.player-picker-panel240{top:calc(100% + 6px);width:calc(100vw - 32px)}.player-picker-list240{grid-template-columns:repeat(2,minmax(0,1fr));max-height:260px}}
.planning-group-filters{position:relative}.player-filter240,.player-filter240 details{position:static}.player-picker-panel240{width:min(620px,100%)}.player-picker-list240 label{min-width:0;flex-direction:row}@media(max-width:700px){.player-picker-panel240{width:100%}}

/* Compact summary filters; checkbox labels in the picker retain their own layout. */
.summary-page>.planning-group-filters{align-items:center;gap:10px 16px;margin:6px 0 10px}
.summary-page>.planning-group-filters>label{display:flex;flex-direction:row;align-items:center;gap:8px;white-space:nowrap}
.summary-page>.planning-group-filters>label>select{width:180px;min-width:0}
.summary-page>.planning-group-filters>.planning-group-count{padding:4px 0;font-size:14px;white-space:nowrap}
.summary-page>.planning-group-filters .player-filter240 summary{min-height:42px;padding:8px 12px}
.summary-panel>.summary-legend{margin:10px 0}
@media(max-width:900px) and (min-width:701px){.summary-page>.planning-group-filters{gap:8px 12px}.summary-page>.planning-group-filters>label>select{width:150px}}
@media(max-width:700px){.summary-page>.planning-group-filters>label{flex:1 1 100%;min-width:0;justify-content:space-between}.summary-page>.planning-group-filters>label>select{width:min(55%,220px)}.summary-page>.planning-group-filters>.player-filter240{width:auto;max-width:100%}}

@media screen {
 .toolbar-month-jumps {
  align-self: center;
  margin-inline-start: auto;
  flex: 1 1 110px;
  min-width: 0;
  max-width: max-content;
  flex-wrap: nowrap;
  overflow-x: auto;
  overscroll-behavior-x: contain;
 }
 .toolbar-month-jumps > button { flex: 0 0 auto; white-space: nowrap; }
}

.summary-page .summary-table {
 --team-lane-one: 3px; --team-lane-two: 31px; --team-lane-three: 59px;
}
.summary-legend-toggle { flex: none; min-height: 28px; padding: 2px 8px; font-size: 13px; }
.summary-legend-key {
 margin: auto; width: min(650px, calc(100vw - 24px)); padding: 14px;
 border: 1px solid #8096a1; border-radius: 8px; color: inherit; background: white;
 box-shadow: 0 6px 24px #172b352d;
}
.summary-legend-key .summary-legend, .summary-legend-key .summary-event-legend { margin: 5px 0; gap: 4px; }
.summary-legend-key > button { margin-top: 6px; min-height: 28px; padding: 3px 9px; font-size: 13px; }
/* Keep three team lanes and the two readiness counts compact on desktop screens. */
@media screen and (min-width: 701px) {
 body:has(.summary-page) .app-header {
  min-height: 27px; padding: 1px 10px; gap: 8px; flex-wrap: nowrap;
 }
 body:has(.summary-page) .app-header > a,
 body:has(.summary-page) .app-header .workspace-links a {
  display: inline-flex; align-items: center; min-height: 24px; margin-block: 0;
  padding: 1px 5px; font-size: 14px; line-height: 1.3;
 }
 body:has(.summary-page) .app-header > span { font-size: 13px; }
 .summary-page {
  padding: 1px 8px 4px; display: flex; flex-direction: column;
  height: calc(100dvh - 27px); min-height: 0;
 }
 .summary-page > .planner-navigation {
  flex: none; margin: 0; min-height: 27px; padding: 0; gap: 2px;
 }
 .summary-page .planner-navigation .view-tabs {
  flex-wrap: nowrap; align-items: stretch; overflow-x: auto; gap: 4px;
 }
 .summary-page .view-tabs .main-view-tabs,
 .summary-page .view-tabs .reference-view-tabs { flex: 0 0 auto; }
 .summary-page .view-tabs .main-view-tabs button,
 .summary-page .view-tabs .reference-view-tabs button {
  min-height: 27px; padding: 2px 9px; font-size: 14px; line-height: 1.3; white-space: nowrap;
 }
 .summary-page > .planning-group-filters {
  flex: none; align-items: center; flex-wrap: nowrap; margin: 1px 0 2px; gap: 3px 7px;
 }
 .summary-page > .planning-group-filters > label { gap: 4px; font-size: 12px; }
 .summary-page > .planning-group-filters > label > select {
  width: clamp(91px, 9vw, 132px); min-height: 28px; padding: 2px 4px; font-size: 13px;
 }
 .summary-page > .planning-group-filters .player-filter240 summary {
  min-height: 28px; min-width: 0; padding: 3px 6px; font-size: 12px; white-space: nowrap;
 }
 .summary-page > .planning-group-filters > .planning-group-count { padding: 0; font-size: 12px; }
 .summary-page .toolbar-month-jumps {
  margin-block: 0; padding: 0; min-width: 74px; gap: 2px; scrollbar-width: thin;
 }
 .summary-page .toolbar-month-jumps > button { min-height: 27px; padding: 2px 5px; font-size: 12px; }
 .summary-page > .summary-panel {
  display: flex; flex: 1 1 auto; flex-direction: column; min-height: 0; margin: 0; padding: 1px 3px;
 }
 .summary-page .summary-legend,
 .summary-page .summary-event-legend,
 .summary-page .summary-status-legend {
  flex: none; align-items: center; flex-wrap: wrap; gap: 2px 5px; margin: 1px 0;
  font-size: 12px; line-height: 1.2;
 }
 .summary-page .summary-legend > b,
 .summary-page .summary-event-legend > b { font-size: 12px; margin: 0; }
 .summary-page .summary-legend span,
 .summary-page .summary-event-legend .summary-event-status > span,
 .summary-page .summary-status-legend > span {
  padding: 1px 5px; font-size: 12px; line-height: 1.2;
 }
 .summary-page .summary-status { flex: none; min-height: 0; margin: 1px 0; font-size: 12px; }
 .summary-page .summary-status:empty { display: none; }
 .summary-page .summary-scroll { flex: 1 1 auto; max-height: none; min-height: 0; }
 .summary-page .summary-table {
  --compact-date-height: 23px; --compact-team-height: 85px; --compact-count-height: 20px;
  --team-lane-one: 1px; --team-lane-two: 29px; --team-lane-three: 57px;
 }
 .summary-page .summary-date-row { height: var(--compact-date-height); }
 .summary-page .summary-date-row > .summary-name { padding: 1px 7px; font-size: 12px; }
 .summary-page .summary-dates > span {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  writing-mode: horizontal-tb; padding: 0; white-space: nowrap; font-size: 11px; line-height: 1.15;
 }
 .summary-page .summary-dates > span > b { font-size: 9px; line-height: 1; }
 .summary-page .summary-team-row { height: var(--compact-team-height); top: var(--compact-date-height); }
 .summary-page .summary-team-row .summary-track { height: calc(var(--compact-team-height) - 1px); }
 .summary-page .summary-team-row .team-band {
  top: var(--team-lane-one) !important; height: 17px; min-height: 0; padding-block: 0; font-size: 11px; line-height: 1.1;
 }
 .summary-page .summary-team-row [data-team-lane="first"],
 .summary-page .summary-team-row [data-team-lane="staff"] { top: var(--team-lane-two) !important; }
 .summary-page .summary-team-row [data-team-lane="farm"] { top: var(--team-lane-three) !important; }
 .summary-page .summary-table .summary-count-row {
  height: var(--compact-count-height); min-height: var(--compact-count-height);
 }
 .summary-page .summary-count-row > .summary-name,
 .summary-page .summary-count-row .summary-count {
  min-height: 0; padding-block: 1px; font-size: 12px; line-height: 1.15;
 }
 .summary-page .summary-count-row > .summary-name small { font-size: 10px; }
 .summary-page .summary-table [data-count-row="game-stage"] { top: calc(var(--compact-date-height) + var(--compact-team-height)); }
 .summary-page .summary-table [data-count-row="game-available"] { top: calc(var(--compact-date-height) + var(--compact-team-height) + var(--compact-count-height)); }
 .summary-page button:focus-visible,
 .summary-page summary:focus-visible,
 .summary-page select:focus-visible { outline: 2px solid #087c69; outline-offset: -2px; }
}
.summary-page .summary-team-row .team-fixture.march-fixture[data-team-lane="first"] { top: var(--team-lane-one,3px) !important; }
.summary-page .summary-team-row .team-fixture.march-fixture[data-team-lane="farm"] { top: var(--team-lane-two,31px) !important; }
.summary-page .summary-team-row .team-fixture.march-fixture[data-team-lane="third"] { top: var(--team-lane-three,59px) !important; background: #644971; }
.fixture-review { max-height: 80dvh; overflow: auto; }
.fixture-review table { border-collapse: collapse; width: 100%; margin-block: .5em; }
.fixture-review th,.fixture-review td { padding: 2px 5px; border-bottom: 1px solid #dee5e6; }
.fixture-review th { text-align: left; }
.fixture-review td { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.fixture-review ul { margin: .4em 0; padding-left: 1.3em; }
.summary-page .summary-team-row .team-fixture { height: 27px; min-height: 27px; padding: 0 1px; }
.summary-page .summary-team-row .team-fixture .fixture-single { font-size: 14px; line-height: 1.15; white-space: nowrap; }
.training-only{display:block;color:#3a6053;font-size:.72rem;font-weight:600;line-height:1.2}
.summary-team-row .team-holiday{display:flex;align-items:center;justify-content:center;padding:0 1px;text-align:center}
.summary-count-row.count-game-stage { top: calc(var(--compact-date-height, 64px) + var(--compact-team-height, 88px)); }
.summary-count-row.count-game-available { top: calc(var(--compact-date-height, 64px) + var(--compact-team-height, 88px) + var(--compact-count-height, 30px)); }
.count-game-stage .summary-name span, .count-game-available .summary-name span {
  overflow: hidden; white-space: nowrap; text-overflow: ellipsis;
}
.summary-counts .ready-count {
  border: 0; border-right: 1px solid #d8e3e1; border-radius: 0;
  padding: 0; background: transparent; color: #506968; cursor: pointer;
}
.summary-counts .ready-count.has-participants { background: #e2f1ed; color: #185a4a; }
.summary-counts .ready-count:focus-visible { outline: 2px solid #185a4a; outline-offset: -2px; }
.game-readiness-detail { max-height: 76dvh; overflow: auto; line-height: 1.45; }

/* Entrants: identical planning A/C states in the maximum and weekly values. */
.nc-ac-state287[data-ac-state287="green"]{color:#1d6a48}.nc-ac-state287[data-ac-state287="yellow"]{color:#8a5b00}.nc-ac-state287[data-ac-state287="red"]{color:#b42332}.nc-ac-state287[data-ac-state287="unknown"]{color:#68737c}

/* Fixtures share one date row, including on narrow screens and printed pages. */
.game-duty{min-width:0;max-width:100%}
.game-duty .duty-toolbar{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin-bottom:.6rem}
.game-duty .duty-toolbar h2{margin:0 auto 0 0}
.game-duty .duty-scroll{overflow-x:auto;max-width:100%}
.game-duty table{border-collapse:separate;border-spacing:0;width:100%;table-layout:fixed;font-size:.88rem}
.game-duty .duty-columns-3{min-width:54rem}
.game-duty th,.game-duty td{text-align:left;vertical-align:top;padding:.35rem .45rem;border-right:1px solid #dbe4e3;border-bottom:1px solid #dbe4e3}
.game-duty thead th{color:#28473e;background:#e7eeec}
.game-duty .duty-date{width:5.6rem}
.game-duty tbody th,.game-duty .duty-date{position:sticky;left:0;background:#f7faf9;z-index:1}
.game-duty .duty-off-day th,.game-duty .duty-off-day td{padding-block:.22rem}
.game-duty .duty-off-day td{color:#52615c}
.game-duty .duty-holiday th,.game-duty .duty-holiday td{background:#f2f4f5;color:#46525a;padding-block:.22rem}
.game-duty .duty-holiday td{font-weight:600}
.game-duty .duty-holiday small{margin-inline-start:.6rem;font-weight:400}
.game-duty .duty-fixture+.duty-fixture{border-top:2px solid #8caaa1;margin-top:.45rem;padding-top:.4rem}
.game-duty .duty-event,.game-duty .duty-note{display:block;color:#48605b;font-size:.78rem}
.game-duty ul{list-style:none;margin:0;padding:0}
.game-duty ul.duty-reserves{border-top:1px dashed #adc0ba;margin-top:.2rem;padding-top:.2rem}
.game-duty li[data-duty-row]{display:flex;align-items:baseline;flex-wrap:wrap;column-gap:.28rem;line-height:1.5;padding:.13rem .15rem;border-radius:.2rem}
.game-duty .duty-role{color:#50665f;font-size:.75rem}
.game-duty .duty-player{appearance:none;border:0;background:transparent;color:#14584f;padding:0;font:inherit;font-weight:700;cursor:pointer;text-decoration:underline;text-underline-offset:.16em;text-decoration-color:#9bb7b0}
.game-duty .duty-player:focus-visible{outline:2px solid #165d91;outline-offset:2px}
.game-duty .duty-gap,.game-duty .duty-quantity{white-space:nowrap;font-size:.78rem}
.game-duty .duty-gap{color:#425b53}
.game-duty .duty-alert{color:#902c17;font-weight:700}
.game-duty .duty-selected{background:#ffd8e8;box-shadow:inset 3px 0 #ae2f68}
.game-duty .duty-selected .duty-player{color:#692041}
.game-duty .duty-empty{color:#81918b}
.game-duty .duty-layout:has(.duty-directory){display:grid;grid-template-columns:minmax(0,1fr) clamp(17rem,27vw,26rem);gap:.7rem;align-items:start}
.game-duty .duty-directory{position:sticky;top:.5rem;min-width:0;border:1px solid #b9cbc5;border-radius:.4rem;background:#fff;color:#28473e}
.game-duty .duty-directory summary{cursor:pointer;padding:.4rem .55rem;font-weight:700;line-height:1.4}
.game-duty .duty-directory-panel>summary{background:#e7eeec;border-radius:.4rem;font-size:1rem}
.game-duty .duty-directory-members{overflow-y:auto;max-height:calc(100vh - 6rem);max-height:calc(100dvh - 6rem);overscroll-behavior:contain;scrollbar-gutter:stable;padding:0 .5rem .4rem}
.game-duty .duty-directory-members details+details{border-top:1px solid #cfdbd6}
.game-duty .duty-directory-members summary{padding:.45rem .1rem}
.game-duty .duty-directory summary small{font-size:.73rem;font-weight:500}
.game-duty .duty-directory h4{margin:.25rem 0 .1rem;padding-left:.3rem;border-left:3px solid #91b0a4;color:#456257;font-size:.78rem}
.game-duty .duty-directory li{padding:.14rem .2rem;line-height:1.45;font-size:.84rem}
.game-duty .duty-directory li small{display:block;color:#50665f;font-size:.72rem}
.game-duty .duty-directory-members [data-duty-role]>ul>li+li{border-top:1px solid #dce5e1}
.game-duty .duty-player-schedule>summary{padding:.24rem .05rem;color:#254c40;font-size:.78rem;font-weight:600;line-height:1.55}
.game-duty .duty-schedule-dates time{white-space:nowrap;font-variant-numeric:tabular-nums}
.game-duty .duty-player-schedule>summary:focus-visible{outline:2px solid #176d96;outline-offset:1px}
.game-duty .duty-player-schedule>ul+.duty-standby-appearances{border-top:1px dashed #a7b9b4}
.game-duty .duty-player-schedule>ul{padding:.12rem 0 .2rem}
.game-duty .duty-chart-key{display:flex;align-items:center;flex-wrap:wrap;gap:.2rem .65rem;padding:.35rem .55rem;border-bottom:1px solid #d6e0dd;color:#38524a;font-size:.72rem;line-height:1.4}
.game-duty .duty-chart-key b{flex-basis:100%;font-weight:700}
.game-duty .duty-chart-key span{display:inline-flex;align-items:center;gap:.2rem;white-space:nowrap}
.game-duty :is([data-duty-team="1軍"],[data-chart-team="1軍"]){--duty-team-ink:#0857aa;--duty-team-tint:#e7f1ff}
.game-duty :is([data-duty-team="2軍"],[data-chart-team="2軍"]){--duty-team-ink:#a44600;--duty-team-tint:#fff0df}
.game-duty :is([data-duty-team="3軍"],[data-chart-team="3軍"]){--duty-team-ink:#7035a6;--duty-team-tint:#f3eafb}
.game-duty thead th[data-duty-team]{background:var(--duty-team-ink);color:#fff;print-color-adjust:exact}
.game-duty td[data-duty-team] .duty-fixture{border-inline-start:3px solid var(--duty-team-ink);padding-inline-start:.35rem}
.game-duty td[data-duty-team] .duty-event{color:var(--duty-team-ink);font-weight:700}
.game-duty [data-duty-group="S"]>summary{--duty-team-ink:#006455;--duty-team-tint:#e3f5ef}
.game-duty .duty-directory-members summary[data-duty-team],.game-duty [data-duty-group="S"]>summary{background:var(--duty-team-tint);color:var(--duty-team-ink);border-inline-start:4px solid;padding-inline-start:.35rem}
.game-duty .duty-chart-key span[data-duty-team]{color:var(--duty-team-ink);font-weight:700}
.game-duty .duty-chart-key i{display:inline-block;width:.62rem;height:.62rem}
.game-duty [data-chart-team]{background:var(--duty-team-ink,#5b6d67);print-color-adjust:exact}
.game-duty .duty-innings-chart{box-sizing:border-box;margin:.46rem .1rem .12rem;padding:0 .28rem 0 1.12rem;color:#425b53;font-size:.69rem;font-variant-numeric:tabular-nums;line-height:1}
.game-duty .duty-innings-plot{position:relative;height:3.1rem;border-left:1px solid #9bb0a9}
.game-duty .duty-gridline{position:absolute;left:0;right:0;border-top:1px solid #d9e4e0}
.game-duty .duty-gridline:first-child{border-color:#8aa49a}
.game-duty .duty-gridline>span{position:absolute;right:calc(100% + .22rem);transform:translateY(-50%)}
.game-duty .duty-bar{position:absolute;bottom:0;transform:translateX(-50%);width:clamp(2px,calc(100% / var(--duty-chart-days) * .86),14px);display:flex;flex-direction:column-reverse}
.game-duty .duty-bar-segment{min-height:1px}
.game-duty .duty-axis-marks,.game-duty .duty-date-ticks{position:relative;white-space:nowrap}
.game-duty .duty-axis-marks{height:.70rem}
.game-duty .duty-axis-mark,.game-duty .duty-date-tick{position:absolute;transform:translateX(-50%)}
.game-duty .duty-axis-mark{top:-1px;color:#425b53;font-weight:bold;font-size:.73rem}
.game-duty .duty-axis-mark[data-duty-team]{color:var(--duty-team-ink)}
.game-duty .duty-date-ticks{height:.90rem}
.game-duty .duty-date-tick.first{transform:none}
.game-duty .duty-date-tick.last{transform:translateX(-100%)}
.game-duty .duty-directory .duty-appearance{display:grid;grid-template-columns:2.55rem max-content minmax(0,1fr);gap:.1rem .32rem;padding:.16rem .2rem;color:#28473e;font-size:.76rem;font-variant-numeric:tabular-nums}
.game-duty .duty-appearance time{font-weight:700}
.game-duty .duty-appearance-team{white-space:nowrap}
.game-duty .duty-appearance-team[data-duty-team]{align-self:start;border-radius:.2rem;padding:0 .22rem;background:var(--duty-team-tint);color:var(--duty-team-ink);font-weight:700}
@media(max-width:760px){
 .game-duty .duty-layout:has(.duty-directory){display:flex;flex-direction:column;align-items:stretch;gap:.35rem}
 .game-duty .duty-directory{order:-1;top:0;z-index:2}
 .game-duty .duty-directory-members{max-height:34vh;max-height:34dvh}
 .game-duty .duty-toolbar{gap:.3rem}
 .game-duty .duty-date{width:4.8rem}
 .game-duty .duty-columns-3{min-width:48rem}
}
@media print{
 .game-duty .duty-layout:has(.duty-directory){display:block}
 .game-duty .duty-directory{display:none}
 .game-duty .duty-toolbar label,.game-duty .duty-selection{display:none!important}
 .game-duty .duty-scroll{overflow:visible}
 .game-duty table,.game-duty .duty-columns-3{min-width:0;font-size:8pt}
 .game-duty .duty-date{width:3.9rem}
 .game-duty tbody th,.game-duty .duty-date{position:static}
 .game-duty thead{display:table-header-group}
 .game-duty tr{break-inside:avoid}
 .game-duty th,.game-duty td{padding:.2rem}
 .game-duty .duty-player{text-decoration:none}
 .game-duty .duty-role,.game-duty .duty-gap,.game-duty .duty-quantity,.game-duty .duty-event,.game-duty .duty-note{font-size:7pt}
 .game-duty .duty-selected{print-color-adjust:exact;-webkit-print-color-adjust:exact}
}
