/* Shared practice layouts; content and advertising remain separate modules. */
/* All button states are explicit so secondary buttons cannot inherit primary hover colours. */
.button,.button:visited,.button:hover,.button:focus,.button:active { color:#08111d; white-space:normal; line-height:1.4; max-width:100%; height:auto; }
.button.secondary,.button.secondary:visited { background:#07172b; color:#f7f9fc; border:1px solid #647c98; box-shadow:none; }
.button.secondary:hover,.button.secondary:focus { background:#18314c; color:#f7f9fc; border-color:#dfff00; }
.button.secondary:active { background:#243f5c; color:#f7f9fc; }
.nav-group { position:relative; }.nav-group summary { cursor:pointer; color:#c0cbd8; font-size:.9rem; padding:6px 0; white-space:nowrap; }
.nav-group.active > summary,.nav-group summary:hover { color:var(--green); }
.nav-submenu { position:absolute; top:calc(100% + 12px); left:0; min-width:245px; padding:10px; background:#07172b; border:1px solid #516681; border-radius:12px; box-shadow:0 12px 36px #0008; display:grid; gap:4px; z-index:20; }
.nav-submenu a { padding:10px 12px; border-radius:6px; }.nav-submenu a:hover { background:#18314c; }
.home-intro { padding:72px 0 62px; }.home-intro h1 { max-width:1080px; font-size:clamp(3rem,6.4vw,6rem); }.home-intro .lead { max-width:760px; }
.home-intro .button-row { flex-wrap:wrap; }.home-intro .button-row a { font-size:.95rem; }
.section-followup { margin:28px 0 0; }.home-app { background:#050e1c; }.home-app .section { padding-top:65px; padding-bottom:65px; }
.app-summary { display:flex; align-items:center; gap:24px; color:#b5c1cf; padding-top:4px; padding-bottom:20px; }.app-summary img { width:70px; height:130px; object-fit:contain; }.app-summary p { max-width:380px; margin:0; }
.home-app .screenshot-grid { display:grid; grid-auto-flow:column; grid-template-columns:none; grid-auto-columns:calc((100% - 44px)/3); gap:22px; overflow-x:auto; scroll-snap-type:x proximity; padding-bottom:12px; }
.home-app .screenshot-card { grid-column:auto; scroll-snap-align:start; }.home-app .screenshot-card .image-frame { aspect-ratio:9/16; }.home-app .screenshot-card img { object-fit:contain; }
.compact-resources { padding-top:50px; padding-bottom:50px; }.compact-resources h2 { font-size:2rem; }.compact-resources li { margin-bottom:12px; }.compact-resources a { text-underline-offset:4px; }
.task-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; margin:22px 0 48px; }
.task-card { display:flex; flex-direction:column; min-width:0; padding:30px; background:var(--navy); border:1px solid var(--line); border-radius:20px; }
.task-card h2 { font-size:2rem; }.task-card > p:not(.eyebrow) { color:#b5c1cf; }.task-card .card-actions { margin-top:auto; padding-top:12px; }.task-card .button { align-self:start; }
.activity-card .card-actions { display:grid; grid-template-columns:1fr; gap:12px; margin-top:12px; }.activity-card .card-actions button { justify-self:start; }
.practice-collections { margin:48px 0; scroll-margin-top:170px; }.resource-guide { max-width:850px; }.resource-guide li { margin-bottom:16px; }.resource-guide h2 { margin-top:36px; font-size:1.8rem; }.guide-action { border-top:1px solid var(--line); padding-top:28px; margin:32px 0; }.guide-action p { margin-top:18px; color:#b5c1cf; }
#print-report { display:none; }
.html-site-map { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 40px; align-items:start; margin:24px 0 48px; }
.html-site-map > section:nth-child(-n+2) { grid-column:1/-1; }
.html-site-map > section:nth-child(2) > ul > li > ul { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px 22px; border-left:0; padding-left:0; list-style:none; }
.html-site-map > section { padding:24px; background:var(--navy); border:1px solid var(--line); border-radius:18px; }.html-site-map h2 { font-size:1.5rem; }.html-site-map ul { margin:12px 0 0; padding-left:20px; }.html-site-map li { margin:9px 0; }.html-site-map ul ul { border-left:1px solid #516681; margin:10px 0 16px; padding-left:22px; }.html-site-map a { text-underline-offset:4px; }.html-site-map a:hover { color:var(--green); }
.practice-page { padding-bottom:64px; }
.practice-page h1 { font-size:clamp(2.4rem,5.8vw,4.7rem); line-height:1.02; max-width:920px; }
.practice-page h2 { font-size:clamp(1.8rem,3vw,2.8rem); }
.practice-page h3 { font-size:1.2rem; line-height:1.3; }
.practice-intro { padding:50px 0 30px; }
.practice-intro .lead { max-width:780px; }
.breadcrumbs { display:flex; flex-wrap:wrap; gap:8px; font-size:.84rem; color:#b5c1cf; margin:24px 0; }
.breadcrumbs a { text-underline-offset:4px; }
.practice-banner { padding:30px; border:1px solid var(--line); border-radius:20px; background:var(--navy); margin:24px 0; }
.practice-banner h2 { margin-bottom:10px; }
.practice-banner p { color:#b5c1cf; }
.player-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; margin-top:28px; }
.player-card { display:block; border:1px solid var(--line); border-radius:18px; padding:24px; background:var(--navy); text-decoration:none; }
.player-card:hover { border-color:var(--green); }
.player-card .player-number { display:block; font-size:2.5rem; color:var(--green); font-weight:800; line-height:1.2; margin-bottom:18px; }
.player-card h3 { margin-bottom:8px; }.player-card p { color:#b5c1cf; margin:0; font-size:.94rem; }
.activity-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; align-items:stretch; margin:24px 0 40px; }
.activity-card { border:1px solid var(--line); background:var(--navy); border-radius:20px; overflow:hidden; display:flex; flex-direction:column; min-width:0; }
.card-copy { padding:24px; display:flex; flex-direction:column; flex:1; }
.card-copy .eyebrow { font-size:.65rem; letter-spacing:.07em; }
.card-copy h3 a { text-decoration:none; }.card-copy h3 a:hover { text-decoration:underline; }
.card-copy > p { color:#b5c1cf; font-size:.94rem; }.card-copy > .tags { color:var(--green); font-size:.78rem; }
.card-copy .equipment { font-size:.78rem; margin-top:auto; }
.card-actions { display:flex; flex-wrap:wrap; gap:14px; align-items:center; }.card-actions a { font-size:.87rem; }
.court-figure { margin:0; width:100%; max-width:380px; }.court-figure svg { display:block; width:100%; height:auto; }
.court-figure.thumbnail { max-width:none; height:220px; background:#0a1c33; padding:10px; }
.court-figure.thumbnail svg { width:100%; height:100%; }
.court-figure text { font-family:Arial,Helvetica,sans-serif; text-anchor:middle; font-weight:bold; }
.target-label { font-size:19px; fill:#e8ff69; paint-order:stroke; stroke:#174a4c; stroke-width:3px; }.player-label { font-size:18px; }.side-label { font-size:12px; fill:#e5f2ef; }
.court-figure figcaption { padding:16px 0; gap:8px; font-size:.86rem; color:#b5c1cf; }
.diagram-legend { font-size:.8rem; }.diagram-legend b { color:var(--green); }.diagram-legend em { color:#91cfff; font-style:normal; }
.filters { padding:24px; background:var(--navy); border:1px solid var(--line); border-radius:20px; display:grid; grid-template-columns:2fr repeat(4,1fr); gap:14px; }
label { display:flex; flex-direction:column; gap:7px; font-size:.88rem; color:#d1dbe6; }
input, select, textarea { font:inherit; color:var(--white); background:#051021; border:1px solid #516681; border-radius:9px; padding:12px; width:100%; min-width:0; }
input:focus-visible,select:focus-visible,textarea:focus-visible { outline:3px solid var(--green); outline-offset:3px; }
select { color-scheme:dark; }input[type=checkbox] { width:20px; height:20px; accent-color:var(--green); }
.check-label { flex-direction:row; align-items:center; gap:10px; }
button.button { border:0; }.secondary { border:1px solid #647c98; border-radius:10px; background:transparent; color:var(--white); padding:10px 16px; }
.secondary:hover { border-color:var(--green); color:var(--green); }button:disabled { opacity:.45; cursor:default; }
.filter-bottom { display:flex; align-items:center; justify-content:space-between; gap:16px; margin:18px 0; }
.muted,.video-note { color:#b5c1cf; }.notice { border-left:3px solid var(--green); background:var(--navy-light); padding:18px 22px; margin:20px 0; scroll-margin-top:180px; }
.notice p:last-child { margin-bottom:0; }.notice:empty { display:none; }.notice button,.notice a { margin:8px 10px 0 0; }
.empty { padding:36px; border:1px dashed #516681; border-radius:18px; grid-column:1/-1; }
.detail-grid { display:grid; grid-template-columns:360px minmax(0,1fr); gap:48px; align-items:start; margin:32px 0; }
.written-instructions li { margin-bottom:12px; padding-left:4px; }.written-instructions h3 { color:var(--green); margin-top:28px; }.written-instructions h3:first-child { margin-top:0; }
.variations { display:grid; grid-template-columns:1fr 1fr; gap:24px; }.editorial { margin:28px 0; color:#b5c1cf; }.editorial summary { cursor:pointer; }
.app-invite { border:1px solid var(--line); background:var(--navy); padding:28px; border-radius:20px; display:flex; gap:28px; align-items:center; margin:40px 0; }.app-invite > div { flex:1; }.app-invite p:last-child { margin-bottom:0; color:#b5c1cf; }.app-invite .button { flex-shrink:0; }
.planner-layout { display:grid; grid-template-columns:300px minmax(0,1fr); gap:32px; align-items:start; margin-top:24px; }
.planner-form { border:1px solid var(--line); border-radius:20px; padding:24px; background:var(--navy); display:grid; gap:16px; }
.planner-form fieldset { border:0; padding:0; margin:0; display:grid; gap:12px; }.planner-form legend { font-size:.85rem; margin-bottom:10px; }.planner-form p { font-size:.82rem; color:#b5c1cf; margin:0; }
.plan-toolbar { display:flex; gap:10px; flex-wrap:wrap; margin:16px 0 24px; }.plan-total { color:var(--green); font-weight:bold; font-size:1.15rem; }.plan-total.over-target { color:#ffd098; }
.session-block { border:1px solid var(--line); border-radius:20px; padding:24px; background:var(--navy); margin-bottom:16px; }
.block-heading { display:flex; gap:16px; align-items:start; }.block-heading h3 { margin:0 0 8px; flex:1; }.block-number { color:var(--green); font-size:.82rem; letter-spacing:.1em; }.block-time { white-space:nowrap; color:var(--green); }
.block-overview { display:grid; grid-template-columns:260px minmax(0,1fr); gap:22px; align-items:center; }.block-overview p { color:#b5c1cf; }.block-overview .court-figure { max-width:260px; }
.session-block summary { font-weight:bold; cursor:pointer; padding:14px 0; }.session-block details { margin-bottom:12px; }
.block-controls { display:flex; gap:10px; flex-wrap:wrap; align-items:end; margin-top:16px; }.block-controls label { max-width:110px; }.block-controls button { padding:9px 12px; font-size:.82rem; }
.transition { color:#b5c1cf; font-size:.82rem; padding:0 12px 16px; }.print-heading { display:none; }
.courtside .site-header,.courtside .site-footer,.courtside .planner-form,.courtside .practice-intro,.courtside .breadcrumbs,.courtside #session-summary,.courtside #planner-notice,.courtside .plan-toolbar,.courtside .consent-panel { display:none !important; }
.courtside .planner-layout { display:block; }.courtside .practice-page { max-width:900px; }.courtside-header { display:flex; justify-content:space-between; align-items:center; gap:12px; margin:24px 0; }
.courtside .session-block { padding:28px; }.courtside .block-overview { grid-template-columns:240px 1fr; }.courtside .block-overview .court-figure { max-width:240px; }.courtside-controls { display:flex; justify-content:space-between; align-items:center; gap:14px; margin-bottom:30px; }
.activity-video { margin:24px 0; }.activity-video video { width:100%; max-height:420px; background:#000; border-radius:12px; }
.copy-fallback textarea { min-height:160px; }.copy-fallback p { margin-top:8px; }
/* Responsive space is reserved only for a mounted preview/future provider slot. Off creates no node. */
.ad-slot { grid-column:1/-1; margin:24px auto; border:1px dashed #647c98; width:min(100%,var(--ad-desktop-width)); height:var(--ad-desktop-height); padding:14px 22px; background:#0c223d; text-align:center; display:flex; flex-direction:column; justify-content:center; overflow:hidden; }
.ad-label { font-size:.65rem; text-transform:uppercase; letter-spacing:.09em; color:#b5c1cf; margin:0 0 8px; }.ad-slot > p:last-child { margin:6px 0 0; font-size:.8rem; color:#b5c1cf; }
.sponsor-card { display:flex; gap:14px; align-items:center; justify-content:center; font-size:.82rem; }.sponsor-card p { margin:0; max-width:230px; }.sponsor-card > span { font-size:.7rem; color:#b5c1cf; }.sponsor-card img { width:48px; height:48px; }.sponsor-card a { font-weight:bold; }
@media(max-width:1050px) { .header-inner { flex-wrap:wrap; gap:12px; padding:16px 0; }.header-inner nav { width:100%; justify-content:flex-start; gap:16px; flex-wrap:wrap; }.activity-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.filters { grid-template-columns:repeat(3,minmax(0,1fr)); }.detail-grid { grid-template-columns:300px minmax(0,1fr); gap:30px; }.block-overview { grid-template-columns:1fr; }.block-overview .court-figure { margin:auto; } }
@media(max-width:760px) { .player-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.planner-layout { grid-template-columns:1fr; }.planner-form { grid-template-columns:1fr 1fr; }.planner-form > button,.planner-form > p,.planner-form fieldset { grid-column:1/-1; }.detail-grid { grid-template-columns:1fr; gap:24px; }.detail-grid > .court-figure { margin:auto; }.app-invite { flex-direction:column; align-items:start; }.filters { grid-template-columns:1fr 1fr; }.filters label:first-child { grid-column:1/-1; }.ad-slot { width:min(100%,var(--ad-mobile-width)); height:var(--ad-mobile-height); margin:24px auto; padding:22px; }.sponsor-card { flex-wrap:wrap; }.sponsor-card > span { width:100%; }.sponsor-card p { width:100%; }.courtside .block-overview { grid-template-columns:1fr; }.courtside .block-overview .court-figure { max-width:300px; margin:auto; } }
@media(max-width:500px) { .activity-grid { grid-template-columns:1fr; }.practice-intro { padding-top:30px; }.practice-page h1 { font-size:2.6rem; }.header-inner nav { gap:12px; }.header-inner nav a { font-size:.78rem; }.header-inner nav .button { padding:8px 12px; }.player-card { padding:18px; }.player-card h3 { font-size:1.05rem; }.player-card p { font-size:.84rem; }.block-overview { grid-template-columns:1fr; }.block-overview .court-figure { max-width:300px; margin:auto; }.block-heading { flex-wrap:wrap; }.variations { grid-template-columns:1fr; gap:0; }.session-block { padding:20px; }.button-row { flex-wrap:wrap; }.planner-form { padding:20px; }.filters { padding:18px; } }
@media print {
  @page { margin:14mm; }
  html, body { background:white !important; color:#111 !important; font-size:10pt; line-height:1.35; }
  .site-header,.site-footer,.skip-link,.consent-panel,.ad-slot,.app-invite,.planner-form,.practice-intro,.breadcrumbs,.plan-toolbar,.block-controls,.video-note,.activity-video,.editorial,.courtside-header,.courtside-controls,#planner-notice,#session-summary,.transition a,.card-actions { display:none !important; }
  .container { width:100%; }.practice-page { padding:0; }.planner-layout { display:block; margin:0; }.print-heading { display:block; }.plan-total { color:#111; }
  .session-block { background:white; color:#111; border:0; padding:0; margin:0; break-before:page; }.session-block:first-child { break-before:auto; }
  .session-block details { display:block; }.session-block summary { display:none; }.written-instructions { color:#111; }.written-instructions h3 { color:#111; margin-top:10px; margin-bottom:7px; break-after:avoid; }.written-instructions p,.written-instructions li { margin-bottom:7px; orphans:3; widows:3; }
  .block-overview { grid-template-columns:220px 1fr; gap:20px; }.block-overview .court-figure { max-width:220px; margin:0; }.block-overview .court-figure figcaption span:not(.diagram-legend) { display:none; }.block-overview p,.block-number,.block-time,.court-figure figcaption span,.muted,.transition { color:#222 !important; }
  .court-figure svg { print-color-adjust:exact; -webkit-print-color-adjust:exact; }.court-figure figcaption { font-size:8pt; padding:4px 0; }.detail-grid { grid-template-columns:210px 1fr; gap:24px; }.detail-grid > .court-figure { max-width:210px; }.detail-grid h3 { font-size:12pt; }.variations { gap:16px; }
  a { color:#111; text-decoration:none; }.transition { padding:8px 0; }.courtside .site-header,.courtside .site-footer { display:none !important; }
}
@media(max-width:760px) {
  .html-site-map { grid-template-columns:1fr; gap:18px; }.html-site-map > section { padding:20px; }
  .html-site-map > section:nth-child(2) > ul > li > ul { grid-template-columns:1fr; }
  .header-inner nav { align-items:start; }.nav-group[open] { flex-basis:100%; order:3; }.nav-submenu { position:static; margin-top:10px; min-width:0; box-shadow:none; }.nav-group summary { font-size:.85rem; }
  .task-grid { grid-template-columns:1fr; }.task-card { padding:24px; }.task-card .card-actions { margin-top:8px; }.home-app .screenshot-grid { grid-auto-columns:84%; }.home-intro { padding:48px 0; }
}
/* App-report reference: A4, 40pt horizontal margins, dark/green wordmark, ruled header/footer. */
@media print {
  @page practice-plan {
    size:A4; margin:40pt 40pt 42pt;
    @top-left { content:'CourtUmpire · Practice Plan'; font-family:Arial,sans-serif; font-size:8pt; color:#333; vertical-align:bottom; padding-bottom:8pt; }
    @bottom-left { content:'CourtUmpire · https://courtumpire.com/'; font-family:Arial,sans-serif; font-size:8pt; color:#333; border-top:0.6pt solid #777; padding-top:6pt; vertical-align:top; }
    @bottom-right { content:'Page ' counter(page) ' of ' counter(pages); font-family:Arial,sans-serif; font-size:8pt; color:#333; border-top:0.6pt solid #777; padding-top:6pt; vertical-align:top; }
  }
  @page practice-plan:first { @top-left { content:none; } }
  body:has(#print-report) > :not(#print-report) { display:none !important; }
  body:has(#print-report) { display:block; min-height:0; page:practice-plan; }
  #print-report { display:block; font:10pt/1.25 Arial,Helvetica,sans-serif; color:#111; page:practice-plan; }
  .report-header { position:relative; height:78pt; margin-bottom:14pt; border-bottom:0.8pt solid #555; break-inside:avoid; break-after:avoid; }
  .report-brand { display:flex; align-items:center; gap:8pt; }.report-brand img { width:34pt; height:34pt; object-fit:contain; }.report-wordmark { font-size:18pt; font-weight:bold; line-height:1; margin:0 0 4pt; color:#020817; }.report-wordmark span { color:#74b024; }
  #print-report h1 { font-size:10.5pt; letter-spacing:0; margin:0; line-height:1.2; font-weight:bold; }
  .report-qr { position:absolute; right:0; top:0; display:grid; justify-items:center; gap:2pt; }.report-qr img { width:50pt; height:50pt; }.report-qr span { font-size:7.5pt; }
  .report-metadata { margin-top:5pt; max-width:410pt; font-size:9pt; line-height:1.25; }.report-metadata p { margin:0 0 2pt; }
  .report-activity { break-before:page; }.report-activity:first-child { break-before:auto; }
  .report-title { display:flex; justify-content:space-between; gap:14pt; align-items:baseline; margin-bottom:10pt; break-after:avoid; }#print-report h2 { font-size:13pt; letter-spacing:0; line-height:1.2; margin:0; }.report-title strong { white-space:nowrap; font-size:10.5pt; }
  .report-overview { display:grid; grid-template-columns:150px 1fr; gap:16pt; align-items:start; margin-bottom:9pt; break-inside:avoid; }.report-overview .court-figure { width:150px; }.report-overview p { margin:0 0 7pt; }.report-requirements { font-size:9pt; color:#333; }
  .report-overview figcaption { font-size:7.5pt; line-height:1.2; padding:4pt 0; }.report-overview figcaption span:not(.diagram-legend) { display:none; }
  #print-report .written-instructions h3 { color:#111; font-size:10.5pt; margin:9pt 0 4pt; line-height:1.2; break-after:avoid; }
  #print-report .written-instructions p,#print-report .written-instructions li { margin:0 0 5pt; orphans:2; widows:2; }.report-activity ol { margin:0; padding-left:17pt; }.report-activity .variations { gap:14pt; break-inside:avoid; }.report-transition { border-top:0.5pt solid #bbb; margin:10pt 0 0; padding-top:5pt; font-size:8.5pt; break-inside:avoid; }
  #print-report .court-background { fill:#fff; }#print-report .court-surface { fill:#fff; stroke:#333; }
  #print-report svg > g[fill='none'] { stroke:#333; }#print-report svg > path { stroke:#222; }#print-report svg marker path { fill:#222; }
  #print-report .target-label { fill:#222; stroke:#fff; }#print-report .side-label { fill:#222; }#print-report .diagram-legend b,#print-report .diagram-legend em { color:#222; }
}
.site-header .nav-group>summary{list-style:none;display:flex;align-items:center;gap:6px;padding:6px 8px;border:0;border-bottom:2px solid transparent;box-sizing:border-box;font-weight:400;white-space:nowrap}.site-header .nav-group>summary::-webkit-details-marker{display:none}.site-header .nav-group>summary::marker{content:''}.site-header .nav-group>summary::before,.site-header .nav-group>summary::after{content:none}.nav-indicator{display:inline-grid;place-items:center;width:10px;flex:0 0 10px;transform:rotate(0deg);transform-origin:center;line-height:1}.nav-group[open] .nav-indicator{transform:rotate(90deg)}.site-header .nav-group{position:relative;flex:none}.site-header .nav-group .nav-submenu{position:absolute;top:calc(100% + 10px);right:0;left:auto;z-index:30}.site-header .nav-group.active>summary{border-bottom-color:var(--green)}.site-header .nav-group[open]>summary{padding:6px 8px;border-bottom-width:2px;font-weight:400}.site-header .nav-group>summary:focus-visible{outline:2px solid var(--green);outline-offset:3px}
@media(max-width:760px){.site-header nav{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.site-header .nav-group .nav-submenu{position:absolute;width:min(230px,calc(100vw - 32px));max-height:60vh;overflow-y:auto}.site-header .header-inner{gap:8px;align-items:center}.site-header .nav-group>summary{font-size:.78rem;padding:6px 5px;gap:4px}.site-header .nav-group[open]>summary{padding:6px 5px}.site-header nav>.button{padding:9px 12px}}

.site-header .nav-group[open]{flex-basis:auto;order:0}
