:root {
  --bg: #0e1515;
  --panel: #121918;
  --panel-2: #171a22;
  --line: #293231;
  --line-soft: #1f2828;
  --ink: #f2f6f4;
  --muted: #8f98a3;
  --brand: #522398;
  --brand-2: #2e1260;
  --brand-soft: rgba(82, 35, 152, .2);
  --green: #5fb281;
  --green-soft: rgba(95, 178, 129, .16);
  --blue: #2f8ce6;
  --blue-soft: rgba(47, 140, 230, .18);
  --red: #e44d4d;
  --red-soft: rgba(228, 77, 77, .18);
  --gold: #d0a42d;
  --gold-soft: rgba(208, 164, 45, .2);
  --gray-soft: rgba(151, 154, 167, .15);
  --tool-neutral-bg: #ececec;
  --tool-neutral-ink: #3a3a3a;
  --tool-red-bg: #ffc6c1;
  --tool-red-ink: #b40000;
  --tool-green-bg: #c9efbc;
  --tool-green-ink: #006f48;
  --tool-blue-bg: #bfe4fb;
  --tool-blue-ink: #005aaa;
  --tool-dark-bg: #3d3d3d;
  --tool-dark-ink: #f3f3f3;
  --tool-gold-bg: #ffe19c;
  --tool-gold-ink: #3b2b0c;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
html { max-width: 100%; overflow-x: hidden; -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body { margin: 0; color: var(--ink); background: radial-gradient(circle at 22% 36%, rgba(82, 35, 152, .16) 0, transparent 38%), var(--bg); }
button, input, select { font: inherit; }
button { cursor: pointer; }
button:disabled { cursor: default; opacity: .72; }
[hidden] { display: none !important; }

.app-frame { display: grid; grid-template-columns: 250px minmax(0, 1fr); min-height: 100vh; border: 1px solid var(--line); border-radius: 18px; overflow: hidden; background: rgba(14, 21, 21, .92); }
.app-frame.player-mode .coach-only { display: none !important; }
.app-frame.pitcher-practice-mode .nav-list .app-link,
.app-frame.pitcher-practice-mode .nav-subnav,
.app-frame.pitcher-practice-mode .nav-item:not([data-view="planner"]) { display: none !important; }
.sidebar { display: flex; flex-direction: column; min-height: 100vh; border-right: 1px solid var(--line); background: rgba(14, 21, 21, .78); }
.program { display: flex; gap: 13px; align-items: center; min-height: 78px; padding: 20px; border-bottom: 1px solid var(--line); }
.program-icon, .player-number { display: grid; place-items: center; width: 45px; height: 45px; border-radius: 14px; background: var(--brand-soft); color: var(--brand); font-weight: 850; }
.program-icon img { width: 34px; height: 34px; object-fit: contain; }
.program strong, .program span { display: block; }
.program span { margin-top: 3px; color: var(--muted); }
.nav-list { display: grid; gap: 8px; padding: 18px 14px; }
.nav-item { min-height: 48px; padding: 0 18px; border: 0; border-radius: 8px; background: transparent; color: var(--muted); text-align: left; font-size: 17px; font-weight: 760; }
.nav-item.app-link { display: flex; align-items: center; text-decoration: none; }
.nav-item:hover, .nav-item.is-active { background: var(--brand-soft); color: #d7c8ff; box-shadow: inset 3px 0 0 var(--brand); }
.nav-section { font-size: 18px; font-weight: 900; color: #dfe5e4; }
.nav-subnav { display: none; gap: 6px; padding: 0 0 6px 12px; }
.nav-subnav.is-open { display: grid; }
.nav-subitem { min-height: 38px; padding: 0 12px; border-left: 1px solid rgba(255,255,255,.08); border-radius: 7px; font-size: 14px; font-weight: 820; }
.nav-subitem:hover, .nav-subitem.is-active { box-shadow: inset 2px 0 0 var(--brand); }
.sidebar-footer { margin-top: auto; display: grid; gap: 20px; padding: 22px 24px; border-top: 1px solid var(--line); color: var(--muted); }
.sidebar-footer button { width: fit-content; border: 0; background: transparent; color: #e66565; font-size: 18px; font-weight: 780; }

.main-panel { min-width: 0; }
.page-top { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 78px; padding: 0 24px; border-bottom: 1px solid var(--line); }
h1, h2, p { margin: 0; }
h1 { font-size: 25px; letter-spacing: 0; }
h2 { font-size: 22px; letter-spacing: 0; }
#page-subtitle { margin-top: 4px; color: var(--muted); font-weight: 720; }
.icon-button { display: grid; place-items: center; width: 44px; height: 44px; border: 0; border-radius: 50%; background: rgba(255,255,255,.04); color: #b4bdc2; }
.view { display: none; padding: 26px 24px; }
.view.is-visible { display: block; }

.toolbar, .filters, .planner-actions, .player-header { display: flex; align-items: center; gap: 12px; }
.toolbar { justify-content: space-between; margin-bottom: 16px; }
.count-pill, .search-box, .select-box, .month-control, .segment-control, .ghost-button { border: 1px solid var(--line); border-radius: 8px; background: rgba(255,255,255,.04); }
.count-pill { padding: 8px 13px; color: var(--muted); font-weight: 720; }
.count-pill strong { margin-left: 5px; color: var(--ink); }
.primary-button { min-height: 42px; padding: 0 18px; border: 0; border-radius: 8px; background: var(--brand); color: #f4efff; font-weight: 820; }
.ghost-button { min-height: 42px; padding: 0 16px; color: #c7cecc; }
.filters { margin-bottom: 16px; }
.search-box { flex: 1; display: flex; align-items: center; gap: 8px; height: 48px; padding: 0 16px; }
.search-box span, .select-box span { position: absolute; width: 1px; height: 1px; overflow: hidden; }
input, select { border: 0; outline: 0; background: transparent; color: var(--ink); }
input::placeholder { color: #68717c; }
.search-box input { width: 100%; font-size: 18px; }
.select-box { min-width: 150px; height: 48px; padding: 0 10px; }
.select-box select { width: 100%; height: 100%; font-size: 17px; }
.result-count { margin: 0 0 16px; color: var(--muted); font-weight: 700; }

.table-card, .calendar-card { overflow: hidden; border: 1px solid var(--line); border-radius: 12px; background: rgba(18, 25, 24, .9); }
table { width: 100%; border-collapse: collapse; }
th { padding: 14px 20px; background: #151521; color: #9fa3af; font-size: 14px; letter-spacing: .14em; text-align: left; text-transform: uppercase; }
td { padding: 18px 20px; border-top: 1px solid var(--line-soft); color: #c1c8ca; font-size: 16px; }
.number-chip, .pos-pill, .metric { display: inline-grid; place-items: center; min-width: 40px; height: 36px; border: 0; border-radius: 12px; background: var(--brand-soft); color: #d7c8ff; font-weight: 850; }
.player-link { display: grid; gap: 4px; border: 0; background: transparent; color: var(--ink); text-align: left; }
.player-link span { color: var(--muted); font-size: 14px; }
.pos-pill { min-width: 46px; height: 22px; border-radius: 999px; font-size: 12px; }
.metric { min-width: 48px; height: 30px; border-radius: 999px; }
.metric.warn { background: var(--gold-soft); color: var(--gold); }
.metric.hot { background: var(--red-soft); color: var(--red); }
.muted { color: #626a72; }
.report-button { min-height: 38px; padding: 0 15px; border: 0; border-radius: 12px; background: var(--brand-soft); color: #d7c8ff; font-weight: 800; }

.player-header { margin-bottom: 20px; }
.back-link { border: 0; background: transparent; color: var(--muted); font-size: 38px; line-height: 1; }
.player-number { width: 54px; height: 54px; background: var(--brand); color: white; }
.player-header p { margin-top: 3px; color: var(--muted); font-weight: 700; }
.player-select-box { margin-left: auto; min-width: 230px; }
.planner-actions { margin-bottom: 16px; flex-wrap: wrap; }
.copy-mode-banner { display: flex; align-items: center; gap: 10px; min-height: 43px; padding: 0 10px 0 13px; border: 1px solid rgba(208, 164, 45, .55); border-radius: 8px; background: var(--gold-soft); color: #f0d07a; font-size: 13px; font-weight: 820; }
.copy-mode-banner button { min-height: 28px; padding: 0 10px; border: 0; border-radius: 6px; background: rgba(255,255,255,.1); color: var(--ink); font-size: 12px; font-weight: 850; }
.month-control, .segment-control { display: flex; align-items: center; height: 43px; }
.month-control button, .segment-control button { height: 100%; border: 0; background: transparent; color: var(--muted); font-weight: 800; }
.month-control button { width: 40px; font-size: 25px; }
.month-control strong { min-width: 145px; text-align: center; }
.segment-control { padding: 3px; }
.segment-control button { min-width: 82px; border-radius: 7px; }
.segment-control .is-active { background: rgba(255,255,255,.08); color: var(--ink); }
.action-spacer { flex: 1; }

.weekday-row, .month-grid { display: grid; grid-template-columns: repeat(7, minmax(120px, 1fr)); min-width: 980px; }
.weekday-row { background: #151521; }
.weekday-row span { padding: 13px 14px; color: #9fa3af; font-size: 13px; font-weight: 850; letter-spacing: .14em; text-align: center; text-transform: uppercase; }
.month-grid { grid-auto-rows: minmax(118px, 1fr); }
.day-cell { position: relative; min-height: 118px; padding: 27px 9px 8px; border-top: 1px solid var(--line-soft); border-right: 1px solid var(--line-soft); background: #181923; }
.day-cell:nth-child(7n) { border-right: 0; }
.day-cell.is-outside { opacity: .34; }
.day-cell.is-copy-source { box-shadow: inset 0 0 0 2px var(--gold); }
.date-num { position: absolute; left: 9px; top: 8px; color: #929ba7; font-weight: 800; }
.chip-stack { display: grid; gap: 7px; }
.day-focus-wrap { display: grid; height: 100%; min-height: 76px; place-items: center; }
.day-focus-icon { display: grid; place-items: center; gap: 4px; width: min(118px, 100%); min-height: 64px; padding: 8px; border: 1px solid rgba(255,255,255,.1); border-radius: 14px; background: rgba(255,255,255,.05); color: var(--ink); text-align: center; box-shadow: inset 0 0 0 1px rgba(255,255,255,.03); }
.day-focus-icon:hover { outline: 2px solid rgba(255,255,255,.14); }
.day-focus-icon span { font-size: 15px; font-weight: 920; line-height: 1.05; }
.day-focus-icon strong { color: rgba(255,255,255,.72); font-size: 10px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.day-focus-icon.day-after { background: linear-gradient(180deg, rgba(25,164,211,.3), rgba(25,164,211,.14)); color: #7edcf4; }
.day-focus-icon.day-before { background: linear-gradient(180deg, rgba(239,113,52,.3), rgba(239,113,52,.14)); color: #ff9a63; }
.day-focus-icon.day-on { background: linear-gradient(180deg, rgba(255, 209, 87, .34), rgba(255, 209, 87, .15)); color: #ffe087; }
.day-focus-icon.day-of { background: linear-gradient(180deg, rgba(72,166,48,.32), rgba(72,166,48,.14)); color: #9be57d; }
.day-focus-icon.bullpen-side, .day-focus-icon.live { background: linear-gradient(180deg, rgba(72,166,48,.34), rgba(72,166,48,.16)); color: #9be57d; }
.day-focus-icon.mound-prep-only { background: linear-gradient(180deg, rgba(228,77,77,.32), rgba(228,77,77,.15)); color: #ff8a8a; }
.day-focus-icon.off { background: rgba(151,154,167,.16); color: #a8afba; }
.plan-chip { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 26px; padding: 0 9px; border-radius: 5px; color: inherit; font-size: 13px; font-weight: 850; text-decoration: none; }
.plan-chip:hover { outline: 2px solid rgba(255,255,255,.16); }
.plan-chip::before { content: "~"; flex: none; color: currentColor; font-size: 16px; font-weight: 900; line-height: 1; }
.plan-chip.throwing, .plan-chip.medium { background: var(--blue-soft); color: var(--blue); }
.plan-chip.low, .plan-chip.recovery { background: var(--green-soft); color: var(--green); }
.plan-chip.day-after { background: rgba(25, 164, 211, .28); color: #7edcf4; }
.plan-chip.day-before { background: rgba(239, 113, 52, .28); color: #ff9a63; }
.plan-chip.day-on { background: rgba(255, 209, 87, .24); color: #ffe087; }
.plan-chip.day-of { background: rgba(72, 166, 48, .3); color: #9be57d; }
.plan-chip.mound-prep-only { background: rgba(228,77,77,.25); color: #ff8a8a; }
.plan-chip.touch-feel { background: var(--gold-soft); color: var(--gold); }
.plan-chip.strength, .plan-chip.lifting { background: var(--green-soft); color: var(--green); }
.plan-chip.high { background: var(--red-soft); color: var(--red); }
.plan-chip.bullpen, .plan-chip.bullpen-side, .plan-chip.live { background: rgba(72, 166, 48, .3); color: #9be57d; }
.plan-chip.long-toss, .plan-chip.note { background: var(--gold-soft); color: var(--gold); }
.plan-chip.off { background: rgba(151, 154, 167, .2); color: #9fa3af; }
.plan-chip.tool-neutral { background: var(--tool-neutral-bg); color: var(--tool-neutral-ink); }
.plan-chip.tool-red { background: var(--tool-red-bg); color: var(--tool-red-ink); }
.plan-chip.tool-green { background: var(--tool-green-bg); color: var(--tool-green-ink); }
.plan-chip.tool-blue { background: var(--tool-blue-bg); color: var(--tool-blue-ink); }
.plan-chip.tool-dark { background: var(--tool-dark-bg); color: var(--tool-dark-ink); }
.plan-chip.tool-gold { background: var(--tool-gold-bg); color: var(--tool-gold-ink); }
.plan-chip.strength::before, .plan-chip.lifting::before { content: "x"; }
.plan-chip.off::before { content: "-"; }
.plan-chip span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.plan-chip strong { flex: none; }
.quick-add { justify-self: center; width: 24px; height: 24px; border: 0; border-radius: 50%; background: transparent; color: #67717c; font-size: 18px; }
.quick-add:hover { background: rgba(255,255,255,.07); color: var(--ink); }

.placeholder { min-height: 420px; color: var(--muted); }
.placeholder h2 { margin-bottom: 8px; color: var(--ink); }
.reports-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, 360px); gap: 18px; align-items: start; }
.reports-main, .report-upload { border: 1px solid var(--line); border-radius: 12px; background: rgba(18, 25, 24, .9); }
.reports-main { padding: 18px; }
.report-header { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 16px; }
.report-header p { margin-top: 4px; color: var(--muted); font-weight: 720; }
.report-player-box { min-width: 235px; }
.report-list { display: grid; gap: 10px; }
.report-row { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 14px; border: 1px solid var(--line-soft); border-radius: 8px; background: rgba(255,255,255,.035); }
.report-row strong, .report-row span { display: block; }
.report-row span { margin-top: 4px; color: var(--muted); font-size: 13px; }
.report-actions { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; }
.report-link, .report-actions button { min-height: 36px; padding: 8px 13px; border: 0; border-radius: 8px; background: var(--brand-soft); color: #d7c8ff; font-weight: 820; text-decoration: none; }
.report-actions button { background: var(--red-soft); color: var(--red); }
.report-preview-panel { position: fixed; inset: 0; z-index: 20; display: none; padding: 18px; background: rgba(4, 8, 9, .72); }
.report-preview-panel.is-open { display: grid; place-items: center; }
.report-preview-card { display: grid; grid-template-rows: auto 1fr; width: min(1180px, 100%); height: min(920px, calc(100vh - 36px)); overflow: hidden; border: 1px solid var(--line); border-radius: 14px; background: #111817; box-shadow: 0 20px 70px rgba(0,0,0,.45); }
.report-preview-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 16px; border-bottom: 1px solid var(--line); }
.report-preview-head p { color: #d7c8ff; font-size: 12px; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.report-preview-actions { display: flex; align-items: center; gap: 10px; }
.report-download-button { display: inline-flex; align-items: center; min-height: 42px; padding: 0 16px; border-radius: 8px; background: var(--brand); color: #f4efff; font-weight: 820; text-decoration: none; }
#report-preview-frame { width: 100%; height: 100%; border: 0; background: #fff; }
.report-upload { display: grid; gap: 12px; padding: 18px; }
.upload-field { display: grid; gap: 7px; color: var(--muted); font-size: 13px; font-weight: 780; }
.upload-field input, .upload-field select { width: 100%; min-height: 44px; padding: 0 12px; border: 1px solid var(--line); border-radius: 8px; background: rgba(255,255,255,.04); color: var(--ink); }
.upload-field input[type="file"] { padding: 10px 12px; }
.upload-note { min-height: 20px; color: #d7c8ff; font-weight: 760; }
.library-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, 420px); gap: 16px; align-items: start; }
.library-panel { display: grid; gap: 12px; padding: 16px; border: 1px solid var(--line); border-radius: 12px; background: rgba(18, 25, 24, .9); }
.library-head { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.library-head p { margin-top: 4px; color: var(--muted); font-weight: 720; }
.library-panel textarea { width: 100%; min-height: 340px; padding: 13px 14px; border: 1px solid rgba(255,255,255,.08); border-radius: 8px; background: rgba(255,255,255,.05); color: var(--ink); line-height: 1.45; resize: vertical; outline: 0; }
.drill-library-list { display: grid; gap: 8px; }
.drill-library-item { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 44px; padding: 8px 10px 8px 12px; border: 1px solid rgba(255,255,255,.06); border-left: 4px solid var(--brand); border-radius: 8px; background: rgba(45, 43, 58, .82); }
.drill-library-item strong { min-width: 0; overflow-wrap: anywhere; color: var(--ink); }
.drill-library-item button { min-height: 30px; padding: 0 10px; border: 0; border-radius: 6px; background: var(--red-soft); color: var(--red); font-size: 12px; font-weight: 820; }
.day-panel { position: fixed; inset: 0; display: none; justify-content: flex-end; background: rgba(4, 8, 9, .62); padding: 18px; }
.day-panel.is-open { display: flex; }
.panel-card { width: min(860px, 100%); max-height: calc(100vh - 36px); overflow: auto; padding: 18px; border: 1px solid var(--line); border-radius: 14px; background: #111817; box-shadow: 0 20px 70px rgba(0,0,0,.45); }
.login-card { align-self: center; margin: auto; }
.panel-head { display: flex; justify-content: space-between; gap: 16px; margin-bottom: 14px; }
.panel-head p { color: #d7c8ff; font-size: 12px; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.panel-actions { display: flex; align-items: center; gap: 10px; }
.plan-section { display: grid; gap: 8px; margin-bottom: 12px; }
.section-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; color: #a4aab6; font-size: 12px; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.section-head span { color: var(--muted); letter-spacing: 0; text-transform: none; }
.panel-drills { display: grid; gap: 8px; }
.pitching-plan-table { display: grid; overflow-x: auto; overflow-y: hidden; border: 1px solid rgba(255,255,255,.07); border-radius: 12px; background: rgba(45, 43, 58, .72); }
.pitching-plan-row { display: grid; grid-template-columns: minmax(150px, 1fr) minmax(120px, .72fr) minmax(180px, 1fr) minmax(180px, 1fr) minmax(70px, .4fr) minmax(82px, .46fr); min-width: 860px; align-items: stretch; border-top: 1px solid rgba(255,255,255,.06); }
.pitching-plan-table.is-player .pitching-plan-row { grid-template-columns: minmax(150px, 1fr) minmax(120px, .72fr) minmax(180px, 1fr) minmax(180px, 1fr) minmax(70px, .4fr); min-width: 760px; }
.pitching-plan-row:first-child { border-top: 0; }
.pitching-plan-row > * { display: flex; align-items: center; min-width: 0; padding: 11px 12px; border-left: 1px solid rgba(255,255,255,.055); color: #c1c8ca; overflow-wrap: anywhere; }
.pitching-plan-row > *:first-child { border-left: 0; }
.pitching-plan-row strong { color: var(--ink); font-size: 14px; line-height: 1.2; }
.pitching-plan-row span { font-size: 13px; line-height: 1.25; }
.pitching-plan-head { background: rgba(255,255,255,.06); }
.pitching-plan-head span { color: #a4aab6; font-size: 11px; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.pitching-plan-row.day-after { box-shadow: inset 4px 0 0 #19a4d3; }
.pitching-plan-row.day-before { box-shadow: inset 4px 0 0 #ef7134; }
.pitching-plan-row.day-of { box-shadow: inset 4px 0 0 #48a630; }
.pitching-plan-row.strength, .pitching-plan-row.lifting { box-shadow: inset 4px 0 0 var(--green); }
.pitching-plan-row.off { box-shadow: inset 4px 0 0 #9fa3af; }
.pitching-plan-actions { justify-content: center; }
.pitching-plan-actions button { min-height: 34px; padding: 0 11px; border: 0; border-radius: 8px; background: var(--red-soft); color: var(--red); font-size: 12px; font-weight: 820; }
.prethrow-list { display: grid; gap: 8px; }
.prethrow-row { display: grid; grid-template-columns: minmax(150px, 1fr) 32px 68px repeat(4, minmax(68px, auto)) auto; gap: 7px; align-items: center; min-height: 48px; padding: 7px 10px; border: 1px solid rgba(255,255,255,.035); border-radius: 8px; background: rgba(45, 43, 58, .8); }
.prethrow-name { display: grid; gap: 3px; }
.prethrow-name strong { color: var(--ink); }
.prethrow-name em { color: var(--muted); font-size: 12px; font-style: normal; font-weight: 760; }
.prethrow-row span, .mini-icon, .mini-video { display: grid; place-items: center; min-height: 30px; padding: 0 8px; border: 1px solid rgba(255,255,255,.05); border-radius: 8px; background: rgba(255,255,255,.06); color: #c1c8ca; font-size: 12px; font-weight: 760; text-decoration: none; }
.prethrow-row span small { display: block; color: var(--muted); font-size: 9px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.prethrow-row span.is-filled { background: var(--cell-fill); color: #fff; text-shadow: 0 1px 2px rgba(0,0,0,.45); }
.prethrow-row span.is-filled small { color: rgba(255,255,255,.82); }
.mini-icon { border: 0; color: var(--muted); }
.mini-video { color: var(--blue); }
.remove-mini { min-height: 30px; padding: 0 9px; border: 0; border-radius: 8px; background: var(--red-soft); color: var(--red); font-size: 12px; font-weight: 820; }
.throwing-card { overflow: hidden; border: 1px solid rgba(255,255,255,.05); border-radius: 10px; background: rgba(45, 43, 58, .8); }
.throwing-card.day-after { border-left: 4px solid #19a4d3; }
.throwing-card.day-before { border-left: 4px solid #ef7134; }
.throwing-card.day-of { border-left: 4px solid #48a630; }
.movement-prep-card { outline: 1px solid rgba(215, 200, 255, .18); }
.throwing-card-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 10px; border-bottom: 1px solid rgba(255,255,255,.05); }
.throwing-card-head strong { display: flex; align-items: center; gap: 10px; }
.throwing-card-head button { border: 0; background: transparent; color: var(--red); font-weight: 820; }
.throwing-icon { display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: var(--brand-soft); color: #d7c8ff; font-size: 15px; font-weight: 900; }
.throwing-card-body { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; padding: 9px 10px; }
.throwing-card-body div { display: grid; gap: 4px; min-width: 0; }
.throwing-card-body span { color: #a4aab6; font-size: 9px; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.throwing-card-body strong { min-height: 32px; padding: 8px; border: 1px solid rgba(255,255,255,.08); border-radius: 8px; background: rgba(255,255,255,.07); color: var(--ink); font-size: 13px; line-height: 1.2; overflow-wrap: anywhere; }
.throwing-note { grid-column: 1 / -1; }
.video-link { display: inline-block; margin-top: 7px; color: var(--blue); font-size: 12px; font-weight: 850; text-decoration: none; }
.video-link:hover { text-decoration: underline; }
.empty-state { padding: 12px; border: 1px dashed var(--line); border-radius: 8px; color: var(--muted); }
.coach-sheet { display: grid; gap: 9px; margin: 0 0 12px; padding: 12px; border: 1px solid var(--line); border-radius: 12px; background: rgba(23, 26, 34, .78); }
.coach-sheet-head { display: flex; align-items: end; justify-content: space-between; gap: 12px; }
.coach-sheet-head span, .coach-sheet-select span { display: block; color: #a4aab6; font-size: 10px; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.coach-sheet-head strong { display: block; margin-top: 3px; color: var(--ink); font-size: 16px; }
.coach-sheet-select { display: grid; gap: 5px; min-width: 180px; }
.coach-sheet-select select { min-height: 36px; padding: 0 10px; border: 1px solid rgba(255,255,255,.08); border-radius: 8px; background: rgba(255,255,255,.07); color: var(--ink); }
.coach-sheet-boxes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.coach-sheet-box { display: grid; grid-template-columns: 26px minmax(0, 1fr); grid-template-rows: auto auto; gap: 2px 8px; align-items: center; min-height: 62px; padding: 8px 10px; border: 1px solid rgba(255,255,255,.06); border-left: 4px solid #7edcf4; border-radius: 8px; background: rgba(45, 43, 58, .82); color: var(--ink); text-align: left; }
.coach-sheet-box:hover { outline: 2px solid rgba(255,255,255,.12); }
.coach-sheet-box span { grid-row: 1 / 3; display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: var(--brand-soft); color: #d7c8ff; font-size: 12px; font-weight: 900; }
.coach-sheet-box strong { overflow: hidden; color: var(--ink); font-size: 13px; line-height: 1.15; text-overflow: ellipsis; white-space: nowrap; }
.coach-sheet-box em { color: var(--muted); font-size: 10px; font-style: normal; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.coach-sheet-box.movement-prep-box { border-left-color: #d7c8ff; background: rgba(82, 35, 152, .22); }
.coach-sheet-box.is-added { opacity: .68; }
.coach-sheet-box.is-added em { color: var(--green); }
.coach-sheet-choice { cursor: default; }
.coach-sheet-choice-actions { display: grid; grid-column: 2; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5px; }
.coach-sheet-choice-actions button { min-height: 26px; padding: 0 7px; border: 1px solid rgba(255,255,255,.08); border-radius: 6px; background: rgba(255,255,255,.07); color: var(--ink); font-size: 11px; font-weight: 850; }
.coach-sheet-choice-actions button:hover { outline: 2px solid rgba(255,255,255,.12); }
.coach-sheet-choice-actions button.is-added { color: var(--green); opacity: .78; }
.coach-sheet-plyo { cursor: default; }
.coach-sheet-plyo-controls { display: grid; grid-column: 2; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 5px; }
.coach-sheet-plyo-controls select, .coach-sheet-plyo-controls input, .coach-sheet-plyo-controls button { min-height: 26px; min-width: 0; border: 1px solid rgba(255,255,255,.08); border-radius: 6px; background: rgba(255,255,255,.07); color: var(--ink); font-size: 11px; font-weight: 850; }
.coach-sheet-plyo-controls select, .coach-sheet-plyo-controls input { width: 100%; padding: 0 6px; }
.coach-sheet-plyo-controls [data-coach-sheet-plyo-select] { grid-column: span 2; }
.coach-sheet-plyo-controls [data-coach-sheet-plyo-ball] { grid-column: span 2; }
.coach-sheet-plyo-controls button { padding: 0 8px; }
.coach-sheet-plyo-controls [data-coach-sheet-plyo-add] { grid-column: span 2; }
.coach-sheet-plyo-controls button:hover { outline: 2px solid rgba(255,255,255,.12); }
.coach-sheet-add { min-height: 38px; }
.add-drill-form { display: grid; gap: 9px; margin-top: 10px; padding: 12px; border: 1px solid var(--line); border-radius: 12px; background: rgba(30, 30, 42, .72); }
.form-section-title { padding: 0 0 4px; color: var(--ink); font-size: 22px; font-weight: 900; text-align: center; }
.plan-builder-top { display: grid; grid-template-columns: minmax(220px, 1fr) auto; gap: 10px; align-items: end; padding-bottom: 10px; border-bottom: 1px solid rgba(255,255,255,.07); }
.focus-field select { min-height: 44px; border-color: rgba(215,200,255,.22); background: rgba(82,35,152,.18); color: #f4efff; font-size: 18px; font-weight: 900; }
.focus-custom-input { margin-top: 8px; min-height: 44px; }
.draft-row-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-top: 4px; }
.draft-row-head .form-section-title { padding: 0; text-align: left; }
.draft-row-list { display: grid; gap: 8px; }
.draft-row { display: grid; grid-template-columns: minmax(180px, 1.25fr) minmax(112px, .72fr) minmax(132px, .82fr) minmax(136px, .82fr) minmax(58px, .36fr) minmax(58px, .36fr) minmax(150px, 1fr) minmax(150px, 1fr) auto; gap: 8px; align-items: end; padding: 10px; border: 1px solid rgba(255,255,255,.07); border-radius: 10px; background: rgba(255,255,255,.035); }
.remove-draft-row { min-width: 86px; color: #e96969; }
.draft-empty { margin: 0; }
.builder-field { display: grid; gap: 5px; }
.builder-field strong { color: #a4aab6; font-size: 11px; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.builder-field select, .builder-field input, .builder-field textarea { width: 100%; min-height: 38px; padding: 0 11px; border: 1px solid rgba(255,255,255,.08); border-radius: 8px; background: rgba(255,255,255,.07); color: var(--ink); outline: 0; }
.builder-field textarea { min-height: 60px; padding-top: 9px; resize: vertical; }
.builder-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.tool-pill,.environment-pill { display: inline-flex; align-items: center; width: fit-content; min-height: 30px; padding: 5px 10px; border: 0; border-radius: 12px; font-size: 15px; }
.tool-pill.tool-neutral,.environment-pill { background: var(--tool-neutral-bg); color: var(--tool-neutral-ink); }
.tool-pill.tool-red { background: var(--tool-red-bg); color: var(--tool-red-ink); }
.tool-pill.tool-green { background: var(--tool-green-bg); color: var(--tool-green-ink); }
.tool-pill.tool-blue { background: var(--tool-blue-bg); color: var(--tool-blue-ink); }
.tool-pill.tool-dark { background: var(--tool-dark-bg); color: var(--tool-dark-ink); }
.tool-pill.tool-gold { background: var(--tool-gold-bg); color: var(--tool-gold-ink); }
.tool-pill.plyo-weight-pill { background: var(--tool-blue-bg); color: var(--tool-blue-ink); }
.tool-pill.plyo-color-pill { background: var(--plyo-color, var(--tool-blue-bg)); color: #111; box-shadow: inset 0 0 0 1px rgba(255,255,255,.32); }
.plan-row-table { display: grid; overflow-x: auto; overflow-y: hidden; border: 1px solid rgba(255,255,255,.07); border-radius: 12px; background: rgba(45, 43, 58, .72); }
.plan-row { display: grid; grid-template-columns: minmax(145px, 1.1fr) minmax(100px, .7fr) minmax(108px, .74fr) minmax(112px, .76fr) minmax(52px, .34fr) minmax(52px, .34fr) minmax(132px, 1fr) minmax(78px, .52fr) minmax(142px, .75fr); gap: 8px; align-items: center; min-height: 54px; padding: 9px 10px; border-top: 1px solid rgba(255,255,255,.06); }
.plan-row-table.is-player .plan-row { grid-template-columns: minmax(145px, 1.1fr) minmax(100px, .7fr) minmax(108px, .74fr) minmax(112px, .76fr) minmax(52px, .34fr) minmax(52px, .34fr) minmax(132px, 1fr) minmax(78px, .52fr); }
.plan-row:first-child { border-top: 0; }
.plan-row-head { min-height: 38px; background: rgba(255,255,255,.045); color: #a4aab6; font-size: 10px; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.plan-row strong, .plan-row span { min-width: 0; }
.plan-row strong { color: var(--ink); overflow-wrap: anywhere; }
.plan-row span { color: #c1c8ca; font-size: 13px; font-weight: 760; }
.plan-row button { min-height: 32px; padding: 0 10px; border: 0; border-radius: 8px; font-size: 12px; font-weight: 850; }
.plan-row-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
.plan-row .edit-plan-row { background: rgba(126, 220, 244, .14); color: #7edcf4; }
.plan-row .remove-plan-row { background: var(--red-soft); color: var(--red); }
.plan-row .video-link { margin: 0; }
.plan-row .tool-pill { min-height: 28px; font-size: 12px; }
.login-field { display: grid; gap: 7px; margin-bottom: 12px; color: var(--muted); font-size: 13px; font-weight: 780; }
.login-field input { width: 100%; height: 44px; padding: 0 12px; border: 1px solid var(--line); border-radius: 8px; background: rgba(255,255,255,.04); color: var(--ink); }
.login-error { min-height: 20px; margin-bottom: 10px; color: #e96969; font-weight: 760; }
.print-export { display: none; }

@media (max-width: 900px) {
  .app-frame { grid-template-columns: 1fr; border-radius: 0; }
  .app-frame, .main-panel { width: 100%; max-width: 100%; overflow-x: hidden; }
  .page-top { align-items: stretch; flex-direction: column; min-height: 0; padding: 16px; }
  .page-top .ghost-button { width: 100%; }
  .view { padding: 18px 14px 24px; }
  .sidebar { min-height: auto; border-right: 0; border-bottom: 1px solid var(--line); }
  .program { min-height: 68px; padding: 14px 16px; }
  .nav-list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; padding: 12px; }
  .nav-item { min-height: 42px; padding: 0 12px; font-size: 15px; }
  .nav-section { font-size: 16px; }
  .nav-subnav { grid-column: 1 / -1; grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 0 0 4px; }
  .nav-subitem { min-height: 36px; font-size: 13px; }
  .sidebar-footer { display: none; }
  .toolbar, .planner-actions, .player-header { align-items: stretch; flex-direction: column; min-width: 0; }
  .toolbar > *, .planner-actions > *, .player-header > * { max-width: 100%; }
  .toolbar .primary-button,
  .planner-actions > button,
  .month-control,
  .segment-control { width: 100%; }
  .month-control, .segment-control { min-width: 0; max-width: 100%; }
  .month-control strong { flex: 1; min-width: 0; }
  .segment-control button { flex: 1; min-width: 0; padding: 0 8px; }
  .action-spacer { display: none; }
  .filters { flex-direction: column; align-items: stretch; }
  .search-box, .select-box { width: 100%; min-width: 0; }
  .player-header { margin-bottom: 16px; }
  .player-select-box { width: 100%; min-width: 0; margin-left: 0; }
  .calendar-card { width: 100%; max-width: 100%; overflow: hidden; }
  .weekday-row, .month-grid { width: 100%; grid-template-columns: repeat(7, minmax(0, 1fr)); min-width: 0; }
  .weekday-row span { min-width: 0; padding: 9px 0; font-size: 10px; letter-spacing: 0; }
  .month-grid { grid-auto-rows: minmax(82px, auto); }
  .day-cell { min-width: 0; min-height: 82px; padding: 24px 4px 5px; }
  .date-num { left: 6px; top: 6px; font-size: 12px; }
  .chip-stack { gap: 4px; }
  .day-focus-wrap { min-height: 48px; }
  .day-focus-icon { width: 100%; min-height: 48px; padding: 5px 3px; border-radius: 9px; }
  .day-focus-icon span { font-size: 10px; line-height: 1.05; }
  .day-focus-icon strong { font-size: 8px; letter-spacing: 0; }
  .plan-chip { min-height: 21px; gap: 3px; padding: 0 4px; border-radius: 4px; font-size: 10px; line-height: 1.05; }
  .plan-chip::before { display: none; }
  .plan-chip span { white-space: normal; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
  .plan-chip strong { display: none; }
  .quick-add { width: 22px; height: 22px; }
  .reports-layout { grid-template-columns: 1fr; }
  .library-layout { grid-template-columns: 1fr; }
  .library-head { align-items: stretch; flex-direction: column; }
  .library-panel { padding: 14px; }
  .library-panel textarea { min-height: 220px; }
  .report-header, .report-row { align-items: flex-start; flex-direction: column; }
  .report-player-box { width: 100%; min-width: 0; }
  .report-actions, .report-actions button, .report-link { width: 100%; }
  .day-panel { justify-content: stretch; overflow-x: hidden; padding: 0; }
  .panel-card { position: relative; width: 100vw; min-width: 0; max-width: 100vw; max-height: 100vh; max-height: 100dvh; overflow-x: hidden; padding: 12px 10px 22px; border-width: 0; border-radius: 0; }
  .panel-card > *, .add-drill-form, .draft-row-list, .draft-row, .plan-row-table, .plan-row { min-width: 0; max-width: 100%; }
  .panel-head { align-items: stretch; flex-direction: column; gap: 10px; margin-bottom: 10px; padding-right: 42px; }
  .panel-head h2 { padding-right: 4px; font-size: 21px; line-height: 1.05; }
  .panel-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: stretch; width: 100%; min-width: 0; max-width: 100%; gap: 8px; padding-right: 0; }
  .panel-actions button { width: 100%; min-width: 0; min-height: 38px; padding-inline: 8px; font-size: 13px; }
  .panel-actions .icon-button { position: absolute; top: 10px; right: 10px; width: 36px; height: 36px; min-height: 36px; }
  .add-drill-form { gap: 8px; margin-top: 8px; padding: 10px; border-radius: 10px; }
  .form-section-title { font-size: 18px; line-height: 1.15; }
  .focus-field select { min-height: 40px; font-size: 16px; }
  .primary-button, .ghost-button { min-height: 38px; }
  .panel-drills { grid-template-columns: 1fr; gap: 7px; }
  .section-head { font-size: 11px; letter-spacing: .1em; }
  .plan-section { gap: 6px; margin-bottom: 8px; }
  .plan-builder-top { grid-template-columns: 1fr; }
  .draft-row-head { align-items: stretch; flex-direction: column; gap: 8px; }
  .draft-row-head .ghost-button { width: 100%; }
  .draft-row { grid-template-columns: 1fr; gap: 7px; padding: 8px; border-radius: 9px; }
  .builder-field { gap: 4px; }
  .builder-field strong { font-size: 10px; letter-spacing: .1em; }
  .builder-field select, .builder-field input, .builder-field textarea { min-height: 36px; padding-inline: 10px; font-size: 14px; }
  .builder-field textarea { min-height: 52px; }
  .remove-draft-row { width: 100%; }
  .tool-pill,.environment-pill { width: 100%; }
  .empty-state { padding: 10px; font-size: 14px; line-height: 1.35; overflow-wrap: anywhere; white-space: normal; }
  .draft-empty { font-size: 0; }
  .draft-empty::before { content: "Add rows here before pushing to the plan."; font-size: 13px; }
  .plan-row-table { overflow: visible; border-radius: 10px; background: transparent; border: 0; gap: 7px; }
  .plan-row-head { display: none; }
  .plan-row,
  .plan-row-table.is-player .plan-row,
  .plan-row-table.is-coach .plan-row { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px 8px; min-width: 0; min-height: 0; padding: 10px; border: 1px solid rgba(255,255,255,.07); border-radius: 10px; background: rgba(45, 43, 58, .78); }
  .plan-row strong { grid-column: 1 / -1; font-size: 20px; line-height: 1.05; overflow-wrap: anywhere; }
  .plan-row span { display: grid; gap: 3px; align-content: start; color: #d3d9dc; font-size: 13px; line-height: 1.15; }
  .plan-row span[data-label]::before { content: attr(data-label); color: #89939d; font-size: 9px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
  .plan-row span[data-label="Environment"] { grid-column: 1 / -1; order: 1; }
  .plan-row span[data-label="Tool"], .plan-row span[data-label="Weight"] { order: 2; }
  .plan-row span[data-label="Ball Type"], .plan-row span[data-label="Color"] { order: 3; }
  .plan-row span[data-label="Sets"] { order: 4; }
  .plan-row span[data-label="Reps"] { order: 5; }
  .plan-row span[data-label="Notes"] { grid-column: 1 / -1; order: 6; }
  .plan-row span[data-label="Video"] { grid-column: auto; order: 7; }
  .plan-row-actions { grid-column: 1 / -1; grid-template-columns: repeat(2, minmax(0, 1fr)); order: 8; }
  .plan-row button { width: 100%; min-height: 34px; }
  .plan-row .tool-pill { width: fit-content; max-width: 100%; min-height: 25px; padding: 4px 9px; border-radius: 9px; font-size: 12px; }
  .plan-row .video-link { margin-top: 0; font-size: 13px; }
  .pitching-plan-table { overflow: visible; border-radius: 10px; background: transparent; border: 0; gap: 8px; }
  .pitching-plan-row, .pitching-plan-table.is-player .pitching-plan-row { grid-template-columns: 1fr; min-width: 0; overflow: hidden; border: 1px solid rgba(255,255,255,.07); border-radius: 10px; background: rgba(45, 43, 58, .72); }
  .pitching-plan-head { display: none; }
  .pitching-plan-row > * { border-left: 0; border-top: 1px solid rgba(255,255,255,.055); padding: 10px 12px; }
  .pitching-plan-row > *:first-child { border-top: 0; }
  .pitching-plan-actions { justify-content: stretch; }
  .pitching-plan-actions button { width: 100%; }
  .throwing-card-head { align-items: flex-start; }
  .throwing-card-head strong { min-width: 0; line-height: 1.2; }
  .throwing-card-body { grid-template-columns: 1fr; }
  .coach-sheet-head { align-items: stretch; flex-direction: column; }
  .coach-sheet-select { width: 100%; }
  .coach-sheet-boxes { grid-template-columns: 1fr; }
  .prethrow-row { grid-template-columns: 1fr 32px 68px; }
  .builder-grid { grid-template-columns: 1fr; }
  #plyo-fields, #water-bag-fields { grid-column: 1 / -1; grid-template-columns: 1fr; }
}

@media (max-width: 430px) {
  h1 { font-size: 22px; }
  h2 { font-size: 20px; }
  .program strong { font-size: 15px; }
  .program span { font-size: 13px; }
  .nav-list { grid-template-columns: 1fr 1fr; }
  .planner-actions { gap: 9px; }
  .month-grid { grid-auto-rows: minmax(76px, auto); }
  .day-cell { min-height: 76px; padding-inline: 3px; }
  .plan-chip { min-height: 19px; font-size: 9px; }
  .day-focus-icon span { font-size: 9px; }
  .library-head .primary-button,
  .library-head .ghost-button { width: 100%; }
}

@media print {
  @page { size: letter portrait; margin: .45in; }
  body { background: #fff !important; color: #111; }
  body.is-printing-plan .app-frame,
  body.is-printing-plan .day-panel,
  body.is-printing-plan .report-preview-panel { display: none !important; }
  body.is-printing-plan .print-export { display: block; }
  .print-document { color: #111; font-family: Inter, Arial, sans-serif; }
  .print-header { display: flex; justify-content: space-between; gap: 24px; align-items: flex-start; padding-bottom: 14px; border-bottom: 2px solid #191919; }
  .print-header p { margin: 0 0 3px; color: #522398; font-size: 10px; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
  .print-header h1 { margin: 0; color: #111; font-size: 26px; line-height: 1.05; }
  .print-header span { display: block; margin-top: 5px; color: #555; font-size: 12px; font-weight: 700; }
  .print-header > strong { color: #111; font-size: 14px; text-align: right; }
  .print-days { display: grid; gap: 12px; margin-top: 14px; }
  .print-day { break-inside: avoid; border: 1px solid #d8dbe2; border-radius: 8px; overflow: hidden; }
  .print-day-head { display: flex; justify-content: space-between; gap: 10px; padding: 9px 11px; background: #f1f2f6; border-bottom: 1px solid #d8dbe2; }
  .print-day-head strong { color: #111; font-size: 14px; }
  .print-day-head span { color: #565d68; font-size: 12px; font-weight: 800; text-transform: uppercase; }
  .print-plan-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; padding: 10px; }
  .print-plan-columns h3 { margin: 0 0 7px; color: #565d68; font-size: 10px; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
  .print-plan-table { width: 100%; border: 1px solid #d8dbe2; border-collapse: collapse; table-layout: fixed; background: #fff; }
  .print-plan-table th, .print-plan-table td { padding: 6px 7px; border: 1px solid #e1e3e8; color: #111; font-size: 10px; line-height: 1.25; text-align: left; vertical-align: top; }
  .print-plan-table th { background: #f7f8fb; color: #69707b; font-size: 7px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
  .print-plan-table td strong { font-size: 11px; }
  .print-prethrow-table th:nth-child(1), .print-prethrow-table td:nth-child(1) { width: 24%; }
  .print-prethrow-table th:nth-child(2), .print-prethrow-table td:nth-child(2) { width: 17%; }
  .print-prethrow-table th:nth-child(3), .print-prethrow-table td:nth-child(3),
  .print-prethrow-table th:nth-child(4), .print-prethrow-table td:nth-child(4) { width: 14%; }
  .print-prethrow-table th:nth-child(5), .print-prethrow-table td:nth-child(5) { width: 17%; }
  .print-prethrow-table th:nth-child(6), .print-prethrow-table td:nth-child(6) { width: 14%; }
  .print-throwing-table th:nth-child(1), .print-throwing-table td:nth-child(1) { width: 25%; }
  .print-throwing-table th:nth-child(2), .print-throwing-table td:nth-child(2),
  .print-throwing-table th:nth-child(3), .print-throwing-table td:nth-child(3) { width: 18%; }
  .print-throwing-table th:nth-child(4), .print-throwing-table td:nth-child(4) { width: 39%; }
  .print-swatch-cell { background: var(--print-fill); color: #fff !important; font-weight: 850; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .print-empty { margin: 0; padding: 9px; border: 1px dashed #d8dbe2; border-radius: 7px; color: #69707b; font-size: 11px; }
  .print-document.is-week { min-height: calc(8.5in - .8in); display: grid; grid-template-rows: auto 1fr; }
  .print-week-calendar { display: grid; grid-template-rows: auto 1fr; min-height: 0; margin-top: 18px; border: 1px solid #d8dbe2; border-radius: 8px; overflow: hidden; }
  .print-weekday-row { display: grid; grid-template-columns: repeat(7, 1fr); background: #f1f2f6; border-bottom: 1px solid #d8dbe2; }
  .print-weekday-row span { padding: 10px 8px; color: #565d68; font-size: 11px; font-weight: 900; letter-spacing: .12em; text-align: center; text-transform: uppercase; }
  .print-week-grid { display: grid; grid-template-columns: repeat(7, 1fr); min-height: 100%; }
  .print-week-cell { display: grid; grid-template-rows: auto 1fr; min-height: 5.35in; padding: 10px; border-right: 1px solid #d8dbe2; background: #fff; }
  .print-week-cell:last-child { border-right: 0; }
  .print-week-cell header { display: flex; align-items: baseline; justify-content: space-between; gap: 6px; padding-bottom: 9px; border-bottom: 1px solid #eceef2; }
  .print-week-cell header strong { color: #111; font-size: 22px; line-height: 1; }
  .print-week-cell header span { color: #69707b; font-size: 10px; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
  .print-week-cell ul { display: grid; align-content: start; gap: 8px; margin: 10px 0 0; padding: 0; list-style: none; }
  .print-week-cell li { display: grid; gap: 3px; padding: 8px; border: 1px solid #e1e3e8; border-left: 4px solid #2f8ce6; border-radius: 6px; background: #f9fafc; color: #111; break-inside: avoid; }
  .print-week-cell li.low { border-left-color: #5fb281; }
  .print-week-cell li.medium { border-left-color: #2f8ce6; }
  .print-week-cell li.day-after { border-left-color: #19a4d3; }
  .print-week-cell li.day-before { border-left-color: #ef7134; }
  .print-week-cell li.day-of { border-left-color: #48a630; }
  .print-week-cell li.high,
  .print-week-cell li.bullpen-side,
  .print-week-cell li.live { border-left-color: #48a630; }
  .print-week-cell li.touch-feel { border-left-color: #d0a42d; }
  .print-week-cell li.off { border-left-color: #9fa3af; }
  .print-week-cell li strong { color: #111; font-size: 11px; line-height: 1.2; }
  .print-week-cell li span,
  .print-week-cell li em { color: #565d68; font-size: 10px; font-style: normal; font-weight: 800; line-height: 1.15; }
  .print-week-cell p { margin: 10px 0 0; color: #8b929d; font-size: 11px; font-weight: 750; }
  .print-document.is-day { min-height: calc(11in - .9in); display: grid; grid-template-rows: auto 1fr; }
  .print-document.is-day .print-header { padding-bottom: 18px; }
  .print-document.is-day .print-header h1 { font-size: 34px; }
  .print-document.is-day .print-header p { font-size: 12px; }
  .print-document.is-day .print-header span { font-size: 14px; }
  .print-document.is-day .print-header > strong { font-size: 16px; }
  .print-document.is-day .print-days { min-height: 0; margin-top: 18px; }
  .print-document.is-day .print-day { display: grid; grid-template-rows: auto 1fr; min-height: 100%; }
  .print-document.is-day .print-day-head { padding: 14px 16px; }
  .print-document.is-day .print-day-head strong { font-size: 18px; }
  .print-document.is-day .print-day-head span { font-size: 13px; }
  .print-document.is-day .print-plan-columns { min-height: 100%; gap: 18px; padding: 16px; }
  .print-document.is-day .print-plan-columns h3 { margin-bottom: 10px; font-size: 12px; }
  .print-document.is-day .print-plan-table th,
  .print-document.is-day .print-plan-table td { font-size: 12px; }
  .print-document.is-day .print-plan-table th { padding: 9px 10px; font-size: 8px; }
  .print-document.is-day .print-plan-table td { padding: clamp(10px, calc(42px / var(--print-row-count)), 26px) 10px; }
  .print-document.is-day .print-plan-table td strong { font-size: 13px; }
  .print-document.is-day .print-day.is-roomy .print-plan-columns { gap: 22px; padding: 20px; }
  .print-document.is-day .print-day.is-roomy .print-plan-table td { padding-top: 28px; padding-bottom: 28px; font-size: 13px; }
  .print-document.is-day .print-day.is-roomy .print-plan-table td strong { font-size: 14px; }
  .print-document.is-day .print-day.is-balanced .print-plan-table td { padding-top: 18px; padding-bottom: 18px; }
  .print-document.is-day .print-day.is-dense .print-plan-table td { padding-top: 10px; padding-bottom: 10px; }
}
