/* insurance-platform-vendor-scorecard.css
 *
 * This page's own CSS, moved out of post_content on 2026-09-01.
 *
 * It is here rather than in style.css because it serves ONE URL. Anything used
 * on more than one page, or that is a real component, belongs in style.css
 * instead. Anything at all belongs somewhere git can see it, which is why this
 * file exists: it was inline in the page's content, where neither git, nor
 * code review, nor the theme comparison could see it.
 *
 * Loaded by genasys_child_page_styles() when a page whose slug is "insurance-platform-vendor-scorecard"
 * renders. The filename IS the wiring; there is no list to keep in step.
 */

.gn-scorecard * { box-sizing: border-box; }
  .gn-scorecard button,
  .gn-scorecard button:hover,
  .gn-scorecard button:focus,
  .gn-scorecard button:active {
    outline: none !important;
    outline-offset: 0 !important;
    box-shadow: none !important;
  }
  /* The reset above used to name :focus-visible too, which beat every
     control's own focus rule at (0,2,1): 146 tab stops with no ring
     (23 August review). */
  .gn-scorecard button:focus-visible { outline: 2px solid var(--wp--preset--color--accent) !important; outline-offset: 2px !important; }
  .gn-scorecard {
    font-family: var(--wp--preset--font-family--body);
    color: var(--wp--preset--color--ink);
    max-width: 1200px;
    margin: 0 auto;
    padding: 40px 20px;
  }
  .gn-scorecard h2, .gn-scorecard h3, .gn-scorecard h4 {
    font-family: var(--wp--preset--font-family--heading) !important;
    color: var(--wp--preset--color--primary);
    margin: 0 0 12px;
  }
  /* Hero header */
  .gn-sc-hero {
    position: relative;
    background: linear-gradient(180deg, var(--neutral-50) 0%, var(--wp--preset--color--white) 100%);
    border: 1px solid var(--neutral-200);
    border-radius: 20px;
    overflow: hidden;
    margin-bottom: 44px;
  }
  .gn-sc-hero-bar {
    height: 6px;
    background: linear-gradient(90deg, var(--wp--preset--color--primary) 0%, var(--wp--preset--color--accent) 35%, var(--wp--preset--color--purple) 70%, var(--wp--preset--color--cta) 100%);
  }
  .gn-sc-hero-inner { padding: 52px 56px 44px; }
  .gn-sc-hero-top {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 36px;
  }
  .gn-sc-hero-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-family: var(--wp--preset--font-family--body);
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 2px;
    color: var(--wp--preset--color--accent);
    font-weight: 700;
    padding-top: 6px;
  }
  .gn-sc-hero-eyebrow::before {
    content: '';
    width: 8px;
    height: 8px;
    background: var(--wp--preset--color--accent);
    border-radius: 50%;
  }
  .gn-sc-logo {
    height: auto !important;
    width: auto !important;
    max-height: 36px !important;
    max-width: 200px !important;
    object-fit: contain;
    display: block;
  }
  .gn-sc-hero h1 {
    font-family: var(--wp--preset--font-family--heading) !important;
    font-size: 56px;
    line-height: 1.02;
    letter-spacing: -1.5px;
    color: var(--wp--preset--color--primary);
    margin: 0 0 22px;
    font-weight: 700;
    max-width: 80%;
  }
  .gn-sc-hero-lead {
    font-family: var(--wp--preset--font-family--body);
    font-size: 18px;
    line-height: 1.55;
    color: var(--wp--preset--color--ink);
    max-width: 70%;
    margin: 0 0 40px;
  }
  .gn-sc-hero-stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 28px;
    padding-top: 32px;
    border-top: 1px solid var(--neutral-200);
  }
  .gn-sc-hero-stat strong {
    font-family: var(--wp--preset--font-family--heading) !important;
    display: block;
    font-size: 38px;
    font-weight: 700;
    color: var(--wp--preset--color--primary);
    line-height: 1;
    letter-spacing: -1px;
    margin-bottom: 6px;
  }
  .gn-sc-hero-stat span {
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--neutral-500);
    font-weight: 600;
  }

  /* Setup panel */
  .gn-sc-setup {
    background: var(--neutral-50);
    border: 1px solid var(--neutral-200);
    border-radius: 16px;
    padding: 28px;
    margin-bottom: 32px;
  }
  .gn-sc-setup-row { margin-bottom: 22px; }
  .gn-sc-setup-row:last-child { margin-bottom: 0; }
  .gn-sc-setup-label {
    display: block;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    color: var(--wp--preset--color--ink);
    margin-bottom: 10px;
    font-weight: 700;
  }
  .gn-sc-segments {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 10px;
  }
  .gn-sc-seg-btn {
    background: white !important;
    border: 2px solid var(--neutral-200) !important;
    color: var(--wp--preset--color--ink) !important;
    padding: 14px 8px !important;
    border-radius: 12px !important;
    font-family: var(--wp--preset--font-family--heading) !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    cursor: pointer !important;
    transition: all 0.15s !important;
    aspect-ratio: 1 / 1 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    line-height: 1.2 !important;
    word-break: keep-all !important;
    min-height: 0 !important;
    min-width: 0 !important;
    box-shadow: none !important;
    text-decoration: none !important;
    text-transform: none !important;
    margin: 0 !important;
    width: auto !important;
    height: auto !important;
  }
  .gn-sc-seg-btn:hover { border-color: var(--wp--preset--color--accent) !important; transform: translateY(-1px) !important; background: white !important; }
  .gn-sc-seg-btn.active { background: var(--wp--preset--color--primary) !important; color: white !important; border-color: var(--wp--preset--color--primary) !important; }

  /* Weights summary (shown for preset profiles) */
  .gn-sc-weights-summary {
    display: none;
    margin-top: 16px;
    padding: 16px 20px;
    background: var(--neutral-50);
    border: 1px solid var(--neutral-200);
    border-radius: 10px;
  }
  .gn-sc-weights-summary.open { display: block; }
  .gn-sc-ws-items {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 12px;
  }
  .gn-sc-ws-item {
    text-align: center;
  }
  .gn-sc-ws-value {
    font-family: var(--wp--preset--font-family--heading) !important;
    font-size: 24px;
    font-weight: 700;
    color: var(--wp--preset--color--primary);
    line-height: 1;
    display: block;
    margin-bottom: 5px;
  }
  .gn-sc-ws-name {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--neutral-500);
    font-weight: 600;
    line-height: 1.3;
    display: block;
  }

  /* Custom profile sliders */
  .gn-sc-custom-panel {
    display: none;
    margin-top: 18px;
    padding: 22px 24px;
    background: white;
    border: 1px solid var(--neutral-200);
    border-left: 4px solid var(--wp--preset--color--accent);
    border-radius: 12px;
  }
  .gn-sc-custom-panel.open { display: block; }
  .gn-sc-custom-head {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    margin-bottom: 6px;
    flex-wrap: wrap;
    gap: 8px;
  }
  .gn-sc-custom-title {
    font-family: var(--wp--preset--font-family--heading) !important;
    color: var(--wp--preset--color--primary);
    font-size: 16px;
    font-weight: 700;
  }
  .gn-sc-custom-sum {
    font-size: 12px;
    color: var(--neutral-500);
    font-weight: 600;
  }
  .gn-sc-custom-sum strong {
    color: var(--wp--preset--color--primary);
    font-family: var(--wp--preset--font-family--heading) !important;
    font-size: 14px;
    margin-left: 4px;
  }
  .gn-sc-custom-hint {
    font-size: 12px;
    color: var(--neutral-500);
    line-height: 1.45;
    margin: 0 0 18px;
  }
  .gn-sc-slider-rows {
    display: flex;
    flex-direction: column;
    gap: 14px;
  }
  .gn-sc-slider-row {
    display: grid;
    grid-template-columns: 160px 1fr 56px;
    gap: 16px;
    align-items: center;
  }
  .gn-sc-slider-label {
    font-size: 13px;
    color: var(--wp--preset--color--ink);
    font-weight: 600;
  }
  .gn-sc-slider-label small {
    display: block;
    font-size: 10px;
    color: var(--neutral-400);
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    margin-top: 2px;
  }
  .gn-sc-slider {
    -webkit-appearance: none;
    appearance: none;
    width: 100%;
    height: 6px;
    border-radius: 3px;
    background: linear-gradient(90deg, var(--neutral-200) 0%, var(--neutral-200) 100%);
    outline: none;
    cursor: pointer;
  }
  .gn-sc-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: var(--wp--preset--color--primary);
    border: 3px solid white;
    box-shadow: 0 2px 6px rgb(from var(--genasys-sapphire-blue) r g b / 0.3);
    cursor: pointer;
    transition: transform 0.15s;
  }
  .gn-sc-slider::-webkit-slider-thumb:hover { transform: scale(1.1); background: var(--wp--preset--color--accent); }
  .gn-sc-slider::-moz-range-thumb {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: var(--wp--preset--color--primary);
    border: 3px solid white;
    box-shadow: 0 2px 6px rgb(from var(--genasys-sapphire-blue) r g b / 0.3);
    cursor: pointer;
  }
  .gn-sc-slider-value {
    font-family: var(--wp--preset--font-family--heading) !important;
    font-size: 16px;
    font-weight: 700;
    color: var(--wp--preset--color--primary);
    text-align: right;
    min-width: 56px;
  }
  .gn-sc-custom-reset {
    margin-top: 18px !important;
    background: none !important;
    border: 1px solid var(--neutral-200) !important;
    color: var(--neutral-500) !important;
    padding: 8px 16px !important;
    border-radius: 50px !important;
    font-family: var(--wp--preset--font-family--body) !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    cursor: pointer !important;
    transition: all 0.15s !important;
    min-height: 0 !important;
    min-width: 0 !important;
    box-shadow: none !important;
    text-decoration: none !important;
    text-transform: none !important;
    width: auto !important;
    height: auto !important;
    display: inline-block !important;
  }
  .gn-sc-custom-reset:hover { border-color: var(--wp--preset--color--primary) !important; color: var(--wp--preset--color--primary) !important; background: none !important; }

  .gn-sc-vendors {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 10px;
  }
  .gn-sc-vendor-input {
    display: flex;
    align-items: center;
    gap: 10px;
    background: white;
    border: 1.5px solid var(--neutral-200);
    border-radius: 10px;
    padding: 10px 12px;
    min-width: 0;
    transition: border-color 0.15s, box-shadow 0.15s, transform 0.15s;
  }
  .gn-sc-vendor-input:hover { border-color: var(--neutral-300); }
  .gn-sc-vendor-input:focus-within {
    border-color: var(--wp--preset--color--accent);
    box-shadow: 0 0 0 3px rgb(from var(--genasys-sea-green) r g b / 0.18);
  }
  .gn-sc-vendor-num {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--wp--preset--font-family--heading) !important;
    font-size: 13px;
    font-weight: 700;
    color: white;
    flex-shrink: 0;
    line-height: 1;
  }
  .gn-sc-vendor-input .gn-sc-vendor-num { background: var(--hue); color: var(--hue-on); }
  .gn-sc-vendor-input input[type="text"] {
    flex: 1;
    width: auto;
    min-width: 0;
    border: none;
    background: transparent;
    padding: 0;
    font-family: var(--wp--preset--font-family--body);
    font-size: 14px;
    color: var(--wp--preset--color--ink);
    font-weight: 600;
    outline: none;
  }
  .gn-sc-vendor-input input[type="text"]::placeholder {
    color: var(--neutral-300);
    font-weight: 500;
    font-style: italic;
    letter-spacing: 0.3px;
  }

  /* Bucket grouping */
  .gn-sc-bucket {
    margin-bottom: 28px;
  }
  .gn-sc-bucket-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 14px;
    padding-bottom: 10px;
    border-bottom: 2px solid var(--wp--preset--color--primary);
  }
  .gn-sc-bucket-header h3 {
    font-size: 22px;
    margin: 0;
  }
  .gn-sc-bucket-weight {
    font-size: 13px;
    color: var(--wp--preset--color--ink);
    font-weight: 600;
  }
  .gn-sc-bucket-weight strong {
    color: var(--wp--preset--color--primary);
    font-size: 18px;
    font-family: var(--wp--preset--font-family--heading);
  }

  /* Domain (collapsible) */
  .gn-sc-domain {
    background: white;
    border: 1px solid var(--neutral-200);
    border-radius: 12px;
    margin-bottom: 12px;
    overflow: hidden;
  }
  .gn-sc-dom-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 22px;
    background: var(--neutral-50);
    cursor: pointer;
    transition: background 0.2s;
  }
  .gn-sc-dom-header:hover { background: var(--neutral-100); }
  .gn-sc-domain.complete .gn-sc-dom-header { background: rgb(from var(--genasys-sea-green) r g b / 0.06); }
  .gn-sc-domain.complete .gn-sc-dom-header:hover { background: rgb(from var(--genasys-sea-green) r g b / 0.12); }
  .gn-sc-domain.complete { border-color: rgb(from var(--genasys-sea-green) r g b / 0.3); }
  .gn-sc-dom-title-wrap { display: flex; align-items: center; gap: 12px; flex: 1; }
  .gn-sc-dom-num {
    background: var(--wp--preset--color--primary);
    color: white;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: 700;
    font-family: var(--wp--preset--font-family--heading);
    flex-shrink: 0;
  }
  .gn-sc-dom-title { font-size: 16px; font-weight: 700; color: var(--wp--preset--color--ink); font-family: var(--wp--preset--font-family--heading); }
  .gn-sc-dom-meta { display: flex; align-items: center; gap: 14px; }
  .gn-sc-dom-progress {
    font-size: 12px;
    color: var(--neutral-500);
    font-weight: 600;
  }
  .gn-sc-dom-progress.complete { color: var(--wp--preset--color--accent); }
  .gn-sc-dom-weight {
    background: var(--neutral-200);
    color: var(--wp--preset--color--ink);
    font-size: 11px;
    padding: 3px 10px;
    border-radius: 20px;
    font-weight: 700;
  }
  .gn-sc-dom-toggle {
    background: none !important;
    border: none !important;
    font-size: 18px !important;
    color: var(--wp--preset--color--primary) !important;
    cursor: pointer !important;
    width: 24px !important;
    height: 24px !important;
    min-height: 0 !important;
    min-width: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    text-decoration: none !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: transform 0.2s !important;
  }
  .gn-sc-dom-toggle:hover { background: none !important; }
  .gn-sc-domain.open .gn-sc-dom-toggle { transform: rotate(180deg) !important; }
  .gn-sc-dom-body {
    display: none;
    padding: 8px 22px 22px;
    border-top: 1px solid var(--neutral-50);
  }
  .gn-sc-domain.open .gn-sc-dom-body { display: block; }

  /* Vendor column header inside open domain */
  .gn-sc-vendor-row-head {
    display: grid;
    grid-template-columns: minmax(220px, 1.6fr) repeat(5, 1fr);
    gap: 10px;
    align-items: center;
    padding: 14px 0 14px;
    border-bottom: 1px solid var(--neutral-200);
    margin-bottom: 8px;
  }
  .gn-sc-vname-text {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--neutral-500);
    font-weight: 700;
    line-height: 1.2;
    word-break: break-word;
    text-align: center;
  }
  .gn-sc-vname-text.empty { font-style: italic; opacity: 0.5; text-transform: none; letter-spacing: 0; }

  .gn-sc-criterion {
    display: grid;
    grid-template-columns: minmax(220px, 1.6fr) repeat(5, 1fr);
    gap: 10px;
    align-items: center;
    padding: 10px 0;
    border-bottom: 1px solid var(--neutral-50);
  }
  .gn-sc-criterion:last-child { border-bottom: none; }
  .gn-sc-crit-label {
    font-size: 14px;
    color: var(--wp--preset--color--ink);
    line-height: 1.4;
    padding-right: 8px;
  }
  .gn-sc-stars {
    display: flex;
    gap: 2px;
    justify-content: center;
    align-items: center;
  }
  .gn-sc-star {
    background: none !important;
    border: none !important;
    font-size: 18px !important;
    color: var(--neutral-200) !important;
    cursor: pointer !important;
    padding: 2px !important;
    margin: 0 !important;
    min-height: 0 !important;
    min-width: 0 !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    text-transform: none !important;
    text-decoration: none !important;
    transition: color 0.1s, opacity 0.15s !important;
    line-height: 1 !important;
    display: inline !important;
    width: auto !important;
    height: auto !important;
  }
  .gn-sc-star.active { color: var(--wp--preset--color--cta-hover) !important; }
  .gn-sc-star:hover { color: var(--wp--preset--color--cta-hover) !important; background: none !important; }
  .gn-sc-star:focus { outline: 2px solid var(--wp--preset--color--accent) !important; outline-offset: 2px !important; background: none !important; }
  .gn-sc-stars.na .gn-sc-star { opacity: 0.25 !important; }
  .gn-sc-stars.na .gn-sc-star.active { color: var(--neutral-200) !important; }

  .gn-sc-na-btn {
    background: none !important;
    border: 1px solid var(--neutral-200) !important;
    border-radius: 10px !important;
    color: var(--neutral-400) !important;
    font-family: var(--wp--preset--font-family--body) !important;
    font-size: 9px !important;
    font-weight: 700 !important;
    letter-spacing: 0.4px !important;
    padding: 3px 6px !important;
    margin: 0 0 0 6px !important;
    cursor: pointer !important;
    line-height: 1 !important;
    min-height: 0 !important;
    min-width: 0 !important;
    box-shadow: none !important;
    text-transform: none !important;
    text-decoration: none !important;
    width: auto !important;
    height: auto !important;
    display: inline-flex !important;
    transition: all 0.15s !important;
  }
  .gn-sc-na-btn:hover { border-color: var(--wp--preset--color--accent) !important; color: var(--wp--preset--color--accent) !important; background: none !important; }
  .gn-sc-stars.na .gn-sc-na-btn {
    background: var(--wp--preset--color--accent) !important;
    border-color: var(--wp--preset--color--accent) !important;
    color: white !important;
    opacity: 1 !important;
  }

  /* Notes & rationale */
  .gn-sc-notes-block {
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px dashed var(--neutral-200);
  }
  .gn-sc-notes-toggle {
    background: none !important;
    border: none !important;
    color: var(--neutral-500) !important;
    font-family: var(--wp--preset--font-family--body) !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    cursor: pointer !important;
    padding: 6px 0 !important;
    margin: 0 !important;
    min-height: 0 !important;
    min-width: 0 !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    text-decoration: none !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    width: auto !important;
    height: auto !important;
    transition: color 0.15s !important;
  }
  .gn-sc-notes-toggle:hover { color: var(--wp--preset--color--primary) !important; background: none !important; }
  .gn-sc-notes-toggle.open { color: var(--wp--preset--color--primary) !important; }
  .gn-sc-notes-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: var(--neutral-50);
    color: var(--neutral-500);
    font-size: 14px;
    font-weight: 700;
    line-height: 1;
    transition: all 0.2s;
  }
  .gn-sc-notes-toggle:hover .gn-sc-notes-icon,
  .gn-sc-notes-toggle.open .gn-sc-notes-icon {
    background: var(--wp--preset--color--primary);
    color: white;
  }
  .gn-sc-notes-toggle.open .gn-sc-notes-icon { transform: rotate(45deg); }
  .gn-sc-notes-count {
    background: var(--wp--preset--color--accent);
    color: white;
    font-size: 10px;
    font-weight: 700;
    padding: 2px 7px;
    border-radius: 20px;
    margin-left: 2px;
    letter-spacing: 0;
    line-height: 1.4;
  }
  .gn-sc-notes-count:empty { display: none; }
  .gn-sc-notes-panel {
    display: none;
    margin-top: 12px;
    padding: 16px 18px;
    background: var(--neutral-50);
    border: 1px solid var(--neutral-200);
    border-radius: 10px;
  }
  .gn-sc-notes-panel.open { display: block; }
  .gn-sc-notes-hint {
    margin: 0 0 14px;
    font-size: 12px;
    color: var(--neutral-500);
    line-height: 1.45;
  }
  .gn-sc-note-row {
    margin-bottom: 12px;
  }
  .gn-sc-note-row:last-child { margin-bottom: 0; }
  .gn-sc-note-row.inactive { display: none; }
  .gn-sc-note-label {
    display: block;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--wp--preset--color--ink);
    font-weight: 700;
    margin-bottom: 4px;
  }
  .gn-sc-note-input {
    width: 100%;
    border: 1px solid var(--neutral-200);
    border-radius: 8px;
    padding: 10px 12px;
    font-family: var(--wp--preset--font-family--body);
    font-size: 13px;
    color: var(--wp--preset--color--ink);
    line-height: 1.45;
    resize: vertical;
    min-height: 56px;
    background: white;
    transition: border-color 0.15s, box-shadow 0.15s;
  }
  .gn-sc-note-input:focus {
    outline: none;
    border-color: var(--wp--preset--color--accent);
    box-shadow: 0 0 0 3px rgb(from var(--genasys-sea-green) r g b / 0.18);
  }
  .gn-sc-note-input::placeholder {
    color: var(--neutral-300);
    font-style: italic;
  }

  /* Results */
  .gn-sc-results {
    background: linear-gradient(135deg, var(--wp--preset--color--primary) 0%, var(--wp--preset--color--ink) 100%);
    border-radius: 16px;
    padding: 44px 36px;
    margin-top: 36px;
    color: white;
  }
  .gn-sc-results h3 {
    color: white;
    font-size: 28px;
    text-align: center;
    margin-bottom: 8px;
  }
  .gn-sc-results-sub {
    text-align: center;
    opacity: 0.7;
    font-size: 14px;
    margin-bottom: 32px;
  }
  .gn-sc-totals {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 12px;
    margin-bottom: 36px;
  }
  .gn-sc-total-card {
    background: rgb(from var(--genasys-white) r g b / 0.06);
    border-radius: 12px;
    padding: 22px 14px;
    text-align: center;
    border-top: 4px solid;
    position: relative;
  }
  .gn-sc-totals .gn-sc-total-card { border-color: var(--hue); }
  .gn-sc-total-name {
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    opacity: 0.75;
    margin-bottom: 8px;
    font-weight: 600;
    word-break: break-word;
    min-height: 18px;
  }
  .gn-sc-total-score {
    font-family: var(--wp--preset--font-family--heading);
    font-size: 42px;
    font-weight: 700;
    line-height: 1;
    margin-bottom: 4px;
  }
  .gn-sc-total-pct { font-size: 12px; opacity: 0.7; }
  .gn-sc-winner-badge {
    display: inline-block;
    background: var(--wp--preset--color--cta-hover);
    color: var(--wp--preset--color--ink);
    font-size: 10px;
    font-weight: 700;
    padding: 3px 9px;
    border-radius: 20px;
    margin-top: 10px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
  }

  .gn-sc-breakdown { background: rgb(from var(--genasys-white) r g b / 0.06); border-radius: 12px; padding: 26px; }
  .gn-sc-breakdown h4 { color: white; margin-bottom: 6px; font-size: 16px; }
  .gn-sc-breakdown-sub { font-size: 12px; opacity: 0.65; margin-bottom: 20px; }

  .gn-sc-total-card.inactive { opacity: 0.35; }
  .gn-sc-total-empty {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    font-style: italic;
    opacity: 0.6;
  }
  .gn-sc-bar-row.inactive { opacity: 0.3; }

  .gn-sc-agility {
    background: linear-gradient(135deg, rgb(from var(--genasys-sea-green) r g b / 0.18) 0%, rgb(from var(--genasys-sea-green) r g b / 0.06) 100%);
    border: 1px solid rgb(from var(--genasys-sea-green) r g b / 0.3);
    border-radius: 12px;
    padding: 26px;
    margin-bottom: 20px;
  }
  .gn-sc-agility-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 16px;
    margin-bottom: 18px;
  }
  .gn-sc-agility-head h4 {
    color: white !important;
    margin: 0 0 4px;
    font-size: 17px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
  }
  .gn-sc-agility-head p { color: rgb(from var(--genasys-white) r g b / 0.7); font-size: 12px; margin: 0; line-height: 1.45; max-width: 480px; }
  .gn-sc-info {
    position: relative !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 18px !important;
    height: 18px !important;
    min-height: 0 !important;
    min-width: 0 !important;
    border-radius: 50% !important;
    background: rgb(from var(--genasys-white) r g b / 0.18) !important;
    color: white !important;
    font-family: var(--wp--preset--font-family--body) !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    font-style: italic !important;
    cursor: help !important;
    border: 1px solid rgb(from var(--genasys-white) r g b / 0.3) !important;
    transition: background 0.15s !important;
    flex-shrink: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    box-shadow: none !important;
    text-decoration: none !important;
    text-transform: none !important;
  }
  .gn-sc-info:hover, .gn-sc-info:focus { background: var(--wp--preset--color--accent) !important; outline: none !important; }
  .gn-sc-info-tip {
    position: absolute;
    top: calc(100% + 10px);
    left: 50%;
    transform: translateX(-50%);
    width: 280px;
    background: var(--wp--preset--color--ink);
    color: white;
    border: 1px solid rgb(from var(--genasys-sea-green) r g b / 0.5);
    border-radius: 10px;
    padding: 14px 16px;
    font-size: 12px;
    font-weight: 400;
    font-style: normal;
    line-height: 1.5;
    text-transform: none;
    letter-spacing: 0;
    text-align: left;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.15s, visibility 0.15s;
    box-shadow: 0 8px 24px var(--shadow-strong);
    z-index: 100;
  }
  .gn-sc-info-tip::before {
    content: '';
    position: absolute;
    top: -6px;
    left: 50%;
    transform: translateX(-50%) rotate(45deg);
    width: 10px;
    height: 10px;
    background: var(--wp--preset--color--ink);
    border-left: 1px solid rgb(from var(--genasys-sea-green) r g b / 0.5);
    border-top: 1px solid rgb(from var(--genasys-sea-green) r g b / 0.5);
  }
  .gn-sc-info:hover .gn-sc-info-tip,
  .gn-sc-info:focus .gn-sc-info-tip {
    opacity: 1;
    visibility: visible;
  }
  .gn-sc-info-tip strong {
    display: block;
    color: var(--wp--preset--color--accent);
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    margin-bottom: 8px;
    font-weight: 700;
  }
  .gn-sc-info-tip ul {
    margin: 0;
    padding: 0;
    list-style: none;
  }
  .gn-sc-info-tip li {
    padding: 6px 0;
    border-top: 1px solid rgb(from var(--genasys-white) r g b / 0.12);
    font-weight: 500;
  }
  .gn-sc-info-tip li:first-child { border-top: none; padding-top: 0; }
  .gn-sc-info-tip li small {
    display: block;
    opacity: 0.6;
    font-size: 10px;
    margin-top: 2px;
    font-weight: 400;
  }
  .gn-sc-agility-tag {
    background: var(--wp--preset--color--accent);
    color: var(--wp--preset--color--ink);
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    padding: 4px 10px;
    border-radius: 20px;
    font-weight: 700;
    flex-shrink: 0;
    white-space: nowrap;
  }
  .gn-sc-agility-bars {
    display: flex;
    flex-direction: column;
    gap: 6px;
  }
  .gn-sc-bar-row {
    display: grid;
    grid-template-columns: 220px 1fr;
    gap: 18px;
    align-items: start;
    margin-bottom: 18px;
    font-size: 13px;
  }
  .gn-sc-bar-label { opacity: 0.9; padding-top: 4px; }
  .gn-sc-bar-label small { display: block; opacity: 0.6; font-size: 11px; margin-top: 2px; }
  .gn-sc-bar-group { display: flex; flex-direction: column; gap: 5px; }
  .gn-sc-bar-track {
    display: grid;
    grid-template-columns: 110px 1fr 36px;
    gap: 8px;
    align-items: center;
    font-size: 11px;
  }
  .gn-sc-bar-vname { opacity: 0.65; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .gn-sc-bar-bg { background: rgb(from var(--genasys-white) r g b / 0.12); border-radius: 4px; height: 7px; overflow: hidden; }
  .gn-sc-bar-fill { height: 100%; border-radius: 4px; transition: width 0.4s; }
  .gn-sc-bar-bg .gn-sc-bar-fill { background: var(--hue); }
  .gn-sc-bar-val { text-align: right; font-weight: 600; }

  .gn-sc-actions {
    display: flex;
    gap: 12px;
    justify-content: center;
    margin-top: 36px;
    flex-wrap: wrap;
  }
  .gn-sc-btn {
    background: var(--wp--preset--color--cta) !important;
    color: white !important;
    border: none !important;
    border-radius: 50px !important;
    padding: 14px 28px !important;
    font-family: var(--wp--preset--font-family--body) !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    cursor: pointer !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    transition: transform 0.2s, background 0.2s !important;
    min-height: 0 !important;
    min-width: 0 !important;
    box-shadow: none !important;
    text-decoration: none !important;
    text-transform: none !important;
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
    letter-spacing: normal !important;
  }
  .gn-sc-btn:hover { background: var(--wp--preset--color--cta-hover) !important; transform: translateY(-1px) !important; outline: none !important; }
  .gn-sc-btn:focus, .gn-sc-btn:active { outline: none !important; box-shadow: none !important; }
  .gn-sc-btn.gn-sc-btn-secondary {
    background: white !important;
    color: var(--wp--preset--color--primary) !important;
    outline: none !important;
  }
  .gn-sc-btn.gn-sc-btn-secondary:hover { background: var(--neutral-50) !important; outline: none !important; }
  .gn-sc-btn.gn-sc-btn-secondary:focus, .gn-sc-btn.gn-sc-btn-secondary:active { outline: none !important; box-shadow: none !important; }
  .gn-sc-btn svg { width: 16px !important; height: 16px !important; }

  .gn-sc-saved-row {
    text-align: center;
    margin-top: 20px;
  }
  .gn-sc-saved-indicator {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 12px;
    color: rgb(from var(--genasys-white) r g b / 0.5);
    font-weight: 500;
    letter-spacing: 0.3px;
  }
  .gn-sc-saved-indicator::before {
    content: '';
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--wp--preset--color--accent);
  }
  .gn-sc-saved-indicator.flash {
    color: rgb(from var(--genasys-white) r g b / 0.85);
  }
  .gn-sc-saved-indicator.flash::before {
    background: var(--wp--preset--color--cta-hover);
    box-shadow: 0 0 0 3px rgb(from var(--genasys-mellow-yellow) r g b / 0.3);
  }
  .gn-sc-saved-indicator.error::before { background: var(--wp--preset--color--cta); }
  .gn-sc-saved-indicator.error { color: var(--wp--preset--color--cta-hover); }

  /* Modal */
  .gn-sc-modal-backdrop {
    display: none;
    position: fixed;
    inset: 0;
    background: rgb(from var(--genasys-space-blue) r g b / 0.5);
    z-index: 99999;
    align-items: center;
    justify-content: center;
    padding: 20px;
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
  }
  .gn-sc-modal-backdrop.open { display: flex; }
  .gn-sc-modal {
    background: white;
    border-radius: 16px;
    max-width: 460px;
    width: 100%;
    padding: 32px;
    box-shadow: 0 20px 60px var(--shadow-strong);
    font-family: var(--wp--preset--font-family--body);
  }
  .gn-sc-modal h4 {
    font-family: var(--wp--preset--font-family--heading) !important;
    color: var(--wp--preset--color--primary) !important;
    font-size: 22px;
    margin: 0 0 12px;
    line-height: 1.2;
  }
  .gn-sc-modal p {
    color: var(--wp--preset--color--ink);
    font-size: 15px;
    line-height: 1.5;
    margin: 0 0 24px;
  }
  .gn-sc-modal-actions {
    display: flex;
    gap: 10px;
    justify-content: flex-end;
  }
  .gn-sc-modal-btn {
    border: none !important;
    border-radius: 50px !important;
    padding: 12px 22px !important;
    font-family: var(--wp--preset--font-family--body) !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    cursor: pointer !important;
    transition: transform 0.15s, background 0.15s !important;
    min-height: 0 !important;
    min-width: 0 !important;
    box-shadow: none !important;
    text-decoration: none !important;
    text-transform: none !important;
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
    display: inline-block !important;
    letter-spacing: normal !important;
  }
  .gn-sc-modal-btn:hover { transform: translateY(-1px) !important; outline: none !important; }
  .gn-sc-modal-btn:focus, .gn-sc-modal-btn:active { outline: none !important; box-shadow: none !important; }
  .gn-sc-modal-cancel {
    background: var(--neutral-50) !important;
    color: var(--wp--preset--color--ink) !important;
  }
  .gn-sc-modal-cancel:hover { background: var(--neutral-200) !important; }
  .gn-sc-modal-confirm {
    background: var(--wp--preset--color--cta) !important;
    color: white !important;
  }
  .gn-sc-modal-confirm:hover { background: var(--wp--preset--color--cta-hover) !important; }

  .gn-sc-footer {
    text-align: center;
    margin-top: 30px;
    padding-top: 24px;
    border-top: 1px solid var(--neutral-200);
    font-size: 12px;
    color: var(--neutral-500);
  }
  .gn-sc-footer img { height: auto; width: auto; max-height: 20px; max-width: 110px; object-fit: contain; vertical-align: middle; margin-left: 6px; opacity: 0.75; display: inline-block; }

  /* Tablet */
  @media (max-width: 1024px) {
    .gn-sc-hero-inner { padding: 40px 36px 36px; }
    .gn-sc-hero h1 { font-size: 42px; max-width: 100%; }
    .gn-sc-hero-lead { font-size: 16px; max-width: 100%; }
    .gn-sc-hero-stats { gap: 18px; }
    .gn-sc-hero-stat strong { font-size: 30px; }
    .gn-sc-vendors {
      display: flex;
      flex-wrap: wrap;
      justify-content: center;
      gap: 10px;
    }
    .gn-sc-vendor-input {
      flex: 0 0 calc(33.333% - 7px);
      max-width: calc(33.333% - 7px);
      padding: 10px 12px;
    }
    .gn-sc-vendor-input input { font-size: 13px; }
    .gn-sc-vendor-row-head, .gn-sc-criterion {
      grid-template-columns: minmax(160px, 1.4fr) repeat(5, 1fr);
      gap: 6px;
    }
    .gn-sc-star { font-size: 15px; padding: 1px; }
    .gn-sc-stars { gap: 1px; }
    .gn-sc-totals { grid-template-columns: repeat(5, 1fr); gap: 8px; }
    .gn-sc-total-card { padding: 16px 8px; }
    .gn-sc-total-score { font-size: 32px; }
    .gn-sc-total-name { font-size: 10px; }
    .gn-sc-bar-row { grid-template-columns: 160px 1fr; }
    .gn-sc-bar-track { grid-template-columns: 80px 1fr 30px; }
  }

  /* Mobile */
  @media (max-width: 600px) {
    .gn-scorecard { padding: 24px 12px; }
    .gn-sc-hero-inner { padding: 32px 22px 28px; }
    .gn-sc-hero-top { flex-direction: column; gap: 18px; align-items: flex-start; margin-bottom: 24px; }
    .gn-sc-logo { max-height: 26px !important; max-width: 150px !important; }
    .gn-sc-hero h1 { font-size: 30px; letter-spacing: -0.5px; }
    .gn-sc-hero-lead { font-size: 15px; margin-bottom: 28px; }
    .gn-sc-hero-stats { grid-template-columns: 1fr 1fr; gap: 16px; padding-top: 22px; }
    .gn-sc-hero-stat strong { font-size: 26px; }
    .gn-sc-setup { padding: 18px; }
    .gn-sc-segments { grid-template-columns: repeat(3, 1fr); gap: 6px; }
    .gn-sc-custom-panel { padding: 16px 14px; }
    .gn-sc-ws-items { grid-template-columns: repeat(3, 1fr); gap: 10px; }
    .gn-sc-ws-value { font-size: 20px; }
    .gn-sc-slider-row { grid-template-columns: 1fr 50px; gap: 8px; }
    .gn-sc-slider-row .gn-sc-slider { grid-column: 1 / -1; }
    .gn-sc-slider-label { font-size: 12px; }
    .gn-sc-seg-btn { font-size: 12px; padding: 8px 4px; }
    .gn-sc-vendors {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 10px;
    }
    .gn-sc-vendor-input {
      width: 75%;
      flex: none;
      max-width: none;
    }
    .gn-sc-bucket-header { flex-direction: column; align-items: flex-start; gap: 6px; }
    .gn-sc-bucket-header h3 { font-size: 18px; }
    .gn-sc-dom-header { padding: 14px 16px; }
    .gn-sc-dom-title { font-size: 14px; }
    .gn-sc-dom-num { width: 24px; height: 24px; font-size: 11px; }
    .gn-sc-dom-progress { display: none; }
    .gn-sc-dom-body { padding: 8px 16px 16px; }
    .gn-sc-vendor-row-head { display: none; }
    .gn-sc-criterion {
      grid-template-columns: 1fr;
      gap: 6px;
      padding: 14px 0;
    }
    .gn-sc-crit-label { padding-right: 0; font-weight: 600; }
    .gn-sc-stars { justify-content: flex-start; padding: 4px 0; }
    .gn-sc-stars::before {
      content: attr(data-vendor);
      font-size: 11px;
      text-transform: uppercase;
      color: var(--neutral-500);
      margin-right: 8px;
      align-self: center;
      letter-spacing: 0.5px;
      min-width: 70px;
      font-weight: 600;
    }
    .gn-sc-star { font-size: 22px; padding: 2px; }
    .gn-sc-results { padding: 28px 18px; }
    .gn-sc-results h3 { font-size: 22px; }
    .gn-sc-totals { grid-template-columns: 1fr 1fr; gap: 8px; }
    .gn-sc-total-score { font-size: 32px; }
    .gn-sc-breakdown { padding: 18px 14px; }
    .gn-sc-bar-row { grid-template-columns: 1fr; gap: 6px; }
    .gn-sc-bar-track { grid-template-columns: 90px 1fr 30px; font-size: 11px; }
  }
  /* ============ PRINT ============ */
  @media print {
    /* Force browsers to print background colours and gradients */
    * {
      -webkit-print-color-adjust: exact !important;
      print-color-adjust: exact !important;
    }

    body {
      background: white !important;
    }

    .gn-scorecard {
      padding: 0 !important;
      max-width: none !important;
    }

    /* Hide everything that's input or interaction */
    .gn-sc-setup,
    .gn-sc-actions,
    .gn-sc-saved-row,
    .gn-sc-modal-backdrop,
    .gn-sc-custom-panel,
    .gn-sc-dom-toggle,
    .gn-sc-info,
    .gn-sc-info-tip,
    .gn-sc-na-btn,
    .gn-sc-notes-toggle,
    .gn-sc-notes-hint,
    .gn-sc-footer {
      display: none !important;
    }

    /* Force notes panel open and styled for paper */
    .gn-sc-notes-panel {
      display: block !important;
      background: var(--neutral-50) !important;
      border: 1px solid var(--neutral-200) !important;
      margin-top: 12px !important;
      padding: 12px 14px !important;
      page-break-inside: avoid;
      break-inside: avoid;
    }
    .gn-sc-notes-block {
      border-top: 1px dashed var(--neutral-200) !important;
    }
    .gn-sc-note-input {
      border: none !important;
      background: transparent !important;
      padding: 4px 0 !important;
      font-size: 11px !important;
      min-height: 0 !important;
    }
    .gn-sc-note-row.inactive { display: none !important; }
    /* Hide note rows whose textarea is empty */
    .gn-sc-note-row:has(.gn-sc-note-input:placeholder-shown) { display: none !important; }
    /* Hide the whole notes block if no rows would render */
    .gn-sc-notes-block:not(:has(.gn-sc-note-input:not(:placeholder-shown))) { display: none !important; }

    /* Compact hero for print */
    .gn-sc-hero {
      border: none !important;
      border-radius: 0 !important;
      margin-bottom: 18px !important;
      box-shadow: none !important;
      background: white !important;
      page-break-after: avoid;
    }
    .gn-sc-hero-bar { display: none !important; }
    .gn-sc-hero-inner {
      padding: 0 0 16px !important;
      border-bottom: 2px solid var(--wp--preset--color--primary) !important;
    }
    .gn-sc-hero-top { margin-bottom: 16px !important; }
    .gn-sc-hero h1 {
      font-size: 26px !important;
      margin-bottom: 10px !important;
    }
    .gn-sc-hero-lead {
      font-size: 12px !important;
      max-width: 100% !important;
      margin-bottom: 12px !important;
    }
    .gn-sc-hero-stats {
      gap: 14px !important;
      padding-top: 14px !important;
    }
    .gn-sc-hero-stat strong { font-size: 20px !important; }

    /* Force all domains open and prevent breaking across pages */
    .gn-sc-bucket {
      page-break-inside: avoid;
      break-inside: avoid;
      margin-bottom: 16px !important;
    }
    .gn-sc-bucket-header h3 { font-size: 16px !important; }
    .gn-sc-domain {
      page-break-inside: avoid;
      break-inside: avoid;
      margin-bottom: 8px !important;
    }
    .gn-sc-domain .gn-sc-dom-body {
      display: block !important;
      padding: 8px 22px 16px !important;
    }
    .gn-sc-dom-header {
      cursor: default !important;
      padding: 12px 22px !important;
    }
    .gn-sc-dom-title { font-size: 14px !important; }
    .gn-sc-dom-progress { display: none !important; }
    .gn-sc-criterion {
      page-break-inside: avoid;
      break-inside: avoid;
      padding: 6px 0 !important;
    }
    .gn-sc-crit-label { font-size: 12px !important; }
    .gn-sc-star { font-size: 14px !important; }

    /* Results panel for paper */
    .gn-sc-results {
      background: white !important;
      color: var(--wp--preset--color--ink) !important;
      padding: 22px !important;
      border: 2px solid var(--wp--preset--color--primary) !important;
      border-radius: 12px !important;
      margin-top: 18px !important;
      page-break-before: always;
      break-before: page;
    }
    .gn-sc-results h3,
    .gn-sc-results-sub,
    .gn-sc-breakdown h4,
    .gn-sc-breakdown-sub,
    .gn-sc-agility-head h4,
    .gn-sc-agility-head p,
    .gn-sc-total-name,
    .gn-sc-total-pct,
    .gn-sc-bar-label,
    .gn-sc-bar-label small,
    .gn-sc-bar-vname,
    .gn-sc-bar-val {
      color: var(--wp--preset--color--ink) !important;
      opacity: 1 !important;
    }
    .gn-sc-results h3 { font-size: 22px !important; }
    .gn-sc-total-card {
      background: var(--neutral-50) !important;
      border: 1px solid var(--neutral-200) !important;
      page-break-inside: avoid;
      break-inside: avoid;
    }
    .gn-sc-total-score { color: var(--wp--preset--color--primary) !important; }
    .gn-sc-bar-bg { background: var(--neutral-200) !important; }
    .gn-sc-breakdown {
      background: var(--neutral-50) !important;
      border: 1px solid var(--neutral-200) !important;
    }
    .gn-sc-agility {
      background: rgb(from var(--genasys-sea-green) r g b / 0.06) !important;
      border: 1px solid rgb(from var(--genasys-sea-green) r g b / 0.3) !important;
    }
    .gn-sc-agility-head h4 {
      color: var(--wp--preset--color--ink) !important;
    }
    .gn-sc-agility-head p {
      color: var(--neutral-500) !important;
    }
    .gn-sc-agility-tag {
      background: var(--wp--preset--color--accent) !important;
      color: white !important;
    }
    .gn-sc-bar-row {
      page-break-inside: avoid;
      break-inside: avoid;
    }

    @page {
      margin: 14mm;
      size: A4;
    }
  }
