:root {
  font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:#172c2b;
  background:#fff;
  font-synthesis:none;
  --audience-target-visual-padding:5px;
  --audience-last-shot-outline:2px;
  --audience-side-target: minmax(172px, 1.18fr);
  --audience-side-details: minmax(0, 1fr);
  --audience-side-min-card-width:420px;
  --audience-active-series-min-height:112px;
  --audience-latest-color:#c84535;
}

* {
  box-sizing:border-box;
}

body {
  margin:0;
}

/* Startside: quiet target-inspired depth behind the venue directory. */
body:has(#startPage:not([hidden])) {
  background-color:#f7faf8;
  background-image:
    linear-gradient(rgb(247 250 248 / .88),rgb(247 250 248 / .88)),
    url('/assets/venue-target-norway.png'),
    linear-gradient(145deg,#fbfdfc 0%,#f4f8f5 52%,#f8faf9 100%);
  background-size:cover,cover,cover;
  background-position:center,center bottom,center;
  background-repeat:no-repeat;
  background-attachment:fixed;
}

body:has(#startPage:not([hidden])) .start-page {
  position:relative;
  isolation:isolate;
}

body:has(#startPage:not([hidden])) .venue-section-heading {
  border-bottom-color:rgb(93 126 108 / .25);
}

.topbar {
  min-height:74px;
  padding:16px 28px;
  display:flex;
  align-items:center;
  gap:28px;
  background:#286047;
  border-bottom:1px solid #3d785d;
  font-size:13px;
  color:#f3f8f4;
}

.brand {
  display:flex;
  align-items:center;
  gap:10px;
  font-size:18px;
  font-weight:850;
  letter-spacing:-1.5px;
  color:#f4f7fb;
  text-decoration:none;
  white-space:nowrap;
}

.klp-logo { display:block; flex:none; width:34px; height:34px; filter:drop-shadow(0 2px 3px #0004); }
.klp-logo rect { fill:#17263b; stroke:#4d6482; stroke-width:1.5; }
.klp-logo circle:not(.klp-logo-shot) { fill:none; stroke:#7ee2b8; stroke-width:2; }
.klp-logo path { fill:none; stroke:#f2b84b; stroke-width:2.2; stroke-linecap:round; }
.klp-logo .klp-logo-shot { fill:#f25f4b; stroke:#fff; stroke-width:1.2; }
.klp-logo text { fill:#fff; font:900 8px system-ui,sans-serif; letter-spacing:-.4px; }
.brand-name { font:inherit; letter-spacing:inherit; }
.topbar-version { color:#aebfb7; font-size:11px; font-weight:700; }

.topbar .brand { color:#f3f8f4; }
.topbar .topbar-version { color:#c7dfcf; }
.topbar :is(.badge,.operator-button,.topbar-collapse) {
  background:#347354; color:#f3f8f4; border-color:#3d785d;
}
.topbar :is(.operator-button,.topbar-collapse):hover,
.topbar :is(.operator-button,.topbar-collapse):focus-visible {
  background:#408362; border-color:#8bb89c; color:#f3f8f4;
}

.badge {
  margin-left:auto;
  padding:7px 13px;
  border-radius:30px;
  border:1px solid #4b665e;
  background:#314a44;
  color:#d6e3dd;
  font-size:12px;
  font-weight:650;
}
.operator-button { padding:7px 12px; border-color:#4b665e; background:#314a44; color:#e3ede8; font-size:12px; }
.operator-button[hidden] { display:none; }
.operator-button.authenticated { border-color:#7da291; background:#3f6155; }
.operator-dialog { width:min(380px,calc(100vw - 28px)); border:1px solid #b8c9c0; border-radius:12px; padding:0; color:#213c33; box-shadow:0 24px 80px #10291e66; }
.operator-dialog::backdrop { background:#10291e99; }
.operator-dialog form { position:relative; display:grid; gap:13px; padding:24px; }
.operator-dialog h2,.operator-dialog p { margin:0; }
.operator-dialog p { color:#617169; font-size:13px; }
.operator-dialog label { display:grid; gap:5px; font-size:12px; font-weight:700; }
.operator-dialog input { width:100%; padding:10px; border:1px solid #bacbc0; border-radius:8px; font:inherit; }
.operator-dialog-close { position:absolute; right:8px; top:8px; padding:5px 9px; border:0; }
.operator-login-actions { display:flex; gap:8px; }
.topbar-collapse { display:grid; flex:none; width:36px; height:34px; place-items:center; border:1px solid #4b665e; border-radius:8px; background:#314a44; color:#e3ede8; font:800 18px/1 system-ui; cursor:pointer; }
.topbar-collapse:hover,.topbar-collapse:focus-visible { border-color:#7da291; background:#3b5850; outline:none; }
body.topbar-collapsed .topbar { min-height:48px; padding-top:7px; padding-bottom:7px; }
body.topbar-collapsed .topbar-version,body.topbar-collapsed .topbar .badge { display:none; }

main {
  max-width:2048px;
  margin:auto;
  padding:48px 5%;
}

.home-view { min-height:calc(100vh - 130px); }
.start-page { width:100%; margin:0 auto; }
.start-fold,.start-page .notification-tools { margin:0 0 12px; overflow:hidden; border:1px solid #334c45; border-radius:9px; background:#fff; }
.start-fold > summary,.start-page .notification-tools > summary { display:flex; align-items:center; justify-content:space-between; min-height:42px; padding:10px 13px; list-style:none; background:#2c433d; color:#f1f6f3; cursor:pointer; font-size:12px; font-weight:800; }
.start-fold > summary::-webkit-details-marker,.start-page .notification-tools > summary::-webkit-details-marker { display:none; }
.start-fold > summary:focus-visible,.start-page .notification-tools > summary:focus-visible { outline:2px solid #88ad9c; outline-offset:-3px; }
.start-fold[open] .start-fold-action { transform:rotate(45deg); }
.start-fold-action { color:#bdd0c7; font-size:16px; transition:transform .15s; }
.start-settings-content { padding:14px; background:#f7f9fc; }
.start-settings-content div { display:flex; flex-direction:column; gap:2px; }
.start-settings-content small { color:#788493; font-size:8px; font-weight:850; letter-spacing:.08em; }
.start-settings-content strong { color:#27384b; font-size:12px; }
.start-settings-content p { margin:0; color:#677585; font-size:11px; }
.pushover-settings { display:grid; grid-template-columns:minmax(180px,1fr) minmax(240px,1.4fr) auto; align-items:end; gap:10px 14px; }
.pushover-settings label { display:grid; gap:4px; color:#425449; font-size:11px; font-weight:750; }
.pushover-settings input { min-width:0; padding:9px 10px; border:1px solid #bdcbc2; border-radius:7px; background:#fff; font:inherit; }
.pushover-settings-actions { display:flex!important; flex-direction:row!important; gap:6px!important; }
.pushover-settings-actions button { padding:8px 10px; font-size:11px; }
.pushover-settings-status { grid-column:1 / -1; color:#3e7055!important; font-weight:700; }
.start-page .notification-panel { margin:0; padding:14px; border:0; background:#f7f9fc; }
.start-page .notification-tools > summary #notificationSummary { color:#bdd0c7; font-size:10px; font-weight:700; }
.start-page .notification-tools > summary > span { float:none; }
.start-page .notification-tools > summary > span:first-child { color:#f3f8f4; }
.start-page :is(.start-fold,.notification-tools) { border-color:#3d785d; }
.start-page :is(.start-fold,.notification-tools) > summary {
  background:#286047; color:#f3f8f4;
}
.start-page .start-fold-action,
.start-page .notification-tools > summary #notificationSummary { color:#c7dfcf; }
.start-venues { margin-top:20px; }
.home-action-status:empty { display:none; }
.home-action-status { margin:0 0 12px; color:#285e43; font-size:13px; }
.panel-bar { display:flex; justify-content:space-between; align-items:center; margin:18px 0 0; padding:10px 14px; border-radius:8px; background:#edf2ee; color:#29423f; font-size:13px; }
.version-line { margin:5px 14px 10px; color:#68786e; font-size:11px; }
.home-status { color:#65736e; font-size:13px; margin:18px 4px 10px; }
.venue-grid { display:grid; gap:24px; }
.venue-section { display:grid; gap:10px; }
.venue-section-heading { display:flex; align-items:end; justify-content:space-between; gap:16px; padding-bottom:8px; border-bottom:1px solid #d8e1dc; }
.venue-section-heading h2 { margin:0; color:#1c3026; font-size:15px; }
.venue-section-heading p { margin:3px 0 0; color:#718078; font-size:10px; }
.venue-section-count { display:grid; place-items:center; min-width:28px; height:24px; padding:0 7px; border-radius:999px; background:#e6efe9; color:#315d46; font-size:11px; font-weight:800; }
.venue-section-active .venue-section-heading { border-bottom-color:#79aa8a; }
.venue-section-active .venue-section-heading h2 { color:#17673c; }
.venue-section-active .venue-section-count { background:#d9f1e2; color:#17673c; }
.venue-section-foreign { margin-top:8px; padding-top:20px; border-top:2px solid #d7dee7; }
.venue-section-title-row { display:flex; align-items:center; gap:1px; }
.venue-section-arrow { display:grid; place-items:center; width:28px; height:28px; padding:0; border:0; border-radius:7px; background:transparent; color:#315d46; cursor:pointer; transition:background-color .15s; }
.venue-section-arrow::before { content:""; width:9px; height:9px; border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform:translateY(-2px) rotate(45deg); transition:transform .15s; }
.venue-section-arrow:hover { background:#e6efe9; }
.venue-section-arrow:focus-visible { outline:3px solid #75a88c; outline-offset:2px; }
.venue-section-arrow[aria-expanded="true"]::before { transform:translateY(2px) rotate(225deg); }
.venue-section-test { margin-top:16px; }
.venue-section-test .venue-card { grid-column:-2/-1; opacity:.78; }
.venue-section-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
[hidden] { display:none !important; }
.opening-selector[hidden] { display:none; }
.opening-selector { position:fixed; inset:0; z-index:45; display:flex; align-items:center; justify-content:center; padding:18px; background:#12251eb8; }
.opening-selector-dialog { width:min(1180px,100%); max-height:calc(100vh - 36px); display:flex; flex-direction:column; overflow:hidden; border:1px solid #bfd0c5; border-radius:16px; background:#f8faf8; box-shadow:0 28px 90px #0b1d1766; }
.opening-selector-top { display:flex; justify-content:space-between; align-items:center; gap:16px; padding:16px 20px; border-bottom:1px solid #cad9cf; background:#e7f0ea; }
.opening-selector-top strong { display:block; color:#203d32; font-size:20px; }
.opening-selector-top p { margin:3px 0 0; color:#5c7065; font-size:12px; }
.opening-selector-modes { display:flex; gap:6px; }
.opening-selector-modes button,#openingEdit,.live-back { padding:7px 10px; border:1px solid #b7cfbf; border-radius:7px; background:#fff; color:#244a36; font:700 11px system-ui; cursor:pointer; }
.opening-selector-modes button.active { border-color:#357858; background:#357858; color:#fff; }
.opening-selector-body { min-height:0; padding:16px 20px 18px; overflow:auto; }
.opening-selector-heading { display:flex; align-items:end; justify-content:space-between; gap:16px; }
.opening-selector-heading strong { color:#203d32; font-size:15px; }
.opening-selector-heading p { margin:3px 0 0; color:#617268; font-size:12px; }
.opening-selector-heading>div:last-child { display:flex; gap:7px; }
.opening-selector-heading button { padding:7px 10px; font-size:11px; }
.opening-targets { display:grid; gap:12px; margin:12px 0; }
.opening-range-group { overflow:hidden; border:1px solid #d1ddd5; border-radius:8px; background:#f7f9f8; }
.opening-range-header { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:38px; padding:5px 8px 5px 12px; background:#101b2d; color:#fff; }
.opening-range-header>strong { font-size:13px; }
.opening-range-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:6px; }
.opening-range-actions button { padding:6px 9px; border:1px solid #738091; border-radius:6px; background:#2a3648; color:#fff; font:700 10px system-ui; cursor:pointer; }
.opening-range-actions button:first-child { border-color:#79a889; background:#276d45; }
.opening-range-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px 10px; padding:7px; }
.opening-target-column { display:grid; align-content:start; gap:6px; min-width:0; }
.opening-target { display:grid; grid-template-columns:20px 58px minmax(0,1fr) 74px; align-items:center; gap:8px; min-width:0; min-height:48px; padding:6px 10px; border:1px solid #d1ddd5; border-radius:7px; background:#fff; cursor:pointer; transition:border-color .12s,background .12s,box-shadow .12s; }
.opening-target:hover { border-color:#7da28c; }
.opening-target.selected { border-color:#3f8060; background:#e2f1e7; box-shadow:inset 4px 0 #3f8060; }
.opening-target input { accent-color:#347b50; width:16px; height:16px; }
.opening-target-number { color:#29483a; white-space:nowrap; font-size:12px; }
.opening-target-identity,.opening-target-result { display:grid; min-width:0; }
.opening-target-identity strong,.opening-target-result strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#243d33; font-size:12px; }
.opening-target-identity span,.opening-target-result span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#69796f; font-size:10px; }
.opening-target-result { min-width:70px; text-align:right; }
.opening-target-result strong { font-size:14px; }
.opening-selector-footer { padding-top:4px; color:#718078; font-size:10px; }
.opening-show { width:100%; min-height:50px; border:0; border-radius:9px; background:#286b4a; color:#fff; font:800 16px system-ui; cursor:pointer; transition:background-color .15s; }
.opening-show:hover:not(:disabled) { background:#194d35; }
.opening-show:disabled { opacity:.45; cursor:not-allowed; }
.venue-card { position:relative; min-height:88px; padding:12px 14px; border:1px solid #afcbbc; border-radius:11px; background:linear-gradient(135deg,#e9f3ed,#dcebe2); color:#234638; text-align:left; display:grid; grid-template-columns:1fr auto; align-content:start; gap:3px 12px; font:inherit; cursor:pointer; box-shadow:0 5px 16px #244b3820; transition:border-color .15s,box-shadow .15s,transform .15s; }
.venue-card:hover,.venue-card.selected { border-color:#5e9575; box-shadow:0 10px 24px #244b3830; transform:translateY(-2px); }
.venue-card:focus-visible { border-color:#397655; outline:3px solid #75a88c; outline-offset:2px; }
.venue-card strong { grid-column:1 / -1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:14px; }
.venue-card span { font-size:10px; font-weight:700; }
.venue-card .venue-location { grid-column:1 / -1; overflow:hidden; color:#62786c; text-overflow:ellipsis; white-space:nowrap; font-weight:500; }
.venue-card .venue-state { align-self:end; margin-top:9px; color:#2f7951; letter-spacing:.055em; }
.venue-card .venue-state:empty { margin-top:0; }
.venue-card .venue-open { align-self:end; justify-self:end; margin-top:9px; color:#285e43; font-size:11px; }
.venue-section-online .venue-card { box-sizing:border-box; min-height:62px; padding:9px 12px; gap:2px; background:#f5f9f6; box-shadow:0 2px 8px #244b3814; }
.venue-section-online .venue-card strong { font-size:13px; padding-right:72px; }
.venue-section-online .venue-card .venue-location { font-size:10px; padding-right:72px; }
.venue-section-online .venue-card .venue-state { display:none; }
.venue-section-online .venue-card .venue-open { position:absolute; top:50%; right:12px; transform:translateY(-50%); margin:0; font-size:11px; }
.venue-card.unavailable { border-color:#cdd3dc; background:#e6e9ee; color:#697484; opacity:1; cursor:default; box-shadow:none; }
.venue-card.unavailable:hover { border-color:#cdd3dc; transform:none; }
.venue-card.unavailable .venue-location,.venue-card.unavailable .venue-state,.venue-card.unavailable .venue-open { color:#7e8997; }
.start-range-picker { margin-top:14px; padding:14px; border:1px solid #a8ccb5; border-radius:10px; background:#eef8f1; }
.start-range-picker header div { display:flex; align-items:baseline; gap:9px; min-width:0; }
.start-range-picker header span { overflow:hidden; color:#60736a; text-overflow:ellipsis; white-space:nowrap; font-size:11px; }
.start-range-picker header strong { color:#284a39; font-size:14px; }
.start-range-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:8px; margin-top:10px; }
.start-range-card { display:grid; grid-template-columns:1fr auto; gap:5px 10px; min-height:64px; padding:11px 12px; border:1px solid #a9c8b4; border-radius:8px; background:#fff; color:#284a39; text-align:left; cursor:pointer; }
.start-range-card:hover,.start-range-card:focus-visible { border-color:#3f8060; box-shadow:0 4px 12px #244b3820; outline:none; }
.start-range-card strong { grid-column:1 / -1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:13px; }
.start-range-card span { color:#347452; font-size:9px; font-weight:800; letter-spacing:.04em; }
.start-range-card b { justify-self:end; font-size:10px; }
.start-range-card.unavailable { border-color:#ccd5cf; background:#e9edeb; color:#758078; cursor:default; }
.start-range-card.unavailable span,.start-range-card.unavailable b { color:#7c8780; }
.start-range-picker p { margin:8px 2px 0; color:#60736a; font-size:10px; }
.home-actions { position:sticky; bottom:10px; display:flex; justify-content:center; gap:4px; margin:26px auto 0; padding:4px; width:max-content; max-width:100%; background:#ffffff; border-radius:7px; box-shadow:0 2px 14px #18382a22; }
.home-actions button { padding:8px 11px; border:0; border-radius:5px; font-size:11px; background:#f0f3f1; color:#172c2b; }
.home-actions button:nth-child(1) { background:#dfebe2; color:#29423f; }
.home-actions button:nth-child(2) { background:#eee9dd; color:#594d34; }
.sim-controls[hidden] { display:none; }
.sim-controls { position:fixed; right:14px; bottom:14px; z-index:50; width:min(340px,calc(100vw - 28px)); padding:12px; border:1px solid #dce6df; border-radius:10px; background:#f7faf8; box-shadow:0 6px 24px #18382a2a; }
.sim-controls p { margin:0; font-size:13px; color:#355e49; font-weight:650; }
.sim-controls .home-actions { display:grid; grid-template-columns:1fr 1fr; width:100%; margin:12px 0 0; box-shadow:none; border:0; }
.sim-controls .home-actions button { min-height:42px; }
.sim-controls .home-actions button:last-child { grid-column:1 / -1; }
.sim-controls .sim-scenarios { display:flex; gap:4px; margin-top:8px; }
.sim-controls .sim-scenarios button { flex:1; min-height:32px; padding:5px 8px; }
.sim-controls .sim-scenarios button.active { background:#2f78dc; color:#fff; border-color:#2f78dc; }
.detail-view[hidden], .home-view[hidden] { display:none; }
.selector-overlay[hidden] { display:none; }
.selector-overlay { position:fixed; inset:0; z-index:40; background:#12251eae; display:flex; align-items:center; justify-content:center; padding:20px; }
.selector-dialog { width:min(1140px,100%); max-height:calc(100vh - 40px); display:flex; flex-direction:column; overflow:hidden; border:1px solid #d3dfd5; border-radius:16px; background:#fff; box-shadow:0 25px 90px #10291e55; }
.selector-header { display:flex; justify-content:space-between; align-items:center; gap:16px; padding:20px 24px; background:#e8f1e9; border-bottom:1px solid #d6e2d8; }
.selector-header h2 { margin:0; font-size:24px; letter-spacing:-.04em; }
.selector-header p { margin:4px 0 0; color:#577064; font-size:13px; }
.selector-header-actions { display:flex; align-items:center; gap:7px; flex-wrap:wrap; }
.selector-body { padding:20px 24px 24px; overflow:auto; }
.selector-heading { display:flex; align-items:center; justify-content:space-between; gap:15px; }
.selector-heading strong { font-size:15px; }
.selector-heading p { margin:4px 0 0; color:#66786d; font-size:12px; }
.selector-actions { display:flex; gap:7px; }
.selector-actions button { padding:8px 11px; font-size:12px; }
.selector-range-choice { display:flex; align-items:center; gap:10px; margin:16px 0 0; color:#52675c; font-size:13px; font-weight:700; }
.selector-range-choice select { min-width:240px; padding:8px 11px; border:1px solid #becfc2; border-radius:8px; background:#fff; color:#203f34; font:inherit; }
.selector-range-choice:has(select[hidden]) { display:none; }
.show-targets { display:block; width:100%; margin:16px 0; padding:17px; border:1px solid #286b4a; border-radius:10px; background:#286b4a; color:#fff; font-size:16px; font-weight:800; letter-spacing:.02em; transition:background-color .15s,border-color .15s; }
.show-targets:hover:not(:disabled) { border-color:#194d35; background:#194d35; }
.show-targets:disabled { background:#dae5dc; border-color:#dae5dc; color:#627569; cursor:default; }
.selector-range-bar { display:flex; justify-content:space-between; align-items:center; gap:10px; margin-bottom:10px; padding:10px 13px; border-radius:8px; background:#e8f1e9; color:#244537; font-size:13px; }
.target-choices { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px 12px; }
.target-choice { display:flex; align-items:center; gap:8px; min-width:0; min-height:49px; padding:8px 11px; border:1px solid #d8e2da; border-radius:8px; cursor:pointer; font-size:12px; }
.target-choice.chosen { background:#f0faf2; border-color:#aed8bb; }
.target-choice input { width:18px; height:18px; margin:0 3px 0 0; accent-color:#3c9565; flex:none; }
.target-choice-number { flex:none; color:#52695a; font-weight:700; }
.target-choice-name { min-width:0; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; font-weight:700; }
.target-choice-club { min-width:0; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; color:#66776d; }
.target-choice-class { margin-left:auto; flex:none; color:#577064; }
.detail-actions { display:flex; gap:8px; align-items:center; }
.back-button { border:0; background:transparent; padding:0; color:#567266; font-size:12px; cursor:pointer; margin-bottom:18px; }

.intro {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
}

.eyebrow {
  font-size:11px;
  letter-spacing:2px;
  font-weight:700;
  color:#597468;
  margin:0 0 10px;
}

h1 {
  font-size:clamp(30px,4vw,44px);
  letter-spacing:-1.5px;
  margin:0;
}

.muted {
  color:#66756f;
  font-size:14px;
}

.controls { display:flex; align-items:end; gap:12px; flex-wrap:wrap; margin:30px 0 12px; padding:14px; background:#fff; border:1px solid #dbe4dd; border-radius:12px; }
.controls label { display:flex; flex-direction:column; gap:5px; color:#617169; font-size:11px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; }
.controls select { min-width:190px; border:1px solid #bacbc0; border-radius:8px; background:#fff; color:#214c3d; padding:9px 28px 9px 10px; font:inherit; font-size:13px; text-transform:none; letter-spacing:0; }
.controls select:disabled { color:#6e7d74; background:#f7f9f7; }
.view-switch { display:flex; gap:4px; margin-left:auto; }
.view-button { border:1px solid #d0ddd4; border-radius:7px; padding:9px 12px; font-size:12px; }
.view-button.active { background:#214c3d; color:#fff; border-color:#214c3d; }

button {
  border:1px solid #bacbc0;
  background:#fff;
  color:#214c3d;
  border-radius:9px;
  padding:11px 18px;
  font:inherit;
  font-size:14px;
  cursor:pointer;
}

button:hover {
  background:#e9f0eb;
}

button:focus-visible,a:focus-visible {
  outline:3px solid #328367;
  outline-offset:4px;
}

button:disabled {
  opacity:.6;
  cursor:wait;
}

#status {
  font-size:13px;
  color:#63736c;
  min-height:20px;
  margin:25px 0;
}

#status.error {
  color:#a03727;
}

.range-header {
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:16px;
  border-bottom:1px solid #ccd8cf;
  padding-bottom:13px;
  margin:28px 0 18px;
}

.range-header h2 {
  font-size:19px;
  margin:0;
}

.range-header p {
  font-size:13px;
  color:#68786e;
  margin:0;
}

.grid {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
  gap:18px;
}

.card {
  background:#fff;
  border:1px solid #dbe4dd;
  border-radius:14px;
  padding:16px;
  min-height:450px;
  overflow:hidden;
  box-shadow:0 3px 10px #20382c04;
}

.target-wrap { height:180px; margin:12px auto 0; display:flex; justify-content:center; align-items:center; }
.target-svg { width:180px; height:180px; display:block; }
.target-rings { filter:drop-shadow(0 2px 2px #18382a22); }
.shot circle { fill:#df3547; stroke:#fff; stroke-width:1.5; }
.shot text { fill:#fff; font:700 6px system-ui; text-anchor:middle; pointer-events:none; }
.spread-line { stroke:#d7a600; stroke-width:1.8; stroke-linecap:round; opacity:.9; pointer-events:none; }
.spread-label { color:#9c661f; font-size:11px; margin:-4px 0 0; text-align:center; }
.series-row { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:4px; border-top:1px solid #edf0eb; border-bottom:1px solid #edf0eb; padding:8px 0; margin:4px 0 18px; }
.series-cell { min-width:0; text-align:center; }
.series-name { display:block; color:#6e7d74; font-size:9px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.series-cell strong { display:block; color:#203f34; font-size:13px; margin-top:2px; }

.card-top {
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-bottom:22px;
}

.number {
  background:#edf3ed;
  color:#355e49;
  border-radius:7px;
  padding:7px 10px;
  font-size:12px;
  font-weight:750;
}

.class {
  font-size:12px;
  color:#6b7b71;
}

.card h3 {
  font-size:19px;
  line-height:26px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  margin:0 0 4px;
}

.club {
  font-size:13px;
  color:#6e7d74;
  margin:0;
  height:20px;
}

.dfs-slot { min-height:180px; margin:12px 0 2px; }
.dfs-loading,.dfs-empty { margin:10px 0; color:#6e7d74; font-size:11px; }
.dfs-profile { display:grid; gap:10px; align-items:stretch; }
.dfs-profile img { width:100%; height:180px; object-fit:cover; border-radius:9px; background:#edf3ed; }
.dfs-history { min-width:0; padding:7px 8px; border:1px solid #e0e8e1; border-radius:9px; background:#fafcfb; }
.dfs-title { margin:0 0 5px; color:#64766a; font-size:9px; font-weight:800; letter-spacing:.04em; text-transform:uppercase; }
.dfs-result-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:4px; }
.dfs-result { min-width:0; padding:5px 3px; border:1px solid #e3eae4; border-radius:5px; text-align:center; }
.dfs-result.recent { border-color:#9ed4ae; background:#ecf9ef; }
.dfs-result strong,.dfs-result span,.dfs-result time { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.dfs-result strong { color:#264837; font-size:16px; }
.dfs-result span,.dfs-result time { color:#718076; font-size:8px; }

.result {
  display:flex;
  align-items:center;
  justify-content:space-between;
  border-top:1px solid #edf0eb;
  margin-top:24px;
  padding-top:18px;
}

.result-label {
  font-size:12px;
  color:#6e7d74;
}

.total {
  font-size:30px;
  font-weight:650;
  letter-spacing:-1px;
}

.phase {
  font-size:12px;
  color:#9c661f;
  margin:0 0 5px;
}

.shots {
  font-size:12px;
  color:#6e7d74;
  margin:0;
}

.empty {
  padding:45px 24px;
  text-align:center;
  background:white;
  border:1px dashed #c7d4c9;
  border-radius:14px;
  color:#637368;
}

.footnote {
  font-size:12px;
  color:#748076;
  margin-top:32px;
  line-height:1.6;
}

@media(max-width:1000px) {
  .grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .topbar {
    gap:15px;
  }
  .topbar>span:not(.badge) {
    display:none;
  }
  .venue-section-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media(max-width:760px) {
  .target-choices { grid-template-columns:1fr; }
  .selector-body { padding-bottom:270px; }
  .target-choice-club { display:none; }
}

@media(max-width:600px) {
  main {
    padding:30px 20px;
  }
  .topbar {
    padding:16px 20px;
  }
  .controls { align-items:stretch; flex-direction:column; }
  .controls label, .controls select { width:100%; }
  .view-switch { margin-left:0; }
  .venue-section-grid { grid-template-columns:minmax(0,1fr); }
  .selector-overlay { padding:8px; }
  .selector-dialog { max-height:calc(100vh - 16px); }
  .selector-header,.selector-body { padding:14px; }
  .selector-header { align-items:flex-start; flex-direction:column; }
  .selector-heading { align-items:flex-start; flex-direction:column; }
  .target-choices { grid-template-columns:1fr; }
  .target-choice-club { display:none; }
  .detail-actions { flex-direction:column; align-items:stretch; }
  .home-actions { width:100%; overflow:auto; justify-content:flex-start; }
  .grid {
    grid-template-columns:minmax(0,1fr);
  }
  .range-header {
    align-items:flex-start;
    flex-direction:column;
    gap:8px;
  }
  .intro {
    align-items:flex-start;
  }
  .intro button {
    margin-top:28px;
  }
  .card {
    min-height:430px;
  }
  .target-wrap { height:165px; }
  .target-svg { width:165px; height:165px; }
}

/* The public target wall follows the compact card layout of the KLP 1.9 viewer. */
body:has(.detail-view:not([hidden])) .topbar { display:none; }
main:has(.detail-view:not([hidden])) { max-width:none; padding:0 12px 84px; }
.detail-view .intro { margin:0 -12px; padding:12px 20px; background:#17212f; color:#f8fafc; }
.detail-view .intro > div:first-child { display:flex; align-items:center; gap:18px; flex-wrap:wrap; }
.detail-view .intro h1 { font-size:24px; letter-spacing:-.04em; }
.detail-view .intro .eyebrow { display:none; }
.detail-view .intro .muted { display:block; width:100%; margin:-13px 0 0 117px; color:#aab6c4; font-size:11px; font-weight:650; }
.detail-view .back-button { margin:0; color:#fbbf66; font-weight:700; }
.detail-view .detail-actions button { padding:7px 11px; font-size:12px; }
.detail-view .controls { margin:0 -12px; padding:6px 20px; border:0; border-radius:0; border-bottom:1px solid #dce4e9; background:#f7f9fa; }
.detail-view .controls label { flex-direction:row; align-items:center; gap:6px; }
.detail-view .controls select { min-width:140px; padding:5px 22px 5px 7px; }
.detail-view #status { margin:5px 0; min-height:0; font-size:11px; }
.detail-view .range-header { margin:6px 0 8px; padding:4px 1px; border-color:#dce4e9; }
.detail-view .range-header h2 { font-size:13px; }
.detail-view .range-header p { font-size:11px; }
.detail-view .grid { grid-template-columns:minmax(0,1fr); gap:6px; }
.detail-view .card { min-height:0; padding:7px; border:1px solid #cbd5df; border-radius:6px; box-shadow:none; }
.detail-view .card { cursor:pointer; }
.detail-view .card { container-type:inline-size; }
.detail-view .card:hover,.detail-view .card:focus-visible { border-color:#3f8068; box-shadow:0 0 0 2px #3f806833; outline:none; }
.detail-view .card-top { margin:0 0 4px; }
.detail-view .number { padding:2px 5px; border-radius:4px; background:#e9edf2; color:#1f2937; font-size:11px; }
.detail-view .class { display:none; }
.detail-view .card h3 { margin:0; font-size:14px; line-height:18px; }
.detail-view .club { height:16px; color:#697383; font-size:10px; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.active-series { min-height:35px; margin:4px 0; padding:2px 5px; border:1px solid #d8dfe7; border-radius:5px; background:#f8fafc; }
.active-series.practice { border-color:#f4ac35; background:#fffbeb; }
.active-series.reserved { visibility:hidden; }
.active-series span { display:block; color:#697383; font-size:8px; font-weight:800; }
.active-series strong { display:block; color:#17212f; font-size:12px; line-height:15px; }
.detail-view .dfs-slot { min-height:0; margin:0; }
.detail-view .dfs-profile { gap:4px; }
.detail-view .dfs-profile img { height:218px; border-radius:5px; }
.detail-view .dfs-history { padding:5px; border-radius:5px; }
.detail-view .target-wrap { height:218px; margin:0; flex-direction:column; border-radius:5px; background:#f8faf9; }
.detail-view .target-svg { width:min(100%,210px); height:205px; }
.detail-view .spread-label { color:#52606d; font-size:10px; }
.target-presentation { display:grid; gap:5px; min-width:0; }
.target-presentation.under { grid-template-columns:minmax(0,1fr); }
.target-panel,.target-info-panel { min-width:0; }
.target-info-panel { display:grid; align-content:start; gap:5px; }
.shot-strip { display:flex; align-items:center; flex-wrap:wrap; gap:3px; min-height:29px; margin:4px 0; padding:3px; border:1px solid #8dcbb0; border-radius:4px; background:#f1faf5; }
.shot-strip.practice { border-color:#f4ac35; background:#fffbeb; }
.shot-strip-label { width:100%; color:#64748b; font-size:8px; font-weight:800; }
.shot-chip { position:relative; display:grid; place-items:center; min-width:25px; min-height:23px; padding:2px 3px; overflow:hidden; border-radius:3px; background:#dff1e6; color:#20543a; text-align:center; font-size:11px; font-weight:800; }
.shot-chip .shot-cell-no { position:absolute; top:2px; left:3px; color:inherit; font-size:7px; font-weight:900; line-height:1; opacity:.78; }
.shot-chip .shot-cell-value { position:relative; z-index:1; }
.shot-strip.practice .shot-chip { background:#ffe9bb; color:#92400e; }
.shot-chip.latest { outline:2px solid #23875a; outline-offset:1px; }
.shot-strip.practice .shot-chip.latest { background:#f6bd60; outline-color:#b45f08; }
.shot-chip.crossed::after { position:absolute; inset:0; z-index:2; content:''; pointer-events:none; background:linear-gradient(135deg,transparent 46%,#8a3440 47%,#8a3440 53%,transparent 54%); }
.shot-strip.practice .shot-chip.crossed::after { background:linear-gradient(135deg,transparent 46%,#8b4a09 47%,#8b4a09 53%,transparent 54%); }
.detail-view .series-row { gap:2px; margin:5px 0; padding:0; border:0; }
.detail-view .series-cell { min-height:39px; padding:4px 1px; border:1px solid #e1e5eb; border-radius:4px; }
.detail-view .series-name { font-size:8px; }
.detail-view .series-cell strong { font-size:12px; }
.detail-view .result { gap:3px; margin:0; padding:0; border:0; }
.result-box { flex:1; padding:3px; border:1px solid #dce2e9; border-radius:4px; text-align:center; }
.detail-view .result-label { font-size:8px; font-weight:800; }
.detail-view .total { font-size:16px; line-height:20px; }

@media (min-width:700px) {
  .detail-view .target-grid-2,
  .detail-view .target-grid-3 { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .detail-view .target-grid-many { grid-template-columns:repeat(auto-fit,minmax(min(100%,430px),1fr)); }
}

@media (min-width:1340px) {
  .detail-view .target-grid-3 { grid-template-columns:repeat(3,minmax(0,1fr)); }
}

@container (min-width:430px) {
  .target-presentation { grid-template-columns:minmax(190px,1.05fr) minmax(190px,.95fr); align-items:stretch; gap:7px; }
  .target-presentation .target-wrap { height:100%; min-height:205px; }
  .target-presentation .target-svg { width:min(100%,218px); height:auto; max-height:210px; }
  .target-presentation .shot-strip { margin:0; }
  .target-presentation .series-row { margin:0; }
}
.detail-view .footnote { margin:10px 0; }
.sim-controls { left:50%; right:auto; bottom:8px; transform:translateX(-50%); width:max-content; max-width:calc(100vw - 20px); padding:3px; border-color:#253349; border-radius:6px; background:#17212f; }
.sim-controls p { display:none; }
.sim-controls .sim-scenarios { margin:0 4px 0 0; }
.sim-controls .home-actions { display:flex; flex-wrap:nowrap; width:auto; margin:0; padding:0; background:transparent; }
.sim-controls .home-actions button,.sim-controls .home-actions button:last-child { grid-column:auto; min-height:0; padding:7px 9px; white-space:nowrap; }
.sim-controls-toggle { display:block; margin:0 0 4px auto; padding:5px 9px; border:1px solid #405069; border-radius:5px; background:#27364a; color:#fff; font:600 11px system-ui; cursor:pointer; }
.sim-controls.is-collapsed { left:auto; right:8px; bottom:8px; transform:none; width:auto; overflow:visible; }
.sim-controls.is-collapsed .sim-controls-toggle { margin:0; }
.sim-controls.is-collapsed .sim-controls-content { display:none; }
@media(max-width:600px) {
  .detail-view .intro { align-items:flex-start; flex-direction:column; }
  .detail-view .intro .muted { margin:0; }
  .detail-view .detail-actions { flex-direction:row; }
  .detail-view .controls { flex-direction:row; }
  .detail-view .grid { grid-template-columns:minmax(0,1fr); }
  .sim-controls { width:calc(100vw - 16px); overflow:auto; }
  .sim-controls.is-collapsed {
    top:12px; right:78px; bottom:auto; width:30px; padding:0;
    border:0; background:transparent; box-shadow:none;
  }
  .sim-controls.is-collapsed .sim-controls-toggle {
    width:30px; height:30px; padding:0; margin:0; font-size:0;
  }
  .sim-controls.is-collapsed .sim-controls-toggle::before { content:'🎛'; font-size:16px; }
}

.shot-detail-overlay[hidden] { display:none; }
.shot-detail-overlay { position:fixed; inset:0; z-index:60; display:grid; place-items:center; padding:18px; background:#101c29bb; }
.shot-detail-dialog { position:relative; width:min(850px,100%); max-height:calc(100vh - 36px); overflow:auto; padding:26px; border-radius:14px; background:#fff; box-shadow:0 22px 70px #0d1b2d66; }
.shot-detail-close { position:absolute; top:14px; right:16px; padding:7px 12px; font-size:12px; }
.shot-detail-heading { padding-right:95px; }
.shot-detail-number { margin:0 0 4px; color:#3c6c58; font-size:11px; font-weight:850; letter-spacing:.08em; }
.shot-detail-heading h2 { margin:0; font-size:27px; line-height:1.2; }
.shot-detail-heading>p:last-child { margin:5px 0 0; color:#68786e; font-size:13px; }
.shot-detail-series { display:flex; align-items:center; gap:5px; margin:14px 0 -7px; overflow-x:auto; color:#68786e; font-size:10px; font-weight:800; white-space:nowrap; }
.shot-detail-series button { flex:none; padding:5px 8px; border:1px solid #d5e0d8; border-radius:6px; background:#fff; color:#466052; font:750 10px system-ui; cursor:pointer; }
.shot-detail-series button.active { border-color:#4f8b65; background:#eaf4ed; color:#24553a; }
.shot-detail-knepp { padding:4px 6px; border:1px solid #f0d58a; border-radius:5px; background:#fff8dc; color:#72530b!important; font-weight:850; }
.shot-detail-metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; margin:20px 0; }
.shot-detail-metric { min-width:0; padding:10px; border:1px solid #dce6df; border-radius:8px; background:#f7faf8; }
.shot-detail-metric span { display:block; color:#67796f; font-size:9px; font-weight:800; letter-spacing:.03em; }
.shot-detail-metric strong { display:block; margin-top:4px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#233f34; font-size:18px; }
.shot-detail-body { display:grid; grid-template-columns:minmax(240px,1fr) minmax(180px,.8fr); gap:22px; align-items:start; }
.shot-detail-plot { padding:12px; border:1px solid #dce6df; border-radius:10px; background:#f2f5f2; text-align:center; }
.shot-detail-svg { display:block; width:min(100%,400px); height:auto; margin:auto; }
.target-center { pointer-events:none; }
.target-center-halo { fill:#ffffff99; stroke:#1c2c35; stroke-width:1; vector-effect:non-scaling-stroke; }
.target-center-dot { fill:#f8fafc; stroke:#1c2c35; stroke-width:1.2; vector-effect:non-scaling-stroke; }
.shot-detail-plot p { margin:5px 0 0; color:#64766d; font-size:11px; }
.detail-shot text { fill:#fff; font:900 10px system-ui; text-anchor:middle; pointer-events:none; }
.detail-shot .cross-mark { stroke:#fff; stroke-width:2; stroke-linecap:round; }
.detail-shot.analysis-excluded { opacity:.2; }
.shot-detail-analysis-controls { display:flex; flex-wrap:wrap; justify-content:space-between; gap:8px; margin:14px 0 10px; }
.shot-detail-mode,.shot-detail-selection-actions { display:flex; align-items:center; gap:5px; }
.shot-detail-mode span { margin-right:3px; color:#68786e; font-size:10px; font-weight:850; text-transform:uppercase; }
.shot-detail-analysis-controls button { padding:6px 9px; border:1px solid #d5e0d8; border-radius:6px; background:#fff; color:#466052; font:750 10px system-ui; cursor:pointer; }
.shot-detail-analysis-controls button.active { border-color:#4f8b65; background:#eaf4ed; color:#24553a; }
.shot-detail-analysis-note { padding:5px 7px; border-radius:5px; background:#eef2ef; }
.shot-detail-list { display:grid; gap:5px; margin:0; padding:0; list-style:none; }
.shot-detail-item { position:relative; overflow:hidden; border:1px solid #dae4dc; border-radius:7px; background:#fff; font-size:12px; }
.shot-detail-select { display:grid; width:100%; grid-template-columns:45px 1fr auto; align-items:center; gap:8px; padding:9px 10px; border:0; background:transparent; color:inherit; font:inherit; cursor:pointer; }
.shot-detail-item strong { font-size:17px; }
.shot-detail-item .shot-cell-no { align-self:start; color:#50655a; font-size:10px; font-weight:900; }
.shot-detail-item .shot-cell-value { text-align:center; }
.shot-detail-item span:last-child { color:#4e7860; font-size:10px; font-weight:750; }
.shot-detail-item.crossed { border-color:#cbd0d5; background:#f1f2f3; color:#6d7782; }
.shot-detail-item.crossed span:last-child { color:#68727d; }
.shot-detail-item.crossed::after { position:absolute; inset:0; z-index:1; content:''; pointer-events:none; background:linear-gradient(135deg,transparent 48%,#8a344099 49%,#8a344099 51%,transparent 52%); }
.shot-detail-item.crossed>* { position:relative; z-index:2; }
.shot-detail-item.practice { border-color:#f2cf9a; background:#fff9ee; }
.shot-detail-item.practice span:last-child { color:#a65308; }
.shot-detail-item.practice.crossed { border-color:#cbd0d5; background:#f1f2f3; }
.shot-detail-item.latest { outline:2px solid #eea34d; outline-offset:-2px; }
.shot-detail-item.analysis-selected { box-shadow:inset 3px 0 #4f8b65; }
.shot-detail-item.analysis-excluded { opacity:.42; }
.shot-detail-empty { padding:20px; color:#66766d; text-align:center; font-size:13px; }

/* Utvidet series popup: compact Tampermonkey-inspired analysis surface. */
.shot-detail-dialog.compact {
  box-sizing:border-box; width:min(610px,100%); max-height:calc(100dvh - 16px); overflow:hidden;
  padding:14px; border-radius:12px;
}
.shot-detail-dialog.compact .shot-detail-close {
  top:14px; right:14px; display:grid; width:40px; height:40px; padding:0; place-items:center;
  border:0; border-radius:9px; background:#f3f4f6; color:#111827; font-size:30px; font-weight:300; line-height:1;
}
.compact-shot-detail .shot-detail-heading { padding-right:52px; }
.compact-shot-detail .shot-detail-heading h2 { font-size:22px; }
.compact-shot-detail .shot-detail-heading > p:last-child { margin-top:5px; font-size:12px; font-weight:650; }
.compact-shot-body { display:grid; gap:8px; margin-top:10px; }
.compact-shot-detail .shot-detail-plot {
  position:relative; overflow:hidden; height:clamp(280px,48dvh,450px); padding:0; border:0; border-radius:8px; background:#202020;
}
.compact-shot-detail .shot-detail-svg { width:100%; height:100%; max-width:none; object-fit:contain; }
.compact-shot-detail .knepp-grid-line { stroke:#ffd23f; stroke-width:.62; stroke-opacity:.55; vector-effect:non-scaling-stroke; }
.compact-shot-detail .knepp-grid-line.major { stroke-width:1; stroke-opacity:.76; }
.compact-shot-detail .knepp-grid-axis { stroke:#ffd21f; stroke-width:1.35; stroke-opacity:.96; vector-effect:non-scaling-stroke; }
.compact-shot-detail .knepp-projection line {
  stroke:#ffd21f; stroke-width:3.5; stroke-dasharray:8 6; stroke-linecap:round; vector-effect:non-scaling-stroke;
}
.compact-shot-detail .knepp-projection .knepp-reference { fill:#2f63df; fill-opacity:.9; stroke:#ffe35d; stroke-width:2; vector-effect:non-scaling-stroke; }
.compact-shot-detail .knepp-projection .knepp-estimate { fill:#ffd21f; stroke:#7c5b00; stroke-width:1.2; vector-effect:non-scaling-stroke; }
.compact-shot-detail .knepp-projection path { fill:none; stroke:#fff4a3; stroke-width:1.6; stroke-linecap:round; vector-effect:non-scaling-stroke; }
.compact-shot-modes {
  position:absolute; right:12px; bottom:58px; z-index:3; display:grid; grid-template-columns:1fr 1fr;
  width:min(270px,48%); padding:3px; border-radius:7px; background:#f8fafce8; box-shadow:0 2px 8px #0f172a33;
}
.compact-shot-modes button {
  min-height:28px; padding:4px 7px; border:1px solid #d1d5db; background:#fff; color:#374151;
  font:750 10px system-ui; cursor:pointer;
}
.compact-shot-modes button:first-child { border-radius:5px 0 0 5px; }
.compact-shot-modes button:last-child { border-radius:0 5px 5px 0; }
.compact-shot-modes button.active { border-color:#2563eb; background:#e8f0ff; color:#1d4ed8; }
.compact-shot-recommendation {
  position:absolute; right:12px; bottom:10px; z-index:3; display:grid; align-content:center;
  box-sizing:border-box; width:min(270px,48%); min-height:44px; padding:5px 9px;
  border:1px solid #e8c57a; border-radius:7px; background:#fff9e8ed; color:#4b3520; text-align:center;
  box-shadow:0 2px 8px #0f172a33;
}
.compact-shot-recommendation span { color:#8b5e27; font-size:8px; font-weight:900; letter-spacing:.04em; }
.compact-shot-recommendation strong { overflow:hidden; font-size:12px; line-height:1.1; text-overflow:ellipsis; white-space:nowrap; }
.compact-shot-recommendation small { margin-top:2px; color:#6b7280; font-size:8px; }
.compact-shot-summary { display:grid; grid-template-columns:1.35fr 1fr 1fr; gap:8px; }
.compact-summary-box {
  display:grid; align-content:center; min-width:0; min-height:62px; padding:7px 10px;
  border-radius:8px; background:#f8fafc; color:#111827; text-align:center;
}
.compact-summary-box span { color:#6b7280; font-size:9px; font-weight:850; letter-spacing:.03em; }
.compact-summary-box strong { margin-top:3px; overflow:hidden; font-size:20px; line-height:1.05; text-overflow:ellipsis; white-space:nowrap; }
.compact-summary-box.knepp { border:1px solid #e9a60d; background:linear-gradient(#ffd42a,#f5a400); font:inherit; cursor:pointer; }
.compact-summary-box.knepp span { color:#4a2d00; }
.compact-summary-box.knepp strong { color:#201600; font-size:18px; white-space:normal; }
.compact-selection-heading { margin:0 0 -5px; overflow:hidden; color:#526158; font-size:10px; font-weight:850; letter-spacing:.035em; text-align:center; text-overflow:ellipsis; white-space:nowrap; }
.compact-shot-detail .shot-detail-list { grid-template-columns:repeat(5,minmax(0,1fr)); gap:8px; }
.compact-shot-detail .shot-detail-item { min-width:0; min-height:clamp(44px,6.5dvh,62px); border-color:#d9dee5; background:#f9fafb; }
.compact-shot-detail .shot-detail-item.practice { border-color:#d9dee5; background:#f9fafb; }
.compact-shot-detail .shot-detail-item.latest { outline:0; }
.compact-shot-detail .shot-detail-select {
  position:relative; display:grid; box-sizing:border-box; height:100%; min-height:clamp(44px,6.5dvh,62px);
  grid-template-columns:1fr; gap:0; padding:7px 5px 5px 18px; place-items:center;
}
.compact-shot-detail .shot-detail-item .shot-cell-no { position:absolute; top:5px; left:6px; transform:none; font-size:10px; line-height:1; }
.compact-shot-detail .shot-detail-item .shot-cell-value { align-self:center; font-size:19px; line-height:1; }
.compact-shot-detail .shot-detail-item span:last-child { display:none; }
.compact-shot-detail .shot-detail-item.analysis-selected { border-color:#b9dfc6; box-shadow:inset 0 0 0 2px #4f8b6544; }
.compact-shot-detail .shot-detail-item.analysis-excluded { border-color:#edc7c7; opacity:.55; }
.compact-shot-detail .shot-detail-item.crossed::after { background:linear-gradient(135deg,transparent 46%,#c94545bb 47%,#c94545bb 53%,transparent 54%); }
@media(max-width:650px) {
  .shot-detail-overlay { padding:6px; }
  .shot-detail-dialog.compact { max-height:calc(100dvh - 12px); padding:10px; }
  .compact-shot-body { gap:8px; margin-top:10px; }
  .compact-shot-detail .shot-detail-plot { height:clamp(235px,43dvh,390px); }
  .compact-shot-modes { right:7px; bottom:47px; width:52%; }
  .compact-shot-recommendation { right:7px; bottom:6px; width:52%; min-height:38px; padding:3px 6px; }
  .compact-shot-recommendation small { display:none; }
  .compact-shot-summary { gap:5px; }
  .compact-summary-box { min-height:52px; padding:5px; }
  .compact-summary-box strong { font-size:17px; }
  .compact-summary-box.knepp strong { font-size:10px; }
  .compact-shot-detail .shot-detail-list { gap:5px; }
  .compact-shot-detail .shot-detail-item,.compact-shot-detail .shot-detail-select { min-height:clamp(40px,6dvh,54px); }
  .compact-shot-detail .shot-detail-item .shot-cell-value { font-size:17px; }
}
@media(max-width:950px) and (min-width:651px) {
  .venue-section-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .start-settings-content { grid-template-columns:1fr 1fr; }
  .start-settings-content p { grid-column:1 / -1; }
}
@media(max-width:650px) {
  main { padding:26px 16px; }
  .topbar { min-height:62px; padding:11px 12px; gap:8px; }
  .brand { font-size:14px; letter-spacing:-.8px; }
  .brand span { font-size:13px; }
  .topbar .badge { display:none; }
  .topbar-collapse { width:34px; height:32px; }
  .topbar > span:not(.badge) { display:none; }
  .start-settings-content { grid-template-columns:1fr; }
  .start-settings-content p { grid-column:1; }
  .pushover-settings { grid-template-columns:1fr; align-items:stretch; }
  .pushover-settings-status { grid-column:1; }
  .pushover-settings-actions { flex-wrap:wrap; }
  .venue-section-grid { grid-template-columns:1fr; }
  .start-range-grid,.opening-range-grid { grid-template-columns:1fr; }
  .opening-selector { padding:12px; }
  .opening-selector-top { align-items:flex-start; flex-direction:column; padding:13px 14px; }
  .opening-selector-modes { width:100%; }
  .opening-selector-modes button { flex:1; }
  .opening-selector-body { padding:13px 14px; }
  .opening-selector-heading { align-items:flex-start; flex-direction:column; }
  .opening-target { grid-template-columns:18px 58px minmax(0,1fr) auto; padding:7px 8px; }
  .opening-target-result { min-width:54px; }
  .live-range-view .live-header { align-items:stretch; }
  .live-context { width:100%; }
  .live-context p { max-width:100%; }
  .live-navigation { width:100%; margin-left:0; flex-wrap:wrap; }
  .live-view-switch { order:3; flex:1 1 100%; }
  .live-view-button { flex:1; min-height:34px; }
  .live-navigation > button { min-height:36px; }
  .shot-detail-dialog { padding:18px; }
  .shot-detail-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .shot-detail-body { grid-template-columns:minmax(0,1fr); }
}
.runtime-selection { margin:16px 0 20px; padding:14px; border:1px solid #dbe4dd; border-radius:12px; background:#f8fbf8; }
.operator-mode main { padding-top:20px; }
.runtime-selection.operator-control-mode { margin:0 0 10px; padding:14px 16px; background:#f7faf8; }
.operator-selection-change { margin-top:10px; border-top:1px solid #e0e8e1; }
.operator-selection-change > summary { width:max-content; cursor:pointer; padding-top:8px; color:#53695c; font-size:10px; font-weight:750; }
.operator-overview { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:8px; margin-top:11px; }
.operator-overview[hidden],.operator-counts[hidden],.operator-tools[hidden] { display:none; }
.operator-metric { min-width:0; padding:9px 10px; border:1px solid #e0e8e1; border-radius:9px; background:#fff; }
.operator-metric > span { display:block; color:#6d7b71; font-size:9px; font-weight:800; letter-spacing:.06em; }
.operator-metric strong { display:block; margin-top:4px; overflow-wrap:anywhere; color:#263f34; font-size:12px; line-height:1.3; }
.operator-metric strong[data-connection="connected"] { color:#26724d; }
.operator-metric strong[data-connection="disconnected"],.operator-metric strong[data-connection="error"] { color:#a04737; }
.operator-counts { margin-top:9px; color:#506458; font-size:11px; font-weight:700; font-variant-numeric:tabular-nums; }
.control-edit-targets { margin-top:9px; padding:6px 9px; border:1px solid #bcd0c1; border-radius:7px; background:#fff; color:#28543a; font:700 11px system-ui; cursor:pointer; }
.venue-directory { margin:2px 0 12px; color:#50665a; font-size:11px; }
.venue-directory[hidden] { display:none; }
.venue-directory summary { cursor:pointer; width:max-content; max-width:100%; padding:5px 2px; font-weight:750; }
.venue-directory .home-status { margin-left:8px; color:#75847a; font-size:11px; font-weight:500; }
.venue-directory .venue-grid { margin-top:9px; }
.runtime-selection-title { display:flex; align-items:center; justify-content:space-between; gap:12px; color:#29423f; font-size:12px; }
.runtime-live-status { color:#5f7066; font-size:12px; font-weight:650; }
.runtime-live-status.subscribed { color:#26724d; }
.runtime-live-status.unavailable,.runtime-live-status.error { color:#a03727; }
.runtime-selection-controls { display:flex; flex-wrap:wrap; gap:12px; margin-top:12px; }
.operator-control-mode .runtime-selection-controls { gap:8px; margin-top:10px; }
.runtime-selection-controls label { display:flex; flex:1 1 240px; flex-direction:column; gap:5px; color:#617169; font-size:11px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; }
.operator-control-mode .runtime-selection-controls label { flex:1 1 220px; flex-direction:row; align-items:center; gap:8px; }
.operator-control-mode .runtime-selection-controls label:first-child { flex:2 1 300px; }
.operator-control-mode .runtime-selection-controls select { flex:1; padding:7px 26px 7px 9px; }
.runtime-selection-controls select { min-width:0; border:1px solid #bacbc0; border-radius:8px; background:#fff; color:#214c3d; padding:9px 28px 9px 10px; font:inherit; font-size:13px; text-transform:none; letter-spacing:0; }
.runtime-selection-controls select:disabled { color:#6e7d74; background:#f1f4f1; }
.live-range-view { margin-top:8px; padding-top:0; border-top:0; }
.operator-mode .live-range-view { margin-top:10px; padding-top:12px; }
.live-range-view .live-header { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:6px 12px; margin-bottom:8px; color:#29423f; font-size:12px; }
.live-range-view header p { margin:4px 0 0; color:#65736e; font-size:12px; }
.live-navigation { order:2; display:flex; align-items:center; gap:5px; margin-left:auto; }
.live-context { order:1; min-width:0; }
.live-context strong { font-size:12px; letter-spacing:.04em; }
.live-context p { overflow:hidden; max-width:58vw; text-overflow:ellipsis; white-space:nowrap; }
.live-view-switch { display:flex; align-items:center; gap:3px; padding:2px; border:1px solid #d4e0d7; border-radius:8px; background:#f5f8f6; }
.live-view-button { border:0; border-radius:5px; background:transparent; color:#51645a; padding:5px 8px; font:750 10px system-ui; cursor:pointer; }
.live-view-button.active { border-color:#397456; background:#eaf4ec; color:#21543a; }
.live-range-view .live-header { position:relative; display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:8px 12px; box-sizing:border-box; margin:0 0 5px; padding:8px 10px; border:1px solid #26354a; border-radius:8px; background:#101a2a; color:#f8fafc; }
.live-range-view .live-header .live-context { order:initial; min-width:0; }
.live-range-view .live-header .live-context strong { display:block; overflow:hidden; color:#f8fafc; font-size:15px; letter-spacing:0; text-overflow:ellipsis; white-space:nowrap; }
.live-range-view .live-header .live-context p { margin:2px 0 0; overflow:hidden; max-width:none; color:#aeb9c8; font-size:10px; text-overflow:ellipsis; white-space:nowrap; }
.live-range-view .live-header .live-navigation { order:initial; display:flex; align-items:center; gap:5px; margin:0; }
.live-menu-actions { display:flex; align-items:center; gap:5px; }
.live-range-view .live-header .live-menu-toggle { display:none; background:#27364a; border-color:#405069; color:#f8fafc; font-size:17px; line-height:1; }
.live-brand { display:grid; width:30px; height:30px; margin-left:2px; place-items:center; border-radius:8px; }
.live-brand .klp-logo { width:28px; height:28px; }
.live-brand:focus-visible { outline:2px solid #7ee2b8; outline-offset:1px; }
.live-range-view .live-header .live-view-switch { gap:2px; padding:2px; border-color:#34445a; background:#1b283b; }
.live-range-view .live-header .live-view-button { color:#d8e0ea; padding:5px 8px; }
.live-range-view .live-header .live-view-button.active { background:#2f6fd8; color:#fff; }
.live-range-view .live-header button { min-height:28px; border:1px solid #405069; border-radius:7px; font:750 11px system-ui; cursor:pointer; }
.live-range-view .live-header .live-edit-targets { background:#f5a915; border-color:#f5a915; color:#1f2937; padding:5px 9px; white-space:nowrap; }
.live-range-view .live-header .projector-enter { align-self:auto; background:#27364a; border-color:#405069; color:#f8fafc; padding:5px 8px; }
.live-range-view .live-header .live-back { background:#f8fafc; border-color:#d7dee8; color:#111827; padding:5px 8px; white-space:nowrap; }
.live-range-view .live-header .audience-override-controls,
.live-range-view .live-header .audience-manual-controls { grid-column:1 / -1; }
@media (max-width:900px) {
  .live-range-view .live-header { grid-template-columns:1fr auto; }
  .live-range-view .live-header .live-navigation { grid-column:2; grid-row:1; justify-content:flex-end; }
}
.live-range-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:12px; }
.operator-mode .live-range-grid:not(.audience-grid) { grid-template-columns:repeat(auto-fit,minmax(min(100%,270px),1fr)); gap:10px; }
.operator-toolbox { margin:0 0 10px; padding:10px; border:1px solid #dbe4dd; border-radius:10px; background:#f8faf8; }
.operator-toolbox[hidden] { display:none; }
.operator-toolbox h2 { margin:0 0 7px; color:#334d40; font-size:11px; letter-spacing:.04em; text-transform:uppercase; }
.operator-tool-note { margin:0; padding:8px 11px; border-top:1px solid #e1e8e2; color:#617169; line-height:1.45; }
.live-range-empty { grid-column:1 / -1; margin:0; }
.live-target-card { min-width:0; padding:14px; border:1px solid #dbe4dd; border-radius:11px; background:#fff; box-shadow:0 2px 8px #20382c08; }
.live-target-number { display:inline-block; padding:5px 7px; border-radius:6px; background:#edf3ed; color:#355e49; font-size:11px; }
.live-target-card h3 { margin:12px 0 3px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:16px; }
.live-target-meta { margin:2px 0; overflow:hidden; color:#68786e; font-size:12px; text-overflow:ellipsis; white-space:nowrap; }
.live-target-values { display:grid; grid-template-columns:1fr 1.3fr; gap:8px; margin-top:14px; padding-top:11px; border-top:1px solid #edf0eb; }
.live-target-value span { display:block; color:#718076; font-size:9px; font-weight:750; letter-spacing:.04em; }
.live-target-value strong { display:block; margin-top:3px; color:#203f34; font-size:14px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.live-target-card { position:relative; }
.live-target-card.occupied { border-color:#b8d8c2; }
.live-target-card.available { background:#fbfcfb; border-style:dashed; }
.live-target-card.operator-status-active { border-left:4px solid #5a9c73; }
.live-target-card.operator-status-finished { border-left:4px solid #6a8eaa; }
.live-target-card.operator-status-occupied { border-left:4px solid #d3b681; }
.live-target-card.operator-status-available { border-left:4px solid #d7dfd8; }
.control-target-card { padding:11px 12px; }
.control-target-card h3 { margin-top:9px; }
.control-target-card .live-target-values { margin-top:10px; padding-top:8px; }
.open-target-detail { display:block; margin:9px 0 0; padding:5px 8px; border:1px solid #c8d9cb; border-radius:7px; background:#f8fbf8; color:#2c6041; font:700 10px system-ui; cursor:pointer; }
.open-target-detail:hover,.open-target-detail:focus-visible { border-color:#52906a; background:#edf7ef; }
.live-target-card:has(.total-diagnostic.mismatch) { box-shadow:inset 0 0 0 1px #d7ae68,0 2px 8px #20382c08; }
.live-target-presence { position:absolute; top:14px; right:14px; color:#617169; font-size:9px; font-weight:800; letter-spacing:.05em; }
.live-target-card.occupied .live-target-presence { color:#26724d; }
.live-rank { display:block; margin-top:3px; color:#425d4b; font-size:10px; font-weight:800; letter-spacing:.04em; }
.live-policy { display:block; margin-top:3px; color:#875e16; font-size:9px; font-weight:800; letter-spacing:.04em; }
.live-shot-row { display:flex; flex-wrap:wrap; align-items:center; gap:4px; margin-top:11px; padding-top:10px; border-top:1px solid #edf0eb; }
.live-shot-label { margin-right:3px; color:#718076; font-size:9px; font-weight:800; letter-spacing:.04em; }
.live-shot-value { padding:3px 5px; border-radius:4px; background:#edf5ef; color:#28533d; font-size:11px; font-weight:700; }
.live-shot-value.crossed { background:#f7eaea; color:#914438; text-decoration:line-through; }
.live-shot-empty { color:#718076; font-size:11px; }
.live-series-groups { margin-top:11px; }
.live-program-segment { display:block; margin-top:12px; color:#33433a; font-size:11px; letter-spacing:.03em; }
.live-program-segment:first-child { margin-top:0; }
.live-series-group { padding-top:8px; border-top:1px solid #edf0eb; }
.live-series-group + .live-series-group { margin-top:7px; }
.live-series-label { display:block; color:#718076; font-size:9px; font-weight:800; letter-spacing:.04em; }
.live-series-group.active .live-series-label { color:#26724d; }
.live-series-group .live-shot-row { margin-top:4px; padding-top:0; border-top:0; }
.live-series-header { display:flex; justify-content:space-between; align-items:baseline; gap:8px; }
.live-series-sum { display:inline-flex; align-items:baseline; gap:4px; flex:none; color:#687a70; font-size:8px; font-weight:750; white-space:nowrap; }
.live-series-sum strong { color:#315a42; font-size:12px; }
.live-program { display:block; margin-top:9px; color:#47675a; font-size:10px; font-weight:750; text-transform:uppercase; letter-spacing:.04em; }
.live-program.unknown { color:#7a857f; font-weight:600; text-transform:none; letter-spacing:0; }

.logger-control { margin-top:10px; padding-top:7px; border-top:1px solid #e5ebe7; color:#51655a; font-size:11px; }
.logger-control summary { cursor:pointer; }
.total-diagnostic { margin-top:10px; padding:7px 9px; border:1px solid #e1e8e2; border-radius:8px; background:#f8faf8; color:#64766a; font-size:11px; }
.total-diagnostic.match { border-color:#c9dfcf; color:#38694a; }
.total-diagnostic.mismatch { border-color:#ead9ae; background:#fffaf0; color:#735820; }
.total-diagnostic-label { font-size:11px; }
.total-diagnostic-details { display:grid; gap:2px; margin-top:6px; font-variant-numeric:tabular-nums; }
.total-diagnostic-note { margin-top:3px; color:#6f746d; }
.logger-control-title { display:block; color:#526b5b; font-size:10px; letter-spacing:.04em; }
.logger-control-status, .logger-control-disabled { margin:5px 0; }
.logger-control-disabled { color:#86694a; }
.logger-control button { margin:5px 6px 2px 0; padding:6px 9px; border:1px solid #b9cdbd; border-radius:7px; background:#fff; color:#315c42; font:700 11px system-ui; }
.logger-control button:disabled { opacity:.5; }
.logger-control .logger-control-apply { border-color:#6b9e77; background:#edf6ee; }
.logger-overlay { margin-top:9px; padding:9px; border:1px solid #d8dfd7; border-radius:8px; background:#f7f9f6; color:#5a6c60; }
.logger-overlay > strong { display:block; margin-bottom:6px; font-size:9px; letter-spacing:.04em; }
.logger-overlay-series { padding:5px 0; border-top:1px solid #e6ebe4; }
.logger-overlay-shots { display:block; margin-top:3px; overflow-wrap:anywhere; }
.logger-provenance { margin-top:3px; font-size:10px; }
.logger-provenance summary { cursor:pointer; }
.logger-provenance-shots { margin:5px 0 0; padding-left:17px; }
.logger-token-dialog { width:min(360px,calc(100vw - 32px)); padding:20px; border:1px solid #b9cdbd; border-radius:12px; box-shadow:0 18px 50px #172d2080; }
.logger-token-dialog::backdrop { background:#172d2077; }
.logger-token-form { display:grid; gap:11px; }
.logger-token-form label { font-weight:750; color:#274b35; }
.logger-token-form input { padding:9px; border:1px solid #a7bea9; border-radius:7px; font:inherit; }
.logger-token-form p { margin:0; color:#65766b; font-size:12px; }
.logger-token-form button { padding:8px; border:1px solid #b9cdbd; border-radius:7px; background:#fff; color:#315c42; font-weight:700; }
.logger-token-form button[value="apply"] { background:#edf6ee; }
.logger-range-controls { margin:0 0 12px; padding:11px 13px; border:1px solid #d8e4d9; border-radius:10px; background:#f8faf8; color:#455e4c; font-size:12px; }
.operator-tools { margin:0 0 10px; border:1px solid #e1e8e2; border-radius:9px; background:#fbfcfb; color:#4e6656; font-size:11px; }
.operator-tools > summary { cursor:pointer; padding:8px 11px; font-weight:750; }
.operator-tools .logger-range-controls { margin:0; border:0; border-top:1px solid #e1e8e2; border-radius:0 0 9px 9px; }
.logger-range-controls[hidden], .logger-range-controls [hidden] { display:none; }
.logger-range-controls button { padding:7px 10px; border:1px solid #a7c5ad; border-radius:7px; background:#fff; color:#28543a; font:700 11px system-ui; }
.logger-range-controls button:disabled { opacity:.5; }
.logger-range-controls #applyLoggerRange { margin-top:8px; background:#eaf5ed; }
.logger-range-controls p { margin:7px 0; }
.logger-range-controls #loggerRangeSummary { font-weight:700; overflow-wrap:anywhere; }
.logger-range-controls ol { display:grid; gap:3px; margin:9px 0 0; padding-left:20px; }
.logger-range-result.backfilled { color:#25734a; }
.logger-range-result.failed { color:#a04e3d; }
@media(max-width:900px) {
  .operator-overview { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .operator-metric:last-child { grid-column:1 / -1; }
}
@media(max-width:560px) {
  .operator-overview { grid-template-columns:1fr 1fr; gap:6px; }
  .operator-metric { padding:7px 8px; }
  .operator-control-mode .runtime-selection-controls label { flex:1 1 100%; }
  .venue-directory .venue-grid { grid-template-columns:1fr; }
}

/* Publikum prioriterer lesbarhet fra prosjektor/TV uten å endre dataflyten. */
.live-range-grid.audience-grid { grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:16px; }
.audience-target-card { padding:18px; border-color:#bdd6c4; }
.frozen-slot-card { display:flex; flex-direction:column; gap:10px; border-style:dashed; background:#f8faf8; }
.frozen-slot-card .live-target-number { align-self:flex-start; }
.frozen-slot-message { margin:0; color:#617568; font-size:13px; font-weight:650; }
.audience-countdown { display:inline-block; margin:4px 0 0 7px; padding:3px 8px; border-radius:7px; background:#fff3dc; color:#805513; font-size:12px; font-weight:800; font-variant-numeric:tabular-nums; }
.audience-countdown.shooting { background:#e8f1ea; color:#315e42; }
.audience-countdown.finished { background:#eef0f2; color:#59616b; }
.audience-target-card .live-target-number { font-size:13px; }
.audience-target-card h3 { margin-top:14px; font-size:21px; }
.audience-target-card .live-target-meta { font-size:13px; }
.audience-target-card .live-target-values { grid-template-columns:1fr 1fr; }
.audience-target-card .live-target-value strong { font-size:21px; }
.audience-target-card .live-series-group.active { min-height:var(--audience-active-series-min-height); margin-top:12px; padding:12px; border:1px solid #a7cdb1; border-radius:9px; background:#f2faf4; }
.audience-target-card .live-series-group.active.practice { border-color:#dfbd8c; background:#fff8ee; }
.audience-target-card .live-series-group.active.practice .live-series-label,
.audience-target-card .live-series-group.active.practice .live-series-sum strong { color:#965a13; }
.audience-target-card .live-series-group.active.practice .live-shot-value { background:#fff0d5; color:#8b5214; }
.audience-target-card .live-series-group.active .live-series-label { font-size:11px; }
.audience-target-card .live-series-group.active .live-shot-value { padding:7px 9px; font-size:17px; }
.audience-target-card .live-series-group.active .live-shot-label { font-size:10px; }
.audience-target-card .live-series-group.active .live-shot-row { display:grid; grid-template-columns:repeat(auto-fill,minmax(80px,1fr)); }
.audience-target-card .live-series-group.active .live-shot-label { grid-column:1 / -1; }
.audience-target-card .live-series-group.active .live-shot-value { text-align:center; }
.audience-target-card .audience-history { margin-top:4px; padding-top:5px; opacity:.72; }
.audience-target-card .audience-history .live-shot-row { display:none; }
.audience-target-card .live-policy { color:#875e16; }
@media (min-aspect-ratio: 16/9) { .live-range-grid.audience-grid { grid-template-columns:repeat(auto-fit,minmax(340px,1fr)); } }
.audience-target-face { margin-top:10px; padding:var(--audience-target-visual-padding); border:1px solid #d6e2d8; border-radius:9px; background:#f7faf7; }
.audience-target-svg { display:block; width:100%; aspect-ratio:1; overflow:hidden; }
.audience-target-surface { fill:#eef4ee; stroke:#c6d7c9; stroke-width:1; }
.audience-target-origin { fill:none; stroke:#9aada0; stroke-width:1.2; vector-effect:non-scaling-stroke; }
.audience-shot-dot { fill:#2d8152; stroke:#175033; }
.audience-shot.latest .audience-shot-dot { fill:#d04d3b; stroke:#7f281e; }
.audience-shot-halo { fill:none; stroke:#d04d3b; }
.audience-shot.crossed .audience-shot-dot { fill:#7d8790; stroke:#4f5a63; }
.audience-shot-cross { fill:none; stroke:#fff; stroke-linecap:round; }
.audience-shot-no { fill:#fff; font-family:system-ui; font-weight:700; text-anchor:middle; pointer-events:none; }
/* SIDE is a Publikum-only arrangement of the same card content and data. */
.live-range-grid.audience-side-grid { grid-template-columns:repeat(auto-fit,minmax(var(--audience-side-min-card-width),1fr)); gap:12px; }
.audience-side-card { padding:14px; }
.audience-side-card h3 { margin-top:9px; font-size:22px; }
.audience-side-card .live-target-meta { margin:1px 0; }
.audience-side-body { display:grid; grid-template-columns:var(--audience-side-target) var(--audience-side-details); gap:10px; align-items:start; margin-top:10px; }
.audience-side-body .audience-target-face { margin:0; align-self:start; }
.audience-side-details .live-target-values { margin-top:0; }
.audience-side-details .live-target-value strong { font-size:24px; }
.audience-side-details .live-series-groups { margin-top:7px; }
.audience-side-details .live-series-group.active { margin-top:0; padding:10px; background:#edf8f0; border-color:#94c6a3; }
.audience-side-details .live-series-group.active .live-shot-value { padding:6px 8px; font-size:16px; }
.audience-side-card .audience-history { margin-top:2px; padding-top:3px; }
.audience-side-card .live-shot-value.latest { outline:var(--audience-last-shot-outline) solid #c84535; outline-offset:1px; background:#fff2ef; color:#8a2f24; }
.audience-side-card .live-series-group.active.practice .live-shot-value.latest { outline-color:#c57523; background:#ffe8c1; color:#854d12; }
.audience-side-card .audience-target-svg { overflow:hidden; }
@media (min-aspect-ratio:16/9) and (min-width:1800px) {
  .live-range-grid.audience-side-grid[data-target-count="4"],
  .live-range-grid.audience-side-grid[data-target-count="8"] { grid-template-columns:repeat(4,minmax(0,1fr)); }
  .live-range-grid.audience-side-grid[data-target-count="6"] { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:980px) {
  .live-range-grid.audience-side-grid { grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); }
  .audience-side-body { grid-template-columns:1fr; }
}
.audience-override-controls { display:flex; align-items:center; flex-wrap:wrap; gap:5px; }
.audience-override-button { border:1px solid #d5dfd7; border-radius:7px; background:#fff; color:#51645a; padding:6px 8px; font:700 10px system-ui; }
.audience-override-button.active { border-color:#397456; background:#eaf4ec; color:#21543a; }
.audience-override-status { color:#875e16; font-size:9px; font-weight:800; letter-spacing:.04em; }
.audience-manual-controls { flex:1 1 100%; display:grid; gap:7px; padding:9px; border:1px solid #dbe4dd; border-radius:8px; background:#f8fbf8; color:#395448; font-size:10px; }
.audience-manual-targets { display:flex; flex-wrap:wrap; gap:5px 10px; max-height:96px; overflow:auto; }
.audience-manual-target { display:flex; align-items:center; gap:4px; color:#52675b; font-size:11px; white-space:nowrap; }
.audience-manual-target input { accent-color:#397456; }
.audience-manual-actions { display:flex; flex-wrap:wrap; gap:5px; }
.audience-manual-actions button { border:1px solid #cbd9cf; border-radius:7px; background:#fff; color:#365646; padding:6px 8px; font:700 10px system-ui; }
.audience-manual-actions button:first-child { border-color:#397456; background:#eaf4ec; color:#21543a; }

.competition-status { display:grid; gap:2px; margin-top:9px; padding:7px 8px; border-left:3px solid #9caea2; border-radius:0 7px 7px 0; background:#f4f7f4; color:#456052; }
.competition-status-kicker { color:#738278; font-size:8px; font-weight:850; letter-spacing:.08em; }
.competition-status-label { font-size:12px; line-height:1.15; }
.competition-status-history { overflow:hidden; color:#69796f; font-size:9px; line-height:1.25; text-overflow:ellipsis; white-space:nowrap; }
.competition-status.phase-practice { border-color:#dc8d2e; background:#fff8ed; color:#915407; }
.competition-status.phase-counting-series { border-color:#3d8760; background:#eff8f1; color:#215c3c; }
.competition-status.phase-ten-shot { border-color:#397456; background:#e8f5eb; color:#174c31; }
.competition-status.phase-championship { border-color:#7660a8; background:#f2eff9; color:#4b3c78; }
.competition-status.phase-generic { border-color:#7c8a82; background:#f4f6f4; color:#47544d; }
.audience-target-card .competition-status { margin-top:11px; padding:10px 11px; border-left-width:4px; }
.audience-target-card .competition-status-kicker { font-size:9px; }
.audience-target-card .competition-status-label { font-size:17px; }
.audience-target-card .competition-status-history { font-size:10px; }
.audience-side-card .competition-status { margin-top:7px; padding:8px 9px; }
.audience-side-card .competition-status-label { font-size:15px; }

.result-focus { display:inline-flex; align-items:center; margin:9px 0 0 7px; padding:4px 6px; border-radius:5px; background:#f1f4f1; color:#66746c; font-size:9px; font-weight:850; letter-spacing:.045em; vertical-align:middle; }
.result-focus.leader { background:#e4f4e8; color:#17613c; }
.result-focus.tied-leader { background:#e8f1f7; color:#245b78; }
.result-focus.ranked { background:#eef4ef; color:#416352; }
.result-focus.unranked { font-weight:700; letter-spacing:.02em; }
.audience-target-card .result-focus { margin-top:11px; padding:6px 8px; font-size:11px; }
.audience-target-card .result-focus.leader { box-shadow:inset 0 0 0 1px #9dcea9; }
.audience-target-card .result-focus.tied-leader { box-shadow:inset 0 0 0 1px #b5d1e1; }
.audience-side-card .result-focus { margin-top:7px; font-size:10px; }

body:not(.operator-mode) .venue-directory { display:none; }
body:not(.operator-mode) main:has(.home-view:not([hidden])) { padding-top:10px; padding-bottom:12px; }
body:not(.operator-mode) .live-range-view { margin-top:0; padding-top:0; border-top:0; }
.audience-manual-controls[hidden], .audience-override-controls[hidden], .runtime-selection[hidden] { display:none; }

/* Publikum/SIDE: projector hierarchy. Kontroll keeps its own card rules. */
.audience-target-card { container-type:inline-size; padding:13px; }
.audience-target-card .live-target-number { padding:5px 9px; font-size:15px; font-variant-numeric:tabular-nums; }
.audience-target-card h3 { margin:8px 0 2px; overflow:visible; overflow-wrap:anywhere; white-space:normal; font-size:clamp(19px,1.35vw,26px); line-height:1.12; }
.audience-target-card .live-target-meta { overflow:visible; overflow-wrap:anywhere; white-space:normal; font-size:12px; line-height:1.2; }
.audience-target-card .live-program { margin-top:5px; color:#6c7b70; font-size:9px; }
.audience-target-card .result-focus { margin:5px 0 0 6px; padding:4px 6px; font-size:9px; }
.audience-target-card .live-policy { display:inline-block; margin-left:6px; color:#766647; font-size:9px; }
.audience-target-card .live-target-values { grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:5px; margin-top:8px; padding-top:7px; }
.audience-target-card .live-target-value { min-width:0; }
.audience-target-card .live-target-value:first-child strong { color:#174f35; font-size:clamp(28px,2vw,38px); line-height:1; font-variant-numeric:tabular-nums; }
.audience-target-card .live-target-value:nth-child(2) strong { overflow:visible; overflow-wrap:anywhere; white-space:normal; font-size:14px; line-height:1.15; }
.audience-target-card .competition-status { margin-top:8px; padding:7px 9px; }
.audience-target-card .competition-status-label { font-size:15px; }
.audience-target-card .competition-status-history { display:none; }
.audience-target-card .audience-target-face { width:min(100%,210px); margin:8px auto 0; }
.audience-target-card .live-series-groups { margin-top:7px; }
.audience-target-card .live-program-segment { display:none; }
.audience-target-card .live-series-group.active { min-height:0; margin-top:0; padding:9px; }
.audience-target-card .live-series-group.active .live-series-label { font-size:11px; }
.audience-target-card .live-series-group.active .live-series-sum strong { font-size:16px; }
.audience-target-card .live-series-group.active .live-shot-row { grid-template-columns:repeat(auto-fit,minmax(53px,1fr)); gap:5px; margin-top:6px; }
.audience-target-card .live-series-group.active .live-shot-label { color:#456451; font-size:10px; }
.audience-target-card .live-series-group.active .live-shot-value { min-width:0; padding:6px 3px; font-size:15px; font-variant-numeric:tabular-nums; }
.audience-target-card .live-shot-value.latest { outline:var(--audience-last-shot-outline) solid #c84535; outline-offset:1px; background:#fff2ef; color:#8a2f24; font-size:19px; }
.audience-target-card .live-series-group.active.practice .live-shot-value.latest { outline-color:#c57523; background:#ffe8c1; color:#854d12; }
.audience-history-drawer { margin-top:7px; border-top:1px solid #e5ebe6; color:#68786e; font-size:10px; }
.audience-history-drawer > summary { cursor:pointer; padding:5px 0; font-weight:700; }
.audience-target-card .audience-history { margin-top:2px; padding:3px 0; opacity:.9; }
.audience-history-drawer[open] .audience-history .live-shot-row { display:flex; flex-wrap:wrap; }
.audience-side-card .audience-target-face { width:min(100%,220px); margin:0; }
.audience-side-card .audience-side-body { grid-template-columns:var(--audience-side-target) var(--audience-side-details); gap:8px; margin-top:8px; }
.audience-side-card .audience-side-details { min-width:0; }
.audience-side-card .audience-side-details .live-target-values { margin-top:0; }
.audience-side-card .audience-side-details .live-series-groups { margin-top:7px; }
.audience-side-card .live-series-group.active .live-shot-row { grid-template-columns:repeat(auto-fit,minmax(48px,1fr)); }
.audience-side-card .live-series-group.active .live-shot-value { padding:5px 2px; font-size:14px; }
.audience-side-card .live-series-group.active .live-shot-value.latest { font-size:17px; }
.audience-side-card .live-target-value:first-child strong { font-size:clamp(32px,2vw,38px); }
@media (min-width:1600px) and (min-aspect-ratio:16/9) {
  .live-range-grid.audience-grid[data-target-count="4"] { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .live-range-grid.audience-grid[data-target-count="6"] { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .live-range-grid.audience-grid[data-target-count="8"] { grid-template-columns:repeat(4,minmax(0,1fr)); }
  .audience-grid:not(.audience-side-grid) .audience-target-card { display:grid; grid-template-columns:minmax(0,40%) minmax(0,1fr); column-gap:10px; align-content:start; }
  .audience-grid:not(.audience-side-grid) .audience-target-card > :not(.audience-target-face):not(.live-series-groups) { grid-column:1 / -1; }
  .audience-grid:not(.audience-side-grid) .audience-target-card > .live-target-number,
  .audience-grid:not(.audience-side-grid) .audience-target-card > .result-focus,
  .audience-grid:not(.audience-side-grid) .audience-target-card > .live-policy,
  .audience-grid:not(.audience-side-grid) .audience-target-card > .live-program { justify-self:start; }
  .audience-grid:not(.audience-side-grid) .audience-target-card > .audience-target-face { grid-column:1; align-self:start; }
  .audience-grid:not(.audience-side-grid) .audience-target-card > .live-series-groups { grid-column:2; min-width:0; margin-top:5px; }
  .live-range-grid.audience-grid:not(.audience-side-grid)[data-target-count="6"] .audience-target-face,
  .live-range-grid.audience-grid:not(.audience-side-grid)[data-target-count="8"] .audience-target-face { width:min(100%,152px); margin:5px auto 0; }
  .live-range-grid.audience-grid:not(.audience-side-grid)[data-target-count="4"] .audience-target-face { width:min(100%,150px); }
  .audience-grid:not(.audience-side-grid) .audience-target-card h3 { margin-top:5px; }
  .audience-grid:not(.audience-side-grid) .audience-target-card .live-target-values { margin-top:5px; padding-top:4px; }
  .audience-grid:not(.audience-side-grid) .audience-target-card .competition-status { margin-top:5px; padding:5px 7px; }
  .live-range-grid.audience-grid:not(.audience-side-grid)[data-target-count="6"] .audience-target-card,
  .live-range-grid.audience-grid:not(.audience-side-grid)[data-target-count="8"] .audience-target-card { padding:10px; }
  .live-range-grid.audience-grid:not(.audience-side-grid)[data-target-count="6"] .audience-target-card h3,
  .live-range-grid.audience-grid:not(.audience-side-grid)[data-target-count="8"] .audience-target-card h3 { margin-top:5px; font-size:20px; }
  .live-range-grid.audience-grid:not(.audience-side-grid)[data-target-count="8"] .audience-target-card h3 { display:block; height:1.12em; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .live-range-grid.audience-grid:not(.audience-side-grid)[data-target-count="6"] .audience-target-card .live-target-values,
  .live-range-grid.audience-grid:not(.audience-side-grid)[data-target-count="8"] .audience-target-card .live-target-values { margin-top:5px; padding-top:4px; }
  .live-range-grid.audience-grid:not(.audience-side-grid)[data-target-count="6"] .audience-target-card .competition-status,
  .live-range-grid.audience-grid:not(.audience-side-grid)[data-target-count="8"] .audience-target-card .competition-status { margin-top:5px; padding:5px 7px; }
  .live-range-grid.audience-grid:not(.audience-side-grid)[data-target-count="6"] .competition-status-history,
  .live-range-grid.audience-grid:not(.audience-side-grid)[data-target-count="8"] .competition-status-history { display:none; }
  .live-range-grid.audience-grid:not(.audience-side-grid)[data-target-count="6"] .live-series-group.active,
  .live-range-grid.audience-grid:not(.audience-side-grid)[data-target-count="8"] .live-series-group.active { padding:6px; }
}

@container (max-width:450px) {
  .audience-target-card .live-target-value:first-child strong { font-size:29px; }
  .audience-target-card h3 { font-size:20px; }
}
@media (max-width:980px) {
  .audience-side-card .audience-side-body { grid-template-columns:1fr; }
  .audience-side-card .audience-target-face { width:min(100%,260px); margin:auto; }
}

/* Projector reading order: stable identity height, official result, active shot. */
.audience-target-card h3 { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; height:2.24em; overflow:hidden; font-size:clamp(21px,1.45vw,27px); line-height:1.12; }
.audience-target-card .live-target-meta { display:block; height:1.2em; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:11px; line-height:1.2; }
.audience-signals { display:flex; align-items:center; gap:5px; min-width:0; height:26px; overflow:hidden; white-space:nowrap; }
.audience-signals .live-program { flex:none; margin:0; font-size:9px; }
.audience-signals .result-focus,.audience-signals .live-policy { flex:0 1 auto; min-width:0; max-width:40%; margin:0; padding:2px 5px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:9px; }
.audience-signals .live-policy { color:#766647; background:#f5f3eb; border-radius:4px; }
.audience-signals .audience-countdown { flex:none; margin:0; padding:2px 6px; font-size:11px; }
.audience-target-card .live-target-value:first-child strong { white-space:nowrap; overflow:visible; font-variant-numeric:tabular-nums; }
.audience-target-card .live-target-value:nth-child(2) strong { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; height:2.3em; overflow:hidden; }
.audience-target-card .competition-status-label { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; }
.audience-target-card .competition-status { display:flex; align-items:baseline; gap:6px; min-height:30px; }
.audience-target-card .competition-status-kicker { flex:none; }
.audience-target-card .competition-status-label { min-width:0; -webkit-line-clamp:1; white-space:nowrap; text-overflow:ellipsis; }
.audience-target-card .live-series-group.active .live-shot-label { display:inline-block; padding:2px 5px; border-radius:4px; background:#e8f1ea; color:#315e42; line-height:1.15; }
.audience-target-card .live-series-group.active .live-shot-value { display:flex; align-items:center; justify-content:center; position:relative; min-height:29px; white-space:nowrap; }
.audience-shot-number { position:absolute; top:2px; left:3px; color:#6f8375; font-size:8px; line-height:1; }
.audience-shot-text { font-size:15px; line-height:1; font-variant-numeric:tabular-nums; }
.audience-target-card .live-shot-value.latest { position:relative; outline-color:var(--audience-latest-color); box-shadow:0 0 0 3px #c8453522; font-size:20px; }
.audience-target-card .live-shot-value.latest .audience-shot-number { color:#9c4b3d; }
.audience-target-card .live-shot-value.latest .audience-shot-text { color:#8a2f24; font-size:19px; }
.audience-shot.latest .audience-shot-dot { fill:var(--audience-latest-color); }
.audience-shot-halo { stroke:var(--audience-latest-color); }
.audience-shot:not(.latest) .audience-shot-dot { opacity:.78; }
.audience-shot:not(.latest) .audience-shot-no { opacity:.68; }
.audience-practice .live-shot-value.latest { outline-color:#c57523; box-shadow:0 0 0 3px #c5752329; }
.audience-practice .live-shot-value.latest .audience-shot-number { color:#9b662c; }
.audience-practice .live-shot-value.latest .audience-shot-text { color:#854d12; }
.audience-practice .audience-shot.latest .audience-shot-dot { fill:#c57523; stroke:#854d12; }
.audience-practice .audience-shot-halo { stroke:#c57523; }
.audience-history-drawer { margin-top:4px; color:#7a897e; font-size:9px; }
.audience-history-drawer > summary { padding:3px 0; }
.audience-history-drawer[open] { max-height:110px; overflow:auto; }
.audience-history-drawer[open] .audience-history { max-height:100px; overflow:auto; }
.audience-side-card .live-shot-value.latest { font-size:20px; }
.audience-side-card .live-target-value:first-child strong { font-size:35px; }
.audience-side-grid[data-target-count="8"] { --audience-side-target:minmax(155px,.85fr); --audience-side-details:minmax(0,1.15fr); }
@container (max-width:650px) {
  .audience-side-card h3 { display:block; height:1.12em; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .audience-side-card .audience-side-details .live-target-values { grid-template-columns:minmax(0,1fr); gap:2px; }
  .audience-side-card .audience-side-details .live-target-value:first-child strong { font-size:38px; }
  .audience-side-card .audience-side-details .live-target-value:nth-child(2) { display:none; }
  .audience-side-card .live-series-group.active .live-shot-row { grid-template-columns:repeat(auto-fit,minmax(45px,1fr)); gap:3px; }
  .audience-side-card .live-series-group.active .live-shot-value { min-height:27px; padding:3px 1px; }
  .audience-side-card .live-shot-value.latest .audience-shot-text { font-size:17px; }
}

/* Projektor: use the existing Publikum/SIDE cards, without operator chrome. */
.projector-enter { align-self:center; border:1px solid #a8c4b0; border-radius:7px; background:#eaf4ec; color:#21543a; padding:6px 9px; font:700 10px system-ui; cursor:pointer; }
.projector-enter[hidden] { display:none; }
.projector-status,.projector-exit { display:none; }
body.projector-fallback { overflow:hidden; }
body.projector-fallback .topbar,body.projector-fallback .sim-controls { display:none !important; }
#home:fullscreen,body.projector-fallback #home { box-sizing:border-box; width:100vw; height:100dvh; min-height:0; max-height:100dvh; margin:0; padding:10px 12px; overflow:hidden; display:flex; flex-direction:column; background:#f6f9f6; }
body.projector-fallback #home { position:fixed; inset:0; z-index:100; }
#home:fullscreen #runtimeSelection,#home:fullscreen .venue-directory,#home:fullscreen .live-range-view > header,#home:fullscreen #loggerTools,
body.projector-fallback #home #runtimeSelection,body.projector-fallback #home .venue-directory,body.projector-fallback #home .live-range-view > header,body.projector-fallback #home #loggerTools { display:none !important; }
#home:fullscreen .live-range-view,body.projector-fallback #home .live-range-view { flex:1; min-height:0; margin:0; padding:0; border:0; display:flex; flex-direction:column; }
#home:fullscreen .projector-status,body.projector-fallback #home .projector-status { display:block; flex:none; min-height:17px; margin:0 72px 7px 2px; overflow:hidden; color:#587463; font:700 11px/17px system-ui; text-overflow:ellipsis; white-space:nowrap; }
#home:fullscreen .projector-exit,body.projector-fallback #home .projector-exit { display:block; position:absolute; top:7px; right:12px; z-index:2; border:1px solid #c8d9cd; border-radius:7px; background:#ffffffd9; color:#42634d; padding:3px 7px; opacity:.45; font:700 10px system-ui; cursor:pointer; }
#home:fullscreen .projector-exit:hover,#home:fullscreen .projector-exit:focus-visible,body.projector-fallback #home .projector-exit:hover,body.projector-fallback #home .projector-exit:focus-visible { opacity:1; }
#home:fullscreen .live-range-grid,body.projector-fallback #home .live-range-grid { flex:1; min-height:0; align-content:stretch; gap:10px; }
@media (min-width:1600px) and (min-aspect-ratio:16/9) {
  #home:fullscreen .audience-grid[data-target-count="4"],#home:fullscreen .audience-grid[data-target-count="6"],#home:fullscreen .audience-grid[data-target-count="8"],
  body.projector-fallback #home .audience-grid[data-target-count="4"],body.projector-fallback #home .audience-grid[data-target-count="6"],body.projector-fallback #home .audience-grid[data-target-count="8"] { grid-template-rows:repeat(2,minmax(0,1fr)); }
  #home:fullscreen .audience-grid[data-target-count="4"],body.projector-fallback #home .audience-grid[data-target-count="4"] { grid-template-columns:repeat(2,minmax(0,1fr)); }
  #home:fullscreen .audience-grid[data-target-count="6"],body.projector-fallback #home .audience-grid[data-target-count="6"] { grid-template-columns:repeat(3,minmax(0,1fr)); }
  #home:fullscreen .audience-grid[data-target-count="8"],body.projector-fallback #home .audience-grid[data-target-count="8"] { grid-template-columns:repeat(4,minmax(0,1fr)); }
  #home:fullscreen .audience-grid:not(.audience-side-grid)[data-target-count="4"] .audience-target-face,body.projector-fallback #home .audience-grid:not(.audience-side-grid)[data-target-count="4"] .audience-target-face { width:min(100%,190px); }
  #home:fullscreen .audience-grid:not(.audience-side-grid)[data-target-count="6"] .audience-target-face,#home:fullscreen .audience-grid:not(.audience-side-grid)[data-target-count="8"] .audience-target-face,
  body.projector-fallback #home .audience-grid:not(.audience-side-grid)[data-target-count="6"] .audience-target-face,body.projector-fallback #home .audience-grid:not(.audience-side-grid)[data-target-count="8"] .audience-target-face { width:min(100%,168px); }
  #home:fullscreen .audience-side-card .audience-target-face,body.projector-fallback #home .audience-side-card .audience-target-face { width:min(100%,235px); }
  #home:fullscreen .audience-target-card .live-target-value:first-child strong,body.projector-fallback #home .audience-target-card .live-target-value:first-child strong { font-size:clamp(35px,2.15vw,42px); }
}
@media (max-height:950px) {
  #home:fullscreen .live-range-grid,body.projector-fallback #home .live-range-grid { overflow-y:auto; align-content:start; }
  #home:fullscreen .audience-grid[data-target-count],body.projector-fallback #home .audience-grid[data-target-count] { grid-template-rows:none; }
}

/* Publikum/SIDE runde 3: stronger target/result balance, same coordinate model. */
.audience-target-card .audience-target-face { border-color:#c4d7ca; background:#fafdfa; }
.audience-target-card .audience-target-surface { fill:#f8fcf9; stroke:#b6cebd; stroke-width:1.25; }
.audience-target-card .audience-target-origin { stroke:#789b84; stroke-width:1.35; }
.audience-target-card .audience-shot-dot { stroke:#194b31; }
.audience-target-card .audience-shot:not(.latest) .audience-shot-dot { opacity:.88; }
.audience-target-card .audience-shot.latest .audience-shot-dot { stroke:#842d22; }
.audience-target-card .audience-shot-halo { stroke:var(--audience-latest-color); filter:drop-shadow(0 0 1.5px #fff); }
.audience-target-card.audience-practice .audience-shot-halo { stroke:#c57523; }
.audience-target-card .audience-shot-no { font-weight:850; paint-order:stroke; stroke:#173728; stroke-width:.2; }
.audience-target-card .live-target-values { margin-top:6px; padding-top:5px; }
.audience-target-card .live-target-value:first-child strong { font-weight:850; letter-spacing:-.035em; }
.audience-target-card .competition-status { margin-top:6px; }
.audience-target-card .live-series-group.active { padding:10px; border-width:1.5px; box-shadow:inset 0 1px 0 #fff9; }
.audience-target-card .live-series-group.active .live-series-label { font-weight:850; }
.audience-target-card .audience-history-drawer { margin-top:2px; border-color:#e8ede8; }
.audience-target-card .audience-history-drawer > summary { padding:2px 0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.audience-side-card .audience-target-face { width:min(100%,232px); }
.audience-side-card .audience-side-body { gap:9px; }
.audience-side-card .audience-side-details .live-series-group.active { padding:9px; }
.audience-side-grid[data-target-count="8"] { --audience-side-target:minmax(175px,.9fr); --audience-side-details:minmax(0,1.1fr); }
@media (min-width:1600px) and (min-aspect-ratio:16/9) {
  .live-range-grid.audience-grid:not(.audience-side-grid)[data-target-count="4"] .audience-target-face { width:min(100%,166px); }
  .live-range-grid.audience-grid:not(.audience-side-grid)[data-target-count="6"] .audience-target-face,
  .live-range-grid.audience-grid:not(.audience-side-grid)[data-target-count="8"] .audience-target-face { width:min(100%,168px); }
  .live-range-grid.audience-grid:not(.audience-side-grid)[data-target-count="6"] .live-series-group.active,
  .live-range-grid.audience-grid:not(.audience-side-grid)[data-target-count="8"] .live-series-group.active { padding:8px; }
  #home:fullscreen .audience-grid:not(.audience-side-grid)[data-target-count="4"] .audience-target-face,
  body.projector-fallback #home .audience-grid:not(.audience-side-grid)[data-target-count="4"] .audience-target-face { width:min(100%,225px); }
  #home:fullscreen .audience-grid:not(.audience-side-grid)[data-target-count="6"] .audience-target-face,
  #home:fullscreen .audience-grid:not(.audience-side-grid)[data-target-count="8"] .audience-target-face,
  body.projector-fallback #home .audience-grid:not(.audience-side-grid)[data-target-count="6"] .audience-target-face,
  body.projector-fallback #home .audience-grid:not(.audience-side-grid)[data-target-count="8"] .audience-target-face { width:min(100%,184px); }
  #home:fullscreen .audience-side-card .audience-target-face,
  body.projector-fallback #home .audience-side-card .audience-target-face { width:min(100%,255px); }
}

/* SIDE shot slots: five vertical places, then two columns of five. */
.audience-side-card .live-series-group.active .side-shot-row { display:block; margin-top:3px; padding-top:0; border-top:0; }
.audience-side-card .side-shot-cells { display:grid; grid-template-rows:repeat(5,minmax(0,1fr)); grid-auto-flow:column; gap:2px; margin-top:2px; }
.audience-side-card .side-shot-cells.single { grid-template-columns:minmax(0,1fr); }
.audience-side-card .side-shot-cells.double { grid-template-columns:repeat(2,minmax(0,1fr)); }
.audience-side-card .side-shot-cells .live-shot-value { min-height:24px; padding:2px; }
.audience-side-card .side-shot-cells.single .audience-shot-text { font-size:18px; }
.audience-side-card .side-shot-cells .side-shot-placeholder { border:1px solid #dce8de; background:#ffffff99; box-shadow:none; }
.audience-side-card .live-series-group.active.practice .side-shot-placeholder { border-color:#f1dfc2; }
.audience-prestart .audience-target-face { overflow:hidden; }
.audience-prestart-visual { display:grid; grid-template-columns:minmax(0,168px) minmax(0,1fr); gap:8px; align-items:center; margin-top:6px; min-width:0; }
.audience-prestart-visual .audience-target-face { width:100%; margin:0; }
.audience-prestart .audience-target-face img { display:block; width:100%; aspect-ratio:1; object-fit:cover; border-radius:7px; }
.audience-prestart .live-series-groups { display:none; }
.audience-prestart-history { box-sizing:border-box; width:100%; height:92px; min-height:92px; padding:8px; border:1px solid #d9e5dc; border-radius:8px; background:#f8fbf9; overflow:hidden; }
.audience-prestart-history > strong { display:block; margin-bottom:5px; color:#58705e; font-size:10px; letter-spacing:.04em; }
.audience-prestart-results { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:5px; }
.audience-prestart-result { display:grid; grid-template-rows:20px 12px 11px; align-content:start; min-width:0; gap:2px; padding:4px; border-radius:5px; background:white; }
.audience-prestart-result b { color:#2b6446; font-size:15px; }
.audience-prestart-result span,.audience-prestart-result small { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:10px; }
.audience-prestart-no-history { color:#748378; font-size:11px; }
.external-result-status { display:flex; align-items:center; gap:4px; min-width:0; max-width:100%; color:#4b5563; line-height:1.05; }
.external-result-place { display:flex; align-items:center; gap:3px; flex:none; }
.external-result-place small,.external-result-projection small { color:#778078; font-size:6px; font-weight:900; letter-spacing:.04em; }
.external-result-place strong { display:grid; place-items:center; width:22px; height:22px; border:1px solid #9ca3af; border-radius:50%; background:#fff; color:#111827; font-size:10px; font-weight:1000; box-shadow:0 1px 3px #0002; }
.external-result-place.gold strong { border-color:#b79522; background:#d4af37; color:#4b3700; }
.external-result-place.silver strong { border-color:#9ca3af; background:#d3d6da; color:#30343b; }
.external-result-place.bronze strong { border-color:#a9632e; background:#cd7f32; color:#3f2108; }
.external-result-projection { display:grid; min-width:0; border-left:1px solid #d8ded9; padding-left:4px; }
.external-result-projection strong { overflow:hidden; color:#374151; font-size:7px; font-weight:900; text-overflow:ellipsis; white-space:nowrap; }
.live-range-view.live-interruption > header #liveRangeState { color:#a13d2d; font-weight:900; }
#home:fullscreen .live-range-view.live-interruption .projector-status,body.projector-fallback #home .live-range-view.live-interruption .projector-status { color:#a13d2d; }
.audience-side-card.audience-prestart .audience-prestart-history { margin-top:6px; }
@media (min-width:1600px) and (min-aspect-ratio:16/9) {
  .audience-grid:not(.audience-side-grid) .audience-prestart > .audience-prestart-visual { grid-column:1 / -1; }
}
@media (max-width:700px) {
  .audience-prestart-visual { grid-template-columns:1fr; }
  .audience-prestart-visual .audience-target-face { width:min(100%,168px); margin:auto; }
}
@media (min-width:1600px) and (min-aspect-ratio:16/9) {
  .audience-side-grid[data-target-count="8"] .side-shot-cells .live-shot-value { min-height:21px; padding:1px; }
.audience-side-grid[data-target-count="8"] .side-shot-cells.single .audience-shot-text { font-size:16px; }
}

/* SIDE at 16:9: give both card rows room without shrinking primary text. */
@media (min-width:1600px) and (min-aspect-ratio:16/9) {
  .audience-side-grid .audience-side-card { padding:10px; }
  .audience-side-grid .audience-side-card h3 { height:auto; min-height:1.12em; margin:5px 0 1px; }
  .audience-side-grid .audience-side-card .competition-status { min-height:25px; margin-top:3px; padding:4px 7px; }
  .audience-side-grid .audience-side-card .audience-side-body { margin-top:5px; }
  .audience-side-grid .audience-side-card .audience-side-details .live-series-groups { margin-top:4px; }
  .audience-side-grid .audience-side-card .live-series-group.active { padding:6px; }
  .audience-side-grid[data-target-count="4"] .live-series-group.active .side-shot-cells .live-shot-value,
  .audience-side-grid[data-target-count="6"] .live-series-group.active .side-shot-cells .live-shot-value { min-height:25px; padding:1px 2px; }
}

/* LIVE Publikum: SIDE/UNDER is decided from each card's own content width. */
.audience-grid { --audience-target-frame-height:210px; }
.audience-grid[data-target-count="6"] { --audience-target-frame-height:190px; }
.audience-grid[data-target-count="8"] { --audience-target-frame-height:168px; }
.audience-side-card[data-layout="side"] .audience-side-body { grid-template-columns:var(--audience-target-frame-height) minmax(0,1fr); gap:4px; }
.audience-side-card[data-layout="under"] .audience-side-body { grid-template-columns:minmax(0,1fr); }
.audience-side-card[data-layout] .audience-target-face,
#home:fullscreen .audience-side-card[data-layout] .audience-target-face,
body.projector-fallback #home .audience-side-card[data-layout] .audience-target-face { box-sizing:border-box; width:var(--audience-target-frame-height); max-width:100%; margin:0; position:relative; }
.audience-side-card[data-layout="under"] .audience-target-face { margin-inline:auto; }
.audience-side-card .audience-target-name { position:absolute; left:5px; bottom:5px; z-index:3; max-width:48%; padding:3px 6px; overflow:hidden; border:1px solid #ffffff66; border-radius:5px; background:#111827e8; color:#fff; font-size:9px; font-weight:850; line-height:1; text-overflow:ellipsis; white-space:nowrap; }
.audience-spread-overlay { pointer-events:none; }
.audience-spread-line { stroke:#f5bd16; stroke-width:3; stroke-linecap:round; vector-effect:non-scaling-stroke; }
.audience-spread-value-box { fill:#201a22; fill-opacity:.64; stroke:#f5bd16; stroke-opacity:.82; stroke-width:1.5; vector-effect:non-scaling-stroke; }
.audience-spread-value-text { fill:#ffe58c; opacity:.9; font-family:system-ui,sans-serif; font-weight:650; text-anchor:middle; dominant-baseline:central; }
.notification-tools { margin-top:8px; border:1px solid #d8e4dc; border-radius:8px; background:#fbfdfb; }
.notification-tools > summary { padding:7px 10px; cursor:pointer; font-size:12px; font-weight:800; }
.notification-tools > summary span { float:right; color:#5b6d61; font-weight:600; }
.notification-panel { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px 12px; padding:0 10px 10px; font-size:11px; }
.notification-toggle,.notification-help,.notification-events { grid-column:1 / -1; }
.notification-help { margin:0; color:#607066; }
.notification-add { display:flex; align-items:end; gap:5px; }
.notification-add label { flex:1; display:grid; gap:2px; }
.notification-add input { min-width:0; padding:5px 6px; }
.notification-add button { padding:5px 8px; }
.notification-rules { grid-column:1 / -1; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.notification-rules > div { display:grid; align-content:start; gap:4px; }
.notification-rule { display:inline-flex; align-items:center; justify-content:space-between; gap:5px; margin:2px 3px 0 0; padding:3px 4px 3px 7px; border:1px solid #cfddd3; border-radius:999px; background:#fff; }
.notification-rule button { padding:0 3px; border:0; background:transparent; color:#8c3030; font-weight:900; }
.notification-empty { color:#839087; }
.notification-events ol { max-height:112px; margin:4px 0 0; padding-left:22px; overflow:auto; }
.notification-event { padding:2px 0; color:#34463a; }
.notification-event.failed { color:#9a3412; }
@media (max-width:700px) { .notification-panel,.notification-rules { grid-template-columns:1fr; } }
.audience-series-row { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:3px; margin-top:5px; }
.audience-series-row.series-count-1 { grid-template-columns:1fr; }
.audience-series-row.series-count-2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
.audience-series-row.series-count-3 { grid-template-columns:repeat(3,minmax(0,1fr)); }
.audience-series-row.series-count-4 { grid-template-columns:repeat(4,minmax(0,1fr)); }
.audience-series-row.series-count-6 { grid-template-columns:repeat(6,minmax(0,1fr)); }
.audience-series-cell { min-width:0; padding:3px 2px; border:1px solid #e2ebe4; border-radius:5px; background:#f8faf8; text-align:center; }
.audience-series-cell span { display:block; overflow:hidden; color:#667a6c; font-size:9px; white-space:nowrap; text-overflow:ellipsis; }
.audience-series-cell strong { display:block; overflow:hidden; color:#315c40; font-size:12px; white-space:nowrap; text-overflow:ellipsis; }
.audience-series-cell.active { border-color:#a9e9c1; background:#e8fbef; }
.audience-series-cell.active span::before { content:'▶ '; color:#168044; font-size:.82em; }
/* Eight-target projector cards: give the target face priority within the same grid. */
@media (min-width:1600px) and (min-aspect-ratio:16/9) {
  .audience-grid[data-target-count="8"] { --audience-target-frame-height:210px; }
  .audience-side-grid[data-target-count="8"] .audience-side-card { padding:8px; }
  .audience-side-grid[data-target-count="8"] .audience-side-card h3 { height:24px; min-height:24px; margin:4px 0 1px; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; line-height:24px; }
  .audience-side-grid[data-target-count="8"] .audience-side-card .audience-side-body { margin-top:4px; }
  .audience-side-grid[data-target-count="8"] .audience-side-card .live-series-group.active { padding:4px; }
  .audience-side-grid[data-target-count="8"] .side-shot-cells .live-shot-value { min-height:17px; padding:0; }
  .audience-side-grid[data-target-count="8"] .audience-series-row { margin-top:3px; }
  .audience-side-grid[data-target-count="8"] .audience-series-cell { padding:2px; }
}
@media (min-width:1600px) and (min-aspect-ratio:16/9) {
  .live-range-grid.audience-side-grid[data-target-count="4"] { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .live-range-grid.audience-side-grid[data-target-count="6"] { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .live-range-grid.audience-side-grid[data-target-count="8"] { grid-template-columns:repeat(4,minmax(0,1fr)); }
}
@media (min-width:501px) and (max-width:1100px) {
  .audience-grid[data-target-count] { --audience-target-frame-height:140px; }
  .topbar { min-height:56px; padding:8px 5%; }
  .topbar .brand { font-size:22px; }
  body:not(.operator-mode) main:has(.home-view:not([hidden])) { padding-bottom:0; }
  .live-range-view header { margin-bottom:6px; }
  .audience-side-grid .audience-side-card { padding:7px; }
  .audience-side-grid .audience-side-card h3 { display:block; height:1.12em; margin:3px 0 1px; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; font-size:18px; }
  .audience-side-grid .audience-side-card .competition-status { min-height:22px; margin-top:2px; padding:3px 5px; }
  .audience-side-grid .audience-side-card .audience-side-body { margin-top:3px; }
  .audience-side-grid .audience-side-card .audience-prestart-history { height:76px; min-height:76px; padding:5px; }
  .audience-side-grid .audience-side-card .live-target-values { margin-top:0; padding-top:2px; }
  .audience-side-grid .audience-side-card .live-target-value:first-child strong { font-size:29px; }
  .audience-side-grid .audience-side-card .audience-side-details .live-series-groups { margin-top:2px; }
  .audience-side-grid .audience-side-card .live-series-group.active { padding:3px; }
  .audience-side-grid .audience-side-card .side-shot-cells { grid-template-columns:repeat(5,minmax(0,1fr)); grid-template-rows:none; grid-auto-flow:row; gap:2px; }
  .audience-side-grid .audience-side-card .side-shot-cells .live-shot-value { min-height:22px; padding:1px; }
  .audience-side-grid .audience-side-card .side-shot-cells.single,
  .audience-side-grid .audience-side-card .side-shot-cells.double { grid-template-columns:repeat(5,minmax(0,1fr)); }
}
@media (max-width:500px) {
  .live-range-view .live-header {
    min-height:44px; padding:5px 7px; gap:5px;
  }
  .live-range-view .live-header .live-context strong { font-size:13px; }
  .live-range-view .live-header .live-context p { margin-top:1px; font-size:8px; }
  .live-range-view .live-header .live-navigation { position:static; gap:3px; }
  .live-range-view .live-header .live-menu-toggle {
    display:grid; width:32px; height:32px; min-height:32px; padding:0; place-items:center;
  }
  .live-range-view .live-header .live-brand { width:28px; height:28px; margin:0; }
  .live-range-view .live-header .live-brand .klp-logo { width:26px; height:26px; }
  .live-range-view .live-header .live-menu-actions {
    position:absolute; top:calc(100% + 4px); right:0; z-index:60; display:none;
    box-sizing:border-box; width:min(240px,92vw); padding:7px; border:1px solid #405069;
    border-radius:8px; background:#101a2a; box-shadow:0 8px 24px #0f172a55;
  }
  .live-range-view .live-header.mobile-menu-open .live-menu-actions {
    display:flex; flex-direction:column; align-items:stretch; gap:5px;
  }
  .live-range-view .live-header .live-menu-actions > button,
  .live-range-view .live-header .live-menu-actions .live-view-switch { width:100%; }
  .live-range-view .live-header .live-menu-actions .live-view-switch {
    display:grid; grid-template-columns:1fr 1fr;
  }
  .live-range-view .live-header .live-menu-actions .live-view-button { width:100%; }
  .audience-grid[data-target-count] { --audience-target-frame-height:250px; }
  .audience-side-grid .audience-side-card .side-shot-cells,
  .audience-side-grid .audience-side-card .side-shot-cells.single,
  .audience-side-grid .audience-side-card .side-shot-cells.double { grid-template-columns:repeat(5,minmax(0,1fr)); grid-template-rows:none; grid-auto-flow:row; }
  .audience-side-grid .audience-side-card .side-shot-cells .live-shot-value { min-height:23px; padding:1px; }
  .audience-side-grid .audience-side-card .side-shot-cells .audience-shot-number {
    top:3px; left:4px; font-size:7px; font-weight:400; line-height:1;
  }
  .audience-side-grid .audience-side-card .side-shot-cells .audience-shot-text,
  .audience-side-grid .audience-side-card .side-shot-cells.single .audience-shot-text {
    font-size:13px; font-weight:600;
  }
  .audience-side-grid .audience-side-card .side-shot-cells .live-shot-value.latest .audience-shot-text {
    font-size:14px; font-weight:600;
  }
}


/* Tampermonkey 1.9.152 Publikum proportions: compact identity, target, values, five sums, score. */
body:not(.operator-mode):has(.live-range-view:not([hidden])) .topbar { display:none; }
body:not(.operator-mode) main:has(.live-range-view:not([hidden])) { max-width:none; padding:5px 1%; }
body:not(.operator-mode) .live-range-view > header { margin-bottom:4px; gap:4px; }
.live-range-grid.audience-side-grid { gap:4px; }
.audience-side-grid .audience-side-card { position:relative; gap:0; padding:5px; border:1px solid #d2d7df; border-radius:8px; background:#fff; }
.audience-side-grid .audience-side-card .live-target-number { padding:1px 2px; background:none; color:#111827; font-size:13px; text-transform:capitalize; }
.audience-side-grid .audience-side-card .live-target-presence { display:none; }
.audience-side-grid .audience-side-card .audience-signals { position:absolute; top:4px; right:6px; width:48%; height:24px; justify-content:flex-end; }
.audience-side-grid .audience-side-card .audience-signals .live-program { display:none; }
.audience-side-grid .audience-side-card .audience-signals .result-focus,
.audience-side-grid .audience-side-card .audience-signals .live-policy { margin:0; padding:1px 2px; max-width:100%; font-size:8px; }
.audience-side-grid .audience-side-card .audience-signals .result-focus.unranked { display:none; }
.audience-side-grid .audience-side-card h3 { display:block; height:1.12em; min-height:0; margin:1px 0 0; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; font-size:14px; line-height:1.12; }
.audience-side-grid .audience-side-card .live-target-meta { height:1.1em; margin:0; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; font-size:9px; line-height:1.1; }
.audience-side-grid .audience-side-card .shooter-meta { display:flex; align-items:baseline; gap:6px; }
.audience-side-grid .audience-side-card .shooter-club { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.audience-side-grid .audience-side-card .shooter-class { flex:none; color:#475569; font-weight:900; }
.audience-side-grid .audience-side-card .competition-status { display:grid; grid-template-columns:minmax(0,1fr) auto; grid-template-rows:auto auto; gap:1px 6px; min-height:34px; margin-top:3px; padding:4px 7px; border:1px solid #e5e7eb; border-radius:8px; background:#f9fafb; color:#111827; }
.audience-side-grid .audience-side-card .competition-status.phase-practice { border-color:#f59e0b; background:#fffbeb; color:#92400e; }
.audience-side-grid .audience-side-card .competition-status.phase-counting-series,
.audience-side-grid .audience-side-card .competition-status.phase-ten-shot { border-color:#e5e7eb; background:#f9fafb; color:#111827; }
.audience-side-grid .audience-side-card .competition-status-kicker { grid-column:1; color:#6b7280; font-size:9px; line-height:1; font-weight:900; }
.audience-side-grid .audience-side-card .competition-status-kicker::after { content:''; }
.audience-side-grid .audience-side-card .competition-status-label { grid-column:1; font-size:13px; line-height:1; font-weight:700; }
.audience-side-grid .audience-side-card .competition-status .audience-countdown { grid-column:2; grid-row:1 / 3; align-self:center; margin:0; padding:0; background:none; color:#111827; font-size:14px; line-height:.95; font-weight:400; letter-spacing:-.15px; }
.audience-side-grid .audience-side-card .audience-side-body { gap:2px; margin-top:2px; align-items:start; }
.audience-side-grid .audience-side-card .audience-target-face { padding:0; border:0; border-radius:5px; background:#202020; }
.audience-side-grid .audience-side-card.audience-practice:not(.audience-prestart) .audience-target-face::after { content:''; position:absolute; top:0; right:0; z-index:1; width:0; height:0; border-top:42px solid #efb04f; border-left:42px solid transparent; pointer-events:none; }
.audience-side-grid .audience-side-card .audience-target-svg { overflow:hidden; border-radius:5px; background:#202020; }
.audience-side-grid .audience-side-card .audience-target-surface { fill:#202020; stroke:none; }
.audience-side-grid .audience-side-card .audience-target-inner {
  fill:#050505; stroke:#f8fafc; stroke-width:.8px; vector-effect:non-scaling-stroke;
}
.audience-side-grid .audience-side-card .audience-target-guide { fill:none; stroke:#74787b; stroke-width:.8px; vector-effect:non-scaling-stroke; }
.audience-side-grid .audience-side-card .audience-field-target .audience-target-surface { fill:#f7f7f5; }
.audience-field-silhouette { fill:#202020; stroke:#111; stroke-width:.8px; vector-effect:non-scaling-stroke; }
.audience-field-scoring { fill:none; stroke:#f8fafc; stroke-width:1.5px; vector-effect:non-scaling-stroke; }
.audience-side-grid .audience-side-card .audience-ring-number { fill:#f9fafb; font-family:system-ui; font-weight:900; text-anchor:middle; dominant-baseline:central; }
.audience-side-grid .audience-side-card .audience-target-origin { stroke:#e0e1df; stroke-width:1; }
.audience-side-grid .audience-side-card .audience-shot-dot { fill:#16a34a; fill-opacity:.8; stroke:#14532d; }
.audience-side-grid .audience-side-card .audience-shot.latest .audience-shot-dot { fill:#dc2626; fill-opacity:.8; stroke:#7f1d1d; }
.audience-side-grid .audience-side-card .audience-shot-core { fill:#6b7280; fill-opacity:.62; }
.audience-side-grid .audience-side-card .audience-shot-halo { stroke:#7f1d1d; stroke-opacity:.78; filter:none; }
.audience-side-grid .audience-side-card .audience-shot-no { fill:#fff; stroke:#111827; stroke-width:.65px; vector-effect:non-scaling-stroke; font-weight:1000; opacity:1; }
.audience-side-grid .audience-side-card .live-target-values { display:none; }
.audience-side-grid .audience-side-card .audience-side-details .live-series-groups { margin:0; }
.audience-side-grid .audience-side-card .live-series-group.active { min-height:0; margin:0; padding:0; border:0; border-radius:0; background:none; box-shadow:none; }
.audience-side-grid .audience-side-card .live-series-group.active .live-series-header { display:none; }
.audience-side-grid .audience-side-card .live-series-group.active .side-shot-row { min-height:32px; margin:0; padding:2px; border:1px solid #22c55e; border-radius:8px; background:#f0fdf4; }
.audience-side-grid .audience-side-card .live-series-group.active.practice .side-shot-row { border-color:#f59e0b; background:#fffbeb; }
.audience-side-grid .audience-side-card .live-series-group.active .live-shot-label { display:none; }
.audience-side-grid .audience-side-card .side-shot-cells,
.audience-side-grid .audience-side-card .side-shot-cells.single,
.audience-side-grid .audience-side-card .side-shot-cells.double { grid-template-columns:repeat(5,minmax(0,1fr)); grid-template-rows:none; grid-auto-flow:row; gap:2px; margin-top:1px; }
.audience-side-grid .audience-side-card .side-shot-cells .live-shot-value { min-height:28px; padding:2px 4px; border:1px solid #86efac; border-radius:5px; background:#fff; color:#166534; font-size:14px; font-weight:500; }
.audience-side-grid .audience-side-card .live-series-group.active.practice .side-shot-cells .live-shot-value { border-color:#fde68a; background:#fff; color:#92400e; }
.audience-side-grid .audience-side-card .side-shot-cells[data-slot-count="10"] .live-shot-value { min-height:12px; padding:0 1px; font-size:10px; }
.audience-side-grid .audience-side-card .side-shot-cells .side-shot-placeholder,
.audience-side-grid .audience-side-card .live-series-group.active.practice .side-shot-cells .side-shot-placeholder { border-color:#dce8de; background:#ffffff99; outline:0; box-shadow:none; }
.audience-side-grid .audience-side-card .live-series-group.active.practice .side-shot-cells .side-shot-placeholder { border-color:#f6cc7d; background:#fffdf7; }
.audience-side-grid .audience-side-card .side-shot-cells .audience-shot-text,
.audience-side-grid .audience-side-card .side-shot-cells.single .audience-shot-text { font-size:14px; font-weight:700; }
.audience-side-grid .audience-side-card .side-shot-cells[data-slot-count="10"] .audience-shot-text { font-size:10px; }
.audience-side-grid .audience-side-card[data-layout="side"] .side-shot-cells[data-slot-count="10"] .audience-shot-text { font-size:clamp(11px,2.7cqw,17px); }
.audience-side-grid .audience-side-card .side-shot-cells .live-shot-value.latest { outline:0; background:#fff; box-shadow:none; }
.audience-side-grid .audience-side-card .live-series-group.active.practice .side-shot-cells .live-shot-value.latest { outline:0; background:#fff; color:#92400e; box-shadow:none; }
.audience-side-grid .audience-side-card .side-shot-cells .live-shot-value.latest .audience-shot-number { color:#6f8375; }
.audience-side-grid .audience-side-card .live-series-group.active.practice .side-shot-cells .live-shot-value.latest .audience-shot-text { color:#92400e; }
.audience-side-grid .audience-side-card .side-shot-cells .audience-shot-number { top:1px; left:2px; font-size:7px; }
.audience-side-grid .audience-side-card[data-layout="under"] .side-shot-cells[data-under-slot-count="5"] > :nth-child(n+6) { display:none; }
.audience-side-grid .audience-side-card[data-layout="under"] .side-shot-cells[data-under-slot-count="5"] .live-shot-value { min-height:28px; padding:2px 4px; font-size:14px; }
.audience-side-grid .audience-side-card[data-layout="under"] .side-shot-cells[data-under-slot-count="5"] .audience-shot-text { font-size:14px; }
.audience-side-grid .audience-side-card .audience-history-drawer { display:none; }
.audience-side-grid .audience-side-card .audience-history-drawer > summary { padding:1px 0; font-size:8px; }
.audience-side-grid .audience-side-card .audience-series-row { gap:2px; margin-top:2px; }
.audience-side-grid .audience-side-card .audience-series-cell { container-type:inline-size; min-width:0; min-height:29px; padding:3px 4px; border:1px solid #d1d5db; border-radius:6px; background:#fff; }
.audience-side-grid .audience-side-card .audience-series-cell span { color:#4b5563; font-size:7px; line-height:1; font-weight:600; }
.audience-side-grid .audience-side-card .audience-series-cell strong { margin-top:2px; color:#374151; font-size:clamp(9px,.72vw,12px); line-height:1; font-weight:500; font-variant-numeric:tabular-nums; letter-spacing:-.15px; }
.audience-side-grid .audience-side-card .audience-series-cell.sum-long strong { font-size:clamp(7px,18cqi,10px); }
.audience-side-grid .audience-side-card .audience-series-cell.sum-very-long strong { font-size:clamp(6px,15cqi,9px); }
.audience-side-grid .audience-side-card .audience-series-cell.extended-series-cell { padding:0; }
.extended-series-button {
  display:grid; align-content:center; box-sizing:border-box; width:100%; height:100%; min-height:27px;
  padding:3px 4px; border:0; border-radius:5px; background:transparent; color:inherit;
  font:inherit; text-align:center; cursor:pointer;
}
.extended-series-button:hover { background:#edf7f0; }
.extended-series-button:focus-visible { outline:2px solid #2563eb; outline-offset:-2px; }
.audience-side-grid .audience-side-card .audience-score-summary { display:grid; grid-template-columns:1fr 1fr; gap:3px; margin-top:2px; }
.audience-side-grid .audience-side-card .audience-score-box { min-width:0; min-height:36px; padding:3px 6px; border:1px solid #d1d5db; border-radius:8px; background:#fff; text-align:center; }
.audience-side-grid .audience-side-card .audience-score-box span { display:block; color:#6b7280; font-size:9px; line-height:1; font-weight:600; }
.audience-side-grid .audience-side-card .audience-score-box strong { display:block; margin-top:2px; overflow:hidden; color:#111827; font-size:20px; line-height:.95; font-weight:500; text-overflow:ellipsis; white-space:nowrap; }
.audience-side-grid .audience-side-card .audience-score-box:first-child strong { color:#9ca3af; }
.audience-side-grid .audience-side-card.audience-prestart .audience-score-summary { display:none; }
.audience-side-grid .audience-side-card[data-layout="under"] .audience-side-body { grid-template-columns:minmax(0,1fr); }
.audience-side-grid .audience-side-card[data-layout="under"] .audience-target-face { margin:auto; }

@media (min-width:1600px) and (min-aspect-ratio:16/9) {
  .audience-grid[data-target-count] { --audience-target-frame-height:216px; }
  .live-range-grid.audience-side-grid { grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:4px; }
  .live-range-grid.audience-side-grid[data-target-count="4"],
  .live-range-grid.audience-side-grid[data-target-count="6"],
  .live-range-grid.audience-side-grid[data-target-count="8"] { grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); }
  #home:fullscreen .live-range-grid.audience-side-grid,
  body.projector-fallback #home .live-range-grid.audience-side-grid { grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); grid-template-rows:none; align-content:start; }
  #home:fullscreen .audience-side-grid .audience-side-card[data-layout] .audience-target-face,
  body.projector-fallback #home .audience-side-grid .audience-side-card[data-layout] .audience-target-face { width:var(--audience-target-frame-height); }
}

/* One Tampermonkey card shell: PRESTART and LIVE replace only main/footer content. */
.audience-grid .audience-side-card {
  display:flex; flex-direction:column; box-sizing:border-box; min-height:0; overflow:hidden;
}
.audience-grid .audience-side-card .audience-card-main {
  flex:1 1 auto; min-width:0; min-height:0;
}
.audience-grid .audience-side-card .audience-card-footer {
  flex:0 0 auto; min-width:0;
}
.audience-grid .audience-side-card h3,
.audience-grid .audience-side-card.audience-prestart h3 {
  box-sizing:border-box; height:24px; min-height:24px; margin:2px 0 1px; font-size:16px; line-height:24px;
}
.audience-grid .audience-side-card .live-target-meta,
.audience-grid .audience-side-card.audience-prestart .live-target-meta {
  box-sizing:border-box; height:12px; min-height:12px; margin:0; font-size:9px; line-height:12px;
}
.audience-grid.audience-side-grid .audience-side-card .live-target-meta,
.audience-grid.audience-side-grid .audience-side-card.audience-prestart .live-target-meta {
  margin-bottom:clamp(8px,4cqw,28px);
}
.audience-grid .audience-side-card.audience-prestart > .competition-status {
  display:none;
}
.audience-prestart > .live-target-values,
.audience-prestart > .live-series-groups,
.audience-prestart > .audience-signals { display:none; }
.audience-prestart .live-target-number { padding:1px 2px; background:transparent; font-size:12px; }
.audience-prestart h3 { height:1.12em; margin:2px 0 0; -webkit-line-clamp:1; font-size:16px; line-height:1.12; }
.audience-prestart .live-target-meta { height:1.1em; margin:0; font-size:9px; line-height:1.1; }
.audience-watch-badge { position:absolute; top:6px; right:7px; z-index:2; padding:2px 5px; border:1px solid #dfbd72; border-radius:5px; background:#fff8df; color:#805614; font-size:8px; font-weight:900; letter-spacing:.035em; }
.audience-grid .audience-side-card.audience-prestart .audience-card-main,
.audience-grid .audience-side-card.audience-prestart[data-layout] .audience-card-main {
  display:grid; grid-template-columns:minmax(0,1fr); align-items:stretch; height:auto; min-height:0; margin-top:2px;
}
.audience-grid .audience-side-card.audience-prestart .audience-target-face,
.audience-grid .audience-side-card.audience-prestart[data-layout] .audience-target-face,
#home:fullscreen .audience-grid .audience-side-card.audience-prestart[data-layout] .audience-target-face,
body.projector-fallback #home .audience-grid .audience-side-card.audience-prestart[data-layout] .audience-target-face {
  align-self:stretch; box-sizing:border-box; width:100%; height:100%; min-height:0; margin:0; padding:0; border-color:#cbd8ce; border-radius:7px; background:#eef2ef;
}
.audience-prestart .audience-target-face img { display:block; width:100%; height:100%; min-height:0; object-fit:cover; object-position:center center; border-radius:6px; }
.audience-prestart .audience-target-face.prestart-target-fallback { position:relative; display:block; background:#f7f7f5; }
.audience-prestart .audience-target-face.prestart-target-fallback .audience-target-svg { position:absolute; inset:0; display:block; width:100%; height:100%; max-width:none; max-height:none; aspect-ratio:auto; }
.audience-prestart .prestart-black-target .audience-target-surface { fill:#f7f7f5; stroke:none; }
.audience-prestart .prestart-black-target .audience-target-black { fill:#202020; }
.audience-prestart .prestart-black-target .audience-target-inner { fill:#050505; }
.audience-prestart .prestart-black-target .audience-target-guide { fill:none; stroke:#85898c; stroke-width:.8px; vector-effect:non-scaling-stroke; }
.audience-prestart .prestart-black-target .audience-ring-number { fill:#f9fafb; font-weight:900; }
.audience-prestart-history { box-sizing:border-box; width:100%; height:76px; min-height:76px; margin-top:2px; padding:5px 6px 6px; border:1px solid #d9e5dc; border-radius:7px; background:#f8fbf9; overflow:hidden; }
.audience-prestart-history > strong { display:block; margin-bottom:3px; color:#58705e; font-size:8px; line-height:1; letter-spacing:.055em; }
.audience-prestart-results { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:3px; }
.audience-prestart-result { display:grid; grid-template-rows:19px 11px 10px; align-content:start; min-width:0; gap:1px; padding:3px 4px; border:1px solid #e2e8e3; border-radius:5px; background:#fff; }
.audience-prestart-result b { color:#245b3d; font-size:15px; line-height:19px; font-weight:700; font-variant-numeric:tabular-nums; }
.audience-prestart-result span,.audience-prestart-result small { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:8px; line-height:1.15; }
.audience-prestart-result.empty { background:#fbfcfb; color:#9aa39c; }
.audience-prestart-result.empty b { color:#9aa39c; }
.audience-prestart-no-history { display:block; margin-top:3px; color:#748378; font-size:8px; line-height:1; }
.audience-target-card.audience-prestart .audience-score-summary,
.audience-target-card.audience-prestart .audience-series-row { display:none !important; }

/* In compact SIDE cards, PRESTART uses the exact same visual slots as LIVE:
   portrait/target at left and the three historic results at right. */
.audience-side-card.audience-prestart .audience-side-details > .audience-prestart-history { display:none; }
.audience-grid .audience-side-card.audience-prestart[data-layout="under"] .audience-card-main { grid-template-rows:minmax(0,1fr); }
.audience-side-card.audience-prestart[data-layout="under"] .audience-side-details { display:none; }
.audience-grid .audience-side-card.audience-prestart[data-layout="side"] .audience-card-main {
  grid-template-columns:minmax(0,1fr) clamp(86px,22%,112px);
  grid-template-rows:minmax(0,1fr); align-content:stretch; gap:6px; height:100%; min-height:0; overflow:hidden;
}
.audience-side-card.audience-prestart[data-layout="side"] .audience-target-face,
#home:fullscreen .audience-side-card.audience-prestart[data-layout="side"] .audience-target-face,
body.projector-fallback #home .audience-side-card.audience-prestart[data-layout="side"] .audience-target-face {
  align-self:stretch; width:100%; height:100%; min-height:0;
}
.audience-side-card.audience-prestart[data-layout="side"] .audience-side-details {
  display:block; width:auto; height:100%; min-width:0;
}
.audience-side-card.audience-prestart[data-layout="side"] .audience-side-details > .audience-prestart-history {
  display:block; height:100%; min-height:0; margin:0;
}
.audience-side-card.audience-prestart[data-layout="side"] .audience-side-details .audience-prestart-results {
  grid-template-columns:minmax(0,1fr); grid-template-rows:repeat(3,minmax(0,1fr)); height:calc(100% - 12px);
}
.audience-side-card.audience-prestart[data-layout="side"] .audience-side-details .audience-prestart-result {
  display:flex; flex-direction:column; justify-content:center; align-items:stretch; gap:2px; padding:4px 6px;
}
.audience-side-card.audience-prestart[data-layout="side"] .audience-side-details .audience-prestart-result b {
  font-size:clamp(16px,1.1vw,21px); line-height:1;
}
.audience-side-card.audience-prestart[data-layout="side"] .audience-side-details .audience-prestart-result span {
  font-size:clamp(9px,.6vw,11px); font-weight:700;
}
.audience-side-card.audience-prestart[data-layout="side"] .audience-side-details .audience-prestart-result small {
  font-size:clamp(8px,.55vw,10px);
}
.audience-side-card.audience-prestart[data-layout="side"] .audience-card-footer { display:none; }

/* Short TV cards keep all three result summaries inside the image area. */
.audience-side-card.audience-compact-prestart[data-layout="side"] .audience-side-details > .audience-prestart-history {
  padding:2px 3px;
}
.audience-side-card.audience-compact-prestart[data-layout="side"] .audience-prestart-history > strong {
  margin-bottom:1px; overflow:hidden; white-space:nowrap; font-size:7px; line-height:1;
}
.audience-side-card.audience-compact-prestart[data-layout="side"] .audience-side-details .audience-prestart-results {
  height:calc(100% - 8px); gap:2px;
}
.audience-side-card.audience-compact-prestart[data-layout="side"] .audience-side-details .audience-prestart-result {
  gap:0; padding:1px 3px;
}
.audience-side-card.audience-compact-prestart[data-layout="side"] .audience-side-details .audience-prestart-result b { font-size:13px; }
.audience-side-card.audience-compact-prestart[data-layout="side"] .audience-side-details .audience-prestart-result span { font-size:8px; }
.audience-side-card.audience-compact-prestart[data-layout="side"] .audience-side-details .audience-prestart-result small { font-size:7px; }
.audience-side-card.audience-tiny-prestart[data-layout="side"] .audience-side-details .audience-prestart-result small { display:none; }

@media (min-width:700px) and (max-width:1100px) and (max-height:650px) {
  .sim-controls.is-collapsed {
    top:13px; left:calc(50% - 110px); right:auto; bottom:auto; width:30px; padding:0;
    border:0; background:transparent; box-shadow:none;
  }
  .sim-controls.is-collapsed .sim-controls-toggle { width:30px; height:30px; padding:0; font-size:0; }
  .sim-controls.is-collapsed .sim-controls-toggle::before { content:'🎛'; font-size:16px; }
}

/* SIDE keeps the target and its active values in parallel columns. */
.audience-side-grid .audience-side-card[data-layout="side"] .side-shot-cells,
.audience-side-grid .audience-side-card[data-layout="side"] .side-shot-cells.single {
  grid-template-columns:minmax(0,1fr); grid-template-rows:repeat(5,minmax(0,1fr)); grid-auto-flow:column;
}
.audience-side-grid .audience-side-card[data-layout="side"] .side-shot-cells.double {
  grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-rows:repeat(5,minmax(0,1fr)); grid-auto-flow:column;
}

@media (min-width:1101px) {
  .audience-side-grid .audience-side-card:not(.audience-prestart)[data-layout="side"] .audience-side-body {
    grid-template-columns:minmax(0,1fr) var(--audience-shot-column-width,118px);
    width:100%; height:100%; min-height:0; overflow:hidden;
  }
  .audience-side-grid .audience-side-card:not(.audience-prestart)[data-layout="side"] .audience-target-face {
    position:relative; box-sizing:border-box; width:100%; height:100%; max-height:100%; overflow:hidden;
  }
  .audience-side-grid .audience-side-card:not(.audience-prestart)[data-layout="side"] .audience-target-svg {
    position:absolute; inset:0; width:100%; height:100%; aspect-ratio:auto;
  }
  .audience-side-grid .audience-side-card:not(.audience-prestart)[data-layout="side"] .audience-side-details {
    display:flex; flex-direction:column; align-self:stretch;
    width:var(--audience-shot-column-width,118px); height:100%; max-height:100%; min-height:0;
  }
  .audience-side-grid .audience-side-card:not(.audience-prestart)[data-layout="side"] .audience-side-details :is(.live-series-groups,.live-series-group.active,.side-shot-row) {
    display:flex; flex-direction:column; box-sizing:border-box; flex:1 1 auto; width:100%; min-width:0; min-height:0;
  }
  .audience-side-grid .audience-side-card:not(.audience-prestart)[data-layout="side"] .side-shot-cells {
    box-sizing:border-box; flex:1 1 auto; align-self:stretch; width:100%; min-width:0; min-height:0;
  }
  .audience-side-grid .audience-side-card:not(.audience-prestart)[data-layout="side"] .side-shot-cells .live-shot-value {
    box-sizing:border-box; min-width:0; min-height:0; width:100%; height:100%;
  }
}

@media (min-width:1600px) and (min-aspect-ratio:16/9) {
  .audience-grid[data-target-count="8"] { --audience-target-frame-height:250px; }
}

@media (min-width:901px) {
  body:not(.operator-mode):has(.audience-grid[data-target-count="1"]) .live-range-view:not([hidden]),
  body:not(.operator-mode):has(.audience-grid[data-target-count="2"]) .live-range-view:not([hidden]) {
    display:flex; flex-direction:column; box-sizing:border-box; height:calc(100dvh - 10px); min-height:0; overflow:hidden;
  }
  .live-range-grid.audience-grid[data-target-count="1"],
  .live-range-grid.audience-grid[data-target-count="2"] {
    flex:1 1 auto; min-height:0; grid-template-rows:minmax(0,1fr); align-content:stretch;
  }
  .live-range-grid.audience-grid[data-target-count="1"] { grid-template-columns:minmax(0,1fr); }
  .live-range-grid.audience-grid[data-target-count="2"] { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .audience-grid[data-target-count="1"] .audience-side-card,
  .audience-grid[data-target-count="2"] .audience-side-card { height:100%; }
  .audience-grid[data-target-count="1"] .audience-side-card:not(.audience-prestart) .audience-card-main,
  .audience-grid[data-target-count="2"] .audience-side-card:not(.audience-prestart) .audience-card-main {
    grid-template-columns:minmax(0,1fr) 132px; align-items:stretch; overflow:hidden;
  }
  .audience-grid[data-target-count="1"] .audience-side-card .audience-card-main .audience-target-face,
  .audience-grid[data-target-count="2"] .audience-side-card .audience-card-main .audience-target-face {
    align-self:stretch; box-sizing:border-box; width:100%; height:100%; min-height:0; margin:0;
  }
  .audience-grid[data-target-count="1"] .audience-side-card .audience-card-main .audience-target-svg,
  .audience-grid[data-target-count="2"] .audience-side-card .audience-card-main .audience-target-svg {
    width:100%; height:100%; aspect-ratio:auto;
  }
  .audience-grid[data-target-count="1"] .audience-side-card:not(.audience-prestart) .audience-side-details,
  .audience-grid[data-target-count="2"] .audience-side-card:not(.audience-prestart) .audience-side-details,
  .audience-grid[data-target-count="1"] .audience-side-card:not(.audience-prestart) .live-series-groups,
  .audience-grid[data-target-count="2"] .audience-side-card:not(.audience-prestart) .live-series-groups,
  .audience-grid[data-target-count="1"] .audience-side-card:not(.audience-prestart) .live-series-group.active,
  .audience-grid[data-target-count="2"] .audience-side-card:not(.audience-prestart) .live-series-group.active,
  .audience-grid[data-target-count="1"] .audience-side-card:not(.audience-prestart) .side-shot-row,
  .audience-grid[data-target-count="2"] .audience-side-card:not(.audience-prestart) .side-shot-row {
    box-sizing:border-box; height:100%; min-height:0;
  }
  .audience-grid[data-target-count="1"] .audience-side-card .side-shot-cells,
  .audience-grid[data-target-count="2"] .audience-side-card .side-shot-cells,
  .audience-grid[data-target-count="1"] .audience-side-card .side-shot-cells.single,
  .audience-grid[data-target-count="2"] .audience-side-card .side-shot-cells.single {
    height:100%; grid-template-columns:minmax(0,1fr); grid-template-rows:repeat(5,minmax(0,1fr)); grid-auto-flow:row; gap:2px;
  }
  .audience-grid[data-target-count="1"] .audience-side-card .side-shot-cells.double,
  .audience-grid[data-target-count="2"] .audience-side-card .side-shot-cells.double {
    grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-rows:repeat(5,minmax(0,1fr)); grid-auto-flow:column;
  }
  .audience-grid[data-target-count="1"] .audience-side-card .side-shot-cells .live-shot-value,
  .audience-grid[data-target-count="2"] .audience-side-card .side-shot-cells .live-shot-value,
  .audience-grid[data-target-count="1"] .audience-side-card .side-shot-cells[data-slot-count="10"] .live-shot-value,
  .audience-grid[data-target-count="2"] .audience-side-card .side-shot-cells[data-slot-count="10"] .live-shot-value {
    min-height:0; padding:2px; font-size:18px;
  }
  .audience-grid[data-target-count="1"] .audience-side-card .side-shot-cells .audience-shot-number,
  .audience-grid[data-target-count="2"] .audience-side-card .side-shot-cells .audience-shot-number {
    top:3px; left:4px; font-size:11px;
  }
  .audience-grid[data-target-count="1"] .audience-side-card .side-shot-cells .audience-shot-text,
  .audience-grid[data-target-count="2"] .audience-side-card .side-shot-cells .audience-shot-text,
  .audience-grid[data-target-count="1"] .audience-side-card .side-shot-cells[data-slot-count="10"] .audience-shot-text,
  .audience-grid[data-target-count="2"] .audience-side-card .side-shot-cells[data-slot-count="10"] .audience-shot-text {
    font-size:18px;
  }
  .audience-grid[data-target-count="1"] .audience-side-card .audience-card-footer,
  .audience-grid[data-target-count="2"] .audience-side-card .audience-card-footer { min-height:100px; }
  .audience-grid[data-target-count="1"] .audience-side-card .audience-series-row,
  .audience-grid[data-target-count="2"] .audience-side-card .audience-series-row { min-height:42px; }
  .audience-grid[data-target-count="1"] .audience-side-card .audience-series-cell,
  .audience-grid[data-target-count="2"] .audience-side-card .audience-series-cell { display:grid; align-content:center; min-height:42px; }
  .audience-grid[data-target-count="1"] .audience-side-card .audience-series-cell span,
  .audience-grid[data-target-count="2"] .audience-side-card .audience-series-cell span { font-size:9px; }
  .audience-grid[data-target-count="1"] .audience-side-card .audience-series-cell strong,
  .audience-grid[data-target-count="2"] .audience-side-card .audience-series-cell strong { font-size:17px; }
  .audience-grid[data-target-count="1"] .audience-side-card .audience-score-box,
  .audience-grid[data-target-count="2"] .audience-side-card .audience-score-box { min-height:52px; }
  .audience-grid[data-target-count="1"] .audience-side-card .audience-score-box strong,
  .audience-grid[data-target-count="2"] .audience-side-card .audience-score-box strong { font-size:24px; }
}

/* Eight-target 16:9 grid: two complete viewport rows; card layout stays adaptive. */
@media (min-width:1600px) and (min-aspect-ratio:16/9) {
  body:not(.operator-mode):has(.audience-grid[data-target-count="8"]) .live-range-view:not([hidden]) {
    display:flex; flex-direction:column; box-sizing:border-box; height:calc(100dvh - 10px); min-height:0; overflow:hidden;
  }
  .live-range-grid.audience-grid[data-target-count="8"] {
    flex:1 1 auto; min-height:0; grid-template-columns:repeat(4,minmax(0,1fr)); grid-template-rows:repeat(2,minmax(0,1fr)); align-content:stretch; overflow:hidden;
    --audience-target-frame-height:clamp(145px,20vh,210px);
  }
  .audience-grid[data-target-count="8"] .audience-side-card {
    box-sizing:border-box; height:100%; min-height:0; overflow:hidden;
  }
}

/* Tampermonkey density for large ranges: five stable cards per desktop row. */
@media (min-width:1600px) and (min-aspect-ratio:16/9) {
  body:not(.operator-mode):has(.audience-grid:is([data-target-count="9"],[data-target-count="10"],[data-target-count="11"],[data-target-count="12"],[data-target-count="13"],[data-target-count="14"],[data-target-count="15"])) .live-range-view:not([hidden]) {
    display:flex; flex-direction:column; box-sizing:border-box; height:calc(100dvh - 10px); min-height:0; overflow:hidden;
  }
  .live-range-grid.audience-grid:is([data-target-count="9"],[data-target-count="10"],[data-target-count="11"],[data-target-count="12"],[data-target-count="13"],[data-target-count="14"],[data-target-count="15"]) {
    flex:1 1 auto; min-height:0; align-content:stretch; gap:4px; overflow:hidden;
  }
  .live-range-grid.audience-grid:is([data-target-count="9"],[data-target-count="10"]) {
    grid-template-columns:repeat(5,minmax(0,1fr)); grid-template-rows:repeat(2,minmax(0,1fr)); --audience-target-frame-height:clamp(250px,22vw,410px);
  }
  .live-range-grid.audience-grid:is([data-target-count="11"],[data-target-count="12"]) {
    grid-template-columns:repeat(6,minmax(0,1fr)); grid-template-rows:repeat(2,minmax(0,1fr));
  }
  .live-range-grid.audience-grid:is([data-target-count="13"],[data-target-count="14"]) {
    grid-template-columns:repeat(7,minmax(0,1fr)); grid-template-rows:repeat(2,minmax(0,1fr));
  }
  .live-range-grid.audience-grid[data-target-count="15"] {
    grid-template-columns:repeat(8,minmax(0,1fr)); grid-template-rows:repeat(2,minmax(0,1fr));
  }
  .audience-grid:is([data-target-count="9"],[data-target-count="10"],[data-target-count="11"],[data-target-count="12"],[data-target-count="13"],[data-target-count="14"],[data-target-count="15"]) .audience-side-card {
    box-sizing:border-box; height:100%; min-height:0; padding:5px; overflow:hidden;
  }
  .audience-grid:is([data-target-count="9"],[data-target-count="10"],[data-target-count="11"],[data-target-count="12"],[data-target-count="13"],[data-target-count="14"],[data-target-count="15"]) .audience-side-card:not(.audience-prestart)[data-layout="side"] .audience-side-body {
    grid-template-columns:minmax(0,1fr) var(--audience-shot-column-width,92px);
  }
  .audience-grid:is([data-target-count="9"],[data-target-count="10"],[data-target-count="11"],[data-target-count="12"],[data-target-count="13"],[data-target-count="14"],[data-target-count="15"]) .audience-side-card:not(.audience-prestart)[data-layout="side"] .audience-side-details {
    width:var(--audience-shot-column-width,92px); height:100%;
  }
  .audience-grid:is([data-target-count="11"],[data-target-count="12"],[data-target-count="13"],[data-target-count="14"],[data-target-count="15"]) .audience-series-cell { min-height:22px; padding:1px 2px; }
  .audience-grid:is([data-target-count="11"],[data-target-count="12"],[data-target-count="13"],[data-target-count="14"],[data-target-count="15"]) .audience-score-box { min-height:28px; padding:1px 3px; }
  .audience-grid:is([data-target-count="11"],[data-target-count="12"],[data-target-count="13"],[data-target-count="14"],[data-target-count="15"]) .audience-score-box strong { margin-top:1px; font-size:16px; }
}

@media (min-width:901px) {
  body:not(.operator-mode):has(.live-range-grid.audience-side-grid) .live-range-view:not([hidden]) {
    display:flex; flex-direction:column; box-sizing:border-box; height:calc(100dvh - 10px); min-height:0; overflow:hidden;
  }
  .live-range-grid.audience-grid.audience-side-grid { flex:1 1 auto; min-height:0; align-content:stretch; overflow:hidden; }
  .live-range-grid.audience-side-grid .audience-side-card { box-sizing:border-box; height:100%; min-height:0; }
}

/* Keep measured multi-card rows attached to the portrait-tablet viewport. */
@media (min-width:700px) and (max-width:900px) and (orientation:portrait) {
  body:not(.operator-mode):has(.live-range-grid.audience-side-grid) .live-range-view:not([hidden]) {
    display:flex; flex-direction:column; box-sizing:border-box; height:calc(100dvh - 10px); min-height:0; overflow:hidden;
  }
  .live-range-grid.audience-grid.audience-side-grid {
    flex:1 1 auto; min-height:0; align-content:stretch; gap:4px; overflow:hidden;
  }
  .audience-grid .audience-side-card {
    box-sizing:border-box; height:100%; min-height:0; padding:4px;
  }
}

/* In the TV grid, let the target use the space already reserved beside the
   shot values instead of leaving an empty band inside each card. */
@media (min-width:1600px) and (min-aspect-ratio:16/9) {
  #home:fullscreen .audience-side-grid .audience-side-card:not(.audience-prestart)[data-layout="side"] .audience-target-face,
  body.projector-fallback #home .audience-side-grid .audience-side-card:not(.audience-prestart)[data-layout="side"] .audience-target-face {
    width:100%; max-width:100%; height:100%;
  }
}

/* Keep eleven targets in balanced rows even before the measured JS layout runs. */
@media (min-width:1200px) {
  .live-range-grid.audience-side-grid[data-target-count="11"] {
    grid-template-columns:repeat(6,minmax(0,1fr));
    grid-template-rows:repeat(2,minmax(0,1fr));
  }
}

/* Utvidet: same target cards as Publikum, with a bounded 2x2/4x2 viewport.
   Further targets stay full size and are reached by scrolling the grid. */
body:not(.operator-mode):has(.live-range-grid.extended-grid) .live-range-view:not([hidden]) {
  display:flex; flex-direction:column; box-sizing:border-box; height:calc(100dvh - 10px); min-height:0; overflow:hidden;
}
.live-range-grid.audience-grid.audience-side-grid.extended-grid {
  flex:1 1 auto; min-height:0; grid-template-rows:none !important; align-content:start;
  gap:4px; overflow-x:hidden; overflow-y:auto; overscroll-behavior:contain;
}
.extended-grid .audience-side-card {
  box-sizing:border-box; height:100%; min-height:0; overflow:hidden;
}
@media (orientation:portrait) {
  .live-range-grid.audience-grid.audience-side-grid.extended-grid {
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    grid-auto-rows:calc((100% - 4px) / 2);
  }
  .live-range-grid.extended-grid[data-target-count="1"] {
    grid-template-columns:minmax(0,1fr) !important; grid-auto-rows:100%;
  }
  .live-range-grid.extended-grid[data-target-count="2"] { grid-auto-rows:100%; }
}
@media (orientation:landscape) {
  .live-range-grid.audience-grid.audience-side-grid.extended-grid {
    grid-template-columns:repeat(4,minmax(0,1fr)) !important;
    grid-auto-rows:calc((100% - 4px) / 2);
  }
  .live-range-grid.extended-grid[data-target-count="1"] {
    grid-template-columns:minmax(0,1fr) !important; grid-auto-rows:100%;
  }
  .live-range-grid.extended-grid[data-target-count="2"] {
    grid-template-columns:repeat(2,minmax(0,1fr)) !important; grid-auto-rows:100%;
  }
  .live-range-grid.extended-grid[data-target-count="3"] {
    grid-template-columns:repeat(3,minmax(0,1fr)) !important; grid-auto-rows:100%;
  }
  .live-range-grid.extended-grid[data-target-count="4"] { grid-auto-rows:100%; }
}

/* Approved UNDER/SIDE card details shared by both responsive layouts. */
.audience-side-grid .audience-side-card .competition-status {
  grid-template-rows:minmax(0,1fr); align-items:center; min-height:30px; flex-shrink:0;
}
.audience-side-grid .audience-side-card .competition-status-label {
  align-self:center; font-size:clamp(11px,.9vw,14px); line-height:1.2; font-weight:600;
}
.audience-side-grid .audience-side-card .competition-status .audience-countdown {
  grid-row:1; align-self:center; line-height:1.2;
}
.audience-side-grid .audience-side-card.audience-practice:not(.audience-prestart) .audience-target-face::after {
  width:18%; height:18%; min-width:32px; min-height:32px; max-width:128px; max-height:128px;
  border:0; background:rgb(245 158 11 / .68);
  clip-path:polygon(0 0,100% 0,100% 100%);
}
.audience-side-grid .audience-side-card .audience-shot-dot,
.audience-side-grid .audience-side-card .audience-shot.latest .audience-shot-dot {
  fill-opacity:1;
}
.audience-side-grid .audience-side-card .audience-shot-core {
  fill:#34383b; fill-opacity:1;
}
.audience-side-grid .audience-side-card .live-series-group.active:not(.practice) .live-shot-value.latest .audience-shot-text {
  color:#166534;
}
.audience-side-grid .audience-side-card .audience-score-box:first-child {
  background:#fff;
}
.audience-side-grid .audience-side-card .audience-score-box:first-child span,
.audience-side-grid .audience-side-card .audience-score-box:first-child strong {
  color:#596168;
}
.audience-side-grid .audience-side-card .audience-score-box:last-child span,
.audience-side-grid .audience-side-card .audience-score-box:last-child strong {
  color:#111827; font-weight:900;
}
.audience-side-grid .audience-side-card .audience-dfs-target .audience-target-surface {
  fill:#f7f7f5; stroke:none;
}
.audience-side-grid .audience-side-card .audience-target-svg.audience-dfs-target {
  background:#f7f7f5;
}
.audience-side-grid .audience-side-card.audience-prestart .audience-dfs-target {
  background:#f7f7f5;
}
.audience-side-grid .audience-side-card .audience-dfs-target .audience-target-black {
  fill:#202020;
}
.audience-side-grid .audience-side-card .audience-dfs-target .audience-target-guide[data-face="outer"] {
  stroke:#65696b;
}
.audience-side-grid .audience-side-card .audience-dfs-target .audience-ring-number[data-face="outer"] {
  fill:#202020;
}

/* Five and ten shots use the same strip height; only its row count changes. */
.audience-side-grid .audience-side-card[data-layout="under"]:not(.audience-prestart) {
  --under-shot-strip-height:64px;
}
.audience-side-grid .audience-side-card.audience-no-shot-strip[data-layout="under"] {
  --under-shot-strip-height:0px;
}
.audience-side-grid .audience-side-card[data-layout="under"]:not(.audience-prestart) .audience-card-main {
  grid-template-rows:minmax(0,1fr) var(--under-shot-strip-height);
  align-items:stretch; min-height:0; overflow:hidden;
}
.audience-side-grid .audience-side-card[data-layout="under"]:not(.audience-prestart) .audience-target-face,
#home:fullscreen .audience-side-grid .audience-side-card[data-layout="under"]:not(.audience-prestart) .audience-target-face,
body.projector-fallback #home .audience-side-grid .audience-side-card[data-layout="under"]:not(.audience-prestart) .audience-target-face {
  align-self:center; justify-self:center; width:auto; height:min(100%,100cqi); max-width:100%; max-height:100%;
  aspect-ratio:1; margin:0; overflow:hidden;
}
.audience-side-grid:is([data-target-count="8"],[data-target-count="11"],[data-target-count="12"]) .audience-side-card[data-layout="under"]:not(.audience-prestart) .audience-target-face,
#home:fullscreen .audience-side-grid:is([data-target-count="8"],[data-target-count="11"],[data-target-count="12"]) .audience-side-card[data-layout="under"]:not(.audience-prestart) .audience-target-face,
body.projector-fallback #home .audience-side-grid:is([data-target-count="8"],[data-target-count="11"],[data-target-count="12"]) .audience-side-card[data-layout="under"]:not(.audience-prestart) .audience-target-face {
  width:100%; aspect-ratio:auto;
}
.audience-side-grid .audience-side-card[data-layout="under"]:not(.audience-prestart) .audience-target-svg {
  position:absolute; inset:0; width:100%; height:100%; aspect-ratio:auto;
}
.audience-side-grid .audience-side-card[data-layout="under"]:not(.audience-prestart) .audience-side-details {
  min-height:0; height:var(--under-shot-strip-height); overflow:hidden;
}
.audience-side-grid .audience-side-card.audience-no-shot-strip[data-layout="under"] .audience-side-details {
  display:none;
}
.audience-side-grid .audience-side-card[data-layout="under"]:not(.audience-prestart) .side-shot-row {
  box-sizing:border-box; display:flex; flex-direction:column; flex-wrap:nowrap; align-items:stretch; gap:0;
  height:var(--under-shot-strip-height); min-height:var(--under-shot-strip-height);
}
.audience-side-grid .audience-side-card[data-layout="under"] .side-shot-cells {
  box-sizing:border-box; flex:1 1 auto; width:100%; min-width:0; min-height:0; margin-top:0; grid-template-rows:minmax(0,1fr);
}
.audience-side-grid .audience-side-card[data-layout="under"] .side-shot-cells[data-under-slot-count="10"] {
  grid-template-rows:repeat(2,minmax(0,1fr));
}
.audience-side-grid .audience-side-card[data-layout="under"] .side-shot-cells .live-shot-value {
  box-sizing:border-box; height:100%; min-height:0;
}
.audience-side-grid .audience-side-card[data-layout="under"] .side-shot-cells[data-under-slot-count="5"] .audience-shot-text,
.audience-side-grid .audience-side-card[data-layout="under"] .side-shot-cells[data-under-slot-count="5"] .latest .audience-shot-text {
  font-size:16px; font-weight:700;
}
.audience-side-grid .audience-side-card[data-layout="under"] .side-shot-cells[data-under-slot-count="10"] .audience-shot-text,
.audience-side-grid .audience-side-card[data-layout="under"] .side-shot-cells[data-under-slot-count="10"] .latest .audience-shot-text {
  font-size:14px; font-weight:700;
}

/* Compact UNDER cards are sized by their own width, not by the monitor width. */
.audience-side-grid .audience-side-card[data-layout="under"] { container-type:inline-size; }
@container (max-width:340px) {
  .audience-side-grid .audience-side-card[data-layout="under"]:not(.audience-prestart) .audience-card-main {
    --under-shot-strip-height:48px;
  }
}
@container (max-width:260px) {
  .audience-side-grid .audience-side-card[data-layout="under"]:not(.audience-prestart) .audience-card-main {
    --under-shot-strip-height:40px;
  }
  .audience-side-card[data-layout="under"] .competition-status {
    grid-template-columns:minmax(0,1fr) max-content; gap:2px; min-height:28px; padding:2px 4px;
  }
  .audience-side-card[data-layout="under"] .competition-status-label {
    min-width:0; font-size:11px; line-height:1; white-space:nowrap;
  }
  .audience-side-card[data-layout="under"] .competition-status .audience-countdown {
    font-size:9px; line-height:1; letter-spacing:-.2px; white-space:nowrap;
  }
  .audience-side-grid .audience-side-card[data-layout="under"] .side-shot-cells .live-shot-value,
  .audience-side-grid .audience-side-card[data-layout="under"] .side-shot-cells[data-under-slot-count="5"] .live-shot-value {
    min-width:0; min-height:0; padding:1px 2px 1px 8px;
  }
  .audience-side-card[data-layout="under"] .side-shot-cells .audience-shot-number {
    top:2px; left:2px; font-size:6px;
  }
  .audience-side-grid .audience-side-card[data-layout="under"] .side-shot-cells .audience-shot-text,
  .audience-side-grid .audience-side-card[data-layout="under"] .side-shot-cells .latest .audience-shot-text,
  .audience-side-grid .audience-side-card[data-layout="under"] .side-shot-cells[data-under-slot-count="5"] .audience-shot-text,
  .audience-side-grid .audience-side-card[data-layout="under"] .side-shot-cells[data-under-slot-count="5"] .latest .audience-shot-text,
  .audience-side-grid .audience-side-card[data-layout="under"] .side-shot-cells[data-under-slot-count="10"] .audience-shot-text,
  .audience-side-grid .audience-side-card[data-layout="under"] .side-shot-cells[data-under-slot-count="10"] .latest .audience-shot-text {
    min-width:0; font-size:11px; line-height:1; font-weight:700;
  }
  .audience-side-card[data-layout="under"] .audience-series-cell {
    min-height:22px; padding:2px 1px;
  }
  .audience-side-card[data-layout="under"] .audience-series-cell span {
    font-size:6px; letter-spacing:-.2px;
  }
  .audience-side-card[data-layout="under"] .audience-series-cell strong {
    margin-top:1px; font-size:10px;
  }
  .audience-side-card[data-layout="under"] .audience-score-box {
    min-height:28px; padding:2px 3px;
  }
  .audience-side-card[data-layout="under"] .audience-score-box span { font-size:7px; }
  .audience-side-card[data-layout="under"] .audience-score-box strong { font-size:15px; }
}
.audience-side-grid .audience-side-card.audience-no-shot-strip[data-layout="under"] .audience-card-main {
  --under-shot-strip-height:0px;
}

/* Mobile audience view follows the range-monitor pattern: two compact cards
   across, with the target and shot values sharing the main row. */
@media (max-width:500px) {
  body:not(.operator-mode):has(.audience-grid:is([data-target-count="2"],[data-target-count="3"],[data-target-count="4"],[data-target-count="5"],[data-target-count="6"],[data-target-count="7"],[data-target-count="8"])) .live-range-view:not([hidden]) {
    display:flex; flex-direction:column; box-sizing:border-box; height:calc(100dvh - 10px); min-height:0; overflow:hidden;
  }
  .live-range-grid.audience-grid.audience-side-grid {
    grid-template-columns:repeat(2,minmax(0,1fr)); gap:4px;
  }
  .live-range-grid.audience-grid.audience-side-grid:is([data-target-count="3"],[data-target-count="4"]) {
    flex:1 1 auto; min-height:0; grid-template-rows:repeat(2,minmax(0,1fr)); align-content:stretch; overflow:hidden;
  }
  .live-range-grid.audience-grid.audience-side-grid[data-target-count="2"] {
    flex:1 1 auto; min-height:0; grid-template-rows:minmax(0,1fr); align-content:stretch; overflow:hidden;
  }
  .live-range-grid.audience-grid.audience-side-grid:is([data-target-count="5"],[data-target-count="6"]) {
    flex:1 1 auto; min-height:0; grid-template-rows:repeat(3,minmax(0,1fr)); align-content:stretch; overflow:hidden;
  }
  .live-range-grid.audience-grid.audience-side-grid:is([data-target-count="7"],[data-target-count="8"]) {
    flex:1 1 auto; min-height:0; grid-template-rows:repeat(4,minmax(0,1fr)); align-content:stretch; overflow:hidden;
  }
  .live-range-grid.audience-grid.audience-side-grid[data-target-count="1"] {
    grid-template-columns:minmax(0,1fr);
  }
  .audience-side-grid .audience-side-card {
    min-width:0; padding:3px;
  }
  .audience-side-grid:is([data-target-count="2"],[data-target-count="3"],[data-target-count="4"]) .audience-side-card {
    box-sizing:border-box; height:100%; min-height:0;
  }
  .audience-side-grid:is([data-target-count="5"],[data-target-count="6"],[data-target-count="7"],[data-target-count="8"]) .audience-side-card {
    box-sizing:border-box; height:100%; min-height:0; padding:2px;
  }
  .audience-side-grid:is([data-target-count="2"],[data-target-count="3"],[data-target-count="4"]) .audience-side-card .live-target-number {
    font-size:11px; line-height:13px;
  }
  .audience-side-grid:is([data-target-count="2"],[data-target-count="3"],[data-target-count="4"]) .audience-side-card h3,
  .audience-side-grid:is([data-target-count="2"],[data-target-count="3"],[data-target-count="4"]) .audience-side-card.audience-prestart h3 {
    height:18px; min-height:18px; margin:0; font-size:13px; line-height:18px;
  }
  .audience-grid.audience-side-grid:is([data-target-count="2"],[data-target-count="3"],[data-target-count="4"]) .audience-side-card .live-target-meta,
  .audience-grid.audience-side-grid:is([data-target-count="2"],[data-target-count="3"],[data-target-count="4"]) .audience-side-card.audience-prestart .live-target-meta {
    height:10px; min-height:10px; margin:0 0 3px; font-size:8px; line-height:10px;
  }
  .audience-side-grid:is([data-target-count="2"],[data-target-count="3"],[data-target-count="4"]) .audience-side-card .competition-status {
    min-height:26px; margin-top:1px; padding:2px 4px;
  }
  .audience-side-grid:is([data-target-count="2"],[data-target-count="3"],[data-target-count="4"]) .audience-side-card .competition-status-label {
    font-size:10px;
  }
  .audience-side-grid:is([data-target-count="2"],[data-target-count="3"],[data-target-count="4"]) .audience-side-card .competition-status .audience-countdown {
    font-size:9px;
  }
  .audience-side-grid .audience-side-card:not(.audience-prestart)[data-layout="side"] .audience-card-main {
    grid-template-columns:minmax(0,1fr) clamp(58px,32%,68px);
    align-items:stretch; gap:2px; width:100%; min-width:0; overflow:hidden;
  }
  .audience-side-grid .audience-side-card:not(.audience-prestart)[data-layout="side"] .audience-target-face {
    align-self:stretch; box-sizing:border-box; width:100%; height:auto; aspect-ratio:1; overflow:hidden;
  }
  .audience-side-grid .audience-side-card:not(.audience-prestart)[data-layout="side"] .audience-target-svg {
    display:block; width:100%; height:100%; aspect-ratio:auto;
  }
  .audience-side-grid .audience-side-card:not(.audience-prestart)[data-layout="side"] .audience-side-details,
  .audience-side-grid .audience-side-card:not(.audience-prestart)[data-layout="side"] .audience-side-details :is(.live-series-groups,.live-series-group.active,.side-shot-row) {
    display:flex; flex-direction:column; box-sizing:border-box; align-self:stretch;
    width:100%; height:100%; min-width:0; min-height:0;
  }
  .audience-side-grid .audience-side-card:not(.audience-prestart)[data-layout="side"] .side-shot-cells,
  .audience-side-grid .audience-side-card:not(.audience-prestart)[data-layout="side"] .side-shot-cells.single,
  .audience-side-grid .audience-side-card:not(.audience-prestart)[data-layout="side"] .side-shot-cells.double {
    box-sizing:border-box; flex:1 1 auto; align-self:stretch; width:100%; height:100%; min-width:0; min-height:0;
    grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-rows:repeat(5,minmax(0,1fr)); grid-auto-flow:column;
  }
  .audience-side-grid .audience-side-card:not(.audience-prestart)[data-layout="side"] .side-shot-cells .live-shot-value,
  .audience-side-grid .audience-side-card:not(.audience-prestart)[data-layout="side"] .side-shot-cells[data-slot-count="10"] .live-shot-value {
    box-sizing:border-box; width:100%; height:100%; min-width:0; min-height:0; padding:1px 2px 1px 12px;
  }
  .audience-side-grid .audience-side-card:not(.audience-prestart)[data-layout="side"] .side-shot-cells .audience-shot-text,
  .audience-side-grid .audience-side-card:not(.audience-prestart)[data-layout="side"] .side-shot-cells[data-slot-count="10"] .audience-shot-text {
    font-size:clamp(8px,2.3vw,10px); line-height:1; font-weight:400;
  }
  .audience-side-grid .audience-side-card:not(.audience-prestart)[data-layout="side"] .side-shot-cells .audience-shot-number {
    top:50%; left:2px; z-index:1; width:8px; color:#607267; font-size:6px; line-height:1;
    font-weight:750; text-align:center; transform:translateY(-50%);
  }
  .audience-side-grid:is([data-target-count="2"],[data-target-count="3"],[data-target-count="4"]) .audience-side-card .audience-series-cell {
    min-height:24px; padding:2px 1px;
  }
  .audience-side-grid:is([data-target-count="2"],[data-target-count="3"],[data-target-count="4"]) .audience-side-card .audience-score-box {
    min-height:30px; padding:2px 3px;
  }
  .audience-side-grid:is([data-target-count="2"],[data-target-count="3"],[data-target-count="4"]) .audience-side-card .audience-score-box span {
    font-size:7px;
  }
  .audience-side-grid:is([data-target-count="2"],[data-target-count="3"],[data-target-count="4"]) .audience-side-card .audience-score-box strong {
    font-size:15px;
  }
  .audience-side-grid:is([data-target-count="5"],[data-target-count="6"],[data-target-count="7"],[data-target-count="8"]) .audience-side-card .live-target-number {
    font-size:9px; line-height:10px;
  }
  .audience-side-grid:is([data-target-count="5"],[data-target-count="6"],[data-target-count="7"],[data-target-count="8"]) .audience-side-card h3,
  .audience-side-grid:is([data-target-count="5"],[data-target-count="6"],[data-target-count="7"],[data-target-count="8"]) .audience-side-card.audience-prestart h3 {
    height:14px; min-height:14px; margin:0; font-size:11px; line-height:14px;
  }
  .audience-grid.audience-side-grid:is([data-target-count="5"],[data-target-count="6"],[data-target-count="7"],[data-target-count="8"]) .audience-side-card .live-target-meta,
  .audience-grid.audience-side-grid:is([data-target-count="5"],[data-target-count="6"],[data-target-count="7"],[data-target-count="8"]) .audience-side-card.audience-prestart .live-target-meta {
    height:8px; min-height:8px; margin:0 0 1px; font-size:7px; line-height:8px;
  }
  .audience-side-grid:is([data-target-count="5"],[data-target-count="6"],[data-target-count="7"],[data-target-count="8"]) .audience-side-card .competition-status {
    min-height:18px; margin-top:1px; padding:1px 3px; border-radius:5px;
  }
  .audience-side-grid:is([data-target-count="5"],[data-target-count="6"],[data-target-count="7"],[data-target-count="8"]) .audience-side-card .competition-status-label {
    font-size:8px;
  }
  .audience-side-grid:is([data-target-count="5"],[data-target-count="6"],[data-target-count="7"],[data-target-count="8"]) .audience-side-card .competition-status .audience-countdown {
    font-size:7px;
  }
  .audience-side-grid:is([data-target-count="5"],[data-target-count="6"],[data-target-count="7"],[data-target-count="8"]) .audience-side-card:not(.audience-prestart)[data-layout="side"] .audience-target-face {
    height:100%; min-height:0; aspect-ratio:auto;
  }
  .audience-side-grid:is([data-target-count="5"],[data-target-count="6"],[data-target-count="7"],[data-target-count="8"]) .audience-side-card .audience-series-row {
    margin-top:1px;
  }
  .audience-side-grid:is([data-target-count="5"],[data-target-count="6"],[data-target-count="7"],[data-target-count="8"]) .audience-side-card .audience-series-cell {
    min-height:18px; padding:1px;
  }
  .audience-side-grid:is([data-target-count="5"],[data-target-count="6"],[data-target-count="7"],[data-target-count="8"]) .audience-side-card .audience-series-cell span {
    font-size:5px;
  }
  .audience-side-grid:is([data-target-count="5"],[data-target-count="6"],[data-target-count="7"],[data-target-count="8"]) .audience-side-card .audience-series-cell strong {
    margin-top:1px; font-size:8px;
  }
  .audience-side-grid:is([data-target-count="5"],[data-target-count="6"],[data-target-count="7"],[data-target-count="8"]) .audience-side-card .audience-score-summary {
    margin-top:1px;
  }
  .audience-side-grid:is([data-target-count="5"],[data-target-count="6"],[data-target-count="7"],[data-target-count="8"]) .audience-side-card .audience-score-box {
    min-height:23px; padding:1px 2px; border-radius:5px;
  }
  .audience-side-grid:is([data-target-count="5"],[data-target-count="6"],[data-target-count="7"],[data-target-count="8"]) .audience-side-card .audience-score-box span {
    font-size:5px;
  }
  .audience-side-grid:is([data-target-count="5"],[data-target-count="6"],[data-target-count="7"],[data-target-count="8"]) .audience-side-card .audience-score-box strong {
    margin-top:1px; font-size:11px;
  }
  .audience-side-grid:is([data-target-count="5"],[data-target-count="6"],[data-target-count="7"],[data-target-count="8"]) .audience-side-card:not(.audience-prestart)[data-layout="side"] .side-shot-cells .audience-shot-text,
  .audience-side-grid:is([data-target-count="5"],[data-target-count="6"],[data-target-count="7"],[data-target-count="8"]) .audience-side-card:not(.audience-prestart)[data-layout="side"] .side-shot-cells[data-slot-count="10"] .audience-shot-text {
    font-size:8px; font-weight:400;
  }
  .audience-side-grid .audience-side-card .audience-spread-line {
    stroke-width:1.15;
  }
  .audience-side-grid .audience-side-card .audience-spread-value-box {
    fill-opacity:.78; stroke-width:.8;
  }
  .audience-side-grid .audience-side-card .audience-spread-value-text {
    fill:#fff1a8; opacity:1; font-weight:750;
  }
}

/* Homepage tools stay in the topbar menu, leaving room for venues. */
.home-menu {
  position:fixed;
  inset:88px 20px auto auto;
  margin:0;
  width:min(560px,calc(100vw - 24px));
  max-height:calc(100dvh - 110px);
  overflow:auto;
  padding:14px;
  border:1px solid #3d785d;
  border-radius:12px;
  background:#f4f8f5;
  color:#244a36;
  box-shadow:0 14px 48px #163c3433;
}
.home-menu-heading { display:flex; align-items:center; justify-content:space-between; margin-bottom:12px; }
.home-menu-heading button { padding:3px 10px; font-size:24px; line-height:1.2; }
.home-menu .pushover-settings { grid-template-columns:1fr; align-items:stretch; }
.home-menu .pushover-settings-actions { flex-wrap:wrap; }
.home-menu .start-fold,.home-menu .notification-tools { margin:0 0 8px; }
#topbarCollapse { display:grid; place-items:center; padding:0; box-sizing:border-box; width:42px; height:40px; margin-left:auto; }
#topbarCollapse svg { display:block; }
body:has(#startPage[hidden]) #topbarCollapse { display:none; }
@media(max-width:650px) {
  .home-menu { inset:76px 12px auto auto; max-height:calc(100dvh - 90px); }
  #topbarCollapse { margin-left:auto; }
}

/* Number and shooter share a compact header; the target receives the saved height. */
.audience-side-grid .audience-side-card .audience-identity-header {
  display:flex; align-items:center; gap:4px; flex:none; min-width:0;
  margin:0 0 3px; padding:2px 3px;
}
.audience-side-grid .audience-side-card .audience-identity-copy {
  flex:1; min-width:0; padding-left:10px; border-left:1px solid #294638;
}
.audience-side-grid .audience-side-card .audience-identity-header .live-target-number {
  flex:none; min-width:1.15em; padding:0; text-align:center;
  font-size:30px !important; line-height:1 !important; font-weight:500;
}
.audience-side-grid .audience-side-card .audience-identity-header h3,
.audience-side-grid .audience-side-card .audience-identity-header .live-target-meta {
  margin:0 !important; height:auto !important; min-height:1lh !important;
}
@media(max-width:650px) {
  .audience-side-grid .audience-side-card .audience-identity-header { gap:3px; padding:1px; margin-bottom:2px; }
  .audience-side-grid .audience-side-card .audience-identity-header .live-target-number { font-size:25px !important; }
}

@media(max-width:650px) {
  .audience-side-grid .audience-side-card .audience-identity-copy { padding-left:5px; }
}

.audience-target-face .audience-face-info {
  position:absolute; z-index:2; left:50%; transform:translateX(-50%);
  max-width:calc(100% - 12px); box-sizing:border-box; padding:3px 8px;
  border:1px solid rgb(205 219 210 / .16); border-radius:5px; background:rgb(78 94 85 / .58);
  color:#edf2ee; font:500 11px/1.25 system-ui,sans-serif;
  text-align:center; pointer-events:none;
}
.audience-target-face .audience-face-spread { bottom:5px; white-space:nowrap; }
@media(max-width:650px) {
  .audience-target-face .audience-face-info { font-size:9px; padding:2px 5px; }
}

.audience-target-face .audience-face-next {
  top:5px; display:grid; gap:1px; width:calc(100% - 12px);
}
.audience-face-next strong { min-width:0; font-size:1.05em; font-weight:500; white-space:nowrap; }

.opening-range-actions button[aria-pressed="true"] { background:#276d45; border-color:#9dc9ad; box-shadow:inset 0 0 0 1px #9dc9ad; }

.opening-auto-group { position:relative; display:inline-flex; align-items:stretch; }
.opening-auto-group > button:first-child { border-radius:6px 0 0 6px; }
.opening-auto-group > .opening-auto-help { border-radius:0 6px 6px 0; padding:4px 7px; }
.opening-auto-help::first-letter { border:1px solid currentColor; border-radius:50%; padding:0 4px; }
.opening-auto-explanation {
  position:absolute; z-index:10; bottom:calc(100% + 8px); right:0;
  width:220px; max-width:calc(100vw - 48px); box-sizing:border-box; margin:0; padding:9px 11px;
  border:1px solid #b7cbbd; border-radius:8px; background:#f4f8f5; color:#294638;
  box-shadow:0 4px 16px #10291e26; font-size:12px; line-height:1.4; font-weight:400;
}
.opening-range-group:has(.opening-auto-explanation:not([hidden])) { overflow:visible; }

.opening-auto-group {
  border:1px solid #79a889; border-radius:6px; background:#276d45;
}
.opening-range-actions .opening-auto-group > button {
  border:0; background:transparent; box-shadow:none; color:#fff;
}
.opening-range-actions .opening-auto-group > .opening-auto-help {
  align-self:center; width:17px; height:17px; min-height:0; margin:0 7px 0 1px; padding:0;
  border:1px solid rgb(255 255 255 / .7); border-radius:50%; font-size:11px; line-height:15px;
}
.opening-auto-help::first-letter { border:0; padding:0; }
.opening-auto-group:has([aria-pressed="true"]) { box-shadow:inset 0 0 0 1px #b6d8c1; }

/* Simulator controls belong to the open test range, never the directory/picker. */
body:not(:has(#liveRangeView:not([hidden]))) #simControls,
body:has(#startPage:not([hidden])) #simControls,
body:has(#openingSelector:not([hidden])) #simControls { display:none; }

/* Home discovery: search first, Norwegian event map, uninterrupted venue directory. */
#homeDiscovery { margin:0 0 16px; }
.home-search-modes { display:flex; gap:6px; margin-bottom:14px; }
.home-search-modes button { display:inline-flex; align-items:center; gap:13px; border:1px solid #9ebdab; border-radius:8px; padding:11px 16px; background:#f5faf7; color:#285e43; font-size:14px; font-weight:650; cursor:pointer; box-shadow:0 2px 5px #244b3810; }
.home-search-modes button::after { content:""; display:block; width:7px; height:7px; border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform:translateY(-1px) rotate(45deg); }
.home-search-modes button[aria-expanded="true"]::after { transform:translateY(2px) rotate(225deg); }
.home-search-modes button:hover { background:#e7f1ea; }
.home-search-modes button[aria-expanded="true"] { background:#deece3; color:#214b37; font-weight:700; }
.home-name-fields { display:flex; align-items:end; gap:12px; }
.home-name-fields label,.home-event-search { display:block; flex:1; min-width:0; color:#526c5e; font-size:12px; }
.home-name-fields input,.home-event-search input { display:block; width:100%; box-sizing:border-box; margin-top:5px; background:#fff; border:1px solid #bdcfc3; border-radius:8px; padding:12px; color:#203c2e; font:16px system-ui,sans-serif; }
.home-primary { background:#286047; color:#fff; border:0; border-radius:8px; padding:12px 18px; font-size:14px; font-weight:650; min-height:44px; }
.home-primary:disabled { opacity:.5; }
.home-search-hint { color:#526c5e; font-size:12px; margin:8px 0 14px; }
.home-name-results:empty { display:none; }
.home-name-results { padding:14px; background:#fff; border:1px solid #d5e2da; border-radius:10px; margin:14px 0; }
.home-search-result { display:flex; flex-direction:column; gap:4px; text-align:left; background:#e5efe8; color:#203c2e; border:1px solid #c6d8cb; padding:12px; border-radius:8px; margin:9px 0; width:100%; }
.home-search-result .home-search-shooter { font-size:22px; line-height:1.2; margin-bottom:3px; }
.home-search-result span { font-size:13px; line-height:1.4; }
.home-event-search { margin-bottom:20px; }
.home-discovery-lead { display:grid; grid-template-columns:minmax(0,1fr) minmax(280px,.45fr); gap:22px; margin-top:24px; align-items:start; }
.home-active-first { display:grid; gap:0; margin-top:10px; background:#fff; border-radius:12px; overflow:hidden; }
.home-active-first .venue-card { min-height:82px; border:0; border-radius:0; border-bottom:1px solid #dce5df; box-shadow:none; background:#fff; padding:15px; }
.home-active-first .venue-card:last-child { border-bottom:0; }
.home-active-first .venue-card:hover { background:#e7f0e9; }
.home-active-first .venue-card .venue-state { display:none; }
.home-active-rest { margin-top:0; }
.home-map-panel { border:1px solid #cdded3; border-radius:12px; overflow:hidden; background:#e1ecee; }
.home-map-title { padding:12px 16px 0; color:#526c5e; font-size:12px; }
.home-map { height:405px; position:relative; }
.home-map svg { display:block; height:100%; width:100%; }
.home-map-land { fill:#f5f5ed; stroke:#b8cbb7; stroke-width:1; }
.home-map-link { stroke:#78968a; stroke-width:1; }
.home-map-pins { position:absolute; inset:0; }
.home-map-pin { position:absolute; transform:translate(-50%,-50%); width:32px; height:32px; padding:0; border-radius:50%; border:2px solid #fff; background:#286047; color:#fff; font:12px system-ui,sans-serif; box-shadow:0 2px 5px #183c2733; }
.home-map-pin[aria-pressed="true"] { background:#efd297; color:#203c2e; border-color:#286047; }
.home-map-detail { background:#fff; border-top:1px solid #cdded3; padding:16px; min-height:122px; }
.home-map-detail h3 { color:#203c2e; font-size:18px; margin:5px 0; }
.home-map-detail p { font-size:13px; color:#607468; margin:5px 0 12px; }
.home-map-detail .home-search-hint { font-size:11px; }
@media(max-width:700px) {
 .home-discovery-lead { grid-template-columns:1fr; gap:16px; }
 .home-name-fields { flex-direction:column; align-items:stretch; }
 .home-map { height:370px; }
}

.home-map-panel { width:100%; max-width:440px; justify-self:end; }
.home-event-actions { display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.home-event-actions .home-primary,.home-secondary { padding:10px 12px; min-height:40px; font-size:13px; }
.home-event-actions .home-primary:disabled { opacity:1; background:#e5ede8; color:#526c5e; cursor:default; }
.home-secondary { display:inline-flex; align-items:center; justify-content:center; box-sizing:border-box; background:#fff; color:#286047; border:1px solid #c3d5c9; border-radius:8px; text-decoration:none; font-weight:600; }
.home-secondary:disabled { opacity:.5; cursor:default; }
.home-secondary:hover:not(:disabled) { background:#edf4ef; }
@media(max-width:700px) { .home-map-panel { justify-self:center; grid-row:1; } .home-active-list { grid-row:2; } }
.home-event-actions .home-primary,.home-event-actions .home-secondary { padding-inline:8px; }
@media(min-width:1000px) {
 .home-active-first { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; background:transparent; overflow:visible; }
 .home-active-first .venue-card { border:1px solid #dce5df; border-radius:12px; min-width:0; }
 .home-active-first .venue-card:last-child { border-bottom:1px solid #dce5df; }
}

.home-active-first .venue-card { padding-bottom:42px; }
.home-active-first .venue-card .venue-open { position:absolute; right:15px; bottom:15px; margin:0; }
.home-active-first .home-numbered-event > strong, .home-active-first .home-numbered-event > .venue-location { padding-right:39px; }
.home-active-first .home-numbered-event.home-event-armed { border-color:#286047; box-shadow:0 0 0 2px rgba(40,96,71,.12); }
.home-event-number { position:absolute; top:12px; right:12px; display:grid; place-items:center; width:30px; height:30px; border-radius:50%; background:#286047; color:#fff; font-size:14px; font-weight:650; }

.home-loading-status { color:#526c5e; font-size:13px; margin:8px 0; }
.home-card-placeholder { min-height:92px; box-sizing:border-box; padding:18px 15px; background:#ffffffb8; border:1px solid #dce5df; border-radius:12px; }
.home-card-placeholder span { display:block; height:12px; width:72%; border-radius:5px; background:#dce7e0; margin:0 0 12px; }
.home-card-placeholder span + span { width:44%; height:9px; background:#e7eee9; }
.home-map-detail { min-height:150px; box-sizing:border-box; }

/* Reveal the complete overview together; never flash startup controls. */
#homeDiscovery[aria-busy="true"], .start-venues:has(#homeDiscovery[aria-busy="true"]) #venues { visibility:hidden; }

/* Show two targets across on phones, with natural vertical scrolling so the
   cards keep their size as more targets are selected. */
@media (max-width:500px) {
  body:not(.operator-mode) .live-range-view:not([hidden]) {
    height:auto !important; min-height:0; overflow:visible !important;
  }
  .live-range-grid.audience-grid.audience-side-grid,
  .live-range-grid.audience-grid.audience-side-grid.extended-grid {
    display:grid; flex:none; grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    grid-template-rows:none !important; grid-auto-rows:auto;
    align-content:start; gap:8px; overflow:visible;
  }
  .live-range-grid.audience-grid.audience-side-grid[data-target-count="1"] {
    grid-template-columns:minmax(0,1fr) !important;
  }
  .audience-side-grid .audience-side-card,
  .audience-side-grid:is([data-target-count="2"],[data-target-count="3"],[data-target-count="4"],[data-target-count="5"],[data-target-count="6"],[data-target-count="7"],[data-target-count="8"]) .audience-side-card {
    height:auto; min-height:0; padding:8px; overflow:visible;
  }
  .audience-side-grid .audience-side-card .audience-card-main {
    flex:none; min-height:0; overflow:visible;
  }
  .audience-side-grid .audience-side-card[data-layout="under"]:not(.audience-prestart) .audience-card-main {
    /* Ten shots occupy two rows; reserve both rows even before shot six. */
    --under-shot-strip-height:68px;
    grid-template-columns:minmax(0,1fr); grid-template-rows:auto auto !important;
  }
  .audience-side-grid .audience-side-card[data-layout="under"]:not(.audience-prestart) .audience-target-face,
  #home:fullscreen .audience-side-grid .audience-side-card[data-layout="under"]:not(.audience-prestart) .audience-target-face {
    width:100%; max-width:330px; height:auto !important; max-height:none !important;
    aspect-ratio:1 !important; margin-inline:auto;
  }
  .audience-side-grid .audience-side-card.audience-prestart[data-layout="under"] .audience-target-face {
    height:auto; aspect-ratio:1;
  }
  .audience-side-grid .audience-side-card .audience-identity-header .live-target-number {
    font-size:22px !important;
  }
  .audience-side-grid .audience-side-card h3,
  .audience-side-grid .audience-side-card.audience-prestart h3 {
    height:20px; min-height:20px; font-size:12px; line-height:20px;
  }
  .audience-grid.audience-side-grid .audience-side-card .live-target-meta,
  .audience-grid.audience-side-grid .audience-side-card.audience-prestart .live-target-meta {
    height:13px; min-height:13px; margin-bottom:4px; font-size:9px; line-height:13px;
  }
  .audience-side-grid .audience-side-card .competition-status {
    min-height:30px; padding:3px 5px;
  }
  .audience-side-grid .audience-side-card .competition-status-label { font-size:11px; }
  .audience-side-grid .audience-side-card .competition-status .audience-countdown { font-size:9px; }
  .audience-side-grid .audience-side-card[data-layout="under"] .side-shot-cells .audience-shot-text,
  .audience-side-grid .audience-side-card[data-layout="under"] .side-shot-cells[data-under-slot-count="5"] .audience-shot-text,
  .audience-side-grid .audience-side-card[data-layout="under"] .side-shot-cells[data-under-slot-count="10"] .audience-shot-text {
    font-size:11px;
  }
  .audience-side-grid .audience-side-card[data-layout="under"] .side-shot-cells .live-shot-value {
    min-height:28px;
  }
  .audience-side-grid .audience-side-card[data-layout="under"] .side-shot-cells[data-under-slot-count="5"] {
    grid-template-rows:repeat(2,minmax(0,1fr));
  }
  .audience-side-grid .audience-side-card[data-layout="under"] .side-shot-cells[data-under-slot-count="5"] > :nth-child(n+6) {
    display:flex;
  }
  .audience-side-grid .audience-side-card .audience-series-cell,
  .audience-side-grid:is([data-target-count="2"],[data-target-count="3"],[data-target-count="4"],[data-target-count="5"],[data-target-count="6"],[data-target-count="7"],[data-target-count="8"]) .audience-side-card .audience-series-cell {
    min-height:30px; padding:2px 1px;
  }
  .audience-side-grid .audience-side-card .audience-series-cell span { font-size:7px; }
  .audience-side-grid .audience-side-card .audience-series-cell strong { font-size:11px; }
  .audience-side-grid .audience-side-card .audience-score-box,
  .audience-side-grid:is([data-target-count="2"],[data-target-count="3"],[data-target-count="4"],[data-target-count="5"],[data-target-count="6"],[data-target-count="7"],[data-target-count="8"]) .audience-side-card .audience-score-box {
    min-height:36px; padding:3px;
  }
  .audience-side-grid .audience-side-card .audience-score-box span { font-size:7px; }
  .audience-side-grid .audience-side-card .audience-score-box strong { font-size:16px; }
  .audience-side-grid .audience-side-card .audience-prestart-history {
    height:80px; min-height:80px;
  }
}

/* Eight targets fit in four portrait rows; additional targets scroll below.
   Keep the full ten-shot SIDE strip instead of dropping shot positions. */
@media (max-width:500px) and (orientation:portrait) {
  .live-range-grid.audience-grid.audience-side-grid.audience-mobile-dense {
    grid-auto-rows:max(185px,calc((100dvh - 65px - 24px) / 4)) !important;
    gap:8px;
  }
  .audience-side-grid.audience-mobile-dense .audience-side-card {
    box-sizing:border-box; height:100%; min-height:0; padding:3px; overflow:hidden;
  }
  .audience-side-grid.audience-mobile-dense .audience-side-card .audience-identity-header {
    height:28px; min-height:28px; margin:0; padding:0 1px;
  }
  .audience-side-grid.audience-mobile-dense .audience-side-card .audience-identity-header .live-target-number {
    font-size:19px !important;
  }
  .audience-side-grid.audience-mobile-dense .audience-side-card h3,
  .audience-side-grid.audience-mobile-dense .audience-side-card.audience-prestart h3 {
    height:14px; min-height:14px; font-size:10px; line-height:14px;
  }
  .audience-side-grid.audience-mobile-dense .audience-side-card .live-target-meta {
    height:10px; min-height:10px; margin:0; font-size:7px; line-height:10px;
  }
  .audience-side-grid.audience-mobile-dense .audience-side-card .competition-status {
    min-height:19px; height:19px; margin:1px 0; padding:1px 3px;
  }
  .audience-side-grid.audience-mobile-dense .audience-side-card .competition-status-label { font-size:8px; }
  .audience-side-grid.audience-mobile-dense .audience-side-card .competition-status .audience-countdown { font-size:7px; }
  .audience-side-grid.audience-mobile-dense .audience-side-card .audience-card-main { flex:1 1 auto; min-height:0; }
  .audience-side-grid.audience-mobile-dense .audience-side-card:not(.audience-prestart)[data-layout="side"] .audience-card-main {
    grid-template-columns:minmax(0,1fr) 58px; gap:2px; overflow:hidden;
  }
  .audience-side-grid.audience-mobile-dense .audience-side-card:not(.audience-prestart)[data-layout="side"] .audience-target-face {
    width:100%; height:100%; max-width:none; max-height:none; aspect-ratio:auto;
  }
  .audience-side-grid.audience-mobile-dense .audience-side-card:not(.audience-prestart)[data-layout="side"] .audience-side-details {
    width:58px; height:100%;
  }
  .audience-side-grid.audience-mobile-dense .audience-side-card:not(.audience-prestart)[data-layout="side"] .side-shot-cells .live-shot-value {
    padding:1px 1px 1px 6px;
  }
  .audience-side-grid.audience-mobile-dense .audience-side-card:not(.audience-prestart)[data-layout="side"] .side-shot-cells .audience-shot-number {
    left:1px; width:5px; font-size:5px;
  }
  .audience-side-grid.audience-mobile-dense .audience-side-card:not(.audience-prestart)[data-layout="side"] .side-shot-cells .audience-shot-text {
    font-size:8px;
  }
  .audience-side-grid.audience-mobile-dense .audience-side-card .audience-card-footer { flex:none; }
  .audience-side-grid.audience-mobile-dense .audience-side-card .audience-series-row { margin-top:1px; gap:1px; }
  .audience-side-grid.audience-mobile-dense .audience-side-card .audience-series-cell { min-height:18px; padding:1px 0; }
  .audience-side-grid.audience-mobile-dense .audience-side-card .audience-series-cell span { font-size:5px; }
  .audience-side-grid.audience-mobile-dense .audience-side-card .audience-series-cell strong { font-size:8px; }
  .audience-side-grid.audience-mobile-dense .audience-side-card .audience-score-summary { margin-top:1px; }
  .audience-side-grid.audience-mobile-dense .audience-side-card .audience-score-box { min-height:23px; padding:1px; }
  .audience-side-grid.audience-mobile-dense .audience-side-card .audience-score-box span { font-size:5px; }
  .audience-side-grid.audience-mobile-dense .audience-side-card .audience-score-box strong { font-size:11px; }
  .audience-side-grid.audience-mobile-dense .audience-side-card .audience-prestart-history { height:44px; min-height:44px; }
  .audience-side-grid.audience-mobile-dense .audience-side-card.audience-prestart[data-layout="side"] .audience-side-details > .audience-prestart-history {
    height:100%; padding:2px 3px;
  }
  .audience-side-grid.audience-mobile-dense .audience-side-card.audience-prestart[data-layout="side"] .audience-prestart-history > strong {
    margin-bottom:1px; font-size:6px;
  }
  .audience-side-grid.audience-mobile-dense .audience-side-card.audience-prestart[data-layout="side"] .audience-side-details .audience-prestart-results {
    height:calc(100% - 7px); gap:2px;
  }
  .audience-side-grid.audience-mobile-dense .audience-side-card.audience-prestart[data-layout="side"] .audience-side-details .audience-prestart-result {
    gap:0; padding:1px 3px;
  }
  .audience-side-grid.audience-mobile-dense .audience-side-card.audience-prestart[data-layout="side"] .audience-side-details .audience-prestart-result b {
    font-size:12px;
  }
  .audience-side-grid.audience-mobile-dense .audience-side-card.audience-prestart[data-layout="side"] .audience-side-details .audience-prestart-result span,
  .audience-side-grid.audience-mobile-dense .audience-side-card.audience-prestart[data-layout="side"] .audience-side-details .audience-prestart-result small {
    font-size:7px;
  }
}

/* Portrait tablets need wider cards than the desktop four-column grid. */
@media (min-width:700px) and (max-width:900px) and (orientation:portrait) {
  body:not(.operator-mode):has(.live-range-grid.audience-side-grid) .live-range-view:not([hidden]) {
    height:auto; overflow:visible;
  }
  .live-range-grid.audience-grid.audience-side-grid,
  .live-range-grid.audience-grid.audience-side-grid.extended-grid {
    flex:none; grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    grid-template-rows:none !important; grid-auto-rows:auto;
    align-content:start; gap:8px; overflow:visible;
  }
  .audience-grid .audience-side-card {
    height:auto; min-height:0; padding:8px;
  }
  .audience-side-grid .audience-side-card.audience-prestart .audience-target-face {
    height:auto; aspect-ratio:1;
  }
}

/* A TV browser at high zoom has only about 540 CSS pixels of height. Keep the
   live target and ten shot slots visible instead of letting the footer erase them. */
@media (min-width:700px) and (max-width:1100px) and (max-height:650px) {
  .audience-side-grid.audience-tv-dense .audience-side-card:not(.audience-prestart)[data-layout="side"] .audience-identity-header {
    height:22px; min-height:22px; margin:0; padding:0 2px; gap:2px;
  }
  .audience-side-grid.audience-tv-dense .audience-side-card:not(.audience-prestart)[data-layout="side"] .audience-identity-copy { padding-left:6px; }
  .audience-side-grid.audience-tv-dense .audience-side-card:not(.audience-prestart)[data-layout="side"] .live-target-number { font-size:18px !important; }
  .audience-side-grid.audience-tv-dense .audience-side-card:not(.audience-prestart)[data-layout="side"] h3 {
    height:12px; min-height:12px; margin:0; font-size:10px; line-height:12px;
  }
  .audience-side-grid.audience-tv-dense .audience-side-card:not(.audience-prestart)[data-layout="side"] .live-target-meta {
    height:8px; min-height:8px; margin:0 !important; font-size:6px; line-height:8px;
  }
  .audience-side-grid.audience-tv-dense .audience-side-card:not(.audience-prestart)[data-layout="side"] .competition-status {
    display:flex; align-items:center; justify-content:space-between; height:14px; min-height:14px;
    margin:1px 0 0; padding:0 3px; gap:2px;
  }
  .audience-side-grid.audience-tv-dense .audience-side-card:not(.audience-prestart)[data-layout="side"] .competition-status-kicker { display:none; }
  .audience-side-grid.audience-tv-dense .audience-side-card:not(.audience-prestart)[data-layout="side"] .competition-status-label { font-size:9px; }
  .audience-side-grid.audience-tv-dense .audience-side-card:not(.audience-prestart)[data-layout="side"] .competition-status .audience-countdown { font-size:8px; }
  .audience-side-grid.audience-tv-dense .audience-side-card:not(.audience-prestart)[data-layout="side"] .audience-card-main {
    display:grid; grid-template-columns:minmax(0,1fr) 58px; gap:2px;
    flex:1 1 auto; min-height:0; margin-top:1px; overflow:hidden;
  }
  .audience-side-grid.audience-tv-dense .audience-side-card:not(.audience-prestart)[data-layout="side"] .audience-target-face {
    position:relative; box-sizing:border-box; width:100%; height:100%; min-height:0; max-height:100%; aspect-ratio:auto;
  }
  .audience-side-grid.audience-tv-dense .audience-side-card:not(.audience-prestart)[data-layout="side"] .audience-target-svg {
    position:absolute; inset:0; width:100%; height:100%; aspect-ratio:auto;
  }
  .audience-side-grid.audience-tv-dense .audience-side-card:not(.audience-prestart)[data-layout="side"] .audience-side-details,
  .audience-side-grid.audience-tv-dense .audience-side-card:not(.audience-prestart)[data-layout="side"] .audience-side-details :is(.live-series-groups,.live-series-group.active,.side-shot-row) {
    display:flex; flex-direction:column; width:100%; height:100%; min-height:0; margin:0; padding:0;
  }
  .audience-side-grid.audience-tv-dense .audience-side-card:not(.audience-prestart)[data-layout="side"] .side-shot-cells {
    display:grid; flex:1 1 auto; grid-template-columns:repeat(2,minmax(0,1fr));
    grid-template-rows:repeat(5,minmax(0,1fr)); grid-auto-flow:column;
    width:100%; height:100%; min-height:0; gap:1px; margin:0;
  }
  .audience-side-grid.audience-tv-dense .audience-side-card:not(.audience-prestart)[data-layout="side"] .side-shot-cells .live-shot-value {
    box-sizing:border-box; width:100%; height:100%; min-height:0; padding:0 1px 0 5px;
  }
  .audience-side-grid.audience-tv-dense .audience-side-card:not(.audience-prestart)[data-layout="side"] .side-shot-cells .audience-shot-number {
    top:50%; left:1px; font-size:3px; transform:translateY(-50%);
  }
  .audience-side-grid.audience-tv-dense .audience-side-card:not(.audience-prestart)[data-layout="side"] .side-shot-cells .audience-shot-text { font-size:6px; line-height:1; }
  .audience-side-grid.audience-tv-dense .audience-side-card:not(.audience-prestart)[data-layout="side"] .audience-face-spread {
    bottom:2px; max-width:calc(100% - 6px); padding:1px 3px; border-radius:3px;
    font-size:6px; line-height:1.1;
  }
  .audience-side-grid.audience-tv-dense .audience-side-card:not(.audience-prestart)[data-layout="side"] .audience-spread-line { stroke-width:.65px; }
  .audience-side-grid.audience-tv-dense .audience-side-card:not(.audience-prestart)[data-layout="side"] .audience-spread-value-box { stroke-width:.55px; fill-opacity:.84; }
  .audience-side-grid.audience-tv-dense .audience-side-card:not(.audience-prestart)[data-layout="side"] .audience-spread-value-text { fill:#fff5b8; opacity:1; }
  .audience-side-grid.audience-tv-dense .audience-side-card:not(.audience-prestart)[data-layout="side"] .audience-card-footer {
    flex:none; height:30px; min-height:30px;
  }
  .audience-side-grid.audience-tv-dense .audience-side-card:not(.audience-prestart)[data-layout="side"] .audience-series-row { height:18px; margin:0; gap:1px; }
  .audience-side-grid.audience-tv-dense .audience-side-card:not(.audience-prestart)[data-layout="side"] .audience-series-cell {
    display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1px;
    min-height:0; height:18px; padding:0 1px; overflow:hidden;
  }
  .audience-side-grid.audience-tv-dense .audience-side-card:not(.audience-prestart)[data-layout="side"] .audience-series-cell span {
    max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:6px;
  }
  .audience-side-grid.audience-tv-dense .audience-side-card:not(.audience-prestart)[data-layout="side"] .audience-series-cell strong { margin:0; font-size:7px; }
  .audience-side-grid.audience-tv-dense .audience-side-card:not(.audience-prestart)[data-layout="side"] .audience-score-summary { height:12px; margin:0; gap:1px; }
  .audience-side-grid.audience-tv-dense .audience-side-card:not(.audience-prestart)[data-layout="side"] .audience-score-box {
    display:flex; align-items:center; justify-content:center; gap:2px; height:12px; min-height:0; padding:0 1px;
  }
  .audience-side-grid.audience-tv-dense .audience-side-card:not(.audience-prestart)[data-layout="side"] .audience-score-box span { font-size:5px; }
  .audience-side-grid.audience-tv-dense .audience-side-card:not(.audience-prestart)[data-layout="side"] .audience-score-box strong { margin:0; font-size:9px; line-height:1; }
  .audience-side-grid.extended-grid.audience-tv-dense .audience-side-card:not(.audience-prestart)[data-layout="side"] .audience-card-footer {
    height:52px; min-height:52px;
  }
  .audience-side-grid.extended-grid.audience-tv-dense .audience-side-card:not(.audience-prestart)[data-layout="side"] .extended-practice-row {
    height:20px; min-height:20px; margin:0; gap:1px;
  }
  .audience-side-grid.extended-grid.audience-tv-dense .audience-side-card:not(.audience-prestart)[data-layout="side"] .extended-practice-row .audience-series-cell {
    height:20px; min-height:0; padding:0 1px;
  }
  .audience-side-grid.extended-grid.audience-tv-dense .audience-side-card:not(.audience-prestart)[data-layout="side"] .extended-series-button {
    display:flex; flex-direction:column; align-items:center; justify-content:center;
    height:18px; min-height:0; padding:0 1px; gap:1px;
  }
}
