.farm-epic-activity {
    --activity-bg: #101611;
    --activity-panel: rgba(246, 241, 226, .94);
    --activity-ink: #17251b;
    --activity-muted: #597263;
    --activity-line: rgba(23, 37, 27, .16);
    --activity-ready: #2e7d46;
    --activity-locked: #8a5c22;
    min-height: 100dvh;
    display: grid;
    grid-template-rows: auto minmax(0, 1fr) auto;
    gap: 14px;
    padding: 14px;
    color: var(--activity-ink);
    background:
        linear-gradient(90deg, rgba(0, 0, 0, .24), rgba(0, 0, 0, 0)),
        radial-gradient(circle at 20% 10%, rgba(216, 167, 53, .20), transparent 26rem),
    #101611;
    font-family: "Atkinson Hyperlegible", "Segoe UI", system-ui, sans-serif;
}

/* activity Guide + Game Hub presentation language.
   Sprites and key art are image-first; copy belongs beside or below the art. */
.farm-epic-activity {
    --activity-control-min: 48px;
    --activity-focus-halo: 0 0 0 4px rgba(255, 255, 255, .96), 0 0 0 8px rgba(84, 150, 255, .72), 0 18px 44px rgba(13, 29, 65, .26);
    --activity-selected-pulse: rgba(84, 150, 255, .44);
    --activity-guide-blue: #256fdb;
    --activity-guide-accent: #ffe08a;
    --activity-art-bg: #050805;
    --activity-overlay-boundary: #ef476f;
    --activity-overlay-field: #ffd166;
    --activity-overlay-green: #2dc653;
    --activity-overlay-water: #118ab2;
    --activity-overlay-hardscape: #7b2cbf;
    --activity-overlay-base: #52635a;
}

.farm-epic-activity button,
.farm-epic-activity a,
.farm-epic-activity [role="button"],
.farm-epic-activity summary,
.farm-epic-activity input,
.farm-epic-activity select {
    min-height: var(--activity-control-min);
}

.farm-epic-activity button,
.farm-epic-activity a,
.farm-epic-activity [role="button"],
.farm-epic-activity summary {
    touch-action: manipulation;
}

.farm-epic-activity button:focus-visible,
.farm-epic-activity a:focus-visible,
.farm-epic-activity [role="button"]:focus-visible,
.farm-epic-activity summary:focus-visible,
.farm-epic-activity input:focus-visible,
.farm-epic-activity select:focus-visible,
.farm-epic-activity [data-hud-control-key]:focus-within,
.farm-epic-activity [data-action-key]:focus-within {
    outline: 0;
    box-shadow: var(--activity-focus-halo);
}

.farm-epic-activity [aria-pressed="true"],
.farm-epic-activity .active,
.farm-epic-activity .guided-next,
.farm-epic-activity [data-selected="true"],
.farm-epic-activity [data-current="true"] {
    position: relative;
    border-color: rgba(84, 150, 255, .72) !important;
    box-shadow: inset 0 0 0 2px rgba(255, 255, 255, .74), 0 0 0 3px rgba(84, 150, 255, .18);
}

.farm-epic-activity [aria-pressed="true"]::after,
.farm-epic-activity .active::after,
.farm-epic-activity .guided-next::after,
.farm-epic-activity [data-selected="true"]::after,
.farm-epic-activity [data-current="true"]::after {
    content: "";
    position: absolute;
    inset: -5px;
    border: 2px solid var(--activity-selected-pulse);
    border-radius: inherit;
    pointer-events: none;
    animation: activity-selected-pulse 1.8s ease-in-out infinite;
}

@keyframes activity-selected-pulse {
    0%, 100% {
        opacity: .28;
        transform: scale(.992);
    }
    50% {
        opacity: .72;
        transform: scale(1.012);
    }
}

@media (prefers-reduced-motion: reduce) {
    .farm-epic-activity {
        scroll-behavior: auto;
    }

    .farm-epic-activity [aria-pressed="true"]::after,
    .farm-epic-activity .active::after,
    .farm-epic-activity .guided-next::after,
    .farm-epic-activity [data-selected="true"]::after,
    .farm-epic-activity [data-current="true"]::after {
        animation: none !important;
        opacity: .62;
        transform: none;
    }

    .farm-epic-activity .activity-live-map-layer-stack,
    .farm-epic-activity [data-toolbox-focused] {
        transition: none !important;
    }
}

.activity-arc-indicator {
    width: 48px;
    height: 48px;
    justify-self: end;
    align-self: start;
    filter: drop-shadow(0 8px 16px rgba(0, 0, 0, .18));
}

.activity-arc-indicator-track,
.activity-arc-indicator-value {
    fill: none;
    stroke-linecap: round;
    stroke-width: 5;
}

.activity-arc-indicator-track {
    stroke: rgba(23, 37, 27, .16);
}

.activity-arc-indicator-value {
    stroke: var(--activity-guide-blue);
}

.activity-arc-indicator[data-arc-status="locked"] .activity-arc-indicator-value,
.activity-arc-indicator[data-arc-status="blocked"] .activity-arc-indicator-value,
.activity-arc-indicator[data-arc-status="warning"] .activity-arc-indicator-value {
    stroke: #b66a1f;
}

.activity-action,
.activity-hud-card {
    position: relative;
    grid-template-columns: minmax(0, 1fr) auto;
}

.activity-action > :not(.activity-arc-indicator),
.activity-hud-card > :not(.activity-arc-indicator) {
    grid-column: 1;
}

.activity-action .activity-arc-indicator,
.activity-hud-card .activity-arc-indicator {
    grid-column: 2;
    grid-row: 1 / span 2;
}

.activity-key-art-frame,
.activity-sprite-card,
[data-sprite-artwork-rule="box-art"] {
    display: grid;
    grid-template-rows: minmax(128px, 1fr) auto;
    gap: 10px;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, .3);
    border-radius: 8px;
    background: var(--activity-art-bg);
}

.activity-key-art-frame img,
.activity-sprite-card img,
[data-sprite-artwork-rule="box-art"] img {
    display: block;
    width: 100%;
    min-height: 128px;
    object-fit: cover;
}

.activity-key-art-caption,
.activity-sprite-caption,
[data-sprite-text-placement="external"] figcaption {
    padding: 10px 12px;
    color: #f8f5e8;
    background: rgba(5, 8, 5, .92);
    font-weight: 850;
}

.farm-epic-activity small,
.farm-epic-activity .eyebrow,
.farm-epic-activity [class*="small"] {
    font-size: max(.82rem, 13px);
}

.farm-epic-activity .activity-action .activity-action-title,
.farm-epic-activity .activity-hud-card h3,
.farm-epic-activity .activity-toolbox-guide strong {
    font-size: clamp(1.05rem, 1.35vw, 1.35rem);
}

@media (min-width: 981px) {
    .farm-epic-activity {
        padding-top: 18px;
    }
}

.activity-header,
.activity-map,
.activity-terminal,
.activity-entities,
.activity-actions,
.activity-governance article,
.activity-loading {
    border: 1px solid var(--activity-line);
    border-radius: 8px;
    background: var(--activity-panel);
    box-shadow: 0 18px 60px rgba(0, 0, 0, .22);
}

.activity-header {
    display: grid;
    /* The second column holds a flex-wrap badge row (.activity-header dl); an
       unclamped `auto` track sizes to that row's *unwrapped* max-content width,
       which can consume nearly all available space and collapse the title
       column (minmax(0, 1fr)) to 0. Capping it forces the badges to actually
       wrap instead of starving the title. */
    grid-template-columns: minmax(0, 1fr) minmax(0, 480px);
    gap: 18px;
    padding: 18px;
}

.activity-showcase-header {
    align-items: center;
    border-color: rgba(216, 167, 53, .34);
}

.activity-showcase-header h1 {
    font-size: clamp(2rem, 3.4vw, 4rem);
}

.activity-header h1,
.activity-terminal h2,
.activity-governance h2,
.activity-action .activity-action-title {
    margin: 0;
    line-height: 1.05;
}

.activity-header p,
.activity-terminal p,
.activity-action p,
.activity-governance p {
    margin: 8px 0 0;
    color: var(--activity-muted);
}

.activity-header dl,
.activity-action dl {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0;
}

.activity-header dl div,
.activity-action dl div {
    min-width: 76px;
    padding: 8px 10px;
    border: 1px solid var(--activity-line);
    border-radius: 7px;
    background: rgba(23, 37, 27, .05);
}

.activity-stage {
    min-height: 0;
    display: grid;
    grid-template-columns: minmax(640px, 1.95fr) minmax(300px, .68fr) minmax(340px, .74fr);
    gap: 14px;
}

.activity-map,
.activity-terminal,
.activity-entities,
.activity-actions,
.activity-governance article,
.activity-loading {
    padding: 14px;
}

.activity-panel-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 10px;
}

.activity-map {
    min-height: 0;
    display: grid;
    grid-template-rows: auto minmax(0, 1fr) auto;
    gap: 10px;
    border-color: rgba(216, 167, 53, .38);
}

.activity-showcase-callout {
    border: 1px solid rgba(46, 125, 70, .22);
    border-radius: 8px;
    padding: 12px;
    background: rgba(255, 255, 255, .72);
}

.activity-showcase-callout h2,
.activity-showcase-callout p {
    margin: 0;
}

.activity-showcase-callout h2 {
    margin-top: 3px;
    font-size: clamp(1.1rem, 1.8vw, 1.55rem);
}

.activity-showcase-callout p {
    margin-top: 6px;
    color: var(--activity-muted);
    font-weight: 750;
}

.activity-map pre {
    min-height: 0;
    height: 100%;
    max-height: calc(100dvh - 260px);
    overflow: auto;
    margin: 0;
    border-radius: 8px;
    padding: 14px;
    color: #f8f5e8;
    background: #050805;
    font: 12px/1.05 Consolas, "Courier New", monospace;
    letter-spacing: 0;
}

.activity-layer-strip,
.activity-regions,
.activity-chip-grid,
.activity-action-filters,
.activity-method-pill-row,
.activity-mobile-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.activity-layer-strip {
    margin-top: 10px;
}

.activity-mobile-tabs {
    display: none;
}

.activity-loading[data-loaded="true"] .activity-header-loading-cue {
    display: none;
}

.activity-layer-strip span,
.activity-chip-grid span,
.activity-regions button,
.activity-chip-grid button,
.activity-action-filters button,
.activity-mobile-tabs a,
.activity-method-pill-row span,
.activity-method-pill-row a {
    min-height: 40px;
    border: 1px solid var(--activity-line);
    border-radius: 999px;
    padding: 8px 11px;
    color: var(--activity-ink);
    background: rgba(23, 37, 27, .06);
    font: inherit;
    font-weight: 800;
    text-decoration: none;
}

.activity-regions button.primary,
.activity-action-filters button.active,
.activity-mobile-tabs a.active {
    border-color: rgba(46, 125, 70, .55);
    background: rgba(46, 125, 70, .12);
}

.activity-regions small,
.activity-chip-grid small {
    display: block;
    color: var(--activity-muted);
    font-size: .72rem;
    font-weight: 700;
}

.activity-center,
.activity-actions {
    min-height: 0;
    display: grid;
    gap: 14px;
    align-content: start;
}

.activity-season-plan {
    max-block-size: min(14rem, 24dvh);
    overflow: auto;
}

.activity-season-plan > summary,
.activity-season-plan > div,
.activity-season-plan li {
    align-items: center;
    display: flex;
    gap: var(--activity-space-2, 0.5rem);
    justify-content: space-between;
}

.activity-season-plan label {
    display: grid;
    gap: var(--activity-space-1, 0.25rem);
}

.activity-season-plan input {
    inline-size: 100%;
}

.activity-map-controls {
    display: grid;
    gap: 8px;
    margin-top: 10px;
}

.activity-map-controls button {
    min-height: 44px;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 3px;
    border: 1px solid var(--activity-line);
    border-radius: 8px;
    padding: 9px 11px;
    color: var(--activity-ink);
    background: rgba(255, 255, 255, .62);
    text-align: left;
    font: inherit;
    font-weight: 850;
}

.activity-map-controls button.active {
    border-color: rgba(46, 125, 70, .58);
    background: rgba(46, 125, 70, .12);
}

.activity-map-controls small {
    color: var(--activity-muted);
    font-size: .76rem;
    font-weight: 700;
}

.activity-actions {
    max-height: calc(100dvh - 210px);
    overflow: auto;
    border-color: rgba(46, 125, 70, .28);
}

.activity-muted {
    margin: 0;
    color: var(--activity-muted);
    font-size: .86rem;
    font-weight: 700;
}

.activity-action-filters {
    margin: 8px 0 10px;
}

.activity-action {
    display: grid;
    gap: 10px;
    margin-bottom: 10px;
    border: 1px solid var(--activity-line);
    border-left: 5px solid var(--activity-ready);
    border-radius: 8px;
    padding: 12px;
    background: rgba(255, 255, 255, .72);
}

.activity-entity-focus,
.activity-focus-grid .activity-entity-focus-card {
    border: 1px solid var(--activity-line);
    border-radius: 8px;
    padding: 11px;
    background: rgba(255, 255, 255, .58);
}

.activity-entity-focus {
    display: grid;
    gap: 7px;
    margin-top: 12px;
}

.activity-entity-focus h3,
.activity-focus-grid h3 {
    margin: 0;
}

.activity-entity-focus p,
.activity-focus-grid p {
    margin: 0;
    color: var(--activity-muted);
}

.activity-entity-focus small,
.activity-focus-grid small {
    color: #405648;
    font-weight: 750;
}

.activity-focus-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
    gap: 10px;
    margin-top: 10px;
}

.activity-action.locked {
    border-left-color: var(--activity-locked);
}

.activity-action > span,
.eyebrow,
.activity-header dt,
.activity-action dt {
    color: #356344;
    font-size: .72rem;
    font-weight: 900;
    letter-spacing: 0;
    text-transform: uppercase;
}

.activity-action small {
    color: #7a4f13;
    font-weight: 800;
}

.activity-action a {
    width: fit-content;
    min-height: 38px;
    display: inline-grid;
    place-items: center;
    border-radius: 999px;
    padding: 8px 12px;
    color: #fff;
    background: #224f34;
    text-decoration: none;
    font-weight: 850;
}

.activity-governance {
    border: 1px solid rgba(23, 37, 27, .14);
    border-radius: 8px;
    background: rgba(246, 241, 226, .86);
    padding: 12px;
}

.activity-governance > summary {
    min-height: 44px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    cursor: pointer;
    color: var(--activity-ink);
    font-weight: 900;
}

.activity-governance > summary small {
    color: var(--activity-muted);
    font-weight: 760;
}

.activity-governance[open] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}

.activity-governance[open] > summary {
    grid-column: 1 / -1;
}

.activity-hud-frames {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 10px;
}

.activity-hud-frames article,
.activity-why-not {
    border: 1px solid var(--activity-line);
    border-radius: 8px;
    background: rgba(246, 241, 226, .9);
    padding: 12px;
}

.activity-hud-frames h2 {
    margin: 2px 0 0;
    font-size: 1.02rem;
}

.activity-hud-frames p {
    margin: 7px 0 0;
    color: var(--activity-muted);
    font-size: .86rem;
    font-weight: 700;
}

.activity-primary-advice {
    min-height: 40px;
    display: inline-grid;
    place-items: center;
    width: fit-content;
    margin-top: 9px;
    border-radius: 999px;
    padding: 8px 12px;
    color: #fff;
    background: #224f34;
    text-decoration: none;
    font-weight: 850;
    border: 0;
    cursor: pointer;
    font: inherit;
}

.activity-primary-advice:disabled {
    cursor: not-allowed;
    opacity: .62;
}

.activity-workload-details,
.activity-equipment-supply-details {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(82px, 1fr));
    gap: 7px;
    margin-top: 10px;
}

.activity-workload-details article,
.activity-equipment-supply-details article {
    min-width: 0;
    border: 1px solid rgba(23, 37, 27, .14);
    border-radius: 8px;
    padding: 8px;
    background: rgba(255, 255, 255, .56);
}

.activity-workload-details span,
.activity-equipment-supply-details span {
    display: block;
    color: #356344;
    font-size: .68rem;
    font-weight: 900;
    letter-spacing: 0;
    text-transform: uppercase;
}

.activity-workload-details strong,
.activity-equipment-supply-details strong {
    display: block;
    margin-top: 3px;
    color: var(--activity-ink);
    font-size: 1rem;
    line-height: 1.1;
}

.activity-workload-details small,
.activity-equipment-supply-details small {
    display: block;
    margin-top: 2px;
    color: var(--activity-muted);
    font-weight: 800;
}

.activity-mobile-tabs {
    display: none;
}

.activity-why-not {
    display: grid;
    gap: 8px;
    margin-top: 10px;
}

.activity-why-not summary {
    cursor: pointer;
    font-weight: 900;
}

.activity-why-not article {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 4px 8px;
    border-top: 1px solid var(--activity-line);
    padding-top: 8px;
}

.activity-why-not article p {
    grid-column: 1 / -1;
    margin: 0;
    color: var(--activity-muted);
}

.activity-why-not article span {
    min-width: 32px;
    border-radius: 999px;
    background: rgba(138, 92, 34, .13);
    padding: 2px 8px;
    text-align: center;
    font-weight: 900;
}

.activity-why-not article a {
    grid-column: 1 / -1;
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    padding: 8px 10px;
    color: #fff;
    background: #72430f;
    font-weight: 900;
    text-decoration: none;
}

.activity-loading {
    color: var(--activity-ink);
}

.activity-hud-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 10px;
    margin-top: 10px;
}

.activity-hud-card {
    border: 1px solid var(--activity-line);
    border-radius: 8px;
    padding: 11px;
    background: rgba(255, 255, 255, .58);
}

.activity-hud-card span {
    color: #356344;
    font-size: .72rem;
    font-weight: 900;
    letter-spacing: 0;
    text-transform: uppercase;
}

.activity-hud-card h3 {
    margin: 5px 0 0;
}

.activity-hud-card p {
    margin: 7px 0 0;
    color: var(--activity-muted);
}

.activity-hud-card small {
    display: block;
    margin-top: 8px;
    color: #405648;
    font-weight: 750;
}

.activity-showcase {
    display: grid;
    grid-template-columns: minmax(260px, .8fr) minmax(320px, 1.1fr) minmax(320px, 1.2fr);
    gap: 12px;
    border: 1px solid var(--activity-line);
    border-radius: 8px;
    padding: 14px;
    background: rgba(246, 241, 226, .94);
    box-shadow: 0 18px 60px rgba(0, 0, 0, .18);
}

.activity-showcase > article,
.activity-showcase-grid article,
.activity-showcase-steps li,
.activity-showcase-cues button {
    border: 1px solid var(--activity-line);
    border-radius: 8px;
    background: rgba(255, 255, 255, .62);
}

.activity-showcase > article,
.activity-showcase-grid article {
    padding: 12px;
}

.activity-showcase h2,
.activity-showcase h3,
.activity-showcase p {
    margin: 0;
}

.activity-showcase p {
    color: var(--activity-muted);
    font-weight: 720;
}

.activity-showcase-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
}

.activity-showcase-grid span,
.activity-showcase-cues span {
    display: block;
    color: #356344;
    font-size: .72rem;
    font-weight: 900;
    letter-spacing: 0;
    text-transform: uppercase;
}

.activity-showcase-grid strong {
    display: block;
    margin-top: 3px;
    font-size: 1.45rem;
    line-height: 1;
}

.activity-showcase-grid small,
.activity-showcase-steps small,
.activity-showcase-cues small {
    color: #405648;
    font-weight: 760;
}

.activity-showcase-steps {
    display: grid;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.activity-showcase-steps li {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr);
    gap: 10px;
    padding: 10px;
}

.activity-showcase-steps li > span {
    width: 34px;
    height: 34px;
    display: inline-grid;
    place-items: center;
    border-radius: 999px;
    color: #fff;
    background: #224f34;
    font-weight: 900;
}

.activity-showcase-steps strong {
    display: block;
}

.activity-showcase-steps a {
    min-height: 36px;
    display: inline-grid;
    place-items: center;
    width: fit-content;
    margin: 6px 0;
    border-radius: 999px;
    padding: 7px 11px;
    color: #fff;
    background: #224f34;
    text-decoration: none;
    font-weight: 850;
}

.activity-showcase-cues {
    grid-column: 1 / -1;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.activity-showcase-cues button {
    min-height: 44px;
    flex: 1 1 180px;
    padding: 9px 11px;
    color: var(--activity-ink);
    text-align: left;
    font: inherit;
}

.activity-three-year {
    display: grid;
    gap: 12px;
    margin-top: 12px;
}

.activity-three-year-intro {
    border-left: 5px solid #386d4a;
}

.activity-current-gate-command {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    min-height: 44px;
    border-radius: 999px;
    padding: 8px 12px;
    color: #fff;
    background: #224f34;
    font-weight: 900;
    text-decoration: none;
}

.activity-three-year-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.activity-three-year-filters button {
    min-height: 44px;
    border: 1px solid rgba(23, 37, 27, .18);
    border-radius: 999px;
    padding: 8px 12px;
    color: var(--activity-ink);
    background: rgba(255, 255, 255, .76);
    font: inherit;
    font-weight: 850;
}

.activity-three-year-filters button[aria-pressed="true"] {
    border-color: rgba(46, 125, 70, .68);
    color: #174622;
    background: rgba(46, 125, 70, .18);
}

.activity-three-year-gates {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
}

.activity-three-year-gates article {
    display: grid;
    gap: 8px;
    align-content: start;
    min-height: 190px;
    border: 1px solid rgba(23, 37, 27, .16);
    border-radius: 8px;
    background: rgba(255, 255, 255, .72);
    padding: 12px;
}

.activity-three-year-gates article[hidden] {
    display: none;
}

.activity-three-year-gates article[data-three-year-current-gate="true"] {
    border-color: rgba(46, 125, 70, .72);
    box-shadow: 0 0 0 3px rgba(46, 125, 70, .16);
    background: rgba(240, 255, 245, .92);
}

.activity-three-year-gates span {
    color: #386d4a;
    font-size: .74rem;
    font-weight: 900;
    text-transform: uppercase;
}

.activity-gate-evidence {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.activity-gate-evidence span {
    width: auto;
    min-height: 28px;
    border-radius: 999px;
    padding: 5px 8px;
    color: #174622;
    background: rgba(46, 125, 70, .12);
    font-size: .72rem;
    text-transform: none;
}

.activity-gate-evidence span[data-three-year-command-posture="roadmap"] {
    color: #72430f;
    background: rgba(138, 92, 34, .14);
}

.activity-three-year-gates a {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    min-height: 38px;
    border: 1px solid rgba(46, 125, 70, .38);
    border-radius: 999px;
    padding: 7px 10px;
    color: #174622;
    background: rgba(46, 125, 70, .12);
    font-weight: 900;
    text-decoration: none;
}

.activity-readiness-counts {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 8px 0;
}

.activity-readiness-counts div {
    min-width: 82px;
    border: 1px solid rgba(23, 37, 27, .14);
    border-radius: 8px;
    padding: 8px;
    background: rgba(255, 255, 255, .64);
}

.activity-readiness-counts dd {
    margin: 0;
    color: var(--activity-ink);
    font-size: 1.35rem;
    font-weight: 900;
}

.activity-player-reality-actions {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    margin-top: 12px;
}

.activity-player-reality-actions a {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(23, 37, 27, .18);
    border-radius: 8px;
    padding: 10px 12px;
    background: #214e34;
    color: #fff;
    font-size: .92rem;
    font-weight: 900;
    text-decoration: none;
}

.activity-player-reality-actions a[data-player-reality-command="start over"] {
    background: #72430f;
}

@media (max-width: 980px) {
    .farm-epic-activity {
        padding: 10px;
    }

    .activity-header,
    .activity-stage,
    .activity-hud-frames,
    .activity-governance[open],
    .activity-showcase,
    .activity-three-year-gates {
        grid-template-columns: 1fr;
    }

    .activity-header {
        align-items: stretch;
    }

    .activity-header dl {
        width: 100%;
    }

    .activity-header dl div {
        flex: 1 1 110px;
    }

    .activity-showcase-grid,
    .activity-three-year-gates {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .activity-map pre {
        max-height: 52dvh;
        font-size: 9px;
    }

    .activity-actions {
        max-height: none;
    }

    .activity-mobile-tabs {
        position: sticky;
        bottom: 8px;
        z-index: 5;
        display: flex;
        border: 1px solid var(--activity-line);
        border-radius: 999px;
        padding: 8px;
        background: rgba(246, 241, 226, .96);
        box-shadow: 0 18px 48px rgba(0, 0, 0, .28);
    }

    .activity-mobile-tabs a {
        min-height: 44px;
        display: flex;
        flex: 1 1 auto;
        flex-direction: column;
        gap: 2px;
        justify-content: center;
        line-height: 1.05;
        text-align: center;
    }

    .activity-player-reality-actions {
        grid-template-columns: 1fr;
    }
}

/* Current activity player shell styles migrated from Razor; keep page rendering data-only. */
.farm-epic-activity {
        min-height: 100dvh;
        display: grid;
        gap: 14px;
        padding: 14px;
        color: #17251b;
        background: #101611;
        font-family: "Segoe UI", system-ui, sans-serif;
    }

    @media (min-width: 981px) {
        .farm-epic-activity {
            padding-top: 18px;
        }
    }

    .farm-epic-activity .activity-header,
    .farm-epic-activity .activity-map,
    .farm-epic-activity .activity-terminal,
    .farm-epic-activity .activity-entities,
    .farm-epic-activity .activity-support,
    .farm-epic-activity .activity-actions,
    .farm-epic-activity .activity-hud-frames article,
    .farm-epic-activity .activity-showcase,
    .farm-epic-activity .activity-governance {
        border: 1px solid rgba(23, 37, 27, .16);
        border-radius: 8px;
        background: rgba(246, 241, 226, .94);
        box-shadow: 0 18px 60px rgba(0, 0, 0, .22);
        padding: 14px;
    }

    .farm-epic-activity .activity-header {
        display: grid;
        /* See the base .activity-header rule: an unclamped `auto` track lets the
           flex-wrap badge row (dl) demand its unwrapped max-content width and
           collapse the title column to 0. This higher-specificity rule (inside
           @media min-width: 981px) redeclared the same pattern and was actually
           the one winning the cascade - it needs the same cap. */
        grid-template-columns: minmax(0, 1fr) minmax(0, 480px);
        gap: 18px;
        align-items: center;
    }

    .farm-epic-activity .activity-header h1 {
        margin: 0;
        font-size: clamp(1.75rem, 2.8vw, 3rem);
        line-height: 1;
    }

    .farm-epic-activity .activity-stage {
        display: grid;
        grid-template-columns: minmax(640px, 1.95fr) minmax(300px, .68fr) minmax(340px, .74fr);
        gap: 14px;
        min-width: 0;
    }

    .farm-epic-activity .activity-center,
    .farm-epic-activity .activity-actions {
        display: grid;
        gap: 14px;
        align-content: start;
        min-width: 0;
    }

    .farm-epic-activity .activity-map,
    .farm-epic-activity .activity-terminal,
    .farm-epic-activity .activity-entities,
    .farm-epic-activity .activity-support,
    .farm-epic-activity .activity-actions {
        min-width: 0;
    }

    .farm-epic-activity .activity-map {
        min-height: 0;
        display: grid;
        grid-template-rows: auto minmax(420px, 1fr) auto auto auto;
        gap: 10px;
    }

    .farm-epic-activity .activity-map .activity-panel-title {
        order: 0;
    }

    .farm-epic-activity .activity-map .activity-live-map {
        order: 1;
    }

    .farm-epic-activity .activity-map .activity-map-view-menu {
        order: 2;
    }

    .farm-epic-activity .activity-map .activity-layer-status,
    .farm-epic-activity .activity-map .activity-map-bound-slot-status {
        order: 3;
    }

    .farm-epic-activity .activity-map .activity-map-journey {
        order: 4;
    }

    .farm-epic-activity .activity-live-map {
        min-height: 0;
        display: grid;
        grid-template-rows: auto minmax(0, 1fr) auto;
        gap: 10px;
    }

    .farm-epic-activity .activity-live-map-toolbar,
    .farm-epic-activity .activity-layer-strip {
        display: flex;
        flex-wrap: wrap;
        gap: 8px;
        align-items: center;
    }

    .farm-epic-activity .activity-map-view-menu {
        border: 1px solid var(--activity-line);
        border-radius: 10px;
        background: rgba(255, 255, 255, .78);
    }

    .farm-epic-activity .activity-map-view-menu > summary {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
        min-height: 44px;
        padding: 8px 12px;
        color: var(--activity-ink);
        cursor: pointer;
        font-weight: 900;
        list-style: none;
    }

    .farm-epic-activity .activity-map-view-menu > summary::-webkit-details-marker { display: none; }
    .farm-epic-activity .activity-map-view-menu > summary::after { content: "+"; font-size: 1.15rem; }
    .farm-epic-activity .activity-map-view-menu[open] > summary::after { content: "−"; }

    .farm-epic-activity .activity-map-view-menu > summary small {
        margin-left: auto;
        color: var(--activity-muted);
        font-weight: 700;
    }

    .farm-epic-activity .activity-map-view-menu .activity-layer-strip {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        margin: 0 12px 10px;
    }

    .farm-epic-activity .activity-map-journey {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 8px;
    }

    .farm-epic-activity .activity-map-journey article {
        display: grid;
        grid-template-columns: auto minmax(0, 1fr);
        gap: 4px 8px;
        align-items: start;
        border: 1px solid rgba(23, 37, 27, .14);
        border-radius: 8px;
        padding: 10px;
        background: rgba(255, 255, 255, .68);
    }

    .farm-epic-activity .activity-map-journey span {
        display: inline-grid;
        place-items: center;
        width: 28px;
        height: 28px;
        border-radius: 999px;
        color: #fff;
        background: #2e7d46;
        font-weight: 900;
    }

    .farm-epic-activity .activity-map-journey strong,
    .farm-epic-activity .activity-map-journey p {
        margin: 0;
    }

    .farm-epic-activity .activity-map-journey p {
        grid-column: 2;
        font-size: .82rem;
    }

    .farm-epic-activity .activity-live-map-toolbar {
        justify-content: space-between;
    }

    .farm-epic-activity .activity-live-map-toolbar button,
    .farm-epic-activity .activity-layer-strip button {
        min-height: 44px;
        border: 1px solid rgba(23, 37, 27, .18);
        border-radius: 8px;
        padding: 8px 12px;
        color: #17251b;
        background: rgba(255, 255, 255, .84);
        font-weight: 900;
    }

    .farm-epic-activity .activity-layer-strip button::before {
        content: "";
        display: inline-block;
        width: 12px;
        height: 12px;
        margin-right: 7px;
        border: 2px solid currentColor;
        border-radius: 3px;
        background: repeating-linear-gradient(45deg, var(--activity-overlay-base) 0 3px, #fff 3px 5px);
        vertical-align: -1px;
    }

    .farm-epic-activity .activity-layer-strip button[data-layer-key="boundary"]::before { background: var(--activity-overlay-boundary); border-radius: 50%; }
    .farm-epic-activity .activity-layer-strip button[data-layer-key="fields"]::before { background: repeating-linear-gradient(0deg, var(--activity-overlay-field) 0 2px, #412f00 2px 3px); }
    .farm-epic-activity .activity-layer-strip button[data-layer-key="green"]::before { background: radial-gradient(circle, #fff 18%, transparent 20%), var(--activity-overlay-green); background-size: 5px 5px; }
    .farm-epic-activity .activity-layer-strip button[data-layer-key="water"]::before { background: repeating-linear-gradient(135deg, var(--activity-overlay-water) 0 2px, #fff 2px 3px); }
    .farm-epic-activity .activity-layer-strip button[data-layer-key="hardscape"]::before { background: repeating-linear-gradient(90deg, var(--activity-overlay-hardscape) 0 3px, #fff 3px 4px); }

    .farm-epic-activity .activity-live-map-toolbar input[type="range"] {
        min-width: 170px;
        accent-color: #2e7d46;
    }

    .farm-epic-activity .activity-live-map-viewport {
        position: relative;
        height: clamp(420px, calc(100dvh - 340px), 720px);
        min-height: 420px;
        max-height: 720px;
        overflow: hidden;
        border-radius: 8px;
        background: #eef1ea;
        isolation: isolate;
    }

    .farm-epic-activity .activity-live-map-layer-stack {
        position: absolute;
        inset: 0;
        display: grid;
        place-items: center;
        width: 100%;
        height: 100%;
        transform: scale(var(--live-map-zoom-scale, 1));
        transform-origin: center;
        transition: transform .16s ease-out;
        will-change: transform;
    }

    .farm-epic-activity .activity-live-map-raster,
    .farm-epic-activity .activity-live-map-projection-layer,
    .farm-epic-activity .activity-live-map-unicode-tile-layer {
        grid-area: 1 / 1;
        width: 100%;
        height: 100%;
        max-width: none;
    }

    .farm-epic-activity .activity-live-map-raster {
        z-index: 1;
        object-fit: contain;
    }

    .farm-epic-activity .activity-live-map-projection-layer {
        z-index: 2;
        opacity: 1;
        filter: contrast(1.35) saturate(1.3);
        pointer-events: none;
        image-rendering: pixelated;
    }

    /* Colour is never the only map-layer cue. Each family keeps a distinct
       edge treatment over bright, dark, or colour-similar aerial imagery. */
    .farm-epic-activity .activity-live-map-projection-layer[data-map-bound-overlay-layer-slot="boundary"] > canvas {
        filter: drop-shadow(1px 0 0 #fff) drop-shadow(-1px 0 0 #101610);
    }

    .farm-epic-activity .activity-live-map-projection-layer[data-map-bound-overlay-layer-slot="fields"] > canvas {
        filter: contrast(1.45) drop-shadow(1px 1px 0 #382900);
    }

    .farm-epic-activity .activity-live-map-projection-layer[data-map-bound-overlay-layer-slot="green"] > canvas {
        filter: contrast(1.35) drop-shadow(0 1px 0 #f5fff4);
    }

    .farm-epic-activity .activity-live-map-projection-layer[data-map-bound-overlay-layer-slot="water"] > canvas {
        filter: contrast(1.5) drop-shadow(1px 0 0 #f2fbff) drop-shadow(-1px 0 0 #102d3a);
    }

    .farm-epic-activity .activity-live-map-projection-layer[data-map-bound-overlay-layer-slot="hardscape"] > canvas {
        filter: contrast(1.55) drop-shadow(1px 0 0 #fff) drop-shadow(-1px 0 0 #271334);
    }

    .farm-epic-activity .activity-live-map-projection-layer[hidden] {
        display: none;
    }

    .farm-epic-activity .activity-live-map-unicode-tile-layer {
        position: relative;
        overflow: hidden;
        z-index: 3;
        background-color: transparent;
        background-repeat: no-repeat;
        background-size: 256px 256px;
        opacity: var(--live-map-glyph-opacity, .34);
        mix-blend-mode: normal;
        pointer-events: none;
    }

    .farm-epic-activity .activity-live-map-actor {
        position: absolute;
        z-index: 8;
        display: grid;
        place-items: center;
        width: calc(var(--live-map-glyph-size, 16px) * 1.75);
        aspect-ratio: 1;
        transform: translate(-50%, -50%);
        border: 2px solid var(--activity-panel);
        border-radius: 50%;
        background: var(--activity-ready);
        color: #fff;
        font-size: var(--live-map-glyph-size, 16px);
        line-height: 1;
        pointer-events: none;
        filter: drop-shadow(0 2px 4px rgba(0, 0, 0, .55));
    }

    .farm-epic-activity .activity-live-map-unicode-tile {
        position: absolute;
        display: block;
        min-width: 1px;
        min-height: 1px;
        object-fit: fill;
        pointer-events: none;
        opacity: var(--live-map-glyph-opacity, .82);
    }

    .farm-epic-activity .activity-live-map[data-layer0-visible="false"] .activity-live-map-raster,
    .farm-epic-activity .activity-live-map[data-text-glyphs-visible="false"] .activity-live-map-unicode-tile-layer {
        display: none;
    }

    .farm-epic-activity .activity-live-map-status {
        margin: 0;
    }

    .farm-epic-activity .activity-layer-strip button[aria-pressed="false"] {
        opacity: .62;
        text-decoration: line-through;
    }

    .farm-epic-activity .activity-hud-frames,
    .farm-epic-activity .activity-showcase-grid,
    .farm-epic-activity .activity-three-year-gates {
        display: grid;
        grid-template-columns: repeat(5, minmax(0, 1fr));
        gap: 10px;
    }

    .farm-epic-activity .activity-action,
    .farm-epic-activity .activity-entity-focus,
    .farm-epic-activity .activity-focus-grid .activity-entity-focus-card,
    .farm-epic-activity .activity-showcase-grid article,
    .farm-epic-activity .activity-showcase-steps li,
    .farm-epic-activity .activity-three-year-gates article {
        border: 1px solid rgba(23, 37, 27, .16);
        border-radius: 8px;
        background: rgba(255, 255, 255, .72);
        padding: 12px;
    }

    .farm-epic-activity .activity-three-year {
        display: grid;
        gap: 12px;
        margin-top: 12px;
    }

    .farm-epic-activity .activity-three-year-intro {
        border-left: 5px solid #386d4a;
    }

    .farm-epic-activity .activity-current-gate-command {
        display: inline-flex;
        align-items: center;
        width: fit-content;
        border-radius: 999px;
        padding: 8px 12px;
        color: #fff;
        background: #224f34;
        font-weight: 900;
        text-decoration: none;
    }

    .farm-epic-activity .activity-three-year-filters {
        display: flex;
        flex-wrap: wrap;
        gap: 8px;
    }

    .farm-epic-activity .activity-three-year-filters button {
        min-height: 44px;
        border: 1px solid rgba(23, 37, 27, .18);
        border-radius: 999px;
        padding: 8px 12px;
        color: var(--activity-ink);
        background: rgba(255, 255, 255, .76);
        font: inherit;
        font-weight: 850;
    }

    .farm-epic-activity .activity-three-year-filters button[aria-pressed="true"] {
        border-color: rgba(46, 125, 70, .68);
        color: #174622;
        background: rgba(46, 125, 70, .18);
    }

    .farm-epic-activity .activity-three-year-gates article {
        display: grid;
        gap: 8px;
        align-content: start;
        min-height: 190px;
    }

    .farm-epic-activity .activity-three-year-gates article[hidden] {
        display: none;
    }

    .farm-epic-activity .activity-three-year-gates article[data-three-year-current-gate="true"] {
        border-color: rgba(46, 125, 70, .72);
        box-shadow: 0 0 0 3px rgba(46, 125, 70, .16);
        background: rgba(240, 255, 245, .92);
    }

    .farm-epic-activity .activity-three-year-gates span {
        color: #386d4a;
        font-size: .74rem;
        font-weight: 900;
        text-transform: uppercase;
    }

    .farm-epic-activity .activity-gate-evidence {
        display: flex;
        flex-wrap: wrap;
        gap: 6px;
    }

    .farm-epic-activity .activity-gate-evidence span {
        width: auto;
        min-height: 28px;
        border-radius: 999px;
        padding: 5px 8px;
        color: #174622;
        background: rgba(46, 125, 70, .12);
        font-size: .72rem;
        text-transform: none;
    }

    .farm-epic-activity .activity-gate-evidence span[data-three-year-command-posture="roadmap"] {
        color: #72430f;
        background: rgba(138, 92, 34, .14);
    }

    .farm-epic-activity .activity-three-year-gates a {
        display: inline-flex;
        align-items: center;
        width: fit-content;
        border: 1px solid rgba(46, 125, 70, .38);
        border-radius: 999px;
        padding: 7px 10px;
        color: #174622;
        background: rgba(46, 125, 70, .12);
        font-weight: 900;
        text-decoration: none;
    }

    .farm-epic-activity .activity-action {
        border-left: 5px solid #2e7d46;
        margin-bottom: 10px;
    }

    .farm-epic-activity button,
    .farm-epic-activity a {
        min-height: 40px;
    }

    .farm-epic-activity .eyebrow,
    .farm-epic-activity dt,
    .farm-epic-activity .activity-action > span {
        color: #356344;
        font-size: .72rem;
        font-weight: 900;
        letter-spacing: 0;
        text-transform: uppercase;
    }

    .farm-epic-activity .activity-muted,
    .farm-epic-activity p,
    .farm-epic-activity small {
        color: #597263;
        font-weight: 700;
    }

    .farm-epic-activity .activity-action-filters,
    .farm-epic-activity .activity-chip-grid,
    .farm-epic-activity .activity-regions,
    .farm-epic-activity .activity-method-pill-row,
    .farm-epic-activity .activity-toolbox-guide,
    .farm-epic-activity .activity-mobile-tabs {
        display: flex;
        flex-wrap: wrap;
        gap: 8px;
    }

    .farm-epic-activity .activity-toolbox-guide article {
        display: grid;
        grid-template-columns: auto minmax(0, 1fr);
        gap: 6px 8px;
        align-items: start;
        flex: 1 1 150px;
        min-width: 140px;
        border: 1px solid rgba(23, 37, 27, .14);
        border-radius: 8px;
        padding: 10px;
        background: rgba(255, 255, 255, .66);
    }

    .farm-epic-activity .activity-toolbox-guide [data-toolbox-step-number] {
        display: inline-grid;
        place-items: center;
        width: 28px;
        height: 28px;
        border-radius: 999px;
        color: #fff;
        background: #7a4f13;
        font-weight: 900;
    }

    .farm-epic-activity .activity-toolbox-guide strong,
    .farm-epic-activity .activity-toolbox-guide p,
    .farm-epic-activity .activity-toolbox-guide a,
    .farm-epic-activity .activity-toolbox-guide button {
        grid-column: 2;
    }

    .farm-epic-activity .activity-toolbox-guide a {
        display: inline-flex;
        align-items: center;
        width: fit-content;
        min-height: 36px;
        border-radius: 999px;
        padding: 6px 10px;
        color: #174622;
        background: rgba(46, 125, 70, .12);
        font-weight: 900;
        text-decoration: none;
    }

    .farm-epic-activity .activity-governance:not([open]) article {
        display: none;
    }

    @media (max-width: 980px) {
        .farm-epic-activity .activity-header,
        .farm-epic-activity .activity-stage,
        .farm-epic-activity .activity-map-journey,
        .farm-epic-activity .activity-hud-frames,
        .farm-epic-activity .activity-showcase-grid,
        .farm-epic-activity .activity-three-year-gates {
            grid-template-columns: 1fr;
        }

        .farm-epic-activity .activity-live-map-viewport {
            height: 58dvh;
            min-height: 360px;
        }

        .farm-epic-activity .activity-live-map-toolbar {
            align-items: stretch;
        }

    .farm-epic-activity .activity-live-map-toolbar input[type="range"] {
            min-width: 0;
            flex: 1 1 160px;
        }
    }

.farm-epic-activity button,
.farm-epic-activity a,
.farm-epic-activity [role="button"],
.farm-epic-activity summary {
    min-height: var(--activity-control-min);
}

.farm-epic-activity .activity-map pre {
    font-size: max(.82rem, 13px);
}
.activity-macro-bar {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 0.35rem;
    margin-block: 0 0.55rem;
}

.activity-macro-bar button {
    min-height: 44px;
    min-width: 0;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 0.35rem;
    padding: 0.3rem 0.35rem;
    overflow: hidden;
}

.activity-macro-bar button span {
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    line-height: 1.08;
    white-space: normal;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    font-size: clamp(.68rem, .72vw, .82rem);
}

.activity-authoritative-offer-summary {
    display: flex;
    justify-content: space-between;
    gap: .5rem;
    margin: 0 0 .45rem;
    color: var(--activity-muted);
    font-size: .78rem;
}

.activity-authoritative-offer-summary strong {
    color: var(--activity-ink);
}

.activity-macro-bar kbd {
    font: inherit;
    font-weight: 800;
}

.activity-macro-status {
    margin: 0 0 0.55rem;
}
