/* AI Layoff Tracker — front-end styles (v1.1) */

.alt-wrap,
.alt-stats-bar {
    --alt-surface: #ffffff;
    --alt-surface-2: #f7f8fa;
    --alt-ink: #16181d;
    --alt-ink-2: #4a4d55;
    --alt-muted: #868a93;
    --alt-grid: #e7e8ec;
    --alt-border: #e2e3e8;
    --alt-blue: #2a78d6;
    --alt-blue-dark: #1c5cab;
    --alt-blue-tint: #eef4fc;
    --alt-red: #D55E00;
    --alt-red-tint: #fdeeee;
    --alt-gold: #eda100;
    --alt-shadow: 0 1px 2px rgba(16, 18, 24, 0.04), 0 4px 14px rgba(16, 18, 24, 0.05);
    font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
    color: var(--alt-ink);
    -webkit-font-smoothing: antialiased;
}
.alt-filter-context {
    margin: 0 0 10px;
    color: var(--alt-ink);
    font-size: 13.5px;
    font-weight: 700;
}
.alt-results-summary { margin: 18px 0 22px; }
.alt-results-summary .alt-stats-bar { margin-bottom: 10px; }
.alt-stats-links {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 16px;
    font-size: 13px;
}
/* "Start here" helper box: soft green, a touch bigger, so newcomers find the
   explainers before scrolling past them. */
.alt-stats-links-box {
    align-items: center; gap: 8px 18px; font-size: 14.5px;
    background: #eef5ee; border: 1px solid #cfe2cf; border-radius: 10px;
    padding: 11px 15px; margin-top: 4px;
}
.alt-stats-links-label { font-weight: 700; color: #3c5a41; }
.alt-stats-links-box a { color: #2f5a37; }
/* Data-quality confidence note right under the headline numbers. */
.alt-quality-note { margin: 8px 2px 0; font-size: 12.5px; line-height: 1.5; color: var(--alt-ink-2); }
/* Roles chart small-sample state: amber flag + a subtle tint so it never reads
   as a representative, thousands-of-events chart. */
.alt-sample-warn { color: #b45309; font-weight: 700; }
.alt-small-sample { outline: 1px dashed #e6b866; outline-offset: -1px; }
/* Press-kit brand block */
.alt-brand-kit { display: flex; flex-wrap: wrap; align-items: center; gap: 26px; margin: 10px 0 6px; }
.alt-brand-lockup { display: inline-flex; align-items: center; gap: 12px; }
.alt-brand-mark { display: inline-flex; align-items: center; justify-content: center; width: 52px; height: 52px; border-radius: 12px; background: #4f7257; color: #fff; font-weight: 800; font-size: 20px; letter-spacing: 1px; }
.alt-brand-word { font-size: 22px; font-weight: 800; color: #16181d; }
.alt-brand-colors { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 18px; font-size: 13px; }
.alt-brand-colors li { display: inline-flex; align-items: center; gap: 7px; }
.alt-swatch { width: 16px; height: 16px; border-radius: 4px; border: 1px solid rgba(0,0,0,.12); display: inline-block; }
.alt-stats-links a {
    color: var(--alt-blue-dark);
    font-weight: 650;
    text-decoration-thickness: 1px;
    text-underline-offset: 2px;
}
.alt-stats-links a:focus-visible { outline: 2px solid var(--alt-blue); outline-offset: 3px; }
.alt-provenance {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 5px 13px;
    margin: 18px 0 0;
    padding-top: 14px;
    border-top: 1px solid var(--alt-grid);
    color: var(--alt-muted);
    font-size: 12px;
}
.alt-provenance b { color: var(--alt-ink-2); }
.alt-provenance a { color: var(--alt-ink-2); text-underline-offset: 2px; }
.alt-provenance a:focus-visible { outline: 2px solid var(--alt-blue); outline-offset: 3px; }
.alt-wrap { margin: 0 0 40px; }

/* Break the tracker out of the theme's narrow content column on desktop, so the
   wide table fits without scrolling sideways. Falls back to normal flow (and the
   table's own horizontal scroll) on smaller screens. */
@media (min-width: 1000px) {
    .alt-intro,
    .alt-stats-bar,
    .alt-stats-meta,
    .alt-header,
    .alt-wrap {
        /* Block themes cap content children at ~645px via max-width; override it
           so the wide table fits. Verified against the live theme. */
        max-width: 1180px !important;
        width: 100%;
        margin-left: auto;
        margin-right: auto;
        transform: none;
    }
    .alt-wrap { margin-bottom: 40px; }
}

/* Whitespace + alignment: on pages with the tracker, pull the theme's huge
   centered title into the same 1180px column, left-aligned, with tighter
   spacing. Scoped with :has() so no other page is affected. */
body:has(.alt-tracker-wrap) h1.wp-block-post-title,
body:has(.alt-tracker-wrap) .entry-title {
    text-align: left;
    max-width: 1180px;
    margin: 0 auto 6px;
    padding-top: 0;
    font-size: clamp(34px, 4.5vw, 46px);
}
body:has(.alt-tracker-wrap) .entry-content { margin-top: 12px; }
/* The theme stacks ~60px of padding above the title on this page; tighten it */
body:has(.alt-tracker-wrap) main.wp-block-group { margin-top: 24px !important; }
body:has(.alt-tracker-wrap) main > .wp-block-group.alignfull { padding-top: 24px !important; }
.alt-header { margin: 0 0 18px; }
.alt-brand { font-size: 12.5px; color: var(--alt-muted); margin-left: 10px; white-space: nowrap; }
.alt-brand strong { color: var(--alt-ink-2); font-weight: 600; }

.alt-muted { color: var(--alt-muted); }
.alt-num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.alt-center { text-align: center; }
.alt-empty { padding: 28px 0; text-align: center; color: var(--alt-muted); }

.alt-status {
    padding: 11px 15px;
    margin: 14px 0;
    border: 1px solid var(--alt-border);
    border-radius: 8px;
    background: var(--alt-surface-2);
    color: var(--alt-ink-2);
    font-size: 14px;
}
.alt-status-error { border-color: var(--alt-red); color: var(--alt-red); background: var(--alt-red-tint); }

/* ---------------- Stats bar ---------------- */

.alt-stats-bar {
    display: grid;
    /* Fixed 4-up so the four job-count cards (Verified / AI-attributed /
       Announced / Announced-AI) share one even row, and the context cards
       (AI share / Companies / Industries / Countries) share the next. */
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin: 0 0 18px;
}
.alt-stat-card-tall { grid-row: span 2; }
.alt-stat-value-row { display: flex; align-items: baseline; gap: 8px; }
.alt-stat-line { display: block; font-size: 13.5px; color: var(--alt-ink-2); margin: 5px 0; }
.alt-stat-line b { color: var(--alt-ink); font-weight: 800; }
@media (max-width: 980px) { .alt-stats-bar { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 460px) { .alt-stat-card-tall { grid-row: auto; } }
@media (max-width: 460px) { .alt-stats-bar { grid-template-columns: 1fr; } }
.alt-stat-card {
    position: relative;
    background: var(--alt-surface);
    border: 1px solid var(--alt-border);
    border-radius: 12px;
    padding: 14px 16px 12px;
    box-shadow: var(--alt-shadow);
    display: flex;
    flex-direction: column;
    gap: 3px;
    overflow: hidden;
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.alt-stat-card::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 3px;
    background: var(--alt-blue);
}
.alt-stat-card:hover { transform: translateY(-2px); box-shadow: 0 2px 4px rgba(16,18,24,.05), 0 10px 26px rgba(16,18,24,.08); }
.alt-stat-card-ai { background: linear-gradient(180deg, var(--alt-red-tint), var(--alt-surface) 60%); }
.alt-stat-card-ai::before { background: var(--alt-red); }
.alt-stat-value {
    font-size: 28px;
    font-weight: 800;
    line-height: 1.08;
    letter-spacing: -0.02em;
    color: var(--alt-ink);
    font-variant-numeric: tabular-nums;
}
.alt-stat-card-ai .alt-stat-value { color: var(--alt-red); }
/* Family accents: a parent tier and its AI child share one color, so the
   grid's relationships are visible before a word is read. Okabe-Ito hues. */
/* Two tier colors only — blue = Verified, amber = Announced. A "total" (the two
   summed) is deliberately NEUTRAL so it doesn't read as a third category, and
   the broad card is set apart entirely (it's a different, looser measure). */
.alt-fam-verified::before { background: #0072B2; }
.alt-fam-announced::before { background: #E69F00; }
.alt-fam-all::before, .alt-fam-total::before { background: var(--alt-ink-2); }
.alt-stat-card-ai.alt-fam-verified .alt-stat-value { color: #0072B2; }
.alt-stat-card-ai.alt-fam-announced .alt-stat-value { color: #B87A00; }
.alt-stat-card-ai.alt-fam-total .alt-stat-value { color: var(--alt-ink); }
/* Broad = "wider lens": dashed accent + muted value, visually apart so no one
   expects it to sum with the strict boxes. */
.alt-stat-card-broad { background: var(--alt-surface-2); }
.alt-stat-card-broad::before { background: repeating-linear-gradient(180deg, #9aa0aa 0 5px, transparent 5px 9px); }
.alt-stat-card-broad .alt-stat-value { color: var(--alt-ink-2); }
.alt-stat-card-broad .alt-stat-label { color: var(--alt-ink-2); }
.alt-stat-label { font-size: 13.5px; font-weight: 700; color: var(--alt-ink-2); }
.alt-stat-desc { font-size: 11.5px; line-height: 1.4; color: #3f6147; margin: 1px 0 2px; }
.alt-stat-desc b { color: var(--alt-ink-2); font-weight: 700; }
.alt-stat-sub { font-size: 12px; color: var(--alt-ink-2); font-variant-numeric: tabular-nums; margin-top: auto; }

/* ---------------- Toolbar (download + title) ---------------- */

.alt-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin: 0 0 16px;
}
.alt-toolbar-info { display: flex; flex-direction: column; gap: 2px; }
.alt-toolbar-title { font-size: 18px; font-weight: 700; letter-spacing: -0.01em; }
.alt-toolbar-sub { font-size: 13px; color: var(--alt-muted); }
.alt-toolbar-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.alt-dl-ico { vertical-align: -2px; margin-right: 5px; }

/* ---------------- Buttons ---------------- */

.alt-btn {
    display: inline-flex;
    align-items: center;
    padding: 9px 16px;
    font-size: 14px;
    font-weight: 600;
    border: 1px solid var(--alt-border);
    border-radius: 8px;
    background: var(--alt-surface);
    color: var(--alt-ink);
    cursor: pointer;
    text-decoration: none;
    line-height: 1.2;
    transition: background 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}
.alt-btn:hover { background: var(--alt-surface-2); border-color: #d4d6dc; }
.alt-btn:focus-visible { outline: 2px solid var(--alt-blue); outline-offset: 2px; }
.alt-btn-primary { background: var(--alt-blue); border-color: var(--alt-blue); color: #fff; box-shadow: 0 1px 2px rgba(42,120,214,.25); }
.alt-btn-primary:hover { background: var(--alt-blue-dark); border-color: var(--alt-blue-dark); color: #fff; }
.alt-btn-sm { padding: 6px 12px; font-size: 13px; }
.alt-btn-active, .alt-btn-active:hover { background: var(--alt-blue); border-color: var(--alt-blue); color: #fff; }

/* ---------------- Region tabs + narrative ---------------- */

.alt-tabs { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 14px; }
.alt-tab {
    --tabc: #52607a;
    font-size: 14px; font-weight: 700; cursor: pointer; line-height: 1.2;
    padding: 8px 16px; border-radius: 22px;
    background: #fff; color: var(--tabc); border: 2px solid var(--tabc);
    transition: background .12s ease, color .12s ease, transform .12s ease;
}
.alt-tab:hover { transform: translateY(-1px); }
.alt-tab-on { background: var(--tabc); color: #fff; }
.alt-tab-world   { --tabc: #52607a; }
.alt-tab-usa     { --tabc: #2a78d6; }
.alt-tab-canada  { --tabc: #c2417e; }
.alt-tab-latam   { --tabc: #7a3fa8; }
.alt-tab-europe  { --tabc: #6b4bd6; }
.alt-tab-uk      { --tabc: #c62f2e; }
.alt-tab-mideast { --tabc: #b8860b; }
.alt-tab-africa  { --tabc: #2e8b57; }
.alt-tab-asia    { --tabc: #d2691e; }
.alt-tab-aus     { --tabc: #0f8a7d; }
@media (max-width: 640px) {
    .alt-tabs { gap: 6px; }
    .alt-tab { font-size: 12.5px; padding: 6px 11px; border-width: 1.5px; }
    /* The theme's content wrappers occasionally retain desktop sizing on
       phones. Keep overflow contained at the tracker boundary, while the
       table retains its own deliberate horizontal scroll region. */
    body:has(.alt-tracker-wrap) .entry-content,
    body:has(.alt-tracker-wrap) main,
    .alt-tracker-wrap {
        min-width: 0;
        max-width: 100%;
    }
    .alt-tracker-wrap { box-sizing: border-box; overflow-x: clip; }
    .alt-search-wrap { min-width: 0; width: 100%; }
    .alt-range-pop {
        left: auto;
        right: 0;
        width: min(320px, calc(100vw - 28px));
        max-width: calc(100vw - 28px);
        box-sizing: border-box;
        flex-direction: column;
        align-items: stretch;
    }
    .alt-range-pop .alt-filter { min-width: 0; }
}

.alt-narrative {
    font-size: 15.5px; line-height: 1.6; color: var(--alt-ink);
    background: #fbf7ec; border: 1px solid #ead9ac; border-left: 4px solid #d9a514;
    border-radius: 10px; padding: 14px 18px; margin: 0 0 20px;
    font-variant-numeric: tabular-nums;
}
.alt-narrative:empty { display: none; }
/* Make the numbers pop: heavier + brand green so the figures carry the line. */
.alt-narrative b { font-weight: 800; color: #3f6147; }
.alt-narrative-copy { vertical-align: baseline; white-space: nowrap; }
.alt-narrative-head {
    display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
    gap: 6px 12px; margin: 0 0 8px; font-size: 15px;
}
.alt-nrow { margin: 5px 0; }
.alt-nlabel {
    display: inline-block; min-width: 102px; margin-right: 4px;
    font-weight: 800; font-size: 11.5px; letter-spacing: .05em;
    text-transform: uppercase; color: #8a6a08;
}

/* ---------------- Redesign: header, toolbar, quick views ---------------- */

.alt-header { margin: 0 0 20px; }
.alt-status, .alt-live {
    display: inline-flex; align-items: center; gap: 7px;
    font-size: 12.5px; font-weight: 600; color: #1f7a44;
    background: #e8f6ee; border: 1px solid #b7e0c6;
    border-radius: 20px; padding: 4px 12px; margin-right: 8px;
    transition: opacity .2s ease;
}
/* display:inline-flex would otherwise override the [hidden] attribute's
   display:none, leaving the working pill visible before JS runs. */
.alt-status[hidden] { display: none; }
.alt-live-dot { width: 8px; height: 8px; border-radius: 50%; background: #22a45d; box-shadow: 0 0 0 3px rgba(34,164,93,.18); }
/* While the pipeline is refreshing/cleaning, the green pill dims and the
   amber pill blinks alongside it, so visitors can see the data is being
   updated in real time. */
.alt-status-dim { opacity: .45; }
.alt-next { font-size: 12px; color: var(--alt-muted); margin-right: 8px; white-space: nowrap; }
.alt-status-working { color: #9a6b00; background: #fdf4e3; border-color: #e9cd8f;
    font-size: 11.5px; padding: 3px 10px; }
.alt-work-dot { width: 8px; height: 8px; border-radius: 50%; background: #e0a417;
    box-shadow: 0 0 0 3px rgba(224,164,23,.2); animation: alt-blink 1.1s ease-in-out infinite; }
@keyframes alt-blink { 0%, 100% { opacity: 1; } 50% { opacity: .25; } }
/* Roo, the AskTheRecruiter mascot — the exact robot from the main app, with
   his full animation set. He works (bobs, wiggles arms, reads, types, treads
   roll) while the pipeline refreshes and cleans. */
.alt-roo { --primary-deep: #4f7257; --accent: #d4a574; --surface: #fff;
    --primary-soft: #e6ede6; --primary-tint: #f0f4f0; flex: none; overflow: visible; }
/* Roo sits at the far left of the header, always visible. */
.alt-roo-wrap { position: relative; display: inline-flex; align-items: center; margin-right: 4px; flex: none; }
/* Sleeping state (site is live, nothing to do): greyscale, eyes shut, gentle
   breathing, and floating zzz's. Roo naps until the next pull wakes him. */
.roo-sleeping { filter: grayscale(1); opacity: .6; }
.roo-sleeping .roo-eyes { animation: none; transform: scaleY(.12); transform-origin: center 44px; }
.roo-sleeping .roo-pupil, .roo-sleeping .roo-line, .roo-sleeping .roo-bulb,
.roo-sleeping .roo-arm-l, .roo-sleeping .roo-arm-r, .roo-sleeping .roo-tread-dot { animation: none; }
.roo-sleeping .roo-body-group { animation: roo-breathe 4s ease-in-out infinite; }
.alt-zzz { position: absolute; top: -7px; right: -9px; display: none;
    font: 700 10px/1 var(--font-sans, sans-serif); color: #8a9c8e; }
.is-sleeping .alt-zzz { display: inline-block; }
.alt-zzz i { font-style: normal; display: inline-block; opacity: 0; animation: alt-zzz 3.2s ease-in-out infinite; }
.alt-zzz i:nth-child(1) { font-size: 8px; }
.alt-zzz i:nth-child(2) { font-size: 10px; animation-delay: .4s; }
.alt-zzz i:nth-child(3) { font-size: 12px; animation-delay: .8s; }
@keyframes alt-zzz { 0% { opacity: 0; transform: translate(0,4px); } 30% { opacity: 1; } 70% { opacity: .7; } 100% { opacity: 0; transform: translate(4px,-8px); } }
@media (prefers-reduced-motion: reduce) { .alt-zzz i { animation: none; opacity: .8; } }
.roo-eyes { animation: roo-blink 4.5s ease infinite; transform-origin: center 38px; }
.roo-working .roo-eyes { animation-duration: 5.5s; }
.roo-working-hard .roo-eyes { animation-duration: 4.5s; }
.roo-pupil { transform-box: fill-box; transform-origin: center; }
.roo-working .roo-pupil { animation: roo-read 4s ease-in-out infinite; }
.roo-working-hard .roo-pupil { animation: roo-read 2.6s ease-in-out infinite; }
.roo-line { animation: roo-type 1.6s ease-in-out infinite; }
.roo-working-hard .roo-line { animation-duration: .65s; }
.roo-line:nth-of-type(2) { animation-delay: .2s; }
.roo-line:nth-of-type(3) { animation-delay: .4s; }
.roo-bulb { transform-box: fill-box; transform-origin: center; }
.roo-working .roo-bulb { animation: roo-beacon 1.4s ease-in-out infinite; }
.roo-working-hard .roo-bulb { animation: roo-beacon .8s ease-in-out infinite; }
.roo-working .roo-body-group { animation: roo-bob 2.4s ease-in-out infinite; }
.roo-working-hard .roo-body-group { animation: roo-bob 1.1s ease-in-out infinite; }
.roo-arm-l, .roo-arm-r { transform-origin: center; }
.roo-working .roo-arm-l { animation: roo-wiggle 1.3s ease-in-out infinite; }
.roo-working .roo-arm-r { animation: roo-wiggle 1.3s ease-in-out infinite reverse; }
.roo-working-hard .roo-arm-l { animation: roo-wiggle .5s ease-in-out infinite; }
.roo-working-hard .roo-arm-r { animation: roo-wiggle .5s ease-in-out infinite reverse; }
.roo-working .roo-tread-dot { animation: roo-roll 1.2s linear infinite; }
.roo-working-hard .roo-tread-dot { animation: roo-roll .6s linear infinite; }
.roo-tread-dot:nth-of-type(2) { animation-delay: .12s; }
.roo-tread-dot:nth-of-type(3) { animation-delay: .24s; }
.roo-tread-dot:nth-of-type(4) { animation-delay: .36s; }
.roo-tread-dot:nth-of-type(5) { animation-delay: .48s; }
@keyframes roo-blink { 0%,88%,100%{transform:scaleY(1)} 91%{transform:scaleY(.08)} 94%{transform:scaleY(1)} 96%{transform:scaleY(.08)} 98%{transform:scaleY(1)} }
@keyframes roo-read { 0%,8%{transform:translate(0,0)} 18%{transform:translate(-2px,-1px)} 30%,35%{transform:translate(2px,-1px)} 45%{transform:translate(-2px,1px)} 57%,62%{transform:translate(2px,1px)} 74%,100%{transform:translate(0,0)} }
@keyframes roo-type { 0%,100%{width:8px} 55%{width:30px} }
@keyframes roo-beacon { 0%,100%{opacity:.5;transform:scale(1)} 50%{opacity:1;transform:scale(1.35)} }
@keyframes roo-bob { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-2.5px)} }
@keyframes roo-wiggle { 0%,100%{transform:rotate(-4deg)} 50%{transform:rotate(5deg)} }
@keyframes roo-roll { 0%{opacity:.25} 50%{opacity:.85} 100%{opacity:.25} }
@media (prefers-reduced-motion: reduce) {
    .alt-work-dot, .roo-eyes, .roo-pupil, .roo-line, .roo-bulb, .roo-body-group,
    .roo-arm-l, .roo-arm-r, .roo-tread-dot { animation: none !important; }
}
.alt-subtitle { margin: 14px 0 0; font-size: 16px; line-height: 1.5; color: var(--alt-ink-2); max-width: 680px; }

.alt-toolbar2 { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 0 0 14px; }
.alt-search-wrap { position: relative; flex: 1 1 320px; min-width: 220px; }
.alt-search-ico { position: absolute; left: 13px; top: 50%; transform: translateY(-50%); color: var(--alt-muted); pointer-events: none; }
#alt-search {
    width: 100%; box-sizing: border-box; font-size: 14px;
    padding: 10px 14px 10px 38px; border: 1px solid var(--alt-border);
    border-radius: 10px; background: var(--alt-surface); color: var(--alt-ink);
}
#alt-search:focus { outline: none; border-color: var(--alt-blue); box-shadow: 0 0 0 3px var(--alt-blue-tint); }
.alt-sort { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; color: var(--alt-muted); }
.alt-sort select { font-size: 14px; padding: 9px 12px; border: 1px solid var(--alt-border); border-radius: 10px; background: var(--alt-surface); color: var(--alt-ink); cursor: pointer; }
#alt-filters-toggle svg { vertical-align: -2px; margin-right: 4px; }

.alt-quickviews { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0 0 18px; }
.alt-qv-label { font-size: 13px; color: var(--alt-muted); font-weight: 500; margin-right: 2px; }
.alt-qv {
    font-size: 13px; font-weight: 600; color: var(--alt-ink-2);
    background: var(--alt-surface); border: 1px solid var(--alt-border);
    border-radius: 20px; padding: 6px 14px; cursor: pointer; line-height: 1.2;
    transition: background .15s ease, color .15s ease, border-color .15s ease;
}
.alt-qv:hover { border-color: var(--alt-blue); color: var(--alt-blue); }
.alt-qv-on, .alt-qv-on:hover { background: var(--alt-ink); border-color: var(--alt-ink); color: #fff; }

/* Compact chart grid at the top; the ⤢ button expands a card full-width */
.alt-minigrid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 0 0 18px; }
@media (max-width: 900px) { .alt-minigrid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .alt-minigrid { grid-template-columns: 1fr; } }
.alt-mini { padding: 13px 15px; }
/* AI job-loss map: spans two of the three columns, taller box, world/US toggle. */
.alt-map-card { grid-column: span 2; }
@media (max-width: 900px) { .alt-map-card { grid-column: 1 / -1; } }
.alt-mini .alt-map-box { height: 360px; }
.alt-mini.alt-expanded .alt-map-box { height: 600px; }
.alt-map-toggle { display: inline-flex; border: 1px solid var(--alt-border); border-radius: 7px; overflow: hidden; margin-right: 4px; }
.alt-map-scope { background: #fff; border: 0; padding: 3px 10px; font-size: 12px; font-weight: 600; color: var(--alt-ink-2); cursor: pointer; }
.alt-map-scope + .alt-map-scope { border-left: 1px solid var(--alt-border); }
.alt-map-scope-on { background: var(--alt-blue); color: #fff; }
.alt-map-total { text-align: center; font-size: 12.5px; font-weight: 600; margin: 6px 0 0; color: var(--alt-ink-2); }
/* d3 proportional-symbol map: SVG fills the box; tooltip + reset overlay it. */
#alt-chart-aimap { position: relative; width: 100%; height: 100%; overflow: hidden; }
.alt-map-svg { width: 100%; height: 100%; display: block; user-select: none; -webkit-tap-highlight-color: transparent; }
.alt-map-tip { position: absolute; z-index: 5; pointer-events: none; max-width: 220px;
    background: #0b0b0b; color: #fff; font-size: 12px; line-height: 1.35; padding: 7px 9px;
    border-radius: 6px; box-shadow: 0 4px 14px rgba(0,0,0,0.22); }
.alt-map-tip b { color: #fff; }
.alt-map-tip a { color: #8ec5ff; text-decoration: underline; font-weight: 600; }
.alt-map-reset { position: absolute; top: 8px; left: 8px; z-index: 5;
    background: #fff; border: 1px solid var(--alt-border); border-radius: 6px;
    padding: 4px 9px; font-size: 11.5px; font-weight: 600; color: var(--alt-ink-2);
    cursor: pointer; box-shadow: 0 1px 3px rgba(0,0,0,0.08); }
.alt-map-reset:hover { background: var(--alt-blue-tint); color: var(--alt-blue-dark); }
.alt-map-zoom { position: absolute; top: 8px; right: 8px; z-index: 5; display: flex; flex-direction: column; gap: 4px; }
.alt-map-zbtn { width: 30px; height: 30px; display: flex; align-items: center; justify-content: center;
    background: #fff; border: 1px solid var(--alt-border); border-radius: 6px; padding: 0;
    font-size: 19px; line-height: 1; font-weight: 600; color: var(--alt-ink-2);
    cursor: pointer; box-shadow: 0 1px 3px rgba(0,0,0,0.08); }
.alt-map-zbtn:hover { background: var(--alt-blue-tint); color: var(--alt-blue-dark); }
.alt-map-zbtn:focus-visible { outline: 2px solid var(--alt-blue); outline-offset: 2px; }
.alt-mini .alt-chart-h { font-size: 13.5px; }
.alt-mini .alt-chart-sub { display: block; margin-left: 0; margin-top: 2px; font-size: 11px; }
.alt-mini .alt-chart-box { height: 150px; }
.alt-mini.alt-expanded { grid-column: 1 / -1; }
.alt-mini.alt-expanded .alt-chart-box { height: 320px; }
.alt-mini .alt-barlist { gap: 5px; }
/* Compact cards show every row inside a short scroll box, so all items are
   reachable without expanding (expanding removes the cap, see .alt-expanded). */
.alt-mini:not(.alt-expanded) .alt-barlist { max-height: 208px; overflow-y: auto; padding-right: 4px; }
.alt-mini .alt-barrow { padding: 5px 7px; }
.alt-mini .alt-barrow-top { margin-bottom: 4px; }
.alt-mini .alt-barrow-name { font-size: 13px; }
.alt-mini .alt-barrow-val { font-size: 12.5px; }
.alt-mini .alt-bartrack { height: 7px; }
/* Expanded cards get readable type to match the larger canvas fonts. */
.alt-mini.alt-expanded .alt-barrow-name { font-size: 16px; }
.alt-mini.alt-expanded .alt-barrow-val { font-size: 15px; }
.alt-mini.alt-expanded .alt-bartrack { height: 12px; }
.alt-mini.alt-expanded .alt-chart-h { font-size: 19px; }
.alt-mini.alt-expanded .alt-chart-sub { font-size: 13.5px; }
.alt-mini.alt-expanded .alt-chart-box { height: 420px; }
.alt-chart-btns { display: inline-flex; gap: 6px; flex: 0 0 auto; position: relative; }
.alt-expand, .alt-chart-dl, .alt-chart-share, .alt-chart-embed {
    flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center;
    width: 26px; height: 26px; border-radius: 7px; cursor: pointer;
    background: var(--alt-surface-2); border: 1px solid var(--alt-grid); color: var(--alt-ink-2);
    transition: background .12s ease, color .12s ease, border-color .12s ease;
}
.alt-expand:hover, .alt-chart-dl:hover, .alt-chart-share:hover, .alt-chart-embed:hover { border-color: #2a78d6; color: #2a78d6; }
.alt-chart-share.alt-copied, .alt-chart-embed.alt-copied { border-color: var(--op-green, #4f7257); color: var(--op-green, #4f7257); }
.alt-embed-pop { position: absolute; top: 32px; right: 0; z-index: 40; width: min(340px, 78vw);
    background: #fff; border: 1px solid var(--alt-grid); border-radius: 10px; box-shadow: 0 8px 24px rgba(16,24,40,.16); padding: 10px; text-align: left; }
.alt-embed-pop h4 { margin: 0 0 6px; font-size: 12px; text-transform: uppercase; letter-spacing: .04em; color: var(--alt-muted); }
.alt-embed-pop textarea { width: 100%; height: 66px; font: 11px/1.4 ui-monospace, SFMono-Regular, Menlo, monospace;
    border: 1px solid var(--alt-grid); border-radius: 7px; padding: 7px; resize: none; box-sizing: border-box; color: var(--alt-ink); background: var(--alt-surface-2); }
.alt-embed-pop .alt-embed-copy { margin-top: 7px; width: 100%; }
.alt-embed-pop .alt-embed-hint { margin: 6px 0 0; font-size: 11px; color: var(--alt-muted); }

/* Report headline: two boxes side by side (Overall vs AI-attributed) */
.alt-op-twobox { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-bottom: 10px; }
.alt-op-box { border: 1px solid var(--alt-grid); border-radius: 12px; padding: 16px 18px; background: var(--alt-surface-2); }
.alt-op-box-overall { border-left: 4px solid var(--op-green, #4f7257); }
.alt-op-box-ai { border-left: 4px solid #d0431a; }
.alt-op-box .alt-op-big { font-size: 40px; line-height: 1.02; }
.alt-op-big-ai { color: #d0431a; }
.alt-op-boxlabel { font-size: 13.5px; font-weight: 600; color: var(--alt-ink); margin-top: 4px; }
.alt-op-aipct { display: inline-block; margin-left: 4px; padding: 1px 7px; border-radius: 999px; background: #fbe3da; color: #b6360f; font-size: 12px; font-weight: 700; }
.alt-op-boxnote { font-size: 11.5px; color: var(--alt-muted); margin-top: 6px; line-height: 1.4; }
@media (max-width: 560px) { .alt-op-twobox { grid-template-columns: 1fr; } }
.alt-expanded .alt-expand { background: #2a78d6; border-color: #2a78d6; color: #fff; }

/* Multi-select checkbox dropdowns (presentation over hidden native selects) */
.alt-filter { position: relative; }
.alt-dd {
    display: flex; align-items: center; justify-content: space-between; gap: 8px;
    width: 100%; box-sizing: border-box; font-size: 14px; text-align: left;
    padding: 8px 10px; border: 1px solid var(--alt-grid); border-radius: 8px;
    background: #fff; color: var(--alt-ink); cursor: pointer; line-height: 1.25;
}
.alt-dd:hover { border-color: #2a78d6; }
.alt-dd-on { border-color: #2a78d6; background: var(--alt-blue-tint, #eef4fc); font-weight: 600; }
.alt-dd-txt { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.alt-dd-pop {
    position: absolute; z-index: 60; top: calc(100% + 4px); left: 0; min-width: 100%;
    max-height: 260px; overflow-y: auto; background: #fff;
    border: 1px solid var(--alt-border); border-radius: 10px;
    box-shadow: 0 6px 24px rgba(16, 18, 24, .14); padding: 6px;
}
.alt-dd-pop[hidden] { display: none; }
.alt-dd-row {
    display: flex; align-items: center; gap: 8px; font-size: 13.5px; color: var(--alt-ink);
    padding: 6px 8px; border-radius: 6px; cursor: pointer; white-space: nowrap;
}
.alt-dd-row:hover { background: var(--alt-surface-2); }
.alt-dd-row input { accent-color: #2a78d6; }

/* Reset button: visually distinct so it isn't mistaken for a filter */
.alt-btn-reset {
    width: 100%; justify-content: center;
    color: #b3261e; border-color: #e6b6b3; background: #fdf3f2;
}
.alt-btn-reset:hover { background: #fbe7e5; border-color: #d99490; color: #8f1d17; }

/* Clickable date-range control under the stats */
/* Lives inside .alt-toolbar2 (one compact row with search + sort) */
.alt-range-wrap { position: relative; display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 0; }
.alt-range-btn {
    display: inline-flex; align-items: center; gap: 7px;
    font-size: 13.5px; font-weight: 600; color: #1c5cab;
    background: #eef4fc; border: 1px dashed #9cbfe8; border-radius: 8px;
    padding: 7px 12px; cursor: pointer;
}
.alt-range-btn:hover { border-style: solid; border-color: #2a78d6; }
.alt-range-note-data { font-size: 13.5px; color: var(--alt-ink-2); font-weight: 500; }
.alt-range-pop {
    position: absolute; z-index: 60; top: calc(100% + 6px); left: 0;
    display: flex; align-items: end; gap: 12px; padding: 14px;
    background: #fff; border: 1px solid var(--alt-border); border-radius: 12px;
    box-shadow: 0 6px 24px rgba(16, 18, 24, .14);
}
.alt-range-pop[hidden] { display: none; }
.alt-range-pop .alt-filter { min-width: 150px; }

/* Per-dimension chip colors so stacked cross-filters read at a glance */
.alt-af-blue   { background: #2a78d6; border-color: #2a78d6; }
.alt-af-teal   { background: #0f8a7d; border-color: #0f8a7d; }
.alt-af-violet { background: #6b4bd6; border-color: #6b4bd6; }
.alt-af-green  { background: #1e8a3c; border-color: #1e8a3c; }
.alt-af-orange { background: #d2691e; border-color: #d2691e; }
.alt-af-pink   { background: #c2417e; border-color: #c2417e; }
.alt-af-slate  { background: #52607a; border-color: #52607a; }
.alt-af-gold   { background: #9a7b0a; border-color: #9a7b0a; }
.alt-af-red    { background: #c62f2e; border-color: #c62f2e; }
.alt-af-ink    { background: #16181d; border-color: #16181d; }

/* Always-visible filter bar (primary controls) + "More filters" drawer */
.alt-filterbar {
    background: var(--alt-surface); border: 1px solid var(--alt-border);
    border-radius: 12px; box-shadow: var(--alt-shadow); padding: 14px 16px; margin: 0 0 16px;
}
.alt-filterbar-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 10px 14px; align-items: end; }
.alt-filterbar-reset { display: flex; justify-content: flex-end; margin-top: 12px; }
.alt-filterbar-period {
    display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
    gap: 10px; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--alt-grid);
}
.alt-filterbar .alt-period { margin: 0; flex: 1 1 auto; }
.alt-filters-more { margin-top: 12px; padding-top: 12px; border-top: 1px dashed var(--alt-grid); }
.alt-filters-more[hidden] { display: none; }
.alt-period-lbl { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--alt-muted); margin-right: 4px; }

/* Count row is sticky so the active filters + counts stay visible while
   scrolling a long table (works with the WP admin bar offset too). */
.alt-count-row {
    display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
    gap: 10px; margin: 0 0 10px; padding: 10px 12px;
    background: var(--alt-surface-2);
    border: 1px solid var(--alt-border); border-radius: 10px;
}
/* The active-filter summary docks under the filter controls and pins to the
   top of the viewport as soon as the filters scroll out of view, re-docking on
   the way back up (native position: sticky — no scroll listeners). */
.alt-active-filters--sticky {
    position: sticky; top: 0; z-index: 40;
    margin: 0 0 16px; padding: 9px 12px;
    background: rgba(252, 252, 251, 0.94);
    backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
    border: 1px solid var(--alt-border); border-radius: 10px;
    box-shadow: 0 2px 10px rgba(16, 18, 24, 0.06);
}
body.admin-bar .alt-active-filters--sticky { top: 32px; }
@media (max-width: 782px) { body.admin-bar .alt-active-filters--sticky { top: 46px; } }
@media (max-width: 600px) {
    /* WP's admin bar is absolute (scrolls away) below 600px */
    body.admin-bar .alt-active-filters--sticky { top: 0; }
    /* Chips scroll sideways instead of stacking the pinned bar several rows tall */
    .alt-active-filters--sticky { flex-wrap: nowrap; overflow-x: auto; -webkit-overflow-scrolling: touch; }
    .alt-af-chip { white-space: nowrap; }
}
.alt-count-left { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; min-width: 0; }
.alt-count-left .alt-active-filters { margin: 0; }
.alt-count-strong { font-size: 14px; font-weight: 600; color: var(--alt-ink-2); font-variant-numeric: tabular-nums; white-space: nowrap; }
/* Zero-result state is unmissable: light red pill on the count + the table cell */
.alt-count-empty { background: #fdecea; color: #b3261e; border: 1px solid #f5c6c0; border-radius: 8px; padding: 4px 10px; white-space: normal; }
.alt-table-scroll td.dataTables_empty { background: #fdecea; color: #b3261e; font-weight: 600; padding: 18px 12px; }

/* "Where the cuts are" bar lists */
.alt-chart-head { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; margin-bottom: 12px; }
.alt-chart-head .alt-chart-h { margin-bottom: 0; }
.alt-tap-hint { font-size: 12px; color: var(--alt-muted); white-space: nowrap; }
.alt-ai-key { display: inline-block; width: 9px; height: 9px; border-radius: 2px; background: #eb6834; vertical-align: baseline; }
.alt-barlist { display: flex; flex-direction: column; gap: 10px; }
.alt-barrow {
    display: block; width: 100%; text-align: left; background: none; border: 1px solid transparent;
    border-radius: 10px; padding: 8px 10px; cursor: pointer; font: inherit; color: inherit;
    transition: background .12s ease, border-color .12s ease, opacity .12s ease;
}
.alt-barrow:hover { background: var(--alt-surface-2); }
.alt-barrow:disabled { cursor: default; }
.alt-barrow:disabled:hover { background: none; }
.alt-barrow-on { border-color: var(--alt-blue, #2a78d6); background: var(--alt-blue-tint, #eef4fc); }
.alt-barrow-dim { opacity: 0.45; }
.alt-barrow-top { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; margin-bottom: 6px; }
.alt-barrow-name { font-size: 14px; font-weight: 700; color: var(--alt-ink); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.alt-barrow-val { font-size: 13.5px; font-weight: 600; color: var(--alt-ink-2); font-variant-numeric: tabular-nums; white-space: nowrap; }
.alt-bartrack { position: relative; display: block; height: 9px; border-radius: 6px; background: #e8ebf3; overflow: hidden; }
.alt-barfill { position: absolute; top: 0; bottom: 0; background: #2a78d6; border-radius: 6px; }
.alt-barfill-ai { position: absolute; top: 0; bottom: 0; left: 0; background: #eb6834; border-radius: 6px 0 0 6px; }
.alt-bar-more {
    display: block; width: 100%; text-align: left; margin-top: 2px;
    font-size: 12.5px; font-weight: 600; color: #2a78d6;
    background: none; border: none; cursor: pointer; padding: 6px 10px;
    border-radius: 8px;
}
.alt-bar-more:hover { background: var(--alt-blue-tint, #eef4fc); color: #1c5cab; }
/* Bottom legend needs breathing room in the compact reasons card */
.alt-mini .alt-chart-box:has(#alt-chart-reasons) { height: 190px; }

.alt-overview-collapse { margin: 22px 0 0; border: 1px solid var(--alt-border); border-radius: 12px; overflow: hidden; background: var(--alt-surface); }
.alt-overview-collapse > summary {
    cursor: pointer; list-style: none; padding: 14px 18px;
    font-size: 14px; font-weight: 700; color: var(--alt-ink-2);
    display: flex; align-items: center; gap: 9px;
}
.alt-overview-collapse > summary::-webkit-details-marker { display: none; }
.alt-overview-collapse > summary svg { color: var(--alt-blue); }
.alt-overview-collapse[open] > summary { border-bottom: 1px solid var(--alt-grid); }
.alt-overview-collapse .alt-overview { padding: 18px; margin: 0; }

.alt-journalist {
    display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
    gap: 16px; margin: 22px 0 0; padding: 22px 24px;
    background: #f2f5f0; border: 1px solid #cfdad0; border-left: 4px solid #537a5c;
    border-radius: 14px; color: #20283a;
}
.alt-journalist-text > strong { display: block; font-size: 16px; color: #20283a; margin-bottom: 5px; }
.alt-journalist-text p { margin: 0; font-size: 13.5px; line-height: 1.6; color: #3d4658; max-width: 560px; }
.alt-journalist-text p strong { color: #20283a; }
.alt-journalist-text a { color: #537a5c; font-weight: 600; }
.alt-journalist-text a:hover { color: #47694f; }
.alt-journalist-api {
    font-size: 13px; color: #20283a; background: #fafaf8;
    border: 1px solid #b89f70; border-radius: 10px; padding: 9px 14px; white-space: nowrap;
}

@media (max-width: 640px) {
    .alt-toolbar2 { flex-direction: column; align-items: stretch; }
    /* In the column layout the 320px flex-BASIS becomes height — a 320px-tall
       search box (found in the v2.9.1 mobile pass). */
    .alt-search-wrap { flex: none; }
    .alt-sort { justify-content: space-between; }
    .alt-journalist { flex-direction: column; align-items: flex-start; }
    .alt-journalist-api { width: 100%; box-sizing: border-box; overflow-x: auto; }
}

/* ---------------- Filters ---------------- */

.alt-filters-card {
    background: var(--alt-surface);
    border: 1px solid var(--alt-border);
    border-radius: 12px;
    box-shadow: var(--alt-shadow);
    margin: 0 0 22px;
    overflow: hidden;
}
.alt-filters-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 13px 18px;
    border-bottom: 1px solid var(--alt-grid);
    background: var(--alt-surface-2);
}
.alt-filters-title { font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: var(--alt-ink-2); }
.alt-filters {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
    gap: 14px 18px;
    padding: 18px;
}
.alt-filter { display: flex; flex-direction: column; gap: 5px; }
.alt-filter > label {
    font-size: 11px;
    font-weight: 700;
    color: var(--alt-muted);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
.alt-filter input[type="text"],
.alt-filter input[type="number"],
.alt-filter input[type="date"],
.alt-filter select {
    font-size: 14px;
    padding: 8px 10px;
    border: 1px solid var(--alt-grid);
    border-radius: 8px;
    background: #fff;
    color: var(--alt-ink);
    width: 100%;
    box-sizing: border-box;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.alt-filter input:focus,
.alt-filter select:focus {
    outline: none;
    border-color: var(--alt-blue);
    box-shadow: 0 0 0 3px var(--alt-blue-tint);
}
.alt-filter select[multiple] { min-height: 90px; padding: 4px; }
.alt-filter-toggle { justify-content: flex-end; }
.alt-filter-toggle label {
    font-size: 14px;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--alt-ink);
    cursor: pointer;
    padding: 8px 0;
}
.alt-filter-toggle input { width: 16px; height: 16px; accent-color: var(--alt-red); }

/* ---------------- Table ---------------- */

.alt-table-scroll { overflow-x: auto; max-width: 100%; border-radius: 12px; -webkit-overflow-scrolling: touch; }
.alt-tracker-wrap .dataTables_wrapper { max-width: 100%; min-width: 0; }
.alt-tracker-wrap table.dataTable {
    font-size: 14px;
    border-collapse: separate;
    border-spacing: 0;
    width: 100%;
}
.alt-tracker-wrap table.dataTable thead th {
    color: var(--alt-ink-2);
    font-size: 11.5px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    background: var(--alt-surface-2);
    border-bottom: 1px solid var(--alt-grid);
    padding: 11px 12px;
    white-space: nowrap;
}
.alt-tracker-wrap table.dataTable tbody td {
    border-bottom: 1px solid var(--alt-grid);
    padding: 11px 12px;
    vertical-align: top;
}
.alt-tracker-wrap table.dataTable tbody tr { transition: background 0.1s ease; }
.alt-tracker-wrap table.dataTable tbody tr:hover { background: var(--alt-blue-tint); }
.alt-tracker-wrap table.dataTable tbody tr:hover td { background: transparent; }

.alt-ticker {
    display: inline-block;
    font-size: 10.5px;
    font-weight: 600;
    color: var(--alt-muted);
    background: var(--alt-surface-2);
    border: 1px solid var(--alt-grid);
    border-radius: 4px;
    padding: 0 5px;
    margin-left: 3px;
    vertical-align: middle;
}

.alt-tag {
    display: inline-block;
    font-size: 11px;
    font-weight: 500;
    background: var(--alt-surface-2);
    color: var(--alt-ink-2);
    border: 1px solid var(--alt-grid);
    border-radius: 20px;
    padding: 2px 9px;
    margin: 1px 3px 1px 0;
    white-space: nowrap;
}

.alt-badge {
    display: inline-block;
    font-size: 10.5px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    border-radius: 5px;
    padding: 3px 8px;
}
.alt-badge-gold   { background: #fdf3d7; color: #7a5600; border: 1px solid #e9c65a; }
.alt-badge-warn   { background: #e4f0e4; color: #206020; border: 1px solid #9cc79c; }
.alt-badge-silver { background: #eef0f3; color: #52555c; border: 1px solid #ccd0d6; }
.alt-badge-bronze { background: #f7ebe1; color: #7a4a2b; border: 1px solid #dcb592; }

.alt-state {
    display: inline-block; font-size: 10.5px; font-weight: 700; letter-spacing: 0.03em;
    color: var(--alt-ink-2); background: var(--alt-surface-2);
    border: 1px solid var(--alt-grid); border-radius: 4px; padding: 0 5px; margin-left: 4px;
    vertical-align: middle;
}

/* Future-effective WARN filings: planned, not yet happened */
.alt-upcoming {
    display: inline-block; font-size: 10px; font-weight: 700; letter-spacing: 0.04em;
    text-transform: uppercase; color: #7a5600; background: #fdf3d7;
    border: 1px solid #e9c65a; border-radius: 4px; padding: 0 5px; margin-left: 5px;
    vertical-align: middle;
}

/* The date and its planned/announced state are one data point. Grouping the
   badges prevents a narrow DataTables cell from orphaning a state badge below
   the date and making the whole row look broken on mobile. */
.alt-date-cell {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-width: max-content;
    white-space: nowrap;
}
.alt-date-badges {
    display: inline-flex;
    align-items: center;
    gap: 4px;
}
.alt-date-cell .alt-upcoming { margin-left: 0; }

.alt-ai-yes {
    display: inline-block;
    font-size: 10px;
    font-weight: 800;
    background: var(--alt-red);
    color: #fff;
    border-radius: 4px;
    padding: 2px 6px;
    letter-spacing: 0.06em;
}

.alt-tracker-wrap table.dataTable a { color: var(--alt-blue); text-decoration: none; }
.alt-tracker-wrap table.dataTable a:hover { text-decoration: underline; }

.alt-tracker-foot {
    margin: 16px 2px 0;
    font-size: 13px;
    color: var(--alt-muted);
    line-height: 1.55;
}
.alt-tracker-foot code {
    background: var(--alt-surface-2);
    border: 1px solid var(--alt-grid);
    border-radius: 5px;
    padding: 1px 6px;
    font-size: 12px;
    word-break: break-all;
}

/* Intro line + secondary stat strip */
.alt-intro {
    font-size: 15px;
    color: var(--alt-ink-2);
    margin: 0 0 16px;
    max-width: 660px;
    line-height: 1.5;
}
.alt-stats-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 22px;
    margin: -14px 0 26px;
    font-size: 14px;
    color: var(--alt-muted);
}
.alt-stats-meta strong { color: var(--alt-ink); font-variant-numeric: tabular-nums; }

/* Verification legend */
.alt-legend {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 16px;
    margin: 0 2px 12px;
    font-size: 13px;
    color: var(--alt-ink-2);
}
.alt-legend-item { display: inline-flex; align-items: center; gap: 6px; }
.alt-legend-hint { margin-left: auto; color: var(--alt-muted); font-style: italic; }

/* Expandable row detail */
.alt-tracker-wrap table.dataTable tbody tr { cursor: pointer; }
.alt-tracker-wrap table.dataTable tbody tr.alt-row-open { background: var(--alt-blue-tint); }
.alt-detail {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 14px 22px;
    padding: 14px 16px;
    background: var(--alt-surface-2);
    border-left: 3px solid var(--alt-blue);
    cursor: default;
}
.alt-detail-block p, .alt-detail-block > div { margin: 0; font-size: 13.5px; color: var(--alt-ink); line-height: 1.5; }
.alt-detail-h {
    display: block;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--alt-muted);
    margin-bottom: 4px;
}
.alt-detail-quote { grid-column: 1 / -1; }
.alt-detail-quote blockquote {
    margin: 0;
    padding: 9px 14px;
    border-left: 3px solid var(--alt-red);
    background: var(--alt-red-tint);
    font-style: italic;
    font-size: 15px;
    color: var(--alt-ink);
    border-radius: 0 6px 6px 0;
}

@media (max-width: 600px) {
    .alt-legend-hint { margin-left: 0; flex-basis: 100%; }
}

/* DataTables built-in controls */
.alt-tracker-wrap .dataTables_wrapper .dataTables_filter input,
.alt-tracker-wrap .dataTables_wrapper .dataTables_length select {
    border: 1px solid var(--alt-grid);
    border-radius: 8px;
    padding: 6px 10px;
    font-size: 14px;
    color: var(--alt-ink);
}
.alt-tracker-wrap .dataTables_wrapper .dataTables_filter input:focus {
    outline: none; border-color: var(--alt-blue); box-shadow: 0 0 0 3px var(--alt-blue-tint);
}
.alt-tracker-wrap .dataTables_wrapper .dataTables_filter,
.alt-tracker-wrap .dataTables_wrapper .dataTables_length,
.alt-tracker-wrap .dataTables_wrapper .dataTables_info,
.alt-tracker-wrap .dataTables_wrapper .dataTables_paginate { font-size: 13px; color: var(--alt-ink-2); margin-top: 12px; }
.alt-tracker-wrap .dataTables_wrapper .paginate_button {
    border-radius: 7px !important;
    padding: 5px 11px !important;
    border: 1px solid transparent !important;
}
.alt-tracker-wrap .dataTables_wrapper .paginate_button.current {
    background: var(--alt-blue) !important;
    border-color: var(--alt-blue) !important;
    color: #fff !important;
}
.alt-tracker-wrap .dataTables_wrapper .paginate_button:hover {
    background: var(--alt-surface-2) !important;
    border-color: var(--alt-grid) !important;
    color: var(--alt-ink) !important;
}

@media (max-width: 600px) {
    .alt-toolbar { flex-direction: column; align-items: stretch; }
    .alt-toolbar-actions { justify-content: stretch; }
    .alt-toolbar-actions .alt-btn { flex: 1; justify-content: center; }
    .alt-stat-value { font-size: 30px; }
}

/* ---------------- Charts / dashboard ---------------- */

.alt-chart-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}
.alt-chart-card {
    background: var(--alt-surface);
    border: 1px solid var(--alt-border);
    border-radius: 12px;
    padding: 18px 20px;
    box-shadow: var(--alt-shadow);
    min-width: 0;
}
.alt-chart-card-wide { grid-column: 1 / -1; }
.alt-overview { margin: 0 0 24px; }
.alt-overview-hint { font-size: 13px; color: var(--alt-muted); margin: 0 2px 10px; }

/* Active cross-filter chips (chart click ⇄ table) */
.alt-active-filters {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin: 0 0 14px;
}
.alt-af-label { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; color: var(--alt-muted); }
.alt-af-chip {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: 13px;
    font-weight: 600;
    color: #fff;
    background: var(--alt-blue);
    border: 1px solid var(--alt-blue);
    border-radius: 20px;
    padding: 5px 12px;
    cursor: pointer;
    line-height: 1.2;
}
.alt-af-chip:hover { background: var(--alt-blue-dark); border-color: var(--alt-blue-dark); }
.alt-af-chip span { font-size: 11px; opacity: 0.85; }
.alt-af-clear {
    font-size: 13px;
    font-weight: 600;
    color: var(--alt-blue);
    background: none;
    border: none;
    cursor: pointer;
    padding: 5px 6px;
    text-decoration: underline;
}
.alt-af-clear:hover { color: var(--alt-blue-dark); }

/* Period selector (All time / year / quarter / month). Literal color values,
   not vars, so the selected pill can never render white-on-white if the CSS
   custom properties are missing (e.g. a stale optimized stylesheet). */
.alt-period { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0 0 18px; }
.alt-period-years { display: flex; flex-wrap: wrap; gap: 6px; }
.alt-period-btn {
    font-size: 13px; font-weight: 600; color: #4a4d55;
    background: #ffffff; border: 1px solid #e2e3e8;
    border-radius: 20px; padding: 6px 14px; cursor: pointer; line-height: 1.2;
    font-variant-numeric: tabular-nums;
    transition: background .15s ease, color .15s ease, border-color .15s ease, box-shadow .15s ease;
}
.alt-period-btn:hover { border-color: #2a78d6; color: #2a78d6; }
.alt-period-on, .alt-period-on:hover {
    background: #2a78d6; border-color: #2a78d6; color: #ffffff;
    box-shadow: 0 1px 3px rgba(42, 120, 214, .35);
}
.alt-period select {
    font-size: 13px; padding: 6px 10px; border: 1px solid #e7e8ec;
    border-radius: 8px; background: #fff; color: #16181d; cursor: pointer;
}
.alt-period select:disabled { opacity: .45; cursor: not-allowed; }

/* Count line above the table */
.alt-table-count { font-size: 13px; color: var(--alt-muted); margin: 0 2px 8px; font-variant-numeric: tabular-nums; }
.alt-chart-card h3,
.alt-chart-card .alt-chart-h { margin: 0 0 14px; font-size: 15px; font-weight: 700; color: var(--alt-ink); }
.alt-chart-sub { font-size: 12px; font-weight: 400; color: #3f6147; margin-left: 6px; }
.alt-chart-box { position: relative; height: 260px; }
.alt-chart-box-tall { height: 320px; }

@media (max-width: 720px) {
    .alt-chart-grid { grid-template-columns: 1fr; }
    .alt-chart-box, .alt-chart-box-tall { height: 240px; }
}

.alt-leaderboard { overflow-x: auto; }
.alt-plain-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.alt-plain-table th {
    text-align: left; color: var(--alt-ink-2); font-size: 11.5px; font-weight: 700;
    text-transform: uppercase; letter-spacing: 0.04em;
    border-bottom: 1px solid var(--alt-grid); padding: 8px 10px;
}
.alt-plain-table td { border-bottom: 1px solid var(--alt-grid); padding: 9px 10px; vertical-align: top; }

/* ---------------- AI tracker ---------------- */

.alt-hero {
    text-align: center;
    padding: 40px 20px 34px;
    margin: 8px 0 24px;
    background: linear-gradient(180deg, var(--alt-red-tint), var(--alt-surface) 70%);
    border: 1px solid var(--alt-border);
    border-radius: 16px;
    box-shadow: var(--alt-shadow);
}
.alt-hero-value { display: block; font-size: 60px; font-weight: 800; line-height: 1.02; letter-spacing: -0.03em; color: var(--alt-red); font-variant-numeric: tabular-nums; }
.alt-hero-label { display: block; margin-top: 8px; font-size: 16px; color: var(--alt-ink-2); }
.alt-hero-sub { display: block; margin-top: 4px; font-size: 13px; color: var(--alt-muted); }

.alt-quote-wall { min-height: 180px; display: flex; flex-direction: column; justify-content: center; transition: opacity 0.3s ease; }
.alt-quote-fading { opacity: 0; }
.alt-quote-wall blockquote {
    margin: 0; font-size: 19px; font-style: italic; line-height: 1.5;
    color: var(--alt-ink); border-left: 3px solid var(--alt-gold); padding-left: 16px;
}
.alt-quote-wall cite { margin-top: 12px; padding-left: 19px; font-size: 13px; font-style: normal; color: var(--alt-muted); }

.alt-company-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.alt-chip {
    font-size: 13px; background: var(--alt-surface-2); border: 1px solid var(--alt-grid);
    border-radius: 20px; padding: 5px 13px; color: var(--alt-ink-2);
}
.alt-chip strong { color: var(--alt-ink); margin-right: 4px; }

/* ---------------- Company history ---------------- */

.alt-company-title { margin-bottom: 4px; }
.alt-company-summary { color: var(--alt-ink-2); font-size: 14px; margin: 0 0 18px; }
.alt-company-history .alt-chart-card { margin-bottom: 22px; }
.alt-company-directory { max-width: 860px; }
.alt-company-directory-total { font-size: 16px; color: var(--alt-ink-2); }
.alt-company-directory-total strong { color: var(--alt-ink); font-size: 24px; font-variant-numeric: tabular-nums; }
.alt-directory-notice { padding: 10px 12px; border: 1px solid #e6c86a; border-radius: 8px; background: #fff9e6; color: #63521b; font-size: 14px; }
.alt-company-event-list { margin: 20px 0; padding-left: 22px; }
.alt-company-event-list > li { margin: 0 0 18px; padding: 0 0 16px; border-bottom: 1px solid var(--alt-grid); }
.alt-company-event-list h2 { margin: 0 0 6px; font-size: 16px; }
.alt-company-event-list p { margin: 0 0 8px; color: var(--alt-ink-2); font-size: 14px; }
.alt-company-source-list { margin: 0; padding-left: 18px; font-size: 13px; }

/* ---------------- Export shortcode ---------------- */

.alt-export-buttons { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.alt-export-note { flex-basis: 100%; font-size: 13px; color: var(--alt-muted); margin: 8px 0 0; }

/* ---------------- Credibility: methodology, citation, single entry ---------------- */

.alt-updated { color: var(--alt-muted); }

.alt-methodology {
    background: var(--alt-surface);
    border: 1px solid var(--alt-border);
    border-radius: 10px;
    margin: 18px 0 0;
    overflow: hidden;
}
.alt-methodology > summary {
    cursor: pointer;
    padding: 13px 16px;
    font-size: 13px;
    font-weight: 700;
    color: var(--alt-ink-2);
    list-style: none;
}
.alt-methodology > summary::-webkit-details-marker { display: none; }
.alt-methodology > summary::before { content: "▸ "; color: var(--alt-muted); }
.alt-methodology[open] > summary::before { content: "▾ "; }
/* FAQ: same card, one details row per question */
.alt-faq { padding: 14px 16px 16px; }
.alt-faq-item { border: 0; border-top: 1px solid var(--alt-border); border-radius: 0; margin: 0; background: none; }
.alt-faq-item:first-of-type { border-top: 0; }
.alt-faq-item > summary { cursor: pointer; padding: 11px 2px; font-size: 14px; font-weight: 600; color: var(--alt-ink); list-style: none; }
.alt-faq-item > summary::-webkit-details-marker { display: none; }
.alt-faq-item > summary::before { content: "▸ "; color: var(--alt-muted); }
.alt-faq-item[open] > summary::before { content: "▾ "; }
/* Section-level details inside the FAQ render as the same flat rows as the
   question items, so the whole list reads as one consistent accordion. */
.alt-faq > .alt-methodology { border: 0; border-top: 1px solid var(--alt-border); border-radius: 0; margin: 0; background: none; overflow: visible; }
.alt-faq > .alt-methodology > summary { padding: 11px 2px; font-size: 14px; font-weight: 600; color: var(--alt-ink); }
.alt-faq > .alt-methodology > .alt-method-body { padding: 2px 2px 14px; }
/* Bulleted list inside a methodology answer (e.g. "where each tracker fits"). */
.alt-method-list { margin: 6px 0 0; padding-left: 18px; }
.alt-method-list li { margin: 0 0 9px; line-height: 1.5; }
/* Click-to-filter links in the headline narrative */
.alt-nfilter { color: inherit; text-decoration: none; border-bottom: 1px dashed rgba(63, 97, 71, 0.5); cursor: pointer; }
.alt-nfilter:hover { border-bottom-style: solid; background: rgba(217, 165, 20, 0.12); }
.alt-faq-item .alt-method-body { padding: 0 2px 12px; }
.alt-methodology[open] > summary { border-bottom: 1px solid var(--alt-grid); }
.alt-method-body { padding: 14px 18px; font-size: 13px; line-height: 1.6; color: var(--alt-ink-2); }
.alt-method-body p { margin: 0 0 10px; }
.alt-method-body p:last-child { margin-bottom: 0; }
.alt-method-body .alt-badge { margin: 0 1px; }
.alt-source-health { overflow-x: auto; margin: 10px 0; }
.alt-source-health table { width: 100%; min-width: 420px; border-collapse: collapse; font-size: 12px; }
.alt-source-health th, .alt-source-health td { padding: 7px 8px; text-align: left; border-bottom: 1px solid var(--alt-grid); }
.alt-source-health th { color: var(--alt-muted); font-size: 11px; text-transform: uppercase; letter-spacing: .04em; }
.alt-health-run-heading { display: flex; gap: 16px; align-items: flex-start; justify-content: space-between; }
.alt-health-run-heading h2 { margin-bottom: 5px; }
.alt-health-run-heading p { margin-top: 0; }
.alt-health-run-heading label { flex: 0 0 auto; color: var(--alt-muted); font-size: 12px; font-weight: 700; }
.alt-health-run-heading select { display: block; margin-top: 4px; min-width: 128px; }
@media (max-width: 600px) { .alt-health-run-heading { display: block; } .alt-health-run-heading label { display: inline-block; margin: 8px 0; } }
.alt-health-src-meta { display: block; margin-top: 2px; color: var(--alt-muted); font-size: .78rem; font-weight: 400; }
.alt-survey-chart { position: relative; height: 470px; margin: 14px 0 6px; }
.alt-source-ok td:nth-child(2) { color: #187449; font-weight: 700; }
.alt-source-running td:nth-child(2) { color: #9a6700; font-weight: 700; }
.alt-source-degraded td:nth-child(2) { color: #a12d2d; font-weight: 700; }
.alt-lead {
    font-size: 15.5px; line-height: 1.6; color: var(--alt-ink);
    margin: 0 0 16px; max-width: none;
    background: #eef4fc; border: 1px solid #c9dcf5; border-left: 4px solid #2a78d6;
    border-radius: 10px; padding: 13px 18px;
}
.alt-lead-text { display: block; }
.alt-lead-links { display: block; margin-top: 5px; font-size: 14px; }
/* Corrections log grows daily, so it scrolls inside a fixed height */
.alt-corrections-scroll {
    max-height: 340px; overflow-y: auto; margin: 0 0 12px; padding: 4px 8px 4px 22px;
    border: 1px solid var(--alt-grid); border-radius: 8px; background: var(--alt-surface-2);
}
.alt-corrections-scroll li { margin: 0 0 9px; }
.alt-corrections-scroll li:last-child { margin-bottom: 0; }

.alt-cite-box {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px 12px;
    background: var(--alt-surface-2);
    border: 1px solid var(--alt-border);
    border-radius: 10px;
    padding: 12px 16px;
    margin: 14px 0 0;
}
.alt-cite-box .alt-detail-h { flex-basis: 100%; }
.alt-cite-box code {
    flex: 1 1 320px;
    font-size: 12.5px;
    color: var(--alt-ink);
    background: none;
    border: none;
    padding: 0;
    line-height: 1.5;
}

/* single entry page */
.alt-single { max-width: 720px; }
.alt-back { font-size: 13px; color: var(--alt-blue); text-decoration: none; }
.alt-back:hover { text-decoration: underline; }
.alt-single-title { margin: 12px 0 4px; font-size: 30px; line-height: 1.15; }
.alt-single-stat { font-size: 16px; color: var(--alt-ink-2); font-variant-numeric: tabular-nums; margin-bottom: 14px; }
.alt-single-meta { display: flex; flex-wrap: wrap; gap: 8px 18px; font-size: 13.5px; color: var(--alt-ink-2); margin-bottom: 22px; align-items: center; }
.alt-single-meta b { color: var(--alt-ink); font-weight: 600; }
.alt-single-block { margin: 0 0 18px; }
.alt-single-block p { margin: 0; font-size: 15px; line-height: 1.6; color: var(--alt-ink); }
.alt-cite code { display: block; background: var(--alt-surface-2); border: 1px solid var(--alt-grid); border-radius: 8px; padding: 10px 12px; font-size: 12.5px; line-height: 1.5; color: var(--alt-ink); margin-top: 4px; }

.alt-error { color: var(--alt-red); }

/* ---------------- Contact form ----------------
   Styled to match the main AskTheRecruiter app's /contact: warm cream
   background, tan borders, 10px radii, olive-green button, small labels,
   single calm column — no card chrome. */

.alt-contact-wrap {
    --atr-bg: #fafaf8;       /* rgb(250,250,248) */
    --atr-ink: #20283a;      /* rgb(32,40,58)    */
    --atr-muted: #5e6675;    /* rgb(94,102,117)  */
    --atr-border: #b89f70;   /* rgb(184,159,112) */
    --atr-green: #537a5c;    /* rgb(83,122,92)   */
    --atr-green-dark: #47694f;
    max-width: 640px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    font-family: "Hanken Grotesk", system-ui, -apple-system, "Segoe UI", sans-serif;
    color: var(--atr-ink);
}
.alt-contact-form { background: none; border: 0; box-shadow: none; padding: 0; }
.alt-contact-grid { display: grid; grid-template-columns: 1fr; gap: 16px; }
.alt-contact-full { grid-column: auto; }
.alt-contact-wrap .alt-filter > label {
    font-size: 12px; font-weight: 500; color: var(--atr-ink);
    text-transform: none; letter-spacing: 0; margin-bottom: 2px;
}
.alt-contact-form input[type="text"],
.alt-contact-form input[type="email"],
.alt-contact-form input[type="url"],
.alt-contact-form input[type="number"],
.alt-contact-form select,
.alt-contact-form textarea {
    font-size: 14px; padding: 8px 12px;
    border: 1px solid var(--atr-border); border-radius: 10px;
    background: var(--atr-bg); color: var(--atr-ink);
    width: 100%; box-sizing: border-box; font-family: inherit;
}
.alt-contact-form textarea { resize: vertical; min-height: 150px; }
.alt-contact-form input:focus,
.alt-contact-form select:focus,
.alt-contact-form textarea:focus {
    outline: none; border-color: var(--atr-green);
    box-shadow: 0 0 0 3px rgba(83, 122, 92, 0.15);
}
.alt-contact-submit { display: flex; flex-direction: column; align-items: flex-start; }
.alt-contact-submit label { display: none; }
.alt-contact-wrap .alt-btn-primary {
    background: var(--atr-green); border-color: var(--atr-green);
    color: #fafaf8; border-radius: 10px; padding: 8px 20px;
    font-size: 14px; font-weight: 600; box-shadow: none;
}
.alt-contact-wrap .alt-btn-primary:hover { background: var(--atr-green-dark); border-color: var(--atr-green-dark); }
.alt-contact-note { margin: 16px 0 0; font-size: 11px; color: var(--atr-muted); line-height: 1.6; }
.alt-contact-note a { color: var(--atr-green); }
.alt-contact-ok { border-color: #b7d3bd; background: #eef4ef; color: #3c5a44; border-radius: 10px; }
.alt-contact-wrap .alt-status-error { border-radius: 10px; }
/* honeypot: visually gone, still in the DOM for bots to fill */
.alt-hp { position: absolute; left: -9999px; top: -9999px; height: 1px; width: 1px; overflow: hidden; }
/* Public operations dashboard: tables scroll locally on narrow screens. */
.alt-health-page{max-width:1180px;margin:0 auto;padding:28px 18px}.alt-health-hero{padding:26px;border:1px solid #d9d2bd;border-radius:14px;background:#faf7ee}.alt-health-hero h1{margin:.2em 0}.alt-eyebrow{text-transform:uppercase;letter-spacing:.08em;font-size:.78em}.alt-health-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:24px 0}.alt-health-summary>div,.alt-health-section{border:1px solid #d9d2bd;border-radius:12px;padding:20px 22px;background:#fff}.alt-health-summary b{display:block;font-size:1.5rem}.alt-health-summary span{font-size:.85rem}.alt-health-section{margin:26px 0}.alt-health-section h2{margin:.1em 0 .45em}.alt-health-section>p{margin:.2em 0 1em}.alt-health-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:26px 0}.alt-health-grid .alt-health-section{margin:0}.alt-health-table-wrap{overflow-x:auto}.alt-health-page table{width:100%;border-collapse:collapse;font-size:.9rem}.alt-health-page th,.alt-health-page td{text-align:left;padding:11px 12px;border-bottom:1px solid #e6e0cf;vertical-align:top;line-height:1.5}.alt-health-status{display:inline-block;border-radius:999px;padding:2px 8px;font-size:.78rem;font-weight:700;text-transform:uppercase}.alt-health-ok,.alt-health-active,.alt-health-complete{background:#dff3df;color:#165d28}.alt-health-degraded,.alt-health-pending_permission{background:#fff0cd;color:#725300}.alt-health-running,.alt-health-in_progress{background:#dcecff;color:#135388}.alt-health-planned{background:#efedf5;color:#5b536b}.alt-health-schedule{padding-left:20px}.alt-health-schedule li{margin:.65em 0}.alt-health-links{font-size:.9rem}.alt-feature-list-heading{display:flex;justify-content:space-between;gap:24px;align-items:flex-end;margin-bottom:14px}.alt-feature-list-heading h2{margin:.15em 0 0}.alt-feature-list-heading>p{max-width:540px;margin:0;color:var(--atr-muted,#625f58)}.alt-feature-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.alt-feature-grid article{border:1px solid #e6e0cf;border-radius:10px;padding:14px;background:#fcfbf8}.alt-feature-grid h3{font-size:1rem;margin:.7em 0 .35em}.alt-feature-grid p{margin:0;font-size:.9rem;line-height:1.5}@media(max-width:700px){.alt-health-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.alt-health-grid,.alt-feature-grid{grid-template-columns:minmax(0,1fr)}.alt-health-hero{padding:18px}.alt-feature-list-heading{display:block}.alt-feature-list-heading>p{margin-top:10px}}@media(max-width:420px){.alt-health-summary{grid-template-columns:minmax(0,1fr)}}
/* Mobile guards: a bare 1fr grid track has an auto minimum, so one long word
   or URL can push a column past the viewport and clip the page (seen live on
   iPhone). minmax(0,1fr) above removes the auto minimum; these keep any
   future overflow contained instead of shifting the page borders. */
.alt-health-page{overflow-x:clip}
.alt-health-toc{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 4px}
.alt-health-toc a{display:inline-block;padding:6px 12px;border:1px solid #d9d2bd;border-radius:999px;background:#fff;font-size:13px;font-weight:600;text-decoration:none;color:inherit}
.alt-health-toc a:hover{background:#faf7ee;border-color:#c4ba9c}
.alt-health-page section{scroll-margin-top:80px}
.alt-bench-group th{background:#faf7ee;font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:#6b6345;padding-top:14px}
.alt-bench-grouphead{border-left:2px solid #e6e0cf;font-size:12px;text-transform:uppercase;letter-spacing:.05em}
.alt-bench-table td:nth-child(4){border-right:2px solid #e6e0cf}
.alt-bench-table td:nth-child(7){border-right:2px solid #e6e0cf}
.alt-pct-good{color:#187449;font-weight:800}
.alt-pct-mid{color:#9a6700;font-weight:800}
.alt-pct-low{color:#a12d2d;font-weight:800}
.alt-feature-grid article,.alt-health-summary>div{overflow-wrap:break-word;min-width:0}
/* Hide any theme-injected table of contents on plugin surfaces (the PHP
   filter suppresses generation; this covers cached pages until they expire). */
.entry-content:has(.alt-wrap) #ez-toc-container,
.entry-content:has(.alt-quarterly-report) #ez-toc-container{display:none}
/* The theme stacks global padding three levels deep, squeezing our content
   to ~220px on a 375px phone. On small screens the plugin surfaces break out
   to the full viewport so cards and tables get real width back. */
@media (max-width: 700px) {
    .alt-wrap, .alt-quarterly-report {
        width: 100vw;
        max-width: 100vw;
        margin-left: calc(50% - 50vw);
        margin-right: calc(50% - 50vw);
        padding-left: 14px;
        padding-right: 14px;
        box-sizing: border-box;
    }
}
.alt-widget-builder-controls,.alt-widget-builder-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:end;margin:12px 0}.alt-widget-builder label{display:grid;gap:5px;font-size:.9rem;font-weight:650}.alt-widget-builder select{min-width:170px;padding:7px;border:1px solid #cfc8b7;border-radius:6px;background:#fff}.alt-widget-builder textarea{display:block;width:100%;margin:6px 0 0;padding:9px;border:1px solid #cfc8b7;border-radius:6px;background:#faf9f5;font:12px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace;resize:vertical}.alt-widget-builder-actions a{font-size:.9rem}.alt-widget-builder #alt-widget-builder-note,.alt-widget-builder #alt-widget-copy-status{font-size:.85rem;color:#5f625d}.alt-widget-builder #alt-widget-copy-status{min-height:1.2em;margin:4px 0 0}

/* Immutable, query-backed quarterly research reports. */
.alt-quarterly-report{max-width:1080px;margin:0 auto;padding:28px 18px;color:var(--alt-ink,#20283a)}.alt-report-hero{padding:28px;border:1px solid #d9d2bd;border-radius:14px;background:#faf7ee}.alt-report-hero h1{margin:.2em 0}.alt-report-alert,.alt-report-note{padding:13px 15px;border-radius:10px;line-height:1.55}.alt-report-alert{margin:16px 0;background:#fff3d6;border:1px solid #e8c969}.alt-report-note{background:#f7f6f2;border:1px solid #e6e0cf}.alt-report-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:14px 0}.alt-report-metrics article{border:1px solid #d9d2bd;border-radius:12px;padding:18px;background:#fff}.alt-report-metrics strong{display:block;font-size:1.8rem;font-variant-numeric:tabular-nums}.alt-report-metrics span{display:block;font-weight:700;margin:.35em 0}.alt-report-metrics small{color:var(--alt-ink-2,#625f58)}.alt-report-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:22px 0}.alt-report-grid>div,.alt-quarterly-report>section{margin:18px 0}.alt-report-grid>div{padding:16px;border:1px solid #e6e0cf;border-radius:12px;background:#fff}.alt-report-grid h2,.alt-quarterly-report>section h2{font-size:1.1rem;margin:.1em 0 .8em}.alt-report-table{width:100%;border-collapse:collapse;font-size:.9rem}.alt-report-table th,.alt-report-table td{text-align:left;padding:8px;border-bottom:1px solid #eee9dd;vertical-align:top}.alt-report-table td{font-variant-numeric:tabular-nums}@media(max-width:760px){.alt-report-metrics,.alt-report-grid{grid-template-columns:1fr}.alt-quarterly-report{padding:18px 12px}.alt-report-hero{padding:20px}}
@media print{.alt-quarterly-report{max-width:none;padding:0}.alt-report-hero,.alt-report-metrics article,.alt-report-grid>div{border-color:#999;background:#fff}.alt-report-alert{border-color:#999;background:#fff}}

/* Announced-to-verified conversion card: a standalone full-width chart card
   sitting beside the Survey comparison, outside the chart grid. */
.alt-conversion-card { margin: 0 0 16px; }
.alt-conversion-card .alt-chart-box { height: 250px; }
.alt-conversion-card .alt-chart-sub { max-width: 62em; }
#alt-conversion-note { margin: 10px 0 0; font-size: 12px; }

/* Column sorting is live on 7 columns; make it visible and inviting. */
#alt-table thead th.sorting, #alt-table thead th.sorting_asc, #alt-table thead th.sorting_desc { cursor: pointer; position: relative; padding-right: 20px; }
#alt-table thead th.sorting::after { content: '\2195'; position: absolute; right: 6px; opacity: .35; }
#alt-table thead th.sorting_asc::after { content: '\2191'; position: absolute; right: 6px; opacity: 1; color: #0072B2; }
#alt-table thead th.sorting_desc::after { content: '\2193'; position: absolute; right: 6px; opacity: 1; color: #0072B2; }
/* Expanded bar cards show the long tail and scroll instead of truncating. */
.alt-expanded .alt-barlist { max-height: 55vh; overflow-y: auto; padding-right: 4px; }

/* ==== Monthly / yearly one-pager report ============================== */
.alt-report-page { --op-green: #4f7257; }
.alt-report-tabs { margin: 0 0 16px; }
.alt-report-tabrow { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-bottom: 7px; }
.alt-report-tablabel { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--alt-muted); margin-right: 6px; min-width: 42px; }
.alt-report-tab { font-size: 13px; font-weight: 600; color: var(--alt-ink-2); text-decoration: none; padding: 4px 10px; border: 1px solid var(--alt-border); border-radius: 7px; background: #fff; }
.alt-report-tab:hover { border-color: var(--op-green); color: var(--op-green); }
.alt-report-tab.on { background: var(--op-green); border-color: var(--op-green); color: #fff; }
/* The one-pager card: constrained width so it reads as a page, not a dashboard. */
.alt-onepager { max-width: 760px; margin: 0 auto; background: #fff; border: 1px solid var(--alt-border); border-radius: 12px; box-shadow: var(--alt-shadow); padding: 26px 30px 22px; }
.alt-op-masthead { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 14px; border-bottom: 2px solid var(--op-green); padding-bottom: 10px; margin-bottom: 18px; }
.alt-op-brand { display: inline-flex; align-items: center; gap: 8px; font-weight: 800; font-size: 16px; color: var(--alt-ink); }
.alt-op-brand .alt-brand-mark { width: 30px; height: 30px; border-radius: 8px; font-size: 13px; }
.alt-op-period { font-weight: 700; color: var(--op-green); }
.alt-op-asof { margin-left: auto; font-size: 12px; color: var(--alt-muted); }
.alt-op-headline { text-align: center; margin: 6px 0 16px; }
.alt-op-big { font-size: 58px; font-weight: 900; line-height: 1; color: var(--alt-ink); font-variant-numeric: tabular-nums; }
.alt-op-biglabel { font-size: 16px; font-weight: 700; color: var(--alt-ink-2); margin-top: 6px; }
.alt-op-delta { display: inline-block; font-size: 13px; font-weight: 800; padding: 1px 8px; border-radius: 20px; margin-left: 6px; }
.alt-op-delta.up { color: #b02a1a; background: #fdeeea; }
.alt-op-delta.down { color: #1f7a4d; background: #e9f6ef; }
.alt-op-sub { font-size: 13.5px; color: var(--alt-ink-2); margin-top: 8px; }
.alt-op-survey { background: var(--alt-surface-2); border: 1px solid var(--alt-border); border-radius: 9px; padding: 10px 14px; font-size: 13.5px; margin: 0 0 18px; }
.alt-op-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; margin-bottom: 18px; }
@media (max-width: 620px) { .alt-op-grid { grid-template-columns: 1fr; } }
.alt-op-block h3 { font-size: 13px; text-transform: uppercase; letter-spacing: .05em; color: var(--alt-muted); margin: 0 0 8px; }
.alt-op-table { width: 100%; border-collapse: collapse; }
.alt-op-table td { padding: 6px 0; border-bottom: 1px solid var(--alt-grid); font-size: 14px; }
.alt-op-co { color: var(--alt-ink); }
.alt-op-num { text-align: right; font-weight: 800; font-variant-numeric: tabular-nums; white-space: nowrap; padding-left: 12px; }
.alt-op-bar { display: grid; grid-template-columns: 1fr; gap: 3px; margin-bottom: 9px; }
.alt-op-barname { font-size: 13.5px; color: var(--alt-ink); }
.alt-op-bartrack { height: 9px; background: var(--alt-grid); border-radius: 5px; overflow: hidden; }
.alt-op-barfill { display: block; height: 100%; background: var(--op-green); border-radius: 5px; }
.alt-op-barval { font-size: 12.5px; font-weight: 700; color: var(--alt-ink-2); font-variant-numeric: tabular-nums; }
.alt-op-footer { border-top: 1px solid var(--alt-border); padding-top: 12px; font-size: 12px; line-height: 1.55; color: var(--alt-ink-2); }
.alt-op-footer p { margin: 0 0 6px; }

.alt-report-star { font-weight: 800; color: #b8860b; }
.alt-report-star:hover { color: #8a6508; }
/* Survey box in World mode: visually demoted (it's a US-only aside, not a
   global comparison), with an explicit "(US only)" tag so scopes can't be mixed. */
.alt-op-survey-aside { font-size: 12.5px; background: #fff; border-style: dashed; color: var(--alt-ink-2); }
.alt-op-usonly { font-weight: 600; color: var(--alt-muted); font-size: 11px; text-transform: uppercase; letter-spacing: .03em; }

/* Report prev/next + export bar */
.alt-report-nav { display: flex; align-items: center; justify-content: space-between; gap: 12px; max-width: 720px; margin: 0 auto 14px; }
.alt-report-pn { font-weight: 600; color: var(--op-green, #4f7257); text-decoration: none; font-size: 14px; white-space: nowrap; }
.alt-report-pn:hover { text-decoration: underline; }
.alt-report-pn-next { text-align: right; }
.alt-report-exports { display: flex; gap: 8px; }
.alt-report-exports .alt-btn { padding: 6px 12px; font-size: 13px; }
.alt-report-png[disabled] { opacity: .6; cursor: progress; }

/* Year-in-review month-by-month bars + AI badge */
.alt-op-yearbars { grid-column: 1 / -1; margin-bottom: 6px; }
.alt-op-barai { color: var(--op-green, #4f7257); font-weight: 700; font-size: 11px; margin-left: 4px; }

/* Report archive / index */
.alt-report-archive { max-width: 900px; }
.alt-arch-intro { color: var(--alt-ink-2); margin: 4px 0 18px; }
.alt-arch-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 20px 28px; margin-bottom: 22px; }
.alt-arch-col h3 { margin: 0 0 8px; font-size: 17px; }
.alt-arch-col h3 a { text-decoration: none; color: var(--alt-ink); }
.alt-arch-col h3 a:hover { color: var(--op-green, #4f7257); }
.alt-arch-year-tag { font-size: 12px; font-weight: 600; color: var(--op-green, #4f7257); white-space: nowrap; }
.alt-arch-months { list-style: none; margin: 0; padding: 0; columns: 2; column-gap: 16px; }
.alt-arch-months li { margin: 0 0 4px; break-inside: avoid; }
.alt-arch-months a { text-decoration: none; color: var(--alt-ink-2); font-size: 14px; }
.alt-arch-months a:hover { color: var(--op-green, #4f7257); text-decoration: underline; }

/* Print → clean one-pager PDF: hide everything but the card. */
@media print {
  body * { visibility: hidden !important; }
  #alt-report-card, #alt-report-card * { visibility: visible !important; }
  #alt-report-card { position: absolute; left: 0; top: 0; width: 100%; box-shadow: none !important; border: none !important; margin: 0 !important; }
  .alt-report-tabs, .alt-report-nav { display: none !important; }
  @page { margin: 12mm; }
}

/* Sources: WARN registry table cadence column */
.alt-warn-table td:first-child { white-space: nowrap; }
.alt-warn-cadence { white-space: nowrap; color: var(--alt-ink-2); font-size: 12.5px; font-weight: 600; }
.alt-sources-table a { word-break: break-word; }

/* Sources: gap-state table + status pills */
.alt-gap-table td { vertical-align: top; line-height: 1.5; }
.alt-gap-table td:first-child { white-space: nowrap; }
.alt-gap-status { display: inline-block; padding: 2px 9px; border-radius: 999px; font-size: 11.5px; font-weight: 700; white-space: nowrap; line-height: 1.5; }
.alt-gap-progress { background: #e7f3ec; color: #2f6b45; }
.alt-gap-none { background: #f3f0e8; color: #8a6d3b; }

/* Press: table of contents + soundbite group titles */
.alt-press-toc { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; margin: 14px 0 4px; padding: 12px 14px; border: 1px solid var(--alt-grid); border-radius: 10px; background: var(--alt-surface-2); font-size: 14px; }
.alt-press-toc .alt-toc-label { font-weight: 700; text-transform: uppercase; letter-spacing: .04em; font-size: 11px; color: var(--alt-muted); }
.alt-press-toc a { color: var(--op-green, #4f7257); text-decoration: none; }
.alt-press-toc a:hover { text-decoration: underline; }
.alt-verify-cta { margin: 12px 0 4px; padding: 12px 16px; border: 1px solid var(--alt-blue); border-left-width: 4px; border-radius: 10px; background: var(--alt-blue-tint); font-size: 15px; }
.alt-verify-cta a { color: var(--alt-blue-dark); text-decoration: none; }
.alt-verify-cta a:hover { text-decoration: underline; }
.alt-verify-cta a:focus-visible { outline: 2px solid var(--alt-blue); outline-offset: 3px; }
.alt-sb-grouptitle { margin: 22px 0 8px; font-size: 16px; scroll-margin-top: 80px; }
.alt-sb-disclaimer { margin: 4px 0 18px; padding: 11px 14px; border: 1px solid var(--alt-border); border-left: 3px solid var(--alt-gold); border-radius: 8px; background: var(--alt-surface-2); font-size: 13px; line-height: 1.5; color: var(--alt-ink-2); }
.alt-sb-disclaimer b { color: var(--alt-ink); }

/* Press: data-backed soundbites */
.alt-soundbites { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 14px; margin: 12px 0 6px; }
.alt-soundbite { margin: 0; border: 1px solid var(--alt-grid); border-left: 4px solid var(--op-green, #4f7257); border-radius: 10px; padding: 12px 14px; background: var(--alt-surface-2); display: flex; flex-direction: column; }
.alt-sb-label { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--alt-muted); }
.alt-sb-text { margin: 6px 0 10px; font-size: 15px; line-height: 1.5; color: var(--alt-ink); border: 0; padding: 0; font-style: normal; }
.alt-sb-actions { display: flex; align-items: center; gap: 12px; margin: auto 0 0; }
.alt-sb-link { font-size: 13px; font-weight: 600; color: var(--op-green, #4f7257); text-decoration: none; white-space: nowrap; }
.alt-sb-link:hover { text-decoration: underline; }

/* Press kit tables: right-aligned numbers, tidy angle table. */
.alt-press-table td.num, .alt-press-table th.num { text-align: right; font-variant-numeric: tabular-nums; }

/* Press page: readable body + cleaner tables */
.alt-press-page { font-size: 15.5px; line-height: 1.62; }
.alt-press-page h1 { font-size: 30px; }
.alt-press-page h2 { font-size: 21px; margin: 30px 0 10px; scroll-margin-top: 80px; }
.alt-press-page h3 { font-size: 16px; }
.alt-press-page p { margin: 0 0 12px; }
.alt-press-page table { width: 100%; border-collapse: collapse; font-size: 14.5px; }
.alt-press-page table th { text-align: left; font-size: 11.5px; text-transform: uppercase; letter-spacing: .04em; color: var(--alt-muted); font-weight: 700; padding: 9px 14px; border-bottom: 2px solid var(--alt-grid); background: var(--alt-surface-2); }
.alt-press-page table td { padding: 10px 14px; border-bottom: 1px solid var(--alt-grid); vertical-align: top; line-height: 1.5; }
.alt-press-page table tbody tr:last-child td { border-bottom: 0; }
.alt-press-page .alt-health-table-wrap { border: 1px solid var(--alt-grid); border-radius: 10px; overflow: hidden; margin: 6px 0 14px; }
.alt-press-page .alt-angles-table td:first-child { width: 34%; }
.alt-angles-table td:first-child { white-space: nowrap; vertical-align: top; }
.alt-angles-table td { line-height: 1.5; }
