.ss-wrap { --ss-blue:#123e63; --ss-border:#cbd5df; --ss-light:#f4f8fb; color:#172b3a; max-width:100%; }
.ss-wrap *, .ss-wrap *::before, .ss-wrap *::after { box-sizing:border-box; }
.ss-manual-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr)); gap:20px; max-width:1100px; margin:20px 0; }
.ss-manual-card { padding:24px; border:1px solid var(--ss-border); border-radius:14px; background:#fff; }
.ss-manual-card h2 { margin:0 0 12px; color:var(--ss-blue); font-size:20px; }
.ss-manual-card p { font-size:14px; line-height:1.6; }
.ss-manual-card .ss-manual-meta { color:#526675; font-size:13px; }
.ss-wrap [hidden] { display:none !important; }
.ss-date-field { display:block; position:relative; width:100%; min-width:0; }
.ss-wrap .ss-date-text { padding-right:44px; font-variant-numeric:tabular-nums; }
.ss-wrap .ss-date-text[aria-invalid=true] { border-color:#b42318; }
.ss-wrap button.ss-date-trigger { position:absolute; right:4px; top:50%; transform:translateY(-50%); display:flex; align-items:center; justify-content:center; width:36px; min-width:36px; height:36px; min-height:36px; margin:0; padding:0; border:0; border-radius:6px; background:transparent; color:var(--ss-blue); }
.ss-wrap button.ss-date-trigger:hover { background:var(--ss-light); color:var(--ss-accent,#087f83); }
.ss-wrap .ss-date-picker { position:fixed; z-index:1000001; width:min(336px,calc(100vw - 24px)); padding:12px; border:1px solid var(--ss-border); border-radius:14px; background:#fff; color:var(--ss-blue); box-shadow:0 12px 40px #123e6329; overflow:auto; overscroll-behavior:contain; font:14px/1.4 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
.ss-date-title { padding:2px 4px 10px; font-size:12px; font-weight:600; color:var(--ss-muted,#526675); }
.ss-date-heading { display:grid; grid-template-columns:32px minmax(0,1fr) 76px 32px; gap:6px; align-items:center; }
.ss-wrap .ss-date-picker .ss-date-heading select, .ss-wrap .ss-date-picker .ss-date-heading input { width:100%; min-width:0; height:38px; min-height:38px; margin:0; padding:5px; border:1px solid var(--ss-border); border-radius:7px; background:#fff; font:inherit; font-weight:600; color:var(--ss-blue); }
.ss-wrap .ss-date-picker .ss-date-heading button { min-width:0; width:32px; height:38px; min-height:38px; padding:0; background:var(--ss-light); color:var(--ss-blue); border:0; border-radius:7px; font-size:23px; }
.ss-wrap table.ss-date-grid { width:100%; min-width:0; table-layout:fixed; margin:10px 0 6px; border-collapse:collapse; border:0; box-shadow:none; }
.ss-wrap .ss-date-grid thead { display:table-header-group; }
.ss-wrap .ss-date-grid tbody { display:table-row-group; }
.ss-wrap .ss-date-grid tr { display:table-row; background:transparent; box-shadow:none; border:0; padding:0; margin:0; }
.ss-wrap .ss-date-grid th, .ss-wrap .ss-date-grid td { display:table-cell; width:auto; min-width:0; height:auto; padding:2px; border:0; background:transparent; text-align:center; vertical-align:middle; }
.ss-wrap .ss-date-grid th { padding:6px 0; color:var(--ss-muted,#526675); font-size:11px; font-weight:600; }
.ss-wrap .ss-date-grid td::before { content:none; }
.ss-wrap .ss-date-grid button { display:block; width:100%; height:38px; min-height:38px; min-width:0; margin:0; padding:0; background:transparent; color:var(--ss-blue); border:1px solid transparent; border-radius:8px; font:inherit; font-variant-numeric:tabular-nums; }
.ss-wrap .ss-date-grid button.ss-date-other-month { color:#758996; }
.ss-wrap .ss-date-grid button.ss-date-today { border-color:var(--ss-accent,#087f83); font-weight:700; }
.ss-wrap .ss-date-grid button:hover:not(:disabled) { background:#e6f3f2; color:#08686b; }
.ss-wrap .ss-date-grid button.ss-date-selected { background:var(--ss-accent,#087f83); color:#fff; font-weight:700; }
.ss-wrap .ss-date-picker button:disabled { opacity:.35; cursor:default; }
.ss-date-footer { display:flex; justify-content:space-between; gap:6px; padding-top:10px; border-top:1px solid var(--ss-border); }
.ss-wrap .ss-date-footer button { min-height:36px; min-width:0; padding:6px 9px; border:0; border-radius:6px; background:var(--ss-light); color:var(--ss-blue); font-size:12px; }
.ss-wrap .ss-date-footer button:hover { background:#e6f3f2; }
.ss-date-announcement { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
@media print { .ss-date-picker { display:none !important; } }
.ss-wrap .ss-competition-dialog { width:min(720px,calc(100% - 32px)); max-height:calc(100dvh - 48px); margin:auto; border:1px solid var(--ss-border); border-radius:16px; padding:24px; color:inherit; background:#fff; box-shadow:0 24px 80px #08233840; overflow:auto; overscroll-behavior:contain; }
.ss-competition-dialog::backdrop { background:#102b4166; backdrop-filter:blur(3px); }
.ss-competition-relay { margin-top:18px; }
.ss-competition-event { margin-top:24px; padding-top:12px; border-top:2px solid var(--ss-border); }
.ss-competition-notes { white-space:pre-wrap; }
.ss-competition-relay td button { margin:3px; }
.ss-competition-dialog textarea { width:100%; min-height:80px; }
.ss-form .ss-competition-events { flex-direction:column; align-items:stretch; }
.ss-competition-events label { font-weight:400; overflow-wrap:anywhere; }
.ss-auto-shooters { max-height:300px; overflow-y:auto; }
.ss-auto-shooters small { display:block; margin-top:4px; font-size:12px; }
.ss-auto-shooters label:has(input:disabled) { opacity:.65; }
.ss-auto-shooters label[hidden] { display:none !important; }
.ss-auto-count { margin:0; }
.ss-steps-list { display:grid; gap:14px; min-width:0; }
.ss-step-editor { min-width:0; }
.ss-form .ss-step-editor { grid-template-columns:repeat(2,minmax(0,1fr)); }
.ss-form .ss-step-editor label { flex-direction:column; align-items:stretch; padding:0; border:0; background:transparent; }
.ss-step-editor button { align-self:end; }
.ss-step-guns { grid-column:1/-1; margin:0; white-space:pre-line; overflow-wrap:anywhere; font-size:12px; }
@media (max-width:600px) { .ss-form .ss-step-editor { grid-template-columns:1fr; } }
.ss-wrap button { background:var(--ss-blue); color:#fff; border:0; border-radius:5px; padding:8px 12px; cursor:pointer; }
.ss-wrap button:hover { background:#235d89; }
.ss-public-access { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; margin-bottom:16px; padding:14px; border:1px solid var(--ss-border); border-radius:8px; background:var(--ss-light); }
.ss-public-access p { margin:0; flex:1 1 240px; }
.ss-wrap .ss-access-link { display:inline-block; padding:10px 16px; border-radius:5px; background:var(--ss-blue); color:#fff; font-weight:600; text-decoration:none; text-align:center; }
.ss-wrap .ss-access-link:hover { background:#235d89; color:#fff; }
.ss-wrap .ss-access-link:focus-visible { outline:3px solid #235d89; outline-offset:3px; }
.ss-wrap button.ss-danger { background:#9b2c2c; margin-left:6px; }
.ss-wrap button.ss-danger:hover { background:#7d2020; }
.ss-wrap input, .ss-wrap select, .ss-wrap textarea { border:1px solid var(--ss-border); border-radius:4px; padding:7px; max-width:100%; }
.ss-wrap label { display:flex; flex-direction:column; gap:4px; font-weight:600; }
.ss-wrap label:has(input[type=checkbox]) { flex-direction:row; align-items:center; }
.ss-nav, .ss-day-head, .ss-actions, .ss-dialog-top { display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin:12px 0; }
.ss-week { display:grid; grid-template-columns:minmax(0,1fr); gap:18px; }
.ss-day { background:#fff; border:1px solid var(--ss-border); border-radius:8px; padding:12px; min-width:0; }
.ss-day h2 { margin:0; color:var(--ss-blue); }
.ss-day h2 small { font-size:.7em; color:#546a79; }
.ss-closed-days { display:flex; flex-wrap:wrap; gap:8px; margin-top:14px; }
.ss-day-closed { display:flex; align-items:center; flex-wrap:wrap; gap:8px; flex:1 1 190px; padding:7px 10px; background:var(--ss-light); }
.ss-day-closed h2 { font-size:14px; white-space:nowrap; }
.ss-day-closed h2 small { display:block; font-size:11px; }
.ss-day-closed > span:not(.ss-badge) { color:#546a79; font-size:12px; white-space:nowrap; }
.ss-wrap button.ss-closed-settings { margin-left:auto; padding:5px 9px; font-size:16px; }
.ss-day-closed .ss-cancellations { flex-basis:100%; }
.ss-table-scroll { overflow-x:auto; }
.ss-wrap table { width:100%; border-collapse:collapse; background:#fff; }
.ss-wrap th, .ss-wrap td { border:1px solid var(--ss-border); padding:7px; text-align:left; vertical-align:top; }
.ss-grid { table-layout:fixed; min-width:450px; }
.ss-grid th:first-child { width:68px; }
.ss-grid td { height:62px; min-width:130px; overflow-wrap:anywhere; }
.ss-grid td[data-action] { cursor:pointer; }
.ss-grid td small { display:block; font-size:11px; font-weight:400; line-height:1.35; }
.ss-grid .ss-cell-name { display:block; line-height:1.25; }
.ss-grid td .ss-calendar-attendance { display:inline-flex; align-items:center; gap:4px; margin-top:5px; padding:2px 7px; border:1px solid #cbd5df; border-radius:12px; background:#f5f7fa; color:#526171; font-size:11px; font-weight:600; line-height:1.4; }
.ss-grid td .ss-calendar-attendance[data-status=PRESENT] { border-color:#a6d7bd; background:#e5f5eb; color:#19623e; }
.ss-grid td .ss-calendar-attendance[data-status=ABSENT] { border-color:#edb9b9; background:#fdecec; color:#963434; }
.ss-free { background:#e8f6ec; }
.ss-experience-slot { box-shadow:inset 0 0 0 2px #2872a1; }
.ss-grid td .ss-experience-badge { color:#155b84; font-weight:700; margin-top:3px; }
.ss-experience-help { margin:0 0 12px; color:#546a79; font-size:12px; }
.ss-cell-layout { display:flex; align-items:flex-start; gap:6px; }
.ss-cell-content { flex:1; min-width:0; }
.ss-period-heading { margin:16px 0 8px; font-size:14px; color:var(--ss-blue); }
.ss-period-break { padding:12px; border:1px dashed #bcc8d2; border-radius:8px; color:var(--ss-muted); background:#f3f5f7; }
.ss-periods { min-width:0; }
.ss-form fieldset.ss-periods { display:block; }
.ss-form .ss-periods .ss-period-editor > label { display:flex; flex-direction:column; align-items:stretch; gap:6px; padding:0; border:0; background:transparent; cursor:default; }
.ss-period-rows { display:grid; gap:12px; margin-bottom:12px; }
.ss-period-editor { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,2fr) auto; align-items:end; gap:8px; padding:12px; border:1px solid var(--ss-border); border-radius:8px; }
.ss-period-editor > label { min-width:0; }
.ss-period-editor input, .ss-period-editor select { width:100%; min-width:0; }
.ss-print-period-heading { font-size:11px; margin:8px 0 4px; }
.ss-preview { white-space:pre-line; }
@media (max-width:600px) {
  .ss-period-editor { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ss-period-editor > label:nth-child(3), .ss-period-editor > button { grid-column:1/-1; }
}
.ss-wrap button.ss-experience-toggle { position:relative; flex:0 0 36px; width:36px; height:28px; margin:-3px -3px 0 0; padding:0; border-radius:5px; background:transparent; }
.ss-wrap button.ss-experience-toggle::before { content:''; position:absolute; inset:6px 3px; border:1px solid #788b98; border-radius:10px; background:#dce3e8; }
.ss-wrap button.ss-experience-toggle::after { content:''; position:absolute; top:8px; left:5px; width:12px; height:12px; border-radius:50%; background:#fff; box-shadow:0 1px 2px #0003; }
.ss-wrap button.ss-experience-toggle[aria-checked=true]::before { border-color:#155b84; background:#2872a1; }
.ss-wrap button.ss-experience-toggle[aria-checked=true]::after { content:'✓'; left:19px; color:#155b84; font-size:10px; font-weight:700; line-height:12px; text-align:center; }
.ss-wrap button.ss-experience-toggle:hover { background:#123e6312; }
.ss-wrap button.ss-experience-toggle:focus-visible { outline:2px solid #1e6da6; outline-offset:2px; }
.ss-busy { background:#f7e8e2; font-weight:600; }
.ss-exception { border-left:4px solid #cc7b00 !important; }
.ss-member-change { border-left-color:#3478aa !important; }
.ss-grid td .ss-member-badge { color:#225b7c; font-weight:700; }
.ss-wrap button.ss-member-action { display:block; width:100%; margin-top:5px; padding:5px 7px; font-size:12px; }
.ss-wrap button.ss-member-action.ss-danger { margin-left:0; }
.ss-wrap button.ss-member-log { background:#185b72; }
.ss-member-logs { margin-top:18px; padding:12px; border:1px solid var(--ss-border); border-radius:8px; background:#fff; }
.ss-member-logs h2 { margin:0 0 10px; }
.ss-member-log-list { display:grid; gap:7px; }
.ss-member-log-list > div { display:flex; align-items:center; justify-content:space-between; gap:12px; border-top:1px solid var(--ss-border); padding-top:7px; }
.ss-log-done { color:#126635; }
@media (max-width:600px) { .ss-member-log-list > div { align-items:flex-start; flex-direction:column; } }
.ss-training-log-form .ss-form-wide { grid-column:1/-1; }
.ss-training-log-form textarea { width:100%; min-height:86px; }
.ss-log-details { margin:0; }
.ss-log-details > div { border-top:1px solid var(--ss-border); padding:9px 0; }
.ss-log-details dt { font-weight:700; }
.ss-log-details dd { margin:4px 0 0; white-space:pre-wrap; overflow-wrap:anywhere; }
.ss-badge { background:#fff0cb; color:#704900; padding:4px 7px; border-radius:4px; }
.ss-message { background:#fff0d0; border-left:4px solid #ba7800; margin:12px 0; padding:12px; }
.ss-message[hidden], .ss-dialog[hidden] { display:none; }
.ss-wrap button:disabled { opacity:.5; cursor:not-allowed; }
.ss-preview { grid-column:1/-1; margin:0; padding:10px 12px; border-radius:5px; }
.ss-preview-pending { background:#eef3f7; color:#34465a; }
.ss-preview-valid { background:#e8f6ec; color:#17602b; }
.ss-preview-error { background:#fff0e8; color:#8b2d16; }
.ss-preview button { margin-left:10px; }
.ss-dialog { position:fixed; z-index:100000; inset:0; background:rgba(0,0,0,.55); display:flex; align-items:center; justify-content:center; padding:12px; }
.ss-dialog-panel { background:#fff; border-radius:8px; max-width:560px; max-height:90vh; overflow:auto; width:100%; padding:20px; box-shadow:0 20px 50px #0004; }
.ss-dialog-panel:has(.ss-performance-view) { max-width:880px; }
.ss-performance-view { display:grid; gap:16px; }
.ss-performance-view > label { max-width:400px; }
.ss-performance-series { min-width:0; border:1px solid var(--ss-border); border-radius:8px; padding:12px; }
.ss-performance-series h3 { margin:0 0 8px; }
.ss-performance-chart { display:block; width:100%; height:auto; max-height:300px; background:#fbfdfe; }
.ss-performance-chart text { fill:#405464; font-size:12px; }
.ss-form .ss-form-wide { grid-column:1/-1; }
.ss-dialog-top { justify-content:space-between; }
.ss-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.ss-form > h2, .ss-form > button, .ss-form > fieldset, .ss-form > .ss-actions { grid-column:1/-1; }
.ss-form-help { grid-column:1/-1; margin:0; color:#546a79; }
.ss-weapon-pair-section { grid-column:1/-1; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; padding:12px; border:1px solid var(--ss-border); border-radius:6px; }
.ss-weapon-pair-section h3 { grid-column:1/-1; margin:0; }
@media (max-width:600px) { .ss-weapon-pair-section { grid-template-columns:1fr; } }
.ss-form fieldset { border:1px solid var(--ss-border); display:flex; flex-wrap:wrap; gap:10px; }
.ss-form textarea { min-height:75px; }
.ss-att-table { min-width:950px; }
.ss-log-missing { color:#a3281c; font-weight:600; }
.ss-att-table th, .ss-att-table td { vertical-align:middle; }
.ss-att-table td { padding:6px 8px; }
.ss-att-table small { display:block; color:#5b6872; }
.ss-att-name { font-weight:600; }
.ss-wrap button.ss-text-button { background:transparent; color:var(--ss-blue); padding:4px 0; text-align:left; text-decoration:underline; }
.ss-wrap button.ss-text-button:hover { color:#235d89; }
.ss-icon-group { display:flex; gap:4px; }
.ss-wrap button.ss-icon { display:inline-flex; align-items:center; justify-content:center; width:38px; height:38px; padding:0; font-size:20px; font-weight:700; line-height:1; border:1px solid #cbd2d8; background:#edf0f2; color:#52616d; }
.ss-wrap button.ss-icon-positive { background:#dff3e5; border-color:#81c497; color:#126635; }
.ss-wrap button.ss-icon-negative { background:#fce8e6; border-color:#dfa29b; color:#a3281c; }
.ss-wrap button.ss-icon:hover:not(:disabled) { filter:brightness(.94); }
.ss-wrap button.ss-icon:focus-visible, .ss-wrap button.ss-text-button:focus-visible { outline:3px solid #1e6da6; outline-offset:2px; }
.ss-print-only { display:none; }
@page { size:A4 landscape; margin:10mm; }
@media (max-width:760px) {
  .ss-att-table, .ss-att-table tbody { display:block; width:100%; min-width:0; }
  .ss-att-table thead { display:none; }
  .ss-att-table tr { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 10px; margin:0 0 10px; padding:8px; border:1px solid var(--ss-border); border-radius:8px; background:#fff; }
  .ss-att-table td { border:0; min-width:0; padding:5px 4px; }
  .ss-att-table td::before { content:attr(data-label); display:block; color:#566674; font-size:11px; font-weight:600; }
  .ss-att-table td:nth-child(2), .ss-att-table td:nth-child(3) { grid-column:1/-1; }
  .ss-att-table td:last-child { display:flex; align-items:end; }
  .ss-wrap .ss-att-table button.ss-icon { width:44px; height:44px; }
}
@media (max-width:600px) { .ss-form { grid-template-columns:1fr; } .ss-nav button { flex:1; } }
@media print {
  html, body { margin:0 !important; padding:0 !important; background:#fff !important; }
  #adminmenumain, #wpadminbar, #wpfooter, .ss-nav, .ss-week, .ss-closed-days, .ss-member-logs, .ss-dialog, .ss-message, .ss-wrap > h1 { display:none !important; }
  #wpbody-content > :not(.ss-wrap) { display:none !important; }
  #wpcontent, #wpbody-content { margin:0 !important; padding:0 !important; }
  .wrap.ss-wrap { margin:0 !important; }
  .ss-wrap { color:#000; font:9pt/1.2 Arial,sans-serif; }
  .ss-print-only { display:block !important; width:277mm; max-width:none; }
  #ss-app.ss-competition-printable > :not(.ss-competition-print),
  .ss-wrap:has(.ss-competition-printable) > .ss-page-header { display:none !important; }
  .ss-print-day, .ss-competition-print-event { display:flow-root; width:100%; height:auto; min-height:0; margin:0; padding:0; box-sizing:border-box; break-inside:auto; page-break-inside:auto; }
  .ss-print-day + .ss-print-day, .ss-competition-print-event + .ss-competition-print-event { break-before:page; page-break-before:always; }
  .ss-print-one-page { break-inside:avoid; page-break-inside:avoid; }
  .ss-print-head { display:flex; justify-content:space-between; align-items:baseline; margin:0 0 2mm; }
  .ss-print-head h2 { margin:0; color:#000; font-size:13pt; }
  .ss-print-head p { margin:0; font-size:9pt; }
  .ss-print-period-heading { font-size:9pt; margin:2mm 0 1mm; break-after:avoid; }
  .ss-print-day > p { margin:1mm 0 2mm; font-size:8pt; }
  .ss-wrap .ss-print-grid { width:100%; table-layout:fixed; border-collapse:collapse; font-size:8.5pt; margin:0 0 2mm; }
  .ss-print-grid thead, .ss-competition-print-table thead { display:table-header-group; }
  .ss-print-grid tr, .ss-competition-print-table tr { break-inside:avoid; page-break-inside:avoid; }
  .ss-wrap .ss-print-grid th, .ss-wrap .ss-print-grid td { border:1px solid #555; padding:.7mm 1mm; color:#000; vertical-align:middle; overflow-wrap:anywhere; }
  .ss-wrap .ss-print-grid thead th { background:#e9edf1 !important; text-align:center; font-weight:700; }
  .ss-wrap .ss-print-grid .ss-print-slot { width:22mm; font-size:7.5pt; text-align:center; white-space:nowrap; }
  .ss-wrap .ss-print-grid td { height:7mm; }
  .ss-print-cell { box-sizing:border-box; padding:0; line-height:1.15; text-align:center; }
  .ss-print-name { display:block; font-size:9pt; margin:0 0 .5mm; }
  .ss-print-detail { display:block; font-size:8pt; }
  .ss-print-empty { display:block; color:#666; font-size:8pt; font-weight:400; }
  .ss-competition-print { color:#000; font:9.5pt/1.2 Arial,sans-serif; }
  .ss-competition-print header, .ss-competition-print-heading { break-inside:avoid; break-after:avoid; }
  .ss-competition-print h1 { margin:0 0 1mm; font-size:14pt; color:#000; }
  .ss-competition-print h2 { margin:2mm 0 1mm; font-size:12pt; color:#000; }
  .ss-competition-print h3 { margin:2mm 0 1mm; font-size:10pt; color:#000; break-after:avoid; }
  .ss-competition-print p { margin:.5mm 0 1mm; white-space:pre-wrap; overflow-wrap:anywhere; }
  .ss-competition-print-warning { border:1px solid #000; padding:1mm; }
  .ss-wrap .ss-competition-print-table { width:100%; table-layout:fixed; border-collapse:collapse; margin:1mm 0 2mm; font-size:9pt; }
  .ss-wrap .ss-competition-print-table th, .ss-wrap .ss-competition-print-table td { border:1px solid #555; padding:1.2mm; text-align:left; vertical-align:top; white-space:pre-wrap; overflow-wrap:anywhere; color:#000; }
  .ss-competition-print-table th:first-child { width:8%; }
  .ss-competition-print-table th:nth-child(2) { width:23%; }
  .ss-competition-print-table th:nth-child(3) { width:29%; }
  .ss-competition-print-table th:nth-child(4) { width:11%; }
  .ss-print-steps th:first-child, .ss-print-steps th:nth-child(2) { width:7%; }
  .ss-print-steps th:nth-child(3), .ss-print-steps th:nth-child(4) { width:20%; }
  .ss-print-fit-compact .ss-print-head h2, .ss-print-fit-compact h1 { font-size:12pt; }
  .ss-print-fit-compact .ss-print-period-heading, .ss-print-fit-compact h3 { margin:1mm 0 .5mm; font-size:9pt; }
  .ss-print-fit-compact .ss-print-grid td { height:6mm; }
  .ss-print-fit-compact .ss-print-name { font-size:8pt; }
  .ss-print-fit-compact .ss-print-detail { font-size:7.5pt; }
  .ss-print-fit-compact .ss-competition-print-table { font-size:8.5pt; margin:.5mm 0 1mm; }
  .ss-print-fit-compact .ss-competition-print-table th, .ss-print-fit-compact .ss-competition-print-table td { padding:.9mm; }
  .ss-print-fit-tight .ss-print-grid td { height:5.5mm; }
  .ss-print-fit-tight .ss-print-grid th, .ss-print-fit-tight .ss-print-grid td { padding:.4mm .7mm; }
  .ss-print-fit-tight .ss-competition-print-table { font-size:8pt; }
  .ss-print-fit-tight .ss-competition-print-table th, .ss-print-fit-tight .ss-competition-print-table td { padding:.7mm; }
  .ss-print-fit-tight p { font-size:8pt; }
}

/* Shared club interface. Screen-only rules keep the A4 schedule independent. */
@media screen {
  .ss-wrap { --ss-blue:#163a53; --ss-accent:#087f83; --ss-border:#dce5eb; --ss-light:#f3f7fa; --ss-muted:#526675; color:#203747; font:15px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; overflow-wrap:anywhere; }
  .wrap.ss-wrap { margin:24px 24px 40px 4px; }
  .ss-wrap h1, .ss-wrap h2, .ss-wrap h3 { font-family:inherit; font-weight:700; line-height:1.25; letter-spacing:-.025em; color:var(--ss-blue); }
  .ss-wrap h2 { font-size:22px; margin:20px 0 14px; }
  .ss-page-header { padding:22px 26px; border-radius:14px; background:linear-gradient(115deg,#15364d,#1e5367); color:#fff; margin-bottom:18px; position:relative; overflow:hidden; }
  .ss-wrap .ss-page-header h1, .ss-wrap .ss-page-header h2 { color:#fff; margin:8px 0 0; padding:0; font-size:clamp(24px,2.4vw,30px); }
  .ss-page-header p { margin:10px 0 0; color:#e0edf3; }
  .ss-eyebrow { display:block; font-size:12px; font-weight:650; letter-spacing:.09em; text-transform:uppercase; color:#c3e5eb; }
  .ss-section-nav { display:flex; flex-wrap:wrap; gap:4px; margin:0 0 22px; padding:6px; border:1px solid var(--ss-border); border-radius:14px; background:#fff; }
  .ss-section-nav a { display:flex; align-items:center; min-height:44px; padding:9px 12px; border-radius:8px; color:var(--ss-muted); text-decoration:none; font-size:14px; font-weight:600; }
  .ss-section-nav a:hover { background:var(--ss-light); color:var(--ss-blue); }
  .ss-section-nav a[aria-current=page] { background:var(--ss-blue); color:#fff; }
  .ss-wrap #ss-app { min-width:0; }
  .ss-wrap button, .ss-wrap .ss-access-link { min-height:44px; border-radius:9px; padding:10px 16px; font-family:inherit; font-size:14px; font-weight:600; line-height:1.4; text-align:center; word-break:normal; overflow-wrap:normal; transition:background .15s,box-shadow .15s; touch-action:manipulation; }
  .ss-wrap button:hover { background:#24556f; }
  .ss-wrap button:focus-visible, .ss-wrap a:focus-visible, .ss-wrap input:focus-visible, .ss-wrap select:focus-visible, .ss-wrap textarea:focus-visible, .ss-wrap td:focus-visible { outline:3px solid #087f83; outline-offset:3px; }
  .ss-wrap button.ss-danger { background:#fff1ef; color:#9c3027; border:1px solid #edc7c2; margin-left:0; }
  .ss-wrap button.ss-danger:hover { background:#fce1dc; }
  .ss-wrap button[data-action=entity-new], .ss-wrap button[type=submit], .ss-wrap button[data-action=member-add], .ss-wrap button[data-action=add-performance] { background:var(--ss-accent); color:#fff; }
  .ss-wrap button[type=submit]:hover, .ss-wrap button[data-action=entity-new]:hover { background:#06686c; }
  .ss-wrap input, .ss-wrap select, .ss-wrap textarea { background:#fff; color:#203747; min-height:44px; font:inherit; font-weight:400; line-height:1.45; border-radius:8px; padding:9px 11px; width:100%; box-shadow:none; }
  .ss-wrap input[type=checkbox], .ss-wrap input[type=radio] { width:20px; height:20px; min-height:20px; margin:0; padding:0; flex-shrink:0; appearance:auto; box-shadow:none; accent-color:var(--ss-accent); }
  .ss-wrap input[type=checkbox]::before, .ss-wrap input[type=radio]::before { content:none; }
  .ss-wrap label { color:var(--ss-muted); font-size:13px; gap:6px; min-width:0; }
  .ss-wrap label:has(input[type=checkbox]) { min-height:44px; }
  .ss-wrap textarea { resize:vertical; min-height:96px; }
  .ss-wrap input:hover, .ss-wrap select:hover, .ss-wrap textarea:hover { border-color:#a8bbc9; }
  .ss-wrap input:focus, .ss-wrap select:focus, .ss-wrap textarea:focus { border-color:var(--ss-accent); box-shadow:0 0 0 3px #087f8312; }
  .ss-nav { background:#fff; border:1px solid var(--ss-border); border-radius:14px; padding:16px; margin:16px 0; gap:10px; align-items:flex-end; }
  .ss-nav strong { display:flex; align-items:center; justify-content:center; align-self:flex-end; min-height:44px; font-size:16px; margin:0 8px; font-variant-numeric:tabular-nums; }
  .ss-nav label { flex:1 1 160px; max-width:300px; }
  .ss-wrap .ss-nav input:not([type=checkbox]):not([type=radio]), .ss-wrap .ss-nav select { box-sizing:border-box; height:44px; min-height:44px; margin:0; }
  .ss-wrap .ss-nav input[type=date]::-webkit-datetime-edit { line-height:normal; padding:0; }
  .ss-nav button { align-self:flex-end; }
  .ss-nav > .ss-nav-text { align-self:center; }
  .ss-registration-shooter { display:flex; flex-direction:column; align-items:flex-start; gap:8px; }
  .ss-registration-message { white-space:pre-wrap; overflow-wrap:anywhere; }
  .ss-registration-contact { display:flex; flex-direction:column; gap:4px; }
  .ss-registration-hint { display:block; margin-top:4px; color:var(--ss-muted); font-size:12px; }
  .ss-registration-status { display:inline-flex; padding:4px 10px; border-radius:16px; background:#edf1f4; color:#526675; font-size:12px; font-weight:600; }
  .ss-registration-status.is-new { background:#e6f3fa; color:#125c82; }
  .ss-registration-status.is-contacted { background:#fff3d8; color:#78520e; }
  .ss-registration-status.is-closed { background:#e7f5ed; color:#216640; }
  .ss-registration-status.is-rejected { background:#fcecea; color:#94352a; }
  .ss-registration-panel .ss-registration-name { margin:0 0 16px; font-size:20px; }
  .ss-registration-details { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px 20px; margin:0 0 22px; }
  .ss-registration-details > div { min-width:0; }
  .ss-registration-details dt { margin:0 0 4px; color:var(--ss-muted); font-size:12px; font-weight:600; }
  .ss-registration-details dd { margin:0; overflow-wrap:anywhere; }
  .ss-registration-message-section { margin-bottom:20px; padding:16px; border:1px solid var(--ss-border); border-radius:12px; background:var(--ss-light); }
  .ss-registration-message-section h3 { margin:0 0 10px; font-size:14px; }
  .ss-registration-message-section .ss-registration-message { max-height:240px; overflow:auto; overscroll-behavior:contain; }
  .ss-registration-status-form { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; gap:10px; margin:20px 0; }
  .ss-registration-status-form select { margin:0; }
  .ss-registration-feedback:empty { display:none; }
  .ss-registration-feedback { padding:12px; background:var(--ss-light); border-radius:8px; }
  .ss-registration-actions { border-top:1px solid var(--ss-border); padding-top:18px; margin-top:20px; justify-content:flex-end; }
  .ss-wrap button[data-reject] { background:#fff3d8; color:#78520e; border:1px solid #ecd39d; }
  .ss-registration-delete-confirm { padding:16px; border:1px solid #e4b5af; border-radius:12px; background:#fff5f3; }
  .ss-registration-delete-confirm h3 { margin-top:0; }
  .ss-registration-count { margin-left:8px; padding:2px 7px; border-radius:12px; background:#b32d2e; color:#fff; font-size:12px; white-space:nowrap; }
  .ss-list-count { display:inline-flex; align-items:center; align-self:flex-end; gap:6px; min-height:44px; max-width:100%; padding:8px 14px; border:1px solid var(--ss-border); border-radius:999px; background:var(--ss-light); color:var(--ss-muted); font-size:13px; line-height:1.4; }
  .ss-list-count-value { color:var(--ss-blue); font-weight:700; font-variant-numeric:tabular-nums; white-space:nowrap; }
  .ss-summary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin:0 0 20px; }
  .ss-stat { background:#fff; border:1px solid var(--ss-border); border-radius:12px; padding:16px 20px; box-shadow:0 3px 10px #173a5305; }
  .ss-stat span { display:block; font-size:13px; color:var(--ss-muted); }
  .ss-stat strong { display:block; font-size:28px; font-weight:700; color:var(--ss-blue); margin-top:4px; line-height:1.25; font-variant-numeric:tabular-nums; }
  .ss-day, .ss-member-logs, .ss-performance-series { border-radius:16px; padding:20px; box-shadow:0 4px 16px #173a5305; }
  .ss-day-head { margin:0 0 18px; gap:10px; }
  .ss-day-head h2 { margin:0 auto 0 0; }
  .ss-day h2 small { display:block; margin-top:5px; font-size:13px; font-weight:500; letter-spacing:0; color:var(--ss-muted); }
  .ss-day-head button { background:var(--ss-light); color:var(--ss-blue); border:1px solid var(--ss-border); }
  .ss-day-head button:hover { background:#e4edf3; }
  .ss-day-closed { padding:12px 14px; border-radius:12px; box-shadow:none; }
  .ss-day-closed h2 { font-size:14px; }
  .ss-day-closed > span:not(.ss-badge) { white-space:normal; }
  .ss-wrap button.ss-closed-settings { min-width:44px; min-height:44px; background:#e4edf3; color:var(--ss-blue); }
  .ss-legend { display:flex; flex-wrap:wrap; gap:18px; margin:12px 0 18px; font-size:13px; color:var(--ss-muted); }
  .ss-legend span::before { content:''; display:inline-block; width:10px; height:10px; margin-right:7px; border-radius:50%; background:#18825d; }
  .ss-legend .ss-legend-busy::before { background:#54758e; }
  .ss-legend .ss-legend-exception::before { background:#c08116; }
  .ss-table-scroll { border:1px solid var(--ss-border); border-radius:12px; margin-top:16px; overscroll-behavior-x:contain; }
  .ss-wrap table { font-size:14px; }
  .ss-wrap th { background:#f2f6f9; color:var(--ss-muted); font-size:12px; font-weight:650; }
  .ss-wrap th, .ss-wrap td { padding:13px 14px; border:0; border-bottom:1px solid var(--ss-border); }
  .ss-wrap tbody tr:last-child td { border-bottom:0; }
  .ss-data-table td { vertical-align:middle; overflow-wrap:anywhere; }
  .ss-data-table td:last-child { min-width:145px; }
  .ss-data-table td:last-child button { margin:3px; }
  .ss-data-table tbody tr:hover { background:#f8fafc; }
  .ss-grid th, .ss-grid td { border:1px solid var(--ss-border); }
  .ss-grid th:first-child { width:78px; font-variant-numeric:tabular-nums; }
  .ss-grid td { height:86px; padding:10px; font-size:13px; font-weight:500; }
  .ss-grid td small { font-size:12px; }
  .ss-free { background:#edf8f2; color:#22664a; }
  .ss-busy { background:#edf3f8; color:#264a63; }
  .ss-grid td[data-action]:hover { box-shadow:inset 0 0 0 2px var(--ss-accent); }
  .ss-cell-name { font-size:14px; }
  .ss-cell-status { display:block; font-size:10px; text-transform:uppercase; letter-spacing:.08em; color:#48677d; margin-bottom:4px; }
  .ss-grid .ss-cell-detail { color:var(--ss-muted); }
  .ss-wrap button.ss-experience-toggle { flex:0 0 44px; width:44px; height:44px; min-height:44px; margin:-4px -4px 0 0; }
  .ss-wrap button.ss-experience-toggle::before { inset:13px 6px; }
  .ss-wrap button.ss-experience-toggle::after { top:15px; left:8px; }
  .ss-wrap button.ss-experience-toggle[aria-checked=true]::after { left:24px; }
  .ss-wrap button.ss-member-action { min-height:44px; padding:8px; }
  .ss-form-help, .ss-experience-help { color:var(--ss-muted); font-size:13px; }
  .ss-badge { font-size:12px; font-weight:600; border-radius:30px; padding:5px 10px; }
  .ss-message { background:#fff8e8; border-radius:10px; padding:15px 18px; }
  .ss-empty { border:1px dashed var(--ss-border); background:var(--ss-light); border-radius:12px; padding:24px; text-align:center; color:var(--ss-muted); }
  .ss-wrap #ss-app > .ss-form { max-width:900px; background:#fff; border:1px solid var(--ss-border); padding:24px; border-radius:16px; margin:18px 0; }
  .ss-form { gap:18px; align-items:start; }
  .ss-form > label { align-self:start; }
  .ss-form fieldset { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr)); min-width:0; margin:0; padding:14px; gap:8px; border:1px solid var(--ss-border); border-radius:12px; background:#f8fafc; }
  .ss-form legend { padding:0 6px; color:var(--ss-blue); font-size:13px; font-weight:600; }
  .ss-form fieldset label { display:flex; flex-direction:row; align-items:center; gap:10px; min-height:44px; margin:0; padding:10px 12px; border:1px solid var(--ss-border); border-radius:8px; background:#fff; font-size:13px; font-weight:500; line-height:1.4; cursor:pointer; }
  .ss-form fieldset label:has(input:checked) { border-color:#65aaa7; background:#edf8f5; color:#175e5c; }
  .ss-form fieldset label:hover { border-color:#8eb5bf; }
  .ss-form fieldset label:focus-within { outline:2px solid var(--ss-accent); outline-offset:2px; }
  .ss-form .ss-competition-events { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ss-wrap .ss-secondary { background:#fff; color:var(--ss-blue); border:1px solid #c9d7e1; }
  .ss-wrap .ss-secondary:hover { background:var(--ss-light); }
  .ss-data-table button:not(.ss-danger):not(.ss-icon):not(.ss-text-button), .ss-nav button:not(.ss-date-trigger):not([data-action=entity-new]):not([data-action=all-present]):not([data-action=member-log-new]) { background:#f4f7fa; color:var(--ss-blue); border:1px solid #d6e1e8; }
  .ss-data-table button:not(.ss-danger):not(.ss-icon):not(.ss-text-button):hover, .ss-nav button:not(.ss-date-trigger):not([data-action=entity-new]):not([data-action=all-present]):not([data-action=member-log-new]):hover { background:#e5edf3; border-color:#b5c9d6; }

  .ss-form h2 { margin:0; }
  .ss-form .ss-actions { margin:4px 0 0; padding-top:18px; border-top:1px solid var(--ss-border); justify-content:flex-end; gap:8px; }
  .ss-form > button[type=submit] { margin-top:8px; }
  .ss-preview { padding:14px; border-radius:10px; font-size:14px; }
  .ss-weapon-pair-section { border-radius:12px; padding:18px; background:var(--ss-light); }
  .ss-dialog { background:#102b4166; padding:24px; backdrop-filter:blur(4px); }
  .ss-dialog-panel { padding:24px; border-radius:18px; max-width:640px; max-height:calc(100dvh - 48px); box-shadow:0 24px 80px #08233840; overscroll-behavior:contain; }
  .ss-dialog-top { display:flex; flex-wrap:nowrap; align-items:center; gap:16px; margin:0 0 22px; padding:0 0 18px; border-bottom:1px solid var(--ss-border); }
  .ss-dialog-top h2 { margin:0; flex:1; min-width:0; font-size:21px; line-height:1.35; }
  .ss-dialog-top button { flex:0 0 auto; width:auto; min-width:44px; padding:9px 12px; background:var(--ss-light); color:var(--ss-blue); font-size:14px; }
  .ss-wrap button.ss-dialog-close { display:inline-flex; align-items:center; justify-content:center; flex:0 0 44px; width:44px; height:44px; padding:0; border:1px solid var(--ss-border); border-radius:50%; font:400 27px/1 Arial,sans-serif; white-space:nowrap; }
  .ss-wrap button.ss-dialog-close:hover { background:#e7eef3; color:#173d54; }

  body:has(.ss-dialog:not([hidden])), body:has(.ss-competition-dialog[open]) { overflow:hidden; }
  .ss-wrap:has(.ss-dialog:not([hidden])) .ss-section-nav { pointer-events:none; }
  .ss-wrap button.ss-icon { width:44px; height:44px; min-height:44px; }
  .ss-wrap button.ss-text-button { padding:6px 0; min-height:44px; text-decoration:none; font-weight:700; }
  .ss-public-access { border-radius:14px; padding:18px; }
  .ss-log-details > div { padding:14px 0; }
  .ss-log-details dt { font-size:12px; color:var(--ss-muted); }
  .ss-log-details dd { font-size:15px; }
  .ss-performance-chart { border-radius:10px; }
}
@media screen and (max-width:760px) {
  .wrap.ss-wrap { margin:14px 10px 28px 0; }
  .ss-page-header { padding:22px; border-radius:14px; }
  .ss-section-nav { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:4px; padding:6px; }
  .ss-section-nav a { font-size:13px; padding:9px 10px; }
  .ss-summary { gap:8px; }
  .ss-stat { padding:12px; border-radius:12px; }
  .ss-stat strong { font-size:22px; }
  .ss-stat span { font-size:12px; }
  .ss-nav { padding:12px; }
  .ss-nav label { max-width:none; }
  .ss-nav strong { flex-basis:100%; order:-1; min-height:0; text-align:center; margin:2px 0 8px; font-size:15px; }
  .ss-nav button { flex:1 1 auto; }
  .ss-day, .ss-member-logs, .ss-performance-series { padding:14px; border-radius:14px; }
  .ss-day-head h2 { flex-basis:100%; }
  .ss-day-head button { flex:1 1 auto; font-size:12px; padding:9px; }
  .ss-wrap .ss-grid { display:block; min-width:0 !important; width:100%; table-layout:auto; }
  .ss-grid thead { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
  .ss-grid tbody { display:block; }
  .ss-grid tr { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; padding:12px; border-bottom:1px solid var(--ss-border); }
  .ss-wrap .ss-grid th:first-child { grid-column:1/-1; width:auto; padding:0 0 4px; border:0; background:transparent; color:var(--ss-blue); font-size:14px; }
  .ss-wrap .ss-grid td { display:block; min-width:0; height:auto; min-height:90px; border:1px solid var(--ss-border); border-radius:9px; padding:10px; }
  .ss-grid td::before { content:attr(data-label); display:block; font-size:12px; font-weight:700; margin-bottom:6px; color:var(--ss-blue); }
  .ss-grid tr:has(td:nth-child(2):last-child) { grid-template-columns:1fr; }
  .ss-grid td.ss-exception { border-left-width:4px; }
  .ss-table-scroll:has(.ss-data-table) { border:0; border-radius:0; overflow:visible; }
  .ss-data-table, .ss-data-table tbody { display:block; min-width:0; width:100%; background:transparent; }
  .ss-data-table thead { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
  .ss-data-table tr { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px 14px; margin-bottom:12px; padding:16px; border:1px solid var(--ss-border); border-radius:14px; background:#fff; }
  .ss-wrap .ss-data-table td { display:block; min-width:0; padding:0; border:0; }
  .ss-data-table td::before { content:attr(data-label); display:block; font-size:11px; font-weight:600; color:var(--ss-muted); margin-bottom:4px; }
  .ss-data-table td:first-child, .ss-data-table td:last-child { grid-column:1/-1; }
  .ss-data-table td:last-child { padding-top:10px; border-top:1px solid var(--ss-border); }
  .ss-data-table td:last-child button { margin:3px 3px 3px 0; }
  .ss-att-table td:nth-child(2), .ss-att-table td:nth-child(3) { grid-column:1/-1; }
  .ss-dialog { padding:12px; }
  .ss-dialog-panel { max-height:calc(100dvh - 24px); padding:20px; border-radius:16px; }
  .ss-registration-details, .ss-registration-status-form { grid-template-columns:1fr; }
  .ss-form { grid-template-columns:1fr; }
  .ss-form .ss-competition-events { grid-template-columns:1fr; }
  .ss-wrap .ss-competition-dialog { width:calc(100% - 24px); max-height:calc(100dvh - 24px); padding:20px; border-radius:16px; }
  .ss-dialog-top { gap:12px; margin-bottom:18px; padding-bottom:14px; }
  .ss-dialog-top h2 { font-size:20px; }
  .ss-form .ss-actions > button { flex:1 1 auto; }

  .ss-wrap input, .ss-wrap select, .ss-wrap textarea { font-size:16px; }
  .ss-wrap #ss-app > .ss-form { padding:18px; }
}
@media screen and (max-width:380px) {
  .ss-grid tr, .ss-data-table tr { grid-template-columns:1fr; }
  .ss-summary { grid-template-columns:1fr; }
  .ss-stat { display:flex; align-items:center; justify-content:space-between; gap:10px; }
  .ss-stat strong { margin:0; }
  .ss-page-header { padding:18px; }
}
@media (prefers-reduced-motion:reduce) { .ss-wrap button { transition:none; } }
@media print { .ss-page-header, .ss-section-nav, .ss-summary, .ss-legend, .ss-public-access, .ss-form-help, .ss-experience-help { display:none !important; } }
