/* Styles for the map tools. Light DOM components, so tokens.css applies directly. */

/* ---------- Map page layout ---------- */
.ov-mappage { display: flex; flex-direction: column; gap: clamp(32px, 5vw, 56px); padding-top: clamp(24px, 4vw, 48px); }
.ov-maphead { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); gap: 24px 48px; align-items: end; }
.ov-toolbar { display: flex; flex-wrap: wrap; gap: 8px 18px; align-items: center; }
.ov-summary { font-size: 15px; color: var(--muted); }
.ov-mapgrid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(300px, 0.75fr); gap: 32px 48px; align-items: start; }
.ov-mapfig { display: flex; flex-direction: column; gap: 12px; min-width: 0; max-width: 780px; }
.ov-mapfig figcaption { font-size: 13px; line-height: 1.55; color: var(--muted); display: flex; flex-wrap: wrap; gap: 4px 18px; }
.ov-lowergrid { display: grid; grid-template-columns: minmax(0, 2fr) minmax(280px, 1fr); gap: 40px 56px; align-items: start; }
.ov-block-head { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; flex-wrap: wrap; padding-bottom: 12px; }


@media (max-width: 1000px) {
  .ov-mapgrid, .ov-lowergrid { grid-template-columns: minmax(0, 1fr); }
}

/* Under 760px the labels go and the checklist leads. */
@media (max-width: 759px) {
  .ov-mapstack { display: flex; flex-direction: column; gap: 40px; }
  .ov-mapstack > .ov-lowergrid { order: -1; }
  .ov-map .ov-label, .ov-map .ov-num, .ov-map .ov-count, .ov-centre .ov-c-caps { display: none; }
}
@media (min-width: 760px) { .ov-mapstack { display: flex; flex-direction: column; gap: clamp(40px, 6vw, 72px); } }

/* ---------- The map SVG ---------- */
overlap-map { display: block; width: 100%; }
.ov-map { display: block; width: 100%; height: auto; overflow: visible; }
.ov-guide { fill: none; stroke: var(--rule); stroke-width: 1; }
.ov-disc { fill: var(--paper); stroke: var(--rule); stroke-width: 1; }

.ov-line { fill: none; stroke-linecap: round; opacity: 0; transition: opacity var(--t-panel), stroke-width var(--t-panel); }
.ov-line[data-f="nis2"] { stroke: var(--nis2); stroke-width: 1.3; }
.ov-line[data-f="gdpr"] { stroke: var(--gdpr); stroke-width: 1.3; stroke-dasharray: 6 3; }
.ov-line[data-f="iso"] { stroke: var(--iso); stroke-width: 1.9; stroke-dasharray: 0.1 4; }
.ov-line[data-f="nist"] { stroke: var(--nist); stroke-width: 1.3; stroke-dasharray: 10 3 2 3; }
.ov-line.is-on { opacity: 0.92; }
.ov-line.is-dim { opacity: 0.14; }
.ov-line.is-hi[data-f="nis2"], .ov-line.is-hi[data-f="gdpr"], .ov-line.is-hi[data-f="nist"] { stroke-width: 2.2; }
.ov-line.is-hi[data-f="iso"] { stroke-width: 3.2; }
/* With nothing on, every line shows as a faint ghost. */
.ov-map[data-empty] .ov-line { opacity: 0.22; stroke: var(--muted); stroke-width: 0.6; }
.ov-line.is-fresh[data-f="nis2"] { stroke-dasharray: 1; animation: ov-draw var(--t-line) ease-out both; }
.ov-line.is-fresh:not([data-f="nis2"]) { animation: ov-fade var(--t-line) ease-out both; }

.ov-node, .ov-hub { cursor: pointer; outline: none; }
.ov-hit { fill: transparent; }
.ov-fr { fill: none; stroke: transparent; stroke-width: 3; }
.ov-node:focus-visible .ov-fr, .ov-hub:focus-visible .ov-fr { stroke: var(--focus); }
.ov-selring { fill: none; stroke: transparent; stroke-width: 1; }
.is-sel > .ov-selring { stroke: var(--ink); }
.ov-dot { fill: var(--paper); stroke: var(--muted); stroke-width: 1.2; transition: fill var(--t-panel); }
.ov-node.is-hover:not(.is-on) .ov-dot { stroke: var(--ink); }
.ov-node.is-on .ov-dot { fill: var(--ink); stroke: var(--ink); }
.ov-num { font-family: var(--mono); font-size: 13.5px; fill: var(--muted); pointer-events: none; }
.ov-node.is-on .ov-num { fill: var(--paper); }
.ov-node.is-hover:not(.is-on) .ov-num { fill: var(--ink); }
.ov-tick { stroke: transparent; stroke-width: 2; }
.ov-map[data-lens] .ov-tick { stroke: var(--ink); }
.ov-label { stroke: var(--paper); stroke-width: 4px; paint-order: stroke; stroke-linejoin: round; pointer-events: none; }
.ov-plabel { font-family: var(--sans); font-size: 15.5px; fill: var(--muted); }
.ov-node.is-on .ov-plabel, .ov-node.is-sel .ov-plabel, .ov-node.is-hover .ov-plabel { fill: var(--ink); font-weight: 500; }
.ov-hubdisc { fill: var(--paper); }
.ov-track { fill: none; stroke: var(--rule); stroke-width: 4; }
.ov-prog { fill: none; stroke-width: 4; transition: stroke-dasharray var(--t-ring) ease-out; }
.ov-prog[data-f="nis2"] { stroke: var(--nis2); }
.ov-prog[data-f="gdpr"] { stroke: var(--gdpr); }
.ov-prog[data-f="iso"] { stroke: var(--iso); }
.ov-prog[data-f="nist"] { stroke: var(--nist); }
.ov-hubglyph[data-f="nis2"] { fill: var(--nis2); }
.ov-hubglyph[data-f="gdpr"] { fill: var(--gdpr); }
.ov-hubglyph[data-f="iso"] { fill: var(--iso); }
.ov-hubglyph[data-f="nist"] { fill: var(--nist); }
.ov-count { font-family: var(--mono); font-size: 16px; fill: var(--ink); pointer-events: none; }
.ov-hubname { font-family: var(--sans); font-weight: 600; font-size: 16.5px; fill: var(--ink); }
.ov-hubunit { font-family: var(--mono); font-size: 14px; fill: var(--muted); }
.ov-centre text { font-family: var(--serif); fill: var(--ink); font-weight: 300; }
.ov-c-invite { font-size: 30px; }
.is-italic { font-style: italic; }
.ov-c-n { font-size: 96px; letter-spacing: -2px; }
.ov-c-of { font-size: 34px; fill: var(--muted); }
.ov-c-full { font-size: 64px; }
.ov-c-sub { font-size: 21px; }
.ov-centre .ov-c-caps { font-family: var(--mono); font-size: 14px; letter-spacing: 1.2px; fill: var(--muted); font-weight: 400; }

/* ---------- Sticky counts bar ---------- */
overlap-strip {
  display: block; position: sticky; top: var(--header-h); z-index: 20; background: var(--paper);
  border-bottom: 1px solid var(--rule); margin: 0 calc(-1 * var(--gutter));
}
.ov-strip-in { display: flex; align-items: center; gap: 8px 28px; flex-wrap: wrap; min-height: 52px; padding-top: 6px; padding-bottom: 6px; }
.ov-strip-on { font-size: 15px; color: var(--muted); white-space: nowrap; }
.ov-strip-n { font-family: var(--serif); font-size: 24px; color: var(--ink); }
.ov-strip { display: flex; flex-wrap: wrap; gap: 6px 24px; }
.ov-strip li { display: flex; align-items: center; gap: 8px; font-size: 15px; }
.ov-strip-count { font-size: 16px; }
.ov-strip-short { display: none; }
.ov-jump { display: flex; margin-left: auto; gap: 18px; }
.ov-jump a { font-size: 14px; min-height: var(--tap); display: flex; align-items: center; }
@media (max-width: 759px) {
  .ov-strip-in { gap: 4px 12px; }
  .ov-strip-on { display: none; }
  .ov-strip { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); width: 100%; gap: 4px 6px; }
  .ov-strip li { gap: 4px; font-size: 13px; justify-content: center; white-space: nowrap; }
  .ov-strip-name { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .ov-strip-short { display: inline; font-size: 13px; }
  .ov-strip-count { font-size: 14px; }
  .ov-jump { width: 100%; margin-left: 0; gap: 0; border-top: 1px solid var(--rule); }
  .ov-jump a { flex: 1; text-align: center; min-height: var(--tap); display: flex; align-items: center; justify-content: center; font-size: 15px; font-weight: 500; text-decoration: none; }
  .ov-jump a + a { border-left: 1px solid var(--rule); }
}

/* ---------- Panel ---------- */
overlap-panel { display: block; position: sticky; top: calc(var(--header-h) + var(--strip-h, 52px) + 16px); max-height: calc(100vh - var(--header-h) - var(--strip-h, 52px) - 32px); overflow: auto; border-left: 1px solid var(--rule); padding: 4px 4px 4px 28px; }
.ov-panel-body { display: flex; flex-direction: column; gap: 20px; animation: ov-fade var(--t-panel) ease-out; }
.ov-panel-top { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: -12px; }
.ov-panel-lead { font-family: var(--serif); font-size: 25px; line-height: 1.25; text-wrap: pretty; outline: none; }
.ov-panel-title { font-family: var(--serif); font-weight: 400; font-size: 32px; line-height: 1.12; letter-spacing: -0.01em; outline: none; }
.ov-panel-text { font-size: 17px; line-height: 1.55; text-wrap: pretty; }
.ov-eyebrow.ov-panel-eyebrow { letter-spacing: 0.06em; }
.ov-legend { display: flex; flex-direction: column; border-top: 1px solid var(--rule-strong); }
.ov-legend .ov-minor { padding: 12px 0 6px; }
.ov-legend-row {
  display: grid; grid-template-columns: 18px minmax(0, 1fr) 54px; gap: 10px; align-items: center; min-height: 48px;
  border: none; border-top: 1px solid var(--rule); background: none; text-align: left; font-size: 15px; padding: 0; cursor: pointer;
}
.ov-legend-row:hover { background: var(--raised); }
.ov-dothis {
  display: flex; align-items: center; gap: 14px; min-height: 56px; border: 1px solid var(--ink); border-radius: var(--radius);
  background: transparent; color: var(--ink); font: 600 15px var(--sans); padding: 0 16px; cursor: pointer; text-align: left;
}
.ov-dothis.is-on { background: var(--ink); color: var(--paper); }
.ov-dothis-box { width: 22px; height: 22px; border: 1.5px solid currentColor; border-radius: var(--radius); display: flex; align-items: center; justify-content: center; }
.ov-dothis-box svg, .ov-check-tick svg { fill: none; stroke: currentColor; stroke-width: 2; opacity: 0; }
.ov-dothis.is-on .ov-dothis-box svg { opacity: 1; }
.ov-groups { display: flex; flex-direction: column; gap: 18px; }
.ov-group-head { display: flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 600; padding-bottom: 4px; }
.ov-link { border-top: 1px solid var(--rule); }
.ov-link-row {
  width: 100%; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 12px; align-items: baseline;
  padding: 12px 0; min-height: 48px; border: none; background: none; text-align: left; font-size: 15px; line-height: 1.45; cursor: pointer;
}
.ov-link-row:hover { background: var(--raised); }
.ov-ref-plain { font-family: var(--mono); font-size: 13px; white-space: nowrap; }
.ov-link-mark { font-family: var(--mono); font-size: 12px; color: var(--muted); white-space: nowrap; display: flex; gap: 6px; align-items: baseline; }
.ov-why { padding: 0 0 16px; display: flex; flex-direction: column; gap: 10px; font-size: 15px; line-height: 1.55; animation: ov-fade var(--t-panel) ease-out; }
.ov-why-meta { display: flex; flex-direction: column; gap: 4px; font-size: 13px; }
.ov-why-meta div { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 8px; }
.ov-why-meta dt { color: var(--muted); font-family: var(--mono); font-size: 12px; padding-top: 1px; }
.ov-note { font-size: 14px; }
.ov-ext { font-size: 14px; align-self: flex-start; min-height: var(--tap); display: inline-flex; align-items: center; gap: 6px; }
.ov-bigcount { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; border-top: 1px solid var(--rule-strong); padding-top: 14px; }
.ov-bigcount-n { font-family: var(--serif); font-weight: 300; font-size: 64px; line-height: 0.9; }
.ov-bigcount-t { font-family: var(--serif); font-weight: 300; font-size: 26px; color: var(--muted); }
.ov-items { display: flex; flex-direction: column; }
.ov-item { display: grid; grid-template-columns: 18px auto minmax(0, 1fr); gap: 10px; align-items: baseline; padding: 11px 0; border-top: 1px solid var(--rule); font-size: 15px; line-height: 1.45; }
.ov-item-box { width: 12px; height: 12px; border: 1.5px solid var(--ink); border-radius: 1px; align-self: center; }
.ov-item.is-covered .ov-item-box { background: var(--ink); }
.ov-inline-btn { background: none; border: none; padding: 0; color: var(--ink); font: 500 13px var(--sans); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; min-height: 24px; }

@media (max-width: 1000px) {
  overlap-panel { position: static; max-height: none; overflow: visible; border-left: none; border-top: 1px solid var(--rule); padding: 20px 0 0; }
}
/* Bottom sheet on phones while something is selected. */
@media (max-width: 759px) {
  overlap-panel[data-sheet] {
    position: fixed; left: 0; right: 0; bottom: 0; top: auto; max-height: 78vh; overflow: auto; z-index: 40;
    background: var(--paper); border-top: 1px solid var(--rule-strong); padding: 20px var(--gutter) 32px;
    box-shadow: 0 -8px 24px rgba(0, 0, 0, 0.12); animation: ov-in var(--t-panel) ease-out;
  }
}

/* ---------- Ireland lens switch ---------- */
.ov-lens { display: flex; flex-direction: column; gap: 12px; }
.ov-switch { display: flex; align-items: center; gap: 14px; background: none; border: none; padding: 4px 0; min-height: var(--tap-primary); cursor: pointer; text-align: left; }
.ov-switch-track { flex-shrink: 0; width: 52px; height: 30px; border: 1.5px solid var(--ink); border-radius: var(--radius); padding: 3px; display: flex; justify-content: flex-start; }
.ov-switch-knob { width: 20px; height: 20px; background: var(--ink); border-radius: 1px; }
.ov-switch[aria-checked="true"] .ov-switch-track { background: var(--ink); justify-content: flex-end; }
.ov-switch[aria-checked="true"] .ov-switch-knob { background: var(--paper); }
.ov-switch-label { font-size: 15px; font-weight: 500; }

/* ---------- Checklist ---------- */
.ov-checklist { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr)); column-gap: 40px; border-top: 1px solid var(--rule-strong); }
.ov-check { display: flex; align-items: stretch; border-bottom: 1px solid var(--rule); }
.ov-check.is-sel { background: var(--raised); }
.ov-check-main { flex: 1; display: grid; grid-template-columns: 26px 26px minmax(0, 1fr); gap: 12px; align-items: center; min-height: 60px; padding: 8px 4px; cursor: pointer; position: relative; }
.ov-check-main:hover { background: var(--raised); }
.ov-check-box { position: absolute; opacity: 0; width: 24px; height: 24px; margin: 0; left: 4px; cursor: pointer; }
.ov-check-tick { pointer-events: none; width: 24px; height: 24px; border: 1.5px solid var(--ink); border-radius: var(--radius); display: flex; align-items: center; justify-content: center; color: var(--paper); }
.ov-check-box:checked + .ov-check-tick { background: var(--ink); }
.ov-check-box:checked + .ov-check-tick svg { opacity: 1; }
.ov-check-box:focus-visible + .ov-check-tick { outline: 3px solid var(--focus); outline-offset: 3px; }
.ov-check-num { font-family: var(--mono); font-size: 13.5px; color: var(--muted); }
.ov-check-text { display: flex; flex-direction: column; gap: 1px; }
.ov-check-name { font-size: 16px; }
.ov-check.is-on .ov-check-name { font-weight: 500; }
.ov-check-state { font-size: 13px; color: var(--muted); }
.ov-info { width: 48px; border: none; background: none; color: var(--muted); cursor: pointer; display: flex; align-items: center; justify-content: center; }
.ov-info:hover { color: var(--ink); }
.ov-info svg { fill: none; stroke: currentColor; stroke-width: 1.5; }

/* ---------- Do next ---------- */
overlap-next { display: flex; flex-direction: column; gap: 12px; }
.ov-next { border-top: 1px solid var(--rule-strong); display: flex; flex-direction: column; }
.ov-next-row { display: grid; grid-template-columns: 28px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 12px 0; border-bottom: 1px solid var(--rule); min-height: 64px; }
.ov-next-name { font-size: 16px; font-weight: 500; }

/* ---------- Share dialog ---------- */
.ov-dialog { border: none; border-radius: var(--radius); background: var(--paper); color: var(--ink); width: min(100% - 32px, 960px); max-height: calc(100vh - 40px); padding: 0; }
.ov-dialog::backdrop { background: var(--scrim); }
.ov-dialog[open] { animation: ov-in var(--t-panel) ease-out; }
.ov-dialog-body { padding: clamp(20px, 3vw, 32px); display: flex; flex-direction: column; gap: 20px; }
.ov-dialog-head { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; flex-wrap: wrap; }
.ov-segs { display: flex; gap: 12px; flex-wrap: wrap; }
.ov-seggroup { display: flex; border: 1px solid var(--rule-strong); border-radius: var(--radius); }
.ov-seg { border: none; background: transparent; color: var(--ink); font: 500 14px var(--sans); min-height: var(--tap); padding: 0 14px; cursor: pointer; }
.ov-seg + .ov-seg { border-left: 1px solid var(--rule-strong); }
.ov-seg[aria-pressed="true"] { background: var(--ink); color: var(--paper); }
.ov-preview { border: 1px solid var(--rule); background: var(--raised); padding: 12px; display: flex; justify-content: center; }
.ov-preview svg { display: block; width: 100%; height: auto; }
.ov-preview[data-format="tall"] svg { max-width: 380px; }
.ov-dialog-actions { display: flex; flex-wrap: wrap; gap: 12px 20px; align-items: center; }

/* ---------- Toast ---------- */
.ov-toast { position: fixed; left: clamp(16px, 3vw, 32px); bottom: clamp(16px, 3vw, 32px); z-index: 60; max-width: min(420px, calc(100vw - 32px)); }
.ov-toast-box { background: var(--ink); color: var(--paper); border-radius: var(--radius); padding: 14px 18px; font-size: 15px; line-height: 1.45; display: flex; gap: 12px; align-items: flex-start; border-left: 4px solid var(--accent); animation: ov-in var(--t-panel) ease-out; }
.ov-toast-box.is-error { border-left-color: var(--nis2); }
.ov-toast-tag { font-family: var(--mono); font-size: 12px; letter-spacing: 0.06em; padding-top: 2px; }

/* ---------- Glyphs ---------- */
.ov-glyph { flex-shrink: 0; }


/* ---------- Flow: particles, streaming dashes, hub pulse ---------- */
.ov-particle { opacity: 0.9; transition: opacity var(--t-panel); pointer-events: none; }
.ov-particle[data-f="nis2"] { fill: var(--nis2); }
.ov-particle[data-f="gdpr"] { fill: var(--gdpr); }
.ov-particle[data-f="iso"] { fill: var(--iso); }
.ov-particle[data-f="nist"] { fill: var(--nist); }
.ov-particle.is-dim { opacity: 0.08; }
.ov-particle.is-hi { opacity: 1; }
.ov-map[data-empty] .ov-particle { display: none; }

/* Dashed lines stream from the habit towards the hub. Each loop moves exactly one dash
   pattern, so it is seamless, at roughly the same speed for every framework. */
@keyframes ov-flow-gdpr { to { stroke-dashoffset: -9; } }
@keyframes ov-flow-iso { to { stroke-dashoffset: -4.1; } }
@keyframes ov-flow-nist { to { stroke-dashoffset: -18; } }
.ov-line.is-on[data-f="gdpr"] { animation: ov-flow-gdpr 0.9s linear infinite; }
.ov-line.is-on[data-f="iso"] { animation: ov-flow-iso 0.41s linear infinite; }
.ov-line.is-on[data-f="nist"] { animation: ov-flow-nist 1.8s linear infinite; }
.ov-map[data-paused] .ov-line { animation-play-state: paused !important; }

.ov-pulse { fill: none; stroke-width: 3; opacity: 0; transform-box: fill-box; transform-origin: center; pointer-events: none; }
.ov-pulse[data-f="nis2"] { stroke: var(--nis2); }
.ov-pulse[data-f="gdpr"] { stroke: var(--gdpr); }
.ov-pulse[data-f="iso"] { stroke: var(--iso); }
.ov-pulse[data-f="nist"] { stroke: var(--nist); }
@keyframes ov-pulse { from { opacity: 0.85; transform: scale(1); } to { opacity: 0; transform: scale(1.5); } }
.ov-hub.is-pulse .ov-pulse { animation: ov-pulse 750ms ease-out; }

.ov-motion-btn { font-size: 14px; color: var(--muted); }
.ov-motion-btn svg { fill: currentColor; stroke: currentColor; stroke-width: 1.5; }
.ov-motion-btn:hover { color: var(--ink); }
/* A newly added dashed line fades in while it starts streaming. */
.ov-line.is-on.is-fresh[data-f="gdpr"] { animation: ov-fade var(--t-line) ease-out both, ov-flow-gdpr 0.9s linear infinite; }
.ov-line.is-on.is-fresh[data-f="iso"] { animation: ov-fade var(--t-line) ease-out both, ov-flow-iso 0.41s linear infinite; }
.ov-line.is-on.is-fresh[data-f="nist"] { animation: ov-fade var(--t-line) ease-out both, ov-flow-nist 1.8s linear infinite; }

/* "Do next": each habit name links to its how-to page. */
a.ov-next-name { text-decoration: underline; text-decoration-color: var(--rule); text-underline-offset: 4px; }
a.ov-next-name:hover { text-decoration-color: var(--ink); }

/* Readability: no running text under 15px, no label under 13px (see base.css). */
.ov-mapfig figcaption, .ov-why-meta, .ov-ref-plain, .ov-check-state { font-size: 14px; }
.ov-why-meta dt, .ov-link-mark, .ov-toast-tag { font-size: 13px; }
.ov-note, .ov-ext, .ov-group-head, .ov-motion-btn, .ov-jump a { font-size: 15px; }
.ov-why, .ov-item { font-size: 16px; }

/* Phones: the map draws at about half size, so the dots grow and keep their numbers (as in
   the checklist), and each corner keeps its framework name and count. Practice names stay
   off; the checklist carries them. */
@media (max-width: 759px) {
  .ov-map .ov-num, .ov-map .ov-count, .ov-map .ov-hubname { display: inline; }
  .ov-map .ov-dot { r: 19px; }
  .ov-map .ov-selring { r: 24px; }
  .ov-map .ov-fr { r: 26px; }
  .ov-map .ov-hit { r: 32px; }
  .ov-map .ov-hub .ov-fr { r: 48px; }
  .ov-map .ov-num { font-size: 21px; }
  .ov-map .ov-count { font-size: 18px; }
  .ov-map .ov-hubname { font-size: 27px; }
}

/* Reserve each map-page part's space before its script draws it, so nothing jumps on load
   (Lighthouse CLS). Heights are what each part renders at, measured at phone and desktop width. */
overlap-strip:empty, overlap-map:empty, overlap-lens:empty, overlap-panel:empty,
overlap-checklist:empty, overlap-next:empty, overlap-table:empty { display: block; }
overlap-map:empty { aspect-ratio: 760 / 846; }
overlap-strip:empty { min-height: 57px; }
overlap-lens:empty { min-height: 55px; }
overlap-panel:empty { min-height: 335px; }
overlap-checklist:empty { min-height: 640px; }
overlap-next:empty { min-height: 300px; }
overlap-table:empty { min-height: 316px; }
@media (max-width: 759px) {
  overlap-strip:empty { min-height: 83px; }
  overlap-checklist:empty { min-height: 1183px; }
  overlap-table:empty { min-height: 484px; }
}
