/* 开疆拓土 */
#tab-frontier-war {
    width: 100%;
    min-width: 0;
    overflow-x: hidden;
}

body.frontier-war-player-chrome {
    overflow: hidden;
}

body.frontier-war-player-chrome #game-container {
    width: 100vw;
    max-width: none;
    min-height: 100vh;
    padding: 0;
}

body.frontier-war-player-chrome .game-header,
body.frontier-war-player-chrome .content-tabs {
    display: none;
}

body.frontier-war-player-chrome .game-layout,
body.frontier-war-player-chrome .game-content,
body.frontier-war-player-chrome .tab-content,
body.frontier-war-player-chrome #tab-frontier-war {
    width: 100%;
    max-width: none;
    min-width: 0;
}

body.frontier-war-player-chrome .game-layout {
    display: block;
}

body.frontier-war-player-chrome .character-panel {
    display: none;
}

body.frontier-war-player-chrome .game-content {
    display: block;
    min-height: 100vh;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: #050a0b;
    box-shadow: none;
}

body.frontier-war-player-chrome .tab-content {
    min-height: 100vh;
}

body.frontier-war-player-chrome .screen.active,
body.frontier-war-player-chrome .tab-panel.active {
    animation: none;
}

.frontier-war-shell {
    width: 100%;
    min-width: 0;
    padding: 18px;
    color: #e9f1ef;
    background:
        radial-gradient(circle at 18% 4%, rgba(240, 199, 110, 0.14), transparent 30%),
        radial-gradient(circle at 82% 16%, rgba(116, 214, 202, 0.11), transparent 30%),
        linear-gradient(180deg, rgba(5, 11, 13, 0.88), rgba(8, 14, 16, 0.97)),
        url('../assets/scene-images/battle_03.png') center / cover no-repeat;
}

.frontier-war-hero {
    display: grid;
    grid-template-columns: minmax(250px, 0.62fr) minmax(0, 1.38fr);
    gap: 10px;
    align-items: stretch;
    margin-bottom: 10px;
}

.frontier-war-hero-copy,
.frontier-war-map-panel,
.frontier-war-detail,
.frontier-war-heroes,
.frontier-war-log,
.frontier-war-strategy,
.frontier-war-target,
.frontier-war-command,
.frontier-war-season-goals,
.frontier-war-region-control,
.frontier-war-contracts,
.frontier-war-tribunal,
.frontier-war-edicts,
.frontier-war-nemesis,
.frontier-war-enemy-director,
.frontier-war-season-chain,
.frontier-war-campaign-report,
.frontier-war-review,
.frontier-war-battle-report,
.frontier-war-ai,
.frontier-war-season,
.frontier-war-balance,
.frontier-war-playtest,
.frontier-war-viewport-qa,
.frontier-war-100-audit,
.frontier-war-geo-ecology,
.frontier-war-war-prep,
.frontier-war-hero-warband,
.frontier-war-diplomacy-politics,
.frontier-war-war-readability,
.frontier-war-content-scale,
.frontier-war-final-release,
.frontier-war-productization,
.frontier-war-release-candidate,
.frontier-war-current-save,
.frontier-war-difficulty,
.frontier-war-pacing,
.frontier-war-realrun,
.frontier-war-branch-sampling,
.frontier-war-longrun,
.frontier-war-art,
.frontier-war-commercial-packaging,
.frontier-war-asset-polish,
.frontier-war-build,
.frontier-war-scenarios,
.frontier-war-factions,
.frontier-war-reference,
.frontier-war-report-art,
.frontier-war-report-commercial,
.frontier-war-report-illustrated-map,
.frontier-war-report-asset-polish,
.frontier-war-report-100-audit,
.frontier-war-report-war-prep,
.frontier-war-report-hero-warband,
.frontier-war-report-diplomacy-politics,
.frontier-war-report-war-readability,
.frontier-war-report-content-scale,
.frontier-war-report-final-release,
.frontier-war-report-productization,
.frontier-war-report-release-candidate,
.frontier-war-report-current-save,
.frontier-war-toolbar,
.frontier-war-complete {
    position: relative;
    overflow: hidden;
    border: 1px solid rgba(179, 224, 212, 0.16);
    border-radius: 8px;
    background:
        radial-gradient(circle at 0 0, rgba(240, 199, 110, 0.11), transparent 34%),
        radial-gradient(circle at 100% 0, rgba(116, 214, 202, 0.08), transparent 28%),
        linear-gradient(180deg, rgba(16, 28, 30, 0.97), rgba(7, 14, 16, 0.94));
    backdrop-filter: blur(14px);
    box-shadow: 0 18px 42px rgba(0, 0, 0, 0.34), inset 0 1px 0 rgba(255, 255, 255, 0.05), inset 0 0 0 1px rgba(255, 255, 255, 0.015);
}

.frontier-war-hero-copy::before,
.frontier-war-map-panel::before,
.frontier-war-detail::before,
.frontier-war-heroes::before,
.frontier-war-log::before,
.frontier-war-strategy::before,
.frontier-war-target::before,
.frontier-war-command::before,
.frontier-war-season-goals::before,
.frontier-war-region-control::before,
.frontier-war-contracts::before,
.frontier-war-tribunal::before,
.frontier-war-edicts::before,
.frontier-war-nemesis::before,
.frontier-war-enemy-director::before,
.frontier-war-season-chain::before,
.frontier-war-campaign-report::before,
.frontier-war-review::before,
.frontier-war-battle-report::before,
.frontier-war-ai::before,
.frontier-war-season::before,
.frontier-war-balance::before,
.frontier-war-playtest::before,
.frontier-war-viewport-qa::before,
.frontier-war-100-audit::before,
.frontier-war-geo-ecology::before,
.frontier-war-war-prep::before,
.frontier-war-hero-warband::before,
.frontier-war-diplomacy-politics::before,
.frontier-war-war-readability::before,
.frontier-war-content-scale::before,
.frontier-war-final-release::before,
.frontier-war-productization::before,
.frontier-war-release-candidate::before,
.frontier-war-current-save::before,
.frontier-war-difficulty::before,
.frontier-war-pacing::before,
.frontier-war-realrun::before,
.frontier-war-branch-sampling::before,
.frontier-war-longrun::before,
.frontier-war-art::before,
.frontier-war-commercial-packaging::before,
.frontier-war-asset-polish::before,
.frontier-war-build::before,
.frontier-war-scenarios::before,
.frontier-war-factions::before,
.frontier-war-reference::before,
.frontier-war-report-art::before,
.frontier-war-report-commercial::before,
.frontier-war-report-illustrated-map::before,
.frontier-war-report-asset-polish::before,
.frontier-war-report-100-audit::before,
.frontier-war-report-war-prep::before,
.frontier-war-report-hero-warband::before,
.frontier-war-report-diplomacy-politics::before,
.frontier-war-report-war-readability::before,
.frontier-war-report-content-scale::before,
.frontier-war-report-final-release::before,
.frontier-war-report-productization::before,
.frontier-war-report-release-candidate::before,
.frontier-war-report-current-save::before,
.frontier-war-toolbar::before,
.frontier-war-complete::before {
    content: '';
    position: absolute;
    inset: 0 0 auto 0;
    height: 1px;
    background: linear-gradient(90deg, rgba(240, 199, 110, 0.72), rgba(116, 214, 202, 0.2), transparent 74%);
    opacity: 0.92;
    pointer-events: none;
}

.frontier-war-hero-copy {
    min-height: 132px;
    padding: 16px;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    background:
        linear-gradient(180deg, rgba(8, 16, 18, 0.08), rgba(8, 16, 18, 0.64) 56%, rgba(8, 16, 18, 0.94)),
        url('../images/frontier-war/jianghu-war-council-v5.png') center / cover no-repeat;
}

.frontier-war-hero-copy span,
.frontier-war-section-title span,
.frontier-war-toolbar span,
.frontier-war-detail-head span,
.frontier-war-detail p,
.frontier-war-action span,
.frontier-war-hero-card span,
.frontier-war-reference p,
.frontier-war-log p,
.frontier-war-overview em {
    color: #a9b8b6;
}

.frontier-war-hero-copy h3 {
    margin: 4px 0 6px;
    color: #f2e6c7;
    text-shadow: 0 2px 16px rgba(0, 0, 0, 0.55);
    font-size: 1.34rem;
    line-height: 1.25;
}

.frontier-war-hero-copy p {
    margin: 0;
    max-width: 680px;
    color: #d7e2de;
    line-height: 1.45;
    font-size: 0.86rem;
    overflow-wrap: anywhere;
}

.frontier-war-commercial-hero {
    min-height: 214px;
    grid-template-columns: minmax(320px, 0.82fr) minmax(0, 1.18fr);
    gap: 12px;
}

.frontier-war-commercial-copy {
    min-height: 214px;
    padding: 18px;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    position: relative;
    overflow: hidden;
    border: 1px solid rgba(240, 199, 110, 0.22);
    border-radius: 8px;
    background:
        linear-gradient(90deg, rgba(6, 13, 15, 0.96), rgba(6, 13, 15, 0.56) 52%, rgba(6, 13, 15, 0.86)),
        radial-gradient(circle at 80% 20%, color-mix(in srgb, var(--fw-rival, #d85f5f) 28%, transparent), transparent 34%),
        url('../images/frontier-war/jianghu-war-council-v5.png') center / cover no-repeat;
    box-shadow: 0 22px 46px rgba(0, 0, 0, 0.36), inset 0 0 0 1px rgba(255, 255, 255, 0.035);
}

.frontier-war-commercial-copy::after {
    content: '';
    position: absolute;
    inset: auto 0 0 0;
    height: 42%;
    pointer-events: none;
    background: linear-gradient(180deg, transparent, rgba(6, 13, 15, 0.92));
}

.frontier-war-commercial-copy > * {
    position: relative;
    z-index: 1;
}

.frontier-war-commercial-copy span {
    color: #f0c76e;
    font-size: 0.72rem;
    font-weight: 800;
    text-transform: uppercase;
    overflow-wrap: anywhere;
}

.frontier-war-commercial-copy h3 {
    margin: 7px 0 8px;
    max-width: 720px;
    color: #fff3d2;
    text-shadow: 0 3px 24px rgba(0, 0, 0, 0.72);
    font-size: 1.6rem;
    line-height: 1.16;
}

.frontier-war-commercial-copy p {
    margin: 0;
    max-width: 760px;
    color: #dbe9e5;
    font-size: 0.88rem;
    line-height: 1.45;
    overflow-wrap: anywhere;
}

.frontier-war-commercial-showdown {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-top: 12px;
}

.frontier-war-commercial-showdown span {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 30px;
    padding: 5px 10px;
    border: 1px solid color-mix(in srgb, var(--fw-side, #74d6ca) 55%, transparent);
    border-radius: 999px;
    color: #f7fbf6;
    background: color-mix(in srgb, var(--fw-side, #74d6ca) 18%, rgba(6, 13, 15, 0.72));
}

.frontier-war-commercial-showdown b {
    display: grid;
    place-items: center;
    width: 21px;
    height: 21px;
    border-radius: 50%;
    color: #071113;
    background: var(--fw-side, #74d6ca);
    font-size: 0.64rem;
}

.frontier-war-commercial-showdown strong {
    color: #f0c76e;
    font-size: 0.72rem;
}

.frontier-war-commercial-board {
    min-width: 0;
    display: grid;
    grid-template-rows: 1fr auto auto;
    gap: 8px;
}

.frontier-war-commercial-kpis {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
}

.frontier-war-commercial-kpis div {
    min-width: 0;
    padding: 10px;
    border: 1px solid rgba(179, 224, 212, 0.18);
    border-left: 3px solid rgba(240, 199, 110, 0.48);
    border-radius: 8px;
    background:
        radial-gradient(circle at 100% 0%, rgba(116, 214, 202, 0.1), transparent 42%),
        linear-gradient(180deg, rgba(16, 31, 32, 0.96), rgba(9, 16, 18, 0.94));
}

.frontier-war-commercial-kpis span,
.frontier-war-commercial-kpis em,
.frontier-war-commercial-warband span {
    display: block;
    color: #a9b8b6;
    font-size: 0.72rem;
}

.frontier-war-commercial-kpis strong {
    display: block;
    margin: 5px 0 2px;
    color: #74d6ca;
    font-size: 1rem;
    line-height: 1.18;
    overflow-wrap: anywhere;
}

.frontier-war-commercial-warband {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
}

.frontier-war-commercial-warband article {
    min-width: 0;
    min-height: 72px;
    display: grid;
    grid-template-columns: 32px minmax(0, 1fr);
    gap: 7px;
    align-items: center;
    padding: 8px;
    border: 1px solid color-mix(in srgb, var(--fw-portrait, #f0c76e) 30%, transparent);
    border-radius: 8px;
    background:
        radial-gradient(circle at 0 0, color-mix(in srgb, var(--fw-portrait, #f0c76e) 16%, transparent), transparent 45%),
        rgba(6, 13, 15, 0.54);
}

.frontier-war-commercial-warband b {
    grid-row: span 2;
    display: grid;
    place-items: center;
    width: 32px;
    height: 32px;
    border: 1px solid color-mix(in srgb, var(--fw-portrait, #f0c76e) 54%, transparent);
    border-radius: 50%;
    color: var(--fw-portrait, #f0c76e);
    background:
        radial-gradient(circle at 35% 20%, rgba(255, 255, 255, 0.18), transparent 42%),
        color-mix(in srgb, var(--fw-portrait, #f0c76e) 16%, rgba(6, 13, 15, 0.88));
}

.frontier-war-commercial-warband strong {
    min-width: 0;
    color: #f2e6c7;
    font-size: 0.78rem;
    line-height: 1.18;
    overflow-wrap: anywhere;
}

.frontier-war-commercial-shotrail {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
}

.frontier-war-commercial-shotrail article {
    min-width: 0;
    min-height: 64px;
    padding: 8px;
    border: 1px solid rgba(116, 214, 202, 0.16);
    border-radius: 8px;
    background:
        linear-gradient(135deg, rgba(240, 199, 110, 0.08), rgba(116, 214, 202, 0.04)),
        rgba(6, 13, 15, 0.5);
}

.frontier-war-commercial-shotrail span {
    display: block;
    color: #f0c76e;
    font-size: 0.66rem;
    font-weight: 900;
}

.frontier-war-commercial-shotrail strong,
.frontier-war-commercial-shotrail em {
    display: block;
    min-width: 0;
    overflow-wrap: anywhere;
}

.frontier-war-commercial-shotrail strong {
    margin: 3px 0;
    color: #f2e6c7;
    font-size: 0.74rem;
    line-height: 1.15;
}

.frontier-war-commercial-shotrail em {
    color: #a9b8b6;
    font-size: 0.68rem;
    font-style: normal;
    line-height: 1.28;
}

.frontier-war-commercial-combatrail,
.frontier-war-combat-lens-grid,
.frontier-war-command-cinematics,
.frontier-war-battle-freeze,
.frontier-war-combat-feedback-kpis,
.frontier-war-combat-aftermath,
.frontier-war-combat-feedback-tracks,
.frontier-war-report-combat-feedback {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
}

.frontier-war-commercial-combatrail article,
.frontier-war-combat-lens-grid article,
.frontier-war-command-cinematics article,
.frontier-war-battle-freeze article,
.frontier-war-combat-aftermath article,
.frontier-war-report-combat-feedback article {
    min-width: 0;
    padding: 9px;
    border: 1px solid rgba(240, 199, 110, 0.18);
    border-radius: 8px;
    background:
        radial-gradient(circle at 0 0, rgba(240, 199, 110, 0.1), transparent 42%),
        linear-gradient(180deg, rgba(18, 31, 32, 0.94), rgba(7, 14, 16, 0.86));
}

.frontier-war-commercial-combatrail {
    margin-top: 0;
}

.frontier-war-commercial-combatrail article {
    min-height: 70px;
    border-color: rgba(240, 199, 110, 0.22);
}

.frontier-war-commercial-combatrail span,
.frontier-war-commercial-combatrail strong,
.frontier-war-commercial-combatrail em,
.frontier-war-combat-feedback span,
.frontier-war-combat-feedback strong,
.frontier-war-combat-feedback p,
.frontier-war-combat-feedback em,
.frontier-war-combat-feedback-lens span,
.frontier-war-combat-feedback-lens strong,
.frontier-war-combat-feedback-lens p,
.frontier-war-combat-feedback-lens em,
.frontier-war-command-cinematics span,
.frontier-war-command-cinematics strong,
.frontier-war-command-cinematics p,
.frontier-war-battle-freeze span,
.frontier-war-battle-freeze strong,
.frontier-war-battle-freeze p,
.frontier-war-report-combat-feedback span,
.frontier-war-report-combat-feedback strong,
.frontier-war-report-combat-feedback p,
.frontier-war-report-combat-feedback em {
    display: block;
    min-width: 0;
    overflow-wrap: anywhere;
}

.frontier-war-commercial-combatrail span,
.frontier-war-command-cinematics span,
.frontier-war-battle-freeze span,
.frontier-war-report-combat-feedback span {
    color: #f0c76e;
    font-size: 0.66rem;
    font-weight: 900;
}

.frontier-war-commercial-combatrail strong,
.frontier-war-command-cinematics strong,
.frontier-war-battle-freeze strong,
.frontier-war-report-combat-feedback strong {
    margin: 3px 0;
    color: #f2e6c7;
    font-size: 0.75rem;
    line-height: 1.16;
}

.frontier-war-commercial-combatrail em,
.frontier-war-report-combat-feedback em {
    color: #a9b8b6;
    font-size: 0.68rem;
    font-style: normal;
    line-height: 1.28;
}

.frontier-war-combat-feedback,
.frontier-war-report-combat-feedback {
    position: relative;
    overflow: hidden;
    padding: 14px;
    border: 1px solid rgba(240, 199, 110, 0.18);
    border-radius: 8px;
    background:
        radial-gradient(circle at 0 0, rgba(240, 199, 110, 0.1), transparent 34%),
        radial-gradient(circle at 100% 0, rgba(116, 214, 202, 0.08), transparent 30%),
        linear-gradient(180deg, rgba(15, 28, 30, 0.97), rgba(7, 14, 16, 0.94));
}

.frontier-war-combat-feedback-main,
.frontier-war-combat-feedback-lens {
    position: relative;
    overflow: hidden;
    margin: 10px 0;
    padding: 12px;
    border: 1px solid color-mix(in srgb, var(--fw-feedback, #f0c76e) 42%, rgba(255, 255, 255, 0.08));
    border-radius: 8px;
    background:
        linear-gradient(90deg, rgba(5, 10, 12, 0.92), rgba(5, 10, 12, 0.5) 48%, rgba(5, 10, 12, 0.9)),
        url('../images/frontier-war/conquest-feedback-banner-v20.png') center / cover no-repeat;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.04), 0 14px 30px rgba(0, 0, 0, 0.24);
}

.frontier-war-combat-feedback-main::before,
.frontier-war-combat-feedback-lens::before {
    content: '';
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        radial-gradient(circle at 18% 20%, color-mix(in srgb, var(--fw-feedback, #f0c76e) 28%, transparent), transparent 34%),
        linear-gradient(110deg, transparent 0 26%, rgba(255, 247, 224, 0.16) 43%, transparent 60% 100%);
    opacity: 0.62;
    mix-blend-mode: screen;
}

.frontier-war-combat-feedback-main > *,
.frontier-war-combat-feedback-lens > * {
    position: relative;
    z-index: 1;
}

.frontier-war-combat-lens-head strong,
.frontier-war-combat-feedback-main strong {
    color: #fff3d2;
    font-size: 0.95rem;
}

.frontier-war-combat-lens-head p,
.frontier-war-combat-feedback-main p,
.frontier-war-command-cinematics p,
.frontier-war-battle-freeze p,
.frontier-war-combat-aftermath p,
.frontier-war-report-combat-feedback p {
    margin: 0;
    color: #dbe7e3;
    font-size: 0.74rem;
    line-height: 1.36;
}

.frontier-war-combat-feedback-kpis,
.frontier-war-combat-feedback-tracks {
    margin: 8px 0;
}

.frontier-war-combat-feedback-kpis span,
.frontier-war-combat-feedback-tracks span {
    min-width: 0;
    padding: 7px 8px;
    border: 1px solid rgba(116, 214, 202, 0.16);
    border-radius: 999px;
    color: #c8d7d4;
    background: rgba(116, 214, 202, 0.06);
    font-size: 0.7rem;
    overflow-wrap: anywhere;
}

.frontier-war-combat-feedback-kpis b,
.frontier-war-combat-feedback-tracks b {
    margin-right: 5px;
    color: #74d6ca;
}

.frontier-war-command-cinematics {
    margin-top: 10px;
}

.frontier-war-battle-freeze {
    margin-top: 10px;
}

.frontier-war-battle-freeze article.main,
.frontier-war-report-combat-feedback article.main {
    grid-column: span 2;
    border-color: color-mix(in srgb, var(--fw-feedback, #f0c76e) 36%, rgba(240, 199, 110, 0.18));
}

.frontier-war-report-illustrated-map article.player {
    border-color: rgba(116, 214, 202, 0.36);
}

.frontier-war-report-illustrated-map article.enemy {
    border-color: rgba(216, 95, 95, 0.38);
}

.frontier-war-report-illustrated-map article.contested {
    border-color: rgba(240, 199, 110, 0.42);
}

.frontier-war-report-illustrated-map article.settlement-production {
    border-color: rgba(240, 199, 110, 0.46);
    background:
        radial-gradient(circle at 18% 0%, rgba(240, 199, 110, 0.16), transparent 42%),
        linear-gradient(180deg, rgba(23, 18, 12, 0.74), rgba(6, 12, 13, 0.78));
}

.frontier-war-report-illustrated-map article.settlement-slot {
    border-color: rgba(116, 214, 202, 0.24);
}

.frontier-war-region-occupation-panel,
.frontier-war-action-cinematic,
.frontier-war-art-slots-panel,
.frontier-war-region-overlay-panel,
.frontier-war-faction-landmarks-panel,
.frontier-war-battle-fireline-panel,
.frontier-war-dynamic-war-panel,
.frontier-war-action-aftershock-panel,
.frontier-war-consequence-flow-panel,
.frontier-war-decision-cue-panel,
.frontier-war-confirm-stack-recommendation-panel,
.frontier-war-confirm-stack-playback-pin-panel,
.frontier-war-confirm-stack-playback-panel,
.frontier-war-confirm-stack-drilldown-panel,
.frontier-war-confirm-stack-filter-panel,
.frontier-war-confirm-stack-panel,
.frontier-war-confirm-replay-panel,
.frontier-war-confirm-trace-panel,
.frontier-war-decision-preview-panel,
.frontier-war-decision-rationale-panel {
    position: relative;
    overflow: hidden;
    padding: 14px;
    border: 1px solid rgba(240, 199, 110, 0.18);
    border-radius: 8px;
    background:
        radial-gradient(circle at 0 0, rgba(116, 214, 202, 0.1), transparent 32%),
        radial-gradient(circle at 100% 0, rgba(216, 95, 95, 0.08), transparent 34%),
        linear-gradient(180deg, rgba(14, 25, 25, 0.96), rgba(7, 13, 14, 0.92));
}

.frontier-war-region-occupation-panel > .main,
.frontier-war-action-cinematic > .main,
.frontier-war-art-slots-panel > .main,
.frontier-war-region-overlay-panel > .main,
.frontier-war-faction-landmarks-panel > .main,
.frontier-war-battle-fireline-panel > .main,
.frontier-war-dynamic-war-panel > .main,
.frontier-war-action-aftershock-panel > .main,
.frontier-war-consequence-flow-panel > .main,
.frontier-war-decision-cue-panel > .main,
.frontier-war-confirm-stack-recommendation-panel > .main,
.frontier-war-confirm-stack-playback-pin-panel > .main,
.frontier-war-confirm-stack-playback-panel > .main,
.frontier-war-confirm-stack-drilldown-panel > .main,
.frontier-war-confirm-stack-filter-panel > .main,
.frontier-war-confirm-stack-panel > .main,
.frontier-war-confirm-replay-panel > .main,
.frontier-war-confirm-trace-panel > .main,
.frontier-war-decision-preview-panel > .main,
.frontier-war-decision-rationale-panel > .main {
    min-width: 0;
    margin: 10px 0;
    padding: 12px;
    border: 1px solid rgba(240, 199, 110, 0.2);
    border-radius: 8px;
    background:
        linear-gradient(90deg, rgba(5, 10, 12, 0.92), rgba(5, 10, 12, 0.52)),
        url('../images/frontier-war/jianghu-strategy-map-v18.png') center / cover no-repeat;
}

.frontier-war-action-cinematic > .main {
    background:
        linear-gradient(90deg, rgba(5, 10, 12, 0.95), rgba(5, 10, 12, 0.42), rgba(5, 10, 12, 0.9)),
        url('../images/frontier-war/conquest-feedback-banner-v20.png') center / cover no-repeat;
}

.frontier-war-art-slots-panel > .main {
    background:
        linear-gradient(90deg, rgba(5, 10, 12, 0.94), rgba(5, 10, 12, 0.58)),
        url('../images/frontier-war/world-map-terrain-decal-atlas-v118.png') center / 62% no-repeat,
        rgba(7, 14, 16, 0.92);
}

.frontier-war-region-overlay-panel > .main {
    background:
        linear-gradient(90deg, rgba(5, 10, 12, 0.94), rgba(5, 10, 12, 0.56)),
        url('../images/frontier-war/world-map-region-overlay-contested-v119.png') center / cover no-repeat,
        rgba(7, 14, 16, 0.92);
}

.frontier-war-faction-landmarks-panel > .main {
    background:
        linear-gradient(90deg, rgba(5, 10, 12, 0.94), rgba(5, 10, 12, 0.56)),
        url('../images/frontier-war/world-map-faction-landmark-atlas-v120.png') center / 52% no-repeat,
        rgba(7, 14, 16, 0.92);
}

.frontier-war-battle-fireline-panel > .main {
    background:
        linear-gradient(90deg, rgba(5, 10, 12, 0.94), rgba(5, 10, 12, 0.58)),
        url('../images/frontier-war/world-map-battle-fireline-atlas-v121.png') center / 54% no-repeat,
        rgba(7, 14, 16, 0.92);
}

.frontier-war-dynamic-war-panel > .main {
    background:
        radial-gradient(circle at 18% 28%, rgba(116, 214, 202, 0.2), transparent 32%),
        radial-gradient(circle at 82% 24%, rgba(216, 95, 95, 0.24), transparent 36%),
        linear-gradient(90deg, rgba(5, 10, 12, 0.95), rgba(5, 10, 12, 0.5)),
        url('../images/frontier-war/world-map-battle-fireline-atlas-v121.png') center / 48% no-repeat,
        rgba(7, 14, 16, 0.92);
}

.frontier-war-action-aftershock-panel > .main {
    background:
        radial-gradient(circle at 24% 34%, rgba(255, 244, 214, 0.22), transparent 28%),
        radial-gradient(circle at 74% 52%, rgba(238, 95, 55, 0.2), transparent 34%),
        linear-gradient(90deg, rgba(5, 10, 12, 0.96), rgba(5, 10, 12, 0.5)),
        url('../images/frontier-war/world-map-combat-fx-v114.png') center / 52% no-repeat,
        rgba(7, 14, 16, 0.92);
}

.frontier-war-consequence-flow-panel > .main {
    background:
        radial-gradient(circle at 18% 28%, rgba(116, 214, 202, 0.22), transparent 30%),
        radial-gradient(circle at 76% 48%, rgba(238, 95, 55, 0.2), transparent 34%),
        linear-gradient(90deg, rgba(5, 10, 12, 0.96), rgba(5, 10, 12, 0.52)),
        url('../images/frontier-war/world-map-region-overlay-contested-v119.png') center / cover no-repeat,
        rgba(7, 14, 16, 0.92);
}

.frontier-war-decision-cue-panel > .main {
    background:
        radial-gradient(circle at 20% 26%, rgba(255, 238, 190, 0.2), transparent 30%),
        radial-gradient(circle at 78% 48%, rgba(116, 214, 202, 0.18), transparent 34%),
        linear-gradient(90deg, rgba(5, 10, 12, 0.96), rgba(5, 10, 12, 0.52)),
        url('../images/frontier-war/world-map-route-brushes-v113.png') center / 58% no-repeat,
        rgba(7, 14, 16, 0.92);
}

.frontier-war-confirm-trace-panel > .main {
    background:
        radial-gradient(circle at 20% 26%, rgba(116, 214, 202, 0.22), transparent 30%),
        radial-gradient(circle at 76% 50%, rgba(255, 238, 190, 0.2), transparent 34%),
        linear-gradient(90deg, rgba(5, 10, 12, 0.96), rgba(5, 10, 12, 0.5)),
        url('../images/frontier-war/world-map-route-brushes-v113.png') center / 58% no-repeat,
        rgba(7, 14, 16, 0.92);
}

.frontier-war-confirm-replay-panel > .main {
    background:
        radial-gradient(circle at 22% 28%, rgba(255, 238, 190, 0.24), transparent 30%),
        radial-gradient(circle at 76% 48%, rgba(116, 214, 202, 0.18), transparent 34%),
        linear-gradient(90deg, rgba(5, 10, 12, 0.96), rgba(5, 10, 12, 0.5)),
        url('../images/frontier-war/world-map-route-brushes-v113.png') center / 58% no-repeat,
        rgba(7, 14, 16, 0.92);
}

.frontier-war-confirm-stack-panel > .main {
    background:
        radial-gradient(circle at 18% 24%, rgba(116, 214, 202, 0.22), transparent 30%),
        radial-gradient(circle at 78% 44%, rgba(255, 238, 190, 0.22), transparent 34%),
        linear-gradient(90deg, rgba(5, 10, 12, 0.96), rgba(5, 10, 12, 0.48)),
        url('../images/frontier-war/world-map-route-brushes-v113.png') center / 58% no-repeat,
        rgba(7, 14, 16, 0.92);
}

.frontier-war-confirm-stack-drilldown-panel > .main {
    background:
        radial-gradient(circle at 18% 24%, rgba(255, 238, 190, 0.24), transparent 30%),
        radial-gradient(circle at 78% 44%, rgba(138, 224, 181, 0.2), transparent 34%),
        linear-gradient(90deg, rgba(5, 10, 12, 0.96), rgba(5, 10, 12, 0.48)),
        url('../images/frontier-war/world-map-route-brushes-v113.png') center / 58% no-repeat,
        rgba(7, 14, 16, 0.92);
}

.frontier-war-decision-rationale-panel > .main {
    background:
        radial-gradient(circle at 22% 24%, rgba(255, 238, 190, 0.22), transparent 30%),
        radial-gradient(circle at 76% 48%, rgba(238, 95, 55, 0.16), transparent 34%),
        linear-gradient(90deg, rgba(5, 10, 12, 0.96), rgba(5, 10, 12, 0.52)),
        url('../images/frontier-war/world-map-battle-fireline-atlas-v121.png') center / 48% no-repeat,
        rgba(7, 14, 16, 0.92);
}

.frontier-war-decision-preview-panel > .main {
    background:
        radial-gradient(circle at 22% 26%, rgba(116, 214, 202, 0.24), transparent 30%),
        radial-gradient(circle at 78% 48%, rgba(240, 199, 110, 0.18), transparent 34%),
        linear-gradient(90deg, rgba(5, 10, 12, 0.96), rgba(5, 10, 12, 0.5)),
        url('../images/frontier-war/world-map-route-brushes-v113.png') center / 60% no-repeat,
        rgba(7, 14, 16, 0.92);
}

.frontier-war-region-occupation-panel strong,
.frontier-war-action-cinematic strong,
.frontier-war-art-slots-panel strong,
.frontier-war-region-overlay-panel strong,
.frontier-war-faction-landmarks-panel strong,
.frontier-war-battle-fireline-panel strong,
.frontier-war-dynamic-war-panel strong,
.frontier-war-action-aftershock-panel strong,
.frontier-war-consequence-flow-panel strong,
.frontier-war-decision-cue-panel strong,
.frontier-war-confirm-stack-playback-panel strong,
.frontier-war-confirm-stack-drilldown-panel strong,
.frontier-war-confirm-stack-filter-panel strong,
.frontier-war-confirm-stack-panel strong,
.frontier-war-confirm-replay-panel strong,
.frontier-war-confirm-trace-panel strong,
.frontier-war-decision-preview-panel strong,
.frontier-war-decision-rationale-panel strong,
.frontier-war-action-cinematic-target strong {
    display: block;
    min-width: 0;
    color: #fff3d2;
    overflow-wrap: anywhere;
}

.frontier-war-region-occupation-panel p,
.frontier-war-region-occupation-panel em,
.frontier-war-action-cinematic p,
.frontier-war-action-cinematic em,
.frontier-war-art-slots-panel p,
.frontier-war-art-slots-panel em,
.frontier-war-region-overlay-panel p,
.frontier-war-region-overlay-panel em,
.frontier-war-faction-landmarks-panel p,
.frontier-war-faction-landmarks-panel em,
.frontier-war-battle-fireline-panel p,
.frontier-war-battle-fireline-panel em,
.frontier-war-dynamic-war-panel p,
.frontier-war-dynamic-war-panel em,
.frontier-war-action-aftershock-panel p,
.frontier-war-action-aftershock-panel em,
.frontier-war-consequence-flow-panel p,
.frontier-war-consequence-flow-panel em,
.frontier-war-decision-cue-panel p,
.frontier-war-decision-cue-panel em,
.frontier-war-confirm-stack-playback-panel p,
.frontier-war-confirm-stack-playback-panel em,
.frontier-war-confirm-stack-drilldown-panel p,
.frontier-war-confirm-stack-drilldown-panel em,
.frontier-war-confirm-stack-filter-panel p,
.frontier-war-confirm-stack-filter-panel em,
.frontier-war-confirm-stack-panel p,
.frontier-war-confirm-stack-panel em,
.frontier-war-confirm-replay-panel p,
.frontier-war-confirm-replay-panel em,
.frontier-war-confirm-trace-panel p,
.frontier-war-confirm-trace-panel em,
.frontier-war-decision-preview-panel p,
.frontier-war-decision-preview-panel em,
.frontier-war-decision-rationale-panel p,
.frontier-war-decision-rationale-panel em,
.frontier-war-action-cinematic-target p,
.frontier-war-action-cinematic-target em {
    display: block;
    min-width: 0;
    margin: 4px 0 0;
    color: #c8d7d4;
    font-size: 0.74rem;
    font-style: normal;
    line-height: 1.34;
    overflow-wrap: anywhere;
}

.frontier-war-region-occupation-grid,
.frontier-war-action-cinematic-rail,
.frontier-war-action-cinematic-tracks,
.frontier-war-art-slot-grid,
.frontier-war-region-overlay-grid,
.frontier-war-faction-landmark-grid,
.frontier-war-battle-fireline-grid,
.frontier-war-dynamic-war-grid,
.frontier-war-action-aftershock-grid,
.frontier-war-consequence-flow-grid,
.frontier-war-decision-cue-grid,
.frontier-war-confirm-stack-drilldown-summary,
.frontier-war-confirm-stack-drilldown-grid,
.frontier-war-confirm-stack-filter-grid,
.frontier-war-confirm-stack-grid,
.frontier-war-confirm-replay-grid,
.frontier-war-confirm-trace-grid,
.frontier-war-decision-preview-grid,
.frontier-war-decision-rationale-grid,
.frontier-war-action-cinematic-target {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
}

.frontier-war-region-occupation-grid article,
.frontier-war-action-cinematic-rail article,
.frontier-war-art-slot-grid article,
.frontier-war-region-overlay-grid article,
.frontier-war-faction-landmark-grid article,
.frontier-war-battle-fireline-grid article,
.frontier-war-dynamic-war-grid article,
.frontier-war-action-aftershock-grid article,
.frontier-war-consequence-flow-grid article,
.frontier-war-decision-cue-grid article,
.frontier-war-confirm-stack-drilldown-summary article,
.frontier-war-confirm-stack-drilldown-grid article,
.frontier-war-confirm-stack-filter-grid article,
.frontier-war-confirm-stack-grid article,
.frontier-war-confirm-replay-grid article,
.frontier-war-confirm-trace-grid article,
.frontier-war-decision-preview-grid article,
.frontier-war-decision-rationale-grid article,
.frontier-war-action-cinematic-target > div {
    min-width: 0;
    padding: 9px;
    border: 1px solid rgba(240, 199, 110, 0.18);
    border-radius: 8px;
    background: linear-gradient(180deg, rgba(18, 31, 32, 0.92), rgba(7, 14, 16, 0.86));
}

.frontier-war-action-cinematic-rail {
    margin-top: 8px;
}

.frontier-war-action-cinematic-rail article {
    min-height: 108px;
    background:
        radial-gradient(circle at 0 0, rgba(240, 199, 110, 0.14), transparent 42%),
        linear-gradient(180deg, rgba(19, 28, 30, 0.94), rgba(7, 14, 16, 0.9));
}

.frontier-war-action-cinematic-rail span,
.frontier-war-action-cinematic-target span {
    display: block;
    color: #f0c76e;
    font-size: 0.66rem;
    font-weight: 900;
    line-height: 1.25;
    overflow-wrap: anywhere;
}

.frontier-war-action-cinematic-tracks span {
    min-width: 0;
    padding: 7px 8px;
    border: 1px solid rgba(116, 214, 202, 0.16);
    border-radius: 999px;
    color: #c8d7d4;
    background: rgba(116, 214, 202, 0.06);
    font-size: 0.7rem;
    overflow-wrap: anywhere;
}

.frontier-war-action-cinematic-tracks b {
    margin-right: 5px;
    color: #74d6ca;
}

.frontier-war-action-cinematic-target {
    margin: 10px 0;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.frontier-war-action-cinematic-target > div {
    border-color: rgba(240, 199, 110, 0.24);
    background:
        linear-gradient(90deg, rgba(5, 10, 12, 0.94), rgba(5, 10, 12, 0.58)),
        url('../images/frontier-war/battle-report-banner-v19.png') center / cover no-repeat;
}

.frontier-war-actions-cinematic-v117 .frontier-war-action {
    position: relative;
    overflow: hidden;
}

.frontier-war-actions-cinematic-v117 .frontier-war-action::after {
    content: '';
    position: absolute;
    inset: 0;
    pointer-events: none;
    opacity: 0;
    background: linear-gradient(115deg, transparent 0 28%, rgba(255, 246, 220, 0.2) 45%, transparent 62% 100%);
    transform: translateX(-65%);
}

.frontier-war-actions-cinematic-v117 .frontier-war-action.primary::after,
.frontier-war-actions-cinematic-v117 .frontier-war-action:hover::after {
    opacity: 1;
    animation: frontierWarActionSheen 1.6s ease-out infinite;
}

@keyframes frontierWarActionSheen {
    0% { transform: translateX(-76%); }
    58% { transform: translateX(78%); }
    100% { transform: translateX(78%); }
}

.frontier-war-report-illustrated-map article.art-slots {
    border-color: rgba(116, 214, 202, 0.4);
    background:
        radial-gradient(circle at 20% 10%, rgba(116, 214, 202, 0.14), transparent 40%),
        linear-gradient(180deg, rgba(12, 26, 27, 0.8), rgba(6, 12, 13, 0.78));
}

.frontier-war-report-illustrated-map article.region-overlay {
    border-color: rgba(116, 214, 202, 0.46);
    background:
        radial-gradient(circle at 18% 0%, rgba(116, 214, 202, 0.18), transparent 42%),
        linear-gradient(180deg, rgba(10, 27, 27, 0.82), rgba(6, 12, 13, 0.78));
}

.frontier-war-report-illustrated-map article.faction-landmarks {
    border-color: rgba(240, 199, 110, 0.46);
    background:
        radial-gradient(circle at 80% 8%, rgba(240, 199, 110, 0.18), transparent 42%),
        linear-gradient(180deg, rgba(24, 20, 12, 0.82), rgba(6, 12, 13, 0.78));
}

.frontier-war-report-illustrated-map article.battle-fireline {
    border-color: rgba(216, 95, 95, 0.48);
    background:
        radial-gradient(circle at 82% 0%, rgba(216, 95, 95, 0.2), transparent 42%),
        linear-gradient(180deg, rgba(30, 13, 12, 0.82), rgba(6, 12, 13, 0.78));
}

.frontier-war-report-illustrated-map article.dynamic-war {
    border-color: rgba(238, 173, 70, 0.52);
    background:
        radial-gradient(circle at 16% 8%, rgba(116, 214, 202, 0.2), transparent 36%),
        radial-gradient(circle at 82% 4%, rgba(216, 95, 95, 0.24), transparent 40%),
        linear-gradient(180deg, rgba(25, 17, 12, 0.84), rgba(6, 12, 13, 0.78));
}

.frontier-war-report-illustrated-map article.action-aftershock {
    border-color: rgba(255, 220, 142, 0.58);
    background:
        radial-gradient(circle at 20% 10%, rgba(255, 244, 214, 0.24), transparent 36%),
        radial-gradient(circle at 78% 18%, rgba(238, 95, 55, 0.24), transparent 42%),
        linear-gradient(180deg, rgba(28, 18, 11, 0.88), rgba(6, 12, 13, 0.78));
}

.frontier-war-report-illustrated-map article.consequence-flow {
    border-color: rgba(116, 214, 202, 0.5);
    background:
        radial-gradient(circle at 18% 10%, rgba(116, 214, 202, 0.22), transparent 34%),
        radial-gradient(circle at 82% 18%, rgba(238, 95, 55, 0.18), transparent 38%),
        linear-gradient(180deg, rgba(18, 31, 30, 0.88), rgba(6, 12, 13, 0.78));
}

.frontier-war-report-illustrated-map article.decision-cues {
    border-color: rgba(255, 238, 190, 0.54);
    background:
        radial-gradient(circle at 16% 8%, rgba(255, 238, 190, 0.2), transparent 36%),
        radial-gradient(circle at 82% 14%, rgba(116, 214, 202, 0.18), transparent 40%),
        linear-gradient(180deg, rgba(27, 24, 14, 0.88), rgba(6, 12, 13, 0.78));
}

.frontier-war-report-illustrated-map article.confirm-trace {
    border-color: rgba(116, 214, 202, 0.58);
    background:
        radial-gradient(circle at 16% 8%, rgba(116, 214, 202, 0.22), transparent 36%),
        radial-gradient(circle at 82% 14%, rgba(255, 238, 190, 0.2), transparent 40%),
        linear-gradient(180deg, rgba(16, 30, 29, 0.9), rgba(6, 12, 13, 0.78));
}

.frontier-war-report-illustrated-map article.confirm-replay {
    border-color: rgba(255, 238, 190, 0.64);
    background:
        radial-gradient(circle at 14% 8%, rgba(255, 238, 190, 0.26), transparent 36%),
        radial-gradient(circle at 82% 16%, rgba(116, 214, 202, 0.2), transparent 40%),
        linear-gradient(180deg, rgba(30, 25, 14, 0.9), rgba(6, 12, 13, 0.78));
}

.frontier-war-report-illustrated-map article.confirm-stack {
    border-color: rgba(116, 214, 202, 0.64);
    background:
        radial-gradient(circle at 14% 8%, rgba(116, 214, 202, 0.26), transparent 36%),
        radial-gradient(circle at 82% 16%, rgba(255, 238, 190, 0.2), transparent 40%),
        linear-gradient(180deg, rgba(16, 30, 29, 0.9), rgba(6, 12, 13, 0.78));
}

.frontier-war-report-illustrated-map article.confirm-stack-filter {
    border-color: rgba(138, 224, 181, 0.66);
    background:
        radial-gradient(circle at 14% 8%, rgba(138, 224, 181, 0.24), transparent 36%),
        radial-gradient(circle at 82% 16%, rgba(116, 214, 202, 0.2), transparent 40%),
        linear-gradient(180deg, rgba(15, 32, 25, 0.9), rgba(6, 12, 13, 0.78));
}

.frontier-war-report-illustrated-map article.confirm-stack-drilldown {
    border-color: rgba(255, 238, 190, 0.68);
    background:
        radial-gradient(circle at 14% 8%, rgba(255, 238, 190, 0.25), transparent 36%),
        radial-gradient(circle at 82% 16%, rgba(138, 224, 181, 0.2), transparent 40%),
        linear-gradient(180deg, rgba(32, 28, 15, 0.9), rgba(6, 12, 13, 0.78));
}

.frontier-war-report-illustrated-map article.confirm-stack-playback {
    border-color: rgba(116, 214, 202, 0.72);
    background:
        radial-gradient(circle at 14% 8%, rgba(116, 214, 202, 0.28), transparent 36%),
        radial-gradient(circle at 82% 16%, rgba(255, 238, 190, 0.2), transparent 40%),
        linear-gradient(180deg, rgba(12, 31, 31, 0.92), rgba(6, 12, 13, 0.78));
}

.frontier-war-report-illustrated-map article.confirm-stack-playback-pin {
    border-color: rgba(255, 238, 190, 0.74);
    background:
        radial-gradient(circle at 14% 8%, rgba(255, 238, 190, 0.26), transparent 36%),
        radial-gradient(circle at 84% 18%, rgba(116, 214, 202, 0.24), transparent 40%),
        linear-gradient(180deg, rgba(28, 26, 14, 0.93), rgba(6, 12, 13, 0.78));
}

.frontier-war-report-illustrated-map article.confirm-stack-recommendation {
    border-color: rgba(138, 224, 181, 0.76);
    background:
        radial-gradient(circle at 12% 8%, rgba(138, 224, 181, 0.26), transparent 36%),
        radial-gradient(circle at 84% 18%, rgba(255, 238, 190, 0.2), transparent 40%),
        linear-gradient(180deg, rgba(13, 32, 25, 0.94), rgba(6, 12, 13, 0.78));
}

.frontier-war-report-illustrated-map article.confirm-stack-commit-preview {
    border-color: rgba(240, 199, 110, 0.78);
    background:
        radial-gradient(circle at 14% 8%, rgba(240, 199, 110, 0.28), transparent 36%),
        radial-gradient(circle at 84% 18%, rgba(138, 224, 181, 0.2), transparent 40%),
        linear-gradient(180deg, rgba(34, 27, 13, 0.94), rgba(6, 12, 13, 0.78));
}

.frontier-war-report-illustrated-map article.confirm-stack-commit-highlight {
    border-color: rgba(138, 224, 181, 0.8);
    background:
        radial-gradient(circle at 14% 8%, rgba(138, 224, 181, 0.3), transparent 36%),
        radial-gradient(circle at 84% 18%, rgba(240, 199, 110, 0.22), transparent 40%),
        linear-gradient(180deg, rgba(13, 34, 27, 0.94), rgba(7, 18, 18, 0.8));
}

.frontier-war-report-illustrated-map article.confirm-stack-outcome-echo {
    border-color: rgba(116, 214, 202, 0.82);
    background:
        radial-gradient(circle at 14% 8%, rgba(116, 214, 202, 0.3), transparent 36%),
        radial-gradient(circle at 84% 18%, rgba(240, 199, 110, 0.24), transparent 40%),
        linear-gradient(180deg, rgba(11, 32, 34, 0.94), rgba(7, 18, 18, 0.82));
}

.frontier-war-report-illustrated-map article.confirm-stack-trace-jump {
    border-color: rgba(255, 190, 122, 0.84);
    background:
        radial-gradient(circle at 14% 8%, rgba(255, 190, 122, 0.28), transparent 36%),
        radial-gradient(circle at 84% 18%, rgba(116, 214, 202, 0.22), transparent 40%),
        linear-gradient(180deg, rgba(40, 27, 18, 0.94), rgba(7, 18, 18, 0.82));
}

.frontier-war-report-illustrated-map article.confirm-stack-trace-landing {
    border-color: rgba(138, 224, 181, 0.86);
    background:
        radial-gradient(circle at 14% 8%, rgba(138, 224, 181, 0.3), transparent 36%),
        radial-gradient(circle at 84% 18%, rgba(255, 190, 122, 0.22), transparent 40%),
        linear-gradient(180deg, rgba(16, 38, 28, 0.94), rgba(7, 18, 18, 0.82));
}

.frontier-war-report-illustrated-map article.confirm-stack-trace-landing-decay {
    border-color: rgba(116, 214, 202, 0.88);
    background:
        radial-gradient(circle at 12% 8%, rgba(116, 214, 202, 0.3), transparent 36%),
        radial-gradient(circle at 84% 16%, rgba(138, 224, 181, 0.22), transparent 40%),
        linear-gradient(180deg, rgba(12, 35, 36, 0.94), rgba(7, 18, 18, 0.82));
}

.frontier-war-report-illustrated-map article.confirm-stack-echo-trail-handoff {
    border-color: rgba(255, 190, 122, 0.88);
    background:
        radial-gradient(circle at 12% 8%, rgba(255, 190, 122, 0.3), transparent 36%),
        radial-gradient(circle at 84% 16%, rgba(116, 214, 202, 0.24), transparent 40%),
        linear-gradient(180deg, rgba(38, 27, 16, 0.94), rgba(7, 18, 18, 0.82));
}

.frontier-war-report-illustrated-map article.confirm-stack-entry-handoff-intent {
    border-color: rgba(255, 238, 190, 0.9);
    background:
        radial-gradient(circle at 12% 8%, rgba(255, 238, 190, 0.28), transparent 36%),
        radial-gradient(circle at 84% 16%, rgba(138, 224, 181, 0.2), transparent 40%),
        linear-gradient(180deg, rgba(39, 33, 18, 0.94), rgba(7, 18, 18, 0.82));
}

.frontier-war-report-illustrated-map article.confirm-stack-intent-confidence-replay {
    border-color: rgba(116, 214, 202, 0.92);
    background:
        radial-gradient(circle at 12% 8%, rgba(116, 214, 202, 0.28), transparent 36%),
        radial-gradient(circle at 84% 16%, rgba(255, 238, 190, 0.2), transparent 40%),
        linear-gradient(180deg, rgba(17, 39, 35, 0.94), rgba(7, 18, 18, 0.82));
}

.frontier-war-report-illustrated-map article.confirm-stack-action-receipt-mirror {
    border-color: rgba(138, 224, 181, 0.94);
    background:
        radial-gradient(circle at 12% 8%, rgba(138, 224, 181, 0.3), transparent 36%),
        radial-gradient(circle at 84% 16%, rgba(116, 214, 202, 0.22), transparent 40%),
        linear-gradient(180deg, rgba(18, 40, 30, 0.94), rgba(7, 18, 18, 0.82));
}

.frontier-war-report-illustrated-map article.confirm-stack-receipt-diff-guard {
    border-color: rgba(255, 238, 190, 0.94);
    background:
        radial-gradient(circle at 12% 8%, rgba(255, 238, 190, 0.28), transparent 36%),
        radial-gradient(circle at 84% 16%, rgba(138, 224, 181, 0.22), transparent 40%),
        linear-gradient(180deg, rgba(40, 34, 18, 0.94), rgba(7, 18, 18, 0.82));
}

.frontier-war-report-illustrated-map article.confirm-stack-guarded-undo-drilldown {
    border-color: rgba(116, 214, 202, 0.96);
    background:
        radial-gradient(circle at 12% 8%, rgba(116, 214, 202, 0.28), transparent 36%),
        radial-gradient(circle at 84% 16%, rgba(255, 238, 190, 0.2), transparent 40%),
        linear-gradient(180deg, rgba(16, 38, 38, 0.94), rgba(7, 18, 18, 0.82));
}

.frontier-war-report-illustrated-map article.confirm-stack-replay-pin-compare {
    border-color: rgba(255, 224, 138, 0.98);
    background:
        radial-gradient(circle at 12% 8%, rgba(255, 224, 138, 0.28), transparent 36%),
        radial-gradient(circle at 84% 16%, rgba(116, 214, 202, 0.24), transparent 40%),
        linear-gradient(180deg, rgba(43, 35, 16, 0.94), rgba(7, 18, 18, 0.82));
}

.frontier-war-report-illustrated-map article.confirm-stack-return-path-fault-drill {
    border-color: rgba(255, 196, 106, 0.98);
    background:
        radial-gradient(circle at 12% 8%, rgba(255, 196, 106, 0.3), transparent 36%),
        radial-gradient(circle at 84% 16%, rgba(129, 215, 255, 0.22), transparent 40%),
        linear-gradient(180deg, rgba(45, 27, 14, 0.94), rgba(7, 18, 22, 0.84));
}

.frontier-war-report-illustrated-map article.confirm-stack-cause-filtered-undo-timeline {
    border-color: rgba(255, 174, 128, 0.96);
    background:
        radial-gradient(circle at 12% 8%, rgba(255, 174, 128, 0.28), transparent 36%),
        radial-gradient(circle at 84% 16%, rgba(116, 214, 202, 0.22), transparent 40%),
        linear-gradient(180deg, rgba(43, 24, 25, 0.94), rgba(7, 18, 18, 0.82));
}

.frontier-war-report-illustrated-map article.confirm-stack-filter-slot {
    border-color: rgba(138, 224, 181, 0.28);
}

.frontier-war-report-illustrated-map article.confirm-stack-replay-pin-compare-slot,
.frontier-war-report-illustrated-map article.confirm-stack-misjump-recovery-slot,
.frontier-war-report-illustrated-map article.confirm-stack-recovery-receipt-slot {
    border-color: rgba(255, 224, 138, 0.28);
}

.frontier-war-report-illustrated-map article.confirm-stack-return-path-fault-slot,
.frontier-war-report-illustrated-map article.confirm-stack-return-path-drill-slot,
.frontier-war-report-illustrated-map article.confirm-stack-return-path-proof-slot {
    border-color: rgba(255, 196, 106, 0.3);
}

.frontier-war-report-illustrated-map article.confirm-stack-drilldown-slot {
    border-color: rgba(255, 238, 190, 0.3);
}

.frontier-war-report-illustrated-map article.confirm-stack-playback-slot {
    border-color: rgba(116, 214, 202, 0.32);
}

.frontier-war-report-illustrated-map article.confirm-stack-playback-pin-slot {
    border-color: rgba(255, 238, 190, 0.32);
}

.frontier-war-report-illustrated-map article.confirm-stack-recommendation-slot {
    border-color: rgba(138, 224, 181, 0.34);
}

.frontier-war-report-illustrated-map article.confirm-stack-commit-preview-slot {
    border-color: rgba(240, 199, 110, 0.34);
}

.frontier-war-report-illustrated-map article.confirm-stack-commit-highlight-slot {
    border-color: rgba(138, 224, 181, 0.36);
}

.frontier-war-report-illustrated-map article.confirm-stack-outcome-echo-slot {
    border-color: rgba(116, 214, 202, 0.38);
}

.frontier-war-report-illustrated-map article.confirm-stack-trace-jump-slot {
    border-color: rgba(255, 190, 122, 0.38);
}

.frontier-war-report-illustrated-map article.confirm-stack-trace-landing-slot {
    border-color: rgba(138, 224, 181, 0.4);
}

.frontier-war-report-illustrated-map article.confirm-stack-trace-landing-decay-slot,
.frontier-war-report-illustrated-map article.confirm-stack-trace-landing-echo-slot {
    border-color: rgba(116, 214, 202, 0.4);
}

.frontier-war-report-illustrated-map article.confirm-stack-echo-trail-handoff-slot,
.frontier-war-report-illustrated-map article.confirm-stack-echo-trail-entry-slot {
    border-color: rgba(255, 190, 122, 0.42);
}

.frontier-war-report-illustrated-map article.confirm-stack-entry-handoff-intent-slot,
.frontier-war-report-illustrated-map article.confirm-stack-entry-handoff-breadcrumb-slot {
    border-color: rgba(255, 238, 190, 0.42);
}

.frontier-war-report-illustrated-map article.confirm-stack-action-receipt-slot,
.frontier-war-report-illustrated-map article.confirm-stack-undo-mirror-slot,
.frontier-war-report-illustrated-map article.confirm-stack-receipt-diff-slot,
.frontier-war-report-illustrated-map article.confirm-stack-undo-safety-slot,
.frontier-war-report-illustrated-map article.confirm-stack-intent-confidence-slot,
.frontier-war-report-illustrated-map article.confirm-stack-return-replay-slot {
    border-color: rgba(116, 214, 202, 0.42);
}

.frontier-war-report-illustrated-map article.confirm-stack-action-receipt-slot.active,
.frontier-war-report-illustrated-map article.confirm-stack-undo-mirror-slot.ready,
.frontier-war-report-illustrated-map article.confirm-stack-receipt-diff-slot.active,
.frontier-war-report-illustrated-map article.confirm-stack-undo-safety-slot.ready,
.frontier-war-report-illustrated-map article.confirm-stack-intent-confidence-slot.active,
.frontier-war-report-illustrated-map article.confirm-stack-return-replay-slot.ready {
    border-color: rgba(116, 214, 202, 0.78);
    box-shadow: 0 0 0 1px rgba(116, 214, 202, 0.2) inset;
}

.frontier-war-report-illustrated-map article.confirm-stack-entry-handoff-breadcrumb-slot.active,
.frontier-war-report-illustrated-map article.confirm-stack-entry-handoff-intent-slot.active {
    border-color: rgba(255, 238, 190, 0.78);
    box-shadow: 0 0 0 1px rgba(255, 238, 190, 0.2) inset;
}

.frontier-war-report-illustrated-map article.confirm-stack-echo-trail-entry-slot.role-current,
.frontier-war-report-illustrated-map article.confirm-stack-echo-trail-handoff-slot.active {
    border-color: rgba(255, 190, 122, 0.76);
    box-shadow: 0 0 0 1px rgba(255, 190, 122, 0.2) inset;
}

.frontier-war-report-illustrated-map article.confirm-stack-trace-landing-decay-slot.active,
.frontier-war-report-illustrated-map article.confirm-stack-trace-landing-echo-slot.active {
    border-color: rgba(116, 214, 202, 0.72);
    box-shadow: 0 0 0 1px rgba(116, 214, 202, 0.2) inset;
}

.frontier-war-report-illustrated-map article.confirm-stack-trace-landing-slot.active {
    border-color: rgba(138, 224, 181, 0.72);
    box-shadow: 0 0 0 1px rgba(138, 224, 181, 0.2) inset;
}

.frontier-war-report-illustrated-map article.confirm-stack-recommendation-slot.active {
    border-color: rgba(138, 224, 181, 0.68);
    box-shadow: 0 0 0 1px rgba(138, 224, 181, 0.18) inset;
}

.frontier-war-report-illustrated-map article.confirm-stack-slot {
    border-color: rgba(116, 214, 202, 0.3);
}

.frontier-war-report-illustrated-map article.decision-rationale {
    border-color: rgba(255, 238, 190, 0.62);
    background:
        radial-gradient(circle at 14% 8%, rgba(255, 238, 190, 0.24), transparent 36%),
        radial-gradient(circle at 80% 16%, rgba(238, 95, 55, 0.18), transparent 40%),
        linear-gradient(180deg, rgba(30, 24, 14, 0.9), rgba(6, 12, 13, 0.78));
}

.frontier-war-report-illustrated-map article.decision-preview {
    border-color: rgba(116, 214, 202, 0.62);
    background:
        radial-gradient(circle at 16% 8%, rgba(116, 214, 202, 0.26), transparent 36%),
        radial-gradient(circle at 80% 16%, rgba(240, 199, 110, 0.18), transparent 40%),
        linear-gradient(180deg, rgba(17, 30, 30, 0.9), rgba(6, 12, 13, 0.78));
}

.frontier-war-report-illustrated-map article.region-occupation {
    border-color: rgba(238, 173, 70, 0.44);
    background:
        radial-gradient(circle at 80% 0%, rgba(216, 95, 95, 0.14), transparent 42%),
        linear-gradient(180deg, rgba(24, 18, 13, 0.78), rgba(6, 12, 13, 0.78));
}

.frontier-war-report-combat-feedback article.action-cinematic {
    border-color: rgba(240, 199, 110, 0.46);
}

.frontier-war-overview {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 8px;
}

.frontier-war-overview div {
    min-width: 0;
    padding: 10px;
    border: 1px solid rgba(179, 224, 212, 0.18);
    border-left: 3px solid rgba(240, 199, 110, 0.46);
    border-radius: 8px;
    background:
        radial-gradient(circle at 100% 0%, rgba(116, 214, 202, 0.1), transparent 42%),
        linear-gradient(180deg, rgba(16, 31, 32, 0.95), rgba(9, 16, 18, 0.93));
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.045);
}

.frontier-war-overview span,
.frontier-war-overview em,
.frontier-war-detail-grid span,
.frontier-war-chance span {
    display: block;
    font-size: 0.78rem;
}

.frontier-war-overview strong {
    display: block;
    margin: 5px 0 2px;
    color: #74d6ca;
    font-size: 1.02rem;
    line-height: 1.2;
    overflow-wrap: anywhere;
}

.frontier-war-toolbar,
.frontier-war-complete {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 14px;
    margin-bottom: 14px;
}

.frontier-war-complete {
    display: block;
    color: #f2e6c7;
    border-color: rgba(240, 199, 110, 0.34);
}

.frontier-war-toolbar strong {
    display: block;
    color: #f2e6c7;
}

.frontier-war-toolbar-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: flex-end;
}

.frontier-war-pressure-strip {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    gap: 12px;
    align-items: center;
    padding: 12px 14px;
    border: 1px solid rgba(240, 199, 110, 0.28);
    border-radius: 8px;
    background:
        linear-gradient(90deg, rgba(240, 199, 110, 0.1), rgba(255, 255, 255, 0.045)),
        rgba(6, 13, 15, 0.58);
}

.frontier-war-pressure-strip.danger {
    border-color: rgba(216, 95, 95, 0.36);
    background:
        linear-gradient(90deg, rgba(216, 95, 95, 0.12), rgba(255, 255, 255, 0.04)),
        rgba(6, 13, 15, 0.58);
}

.frontier-war-pressure-strip > div {
    min-width: 0;
}

.frontier-war-pressure-strip span,
.frontier-war-pressure-strip strong,
.frontier-war-pressure-strip p {
    display: block;
    min-width: 0;
}

.frontier-war-pressure-strip > div:first-child > span {
    color: #f0c76e;
    font-size: 0.72rem;
}

.frontier-war-pressure-strip strong {
    margin-top: 2px;
    color: #f2e6c7;
}

.frontier-war-pressure-strip p {
    margin: 3px 0 0;
    color: #c8d7d4;
    font-size: 0.82rem;
    line-height: 1.38;
    overflow-wrap: anywhere;
}

.frontier-war-pressure-kpis,
.frontier-war-pressure-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    justify-content: flex-end;
}

.frontier-war-pressure-kpis span {
    padding: 4px 8px;
    border: 1px solid rgba(240, 199, 110, 0.18);
    border-radius: 999px;
    color: #dbe7e3;
    background: rgba(240, 199, 110, 0.06);
    font-size: 0.72rem;
}

.frontier-war-pressure-actions button {
    min-height: 30px;
    padding: 4px 10px;
    border: 1px solid rgba(116, 214, 202, 0.28);
    border-radius: 999px;
    color: #e9f1ef;
    background: rgba(116, 214, 202, 0.08);
    cursor: pointer;
}

.frontier-war-pressure-actions button:hover {
    border-color: rgba(116, 214, 202, 0.58);
    background: rgba(116, 214, 202, 0.14);
}

.frontier-war-small-btn,
.frontier-war-action {
    border: 1px solid rgba(116, 214, 202, 0.34);
    border-radius: 8px;
    color: #e9f1ef;
    background: linear-gradient(180deg, rgba(116, 214, 202, 0.15), rgba(28, 55, 55, 0.22));
    cursor: pointer;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.045);
}

.frontier-war-small-btn {
    min-height: 34px;
    padding: 7px 12px;
}

.frontier-war-small-btn:hover,
.frontier-war-action:hover:not(:disabled) {
    border-color: rgba(116, 214, 202, 0.65);
    background: rgba(116, 214, 202, 0.16);
}

.frontier-war-layout {
    display: grid;
    grid-template-columns: minmax(520px, 1.52fr) minmax(300px, 0.72fr);
    gap: 14px;
    align-items: start;
    min-width: 0;
}

.frontier-war-layout > * {
    min-width: 0;
    max-width: 100%;
}

.frontier-war-map-panel,
.frontier-war-detail,
.frontier-war-heroes,
.frontier-war-log,
.frontier-war-strategy,
.frontier-war-target,
.frontier-war-command,
.frontier-war-season-goals,
.frontier-war-region-control,
.frontier-war-contracts,
.frontier-war-nemesis,
.frontier-war-enemy-director,
.frontier-war-season-chain,
.frontier-war-campaign-report,
.frontier-war-battle-report,
.frontier-war-ai,
.frontier-war-season,
.frontier-war-balance,
.frontier-war-playtest,
.frontier-war-viewport-qa,
.frontier-war-longrun,
.frontier-war-art,
.frontier-war-commercial-packaging,
.frontier-war-build,
.frontier-war-scenarios,
.frontier-war-factions,
.frontier-war-reference,
.frontier-war-report-art,
.frontier-war-report-commercial,
.frontier-war-report-illustrated-map {
    padding: 14px;
}

.frontier-war-section-title {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 14px;
    padding-bottom: 10px;
    border-bottom: 1px solid rgba(240, 199, 110, 0.12);
}

.frontier-war-section-title h4 {
    margin: 0;
    color: #f2e6c7;
    text-shadow: 0 1px 12px rgba(0, 0, 0, 0.38);
    font-size: 1.02rem;
}

.frontier-war-map-panel {
    background:
        linear-gradient(180deg, rgba(5, 10, 12, 0.32), rgba(5, 10, 12, 0.86)),
        url('../images/frontier-war/jianghu-war-council-v5.png') center / cover no-repeat;
    border-color: rgba(240, 199, 110, 0.22);
}

.frontier-war-map-panel .frontier-war-section-title {
    border-bottom-color: rgba(240, 199, 110, 0.18);
}

.frontier-war-player-mode {
    display: grid;
    grid-template-columns: minmax(560px, 1.35fr) minmax(320px, 0.65fr);
    gap: 14px;
    align-items: start;
    min-width: 0;
}

.frontier-war-player-summary {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
    min-width: 0;
}

.frontier-war-player-dashboard,
.frontier-war-player-actions,
.frontier-war-player-goal,
.frontier-war-player-node {
    position: relative;
    overflow: hidden;
    padding: 14px;
    border: 1px solid rgba(179, 224, 212, 0.16);
    border-radius: 8px;
    background:
        radial-gradient(circle at 0 0, rgba(240, 199, 110, 0.1), transparent 34%),
        linear-gradient(180deg, rgba(16, 28, 30, 0.97), rgba(7, 14, 16, 0.94));
    box-shadow: 0 18px 42px rgba(0, 0, 0, 0.28), inset 0 1px 0 rgba(255, 255, 255, 0.05);
}

.frontier-war-player-dashboard::before,
.frontier-war-player-actions::before,
.frontier-war-player-goal::before,
.frontier-war-player-node::before {
    content: '';
    position: absolute;
    inset: 0 0 auto 0;
    height: 1px;
    background: linear-gradient(90deg, rgba(240, 199, 110, 0.72), rgba(116, 214, 202, 0.2), transparent 74%);
}

.frontier-war-player-action-grid {
    display: grid;
    gap: 9px;
}

.frontier-war-player-action-grid button {
    display: grid;
    grid-template-columns: 30px minmax(0, 1fr);
    gap: 10px;
    align-items: start;
    min-width: 0;
    min-height: 78px;
    padding: 10px;
    border: 1px solid rgba(179, 224, 212, 0.16);
    border-radius: 8px;
    color: #e9f1ef;
    text-align: left;
    background: rgba(255, 255, 255, 0.045);
    cursor: pointer;
    transition: transform 0.18s ease, border-color 0.18s ease, background 0.18s ease;
}

.frontier-war-player-action-grid button.primary {
    border-color: rgba(240, 199, 110, 0.52);
    background: rgba(240, 199, 110, 0.1);
}

.frontier-war-player-action-grid button.danger {
    border-color: rgba(216, 95, 95, 0.38);
}

.frontier-war-player-action-grid button.success {
    border-color: rgba(116, 214, 202, 0.38);
}

.frontier-war-player-action-grid button:hover {
    border-color: rgba(240, 199, 110, 0.58);
    transform: translateY(-1px);
}

.frontier-war-player-action-grid b {
    display: grid;
    place-items: center;
    width: 30px;
    height: 30px;
    border: 1px solid rgba(240, 199, 110, 0.36);
    border-radius: 50%;
    color: #081012;
    background: #f0c76e;
    font-size: 0.78rem;
}

.frontier-war-player-action-grid span,
.frontier-war-player-action-grid strong,
.frontier-war-player-action-grid em,
.frontier-war-player-action-grid small {
    display: block;
    min-width: 0;
    overflow-wrap: anywhere;
}

.frontier-war-player-action-grid strong,
.frontier-war-player-goal strong,
.frontier-war-player-node strong {
    color: #f2e6c7;
}

.frontier-war-player-action-grid em {
    margin-top: 2px;
    color: #74d6ca;
    font-style: normal;
    font-size: 0.75rem;
}

.frontier-war-player-action-grid small {
    margin-top: 5px;
    color: #b8c9c5;
    font-size: 0.76rem;
    line-height: 1.35;
}

.frontier-war-action-impact {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    margin-top: 7px;
}

.frontier-war-action-impact em {
    display: inline-flex;
    align-items: center;
    max-width: 100%;
    padding: 3px 6px;
    border: 1px solid rgba(179, 224, 212, 0.12);
    border-radius: 999px;
    color: #c8d7d4;
    background: rgba(6, 13, 15, 0.42);
    font-style: normal;
    font-size: 0.68rem;
    line-height: 1.2;
}

.frontier-war-action-impact em.success {
    border-color: rgba(116, 214, 202, 0.26);
    color: #a9eee4;
}

.frontier-war-action-impact em.warning {
    border-color: rgba(240, 199, 110, 0.3);
    color: #f0d493;
}

.frontier-war-action-impact em.danger {
    border-color: rgba(216, 95, 95, 0.34);
    color: #ffb1a9;
}

.frontier-war-player-dashboard {
    display: grid;
    gap: 10px;
}

.frontier-war-player-judgement {
    display: grid;
    gap: 4px;
    padding: 10px;
    border: 1px solid rgba(240, 199, 110, 0.18);
    border-radius: 8px;
    background:
        radial-gradient(circle at 0 0, rgba(240, 199, 110, 0.12), transparent 38%),
        rgba(255, 255, 255, 0.045);
}

.frontier-war-player-judgement span,
.frontier-war-player-dashboard-card span {
    color: #74d6ca;
    font-size: 0.7rem;
}

.frontier-war-player-judgement strong,
.frontier-war-player-dashboard-card strong {
    color: #f2e6c7;
}

.frontier-war-player-judgement p,
.frontier-war-player-dashboard-card p {
    margin: 0;
    color: #c8d7d4;
    font-size: 0.78rem;
    line-height: 1.38;
}

.frontier-war-player-judgement.success {
    border-color: rgba(116, 214, 202, 0.34);
}

.frontier-war-player-judgement.warning {
    border-color: rgba(240, 199, 110, 0.34);
}

.frontier-war-player-judgement.danger {
    border-color: rgba(216, 95, 95, 0.4);
}

.frontier-war-player-opening-lane {
    display: grid;
    gap: 9px;
    padding: 10px;
    border: 1px solid rgba(179, 224, 212, 0.14);
    border-radius: 8px;
    background:
        radial-gradient(circle at 100% 0, rgba(116, 214, 202, 0.1), transparent 34%),
        rgba(255, 255, 255, 0.035);
}

.frontier-war-opening-current {
    display: grid;
    gap: 4px;
    padding: 9px;
    border: 1px solid rgba(240, 199, 110, 0.18);
    border-radius: 8px;
    background: rgba(6, 13, 15, 0.36);
}

.frontier-war-opening-current span,
.frontier-war-opening-steps small {
    color: #74d6ca;
    font-size: 0.7rem;
}

.frontier-war-opening-current strong,
.frontier-war-opening-steps strong {
    color: #f2e6c7;
}

.frontier-war-opening-current p {
    margin: 0;
    color: #c8d7d4;
    font-size: 0.78rem;
    line-height: 1.38;
}

.frontier-war-opening-current.success {
    border-color: rgba(116, 214, 202, 0.32);
}

.frontier-war-opening-current.warning {
    border-color: rgba(240, 199, 110, 0.34);
}

.frontier-war-opening-current.danger {
    border-color: rgba(216, 95, 95, 0.4);
}

.frontier-war-opening-steps {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
}

.frontier-war-opening-steps article {
    display: grid;
    gap: 6px;
    min-width: 0;
    padding: 9px;
    border: 1px solid rgba(179, 224, 212, 0.12);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.04);
}

.frontier-war-opening-steps article.active {
    border-color: rgba(240, 199, 110, 0.42);
    background: rgba(240, 199, 110, 0.08);
}

.frontier-war-opening-steps article.done {
    border-color: rgba(116, 214, 202, 0.3);
    background: rgba(116, 214, 202, 0.06);
}

.frontier-war-opening-steps article.danger {
    border-color: rgba(216, 95, 95, 0.32);
}

.frontier-war-opening-steps b {
    display: grid;
    place-items: center;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    color: #081012;
    background: #f0c76e;
    font-size: 0.7rem;
}

.frontier-war-opening-steps p,
.frontier-war-opening-steps em {
    margin: 0;
    color: #c8d7d4;
    font-size: 0.72rem;
    line-height: 1.34;
    font-style: normal;
    overflow-wrap: anywhere;
}

.frontier-war-opening-steps em {
    color: #aabfbb;
}

.frontier-war-opening-steps button {
    width: 100%;
    padding: 6px 8px;
    border: 1px solid rgba(240, 199, 110, 0.34);
    border-radius: 999px;
    color: #f2e6c7;
    background: rgba(240, 199, 110, 0.1);
    cursor: pointer;
    font-size: 0.72rem;
}

.frontier-war-opening-steps button:hover {
    border-color: rgba(240, 199, 110, 0.58);
    background: rgba(240, 199, 110, 0.16);
}

.frontier-war-opening-loop {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.frontier-war-opening-loop span {
    position: relative;
    padding: 4px 9px;
    border: 1px solid rgba(116, 214, 202, 0.18);
    border-radius: 999px;
    color: #a9eee4;
    background: rgba(6, 13, 15, 0.38);
    font-size: 0.7rem;
}

.frontier-war-opening-loop span:not(:last-child)::after {
    content: '>';
    position: absolute;
    right: -8px;
    color: rgba(240, 199, 110, 0.72);
}

.frontier-war-player-dashboard-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.frontier-war-player-dashboard-card {
    display: grid;
    gap: 7px;
    min-width: 0;
    padding: 10px;
    border: 1px solid rgba(179, 224, 212, 0.12);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.045);
}

.frontier-war-player-dashboard-card.success {
    border-color: rgba(116, 214, 202, 0.28);
}

.frontier-war-player-dashboard-card.warning {
    border-color: rgba(240, 199, 110, 0.3);
}

.frontier-war-player-dashboard-card.danger {
    border-color: rgba(216, 95, 95, 0.34);
}

.frontier-war-player-dashboard-card > div {
    display: grid;
    grid-template-columns: minmax(58px, 0.44fr) minmax(0, 1fr);
    gap: 5px 8px;
    align-items: start;
}

.frontier-war-player-dashboard-card b {
    min-width: 0;
    color: #fff4d8;
    font-size: 0.76rem;
    overflow-wrap: anywhere;
}

.frontier-war-player-dashboard-card > .frontier-war-power-breakdown,
.frontier-war-power-breakdown {
    display: grid;
    grid-template-columns: 1fr;
    gap: 9px;
    min-width: 0;
    margin: 8px 0 12px;
    padding: 10px;
    border: 1px solid rgba(240, 199, 110, 0.2);
    border-radius: 10px;
    background:
        radial-gradient(circle at 0 0, rgba(240, 199, 110, 0.1), transparent 36%),
        linear-gradient(135deg, rgba(6, 13, 15, 0.58), rgba(20, 34, 34, 0.34));
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.045);
}

.frontier-war-player-dashboard-card > .frontier-war-power-breakdown {
    margin: 2px 0 0;
}

.frontier-war-power-breakdown-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 2px 10px;
    align-items: end;
    min-width: 0;
}

.frontier-war-power-breakdown-head span,
.frontier-war-power-breakdown-head em {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.frontier-war-power-breakdown-head span {
    color: #74d6ca;
    font-size: 0.72rem;
}

.frontier-war-power-breakdown-head strong {
    grid-row: span 2;
    color: #fff4d8;
    font-size: 1.26rem;
    line-height: 1;
}

.frontier-war-power-breakdown-head em {
    color: #aabfbb;
    font-size: 0.68rem;
    font-style: normal;
}

.frontier-war-power-breakdown-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 7px;
}

.frontier-war-power-breakdown-item {
    display: grid;
    gap: 5px;
    min-width: 0;
    padding: 8px;
    border: 1px solid rgba(179, 224, 212, 0.13);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.045);
}

.frontier-war-power-breakdown-item.success {
    border-color: rgba(116, 214, 202, 0.24);
    background: rgba(116, 214, 202, 0.055);
}

.frontier-war-power-breakdown-item.danger {
    border-color: rgba(216, 95, 95, 0.32);
    background: rgba(216, 95, 95, 0.07);
}

.frontier-war-power-breakdown-item > div:first-child {
    display: flex;
    justify-content: space-between;
    gap: 8px;
    align-items: baseline;
}

.frontier-war-power-breakdown-item span {
    color: #74d6ca;
    font-size: 0.7rem;
}

.frontier-war-power-breakdown-item strong {
    flex: 0 0 auto;
    color: #fff4d8;
    font-size: 0.86rem;
}

.frontier-war-power-breakdown-item p {
    margin: 0;
    color: #c8d7d4;
    font-size: 0.7rem;
    line-height: 1.32;
}

.frontier-war-power-breakdown-parts {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
}

.frontier-war-power-breakdown-parts em,
.frontier-war-power-breakdown-foot span {
    display: inline-flex;
    align-items: center;
    min-height: 20px;
    padding: 2px 6px;
    border: 1px solid rgba(179, 224, 212, 0.12);
    border-radius: 999px;
    color: #aabfbb;
    background: rgba(6, 13, 15, 0.34);
    font-size: 0.66rem;
    line-height: 1.22;
    font-style: normal;
}

.frontier-war-power-breakdown-foot {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
}

.frontier-war-power-breakdown-foot span:nth-child(2) {
    border-color: rgba(240, 199, 110, 0.22);
    color: #f0d493;
}

.frontier-war-power-breakdown.compact {
    padding: 8px;
}

.frontier-war-power-breakdown.compact .frontier-war-power-breakdown-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 5px;
}

.frontier-war-power-breakdown.compact .frontier-war-power-breakdown-item {
    padding: 6px;
}

.frontier-war-power-breakdown.compact .frontier-war-power-breakdown-item p,
.frontier-war-power-breakdown.compact .frontier-war-power-breakdown-parts {
    display: none;
}

.frontier-war-power-breakdown.compact .frontier-war-power-breakdown-foot span:first-child,
.frontier-war-power-breakdown.compact .frontier-war-power-breakdown-foot span:last-child:not(:nth-child(2)) {
    display: none;
}

.frontier-war-player-goal article,
.frontier-war-player-node article {
    display: grid;
    gap: 8px;
    padding: 10px;
    border: 1px solid rgba(179, 224, 212, 0.12);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.045);
}

.frontier-war-player-goal article.success,
.frontier-war-player-node article.success {
    border-color: rgba(116, 214, 202, 0.34);
}

.frontier-war-player-goal p,
.frontier-war-player-node p,
.frontier-war-player-node em {
    margin: 0;
    color: #c8d7d4;
    font-size: 0.82rem;
    line-height: 1.42;
    overflow-wrap: anywhere;
}

.frontier-war-player-goal i {
    display: block;
    height: 8px;
    overflow: hidden;
    border-radius: 999px;
    background: rgba(255,255,255,0.08);
}

.frontier-war-player-goal i b {
    display: block;
    height: 100%;
    background: linear-gradient(90deg, #74d6ca, #f0c76e);
}

.frontier-war-player-node-head {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    align-items: center;
}

.frontier-war-player-node-head span {
    color: #74d6ca;
    font-size: 0.78rem;
}

.frontier-war-player-node-kpis {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 6px;
}

.frontier-war-player-node-kpis span {
    min-width: 0;
    padding: 7px;
    border: 1px solid rgba(179, 224, 212, 0.1);
    border-radius: 8px;
    color: #a9b8b6;
    background: rgba(6, 13, 15, 0.46);
    font-size: 0.68rem;
}

.frontier-war-player-node-kpis b {
    display: block;
    margin-bottom: 2px;
    color: #f2e6c7;
    font-size: 0.84rem;
}

.frontier-war-shell-player {
    min-height: 100vh;
    padding: 0;
    background:
        radial-gradient(circle at 12% 8%, rgba(240, 199, 110, 0.14), transparent 28%),
        radial-gradient(circle at 82% 16%, rgba(116, 214, 202, 0.12), transparent 30%),
        linear-gradient(180deg, rgba(3, 8, 9, 0.96), rgba(5, 10, 12, 0.99));
    overflow: hidden;
}

.frontier-war-bottom-player {
    margin-top: 0;
}

.frontier-war-shell-player .frontier-war-bottom-player {
    gap: 0;
    margin-top: 0;
}

.frontier-war-player-immersive {
    position: relative;
    display: block;
    min-height: 100vh;
    height: 100vh;
    overflow: hidden;
    isolation: isolate;
    border: 1px solid rgba(240, 199, 110, 0.22);
    border-radius: 0;
    background: #071011;
    box-shadow: 0 24px 54px rgba(0, 0, 0, 0.38);
}

.frontier-war-player-immersive::after {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 2;
    pointer-events: none;
    background:
        linear-gradient(90deg, rgba(2, 7, 8, 0.52), transparent 18%, transparent 72%, rgba(2, 7, 8, 0.68)),
        linear-gradient(180deg, rgba(2, 7, 8, 0.48), transparent 20%, transparent 74%, rgba(2, 7, 8, 0.56));
}

.frontier-war-player-map-panel {
    position: absolute;
    inset: 0;
    z-index: 1;
    padding: 0;
    overflow: hidden;
    border: 0;
    border-radius: 0;
    background: none;
    box-shadow: none;
}

/* Keep player-mode updates from invalidating the full illustrated map. */
.frontier-war-player-map-panel,
.frontier-war-player-immersive .frontier-war-map,
.frontier-war-player-hud,
.frontier-war-player-info-drawer,
.frontier-war-player-command-dock {
    contain: layout paint style;
}

.frontier-war-player-map-panel,
.frontier-war-player-immersive .frontier-war-map,
.frontier-war-player-hud,
.frontier-war-player-info-drawer,
.frontier-war-player-command-dock,
.frontier-war-player-immersive .frontier-war-node-layer,
.frontier-war-player-immersive .frontier-war-route-brush-layer,
.frontier-war-player-immersive .frontier-war-player-action-preview,
.frontier-war-player-immersive .frontier-war-player-route-feedback {
    transform: translateZ(0);
    backface-visibility: hidden;
}

.frontier-war-player-immersive .frontier-war-map-artboard,
.frontier-war-player-immersive .frontier-war-region-overlay-layer-v119,
.frontier-war-player-immersive .frontier-war-territory-layer,
.frontier-war-player-immersive .frontier-war-map-fireline-layer,
.frontier-war-player-immersive .frontier-war-map-landmark-layer,
.frontier-war-player-immersive .frontier-war-routes,
.frontier-war-player-immersive .frontier-war-route-brush-layer,
.frontier-war-player-immersive .frontier-war-node-layer,
.frontier-war-player-immersive .frontier-war-player-action-preview,
.frontier-war-player-immersive .frontier-war-player-route-feedback {
    contain: layout paint style;
}

.frontier-war-player-map-panel > .frontier-war-section-title,
.frontier-war-player-immersive .frontier-war-map-header,
.frontier-war-player-immersive .frontier-war-map-legend,
.frontier-war-player-immersive .frontier-war-map-focus {
    display: none;
}

.frontier-war-player-immersive .frontier-war-map {
    height: 100%;
    min-height: 100%;
    border: 0;
    border-radius: 0;
    box-shadow: inset 0 -110px 150px rgba(0, 0, 0, 0.46);
}

.frontier-war-player-immersive .frontier-war-map-paint {
    transform: scale(1.055);
    filter: saturate(1.22) contrast(1.08) brightness(1.06);
}

.frontier-war-player-immersive .frontier-war-map-decal-layer {
    display: none;
}

.frontier-war-player-immersive .frontier-war-node-token-art {
    width: 64px;
    min-height: 66px;
}

.frontier-war-player-immersive .frontier-war-node-token-art::before {
    inset: 27px 4px 0;
}

.frontier-war-player-immersive .frontier-war-node-shadow {
    width: 54px;
}

.frontier-war-player-immersive .frontier-war-node-owner-plinth {
    width: 58px;
}

.frontier-war-player-immersive .frontier-war-node-building {
    transform: translateX(-50%) scale(1.08);
    transform-origin: 50% 100%;
}

.frontier-war-player-hud,
.frontier-war-player-info-drawer,
.frontier-war-player-command-dock,
.frontier-war-player-objective-dock,
.frontier-war-player-action-flash {
    position: absolute;
    z-index: 4;
}

.frontier-war-player-hud {
    top: 14px;
    left: 14px;
    right: 14px;
    display: grid;
    grid-template-columns: minmax(230px, 0.84fr) minmax(330px, 1fr) auto;
    gap: 10px;
    align-items: center;
    min-width: 0;
    padding: 10px 12px;
    border: 1px solid rgba(240, 199, 110, 0.24);
    border-radius: 8px;
    background: rgba(7, 14, 16, 0.78);
    backdrop-filter: blur(16px);
    box-shadow: 0 16px 38px rgba(0, 0, 0, 0.34), inset 0 1px 0 rgba(255, 255, 255, 0.05);
}

.frontier-war-player-hud-title,
.frontier-war-player-hud-title span,
.frontier-war-player-hud-title strong,
.frontier-war-player-hud-title em {
    display: block;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.frontier-war-player-hud-title span {
    color: #74d6ca;
    font-size: 0.72rem;
}

.frontier-war-player-hud-title strong {
    margin-top: 2px;
    color: #f2e6c7;
    font-size: 1.08rem;
    letter-spacing: 0;
}

.frontier-war-player-hud-title em {
    margin-top: 2px;
    color: #c8d7d4;
    font-style: normal;
    font-size: 0.76rem;
}

.frontier-war-player-hud-stats,
.frontier-war-player-hud-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    min-width: 0;
}

.frontier-war-player-hud-stats {
    justify-content: center;
}

.frontier-war-player-hud-stats span {
    min-width: 70px;
    padding: 7px 9px;
    border: 1px solid rgba(179, 224, 212, 0.16);
    border-radius: 8px;
    color: #c8d7d4;
    text-align: center;
    background: rgba(255, 255, 255, 0.055);
    font-size: 0.72rem;
}

.frontier-war-player-hud-stats b {
    display: block;
    color: #fff4d8;
    font-size: 0.92rem;
}

.frontier-war-player-hud-stats .warning {
    border-color: rgba(240, 199, 110, 0.34);
}

.frontier-war-player-hud-stats .danger {
    border-color: rgba(216, 95, 95, 0.42);
}

.frontier-war-player-hud-actions {
    justify-content: flex-end;
}

.frontier-war-player-hud-actions .frontier-war-small-btn {
    min-height: 32px;
    padding: 7px 10px;
    background: rgba(255, 255, 255, 0.065);
}

.frontier-war-player-hud-actions .frontier-war-render-toggle {
    border-color: rgba(240, 199, 110, 0.42);
    color: #fff4d8;
}

.frontier-war-render-smooth .frontier-war-player-hud-actions .frontier-war-render-toggle {
    border-color: rgba(116, 214, 202, 0.48);
    color: #dffdf7;
}

.frontier-war-player-info-drawer {
    top: 96px;
    left: 14px;
    width: min(336px, calc(100% - 420px));
    max-height: calc(100% - 170px);
    overflow: hidden;
    border: 1px solid rgba(240, 199, 110, 0.24);
    border-radius: 8px;
    background:
        radial-gradient(circle at 0 0, rgba(240, 199, 110, 0.12), transparent 34%),
        linear-gradient(180deg, rgba(12, 22, 24, 0.82), rgba(6, 13, 15, 0.78));
    backdrop-filter: blur(16px);
    box-shadow: 0 18px 42px rgba(0, 0, 0, 0.34), inset 0 1px 0 rgba(255, 255, 255, 0.05);
    transition: width 0.18s ease, max-height 0.18s ease, border-color 0.18s ease;
}

.frontier-war-player-info-drawer[open] {
    width: min(640px, calc(100% - 420px));
    max-height: calc(100% - 130px);
    overflow: auto;
    scrollbar-width: thin;
}

.frontier-war-player-info-drawer > summary {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 3px 12px;
    align-items: center;
    min-width: 0;
    padding: 12px;
    list-style: none;
    cursor: pointer;
}

.frontier-war-player-info-drawer > summary::-webkit-details-marker {
    display: none;
}

.frontier-war-player-info-drawer > summary span,
.frontier-war-player-info-drawer > summary strong,
.frontier-war-player-info-drawer > summary em {
    display: block;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.frontier-war-player-info-drawer > summary span {
    grid-column: 1;
    color: #74d6ca;
    font-size: 0.72rem;
}

.frontier-war-player-info-drawer > summary strong {
    grid-column: 1;
    color: #f2e6c7;
    font-size: 0.98rem;
}

.frontier-war-player-info-drawer > summary em {
    grid-column: 1;
    color: #c8d7d4;
    font-style: normal;
    font-size: 0.74rem;
}

.frontier-war-player-info-drawer > summary i {
    grid-column: 2;
    grid-row: 1 / span 3;
    align-self: center;
    padding: 6px 9px;
    border: 1px solid rgba(116, 214, 202, 0.22);
    border-radius: 999px;
    color: #a9eee4;
    background: rgba(6, 13, 15, 0.42);
    font-style: normal;
    font-size: 0.7rem;
}

.frontier-war-player-info-drawer[open] > summary i {
    font-size: 0;
}

.frontier-war-player-info-drawer[open] > summary i::after {
    content: '收起';
    font-size: 0.7rem;
}

.frontier-war-player-info-drawer-body {
    display: grid;
    gap: 10px;
    padding: 0 12px 12px;
}

.frontier-war-player-info-drawer .frontier-war-player-dashboard {
    position: relative;
    inset: auto;
    width: auto;
    max-height: none;
    overflow: visible;
}

.frontier-war-player-info-drawer-grid {
    display: grid;
    grid-template-columns: minmax(230px, 0.62fr) minmax(260px, 1fr);
    gap: 10px;
}

.frontier-war-player-info-drawer-grid .frontier-war-player-goal,
.frontier-war-player-info-drawer-grid .frontier-war-battle-report {
    min-width: 0;
    overflow: hidden;
}

.frontier-war-player-command-dock {
    top: 96px;
    right: 14px;
    width: min(368px, calc(100% - 28px));
    max-height: calc(100% - 170px);
    display: grid;
    gap: 10px;
    overflow: auto;
    padding-right: 2px;
    scrollbar-width: thin;
}

.frontier-war-player-objective-dock {
    left: 14px;
    bottom: 14px;
    width: min(650px, calc(100% - 420px));
    display: grid;
    grid-template-columns: minmax(230px, 0.62fr) minmax(260px, 1fr);
    gap: 10px;
}

.frontier-war-player-command-dock .frontier-war-player-actions,
.frontier-war-player-command-dock .frontier-war-player-node,
.frontier-war-player-objective-dock .frontier-war-player-goal,
.frontier-war-player-objective-dock .frontier-war-battle-report {
    background:
        radial-gradient(circle at 0 0, rgba(240, 199, 110, 0.12), transparent 34%),
        linear-gradient(180deg, rgba(12, 22, 24, 0.82), rgba(6, 13, 15, 0.78));
    backdrop-filter: blur(16px);
}

.frontier-war-player-objective-dock .frontier-war-battle-report {
    min-width: 0;
    padding: 14px;
    overflow: hidden;
}

.frontier-war-player-objective-dock .frontier-war-report-banner {
    min-height: 64px;
}

.frontier-war-player-action-flash {
    left: 50%;
    top: 52%;
    width: min(360px, calc(100% - 32px));
    transform: translate(-50%, -50%);
    padding: 14px 16px;
    border: 1px solid rgba(240, 199, 110, 0.34);
    border-radius: 8px;
    color: #f2e6c7;
    text-align: center;
    background: rgba(6, 13, 15, 0.84);
    backdrop-filter: blur(16px);
    box-shadow: 0 18px 42px rgba(0, 0, 0, 0.38);
    animation: frontierWarPlayerActionFlash 1.8s ease-out both;
}

.frontier-war-player-action-flash span,
.frontier-war-player-action-flash strong {
    display: block;
    min-width: 0;
    overflow-wrap: anywhere;
}

.frontier-war-player-action-flash span {
    color: #74d6ca;
    font-size: 0.76rem;
}

.frontier-war-player-action-flash strong {
    margin-top: 4px;
    font-size: 1rem;
}

.frontier-war-player-action-flash.success {
    border-color: rgba(116, 214, 202, 0.42);
}

.frontier-war-player-action-flash.danger {
    border-color: rgba(216, 95, 95, 0.46);
}

@keyframes frontierWarPlayerActionFlash {
    0% {
        opacity: 0;
        transform: translate(-50%, -46%) scale(0.96);
    }
    18%,
    78% {
        opacity: 1;
        transform: translate(-50%, -50%) scale(1);
    }
    100% {
        opacity: 0;
        transform: translate(-50%, -54%) scale(0.98);
    }
}

.frontier-war-map {
    position: relative;
    height: clamp(600px, calc(100vh - 320px), 780px);
    min-height: 600px;
    overflow: hidden;
    isolation: isolate;
    border: 1px solid rgba(240, 199, 110, 0.26);
    border-radius: 8px;
    background:
        linear-gradient(180deg, rgba(6, 12, 14, 0.18), rgba(6, 12, 14, 0.34) 18%, rgba(6, 12, 14, 0.22) 38%, rgba(6, 12, 14, 0.54) 100%),
        url('../images/frontier-war/world-map-base-v112.png') center / cover no-repeat;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.04), inset 0 -80px 120px rgba(0, 0, 0, 0.34), 0 18px 38px rgba(0, 0, 0, 0.28);
}

.frontier-war-map-illustrated {
    background:
        linear-gradient(180deg, rgba(5, 9, 8, 0.18), rgba(5, 9, 8, 0.48)),
        #11130d;
}

.frontier-war-map-artboard,
.frontier-war-map-paint,
.frontier-war-region-overlay-layer-v119,
.frontier-war-territory-layer {
    position: absolute;
    inset: 0;
    overflow: hidden;
}

.frontier-war-map-artboard {
    z-index: 1;
}

.frontier-war-map-paint {
    background:
        linear-gradient(180deg, rgba(8, 12, 10, 0.04), rgba(8, 12, 10, 0.18) 55%, rgba(8, 12, 10, 0.42)),
        url('../images/frontier-war/world-map-base-v112.png') center / cover no-repeat;
    filter: saturate(1.16) contrast(1.05) brightness(1.04);
    transform: scale(1.018);
}

.frontier-war-map-paint::after {
    content: '';
    position: absolute;
    inset: 0;
    background:
        linear-gradient(90deg, rgba(13, 143, 131, 0.12), transparent 28%, transparent 70%, rgba(176, 50, 44, 0.14)),
        radial-gradient(circle at 47% 46%, rgba(240, 199, 110, 0.16), transparent 22%),
        radial-gradient(circle at 16% 22%, rgba(255, 244, 216, 0.09), transparent 24%);
    mix-blend-mode: overlay;
}

.frontier-war-territory-layer {
    z-index: 2;
    mix-blend-mode: overlay;
}

.frontier-war-territory {
    position: absolute;
    display: grid;
    align-content: center;
    justify-items: center;
    min-width: 40px;
    min-height: 40px;
    color: #fff4d8;
    text-align: center;
    background:
        linear-gradient(135deg, rgba(var(--fw-territory-rgb, 240, 199, 110), var(--fw-alpha, 0.22)), rgba(var(--fw-territory-rgb, 240, 199, 110), var(--fw-alpha-soft, 0.1))),
        radial-gradient(circle at 50% 50%, rgba(var(--fw-territory-rgb, 240, 199, 110), var(--fw-alpha-core, 0.34)), transparent 58%);
    border: 1px solid rgba(var(--fw-territory-rgb, 240, 199, 110), 0.24);
    opacity: 0.38;
    filter: drop-shadow(0 0 10px rgba(var(--fw-territory-rgb, 240, 199, 110), 0.12));
}

.frontier-war-territory::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(45deg, rgba(255, 255, 255, 0.08) 0 1px, transparent 1px 9px),
        linear-gradient(-45deg, rgba(0, 0, 0, 0.16) 0 1px, transparent 1px 11px);
    opacity: 0;
}

.frontier-war-territory.frontline::before,
.frontier-war-territory.owner-contested::before {
    opacity: 0.32;
}

.frontier-war-territory.owner-player {
    opacity: 0.34;
    mix-blend-mode: screen;
}

.frontier-war-territory.owner-enemy {
    opacity: 0.4;
    mix-blend-mode: soft-light;
}

.frontier-war-territory.owner-neutral {
    opacity: 0.18;
    mix-blend-mode: soft-light;
}

.frontier-war-map-region-occupation-v116 .frontier-war-region-occupation-layer-v116 {
    z-index: 3;
    mix-blend-mode: normal;
}

.frontier-war-map-art-slots-v118 {
    --fw-art-slot-live: 1;
}

.frontier-war-map-region-overlay-v119,
.frontier-war-map-faction-landmarks-v120,
.frontier-war-map-battle-fireline-v121,
.frontier-war-map-dynamic-war-v122 {
    --fw-production-art-live: 1;
}

.frontier-war-region-overlay-layer-v119 {
    z-index: 2;
    pointer-events: none;
    mix-blend-mode: normal;
}

.frontier-war-region-overlay-brush {
    position: absolute;
    display: block;
    background-repeat: no-repeat;
    background-size: var(--fw-overlay-bg-w, 100%) var(--fw-overlay-bg-h, 100%);
    background-position: var(--fw-overlay-bg-x, 50%) var(--fw-overlay-bg-y, 50%);
    opacity: calc(var(--fw-overlay-strength, 0.45) * 0.62);
    filter: saturate(1.05) contrast(1.04);
}

.frontier-war-region-overlay-brush.state-player {
    background-image: url('../images/frontier-war/world-map-region-overlay-player-v119.png');
    mix-blend-mode: screen;
    opacity: calc(var(--fw-overlay-strength, 0.45) * 0.58);
    filter: saturate(1.14) contrast(1.06) brightness(1.02);
}

.frontier-war-region-overlay-brush.state-enemy {
    background-image: url('../images/frontier-war/world-map-region-overlay-enemy-v119.png');
    mix-blend-mode: multiply;
    opacity: calc(var(--fw-overlay-strength, 0.45) * 0.72);
    filter: saturate(1.05) contrast(1.12);
}

.frontier-war-region-overlay-brush.state-contested {
    background-image: url('../images/frontier-war/world-map-region-overlay-contested-v119.png');
    mix-blend-mode: hard-light;
    opacity: calc(var(--fw-overlay-strength, 0.45) * 0.68);
    filter: saturate(1.22) contrast(1.1);
}

.frontier-war-region-overlay-brush.state-neutral {
    background-image: url('../images/frontier-war/world-map-region-overlay-neutral-fog-v119.png');
    mix-blend-mode: screen;
    opacity: 0.26;
    filter: saturate(0.62) blur(0.2px);
}

.frontier-war-region-occupation-v116 {
    opacity: 0.58;
    overflow: hidden;
    background:
        radial-gradient(circle at 50% 50%, rgba(var(--fw-territory-rgb, 240, 199, 110), var(--fw-alpha-core, 0.34)), transparent 58%),
        linear-gradient(135deg, rgba(var(--fw-territory-rgb, 240, 199, 110), var(--fw-alpha, 0.28)), rgba(var(--fw-territory-rgb, 240, 199, 110), var(--fw-alpha-soft, 0.12)));
    border: 1px solid rgba(var(--fw-territory-rgb, 240, 199, 110), calc(0.28 + var(--fw-edge-intensity, 0.4) * 0.22));
    box-shadow:
        inset 0 0 0 1px rgba(255, 255, 255, 0.06),
        inset 0 0 26px rgba(var(--fw-territory-rgb, 240, 199, 110), 0.18),
        0 0 22px rgba(var(--fw-territory-rgb, 240, 199, 110), 0.12);
}

.frontier-war-region-occupation-v116::after {
    content: '';
    position: absolute;
    inset: -12%;
    pointer-events: none;
    opacity: 0.52;
    background:
        repeating-linear-gradient(110deg, rgba(255, 247, 218, 0.1) 0 2px, transparent 2px 13px),
        radial-gradient(circle at 22% 24%, rgba(255, 255, 255, 0.16), transparent 24%),
        radial-gradient(circle at 72% 70%, rgba(0, 0, 0, 0.24), transparent 26%);
    mix-blend-mode: overlay;
    transform: rotate(-4deg);
}

.frontier-war-region-occupation-v116.occupation-player {
    opacity: 0.68;
    background:
        linear-gradient(120deg, rgba(25, 163, 136, 0.34), rgba(116, 214, 202, 0.18) 44%, rgba(231, 207, 126, 0.12)),
        repeating-linear-gradient(22deg, rgba(173, 255, 229, 0.18) 0 2px, transparent 2px 16px),
        radial-gradient(circle at 44% 48%, rgba(116, 214, 202, 0.34), transparent 58%);
    border-color: rgba(116, 214, 202, 0.5);
    box-shadow:
        inset 0 0 0 1px rgba(211, 255, 242, 0.12),
        inset 0 0 34px rgba(116, 214, 202, 0.22),
        0 0 26px rgba(45, 180, 155, 0.18);
}

.frontier-war-region-occupation-v116.occupation-enemy {
    opacity: 0.7;
    background:
        linear-gradient(145deg, rgba(40, 11, 13, 0.58), rgba(133, 23, 25, 0.34) 48%, rgba(7, 8, 8, 0.48)),
        repeating-linear-gradient(-32deg, rgba(255, 119, 86, 0.16) 0 3px, transparent 3px 15px),
        radial-gradient(circle at 58% 42%, rgba(216, 95, 95, 0.34), transparent 60%);
    border-color: rgba(216, 95, 95, 0.52);
    filter: drop-shadow(0 0 16px rgba(122, 21, 20, 0.34));
}

.frontier-war-region-occupation-v116.occupation-enemy::after {
    opacity: 0.64;
    background:
        radial-gradient(ellipse at 36% 30%, rgba(0, 0, 0, 0.44), transparent 32%),
        radial-gradient(ellipse at 70% 64%, rgba(82, 10, 10, 0.38), transparent 34%),
        repeating-linear-gradient(8deg, rgba(255, 199, 110, 0.08) 0 1px, transparent 1px 12px);
    mix-blend-mode: multiply;
}

.frontier-war-region-occupation-v116.occupation-contested {
    opacity: 0.78;
    background:
        linear-gradient(128deg, rgba(35, 10, 9, 0.46), rgba(240, 199, 110, 0.2) 45%, rgba(21, 116, 112, 0.22)),
        repeating-linear-gradient(45deg, rgba(238, 173, 70, 0.22) 0 2px, rgba(176, 50, 44, 0.2) 2px 5px, transparent 5px 17px),
        radial-gradient(circle at 50% 50%, rgba(238, 95, 55, 0.24), transparent 55%);
    border-color: rgba(238, 173, 70, 0.58);
    box-shadow:
        inset 0 0 0 1px rgba(255, 225, 178, 0.12),
        inset 0 0 34px rgba(176, 50, 44, 0.3),
        0 0 30px rgba(238, 95, 55, 0.24);
}

.frontier-war-region-occupation-v116.occupation-neutral {
    opacity: 0.36;
    filter: saturate(0.64) brightness(0.9);
    background:
        linear-gradient(135deg, rgba(138, 147, 134, 0.2), rgba(235, 232, 209, 0.08)),
        radial-gradient(circle at 50% 50%, rgba(214, 227, 222, 0.12), transparent 60%);
    border-color: rgba(214, 227, 222, 0.2);
}

.frontier-war-map-decal-layer {
    position: absolute;
    inset: 0;
    z-index: 3;
    pointer-events: none;
    overflow: hidden;
}

.frontier-war-map-decal {
    position: absolute;
    aspect-ratio: 1;
    transform: translate(-50%, -50%) rotate(var(--fw-decal-rotate, 0deg));
    background-image: url('../images/frontier-war/world-map-terrain-decal-atlas-v118.png');
    background-size: 400% 400%;
    background-repeat: no-repeat;
    opacity: 0.54;
    mix-blend-mode: multiply;
    filter: saturate(0.92) contrast(1.04) drop-shadow(0 8px 14px rgba(0, 0, 0, 0.2));
}

.frontier-war-map-decal.state-player {
    opacity: 0.62;
    mix-blend-mode: normal;
    filter: saturate(1.06) contrast(1.02) drop-shadow(0 8px 12px rgba(0, 0, 0, 0.18));
}

.frontier-war-map-decal.state-enemy,
.frontier-war-map-decal.state-contested {
    opacity: 0.5;
    filter: saturate(0.78) contrast(1.1) sepia(0.16) drop-shadow(0 8px 16px rgba(80, 8, 8, 0.28));
}

.frontier-war-map-decal.slot-1 { background-position: 0% 0%; }
.frontier-war-map-decal.slot-2 { background-position: 33.333% 0%; }
.frontier-war-map-decal.slot-3 { background-position: 66.666% 0%; }
.frontier-war-map-decal.slot-4 { background-position: 100% 0%; }
.frontier-war-map-decal.slot-5 { background-position: 0% 33.333%; }
.frontier-war-map-decal.slot-6 { background-position: 33.333% 33.333%; }
.frontier-war-map-decal.slot-7 { background-position: 66.666% 33.333%; }
.frontier-war-map-decal.slot-8 { background-position: 100% 33.333%; }
.frontier-war-map-decal.slot-9 { background-position: 0% 66.666%; }
.frontier-war-map-decal.slot-10 { background-position: 33.333% 66.666%; }
.frontier-war-map-decal.slot-11 { background-position: 66.666% 66.666%; }
.frontier-war-map-decal.slot-12 { background-position: 100% 66.666%; }
.frontier-war-map-decal.slot-13 { background-position: 0% 100%; }
.frontier-war-map-decal.slot-14 { background-position: 33.333% 100%; }
.frontier-war-map-decal.slot-15 { background-position: 66.666% 100%; }
.frontier-war-map-decal.slot-16 { background-position: 100% 100%; }

.frontier-war-map-fireline-layer,
.frontier-war-map-landmark-layer {
    position: absolute;
    inset: 0;
    pointer-events: none;
    overflow: hidden;
}

.frontier-war-map-fireline-layer {
    z-index: 4;
    mix-blend-mode: normal;
}

.frontier-war-map-landmark-layer {
    z-index: 4;
}

.frontier-war-map-landmark,
.frontier-war-map-fireline {
    position: absolute;
    aspect-ratio: 1;
    background-size: 400% 400%;
    background-repeat: no-repeat;
    pointer-events: none;
}

.frontier-war-map-landmark {
    transform: translate(-50%, -50%) rotate(var(--fw-landmark-rotate, 0deg));
    background-image: url('../images/frontier-war/world-map-faction-landmark-atlas-v120.png');
    opacity: 0.66;
    filter: saturate(1.04) contrast(1.05) drop-shadow(0 8px 16px rgba(0, 0, 0, 0.34));
}

.frontier-war-map-landmark.active {
    opacity: 0.84;
}

.frontier-war-map-landmark.dormant {
    opacity: 0.34;
    filter: saturate(0.66) contrast(0.94) drop-shadow(0 6px 12px rgba(0, 0, 0, 0.22));
}

.frontier-war-map-landmark.state-player {
    filter: saturate(1.18) contrast(1.05) drop-shadow(0 0 12px rgba(116, 214, 202, 0.22)) drop-shadow(0 8px 14px rgba(0, 0, 0, 0.28));
}

.frontier-war-map-landmark.state-enemy {
    filter: saturate(0.9) sepia(0.14) contrast(1.12) drop-shadow(0 0 14px rgba(176, 50, 44, 0.3)) drop-shadow(0 8px 16px rgba(0, 0, 0, 0.32));
}

.frontier-war-map-landmark.state-contested {
    opacity: 0.9;
    filter: saturate(1.18) contrast(1.12) drop-shadow(0 0 14px rgba(238, 95, 55, 0.34)) drop-shadow(0 8px 16px rgba(0, 0, 0, 0.3));
}

.frontier-war-map-fireline {
    transform: translate(-50%, -50%) rotate(var(--fw-fireline-rotate, 0deg));
    background-image: url('../images/frontier-war/world-map-battle-fireline-atlas-v121.png');
    opacity: calc(var(--fw-fireline-intensity, 0.4) * 0.56);
    mix-blend-mode: screen;
    filter: saturate(1.1) contrast(1.08) drop-shadow(0 0 12px rgba(238, 95, 55, 0.22));
}

.frontier-war-map-fireline.active {
    opacity: calc(var(--fw-fireline-intensity, 0.75) * 0.82);
}

.frontier-war-map-fireline.state-enemy,
.frontier-war-map-fireline.state-contested {
    mix-blend-mode: hard-light;
    filter: saturate(1.28) contrast(1.16) drop-shadow(0 0 16px rgba(238, 95, 55, 0.34));
}

.frontier-war-map-landmark.slot-1,
.frontier-war-map-fireline.slot-1 { background-position: 0% 0%; }
.frontier-war-map-landmark.slot-2,
.frontier-war-map-fireline.slot-2 { background-position: 33.333% 0%; }
.frontier-war-map-landmark.slot-3,
.frontier-war-map-fireline.slot-3 { background-position: 66.666% 0%; }
.frontier-war-map-landmark.slot-4,
.frontier-war-map-fireline.slot-4 { background-position: 100% 0%; }
.frontier-war-map-landmark.slot-5,
.frontier-war-map-fireline.slot-5 { background-position: 0% 33.333%; }
.frontier-war-map-landmark.slot-6,
.frontier-war-map-fireline.slot-6 { background-position: 33.333% 33.333%; }
.frontier-war-map-landmark.slot-7,
.frontier-war-map-fireline.slot-7 { background-position: 66.666% 33.333%; }
.frontier-war-map-landmark.slot-8,
.frontier-war-map-fireline.slot-8 { background-position: 100% 33.333%; }
.frontier-war-map-landmark.slot-9,
.frontier-war-map-fireline.slot-9 { background-position: 0% 66.666%; }
.frontier-war-map-landmark.slot-10,
.frontier-war-map-fireline.slot-10 { background-position: 33.333% 66.666%; }
.frontier-war-map-landmark.slot-11,
.frontier-war-map-fireline.slot-11 { background-position: 66.666% 66.666%; }
.frontier-war-map-landmark.slot-12,
.frontier-war-map-fireline.slot-12 { background-position: 100% 66.666%; }
.frontier-war-map-landmark.slot-13,
.frontier-war-map-fireline.slot-13 { background-position: 0% 100%; }
.frontier-war-map-landmark.slot-14,
.frontier-war-map-fireline.slot-14 { background-position: 33.333% 100%; }
.frontier-war-map-landmark.slot-15,
.frontier-war-map-fireline.slot-15 { background-position: 66.666% 100%; }
.frontier-war-map-landmark.slot-16,
.frontier-war-map-fireline.slot-16 { background-position: 100% 100%; }

.frontier-war-map-dynamic-war-v122 {
    --fw-dynamic-war-live: 1;
}

.frontier-war-dynamic-war-layer-v122 {
    position: absolute;
    inset: 0;
    z-index: 4;
    pointer-events: none;
    overflow: hidden;
    mix-blend-mode: screen;
}

.frontier-war-dynamic-war-layer-v122::before {
    content: '';
    position: absolute;
    inset: 0;
    opacity: 0.18;
    background:
        radial-gradient(circle at 34% 42%, rgba(116, 214, 202, 0.18), transparent 24%),
        radial-gradient(circle at 70% 46%, rgba(216, 95, 95, 0.2), transparent 28%),
        linear-gradient(110deg, transparent 0 36%, rgba(240, 199, 110, 0.08) 44%, transparent 58% 100%);
    animation: frontierWarDynamicWarSweep 7.5s ease-in-out infinite;
}

.frontier-war-dynamic-war-beat {
    position: absolute;
    aspect-ratio: 1;
    transform: translate(-50%, -50%) rotate(var(--fw-warbeat-rotate, 0deg));
    opacity: calc(var(--fw-warbeat-intensity, 0.58) * 0.7);
    border-radius: 999px;
    filter: blur(0.15px) drop-shadow(0 0 16px rgba(240, 199, 110, 0.18));
}

.frontier-war-dynamic-war-beat::before,
.frontier-war-dynamic-war-beat i,
.frontier-war-dynamic-war-beat b {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    pointer-events: none;
}

.frontier-war-dynamic-war-beat::before {
    background:
        radial-gradient(circle, rgba(255, 242, 202, 0.32), transparent 26%),
        radial-gradient(circle, rgba(240, 199, 110, 0.2), transparent 58%);
    animation: frontierWarDynamicWarPulse var(--fw-warbeat-speed, 4s) ease-in-out infinite;
    animation-delay: var(--fw-warbeat-delay, 0s);
}

.frontier-war-dynamic-war-beat i {
    inset: 10%;
    opacity: 0.62;
    background-image: url('../images/frontier-war/world-map-battle-fireline-atlas-v121.png');
    background-size: 400% 400%;
    background-position: 0 0;
    mix-blend-mode: hard-light;
    animation: frontierWarDynamicWarDrift calc(var(--fw-warbeat-speed, 4s) * 1.4) ease-in-out infinite;
    animation-delay: calc(var(--fw-warbeat-delay, 0s) - 0.7s);
}

.frontier-war-dynamic-war-beat b {
    inset: 18%;
    border: 1px solid rgba(255, 238, 190, 0.28);
    box-shadow: inset 0 0 18px rgba(255, 238, 190, 0.14), 0 0 18px rgba(255, 238, 190, 0.1);
    animation: frontierWarDynamicWarRing calc(var(--fw-warbeat-speed, 4s) * 1.18) ease-out infinite;
    animation-delay: calc(var(--fw-warbeat-delay, 0s) - 0.2s);
}

.frontier-war-dynamic-war-beat.kind-player-supply {
    mix-blend-mode: screen;
    filter: saturate(1.16) drop-shadow(0 0 16px rgba(116, 214, 202, 0.28));
}

.frontier-war-dynamic-war-beat.kind-player-supply::before {
    background:
        radial-gradient(circle, rgba(194, 255, 229, 0.3), transparent 32%),
        conic-gradient(from 20deg, transparent 0 18%, rgba(116, 214, 202, 0.18) 22% 28%, transparent 34% 100%);
}

.frontier-war-dynamic-war-beat.kind-enemy-lockdown {
    mix-blend-mode: multiply;
    filter: saturate(1.08) contrast(1.12) drop-shadow(0 0 18px rgba(176, 50, 44, 0.36));
}

.frontier-war-dynamic-war-beat.kind-enemy-lockdown::before {
    background:
        radial-gradient(circle, rgba(176, 50, 44, 0.34), transparent 40%),
        repeating-linear-gradient(135deg, rgba(0, 0, 0, 0.28) 0 3px, transparent 3px 12px);
}

.frontier-war-dynamic-war-beat.kind-contested-burn {
    mix-blend-mode: hard-light;
    filter: saturate(1.34) contrast(1.12) drop-shadow(0 0 20px rgba(238, 95, 55, 0.38));
}

.frontier-war-dynamic-war-beat.kind-contested-burn i {
    background-position: 33.333% 0;
}

.frontier-war-dynamic-war-beat.kind-frontline-smoke {
    opacity: calc(var(--fw-warbeat-intensity, 0.58) * 0.54);
    mix-blend-mode: soft-light;
    filter: saturate(0.78) blur(0.6px) drop-shadow(0 0 16px rgba(72, 82, 78, 0.32));
}

.frontier-war-dynamic-war-beat.kind-frontline-smoke::before {
    background:
        radial-gradient(ellipse at 42% 34%, rgba(223, 222, 202, 0.24), transparent 38%),
        radial-gradient(ellipse at 62% 62%, rgba(60, 68, 64, 0.28), transparent 46%);
}

.frontier-war-dynamic-war-beat.kind-action-aftershock {
    z-index: 1;
    mix-blend-mode: screen;
    opacity: calc(var(--fw-warbeat-intensity, 0.8) * 0.88);
    filter: saturate(1.24) contrast(1.12) drop-shadow(0 0 24px rgba(240, 199, 110, 0.42));
}

.frontier-war-dynamic-war-beat.kind-action-aftershock::before {
    background:
        radial-gradient(circle, rgba(255, 247, 219, 0.44), transparent 22%),
        radial-gradient(circle, rgba(238, 95, 55, 0.24), transparent 52%);
}

@keyframes frontierWarDynamicWarPulse {
    0%, 100% { opacity: 0.36; transform: scale(0.82); }
    48% { opacity: 0.88; transform: scale(1.08); }
}

@keyframes frontierWarDynamicWarRing {
    0% { opacity: 0.72; transform: scale(0.72); }
    72% { opacity: 0.1; transform: scale(1.34); }
    100% { opacity: 0; transform: scale(1.42); }
}

@keyframes frontierWarDynamicWarDrift {
    0%, 100% { opacity: 0.42; transform: translate(-3%, 2%) rotate(-4deg) scale(0.96); }
    52% { opacity: 0.78; transform: translate(4%, -5%) rotate(5deg) scale(1.08); }
}

@keyframes frontierWarDynamicWarSweep {
    0%, 100% { opacity: 0.12; transform: translateX(-2%); }
    50% { opacity: 0.24; transform: translateX(2%); }
}

.frontier-war-map-action-aftershock-v123 {
    --fw-action-aftershock-live: 1;
}

.frontier-war-action-aftershock-layer-v123 {
    position: absolute;
    inset: 0;
    z-index: 4;
    pointer-events: none;
    overflow: hidden;
    mix-blend-mode: screen;
}

.frontier-war-action-aftershock {
    position: absolute;
    aspect-ratio: 1;
    transform: translate(-50%, -50%) rotate(var(--fw-aftershock-rotate, 0deg));
    transform-origin: 50% 50%;
    opacity: calc(var(--fw-aftershock-intensity, 0.7) * 0.9);
    border-radius: 999px;
    filter: saturate(1.18) contrast(1.08) drop-shadow(0 0 18px rgba(255, 222, 156, 0.34));
}

.frontier-war-action-aftershock::before,
.frontier-war-action-aftershock i,
.frontier-war-action-aftershock b,
.frontier-war-action-aftershock em {
    content: '';
    position: absolute;
    inset: 0;
    pointer-events: none;
    border-radius: inherit;
}

.frontier-war-action-aftershock::before {
    background:
        radial-gradient(circle, rgba(255, 246, 220, 0.42), transparent 25%),
        radial-gradient(circle, rgba(238, 173, 70, 0.18), transparent 58%);
    animation: frontierWarActionAftershockPulse var(--fw-aftershock-speed, 3s) ease-in-out infinite;
    animation-delay: var(--fw-aftershock-delay, 0s);
}

.frontier-war-action-aftershock i {
    inset: 8%;
    opacity: 0.68;
    background-image: url('../images/frontier-war/world-map-combat-fx-v114.png');
    background-size: 400% 400%;
    background-position: 0 0;
    mix-blend-mode: hard-light;
    animation: frontierWarActionAftershockSpin calc(var(--fw-aftershock-speed, 3s) * 1.3) ease-in-out infinite;
    animation-delay: calc(var(--fw-aftershock-delay, 0s) - 0.28s);
}

.frontier-war-action-aftershock b {
    inset: 12%;
    border: 1px solid rgba(255, 238, 190, 0.42);
    box-shadow: inset 0 0 18px rgba(255, 238, 190, 0.14), 0 0 18px rgba(255, 238, 190, 0.22);
    animation: frontierWarActionAftershockRing calc(var(--fw-aftershock-speed, 3s) * 1.18) ease-out infinite;
    animation-delay: calc(var(--fw-aftershock-delay, 0s) - 0.16s);
}

.frontier-war-action-aftershock em {
    inset: 24%;
    opacity: 0.5;
    background-image: url('../images/frontier-war/world-map-battle-fireline-atlas-v121.png');
    background-size: 400% 400%;
    mix-blend-mode: screen;
}

.frontier-war-action-aftershock.kind-target-lock {
    z-index: 3;
    opacity: calc(var(--fw-aftershock-intensity, 0.9) * 0.96);
    filter: saturate(1.22) drop-shadow(0 0 22px rgba(255, 238, 190, 0.42));
}

.frontier-war-action-aftershock.kind-target-lock::before,
.frontier-war-action-aftershock.kind-recommendation-lock::before {
    background:
        radial-gradient(circle, transparent 42%, rgba(255, 238, 190, 0.48) 45% 49%, transparent 52%),
        conic-gradient(from 0deg, rgba(255, 238, 190, 0.04), rgba(255, 238, 190, 0.34), rgba(116, 214, 202, 0.12), rgba(255, 238, 190, 0.04));
    animation: frontierWarActionAftershockLock 2.4s ease-in-out infinite;
    animation-delay: var(--fw-aftershock-delay, 0s);
}

.frontier-war-action-aftershock.kind-recommendation-lock {
    opacity: calc(var(--fw-aftershock-intensity, 0.48) * 0.82);
    filter: saturate(1.05) drop-shadow(0 0 12px rgba(240, 199, 110, 0.26));
}

.frontier-war-action-aftershock.kind-action-trail {
    aspect-ratio: auto;
    height: clamp(7px, 1.05vw, 16px);
    min-width: 42px;
    border-radius: 999px;
    opacity: calc(var(--fw-aftershock-intensity, 0.82) * 0.88);
    filter: saturate(1.32) drop-shadow(0 0 16px rgba(240, 199, 110, 0.42));
}

.frontier-war-action-aftershock.kind-action-trail::before {
    inset: 24% 0;
    background:
        linear-gradient(90deg, transparent 0%, rgba(116, 214, 202, 0.22) 15%, rgba(255, 241, 203, 0.82) 52%, rgba(238, 95, 55, 0.3) 78%, transparent 100%);
    animation: frontierWarActionAftershockTrail var(--fw-aftershock-speed, 3s) ease-in-out infinite;
}

.frontier-war-action-aftershock.kind-action-trail i {
    inset: -160% 6%;
    background:
        radial-gradient(ellipse at 68% 50%, rgba(255, 246, 220, 0.36), transparent 46%),
        linear-gradient(90deg, transparent, rgba(240, 199, 110, 0.2), transparent);
    animation: frontierWarActionAftershockTrailFlash calc(var(--fw-aftershock-speed, 3s) * 0.86) linear infinite;
}

.frontier-war-action-aftershock.kind-action-trail b,
.frontier-war-action-aftershock.kind-action-trail em {
    display: none;
}

.frontier-war-action-aftershock.kind-hit-impact {
    z-index: 2;
    filter: saturate(1.36) contrast(1.16) drop-shadow(0 0 24px rgba(255, 216, 128, 0.46));
}

.frontier-war-action-aftershock.kind-hit-impact i {
    background-position: 66.666% 0;
}

.frontier-war-action-aftershock.kind-hit-impact::before {
    background:
        radial-gradient(circle, rgba(255, 248, 220, 0.62), transparent 18%),
        radial-gradient(circle, rgba(238, 95, 55, 0.34), transparent 46%);
}

.frontier-war-action-aftershock.kind-setback-smoke {
    opacity: calc(var(--fw-aftershock-intensity, 0.76) * 0.72);
    mix-blend-mode: soft-light;
    filter: saturate(0.78) blur(0.7px) drop-shadow(0 0 20px rgba(72, 82, 78, 0.38));
}

.frontier-war-action-aftershock.kind-setback-smoke::before {
    background:
        radial-gradient(ellipse at 38% 38%, rgba(220, 216, 196, 0.28), transparent 42%),
        radial-gradient(ellipse at 66% 60%, rgba(58, 65, 62, 0.34), transparent 50%);
    animation: frontierWarActionAftershockSmoke calc(var(--fw-aftershock-speed, 3s) * 1.5) ease-in-out infinite;
}

.frontier-war-action-aftershock.kind-repair-residue {
    filter: saturate(1.18) drop-shadow(0 0 20px rgba(116, 214, 202, 0.38));
}

.frontier-war-action-aftershock.kind-repair-residue::before {
    background:
        radial-gradient(circle, rgba(194, 255, 229, 0.32), transparent 32%),
        conic-gradient(from 30deg, transparent 0 16%, rgba(116, 214, 202, 0.22) 21% 28%, transparent 35% 100%);
}

.frontier-war-action-aftershock.kind-scorched-residue {
    mix-blend-mode: hard-light;
    filter: saturate(1.28) contrast(1.12) drop-shadow(0 0 20px rgba(238, 95, 55, 0.34));
}

.frontier-war-action-aftershock.kind-scorched-residue i,
.frontier-war-action-aftershock.kind-lockdown-residue i {
    background-image: url('../images/frontier-war/world-map-battle-fireline-atlas-v121.png');
    background-position: 33.333% 66.666%;
}

.frontier-war-action-aftershock.kind-lockdown-residue {
    mix-blend-mode: multiply;
    opacity: calc(var(--fw-aftershock-intensity, 0.7) * 0.82);
    filter: saturate(1.05) contrast(1.16) drop-shadow(0 0 18px rgba(176, 50, 44, 0.34));
}

.frontier-war-action-aftershock.kind-lockdown-residue::before {
    background:
        radial-gradient(circle, rgba(176, 50, 44, 0.3), transparent 40%),
        repeating-linear-gradient(135deg, rgba(0, 0, 0, 0.24) 0 3px, transparent 3px 11px);
}

.frontier-war-action-aftershock.kind-echo-wave {
    opacity: calc(var(--fw-aftershock-intensity, 0.64) * 0.58);
    filter: saturate(1.08) drop-shadow(0 0 26px rgba(255, 238, 190, 0.22));
}

.frontier-war-action-aftershock.kind-echo-wave::before {
    background:
        radial-gradient(circle, transparent 34%, rgba(255, 238, 190, 0.34) 39% 42%, transparent 48%),
        radial-gradient(circle, rgba(116, 214, 202, 0.12), transparent 58%);
}

@keyframes frontierWarActionAftershockPulse {
    0%, 100% { opacity: 0.34; transform: scale(0.84); }
    44% { opacity: 0.92; transform: scale(1.08); }
}

@keyframes frontierWarActionAftershockRing {
    0% { opacity: 0.74; transform: scale(0.72); }
    72% { opacity: 0.12; transform: scale(1.36); }
    100% { opacity: 0; transform: scale(1.44); }
}

@keyframes frontierWarActionAftershockSpin {
    0%, 100% { opacity: 0.42; transform: rotate(-8deg) scale(0.94); }
    50% { opacity: 0.86; transform: rotate(8deg) scale(1.08); }
}

@keyframes frontierWarActionAftershockLock {
    0%, 100% { opacity: 0.6; transform: rotate(0deg) scale(0.94); }
    50% { opacity: 1; transform: rotate(14deg) scale(1.08); }
}

@keyframes frontierWarActionAftershockTrail {
    0%, 100% { opacity: 0.34; transform: scaleX(0.72); }
    42% { opacity: 1; transform: scaleX(1); }
}

@keyframes frontierWarActionAftershockTrailFlash {
    0% { opacity: 0; transform: translateX(-38%); }
    38% { opacity: 0.74; transform: translateX(8%); }
    100% { opacity: 0; transform: translateX(42%); }
}

@keyframes frontierWarActionAftershockSmoke {
    0%, 100% { opacity: 0.28; transform: translate(-2%, 2%) scale(0.92); }
    54% { opacity: 0.72; transform: translate(5%, -6%) scale(1.08); }
}

.frontier-war-map-consequence-flow-v124 {
    --fw-consequence-flow-live: 1;
}

.frontier-war-consequence-flow-layer-v124 {
    position: absolute;
    inset: 0;
    z-index: 3;
    pointer-events: none;
    overflow: hidden;
    mix-blend-mode: screen;
}

.frontier-war-consequence-flow {
    position: absolute;
    aspect-ratio: 1;
    transform: translate(-50%, -50%) rotate(var(--fw-flow-rotate, 0deg));
    transform-origin: 50% 50%;
    opacity: calc(var(--fw-flow-intensity, 0.72) * 0.78);
    border-radius: 999px;
    filter: saturate(1.16) contrast(1.08) drop-shadow(0 0 18px rgba(116, 214, 202, 0.22));
}

.frontier-war-consequence-flow::before,
.frontier-war-consequence-flow i,
.frontier-war-consequence-flow b,
.frontier-war-consequence-flow em {
    content: '';
    position: absolute;
    inset: 0;
    pointer-events: none;
    border-radius: inherit;
}

.frontier-war-consequence-flow::before {
    background:
        radial-gradient(circle, rgba(216, 246, 236, 0.36), transparent 28%),
        radial-gradient(circle, rgba(116, 214, 202, 0.14), transparent 62%);
    animation: frontierWarConsequencePulse var(--fw-flow-speed, 3.4s) ease-in-out infinite;
    animation-delay: var(--fw-flow-delay, 0s);
}

.frontier-war-consequence-flow i {
    inset: 8%;
    opacity: 0.52;
    background-image: url('../images/frontier-war/world-map-battle-fireline-atlas-v121.png');
    background-size: 400% 400%;
    background-position: 66.666% 33.333%;
    mix-blend-mode: hard-light;
    animation: frontierWarConsequenceDrift calc(var(--fw-flow-speed, 3.4s) * 1.25) ease-in-out infinite;
    animation-delay: calc(var(--fw-flow-delay, 0s) - 0.25s);
}

.frontier-war-consequence-flow b {
    inset: 16%;
    border: 1px solid rgba(190, 245, 231, 0.28);
    box-shadow: inset 0 0 16px rgba(116, 214, 202, 0.12), 0 0 18px rgba(116, 214, 202, 0.14);
    animation: frontierWarConsequenceRing calc(var(--fw-flow-speed, 3.4s) * 1.16) ease-out infinite;
    animation-delay: calc(var(--fw-flow-delay, 0s) - 0.12s);
}

.frontier-war-consequence-flow em {
    inset: 24%;
    opacity: 0.45;
    background-image: url('../images/frontier-war/world-map-combat-fx-v114.png');
    background-size: 400% 400%;
    mix-blend-mode: screen;
}

.frontier-war-consequence-flow.kind-impact-spread {
    z-index: 3;
    filter: saturate(1.24) contrast(1.1) drop-shadow(0 0 26px rgba(255, 238, 190, 0.32));
}

.frontier-war-consequence-flow.kind-impact-spread::before {
    background:
        radial-gradient(circle, rgba(255, 247, 218, 0.46), transparent 22%),
        radial-gradient(circle, rgba(116, 214, 202, 0.18), transparent 58%);
}

.frontier-war-consequence-flow.kind-route-ripple,
.frontier-war-consequence-flow.kind-frontline-claim {
    aspect-ratio: auto;
    height: clamp(6px, 0.9vw, 13px);
    min-width: 36px;
    border-radius: 999px;
    opacity: calc(var(--fw-flow-intensity, 0.72) * 0.86);
}

.frontier-war-consequence-flow.kind-route-ripple::before,
.frontier-war-consequence-flow.kind-frontline-claim::before {
    inset: 22% 0;
    background:
        linear-gradient(90deg, transparent 0%, rgba(116, 214, 202, 0.24) 18%, rgba(255, 238, 190, 0.72) 50%, rgba(238, 95, 55, 0.28) 82%, transparent 100%);
    animation: frontierWarConsequenceRoute var(--fw-flow-speed, 3.4s) ease-in-out infinite;
}

.frontier-war-consequence-flow.kind-route-ripple i,
.frontier-war-consequence-flow.kind-frontline-claim i {
    inset: -150% 4%;
    background:
        radial-gradient(ellipse at 54% 50%, rgba(255, 246, 220, 0.28), transparent 42%),
        linear-gradient(90deg, transparent, rgba(116, 214, 202, 0.22), transparent);
    animation: frontierWarConsequenceRouteFlash calc(var(--fw-flow-speed, 3.4s) * 0.88) linear infinite;
}

.frontier-war-consequence-flow.kind-route-ripple b,
.frontier-war-consequence-flow.kind-route-ripple em,
.frontier-war-consequence-flow.kind-frontline-claim b,
.frontier-war-consequence-flow.kind-frontline-claim em {
    display: none;
}

.frontier-war-consequence-flow.kind-region-shock {
    aspect-ratio: auto;
    height: var(--fw-flow-h, 18%);
    transform: none;
    border-radius: 0;
    opacity: calc(var(--fw-flow-intensity, 0.72) * 0.58);
    mix-blend-mode: overlay;
    filter: saturate(1.12) contrast(1.08) drop-shadow(0 0 24px rgba(240, 199, 110, 0.18));
}

.frontier-war-consequence-flow.kind-region-shock::before {
    border-radius: 0;
    background:
        radial-gradient(circle at 50% 48%, rgba(255, 238, 190, 0.18), transparent 44%),
        repeating-linear-gradient(135deg, rgba(116, 214, 202, 0.1) 0 2px, transparent 2px 12px);
    animation: frontierWarConsequenceRegion var(--fw-flow-speed, 3.4s) ease-in-out infinite;
}

.frontier-war-consequence-flow.kind-next-hotspot {
    opacity: calc(var(--fw-flow-intensity, 0.62) * 0.72);
    filter: saturate(1.1) drop-shadow(0 0 18px rgba(255, 238, 190, 0.28));
}

.frontier-war-consequence-flow.kind-next-hotspot::before {
    background:
        radial-gradient(circle, transparent 38%, rgba(255, 238, 190, 0.38) 42% 47%, transparent 52%),
        conic-gradient(from 0deg, rgba(255, 238, 190, 0.05), rgba(116, 214, 202, 0.18), rgba(255, 238, 190, 0.05));
    animation: frontierWarConsequenceHotspot var(--fw-flow-speed, 3.4s) ease-in-out infinite;
}

.frontier-war-consequence-flow.kind-supply-stabilize {
    mix-blend-mode: screen;
    filter: saturate(1.18) drop-shadow(0 0 20px rgba(116, 214, 202, 0.34));
}

.frontier-war-consequence-flow.kind-supply-stabilize::before {
    background:
        radial-gradient(circle, rgba(194, 255, 229, 0.28), transparent 32%),
        conic-gradient(from 30deg, transparent 0 18%, rgba(116, 214, 202, 0.2) 22% 30%, transparent 36% 100%);
}

.frontier-war-consequence-flow.kind-enemy-pressure {
    mix-blend-mode: multiply;
    opacity: calc(var(--fw-flow-intensity, 0.72) * 0.78);
    filter: saturate(1.08) contrast(1.16) drop-shadow(0 0 20px rgba(176, 50, 44, 0.32));
}

.frontier-war-consequence-flow.kind-enemy-pressure::before {
    background:
        radial-gradient(circle, rgba(176, 50, 44, 0.28), transparent 42%),
        repeating-linear-gradient(135deg, rgba(0, 0, 0, 0.24) 0 3px, transparent 3px 12px);
}

.frontier-war-consequence-flow.kind-frontline-claim {
    filter: saturate(1.32) contrast(1.1) drop-shadow(0 0 20px rgba(238, 95, 55, 0.34));
}

.frontier-war-consequence-flow.kind-fog-warning {
    opacity: calc(var(--fw-flow-intensity, 0.62) * 0.55);
    mix-blend-mode: soft-light;
    filter: saturate(0.76) blur(0.5px) drop-shadow(0 0 16px rgba(118, 135, 132, 0.26));
}

.frontier-war-consequence-flow.kind-fog-warning::before {
    background:
        radial-gradient(ellipse at 44% 38%, rgba(221, 226, 214, 0.24), transparent 42%),
        radial-gradient(ellipse at 66% 62%, rgba(74, 86, 86, 0.24), transparent 52%);
}

.frontier-war-map-decision-cues-v125 {
    --fw-decision-cues-live: 1;
}

.frontier-war-decision-cue-layer-v125 {
    position: absolute;
    inset: 0;
    z-index: 6;
    pointer-events: none;
}

.frontier-war-decision-cue {
    position: absolute;
    min-width: 132px;
    max-width: 248px;
    transform: translate(-50%, calc(-100% - 12px));
    padding: 7px 9px 8px 11px;
    border: 1px solid rgba(255, 238, 190, 0.38);
    border-radius: 8px;
    background:
        linear-gradient(90deg, rgba(6, 13, 15, 0.92), rgba(16, 27, 26, 0.82)),
        radial-gradient(circle at 12% 0, rgba(255, 238, 190, 0.16), transparent 36%);
    box-shadow: 0 10px 22px rgba(0, 0, 0, 0.28), inset 0 0 0 1px rgba(255, 255, 255, 0.04);
    color: #fff3d2;
    opacity: 0.92;
    animation: frontierWarDecisionCueFloat 3.8s ease-in-out infinite;
    animation-delay: var(--fw-cue-delay, 0s);
}

.frontier-war-decision-cue::before,
.frontier-war-decision-cue i {
    content: '';
    position: absolute;
    pointer-events: none;
}

.frontier-war-decision-cue::before {
    left: 50%;
    bottom: -9px;
    width: 1px;
    height: 11px;
    background: linear-gradient(180deg, rgba(255, 238, 190, 0.62), transparent);
}

.frontier-war-decision-cue i {
    left: 8px;
    top: 8px;
    width: 5px;
    height: calc(100% - 16px);
    border-radius: 999px;
    background: rgba(240, 199, 110, 0.78);
    box-shadow: 0 0 14px rgba(240, 199, 110, 0.34);
}

.frontier-war-decision-cue strong,
.frontier-war-decision-cue em {
    display: block;
    min-width: 0;
    padding-left: 10px;
    overflow-wrap: anywhere;
    white-space: normal;
}

.frontier-war-decision-cue strong {
    color: #fff6dc;
    font-size: clamp(0.66rem, 0.8vw, 0.78rem);
    line-height: 1.15;
}

.frontier-war-decision-cue em {
    margin-top: 2px;
    color: #c8d7d4;
    font-size: clamp(0.56rem, 0.68vw, 0.66rem);
    font-style: normal;
    line-height: 1.2;
}

.frontier-war-decision-cue.kind-decision-primary {
    border-color: rgba(255, 238, 190, 0.62);
    background:
        linear-gradient(90deg, rgba(20, 16, 10, 0.94), rgba(31, 28, 18, 0.84)),
        radial-gradient(circle at 12% 0, rgba(255, 238, 190, 0.22), transparent 38%);
}

.frontier-war-decision-cue.kind-decision-primary i,
.frontier-war-decision-cue.kind-frontline-push i {
    background: rgba(255, 217, 128, 0.9);
}

.frontier-war-decision-cue.kind-route-chain i {
    background: rgba(116, 214, 202, 0.9);
}

.frontier-war-decision-cue.kind-region-anchor i {
    background: rgba(176, 197, 151, 0.9);
}

.frontier-war-decision-cue.kind-risk-warning {
    border-color: rgba(238, 95, 55, 0.48);
}

.frontier-war-decision-cue.kind-risk-warning i {
    background: rgba(238, 95, 55, 0.88);
}

.frontier-war-decision-cue.kind-supply-window {
    border-color: rgba(116, 214, 202, 0.46);
}

.frontier-war-decision-cue.kind-supply-window i {
    background: rgba(116, 214, 202, 0.88);
}

.frontier-war-map-decision-rationale-v126 {
    --fw-decision-rationale-live: 1;
}

.frontier-war-decision-rationale-layer-v126 {
    position: absolute;
    inset: 0;
    z-index: 6;
    pointer-events: none;
}

.frontier-war-decision-rationale {
    position: absolute;
    min-width: 142px;
    max-width: 236px;
    transform: translate(-50%, 8px);
    display: grid;
    grid-template-columns: 20px minmax(0, 1fr);
    gap: 5px 7px;
    align-items: start;
    padding: 7px 9px 8px;
    border: 1px solid rgba(179, 224, 212, 0.28);
    border-radius: 8px;
    background:
        linear-gradient(180deg, rgba(5, 11, 13, 0.9), rgba(12, 20, 22, 0.8)),
        radial-gradient(circle at 0 0, rgba(116, 214, 202, 0.12), transparent 40%);
    color: #e8f3ef;
    box-shadow: 0 10px 22px rgba(0, 0, 0, 0.22), inset 0 0 0 1px rgba(255, 255, 255, 0.035);
    opacity: 0.88;
    animation: frontierWarDecisionRationaleRise 4.6s ease-in-out infinite;
    animation-delay: var(--fw-rationale-delay, 0s);
}

.frontier-war-decision-rationale i {
    display: grid;
    place-items: center;
    width: 20px;
    height: 20px;
    border-radius: 999px;
    color: #071012;
    background: #f0c76e;
    font-size: 0.66rem;
    font-style: normal;
    font-weight: 900;
}

.frontier-war-decision-rationale strong,
.frontier-war-decision-rationale em {
    display: block;
    min-width: 0;
    overflow-wrap: anywhere;
}

.frontier-war-decision-rationale strong {
    color: #fff6dc;
    font-size: clamp(0.62rem, 0.76vw, 0.74rem);
    line-height: 1.16;
}

.frontier-war-decision-rationale em {
    grid-column: 2;
    margin-top: -2px;
    color: #c8d7d4;
    font-size: clamp(0.54rem, 0.64vw, 0.62rem);
    font-style: normal;
    line-height: 1.22;
}

.frontier-war-decision-rationale.kind-rationale-risk {
    border-color: rgba(238, 95, 55, 0.42);
}

.frontier-war-decision-rationale.kind-rationale-risk i {
    background: rgba(238, 95, 55, 0.9);
    color: #fff4d8;
}

.frontier-war-decision-rationale.kind-rationale-supply i,
.frontier-war-decision-rationale.kind-rationale-route i {
    background: rgba(116, 214, 202, 0.9);
}

.frontier-war-decision-rationale.kind-rationale-region i {
    background: rgba(176, 197, 151, 0.92);
}

.frontier-war-decision-rationale-steps {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 170px), 1fr));
    gap: 6px;
    margin-top: 8px;
}

.frontier-war-decision-rationale-grid {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr));
}

.frontier-war-decision-rationale-steps span {
    min-width: 0;
    padding: 7px;
    border: 1px solid rgba(240, 199, 110, 0.14);
    border-radius: 7px;
    background: rgba(6, 13, 15, 0.5);
}

.frontier-war-decision-rationale-steps b,
.frontier-war-decision-rationale-steps em {
    display: block;
    min-width: 0;
    overflow-wrap: anywhere;
}

.frontier-war-decision-rationale-steps b {
    color: #f0c76e;
    font-size: 0.66rem;
}

.frontier-war-map-decision-preview-v127 {
    --fw-decision-preview-live: 1;
}

.frontier-war-decision-preview-layer-v127 {
    position: absolute;
    inset: 0;
    z-index: 7;
    pointer-events: none;
}

.frontier-war-decision-preview {
    position: absolute;
    min-width: 150px;
    max-width: 248px;
    transform: translate(-50%, -50%);
    display: grid;
    grid-template-columns: 22px minmax(0, 1fr);
    gap: 5px 8px;
    align-items: start;
    padding: 8px 9px;
    border: 1px solid rgba(116, 214, 202, 0.36);
    border-radius: 8px;
    background:
        linear-gradient(180deg, rgba(5, 13, 14, 0.92), rgba(10, 20, 21, 0.82)),
        radial-gradient(circle at 0 0, rgba(116, 214, 202, 0.16), transparent 42%);
    color: #e8f3ef;
    box-shadow: 0 12px 26px rgba(0, 0, 0, 0.24), inset 0 0 0 1px rgba(255, 255, 255, 0.04);
    opacity: 0.92;
    animation: frontierWarDecisionPreviewPulse 4.8s ease-in-out infinite;
    animation-delay: var(--fw-preview-delay, 0s);
}

.frontier-war-decision-preview i {
    display: grid;
    place-items: center;
    width: 22px;
    height: 22px;
    border-radius: 999px;
    color: #051012;
    background: #74d6ca;
    font-size: 0.68rem;
    font-style: normal;
    font-weight: 900;
}

.frontier-war-decision-preview strong,
.frontier-war-decision-preview em {
    display: block;
    min-width: 0;
    overflow-wrap: anywhere;
}

.frontier-war-decision-preview strong {
    color: #f6fff9;
    font-size: clamp(0.62rem, 0.76vw, 0.74rem);
    line-height: 1.16;
}

.frontier-war-decision-preview em {
    grid-column: 2;
    margin-top: -2px;
    color: #d6e5df;
    font-size: clamp(0.54rem, 0.64vw, 0.62rem);
    font-style: normal;
    line-height: 1.22;
}

.frontier-war-decision-preview.kind-preview-capture {
    border-color: rgba(138, 224, 181, 0.54);
}

.frontier-war-decision-preview.kind-preview-capture i {
    background: #8ae0b5;
}

.frontier-war-decision-preview.kind-preview-risk {
    border-color: rgba(238, 95, 55, 0.54);
}

.frontier-war-decision-preview.kind-preview-risk i {
    background: rgba(238, 95, 55, 0.92);
    color: #fff4d8;
}

.frontier-war-decision-preview.kind-preview-support i,
.frontier-war-decision-preview.kind-preview-scout i {
    background: rgba(240, 199, 110, 0.94);
}

.frontier-war-decision-preview-steps {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 170px), 1fr));
    gap: 6px;
    margin-top: 8px;
}

.frontier-war-decision-preview-grid {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr));
}

.frontier-war-decision-preview-steps span {
    min-width: 0;
    padding: 7px;
    border: 1px solid rgba(116, 214, 202, 0.16);
    border-radius: 7px;
    background: rgba(6, 13, 15, 0.5);
}

.frontier-war-decision-preview-steps b,
.frontier-war-decision-preview-steps em {
    display: block;
    min-width: 0;
    overflow-wrap: anywhere;
}

.frontier-war-decision-preview-steps b {
    color: #74d6ca;
    font-size: 0.66rem;
}

@keyframes frontierWarDecisionPreviewPulse {
    0%, 100% { transform: translate(-50%, -50%) scale(0.98); opacity: 0.84; }
    50% { transform: translate(-50%, -53%) scale(1.02); opacity: 0.96; }
}

.frontier-war-map-confirm-trace-v128 {
    --fw-confirm-trace-live: 1;
}

.frontier-war-confirm-trace-layer-v128 {
    position: absolute;
    inset: 0;
    z-index: 8;
    pointer-events: none;
    mix-blend-mode: screen;
}

.frontier-war-confirm-trace {
    position: absolute;
    height: clamp(8px, 0.84vw, 13px);
    min-width: clamp(76px, 6vw, 112px);
    transform: translate(-50%, -50%) rotate(var(--fw-confirm-rotate, 0deg));
    transform-origin: 50% 50%;
    border-radius: 999px;
    overflow: hidden;
    opacity: 0.84;
    filter: saturate(1.18) drop-shadow(0 0 16px rgba(116, 214, 202, 0.34));
    animation: frontierWarConfirmTraceFlow 4.2s ease-in-out infinite;
    animation-delay: var(--fw-confirm-delay, 0s);
}

.frontier-war-confirm-trace::before,
.frontier-war-confirm-trace i {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    pointer-events: none;
}

.frontier-war-confirm-trace::before {
    background:
        linear-gradient(90deg, transparent 0%, rgba(116, 214, 202, 0.3) 16%, rgba(255, 238, 190, 0.86) 50%, rgba(138, 224, 181, 0.32) 84%, transparent 100%);
}

.frontier-war-confirm-trace i {
    inset: -120% 6%;
    background:
        radial-gradient(ellipse at 50% 50%, rgba(255, 248, 220, 0.24), transparent 46%),
        linear-gradient(90deg, transparent, rgba(116, 214, 202, 0.22), transparent);
    animation: frontierWarConfirmTraceGlint 3.2s linear infinite;
    animation-delay: calc(var(--fw-confirm-delay, 0s) - 0.18s);
}

.frontier-war-confirm-trace b,
.frontier-war-confirm-trace em {
    position: absolute;
    top: 50%;
    transform: translateY(-50%) rotate(calc(var(--fw-confirm-rotate, 0deg) * -1));
    font-style: normal;
    white-space: nowrap;
}

.frontier-war-confirm-trace b {
    left: 2px;
    display: grid;
    place-items: center;
    width: 18px;
    height: 18px;
    border-radius: 999px;
    color: #061312;
    background: #74d6ca;
    font-size: 0.58rem;
    font-weight: 900;
    box-shadow: 0 0 14px rgba(116, 214, 202, 0.4);
}

.frontier-war-confirm-trace em {
    right: 2px;
    max-width: calc(100% - 26px);
    overflow: hidden;
    text-overflow: ellipsis;
    padding: 2px 6px;
    border: 1px solid rgba(116, 214, 202, 0.28);
    border-radius: 999px;
    background: rgba(3, 10, 11, 0.82);
    color: #dffcf4;
    font-size: clamp(0.52rem, 0.58vw, 0.62rem);
}

.frontier-war-confirm-trace em::before {
    content: attr(data-confirm-trace-label);
}

.frontier-war-confirm-trace b,
.frontier-war-confirm-trace em {
    display: none;
}

.frontier-war-confirm-trace.closed-loop {
    opacity: 0.96;
    filter: saturate(1.26) drop-shadow(0 0 20px rgba(255, 238, 190, 0.38));
}

.frontier-war-confirm-trace.open-loop {
    opacity: 0.6;
}

.frontier-war-confirm-replay-layer-v129 {
    position: absolute;
    inset: 0;
    z-index: 9;
    pointer-events: none;
    mix-blend-mode: screen;
}

.frontier-war-confirm-trace.completed-v129 {
    height: clamp(12px, 1vw, 18px);
    min-width: clamp(112px, 10vw, 170px);
    opacity: 0;
    filter:
        saturate(1.35)
        drop-shadow(0 0 18px rgba(255, 238, 190, 0.52))
        drop-shadow(0 0 26px rgba(116, 214, 202, 0.28));
    animation: frontierWarConfirmReplayHold 1.8s ease-out both;
}

.frontier-war-confirm-trace.completed-v129::before {
    background:
        linear-gradient(90deg, transparent 0%, rgba(116, 214, 202, 0.36) 12%, rgba(255, 238, 190, 0.94) 48%, rgba(138, 224, 181, 0.46) 82%, transparent 100%),
        radial-gradient(circle at 50% 50%, rgba(255, 248, 220, 0.28), transparent 62%);
}

.frontier-war-confirm-trace.completed-v129 i {
    animation-duration: 1.4s;
}

.frontier-war-confirm-trace.completed-v129 b,
.frontier-war-confirm-trace.completed-v129 em {
    display: grid;
}

.frontier-war-confirm-trace.completed-v129 b {
    width: 24px;
    height: 24px;
    background: #ffeebe;
    color: #251b08;
    font-size: 0.54rem;
}

.frontier-war-confirm-trace.completed-v129 em {
    display: block;
    max-width: calc(100% - 34px);
    border-color: rgba(255, 238, 190, 0.5);
    color: #fff4cb;
}

.frontier-war-confirm-trace.completed-v129.result-danger b {
    background: #ff9b92;
}

.frontier-war-confirm-trace.completed-v129.result-success b {
    background: #8ae0b5;
}

.frontier-war-confirm-stack-v130 {
    position: absolute;
    right: clamp(10px, 1.4vw, 18px);
    bottom: clamp(10px, 1.4vw, 18px);
    z-index: 18;
    width: min(330px, 42%);
    max-width: calc(100% - 20px);
    border: 1px solid rgba(116, 214, 202, 0.28);
    border-radius: 8px;
    background:
        linear-gradient(180deg, rgba(5, 13, 14, 0.88), rgba(5, 10, 12, 0.74)),
        rgba(5, 10, 12, 0.88);
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.28);
    pointer-events: auto;
}

.frontier-war-confirm-stack-v130 summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    min-width: 0;
    padding: 8px 10px;
    color: #e9fffa;
    cursor: pointer;
    list-style: none;
}

.frontier-war-confirm-stack-v130 summary::-webkit-details-marker {
    display: none;
}

.frontier-war-confirm-stack-v130 summary span,
.frontier-war-confirm-stack-v130 summary strong {
    min-width: 0;
    overflow-wrap: anywhere;
}

.frontier-war-confirm-stack-v130 summary span {
    color: #cfeee8;
    font-size: 0.72rem;
}

.frontier-war-confirm-stack-v130 summary strong {
    color: #ffeebe;
    font-size: 0.7rem;
}

.frontier-war-confirm-stack-list-v130 {
    display: grid;
    gap: 6px;
    padding: 0 8px 8px;
}

.frontier-war-confirm-stack-item-v130 {
    display: grid;
    grid-template-columns: 24px minmax(0, 1fr);
    gap: 7px;
    align-items: center;
    min-width: 0;
    padding: 7px;
    border: 1px solid rgba(116, 214, 202, 0.18);
    border-radius: 7px;
    background: rgba(7, 18, 19, 0.72);
}

.frontier-war-confirm-stack-item-v130 b {
    display: grid;
    place-items: center;
    width: 22px;
    height: 22px;
    border-radius: 999px;
    background: rgba(116, 214, 202, 0.2);
    color: #e9fffa;
    font-size: 0.66rem;
}

.frontier-war-confirm-stack-item-v130 span,
.frontier-war-confirm-stack-item-v130 strong,
.frontier-war-confirm-stack-item-v130 em {
    display: block;
    min-width: 0;
    overflow-wrap: anywhere;
}

.frontier-war-confirm-stack-item-v130 strong {
    color: #fff3d2;
    font-size: 0.7rem;
}

.frontier-war-confirm-stack-item-v130 em {
    margin-top: 2px;
    color: #b9cfcb;
    font-size: 0.62rem;
    font-style: normal;
}

.frontier-war-confirm-stack-item-v130.fresh {
    border-color: rgba(255, 238, 190, 0.42);
    background:
        radial-gradient(circle at 0 0, rgba(255, 238, 190, 0.14), transparent 45%),
        rgba(7, 18, 19, 0.76);
}

.frontier-war-confirm-stack-item-v130.result-success b {
    background: rgba(138, 224, 181, 0.28);
    color: #eafff3;
}

.frontier-war-confirm-stack-item-v130.result-danger b {
    background: rgba(255, 155, 146, 0.3);
    color: #fff2ef;
}

.frontier-war-confirm-stack-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.frontier-war-confirm-stack-grid article.completed {
    border-color: rgba(116, 214, 202, 0.24);
}

.frontier-war-confirm-stack-grid article.success {
    border-color: rgba(138, 224, 181, 0.34);
}

.frontier-war-confirm-stack-grid article.danger {
    border-color: rgba(255, 155, 146, 0.34);
}

.frontier-war-confirm-stack-filter-v131 {
    position: absolute;
    left: clamp(10px, 1.4vw, 18px);
    bottom: clamp(10px, 1.4vw, 18px);
    z-index: 19;
    width: min(360px, 44%);
    max-width: calc(100% - 20px);
    padding: 9px;
    border: 1px solid rgba(138, 224, 181, 0.28);
    border-radius: 8px;
    background:
        radial-gradient(circle at 0 0, rgba(138, 224, 181, 0.14), transparent 45%),
        linear-gradient(180deg, rgba(5, 15, 13, 0.92), rgba(5, 10, 12, 0.78));
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.28);
    pointer-events: auto;
}

.frontier-war-confirm-stack-filter-head-v131,
.frontier-war-confirm-stack-filter-options-v131,
.frontier-war-confirm-stack-filter-list-v131 {
    min-width: 0;
}

.frontier-war-confirm-stack-filter-head-v131 {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    color: #eafff3;
    font-size: 0.72rem;
    font-weight: 900;
}

.frontier-war-confirm-stack-filter-head-v131 strong {
    color: #ffeebe;
    overflow-wrap: anywhere;
}

.frontier-war-confirm-stack-filter-options-v131,
.frontier-war-confirm-stack-filter-tabs {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 5px;
    margin-top: 8px;
}

.frontier-war-confirm-stack-filter-option-v131,
.frontier-war-confirm-stack-filter-tabs button {
    min-width: 0;
    padding: 6px;
    border: 1px solid rgba(116, 214, 202, 0.18);
    border-radius: 7px;
    color: #d9efea;
    background: rgba(7, 18, 19, 0.72);
    cursor: pointer;
}

.frontier-war-confirm-stack-filter-option-v131 span,
.frontier-war-confirm-stack-filter-tabs strong,
.frontier-war-confirm-stack-filter-tabs span {
    display: block;
    min-width: 0;
    overflow-wrap: normal;
    word-break: keep-all;
    white-space: nowrap;
    font-size: 0.62rem;
    line-height: 1.15;
}

.frontier-war-confirm-stack-filter-option-v131 b,
.frontier-war-confirm-stack-filter-tabs span {
    color: #ffeebe;
    font-size: 0.66rem;
}

.frontier-war-confirm-stack-filter-option-v131.active,
.frontier-war-confirm-stack-filter-tabs button.active {
    border-color: rgba(255, 238, 190, 0.5);
    background:
        radial-gradient(circle at 0 0, rgba(255, 238, 190, 0.16), transparent 44%),
        rgba(13, 24, 22, 0.82);
}

.frontier-war-confirm-stack-filter-option-v131.empty,
.frontier-war-confirm-stack-filter-tabs button.empty {
    opacity: 0.68;
}

.frontier-war-confirm-stack-filter-review-v131 {
    min-width: 0;
    margin-top: 8px;
    padding: 8px;
    border: 1px solid rgba(138, 224, 181, 0.2);
    border-radius: 7px;
    background: rgba(7, 18, 19, 0.74);
}

.frontier-war-confirm-stack-filter-review-v131 strong,
.frontier-war-confirm-stack-filter-review-v131 p,
.frontier-war-confirm-stack-filter-review-v131 em {
    display: block;
    min-width: 0;
    overflow-wrap: anywhere;
}

.frontier-war-confirm-stack-filter-review-v131 strong {
    color: #fff3d2;
    font-size: 0.74rem;
}

.frontier-war-confirm-stack-filter-review-v131 p,
.frontier-war-confirm-stack-filter-review-v131 em {
    margin: 3px 0 0;
    color: #b9cfcb;
    font-size: 0.62rem;
    font-style: normal;
}

.frontier-war-confirm-stack-filter-list-v131 {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 5px;
    margin-top: 8px;
}

.frontier-war-confirm-stack-filter-item-v131 {
    display: grid;
    grid-template-columns: 20px minmax(0, 1fr);
    gap: 5px;
    align-items: center;
    min-width: 0;
    padding: 5px;
    border: 1px solid rgba(138, 224, 181, 0.16);
    border-radius: 7px;
    background: rgba(7, 18, 19, 0.62);
}

.frontier-war-confirm-stack-filter-item-v131 b,
.frontier-war-confirm-stack-filter-item-v131 span {
    min-width: 0;
    overflow-wrap: anywhere;
    font-size: 0.62rem;
}

.frontier-war-confirm-stack-filter-item-v131 b {
    display: grid;
    place-items: center;
    width: 18px;
    height: 18px;
    border-radius: 999px;
    color: #eafff3;
    background: rgba(138, 224, 181, 0.2);
}

.frontier-war-confirm-stack-filter-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.frontier-war-confirm-stack-filter-grid article.success {
    border-color: rgba(138, 224, 181, 0.34);
}

.frontier-war-confirm-stack-filter-grid article.risk,
.frontier-war-confirm-stack-filter-grid article.danger {
    border-color: rgba(255, 155, 146, 0.34);
}

.frontier-war-confirm-stack-filter-grid article.pressure {
    border-color: rgba(255, 238, 190, 0.34);
}

.frontier-war-confirm-stack-filter-grid article.expand {
    border-color: rgba(116, 214, 202, 0.34);
}

.frontier-war-confirm-stack-drilldown-v132 {
    position: absolute;
    right: clamp(10px, 1.4vw, 18px);
    top: clamp(82px, 8vw, 102px);
    z-index: 20;
    width: min(340px, 42%);
    max-width: calc(100% - 20px);
    padding: 9px;
    border: 1px solid rgba(255, 238, 190, 0.3);
    border-radius: 8px;
    background:
        radial-gradient(circle at 0 0, rgba(255, 238, 190, 0.14), transparent 45%),
        radial-gradient(circle at 100% 0, rgba(138, 224, 181, 0.12), transparent 42%),
        linear-gradient(180deg, rgba(16, 15, 8, 0.92), rgba(5, 10, 12, 0.78));
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.28);
    pointer-events: auto;
}

.frontier-war-confirm-stack-drilldown-head-v132,
.frontier-war-confirm-stack-drilldown-sample-v132,
.frontier-war-confirm-stack-drilldown-grid-v132 {
    min-width: 0;
}

.frontier-war-confirm-stack-drilldown-head-v132 {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    color: #fff8dc;
    font-size: 0.72rem;
    font-weight: 900;
}

.frontier-war-confirm-stack-drilldown-head-v132 strong {
    color: #8ae0b5;
    overflow-wrap: anywhere;
}

.frontier-war-confirm-stack-drilldown-sample-v132 {
    margin-top: 8px;
    padding: 8px;
    border: 1px solid rgba(255, 238, 190, 0.2);
    border-radius: 7px;
    background: rgba(7, 18, 19, 0.74);
}

.frontier-war-confirm-stack-drilldown-sample-v132 strong,
.frontier-war-confirm-stack-drilldown-sample-v132 p,
.frontier-war-confirm-stack-drilldown-sample-v132 em {
    display: block;
    min-width: 0;
    overflow-wrap: anywhere;
}

.frontier-war-confirm-stack-drilldown-sample-v132 strong {
    color: #fff3d2;
    font-size: 0.74rem;
}

.frontier-war-confirm-stack-drilldown-sample-v132 p,
.frontier-war-confirm-stack-drilldown-sample-v132 em {
    margin: 3px 0 0;
    color: #b9cfcb;
    font-size: 0.62rem;
    font-style: normal;
}

.frontier-war-confirm-stack-drilldown-grid-v132 {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 5px;
    margin-top: 8px;
}

.frontier-war-confirm-stack-drilldown-grid-v132 article {
    min-width: 0;
    padding: 6px;
    border: 1px solid rgba(255, 238, 190, 0.16);
    border-radius: 7px;
    background: rgba(7, 18, 19, 0.62);
}

.frontier-war-confirm-stack-drilldown-grid-v132 article.active {
    border-color: rgba(255, 238, 190, 0.48);
    background:
        radial-gradient(circle at 0 0, rgba(255, 238, 190, 0.16), transparent 44%),
        rgba(13, 24, 22, 0.82);
}

.frontier-war-confirm-stack-drilldown-grid-v132 strong,
.frontier-war-confirm-stack-drilldown-grid-v132 span {
    display: block;
    min-width: 0;
    overflow-wrap: normal;
    word-break: keep-all;
    white-space: nowrap;
    font-size: 0.58rem;
    line-height: 1.15;
}

.frontier-war-confirm-stack-drilldown-grid-v132 span {
    color: #ffeebe;
    margin-top: 3px;
}

.frontier-war-confirm-stack-drilldown-summary {
    grid-template-columns: 1.2fr 1fr;
}

.frontier-war-confirm-stack-drilldown-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.frontier-war-confirm-stack-drilldown-grid article.benefit,
.frontier-war-confirm-stack-drilldown-grid article.success {
    border-color: rgba(138, 224, 181, 0.34);
}

.frontier-war-confirm-stack-drilldown-grid article.risk,
.frontier-war-confirm-stack-drilldown-grid article.danger {
    border-color: rgba(255, 155, 146, 0.34);
}

.frontier-war-confirm-stack-drilldown-grid article.pressure,
.frontier-war-confirm-stack-drilldown-grid article.warning {
    border-color: rgba(255, 238, 190, 0.34);
}

.frontier-war-confirm-stack-drilldown-grid article.expand,
.frontier-war-confirm-stack-drilldown-grid article.info {
    border-color: rgba(116, 214, 202, 0.34);
}

.frontier-war-confirm-stack-drilldown-grid article strong {
    overflow-wrap: normal;
    word-break: keep-all;
    white-space: nowrap;
}

.frontier-war-confirm-stack-playback-v133 {
    position: absolute;
    right: clamp(10px, 1.4vw, 18px);
    top: clamp(270px, 27vw, 322px);
    z-index: 21;
    width: min(340px, 42%);
    max-width: calc(100% - 20px);
    padding: 9px;
    border: 1px solid rgba(116, 214, 202, 0.34);
    border-radius: 8px;
    background:
        radial-gradient(circle at 0 0, rgba(116, 214, 202, 0.16), transparent 44%),
        radial-gradient(circle at 100% 0, rgba(255, 238, 190, 0.12), transparent 42%),
        linear-gradient(180deg, rgba(10, 24, 24, 0.92), rgba(5, 10, 12, 0.78));
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.28);
    pointer-events: auto;
}

.frontier-war-confirm-stack-playback-head-v133,
.frontier-war-confirm-stack-playback-controls-v133,
.frontier-war-confirm-stack-playback-sample-v133,
.frontier-war-confirm-stack-playback-track-v133 {
    min-width: 0;
}

.frontier-war-confirm-stack-playback-head-v133,
.frontier-war-confirm-stack-playback-controls-v133 {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    flex-wrap: wrap;
}

.frontier-war-confirm-stack-playback-v133,
.frontier-war-confirm-stack-playback-head-v133 span,
.frontier-war-confirm-stack-playback-head-v133 strong,
.frontier-war-confirm-stack-playback-controls-v133 button {
    min-width: 0;
    overflow-wrap: anywhere;
}

.frontier-war-confirm-stack-playback-head-v133 {
    color: #fff8dc;
    font-size: 0.72rem;
    font-weight: 900;
}

.frontier-war-confirm-stack-playback-head-v133 strong {
    color: #74d6ca;
}

.frontier-war-confirm-stack-playback-controls-v133,
.frontier-war-confirm-stack-playback-controls {
    margin-top: 8px;
    flex-wrap: wrap;
}

.frontier-war-confirm-stack-playback-controls-v133 button,
.frontier-war-confirm-stack-playback-controls button,
.frontier-war-confirm-stack-playback-pin-controls button {
    flex: 1 1 58px;
    min-width: 0;
    padding: 6px 9px;
    border: 1px solid rgba(116, 214, 202, 0.34);
    border-radius: 7px;
    color: #e8fffb;
    background: rgba(7, 18, 19, 0.72);
    font-size: 0.66rem;
    font-weight: 900;
    cursor: pointer;
}

.frontier-war-confirm-stack-playback-controls-v133 button:hover,
.frontier-war-confirm-stack-playback-controls button:hover,
.frontier-war-confirm-stack-playback-pin-controls button:hover {
    border-color: rgba(255, 238, 190, 0.5);
    color: #fff3d2;
}

.frontier-war-confirm-stack-playback-sample-v133 {
    margin-top: 8px;
    padding: 8px;
    border: 1px solid rgba(116, 214, 202, 0.24);
    border-radius: 7px;
    background: rgba(7, 18, 19, 0.74);
}

.frontier-war-confirm-stack-playback-sample-v133 strong,
.frontier-war-confirm-stack-playback-sample-v133 p,
.frontier-war-confirm-stack-playback-sample-v133 em {
    display: block;
    min-width: 0;
    overflow-wrap: anywhere;
}

.frontier-war-confirm-stack-playback-sample-v133 strong {
    color: #fff3d2;
    font-size: 0.74rem;
}

.frontier-war-confirm-stack-playback-sample-v133 p,
.frontier-war-confirm-stack-playback-sample-v133 em {
    margin: 3px 0 0;
    color: #b9cfcb;
    font-size: 0.62rem;
    font-style: normal;
}

.frontier-war-confirm-stack-playback-track-v133,
.frontier-war-confirm-stack-playback-track {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 5px;
    margin-top: 8px;
}

.frontier-war-confirm-stack-playback-track-v133 article,
.frontier-war-confirm-stack-playback-track article {
    min-width: 0;
    padding: 6px;
    border: 1px solid rgba(116, 214, 202, 0.18);
    border-radius: 7px;
    background: rgba(7, 18, 19, 0.62);
}

.frontier-war-confirm-stack-playback-track-v133 article.active,
.frontier-war-confirm-stack-playback-track article.active {
    border-color: rgba(255, 238, 190, 0.5);
    background:
        radial-gradient(circle at 0 0, rgba(255, 238, 190, 0.16), transparent 44%),
        rgba(13, 24, 22, 0.82);
}

.frontier-war-confirm-stack-playback-track-v133 strong,
.frontier-war-confirm-stack-playback-track-v133 span,
.frontier-war-confirm-stack-playback-track strong,
.frontier-war-confirm-stack-playback-track p,
.frontier-war-confirm-stack-playback-track em {
    display: block;
    min-width: 0;
    overflow-wrap: anywhere;
}

.frontier-war-confirm-stack-playback-track-v133 strong,
.frontier-war-confirm-stack-playback-track strong {
    color: #fff3d2;
    font-size: 0.62rem;
    line-height: 1.15;
}

.frontier-war-confirm-stack-playback-track-v133 span,
.frontier-war-confirm-stack-playback-track p,
.frontier-war-confirm-stack-playback-track em {
    margin: 3px 0 0;
    color: #b9cfcb;
    font-size: 0.58rem;
    font-style: normal;
}

.frontier-war-confirm-stack-playback-summary {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: 8px;
    margin-top: 8px;
}

.frontier-war-confirm-stack-playback-summary article {
    min-width: 0;
    padding: 9px;
    border: 1px solid rgba(116, 214, 202, 0.18);
    border-radius: 8px;
    background: rgba(7, 18, 19, 0.68);
}

.frontier-war-confirm-stack-playback-pin-v134 {
    margin-top: 8px;
    padding: 8px;
    border: 1px solid rgba(255, 238, 190, 0.3);
    border-radius: 7px;
    background:
        radial-gradient(circle at 0 0, rgba(255, 238, 190, 0.14), transparent 44%),
        rgba(10, 20, 19, 0.74);
}

.frontier-war-confirm-stack-playback-pin-v134.pinned {
    border-color: rgba(255, 238, 190, 0.5);
}

.frontier-war-confirm-stack-playback-pin-v134.waiting {
    opacity: 0.82;
}

.frontier-war-confirm-stack-playback-pin-v134 span,
.frontier-war-confirm-stack-playback-pin-v134 strong,
.frontier-war-confirm-stack-playback-pin-v134 em,
.frontier-war-confirm-stack-playback-pin-v134 b {
    display: block;
    min-width: 0;
    overflow-wrap: anywhere;
}

.frontier-war-confirm-stack-playback-pin-v134 span {
    color: #74d6ca;
    font-size: 0.58rem;
    font-weight: 900;
    text-transform: uppercase;
}

.frontier-war-confirm-stack-playback-pin-v134 strong {
    margin-top: 2px;
    color: #fff3d2;
    font-size: 0.68rem;
}

.frontier-war-confirm-stack-playback-pin-v134 em {
    margin-top: 3px;
    color: #b9cfcb;
    font-size: 0.58rem;
    font-style: normal;
}

.frontier-war-confirm-stack-recommendation-v135 {
    margin-top: 8px;
    padding: 8px;
    border: 1px solid rgba(138, 224, 181, 0.32);
    border-radius: 7px;
    background:
        radial-gradient(circle at 0 0, rgba(138, 224, 181, 0.14), transparent 42%),
        linear-gradient(180deg, rgba(9, 28, 23, 0.78), rgba(7, 18, 19, 0.74));
}

.frontier-war-confirm-stack-recommendation-v135.choice-switch-active {
    border-color: rgba(138, 224, 181, 0.5);
}

.frontier-war-confirm-stack-recommendation-v135.choice-keep-pinned {
    border-color: rgba(255, 238, 190, 0.5);
}

.frontier-war-confirm-stack-recommendation-v135.choice-wait-next-trace {
    border-color: rgba(116, 214, 202, 0.42);
}

.frontier-war-confirm-stack-recommendation-v135 span,
.frontier-war-confirm-stack-recommendation-v135 strong,
.frontier-war-confirm-stack-recommendation-v135 em,
.frontier-war-confirm-stack-recommendation-v135 b {
    display: block;
    min-width: 0;
    overflow-wrap: anywhere;
}

.frontier-war-confirm-stack-recommendation-v135 span {
    color: #8ae0b5;
    font-size: 0.58rem;
    font-weight: 900;
    text-transform: uppercase;
}

.frontier-war-confirm-stack-recommendation-v135 strong {
    margin-top: 2px;
    color: #fff3d2;
    font-size: 0.68rem;
}

.frontier-war-confirm-stack-recommendation-v135 em {
    margin-top: 3px;
    color: #b9cfcb;
    font-size: 0.58rem;
    font-style: normal;
}

.frontier-war-confirm-stack-commit-preview-v136 {
    margin-top: 8px;
    padding: 8px;
    border: 1px solid rgba(240, 199, 110, 0.34);
    border-radius: 7px;
    background:
        radial-gradient(circle at 100% 0, rgba(240, 199, 110, 0.16), transparent 44%),
        linear-gradient(180deg, rgba(31, 24, 13, 0.82), rgba(8, 18, 18, 0.76));
}

.frontier-war-confirm-stack-commit-preview-v136.tone-success {
    border-color: rgba(138, 224, 181, 0.48);
}

.frontier-war-confirm-stack-commit-preview-v136.tone-warning {
    border-color: rgba(255, 238, 190, 0.5);
}

.frontier-war-confirm-stack-commit-preview-v136.tone-danger {
    border-color: rgba(255, 155, 146, 0.48);
}

.frontier-war-confirm-stack-commit-preview-v136 span,
.frontier-war-confirm-stack-commit-preview-v136 strong,
.frontier-war-confirm-stack-commit-preview-v136 em {
    display: block;
    min-width: 0;
    overflow-wrap: anywhere;
}

.frontier-war-confirm-stack-commit-preview-v136 span {
    color: #f0c76e;
    font-size: 0.58rem;
    font-weight: 900;
    text-transform: uppercase;
}

.frontier-war-confirm-stack-commit-preview-v136 strong {
    margin-top: 2px;
    color: #fff3d2;
    font-size: 0.68rem;
}

.frontier-war-confirm-stack-commit-preview-v136 em {
    margin-top: 3px;
    color: #c8d8d3;
    font-size: 0.58rem;
    font-style: normal;
}

.frontier-war-confirm-stack-commit-highlight-v137 {
    margin-top: 8px;
    padding: 8px;
    border: 1px solid rgba(138, 224, 181, 0.36);
    border-radius: 7px;
    background:
        radial-gradient(circle at 0 0, rgba(138, 224, 181, 0.16), transparent 42%),
        radial-gradient(circle at 100% 0, rgba(240, 199, 110, 0.14), transparent 44%),
        linear-gradient(180deg, rgba(12, 34, 28, 0.84), rgba(8, 18, 18, 0.78));
}

.frontier-war-confirm-stack-commit-highlight-v137.tone-success {
    border-color: rgba(138, 224, 181, 0.56);
}

.frontier-war-confirm-stack-commit-highlight-v137.tone-warning {
    border-color: rgba(255, 238, 190, 0.52);
}

.frontier-war-confirm-stack-commit-highlight-v137.tone-danger {
    border-color: rgba(255, 155, 146, 0.5);
}

.frontier-war-confirm-stack-commit-highlight-v137 span,
.frontier-war-confirm-stack-commit-highlight-v137 strong,
.frontier-war-confirm-stack-commit-highlight-v137 em {
    display: block;
    min-width: 0;
    overflow-wrap: anywhere;
}

.frontier-war-confirm-stack-commit-highlight-v137 span {
    color: #8ae0b5;
    font-size: 0.58rem;
    font-weight: 900;
    text-transform: uppercase;
}

.frontier-war-confirm-stack-commit-highlight-v137 strong {
    margin-top: 2px;
    color: #fff3d2;
    font-size: 0.68rem;
}

.frontier-war-confirm-stack-commit-highlight-v137 em {
    margin-top: 3px;
    color: #c8d8d3;
    font-size: 0.58rem;
    font-style: normal;
}

.frontier-war-confirm-stack-outcome-echo-v138 {
    margin-top: 8px;
    padding: 8px;
    border: 1px solid rgba(116, 214, 202, 0.38);
    border-radius: 7px;
    background:
        radial-gradient(circle at 0 0, rgba(116, 214, 202, 0.18), transparent 42%),
        radial-gradient(circle at 100% 0, rgba(240, 199, 110, 0.16), transparent 44%),
        linear-gradient(180deg, rgba(10, 31, 34, 0.84), rgba(8, 18, 18, 0.78));
}

.frontier-war-confirm-stack-outcome-echo-v138.tone-success {
    border-color: rgba(138, 224, 181, 0.56);
}

.frontier-war-confirm-stack-outcome-echo-v138.tone-warning {
    border-color: rgba(255, 238, 190, 0.52);
}

.frontier-war-confirm-stack-outcome-echo-v138.tone-danger {
    border-color: rgba(255, 155, 146, 0.52);
}

.frontier-war-confirm-stack-outcome-echo-v138 span,
.frontier-war-confirm-stack-outcome-echo-v138 strong,
.frontier-war-confirm-stack-outcome-echo-v138 em {
    display: block;
    min-width: 0;
    overflow-wrap: anywhere;
}

.frontier-war-confirm-stack-outcome-echo-v138 span {
    color: #74d6ca;
    font-size: 0.58rem;
    font-weight: 900;
    text-transform: uppercase;
}

.frontier-war-confirm-stack-outcome-echo-v138 strong {
    margin-top: 2px;
    color: #fff3d2;
    font-size: 0.68rem;
}

.frontier-war-confirm-stack-outcome-echo-v138 em {
    margin-top: 3px;
    color: #c8d8d3;
    font-size: 0.58rem;
    font-style: normal;
}

.frontier-war-confirm-stack-trace-jump-v139 {
    margin-top: 8px;
    padding: 8px;
    border: 1px solid rgba(255, 190, 122, 0.42);
    border-radius: 7px;
    background:
        radial-gradient(circle at 0 0, rgba(255, 190, 122, 0.18), transparent 42%),
        radial-gradient(circle at 100% 0, rgba(116, 214, 202, 0.16), transparent 44%),
        linear-gradient(180deg, rgba(37, 25, 18, 0.86), rgba(8, 18, 18, 0.78));
}

.frontier-war-confirm-stack-trace-jump-v139.tone-success {
    border-color: rgba(138, 224, 181, 0.56);
}

.frontier-war-confirm-stack-trace-jump-v139.tone-warning {
    border-color: rgba(255, 238, 190, 0.52);
}

.frontier-war-confirm-stack-trace-jump-v139.tone-danger {
    border-color: rgba(255, 155, 146, 0.52);
}

.frontier-war-confirm-stack-trace-jump-v139 span,
.frontier-war-confirm-stack-trace-jump-v139 strong,
.frontier-war-confirm-stack-trace-jump-v139 em {
    display: block;
    min-width: 0;
    overflow-wrap: anywhere;
}

.frontier-war-confirm-stack-trace-jump-v139 span {
    color: #ffbe7a;
    font-size: 0.58rem;
    font-weight: 900;
    text-transform: uppercase;
}

.frontier-war-confirm-stack-trace-jump-v139 strong {
    margin-top: 2px;
    color: #fff3d2;
    font-size: 0.68rem;
}

.frontier-war-confirm-stack-trace-jump-v139 em {
    margin-top: 3px;
    color: #c8d8d3;
    font-size: 0.58rem;
    font-style: normal;
}

.frontier-war-confirm-stack-trace-landing-v140 {
    margin-top: 8px;
    padding: 8px;
    border: 1px solid rgba(138, 224, 181, 0.48);
    border-radius: 7px;
    background:
        radial-gradient(circle at 0 0, rgba(138, 224, 181, 0.18), transparent 42%),
        radial-gradient(circle at 100% 0, rgba(255, 190, 122, 0.16), transparent 44%),
        linear-gradient(180deg, rgba(18, 37, 28, 0.88), rgba(8, 18, 18, 0.78));
}

.frontier-war-confirm-stack-trace-landing-v140.tone-success {
    border-color: rgba(138, 224, 181, 0.62);
}

.frontier-war-confirm-stack-trace-landing-v140.tone-warning {
    border-color: rgba(255, 238, 190, 0.54);
}

.frontier-war-confirm-stack-trace-landing-v140.tone-danger {
    border-color: rgba(255, 155, 146, 0.54);
}

.frontier-war-confirm-stack-trace-landing-v140 span,
.frontier-war-confirm-stack-trace-landing-v140 strong,
.frontier-war-confirm-stack-trace-landing-v140 em {
    display: block;
    min-width: 0;
    overflow-wrap: anywhere;
}

.frontier-war-confirm-stack-trace-landing-v140 span {
    color: #8ae0b5;
    font-size: 0.58rem;
    font-weight: 900;
    text-transform: uppercase;
}

.frontier-war-confirm-stack-trace-landing-v140 strong {
    margin-top: 2px;
    color: #fff3d2;
    font-size: 0.68rem;
}

.frontier-war-confirm-stack-trace-landing-v140 em {
    margin-top: 3px;
    color: #c8d8d3;
    font-size: 0.58rem;
    font-style: normal;
}

.frontier-war-confirm-stack-trace-landing-decay-v141 {
    margin-top: 8px;
    padding: 8px;
    border: 1px solid rgba(116, 214, 202, 0.5);
    border-radius: 7px;
    background:
        radial-gradient(circle at 0 0, rgba(116, 214, 202, 0.18), transparent 42%),
        radial-gradient(circle at 100% 0, rgba(138, 224, 181, 0.15), transparent 44%),
        linear-gradient(180deg, rgba(12, 34, 34, 0.9), rgba(8, 18, 18, 0.78));
}

.frontier-war-confirm-stack-trace-landing-decay-v141.phase-just-landed,
.frontier-war-confirm-stack-trace-landing-decay-v141.phase-active-echo {
    border-color: rgba(116, 214, 202, 0.72);
}

.frontier-war-confirm-stack-trace-landing-decay-v141.phase-settling {
    border-color: rgba(255, 190, 122, 0.58);
}

.frontier-war-confirm-stack-trace-landing-decay-v141.phase-faded,
.frontier-war-confirm-stack-trace-landing-decay-v141.phase-derived {
    border-color: rgba(255, 238, 190, 0.38);
}

.frontier-war-confirm-stack-trace-landing-decay-v141 span,
.frontier-war-confirm-stack-trace-landing-decay-v141 strong,
.frontier-war-confirm-stack-trace-landing-decay-v141 em {
    display: block;
    min-width: 0;
    overflow-wrap: anywhere;
}

.frontier-war-confirm-stack-trace-landing-decay-v141 span {
    color: #74d6ca;
    font-size: 0.58rem;
    font-weight: 900;
    text-transform: uppercase;
}

.frontier-war-confirm-stack-trace-landing-decay-v141 strong {
    margin-top: 2px;
    color: #fff3d2;
    font-size: 0.68rem;
}

.frontier-war-confirm-stack-trace-landing-decay-v141 em {
    margin-top: 3px;
    color: #c8d8d3;
    font-size: 0.58rem;
    font-style: normal;
}

.frontier-war-confirm-stack-echo-trail-handoff-v142 {
    margin-top: 8px;
    padding: 8px;
    border: 1px solid rgba(255, 190, 122, 0.52);
    border-radius: 7px;
    background:
        radial-gradient(circle at 0 0, rgba(255, 190, 122, 0.18), transparent 42%),
        radial-gradient(circle at 100% 0, rgba(116, 214, 202, 0.16), transparent 44%),
        linear-gradient(180deg, rgba(38, 27, 15, 0.9), rgba(8, 18, 18, 0.78));
}

.frontier-war-confirm-stack-echo-trail-handoff-v142 span,
.frontier-war-confirm-stack-echo-trail-handoff-v142 strong,
.frontier-war-confirm-stack-echo-trail-handoff-v142 em {
    display: block;
    min-width: 0;
    overflow-wrap: anywhere;
}

.frontier-war-confirm-stack-echo-trail-handoff-v142 span {
    color: #ffbe7a;
    font-size: 0.58rem;
    font-weight: 900;
    text-transform: uppercase;
}

.frontier-war-confirm-stack-echo-trail-handoff-v142 strong {
    margin-top: 2px;
    color: #fff3d2;
    font-size: 0.68rem;
}

.frontier-war-confirm-stack-echo-trail-handoff-v142 em {
    margin-top: 3px;
    color: #c8d8d3;
    font-size: 0.58rem;
    font-style: normal;
}

.frontier-war-confirm-stack-entry-handoff-intent-v143 {
    margin-top: 8px;
    padding: 8px;
    border: 1px solid rgba(255, 238, 190, 0.54);
    border-radius: 7px;
    background:
        radial-gradient(circle at 0 0, rgba(255, 238, 190, 0.18), transparent 42%),
        radial-gradient(circle at 100% 0, rgba(138, 224, 181, 0.14), transparent 44%),
        linear-gradient(180deg, rgba(39, 33, 18, 0.9), rgba(8, 18, 18, 0.78));
}

.frontier-war-confirm-stack-entry-handoff-intent-v143 span,
.frontier-war-confirm-stack-entry-handoff-intent-v143 strong,
.frontier-war-confirm-stack-entry-handoff-intent-v143 em {
    display: block;
    min-width: 0;
    overflow-wrap: anywhere;
}

.frontier-war-confirm-stack-entry-handoff-intent-v143 span {
    color: #ffeeaa;
    font-size: 0.58rem;
    font-weight: 900;
    text-transform: uppercase;
}

.frontier-war-confirm-stack-entry-handoff-intent-v143 strong {
    margin-top: 2px;
    color: #fff6d8;
    font-size: 0.68rem;
}

.frontier-war-confirm-stack-entry-handoff-intent-v143 em {
    margin-top: 3px;
    color: #d7ded4;
    font-size: 0.58rem;
    font-style: normal;
}

.frontier-war-confirm-stack-intent-confidence-replay-v144 {
    margin-top: 8px;
    padding: 8px;
    border: 1px solid rgba(116, 214, 202, 0.58);
    border-radius: 7px;
    background:
        radial-gradient(circle at 0 0, rgba(116, 214, 202, 0.18), transparent 42%),
        radial-gradient(circle at 100% 0, rgba(255, 238, 190, 0.14), transparent 44%),
        linear-gradient(180deg, rgba(17, 39, 35, 0.9), rgba(9, 17, 23, 0.8));
}

.frontier-war-confirm-stack-intent-confidence-replay-v144 span,
.frontier-war-confirm-stack-intent-confidence-replay-v144 strong,
.frontier-war-confirm-stack-intent-confidence-replay-v144 em {
    display: block;
    min-width: 0;
    overflow-wrap: anywhere;
}

.frontier-war-confirm-stack-intent-confidence-replay-v144 span {
    color: #9fe9dd;
    font-size: 0.58rem;
    font-weight: 900;
    text-transform: uppercase;
}

.frontier-war-confirm-stack-intent-confidence-replay-v144 strong {
    margin-top: 2px;
    color: #f8fff8;
    font-size: 0.68rem;
}

.frontier-war-confirm-stack-intent-confidence-replay-v144 em {
    margin-top: 3px;
    color: #d3dedb;
    font-size: 0.58rem;
    font-style: normal;
}

.frontier-war-confirm-stack-action-receipt-mirror-v145 {
    margin-top: 8px;
    padding: 8px;
    border: 1px solid rgba(138, 224, 181, 0.6);
    border-radius: 7px;
    background:
        radial-gradient(circle at 0 0, rgba(138, 224, 181, 0.18), transparent 42%),
        radial-gradient(circle at 100% 0, rgba(116, 214, 202, 0.15), transparent 44%),
        linear-gradient(180deg, rgba(18, 40, 30, 0.9), rgba(9, 17, 23, 0.8));
}

.frontier-war-confirm-stack-action-receipt-mirror-v145 span,
.frontier-war-confirm-stack-action-receipt-mirror-v145 strong,
.frontier-war-confirm-stack-action-receipt-mirror-v145 em {
    display: block;
    min-width: 0;
    overflow-wrap: anywhere;
}

.frontier-war-confirm-stack-action-receipt-mirror-v145 span {
    color: #b8f0ce;
    font-size: 0.58rem;
    font-weight: 900;
    text-transform: uppercase;
}

.frontier-war-confirm-stack-action-receipt-mirror-v145 strong {
    margin-top: 2px;
    color: #f8fff8;
    font-size: 0.68rem;
}

.frontier-war-confirm-stack-action-receipt-mirror-v145 em {
    margin-top: 3px;
    color: #d7e4db;
    font-size: 0.58rem;
    font-style: normal;
}

.frontier-war-confirm-stack-receipt-diff-guard-v146 {
    margin-top: 8px;
    padding: 8px;
    border: 1px solid rgba(255, 238, 190, 0.62);
    border-radius: 7px;
    background:
        radial-gradient(circle at 0 0, rgba(255, 238, 190, 0.16), transparent 42%),
        radial-gradient(circle at 100% 0, rgba(138, 224, 181, 0.15), transparent 44%),
        linear-gradient(180deg, rgba(39, 32, 18, 0.9), rgba(9, 17, 23, 0.8));
}

.frontier-war-confirm-stack-receipt-diff-guard-v146 span,
.frontier-war-confirm-stack-receipt-diff-guard-v146 strong,
.frontier-war-confirm-stack-receipt-diff-guard-v146 em {
    display: block;
    min-width: 0;
    overflow-wrap: anywhere;
}

.frontier-war-confirm-stack-receipt-diff-guard-v146 span {
    color: #fff0bb;
    font-size: 0.58rem;
    font-weight: 900;
    text-transform: uppercase;
}

.frontier-war-confirm-stack-receipt-diff-guard-v146 strong {
    margin-top: 2px;
    color: #fffdf5;
    font-size: 0.68rem;
}

.frontier-war-confirm-stack-receipt-diff-guard-v146 em {
    margin-top: 3px;
    color: #dfded4;
    font-size: 0.58rem;
    font-style: normal;
}

.frontier-war-confirm-stack-guarded-undo-drilldown-v147 {
    margin-top: 8px;
    padding: 8px;
    border: 1px solid rgba(116, 214, 202, 0.64);
    border-radius: 7px;
    background:
        radial-gradient(circle at 0 0, rgba(116, 214, 202, 0.17), transparent 42%),
        radial-gradient(circle at 100% 0, rgba(255, 238, 190, 0.14), transparent 44%),
        linear-gradient(180deg, rgba(16, 38, 38, 0.9), rgba(9, 17, 23, 0.8));
}

.frontier-war-confirm-stack-guarded-undo-drilldown-v147 span,
.frontier-war-confirm-stack-guarded-undo-drilldown-v147 strong,
.frontier-war-confirm-stack-guarded-undo-drilldown-v147 em {
    display: block;
    min-width: 0;
    overflow-wrap: anywhere;
}

.frontier-war-confirm-stack-guarded-undo-drilldown-v147 span {
    color: #a8efe6;
    font-size: 0.58rem;
    font-weight: 900;
    text-transform: uppercase;
}

.frontier-war-confirm-stack-guarded-undo-drilldown-v147 strong {
    margin-top: 2px;
    color: #f7fffc;
    font-size: 0.68rem;
}

.frontier-war-confirm-stack-guarded-undo-drilldown-v147 em {
    margin-top: 3px;
    color: #d4e4e1;
    font-size: 0.58rem;
    font-style: normal;
}

.frontier-war-confirm-stack-cause-filtered-undo-timeline-v148 {
    margin-top: 8px;
    padding: 8px;
    border: 1px solid rgba(255, 174, 128, 0.66);
    border-radius: 7px;
    overflow-wrap: anywhere;
    background:
        radial-gradient(circle at 0 0, rgba(255, 174, 128, 0.17), transparent 42%),
        radial-gradient(circle at 100% 0, rgba(116, 214, 202, 0.16), transparent 44%),
        linear-gradient(180deg, rgba(43, 24, 25, 0.9), rgba(9, 17, 23, 0.8));
}

.frontier-war-confirm-stack-cause-filtered-undo-timeline-v148 span,
.frontier-war-confirm-stack-cause-filtered-undo-timeline-v148 strong,
.frontier-war-confirm-stack-cause-filtered-undo-timeline-v148 em {
    display: block;
    min-width: 0;
    overflow-wrap: anywhere;
}

.frontier-war-confirm-stack-cause-filtered-undo-timeline-v148 span {
    color: #ffcfad;
    font-size: 0.58rem;
    font-weight: 900;
    text-transform: uppercase;
}

.frontier-war-confirm-stack-cause-filtered-undo-timeline-v148 strong {
    margin-top: 2px;
    color: #fff7ef;
    font-size: 0.68rem;
}

.frontier-war-confirm-stack-cause-filtered-undo-timeline-v148 em {
    margin-top: 3px;
    color: #e8d8cf;
    font-size: 0.58rem;
    font-style: normal;
}

.frontier-war-confirm-stack-cause-filtered-undo-timeline-v148 > .main p,
.frontier-war-confirm-stack-cause-filtered-undo-timeline-v148 > .main em,
.frontier-war-confirm-stack-cause-filtered-undo-timeline-v148 > .frontier-war-confirm-stack-cause-filtered-undo-timeline-head-v148 em,
.frontier-war-confirm-stack-cause-filtered-undo-timeline-v148 .frontier-war-confirm-stack-cause-filter-grid em,
.frontier-war-confirm-stack-cause-filtered-undo-timeline-v148 .frontier-war-confirm-stack-cause-filter-timeline em,
.frontier-war-confirm-stack-cause-filtered-undo-timeline-v148 .frontier-war-confirm-stack-replay-pin-grid em {
    display: none;
}

.frontier-war-confirm-stack-cause-filtered-undo-timeline-v148 .frontier-war-confirm-stack-cause-filter-grid,
.frontier-war-confirm-stack-cause-filtered-undo-timeline-v148 .frontier-war-confirm-stack-cause-filter-timeline,
.frontier-war-confirm-stack-cause-filtered-undo-timeline-v148 .frontier-war-confirm-stack-replay-pin-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 4px;
}

.frontier-war-confirm-stack-cause-filtered-undo-timeline-v148 .frontier-war-confirm-stack-cause-filter-grid article,
.frontier-war-confirm-stack-cause-filtered-undo-timeline-v148 .frontier-war-confirm-stack-cause-filter-timeline button,
.frontier-war-confirm-stack-cause-filtered-undo-timeline-v148 .frontier-war-confirm-stack-replay-pin-grid article {
    padding: 5px;
}

.frontier-war-confirm-stack-cause-filtered-undo-timeline-v148 .frontier-war-confirm-stack-cause-filter-grid strong,
.frontier-war-confirm-stack-cause-filtered-undo-timeline-v148 .frontier-war-confirm-stack-cause-filter-timeline strong,
.frontier-war-confirm-stack-cause-filtered-undo-timeline-v148 .frontier-war-confirm-stack-replay-pin-grid strong {
    font-size: 0.56rem;
}

.frontier-war-confirm-stack-cause-filtered-undo-timeline-v148 .frontier-war-confirm-stack-cause-filter-grid span,
.frontier-war-confirm-stack-cause-filtered-undo-timeline-v148 .frontier-war-confirm-stack-cause-filter-timeline span,
.frontier-war-confirm-stack-cause-filtered-undo-timeline-v148 .frontier-war-confirm-stack-replay-pin-grid span {
    font-size: 0.54rem;
}

.frontier-war-confirm-stack-replay-pin-compare-v149 {
    margin-top: 8px;
    padding: 8px;
    border: 1px solid rgba(255, 224, 138, 0.68);
    border-radius: 7px;
    overflow-wrap: anywhere;
    background:
        radial-gradient(circle at 0 0, rgba(255, 224, 138, 0.18), transparent 42%),
        radial-gradient(circle at 100% 0, rgba(116, 214, 202, 0.17), transparent 44%),
        linear-gradient(180deg, rgba(43, 35, 16, 0.9), rgba(9, 17, 23, 0.8));
}

.frontier-war-confirm-stack-replay-pin-compare-v149 span,
.frontier-war-confirm-stack-replay-pin-compare-v149 strong,
.frontier-war-confirm-stack-replay-pin-compare-v149 em {
    display: block;
    min-width: 0;
    overflow-wrap: anywhere;
}

.frontier-war-confirm-stack-replay-pin-compare-v149 span {
    color: #ffe08a;
    font-size: 0.58rem;
    font-weight: 900;
    text-transform: uppercase;
}

.frontier-war-confirm-stack-replay-pin-compare-v149 strong {
    margin-top: 2px;
    color: #fff8df;
    font-size: 0.68rem;
}

.frontier-war-confirm-stack-replay-pin-compare-v149 em {
    margin-top: 3px;
    color: #e8dfcf;
    font-size: 0.58rem;
    font-style: normal;
}

.frontier-war-confirm-stack-replay-pin-compare-v149 > .main p,
.frontier-war-confirm-stack-replay-pin-compare-v149 > .main em,
.frontier-war-confirm-stack-replay-pin-compare-v149 > .frontier-war-confirm-stack-replay-pin-compare-head-v149 em,
.frontier-war-confirm-stack-replay-pin-compare-v149 .frontier-war-confirm-stack-replay-pin-compare-grid em,
.frontier-war-confirm-stack-replay-pin-compare-v149 .frontier-war-confirm-stack-misjump-recovery-path em,
.frontier-war-confirm-stack-replay-pin-compare-v149 .frontier-war-confirm-stack-recovery-receipt-grid em {
    display: none;
}

.frontier-war-confirm-stack-replay-pin-compare-v149 .frontier-war-confirm-stack-replay-pin-compare-grid,
.frontier-war-confirm-stack-replay-pin-compare-v149 .frontier-war-confirm-stack-misjump-recovery-path,
.frontier-war-confirm-stack-replay-pin-compare-v149 .frontier-war-confirm-stack-recovery-receipt-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 4px;
}

.frontier-war-confirm-stack-replay-pin-compare-v149 .frontier-war-confirm-stack-replay-pin-compare-grid article,
.frontier-war-confirm-stack-replay-pin-compare-v149 .frontier-war-confirm-stack-misjump-recovery-path button,
.frontier-war-confirm-stack-replay-pin-compare-v149 .frontier-war-confirm-stack-recovery-receipt-grid article {
    padding: 5px;
}

.frontier-war-confirm-stack-replay-pin-compare-v149 .frontier-war-confirm-stack-replay-pin-compare-grid strong,
.frontier-war-confirm-stack-replay-pin-compare-v149 .frontier-war-confirm-stack-misjump-recovery-path strong,
.frontier-war-confirm-stack-replay-pin-compare-v149 .frontier-war-confirm-stack-recovery-receipt-grid strong {
    font-size: 0.56rem;
}

.frontier-war-confirm-stack-replay-pin-compare-v149 .frontier-war-confirm-stack-replay-pin-compare-grid span,
.frontier-war-confirm-stack-replay-pin-compare-v149 .frontier-war-confirm-stack-misjump-recovery-path span,
.frontier-war-confirm-stack-replay-pin-compare-v149 .frontier-war-confirm-stack-recovery-receipt-grid span {
    font-size: 0.54rem;
}

.frontier-war-confirm-stack-return-path-fault-drill-v150,
.frontier-war-confirm-stack-return-path-fault-drill-v151,
.frontier-war-confirm-stack-return-path-fault-drill-v152,
.frontier-war-confirm-stack-return-path-replay-delta-v152 {
    margin-top: 8px;
    padding: 8px;
    border: 1px solid rgba(255, 196, 106, 0.7);
    border-radius: 7px;
    overflow-wrap: anywhere;
    background:
        radial-gradient(circle at 0 0, rgba(255, 196, 106, 0.2), transparent 42%),
        radial-gradient(circle at 100% 0, rgba(129, 215, 255, 0.16), transparent 44%),
        linear-gradient(180deg, rgba(43, 28, 14, 0.91), rgba(8, 17, 23, 0.82));
}

.frontier-war-confirm-stack-return-path-fault-drill-v150 span,
.frontier-war-confirm-stack-return-path-fault-drill-v150 strong,
.frontier-war-confirm-stack-return-path-fault-drill-v150 em,
.frontier-war-confirm-stack-return-path-fault-drill-v151 span,
.frontier-war-confirm-stack-return-path-fault-drill-v151 strong,
.frontier-war-confirm-stack-return-path-fault-drill-v151 em,
.frontier-war-confirm-stack-return-path-fault-drill-v152 span,
.frontier-war-confirm-stack-return-path-fault-drill-v152 strong,
.frontier-war-confirm-stack-return-path-fault-drill-v152 em,
.frontier-war-confirm-stack-return-path-replay-delta-v152 span,
.frontier-war-confirm-stack-return-path-replay-delta-v152 strong,
.frontier-war-confirm-stack-return-path-replay-delta-v152 em {
    display: block;
    min-width: 0;
    overflow-wrap: anywhere;
}

.frontier-war-confirm-stack-return-path-fault-drill-v150 span,
.frontier-war-confirm-stack-return-path-fault-drill-v151 span {
    color: #ffc46a;
    font-size: 0.58rem;
    font-weight: 900;
    text-transform: uppercase;
}

.frontier-war-confirm-stack-return-path-fault-drill-v150 strong,
.frontier-war-confirm-stack-return-path-fault-drill-v151 strong {
    margin-top: 2px;
    color: #fff4d8;
    font-size: 0.68rem;
}

.frontier-war-confirm-stack-return-path-fault-drill-v150 em,
.frontier-war-confirm-stack-return-path-fault-drill-v151 em {
    margin-top: 3px;
    color: #e9ddca;
    font-size: 0.58rem;
    font-style: normal;
}

.frontier-war-confirm-stack-return-path-fault-drill-v150 > .main p,
.frontier-war-confirm-stack-return-path-fault-drill-v150 > .main em,
.frontier-war-confirm-stack-return-path-fault-drill-v150 > .frontier-war-confirm-stack-return-path-fault-drill-head-v150 em,
.frontier-war-confirm-stack-return-path-fault-drill-v150 .frontier-war-confirm-stack-return-path-fault-grid em,
.frontier-war-confirm-stack-return-path-fault-drill-v150 .frontier-war-confirm-stack-return-path-drill-steps em,
.frontier-war-confirm-stack-return-path-fault-drill-v150 .frontier-war-confirm-stack-return-path-proof-grid em,
.frontier-war-confirm-stack-return-path-fault-drill-v151 > .main p,
.frontier-war-confirm-stack-return-path-fault-drill-v151 > .main em,
.frontier-war-confirm-stack-return-path-fault-drill-v151 > .frontier-war-confirm-stack-return-path-fault-drill-head-v151 em,
.frontier-war-confirm-stack-return-path-fault-drill-v151 .frontier-war-confirm-stack-return-path-fault-grid em,
.frontier-war-confirm-stack-return-path-fault-drill-v151 .frontier-war-confirm-stack-return-path-drill-steps em,
.frontier-war-confirm-stack-return-path-fault-drill-v151 .frontier-war-confirm-stack-return-path-proof-grid em {
    display: none;
}

.frontier-war-confirm-stack-return-path-fault-drill-v150 .frontier-war-confirm-stack-return-path-fault-grid,
.frontier-war-confirm-stack-return-path-fault-drill-v150 .frontier-war-confirm-stack-return-path-drill-steps,
.frontier-war-confirm-stack-return-path-fault-drill-v150 .frontier-war-confirm-stack-return-path-proof-grid,
.frontier-war-confirm-stack-return-path-fault-drill-v151 .frontier-war-confirm-stack-return-path-fault-grid,
.frontier-war-confirm-stack-return-path-fault-drill-v151 .frontier-war-confirm-stack-return-path-drill-steps,
.frontier-war-confirm-stack-return-path-fault-drill-v151 .frontier-war-confirm-stack-return-path-proof-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 4px;
}

.frontier-war-confirm-stack-return-path-fault-drill-v150 .frontier-war-confirm-stack-return-path-fault-grid article,
.frontier-war-confirm-stack-return-path-fault-drill-v150 .frontier-war-confirm-stack-return-path-drill-steps button,
.frontier-war-confirm-stack-return-path-fault-drill-v150 .frontier-war-confirm-stack-return-path-proof-grid article,
.frontier-war-confirm-stack-return-path-fault-drill-v151 .frontier-war-confirm-stack-return-path-fault-grid article,
.frontier-war-confirm-stack-return-path-fault-drill-v151 .frontier-war-confirm-stack-return-path-drill-steps button,
.frontier-war-confirm-stack-return-path-fault-drill-v151 .frontier-war-confirm-stack-return-path-proof-grid article {
    padding: 5px;
}

.frontier-war-confirm-stack-return-path-fault-drill-v150 .frontier-war-confirm-stack-return-path-fault-grid strong,
.frontier-war-confirm-stack-return-path-fault-drill-v150 .frontier-war-confirm-stack-return-path-drill-steps strong,
.frontier-war-confirm-stack-return-path-fault-drill-v150 .frontier-war-confirm-stack-return-path-proof-grid strong,
.frontier-war-confirm-stack-return-path-fault-drill-v151 .frontier-war-confirm-stack-return-path-fault-grid strong,
.frontier-war-confirm-stack-return-path-fault-drill-v151 .frontier-war-confirm-stack-return-path-drill-steps strong,
.frontier-war-confirm-stack-return-path-fault-drill-v151 .frontier-war-confirm-stack-return-path-proof-grid strong {
    font-size: 0.56rem;
}

.frontier-war-confirm-stack-return-path-fault-drill-v150 .frontier-war-confirm-stack-return-path-fault-grid span,
.frontier-war-confirm-stack-return-path-fault-drill-v150 .frontier-war-confirm-stack-return-path-drill-steps span,
.frontier-war-confirm-stack-return-path-fault-drill-v150 .frontier-war-confirm-stack-return-path-proof-grid span,
.frontier-war-confirm-stack-return-path-fault-drill-v151 .frontier-war-confirm-stack-return-path-fault-grid span,
.frontier-war-confirm-stack-return-path-fault-drill-v151 .frontier-war-confirm-stack-return-path-drill-steps span,
.frontier-war-confirm-stack-return-path-fault-drill-v151 .frontier-war-confirm-stack-return-path-proof-grid span {
    font-size: 0.54rem;
}

.frontier-war-confirm-stack-commit-highlight-panel article.main.success,
.frontier-war-confirm-stack-commit-highlight-panel article.main.info,
.frontier-war-confirm-stack-commit-highlight-panel article.main.warning,
.frontier-war-confirm-stack-commit-highlight-panel article.main.danger {
    border-color: rgba(138, 224, 181, 0.3);
}

.frontier-war-confirm-stack-outcome-echo-panel article.main.success,
.frontier-war-confirm-stack-outcome-echo-panel article.main.info,
.frontier-war-confirm-stack-outcome-echo-panel article.main.warning,
.frontier-war-confirm-stack-outcome-echo-panel article.main.danger {
    border-color: rgba(116, 214, 202, 0.34);
}

.frontier-war-confirm-stack-trace-jump-panel article.main.success,
.frontier-war-confirm-stack-trace-jump-panel article.main.info,
.frontier-war-confirm-stack-trace-jump-panel article.main.warning,
.frontier-war-confirm-stack-trace-jump-panel article.main.danger {
    border-color: rgba(255, 190, 122, 0.34);
}

.frontier-war-confirm-stack-trace-landing-panel article.main.success,
.frontier-war-confirm-stack-trace-landing-panel article.main.info,
.frontier-war-confirm-stack-trace-landing-panel article.main.warning,
.frontier-war-confirm-stack-trace-landing-panel article.main.danger {
    border-color: rgba(138, 224, 181, 0.36);
}

.frontier-war-confirm-stack-trace-landing-decay-panel article.main {
    border-color: rgba(116, 214, 202, 0.38);
}

.frontier-war-confirm-stack-echo-trail-handoff-panel article.main {
    border-color: rgba(255, 190, 122, 0.4);
}

.frontier-war-confirm-stack-entry-handoff-intent-panel article.main {
    border-color: rgba(255, 238, 190, 0.42);
}

.frontier-war-confirm-stack-intent-confidence-replay-panel article.main {
    border-color: rgba(116, 214, 202, 0.44);
}

.frontier-war-confirm-stack-action-receipt-mirror-panel article.main {
    border-color: rgba(138, 224, 181, 0.46);
}

.frontier-war-confirm-stack-receipt-diff-guard-panel article.main {
    border-color: rgba(255, 238, 190, 0.48);
}

.frontier-war-confirm-stack-guarded-undo-drilldown-panel article.main {
    border-color: rgba(116, 214, 202, 0.5);
}

.frontier-war-confirm-stack-cause-filtered-undo-timeline-panel article.main {
    border-color: rgba(255, 174, 128, 0.52);
}

.frontier-war-confirm-stack-replay-pin-compare-panel article.main {
    border-color: rgba(255, 224, 138, 0.54);
}

.frontier-war-confirm-stack-return-path-fault-drill-panel article.main {
    border-color: rgba(255, 196, 106, 0.56);
}

.frontier-war-confirm-stack-cause-filter-grid,
.frontier-war-confirm-stack-cause-filter-timeline,
.frontier-war-confirm-stack-replay-pin-grid,
.frontier-war-confirm-stack-replay-pin-compare-grid,
.frontier-war-confirm-stack-misjump-recovery-path,
.frontier-war-confirm-stack-recovery-receipt-grid,
.frontier-war-confirm-stack-return-path-fault-grid,
.frontier-war-confirm-stack-return-path-drill-steps,
.frontier-war-confirm-stack-return-path-proof-grid {
    display: grid;
    gap: 5px;
    margin-top: 8px;
}

.frontier-war-confirm-stack-cause-filter-grid,
.frontier-war-confirm-stack-replay-pin-grid,
.frontier-war-confirm-stack-replay-pin-compare-grid,
.frontier-war-confirm-stack-recovery-receipt-grid,
.frontier-war-confirm-stack-return-path-fault-grid,
.frontier-war-confirm-stack-return-path-proof-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.frontier-war-confirm-stack-cause-filter-timeline,
.frontier-war-confirm-stack-misjump-recovery-path,
.frontier-war-confirm-stack-return-path-drill-steps {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.frontier-war-confirm-stack-cause-filter-grid article,
.frontier-war-confirm-stack-cause-filter-timeline button,
.frontier-war-confirm-stack-replay-pin-grid article,
.frontier-war-confirm-stack-replay-pin-compare-grid article,
.frontier-war-confirm-stack-misjump-recovery-path button,
.frontier-war-confirm-stack-recovery-receipt-grid article,
.frontier-war-confirm-stack-return-path-fault-grid article,
.frontier-war-confirm-stack-return-path-drill-steps button,
.frontier-war-confirm-stack-return-path-proof-grid article {
    min-width: 0;
    padding: 7px;
    border: 1px solid rgba(255, 174, 128, 0.22);
    border-radius: 7px;
    background: rgba(7, 18, 19, 0.66);
}

.frontier-war-confirm-stack-cause-filter-timeline button,
.frontier-war-confirm-stack-misjump-recovery-path button,
.frontier-war-confirm-stack-return-path-drill-steps button {
    color: #fff0e2;
    text-align: left;
    cursor: pointer;
}

.frontier-war-confirm-stack-cause-filter-grid article.active,
.frontier-war-confirm-stack-cause-filter-timeline button.ready,
.frontier-war-confirm-stack-replay-pin-grid article.ready,
.frontier-war-confirm-stack-replay-pin-compare-grid article.ready,
.frontier-war-confirm-stack-misjump-recovery-path button.ready,
.frontier-war-confirm-stack-recovery-receipt-grid article.ready,
.frontier-war-confirm-stack-return-path-fault-grid article.ready,
.frontier-war-confirm-stack-return-path-drill-steps button.ready,
.frontier-war-confirm-stack-return-path-proof-grid article.ready {
    border-color: rgba(255, 174, 128, 0.76);
    box-shadow: 0 0 0 1px rgba(255, 174, 128, 0.2) inset;
}

.frontier-war-confirm-stack-replay-pin-compare-grid article.ready,
.frontier-war-confirm-stack-misjump-recovery-path button.ready,
.frontier-war-confirm-stack-recovery-receipt-grid article.ready,
.frontier-war-confirm-stack-return-path-fault-grid article.ready,
.frontier-war-confirm-stack-return-path-drill-steps button.ready,
.frontier-war-confirm-stack-return-path-proof-grid article.ready {
    border-color: rgba(255, 224, 138, 0.78);
}

.frontier-war-confirm-stack-cause-filter-timeline button.pin,
.frontier-war-confirm-stack-replay-pin-grid article.success {
    border-color: rgba(116, 214, 202, 0.62);
}

.frontier-war-confirm-stack-cause-filter-timeline button.replay,
.frontier-war-confirm-stack-cause-filter-timeline button.mirror {
    border-color: rgba(138, 224, 181, 0.6);
}

.frontier-war-confirm-stack-cause-filter-grid strong,
.frontier-war-confirm-stack-cause-filter-grid span,
.frontier-war-confirm-stack-cause-filter-grid em,
.frontier-war-confirm-stack-cause-filter-timeline strong,
.frontier-war-confirm-stack-cause-filter-timeline span,
.frontier-war-confirm-stack-cause-filter-timeline em,
.frontier-war-confirm-stack-replay-pin-grid strong,
.frontier-war-confirm-stack-replay-pin-grid span,
.frontier-war-confirm-stack-replay-pin-grid em,
.frontier-war-confirm-stack-replay-pin-compare-grid strong,
.frontier-war-confirm-stack-replay-pin-compare-grid span,
.frontier-war-confirm-stack-replay-pin-compare-grid em,
.frontier-war-confirm-stack-misjump-recovery-path strong,
.frontier-war-confirm-stack-misjump-recovery-path span,
.frontier-war-confirm-stack-misjump-recovery-path em,
.frontier-war-confirm-stack-recovery-receipt-grid strong,
.frontier-war-confirm-stack-recovery-receipt-grid span,
.frontier-war-confirm-stack-recovery-receipt-grid em,
.frontier-war-confirm-stack-return-path-fault-grid strong,
.frontier-war-confirm-stack-return-path-fault-grid span,
.frontier-war-confirm-stack-return-path-fault-grid em,
.frontier-war-confirm-stack-return-path-drill-steps strong,
.frontier-war-confirm-stack-return-path-drill-steps span,
.frontier-war-confirm-stack-return-path-drill-steps em,
.frontier-war-confirm-stack-return-path-proof-grid strong,
.frontier-war-confirm-stack-return-path-proof-grid span,
.frontier-war-confirm-stack-return-path-proof-grid em {
    display: block;
    min-width: 0;
    overflow-wrap: anywhere;
}

.frontier-war-confirm-stack-cause-filter-grid strong,
.frontier-war-confirm-stack-cause-filter-timeline strong,
.frontier-war-confirm-stack-replay-pin-grid strong,
.frontier-war-confirm-stack-replay-pin-compare-grid strong,
.frontier-war-confirm-stack-misjump-recovery-path strong,
.frontier-war-confirm-stack-recovery-receipt-grid strong,
.frontier-war-confirm-stack-return-path-fault-grid strong,
.frontier-war-confirm-stack-return-path-drill-steps strong,
.frontier-war-confirm-stack-return-path-proof-grid strong {
    color: #fff3d2;
    font-size: 0.62rem;
    line-height: 1.15;
}

.frontier-war-confirm-stack-cause-filter-grid span,
.frontier-war-confirm-stack-cause-filter-grid em,
.frontier-war-confirm-stack-cause-filter-timeline span,
.frontier-war-confirm-stack-cause-filter-timeline em,
.frontier-war-confirm-stack-replay-pin-grid span,
.frontier-war-confirm-stack-replay-pin-grid em,
.frontier-war-confirm-stack-replay-pin-compare-grid span,
.frontier-war-confirm-stack-replay-pin-compare-grid em,
.frontier-war-confirm-stack-misjump-recovery-path span,
.frontier-war-confirm-stack-misjump-recovery-path em,
.frontier-war-confirm-stack-recovery-receipt-grid span,
.frontier-war-confirm-stack-recovery-receipt-grid em,
.frontier-war-confirm-stack-return-path-fault-grid span,
.frontier-war-confirm-stack-return-path-fault-grid em,
.frontier-war-confirm-stack-return-path-drill-steps span,
.frontier-war-confirm-stack-return-path-drill-steps em,
.frontier-war-confirm-stack-return-path-proof-grid span,
.frontier-war-confirm-stack-return-path-proof-grid em {
    color: #e7ddd0;
    font-size: 0.58rem;
    line-height: 1.25;
    font-style: normal;
}

.frontier-war-confirm-stack-commit-preview-panel article.main.success,
.frontier-war-confirm-stack-commit-preview-panel article.main.info,
.frontier-war-confirm-stack-commit-preview-panel article.main.warning,
.frontier-war-confirm-stack-commit-preview-panel article.main.danger {
    border-color: rgba(240, 199, 110, 0.28);
}

.frontier-war-confirm-stack-recommendation-score,
.frontier-war-confirm-stack-diff-cause-labels,
.frontier-war-confirm-stack-guarded-undo-drilldown,
.frontier-war-confirm-stack-guarded-undo-closure,
.frontier-war-confirm-stack-receipt-diff-grid,
.frontier-war-confirm-stack-undo-safety-loop,
.frontier-war-confirm-stack-action-receipt-grid,
.frontier-war-confirm-stack-undo-mirror-path,
.frontier-war-confirm-stack-intent-confidence-grid,
.frontier-war-confirm-stack-return-replay-path,
.frontier-war-confirm-stack-entry-handoff-intent-grid,
.frontier-war-confirm-stack-entry-handoff-breadcrumbs,
.frontier-war-confirm-stack-echo-trail-handoff-grid,
.frontier-war-confirm-stack-echo-trail-handoff-route,
.frontier-war-confirm-stack-trace-landing-decay-grid,
.frontier-war-confirm-stack-trace-landing-echo-grid,
.frontier-war-confirm-stack-trace-landing-grid,
.frontier-war-confirm-stack-trace-jump-actions,
.frontier-war-confirm-stack-trace-jump-grid,
.frontier-war-confirm-stack-outcome-echo-grid,
.frontier-war-confirm-stack-commit-highlight-grid,
.frontier-war-confirm-stack-commit-preview-grid,
.frontier-war-confirm-stack-recommendation-grid,
.frontier-war-confirm-stack-playback-pin-grid-v134,
.frontier-war-confirm-stack-playback-pin-grid,
.frontier-war-confirm-stack-playback-pin-summary {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 5px;
    margin-top: 8px;
}

.frontier-war-confirm-stack-playback-pin-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.frontier-war-confirm-stack-action-receipt-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.frontier-war-confirm-stack-receipt-diff-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.frontier-war-confirm-stack-undo-mirror-path {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.frontier-war-confirm-stack-undo-safety-loop {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.frontier-war-confirm-stack-diff-cause-labels {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.frontier-war-confirm-stack-guarded-undo-drilldown,
.frontier-war-confirm-stack-guarded-undo-closure {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.frontier-war-confirm-stack-recommendation-score {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.frontier-war-confirm-stack-echo-trail-handoff-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.frontier-war-confirm-stack-entry-handoff-intent-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.frontier-war-confirm-stack-entry-handoff-breadcrumbs {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.frontier-war-confirm-stack-intent-confidence-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.frontier-war-confirm-stack-return-replay-path {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.frontier-war-confirm-stack-echo-trail-handoff-route {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

.frontier-war-confirm-stack-commit-highlight-grid,
.frontier-war-confirm-stack-outcome-echo-grid,
.frontier-war-confirm-stack-trace-landing-decay-grid,
.frontier-war-confirm-stack-trace-landing-grid,
.frontier-war-confirm-stack-trace-jump-grid,
.frontier-war-confirm-stack-trace-jump-actions,
.frontier-war-confirm-stack-commit-preview-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.frontier-war-confirm-stack-trace-landing-echo-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

.frontier-war-confirm-stack-undo-mirror-path button,
.frontier-war-confirm-stack-guarded-undo-drilldown button,
.frontier-war-confirm-stack-undo-safety-loop button,
.frontier-war-confirm-stack-echo-trail-handoff-route button,
.frontier-war-confirm-stack-return-replay-path button,
.frontier-war-confirm-stack-trace-landing-echo-grid button,
.frontier-war-confirm-stack-entry-handoff-breadcrumbs button,
.frontier-war-confirm-stack-trace-jump-actions button,
.frontier-war-confirm-stack-diff-cause-labels article,
.frontier-war-confirm-stack-guarded-undo-closure article,
.frontier-war-confirm-stack-action-receipt-grid article,
.frontier-war-confirm-stack-receipt-diff-grid article,
.frontier-war-confirm-stack-intent-confidence-grid article,
.frontier-war-confirm-stack-playback-pin-grid-v134 article,
.frontier-war-confirm-stack-entry-handoff-intent-grid article,
.frontier-war-confirm-stack-echo-trail-handoff-grid article,
.frontier-war-confirm-stack-trace-landing-decay-grid article,
.frontier-war-confirm-stack-trace-landing-grid article,
.frontier-war-confirm-stack-trace-jump-grid article,
.frontier-war-confirm-stack-outcome-echo-grid article,
.frontier-war-confirm-stack-commit-highlight-grid article,
.frontier-war-confirm-stack-commit-preview-grid article,
.frontier-war-confirm-stack-recommendation-score article,
.frontier-war-confirm-stack-recommendation-grid article,
.frontier-war-confirm-stack-playback-pin-grid article,
.frontier-war-confirm-stack-playback-pin-summary article {
    min-width: 0;
    padding: 7px;
    border: 1px solid rgba(255, 238, 190, 0.18);
    border-radius: 7px;
    background: rgba(7, 18, 19, 0.66);
}

.frontier-war-confirm-stack-trace-landing-echo-grid button {
    color: #f6ead4;
    text-align: left;
    cursor: pointer;
}

.frontier-war-confirm-stack-echo-trail-handoff-route button {
    color: #f6ead4;
    text-align: left;
    cursor: pointer;
}

.frontier-war-confirm-stack-entry-handoff-breadcrumbs button {
    color: #f8efd8;
    text-align: left;
    cursor: pointer;
}

.frontier-war-confirm-stack-return-replay-path button {
    color: #e9fff8;
    text-align: left;
    cursor: pointer;
}

.frontier-war-confirm-stack-undo-mirror-path button {
    color: #f0fff5;
    text-align: left;
    cursor: pointer;
}

.frontier-war-confirm-stack-undo-safety-loop button {
    color: #fff8df;
    text-align: left;
    cursor: pointer;
}

.frontier-war-confirm-stack-guarded-undo-drilldown button {
    color: #eafffb;
    text-align: left;
    cursor: pointer;
}

.frontier-war-confirm-stack-action-receipt-grid article.active,
.frontier-war-confirm-stack-undo-mirror-path button.ready,
.frontier-war-confirm-stack-diff-cause-labels article.active,
.frontier-war-confirm-stack-guarded-undo-drilldown button.ready,
.frontier-war-confirm-stack-guarded-undo-closure article.ready,
.frontier-war-confirm-stack-receipt-diff-grid article.active,
.frontier-war-confirm-stack-undo-safety-loop button.ready,
.frontier-war-confirm-stack-intent-confidence-grid article.active,
.frontier-war-confirm-stack-return-replay-path button.ready {
    border-color: rgba(116, 214, 202, 0.72);
    box-shadow: 0 0 0 1px rgba(116, 214, 202, 0.2) inset;
}

.frontier-war-confirm-stack-undo-mirror-path button.mirror-outcome {
    border-color: rgba(138, 224, 181, 0.62);
}

.frontier-war-confirm-stack-undo-safety-loop button.loop {
    border-color: rgba(138, 224, 181, 0.62);
}

.frontier-war-confirm-stack-undo-safety-loop button.guard {
    border-color: rgba(255, 238, 190, 0.58);
}

.frontier-war-confirm-stack-guarded-undo-drilldown button.diff,
.frontier-war-confirm-stack-diff-cause-labels article.success {
    border-color: rgba(116, 214, 202, 0.6);
}

.frontier-war-confirm-stack-guarded-undo-drilldown button.undo,
.frontier-war-confirm-stack-guarded-undo-closure article.success {
    border-color: rgba(138, 224, 181, 0.6);
}

.frontier-war-confirm-stack-guarded-undo-drilldown button.closure {
    border-color: rgba(255, 238, 190, 0.62);
}

.frontier-war-confirm-stack-return-replay-path button.undo-misjump {
    border-color: rgba(255, 190, 122, 0.58);
}

.frontier-war-confirm-stack-entry-handoff-intent-grid article.active,
.frontier-war-confirm-stack-entry-handoff-breadcrumbs button.active {
    border-color: rgba(255, 238, 190, 0.74);
    box-shadow: 0 0 0 1px rgba(255, 238, 190, 0.2) inset;
}

.frontier-war-confirm-stack-entry-handoff-breadcrumbs button.next-preview {
    border-color: rgba(138, 224, 181, 0.58);
}

.frontier-war-confirm-stack-entry-handoff-breadcrumbs button.return-source {
    border-color: rgba(255, 190, 122, 0.56);
}

.frontier-war-confirm-stack-echo-trail-handoff-grid article.active,
.frontier-war-confirm-stack-echo-trail-handoff-route button.active,
.frontier-war-confirm-stack-echo-trail-handoff-route button.role-current {
    border-color: rgba(255, 190, 122, 0.72);
    box-shadow: 0 0 0 1px rgba(255, 190, 122, 0.2) inset;
}

.frontier-war-confirm-stack-echo-trail-handoff-route button.role-next {
    border-color: rgba(138, 224, 181, 0.58);
}

.frontier-war-confirm-stack-echo-trail-handoff-route button.role-bypass {
    border-color: rgba(116, 214, 202, 0.42);
}

.frontier-war-confirm-stack-action-receipt-grid strong,
.frontier-war-confirm-stack-action-receipt-grid span,
.frontier-war-confirm-stack-action-receipt-grid em,
.frontier-war-confirm-stack-diff-cause-labels strong,
.frontier-war-confirm-stack-diff-cause-labels span,
.frontier-war-confirm-stack-diff-cause-labels em,
.frontier-war-confirm-stack-guarded-undo-drilldown strong,
.frontier-war-confirm-stack-guarded-undo-drilldown span,
.frontier-war-confirm-stack-guarded-undo-drilldown em,
.frontier-war-confirm-stack-guarded-undo-closure strong,
.frontier-war-confirm-stack-guarded-undo-closure span,
.frontier-war-confirm-stack-guarded-undo-closure em,
.frontier-war-confirm-stack-undo-mirror-path strong,
.frontier-war-confirm-stack-undo-mirror-path span,
.frontier-war-confirm-stack-undo-mirror-path em,
.frontier-war-confirm-stack-receipt-diff-grid strong,
.frontier-war-confirm-stack-receipt-diff-grid span,
.frontier-war-confirm-stack-receipt-diff-grid em,
.frontier-war-confirm-stack-undo-safety-loop strong,
.frontier-war-confirm-stack-undo-safety-loop span,
.frontier-war-confirm-stack-undo-safety-loop em,
.frontier-war-confirm-stack-entry-handoff-intent-grid strong,
.frontier-war-confirm-stack-entry-handoff-intent-grid span,
.frontier-war-confirm-stack-entry-handoff-intent-grid em,
.frontier-war-confirm-stack-entry-handoff-breadcrumbs strong,
.frontier-war-confirm-stack-entry-handoff-breadcrumbs span,
.frontier-war-confirm-stack-entry-handoff-breadcrumbs em,
.frontier-war-confirm-stack-intent-confidence-grid strong,
.frontier-war-confirm-stack-intent-confidence-grid span,
.frontier-war-confirm-stack-intent-confidence-grid em,
.frontier-war-confirm-stack-return-replay-path strong,
.frontier-war-confirm-stack-return-replay-path span,
.frontier-war-confirm-stack-return-replay-path em,
.frontier-war-confirm-stack-echo-trail-handoff-grid strong,
.frontier-war-confirm-stack-echo-trail-handoff-grid span,
.frontier-war-confirm-stack-echo-trail-handoff-grid em,
.frontier-war-confirm-stack-echo-trail-handoff-route strong,
.frontier-war-confirm-stack-echo-trail-handoff-route span,
.frontier-war-confirm-stack-echo-trail-handoff-route em {
    display: block;
    min-width: 0;
    overflow-wrap: anywhere;
}

.frontier-war-confirm-stack-action-receipt-grid strong,
.frontier-war-confirm-stack-diff-cause-labels strong,
.frontier-war-confirm-stack-guarded-undo-drilldown strong,
.frontier-war-confirm-stack-guarded-undo-closure strong,
.frontier-war-confirm-stack-undo-mirror-path strong,
.frontier-war-confirm-stack-receipt-diff-grid strong,
.frontier-war-confirm-stack-undo-safety-loop strong,
.frontier-war-confirm-stack-entry-handoff-intent-grid strong,
.frontier-war-confirm-stack-entry-handoff-breadcrumbs strong,
.frontier-war-confirm-stack-intent-confidence-grid strong,
.frontier-war-confirm-stack-return-replay-path strong,
.frontier-war-confirm-stack-echo-trail-handoff-grid strong,
.frontier-war-confirm-stack-echo-trail-handoff-route strong {
    color: #fff3d2;
    font-size: 0.62rem;
    line-height: 1.15;
}

.frontier-war-confirm-stack-action-receipt-grid span,
.frontier-war-confirm-stack-action-receipt-grid em,
.frontier-war-confirm-stack-diff-cause-labels span,
.frontier-war-confirm-stack-diff-cause-labels em,
.frontier-war-confirm-stack-guarded-undo-drilldown span,
.frontier-war-confirm-stack-guarded-undo-drilldown em,
.frontier-war-confirm-stack-guarded-undo-closure span,
.frontier-war-confirm-stack-guarded-undo-closure em,
.frontier-war-confirm-stack-undo-mirror-path span,
.frontier-war-confirm-stack-undo-mirror-path em,
.frontier-war-confirm-stack-receipt-diff-grid span,
.frontier-war-confirm-stack-receipt-diff-grid em,
.frontier-war-confirm-stack-undo-safety-loop span,
.frontier-war-confirm-stack-undo-safety-loop em,
.frontier-war-confirm-stack-entry-handoff-intent-grid span,
.frontier-war-confirm-stack-entry-handoff-intent-grid em,
.frontier-war-confirm-stack-entry-handoff-breadcrumbs span,
.frontier-war-confirm-stack-entry-handoff-breadcrumbs em,
.frontier-war-confirm-stack-intent-confidence-grid span,
.frontier-war-confirm-stack-intent-confidence-grid em,
.frontier-war-confirm-stack-return-replay-path span,
.frontier-war-confirm-stack-return-replay-path em,
.frontier-war-confirm-stack-echo-trail-handoff-grid span,
.frontier-war-confirm-stack-echo-trail-handoff-grid em,
.frontier-war-confirm-stack-echo-trail-handoff-route span,
.frontier-war-confirm-stack-echo-trail-handoff-route em {
    color: #c8d8d3;
    font-size: 0.56rem;
    line-height: 1.2;
}

.frontier-war-confirm-stack-trace-landing-decay-grid article.active,
.frontier-war-confirm-stack-trace-landing-echo-grid button.active {
    border-color: rgba(116, 214, 202, 0.7);
    box-shadow: 0 0 0 1px rgba(116, 214, 202, 0.2) inset;
}

.frontier-war-confirm-stack-commit-preview-grid article.success {
    border-color: rgba(138, 224, 181, 0.38);
}

.frontier-war-confirm-stack-commit-preview-grid article.warning {
    border-color: rgba(255, 238, 190, 0.4);
}

.frontier-war-confirm-stack-commit-preview-grid article.danger {
    border-color: rgba(255, 155, 146, 0.4);
}

.frontier-war-confirm-stack-commit-highlight-grid article.success {
    border-color: rgba(138, 224, 181, 0.42);
}

.frontier-war-confirm-stack-commit-highlight-grid article.warning {
    border-color: rgba(255, 238, 190, 0.42);
}

.frontier-war-confirm-stack-commit-highlight-grid article.danger {
    border-color: rgba(255, 155, 146, 0.42);
}

.frontier-war-confirm-stack-outcome-echo-grid article.success {
    border-color: rgba(138, 224, 181, 0.42);
}

.frontier-war-confirm-stack-outcome-echo-grid article.warning {
    border-color: rgba(255, 238, 190, 0.42);
}

.frontier-war-confirm-stack-outcome-echo-grid article.danger {
    border-color: rgba(255, 155, 146, 0.42);
}

.frontier-war-confirm-stack-trace-jump-grid article.success,
.frontier-war-confirm-stack-trace-jump-actions button.success {
    border-color: rgba(138, 224, 181, 0.42);
}

.frontier-war-confirm-stack-trace-jump-grid article.warning,
.frontier-war-confirm-stack-trace-jump-actions button.warning {
    border-color: rgba(255, 238, 190, 0.42);
}

.frontier-war-confirm-stack-trace-jump-grid article.danger,
.frontier-war-confirm-stack-trace-jump-actions button.danger {
    border-color: rgba(255, 155, 146, 0.42);
}

.frontier-war-confirm-stack-trace-landing-grid article.success {
    border-color: rgba(138, 224, 181, 0.46);
}

.frontier-war-confirm-stack-trace-landing-grid article.warning {
    border-color: rgba(255, 238, 190, 0.44);
}

.frontier-war-confirm-stack-trace-landing-grid article.danger {
    border-color: rgba(255, 155, 146, 0.44);
}

.frontier-war-confirm-stack-trace-landing-grid article.active {
    background: rgba(18, 46, 36, 0.82);
    box-shadow: 0 0 0 1px rgba(138, 224, 181, 0.24) inset;
}

.frontier-war-confirm-stack-trace-jump-actions button {
    cursor: pointer;
    text-align: left;
}

.frontier-war-confirm-stack-trace-jump-actions button:hover,
.frontier-war-confirm-stack-trace-jump-actions button:focus-visible {
    border-color: rgba(255, 190, 122, 0.7);
    box-shadow: 0 0 0 2px rgba(255, 190, 122, 0.15);
}

.frontier-war-confirm-stack-playback-pin-grid-v134 article.success,
.frontier-war-confirm-stack-recommendation-grid article.success,
.frontier-war-confirm-stack-playback-pin-grid article.success {
    border-color: rgba(138, 224, 181, 0.36);
}

.frontier-war-confirm-stack-playback-pin-grid-v134 article.warning,
.frontier-war-confirm-stack-recommendation-grid article.warning,
.frontier-war-confirm-stack-playback-pin-grid article.warning {
    border-color: rgba(255, 238, 190, 0.38);
}

.frontier-war-confirm-stack-playback-pin-grid-v134 article.danger,
.frontier-war-confirm-stack-recommendation-grid article.danger,
.frontier-war-confirm-stack-playback-pin-grid article.danger {
    border-color: rgba(255, 155, 146, 0.38);
}

.frontier-war-confirm-stack-recommendation-score article.active {
    border-color: rgba(138, 224, 181, 0.58);
    background: rgba(18, 46, 36, 0.82);
}

.frontier-war-confirm-stack-playback-pin-grid-v134 strong,
.frontier-war-confirm-stack-playback-pin-grid-v134 span,
.frontier-war-confirm-stack-playback-pin-grid-v134 b,
.frontier-war-confirm-stack-trace-landing-decay-grid strong,
.frontier-war-confirm-stack-trace-landing-decay-grid p,
.frontier-war-confirm-stack-trace-landing-decay-grid span,
.frontier-war-confirm-stack-trace-landing-decay-grid em,
.frontier-war-confirm-stack-trace-landing-echo-grid strong,
.frontier-war-confirm-stack-trace-landing-echo-grid span,
.frontier-war-confirm-stack-trace-landing-echo-grid em,
.frontier-war-confirm-stack-trace-landing-grid strong,
.frontier-war-confirm-stack-trace-landing-grid p,
.frontier-war-confirm-stack-trace-landing-grid span,
.frontier-war-confirm-stack-trace-landing-grid em,
.frontier-war-confirm-stack-trace-jump-grid strong,
.frontier-war-confirm-stack-trace-jump-grid p,
.frontier-war-confirm-stack-trace-jump-grid span,
.frontier-war-confirm-stack-trace-jump-grid em,
.frontier-war-confirm-stack-trace-jump-actions strong,
.frontier-war-confirm-stack-trace-jump-actions span,
.frontier-war-confirm-stack-outcome-echo-grid strong,
.frontier-war-confirm-stack-outcome-echo-grid p,
.frontier-war-confirm-stack-outcome-echo-grid span,
.frontier-war-confirm-stack-outcome-echo-grid em,
.frontier-war-confirm-stack-commit-highlight-grid strong,
.frontier-war-confirm-stack-commit-highlight-grid p,
.frontier-war-confirm-stack-commit-highlight-grid span,
.frontier-war-confirm-stack-commit-highlight-grid em,
.frontier-war-confirm-stack-commit-preview-grid strong,
.frontier-war-confirm-stack-commit-preview-grid p,
.frontier-war-confirm-stack-commit-preview-grid span,
.frontier-war-confirm-stack-commit-preview-grid em,
.frontier-war-confirm-stack-recommendation-score strong,
.frontier-war-confirm-stack-recommendation-score p,
.frontier-war-confirm-stack-recommendation-score em,
.frontier-war-confirm-stack-recommendation-score b,
.frontier-war-confirm-stack-recommendation-grid strong,
.frontier-war-confirm-stack-recommendation-grid p,
.frontier-war-confirm-stack-recommendation-grid span,
.frontier-war-confirm-stack-recommendation-grid em,
.frontier-war-confirm-stack-playback-pin-grid strong,
.frontier-war-confirm-stack-playback-pin-grid p,
.frontier-war-confirm-stack-playback-pin-grid em,
.frontier-war-confirm-stack-playback-pin-summary strong,
.frontier-war-confirm-stack-playback-pin-summary p,
.frontier-war-confirm-stack-playback-pin-summary em {
    display: block;
    min-width: 0;
    overflow-wrap: anywhere;
}

.frontier-war-confirm-stack-playback-pin-grid-v134 strong,
.frontier-war-confirm-stack-trace-landing-decay-grid strong,
.frontier-war-confirm-stack-trace-landing-echo-grid strong,
.frontier-war-confirm-stack-trace-landing-grid strong,
.frontier-war-confirm-stack-trace-jump-grid strong,
.frontier-war-confirm-stack-trace-jump-actions strong,
.frontier-war-confirm-stack-outcome-echo-grid strong,
.frontier-war-confirm-stack-commit-highlight-grid strong,
.frontier-war-confirm-stack-commit-preview-grid strong,
.frontier-war-confirm-stack-recommendation-score strong,
.frontier-war-confirm-stack-recommendation-grid strong,
.frontier-war-confirm-stack-playback-pin-grid strong,
.frontier-war-confirm-stack-playback-pin-summary strong {
    color: #fff3d2;
    font-size: 0.62rem;
    line-height: 1.15;
}

.frontier-war-confirm-stack-playback-pin-grid-v134 span,
.frontier-war-confirm-stack-playback-pin-grid-v134 b,
.frontier-war-confirm-stack-trace-landing-decay-grid p,
.frontier-war-confirm-stack-trace-landing-decay-grid span,
.frontier-war-confirm-stack-trace-landing-decay-grid em,
.frontier-war-confirm-stack-trace-landing-echo-grid span,
.frontier-war-confirm-stack-trace-landing-echo-grid em,
.frontier-war-confirm-stack-trace-landing-grid p,
.frontier-war-confirm-stack-trace-landing-grid span,
.frontier-war-confirm-stack-trace-landing-grid em,
.frontier-war-confirm-stack-trace-jump-grid p,
.frontier-war-confirm-stack-trace-jump-grid span,
.frontier-war-confirm-stack-trace-jump-grid em,
.frontier-war-confirm-stack-trace-jump-actions span,
.frontier-war-confirm-stack-outcome-echo-grid p,
.frontier-war-confirm-stack-outcome-echo-grid span,
.frontier-war-confirm-stack-outcome-echo-grid em,
.frontier-war-confirm-stack-commit-highlight-grid p,
.frontier-war-confirm-stack-commit-highlight-grid span,
.frontier-war-confirm-stack-commit-highlight-grid em,
.frontier-war-confirm-stack-commit-preview-grid p,
.frontier-war-confirm-stack-commit-preview-grid span,
.frontier-war-confirm-stack-commit-preview-grid em,
.frontier-war-confirm-stack-recommendation-score p,
.frontier-war-confirm-stack-recommendation-score em,
.frontier-war-confirm-stack-recommendation-score b,
.frontier-war-confirm-stack-recommendation-grid p,
.frontier-war-confirm-stack-recommendation-grid span,
.frontier-war-confirm-stack-recommendation-grid em,
.frontier-war-confirm-stack-playback-pin-grid p,
.frontier-war-confirm-stack-playback-pin-grid em,
.frontier-war-confirm-stack-playback-pin-summary p,
.frontier-war-confirm-stack-playback-pin-summary em {
    margin: 3px 0 0;
    color: #b9cfcb;
    font-size: 0.58rem;
    font-style: normal;
}

.frontier-war-confirm-stack-recommendation-score b {
    color: #8ae0b5;
}

.frontier-war-confirm-stack-playback-pin-grid-v134 b {
    color: #f0c76e;
}

.frontier-war-confirm-stack-playback-pin-controls {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 8px;
}

.frontier-war-confirm-trace.selected b,
.frontier-war-decision-preview[data-confirm-trace] i {
    background: #f0c76e;
}

.frontier-war-node.confirm-trace-target-v128 .frontier-war-node-fx-ring {
    box-shadow:
        0 0 0 2px rgba(116, 214, 202, 0.18),
        0 0 24px rgba(116, 214, 202, 0.32);
}

.frontier-war-action[data-confirm-trace] {
    position: relative;
}

.frontier-war-action[data-confirm-trace]::after {
    content: '';
    position: absolute;
    left: 12px;
    right: 12px;
    bottom: 5px;
    height: 2px;
    border-radius: 999px;
    background: linear-gradient(90deg, transparent, rgba(116, 214, 202, 0.72), rgba(240, 199, 110, 0.6), transparent);
    opacity: 0.42;
}

.frontier-war-action[data-confirm-trace]:hover::after,
.frontier-war-action[data-confirm-trace]:focus-visible::after {
    opacity: 0.9;
}

.frontier-war-node.commit-highlight-v137 {
    z-index: 11;
    filter: saturate(1.16) brightness(1.08);
}

.frontier-war-map-trace-commit-highlight-v137[data-confirm-stack-commit-highlight-version="V137"] .frontier-war-map-focus {
    border-color: rgba(138, 224, 181, 0.44);
}

.frontier-war-node.commit-highlight-v137 .frontier-war-node-fx-ring {
    box-shadow:
        0 0 0 3px rgba(138, 224, 181, 0.34),
        0 0 0 7px rgba(240, 199, 110, 0.14),
        0 0 30px rgba(138, 224, 181, 0.48);
}

.frontier-war-node.commit-highlight-v137 .frontier-war-node-seal {
    background: linear-gradient(135deg, rgba(138, 224, 181, 0.96), rgba(240, 199, 110, 0.9));
    color: #09201b;
}

.frontier-war-node.outcome-echo-v138 {
    z-index: 12;
    filter: saturate(1.2) brightness(1.1);
}

.frontier-war-map-trace-outcome-echo-v138[data-confirm-stack-outcome-echo-version="V138"] .frontier-war-map-focus {
    border-color: rgba(116, 214, 202, 0.5);
}

.frontier-war-node.outcome-echo-v138 .frontier-war-node-fx-ring {
    box-shadow:
        0 0 0 3px rgba(116, 214, 202, 0.36),
        0 0 0 8px rgba(240, 199, 110, 0.15),
        0 0 34px rgba(116, 214, 202, 0.52);
}

.frontier-war-node.outcome-echo-v138 .frontier-war-node-seal {
    background: linear-gradient(135deg, rgba(116, 214, 202, 0.96), rgba(255, 238, 190, 0.9));
    color: #09201b;
}

.frontier-war-node.trace-jump-v139 {
    z-index: 13;
    filter: saturate(1.24) brightness(1.12);
}

.frontier-war-map-trace-jump-v139[data-confirm-stack-trace-jump-version="V139"] .frontier-war-map-focus {
    border-color: rgba(255, 190, 122, 0.52);
}

.frontier-war-node.trace-jump-v139 .frontier-war-node-fx-ring {
    box-shadow:
        0 0 0 3px rgba(255, 190, 122, 0.38),
        0 0 0 8px rgba(116, 214, 202, 0.16),
        0 0 36px rgba(255, 190, 122, 0.5);
}

.frontier-war-node.trace-jump-v139 .frontier-war-node-seal {
    background: linear-gradient(135deg, rgba(255, 190, 122, 0.96), rgba(116, 214, 202, 0.9));
    color: #09201b;
}

.frontier-war-node.trace-landing-v140 {
    z-index: 14;
    filter: saturate(1.28) brightness(1.14);
}

.frontier-war-map-trace-landing-feedback-v140[data-confirm-stack-trace-landing-version="V140"] .frontier-war-map-focus {
    border-color: rgba(138, 224, 181, 0.56);
}

.frontier-war-node.trace-landing-v140 .frontier-war-node-fx-ring {
    box-shadow:
        0 0 0 3px rgba(138, 224, 181, 0.4),
        0 0 0 9px rgba(255, 190, 122, 0.16),
        0 0 38px rgba(138, 224, 181, 0.54);
}

.frontier-war-node.trace-landing-v140 .frontier-war-node-seal {
    background: linear-gradient(135deg, rgba(138, 224, 181, 0.98), rgba(255, 190, 122, 0.92));
    color: #09201b;
}

.frontier-war-node.trace-landing-decay-v141 {
    z-index: 15;
    filter: saturate(1.3) brightness(1.16);
}

.frontier-war-node.trace-landing-decay-v141.decay-settling {
    filter: saturate(1.18) brightness(1.08);
}

.frontier-war-node.trace-landing-decay-v141.decay-faded,
.frontier-war-node.trace-landing-decay-v141.decay-derived {
    filter: saturate(1.06) brightness(1.02);
}

.frontier-war-map-trace-landing-decay-v141[data-confirm-stack-trace-landing-decay-version="V141"] .frontier-war-map-focus {
    border-color: rgba(116, 214, 202, 0.58);
}

.frontier-war-node.trace-landing-decay-v141 .frontier-war-node-fx-ring {
    box-shadow:
        0 0 0 3px rgba(116, 214, 202, 0.42),
        0 0 0 10px rgba(138, 224, 181, 0.15),
        0 0 40px rgba(116, 214, 202, 0.56);
}

.frontier-war-node.trace-landing-decay-v141.decay-settling .frontier-war-node-fx-ring,
.frontier-war-node.trace-landing-decay-v141.decay-faded .frontier-war-node-fx-ring,
.frontier-war-node.trace-landing-decay-v141.decay-derived .frontier-war-node-fx-ring {
    box-shadow:
        0 0 0 2px rgba(116, 214, 202, 0.28),
        0 0 0 7px rgba(255, 190, 122, 0.12),
        0 0 24px rgba(116, 214, 202, 0.32);
}

.frontier-war-node.trace-landing-decay-v141 .frontier-war-node-seal {
    background: linear-gradient(135deg, rgba(116, 214, 202, 0.98), rgba(138, 224, 181, 0.92));
    color: #09201b;
}

.frontier-war-node.echo-trail-handoff-v142 {
    z-index: 16;
    filter: saturate(1.32) brightness(1.17);
}

.frontier-war-map-echo-trail-handoff-v142[data-confirm-stack-echo-trail-handoff-version="V142"] .frontier-war-map-focus {
    border-color: rgba(255, 190, 122, 0.62);
}

.frontier-war-node.echo-trail-handoff-v142 .frontier-war-node-fx-ring {
    box-shadow:
        0 0 0 3px rgba(255, 190, 122, 0.44),
        0 0 0 10px rgba(116, 214, 202, 0.16),
        0 0 42px rgba(255, 190, 122, 0.56);
}

.frontier-war-node.echo-trail-handoff-v142 .frontier-war-node-seal {
    background: linear-gradient(135deg, rgba(255, 190, 122, 0.98), rgba(116, 214, 202, 0.92));
    color: #09201b;
}

.frontier-war-node.entry-handoff-intent-v143 {
    z-index: 17;
    filter: saturate(1.34) brightness(1.2);
}

.frontier-war-map-entry-handoff-intent-v143[data-confirm-stack-entry-handoff-intent-version="V143"] .frontier-war-map-focus {
    border-color: rgba(255, 238, 190, 0.64);
}

.frontier-war-node.entry-handoff-intent-v143 .frontier-war-node-fx-ring {
    box-shadow:
        0 0 0 3px rgba(255, 238, 190, 0.46),
        0 0 0 10px rgba(255, 190, 122, 0.16),
        0 0 46px rgba(255, 238, 190, 0.58);
}

.frontier-war-node.entry-handoff-intent-v143 .frontier-war-node-seal {
    background: linear-gradient(135deg, rgba(255, 238, 190, 0.98), rgba(255, 190, 122, 0.92));
    color: #09201b;
}

.frontier-war-node.intent-confidence-replay-v144 {
    z-index: 18;
    filter: saturate(1.36) brightness(1.22);
}

.frontier-war-map-intent-confidence-replay-v144[data-confirm-stack-intent-confidence-replay-version="V144"] .frontier-war-map-focus {
    border-color: rgba(116, 214, 202, 0.68);
}

.frontier-war-node.intent-confidence-replay-v144 .frontier-war-node-fx-ring {
    box-shadow:
        0 0 0 3px rgba(116, 214, 202, 0.5),
        0 0 0 10px rgba(255, 238, 190, 0.16),
        0 0 48px rgba(116, 214, 202, 0.58);
}

.frontier-war-node.intent-confidence-replay-v144 .frontier-war-node-seal {
    background: linear-gradient(135deg, rgba(116, 214, 202, 0.98), rgba(255, 238, 190, 0.92));
    color: #09201b;
}

.frontier-war-node.action-receipt-mirror-v145 {
    z-index: 19;
    filter: saturate(1.38) brightness(1.24);
}

.frontier-war-map-action-receipt-mirror-v145[data-confirm-stack-action-receipt-mirror-version="V145"] .frontier-war-map-focus {
    border-color: rgba(138, 224, 181, 0.7);
}

.frontier-war-node.action-receipt-mirror-v145 .frontier-war-node-fx-ring {
    box-shadow:
        0 0 0 3px rgba(138, 224, 181, 0.52),
        0 0 0 10px rgba(116, 214, 202, 0.16),
        0 0 50px rgba(138, 224, 181, 0.58);
}

.frontier-war-node.action-receipt-mirror-v145 .frontier-war-node-seal {
    background: linear-gradient(135deg, rgba(138, 224, 181, 0.98), rgba(116, 214, 202, 0.92));
    color: #09201b;
}

.frontier-war-node.receipt-diff-guard-v146 {
    z-index: 20;
    filter: saturate(1.42) brightness(1.26);
}

.frontier-war-map-receipt-diff-guard-v146[data-confirm-stack-receipt-diff-guard-version="V146"] .frontier-war-map-focus {
    border-color: rgba(255, 238, 190, 0.72);
}

.frontier-war-node.receipt-diff-guard-v146 .frontier-war-node-fx-ring {
    box-shadow:
        0 0 0 3px rgba(255, 238, 190, 0.52),
        0 0 0 10px rgba(138, 224, 181, 0.16),
        0 0 52px rgba(255, 238, 190, 0.58);
}

.frontier-war-node.receipt-diff-guard-v146 .frontier-war-node-seal {
    background: linear-gradient(135deg, rgba(255, 238, 190, 0.98), rgba(138, 224, 181, 0.92));
    color: #241906;
}

.frontier-war-node.guarded-undo-drilldown-v147 {
    z-index: 21;
    filter: saturate(1.46) brightness(1.28);
}

.frontier-war-map-guarded-undo-drilldown-v147[data-confirm-stack-guarded-undo-drilldown-version="V147"] .frontier-war-map-focus {
    border-color: rgba(116, 214, 202, 0.74);
}

.frontier-war-node.guarded-undo-drilldown-v147 .frontier-war-node-fx-ring {
    box-shadow:
        0 0 0 3px rgba(116, 214, 202, 0.54),
        0 0 0 10px rgba(255, 238, 190, 0.16),
        0 0 54px rgba(116, 214, 202, 0.58);
}

.frontier-war-node.guarded-undo-drilldown-v147 .frontier-war-node-seal {
    background: linear-gradient(135deg, rgba(116, 214, 202, 0.98), rgba(255, 238, 190, 0.92));
    color: #09201b;
}

.frontier-war-node.cause-filtered-undo-timeline-v148 {
    z-index: 22;
    filter: saturate(1.5) brightness(1.3);
}

.frontier-war-map-cause-filtered-undo-timeline-v148[data-confirm-stack-cause-filtered-undo-timeline-version="V148"] .frontier-war-map-focus {
    border-color: rgba(255, 174, 128, 0.78);
}

.frontier-war-node.cause-filtered-undo-timeline-v148 .frontier-war-node-fx-ring {
    box-shadow:
        0 0 0 3px rgba(255, 174, 128, 0.56),
        0 0 0 10px rgba(116, 214, 202, 0.17),
        0 0 56px rgba(255, 174, 128, 0.6);
}

.frontier-war-node.cause-filtered-undo-timeline-v148 .frontier-war-node-seal {
    background: linear-gradient(135deg, rgba(255, 174, 128, 0.98), rgba(116, 214, 202, 0.94));
    color: #2a1209;
}

.frontier-war-node.replay-pin-compare-v149 {
    z-index: 23;
    filter: saturate(1.56) brightness(1.34);
}

.frontier-war-map-replay-pin-compare-v149[data-confirm-stack-replay-pin-compare-version="V149"] .frontier-war-map-focus {
    border-color: rgba(255, 224, 138, 0.8);
}

.frontier-war-node.replay-pin-compare-v149 .frontier-war-node-fx-ring {
    box-shadow:
        0 0 0 3px rgba(255, 224, 138, 0.58),
        0 0 0 10px rgba(116, 214, 202, 0.18),
        0 0 58px rgba(255, 224, 138, 0.62);
}

.frontier-war-node.replay-pin-compare-v149 .frontier-war-node-seal {
    background: linear-gradient(135deg, rgba(255, 224, 138, 0.98), rgba(116, 214, 202, 0.94));
    color: #241a05;
}

.frontier-war-node.return-path-fault-drill-v150,
.frontier-war-node.return-path-fault-drill-v151 {
    z-index: 24;
    filter: saturate(1.62) brightness(1.38);
}

.frontier-war-map-return-path-fault-drill-v150[data-confirm-stack-return-path-fault-drill-version="V150"] .frontier-war-map-focus,
.frontier-war-map-return-path-fault-drill-v151[data-confirm-stack-return-path-fault-drill-version="V151"] .frontier-war-map-focus {
    border-color: rgba(255, 196, 106, 0.84);
}

.frontier-war-node.return-path-fault-drill-v150 .frontier-war-node-fx-ring,
.frontier-war-node.return-path-fault-drill-v151 .frontier-war-node-fx-ring {
    box-shadow:
        0 0 0 3px rgba(255, 196, 106, 0.62),
        0 0 0 10px rgba(129, 215, 255, 0.18),
        0 0 60px rgba(255, 196, 106, 0.66);
}

.frontier-war-node.return-path-fault-drill-v150 .frontier-war-node-seal,
.frontier-war-node.return-path-fault-drill-v151 .frontier-war-node-seal {
    background: linear-gradient(135deg, rgba(255, 196, 106, 0.98), rgba(129, 215, 255, 0.94));
    color: #251203;
}

.frontier-war-action.commit-highlight-v137,
.frontier-war-mini-action.commit-highlight-v137,
.frontier-war-command-chain button.commit-highlight-v137,
.frontier-war-command-grid article.commit-highlight-v137 {
    border-color: rgba(138, 224, 181, 0.72);
    box-shadow:
        0 0 0 1px rgba(138, 224, 181, 0.18) inset,
        0 0 18px rgba(138, 224, 181, 0.24);
}

.frontier-war-mini-action.commit-highlight-v137,
.frontier-war-command-chain button.commit-highlight-v137 {
    background:
        linear-gradient(135deg, rgba(138, 224, 181, 0.2), rgba(240, 199, 110, 0.14)),
        rgba(8, 18, 18, 0.84);
}

.frontier-war-action.commit-highlight-v137::after {
    height: 3px;
    background: linear-gradient(90deg, transparent, rgba(138, 224, 181, 0.94), rgba(240, 199, 110, 0.86), transparent);
    opacity: 0.96;
}

.frontier-war-action.outcome-echo-v138,
.frontier-war-mini-action.outcome-echo-v138,
.frontier-war-command-chain button.outcome-echo-v138,
.frontier-war-command-grid article.outcome-echo-v138 {
    border-color: rgba(116, 214, 202, 0.74);
    box-shadow:
        0 0 0 1px rgba(116, 214, 202, 0.2) inset,
        0 0 18px rgba(116, 214, 202, 0.24);
}

.frontier-war-action.trace-jump-v139,
.frontier-war-mini-action.trace-jump-v139,
.frontier-war-command-chain button.trace-jump-v139,
.frontier-war-command-grid article.trace-jump-v139 {
    border-color: rgba(255, 190, 122, 0.76);
    box-shadow:
        0 0 0 1px rgba(255, 190, 122, 0.2) inset,
        0 0 18px rgba(255, 190, 122, 0.24);
}

.frontier-war-mini-action.trace-jump-v139,
.frontier-war-command-chain button.trace-jump-v139 {
    background:
        linear-gradient(135deg, rgba(255, 190, 122, 0.2), rgba(116, 214, 202, 0.14)),
        rgba(8, 18, 18, 0.84);
}

.frontier-war-action.trace-landing-v140,
.frontier-war-mini-action.trace-landing-v140,
.frontier-war-command-chain button.trace-landing-v140,
.frontier-war-command-grid article.trace-landing-v140 {
    border-color: rgba(138, 224, 181, 0.82);
    box-shadow:
        0 0 0 1px rgba(138, 224, 181, 0.24) inset,
        0 0 20px rgba(138, 224, 181, 0.28);
}

.frontier-war-mini-action.trace-landing-v140,
.frontier-war-command-chain button.trace-landing-v140 {
    background:
        linear-gradient(135deg, rgba(138, 224, 181, 0.22), rgba(255, 190, 122, 0.14)),
        rgba(8, 18, 18, 0.84);
}

.frontier-war-action.trace-landing-decay-v141,
.frontier-war-mini-action.trace-landing-decay-v141,
.frontier-war-command-chain button.trace-landing-decay-v141,
.frontier-war-command-grid article.trace-landing-decay-v141 {
    border-color: rgba(116, 214, 202, 0.82);
    box-shadow:
        0 0 0 1px rgba(116, 214, 202, 0.24) inset,
        0 0 20px rgba(116, 214, 202, 0.28);
}

.frontier-war-mini-action.trace-landing-decay-v141,
.frontier-war-command-chain button.trace-landing-decay-v141 {
    background:
        linear-gradient(135deg, rgba(116, 214, 202, 0.22), rgba(138, 224, 181, 0.14)),
        rgba(8, 18, 18, 0.84);
}

.frontier-war-action.echo-trail-handoff-v142,
.frontier-war-mini-action.echo-trail-handoff-v142,
.frontier-war-command-chain button.echo-trail-handoff-v142,
.frontier-war-command-grid article.echo-trail-handoff-v142 {
    border-color: rgba(255, 190, 122, 0.84);
    box-shadow:
        0 0 0 1px rgba(255, 190, 122, 0.24) inset,
        0 0 20px rgba(255, 190, 122, 0.28);
}

.frontier-war-mini-action.echo-trail-handoff-v142,
.frontier-war-command-chain button.echo-trail-handoff-v142 {
    background:
        linear-gradient(135deg, rgba(255, 190, 122, 0.22), rgba(116, 214, 202, 0.14)),
        rgba(8, 18, 18, 0.84);
}

.frontier-war-action.entry-handoff-intent-v143,
.frontier-war-mini-action.entry-handoff-intent-v143,
.frontier-war-command-chain button.entry-handoff-intent-v143,
.frontier-war-command-grid article.entry-handoff-intent-v143 {
    border-color: rgba(255, 238, 190, 0.86);
    box-shadow:
        0 0 0 1px rgba(255, 238, 190, 0.24) inset,
        0 0 22px rgba(255, 238, 190, 0.28);
}

.frontier-war-mini-action.entry-handoff-intent-v143,
.frontier-war-command-chain button.entry-handoff-intent-v143 {
    background:
        linear-gradient(135deg, rgba(255, 238, 190, 0.22), rgba(255, 190, 122, 0.14)),
        rgba(8, 18, 18, 0.84);
}

.frontier-war-action.intent-confidence-replay-v144,
.frontier-war-mini-action.intent-confidence-replay-v144,
.frontier-war-command-chain button.intent-confidence-replay-v144,
.frontier-war-command-grid article.intent-confidence-replay-v144 {
    border-color: rgba(116, 214, 202, 0.86);
    box-shadow:
        0 0 0 1px rgba(116, 214, 202, 0.24) inset,
        0 0 22px rgba(116, 214, 202, 0.28);
}

.frontier-war-mini-action.intent-confidence-replay-v144,
.frontier-war-command-chain button.intent-confidence-replay-v144 {
    background:
        linear-gradient(135deg, rgba(116, 214, 202, 0.22), rgba(255, 238, 190, 0.14)),
        rgba(8, 18, 18, 0.84);
}

.frontier-war-action.action-receipt-mirror-v145,
.frontier-war-mini-action.action-receipt-mirror-v145,
.frontier-war-command-chain button.action-receipt-mirror-v145,
.frontier-war-command-grid article.action-receipt-mirror-v145 {
    border-color: rgba(138, 224, 181, 0.88);
    box-shadow:
        0 0 0 1px rgba(138, 224, 181, 0.24) inset,
        0 0 23px rgba(138, 224, 181, 0.3);
}

.frontier-war-mini-action.action-receipt-mirror-v145,
.frontier-war-command-chain button.action-receipt-mirror-v145 {
    background:
        linear-gradient(135deg, rgba(138, 224, 181, 0.24), rgba(116, 214, 202, 0.14)),
        rgba(8, 18, 18, 0.84);
}

.frontier-war-action.receipt-diff-guard-v146,
.frontier-war-mini-action.receipt-diff-guard-v146,
.frontier-war-command-chain button.receipt-diff-guard-v146,
.frontier-war-command-grid article.receipt-diff-guard-v146 {
    border-color: rgba(255, 238, 190, 0.9);
    box-shadow:
        0 0 0 1px rgba(255, 238, 190, 0.24) inset,
        0 0 24px rgba(255, 238, 190, 0.3);
}

.frontier-war-mini-action.receipt-diff-guard-v146,
.frontier-war-command-chain button.receipt-diff-guard-v146 {
    background:
        linear-gradient(135deg, rgba(255, 238, 190, 0.24), rgba(138, 224, 181, 0.14)),
        rgba(8, 18, 18, 0.84);
}

.frontier-war-action.guarded-undo-drilldown-v147,
.frontier-war-mini-action.guarded-undo-drilldown-v147,
.frontier-war-command-chain button.guarded-undo-drilldown-v147,
.frontier-war-command-grid article.guarded-undo-drilldown-v147 {
    border-color: rgba(116, 214, 202, 0.92);
    box-shadow:
        0 0 0 1px rgba(116, 214, 202, 0.24) inset,
        0 0 24px rgba(116, 214, 202, 0.3);
}

.frontier-war-mini-action.guarded-undo-drilldown-v147,
.frontier-war-command-chain button.guarded-undo-drilldown-v147 {
    background:
        linear-gradient(135deg, rgba(116, 214, 202, 0.24), rgba(255, 238, 190, 0.14)),
        rgba(8, 18, 18, 0.84);
}

.frontier-war-action.cause-filtered-undo-timeline-v148,
.frontier-war-mini-action.cause-filtered-undo-timeline-v148,
.frontier-war-command-chain button.cause-filtered-undo-timeline-v148,
.frontier-war-command-grid article.cause-filtered-undo-timeline-v148 {
    border-color: rgba(255, 174, 128, 0.94);
    box-shadow:
        0 0 0 1px rgba(255, 174, 128, 0.26) inset,
        0 0 25px rgba(255, 174, 128, 0.32);
}

.frontier-war-mini-action.cause-filtered-undo-timeline-v148,
.frontier-war-command-chain button.cause-filtered-undo-timeline-v148 {
    background:
        linear-gradient(135deg, rgba(255, 174, 128, 0.25), rgba(116, 214, 202, 0.15)),
        rgba(8, 18, 18, 0.84);
}

.frontier-war-action.replay-pin-compare-v149,
.frontier-war-mini-action.replay-pin-compare-v149,
.frontier-war-command-chain button.replay-pin-compare-v149,
.frontier-war-command-grid article.replay-pin-compare-v149 {
    border-color: rgba(255, 224, 138, 0.96);
    box-shadow:
        0 0 0 1px rgba(255, 224, 138, 0.27) inset,
        0 0 26px rgba(255, 224, 138, 0.34);
}

.frontier-war-mini-action.replay-pin-compare-v149,
.frontier-war-command-chain button.replay-pin-compare-v149 {
    background:
        linear-gradient(135deg, rgba(255, 224, 138, 0.25), rgba(116, 214, 202, 0.16)),
        rgba(8, 18, 18, 0.84);
}

.frontier-war-action.return-path-fault-drill-v150,
.frontier-war-mini-action.return-path-fault-drill-v150,
.frontier-war-command-chain button.return-path-fault-drill-v150,
.frontier-war-command-grid article.return-path-fault-drill-v150,
.frontier-war-action.return-path-fault-drill-v151,
.frontier-war-mini-action.return-path-fault-drill-v151,
.frontier-war-command-chain button.return-path-fault-drill-v151,
.frontier-war-command-grid article.return-path-fault-drill-v151 {
    border-color: rgba(255, 196, 106, 0.98);
    box-shadow:
        0 0 0 1px rgba(255, 196, 106, 0.28) inset,
        0 0 27px rgba(255, 196, 106, 0.35);
}

.frontier-war-mini-action.return-path-fault-drill-v150,
.frontier-war-command-chain button.return-path-fault-drill-v150 {
    background:
        linear-gradient(135deg, rgba(255, 196, 106, 0.26), rgba(129, 215, 255, 0.15)),
        rgba(8, 18, 18, 0.84);
}

.frontier-war-decision-preview.commit-highlight-v137,
.frontier-war-action-aftershock.commit-highlight-v137,
.frontier-war-consequence-flow.commit-highlight-v137,
.frontier-war-confirm-trace.commit-highlight-v137 {
    z-index: 10;
    filter: drop-shadow(0 0 8px rgba(138, 224, 181, 0.46)) saturate(1.12);
}

.frontier-war-confirm-trace.commit-highlight-v137 b,
.frontier-war-decision-preview.commit-highlight-v137 i {
    background: #8ae0b5;
    color: #09201b;
}

.frontier-war-confirm-stack-item-v130.commit-highlight-v137 {
    border-color: rgba(138, 224, 181, 0.56);
    background:
        linear-gradient(135deg, rgba(138, 224, 181, 0.12), rgba(240, 199, 110, 0.1)),
        rgba(7, 18, 19, 0.72);
}

.frontier-war-decision-preview.outcome-echo-v138,
.frontier-war-action-aftershock.outcome-echo-v138,
.frontier-war-consequence-flow.outcome-echo-v138,
.frontier-war-confirm-trace.outcome-echo-v138 {
    z-index: 11;
    filter: drop-shadow(0 0 9px rgba(116, 214, 202, 0.5)) saturate(1.16);
}

.frontier-war-confirm-trace.outcome-echo-v138 b,
.frontier-war-decision-preview.outcome-echo-v138 i {
    background: #74d6ca;
    color: #09201b;
}

.frontier-war-confirm-stack-item-v130.outcome-echo-v138 {
    border-color: rgba(116, 214, 202, 0.58);
    background:
        linear-gradient(135deg, rgba(116, 214, 202, 0.13), rgba(240, 199, 110, 0.1)),
        rgba(7, 18, 19, 0.72);
}

.frontier-war-decision-preview.trace-jump-v139,
.frontier-war-action-aftershock.trace-jump-v139,
.frontier-war-consequence-flow.trace-jump-v139,
.frontier-war-confirm-trace.trace-jump-v139 {
    z-index: 12;
    filter: drop-shadow(0 0 10px rgba(255, 190, 122, 0.52)) saturate(1.18);
}

.frontier-war-confirm-trace.trace-jump-v139 b,
.frontier-war-decision-preview.trace-jump-v139 i {
    background: #ffbe7a;
    color: #09201b;
}

.frontier-war-confirm-stack-item-v130.trace-jump-v139 {
    border-color: rgba(255, 190, 122, 0.6);
    background:
        linear-gradient(135deg, rgba(255, 190, 122, 0.14), rgba(116, 214, 202, 0.1)),
        rgba(7, 18, 19, 0.72);
}

.frontier-war-decision-preview.trace-landing-v140,
.frontier-war-action-aftershock.trace-landing-v140,
.frontier-war-consequence-flow.trace-landing-v140,
.frontier-war-confirm-trace.trace-landing-v140 {
    z-index: 13;
    filter: drop-shadow(0 0 11px rgba(138, 224, 181, 0.56)) saturate(1.2);
}

.frontier-war-decision-preview.trace-landing-decay-v141,
.frontier-war-action-aftershock.trace-landing-decay-v141,
.frontier-war-consequence-flow.trace-landing-decay-v141,
.frontier-war-confirm-trace.trace-landing-decay-v141 {
    z-index: 14;
    filter: drop-shadow(0 0 12px rgba(116, 214, 202, 0.58)) saturate(1.22);
}

.frontier-war-confirm-trace.trace-landing-v140 b,
.frontier-war-decision-preview.trace-landing-v140 i {
    background: #8ae0b5;
    color: #09201b;
}

.frontier-war-confirm-trace.trace-landing-decay-v141 b,
.frontier-war-decision-preview.trace-landing-decay-v141 i {
    background: #74d6ca;
    color: #09201b;
}

.frontier-war-confirm-stack-item-v130.trace-landing-v140 {
    border-color: rgba(138, 224, 181, 0.64);
    background:
        linear-gradient(135deg, rgba(138, 224, 181, 0.15), rgba(255, 190, 122, 0.1)),
        rgba(7, 18, 19, 0.72);
}

.frontier-war-confirm-stack-item-v130.trace-landing-decay-v141 {
    border-color: rgba(116, 214, 202, 0.66);
    background:
        linear-gradient(135deg, rgba(116, 214, 202, 0.15), rgba(138, 224, 181, 0.1)),
        rgba(7, 18, 19, 0.72);
}

.frontier-war-confirm-trace-steps {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 96px), 1fr));
    gap: 6px;
    margin-top: 8px;
}

.frontier-war-confirm-trace-steps span {
    min-width: 0;
    padding: 6px;
    border: 1px solid rgba(116, 214, 202, 0.16);
    border-radius: 7px;
    background: rgba(5, 13, 14, 0.48);
}

.frontier-war-confirm-trace-steps span.ready {
    border-color: rgba(138, 224, 181, 0.3);
}

.frontier-war-confirm-trace-steps b,
.frontier-war-confirm-trace-steps em {
    display: block;
    min-width: 0;
    overflow-wrap: anywhere;
}

.frontier-war-confirm-trace-steps b {
    color: #74d6ca;
    font-size: 0.64rem;
}

@keyframes frontierWarConfirmTraceFlow {
    0%, 100% { opacity: 0.64; transform: translate(-50%, -50%) rotate(var(--fw-confirm-rotate, 0deg)) scaleX(0.88); }
    50% { opacity: 0.98; transform: translate(-50%, -50%) rotate(var(--fw-confirm-rotate, 0deg)) scaleX(1.04); }
}

@keyframes frontierWarConfirmTraceGlint {
    0% { opacity: 0; transform: translateX(-42%); }
    42% { opacity: 0.72; transform: translateX(8%); }
    100% { opacity: 0; transform: translateX(42%); }
}

@keyframes frontierWarConfirmReplayHold {
    0% { opacity: 0; transform: translate(-50%, -50%) rotate(var(--fw-confirm-rotate, 0deg)) scaleX(0.72); }
    14% { opacity: 1; transform: translate(-50%, -50%) rotate(var(--fw-confirm-rotate, 0deg)) scaleX(1.08); }
    72% { opacity: 0.92; transform: translate(-50%, -50%) rotate(var(--fw-confirm-rotate, 0deg)) scaleX(1); }
    100% { opacity: 0.18; transform: translate(-50%, -50%) rotate(var(--fw-confirm-rotate, 0deg)) scaleX(0.94); }
}

@keyframes frontierWarDecisionRationaleRise {
    0%, 100% { transform: translate(-50%, 8px); opacity: 0.82; }
    50% { transform: translate(-50%, 12px); opacity: 0.96; }
}

@keyframes frontierWarDecisionCueFloat {
    0%, 100% { transform: translate(-50%, calc(-100% - 12px)); }
    50% { transform: translate(-50%, calc(-100% - 16px)); }
}

@keyframes frontierWarConsequencePulse {
    0%, 100% { opacity: 0.3; transform: scale(0.86); }
    48% { opacity: 0.84; transform: scale(1.08); }
}

@keyframes frontierWarConsequenceRing {
    0% { opacity: 0.66; transform: scale(0.76); }
    74% { opacity: 0.1; transform: scale(1.32); }
    100% { opacity: 0; transform: scale(1.42); }
}

@keyframes frontierWarConsequenceDrift {
    0%, 100% { opacity: 0.36; transform: translate(-2%, 2%) rotate(-5deg) scale(0.94); }
    50% { opacity: 0.74; transform: translate(4%, -4%) rotate(5deg) scale(1.06); }
}

@keyframes frontierWarConsequenceRoute {
    0%, 100% { opacity: 0.32; transform: scaleX(0.72); }
    45% { opacity: 0.9; transform: scaleX(1); }
}

@keyframes frontierWarConsequenceRouteFlash {
    0% { opacity: 0; transform: translateX(-42%); }
    42% { opacity: 0.66; transform: translateX(8%); }
    100% { opacity: 0; transform: translateX(46%); }
}

@keyframes frontierWarConsequenceRegion {
    0%, 100% { opacity: 0.24; filter: saturate(0.92); }
    50% { opacity: 0.62; filter: saturate(1.22); }
}

@keyframes frontierWarConsequenceHotspot {
    0%, 100% { opacity: 0.46; transform: rotate(0deg) scale(0.94); }
    50% { opacity: 0.92; transform: rotate(12deg) scale(1.08); }
}

.frontier-war-territory span,
.frontier-war-territory strong,
.frontier-war-territory em {
    position: relative;
    max-width: 100%;
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.72);
    pointer-events: none;
}

.frontier-war-territory span {
    font-size: 0.68rem;
    font-weight: 800;
}

.frontier-war-territory strong,
.frontier-war-territory em {
    opacity: 0;
    font-size: 0.58rem;
}

.frontier-war-map::before {
    content: '';
    position: absolute;
    inset: 0;
    pointer-events: none;
    opacity: 0.24;
    background-image:
        linear-gradient(rgba(63, 48, 34, 0.18) 1px, transparent 1px),
        linear-gradient(90deg, rgba(63, 48, 34, 0.16) 1px, transparent 1px),
        radial-gradient(circle at 18% 16%, rgba(240, 199, 110, 0.12), transparent 26%),
        radial-gradient(circle at 82% 72%, rgba(116, 214, 202, 0.12), transparent 24%);
    background-size: 60px 60px, 60px 60px, auto, auto;
    mix-blend-mode: multiply;
}

.frontier-war-map::after {
    content: '';
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        radial-gradient(circle at 50% 50%, transparent 58%, rgba(6, 13, 15, 0.58) 100%),
        linear-gradient(180deg, rgba(255, 244, 214, 0.06), transparent 14%),
        linear-gradient(90deg, rgba(116, 214, 202, 0.08), transparent 18%, transparent 82%, rgba(216, 95, 95, 0.1));
    z-index: 3;
}

.frontier-war-map-header {
    position: absolute;
    z-index: 7;
    top: 14px;
    left: 14px;
    right: 14px;
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 14px;
    pointer-events: none;
}

.frontier-war-map-title,
.frontier-war-map-focus {
    min-width: 0;
    border: 1px solid rgba(240, 199, 110, 0.18);
    border-radius: 8px;
    background:
        linear-gradient(180deg, rgba(12, 20, 22, 0.92), rgba(8, 14, 16, 0.82)),
        radial-gradient(circle at 0 0, rgba(240, 199, 110, 0.08), transparent 44%);
    backdrop-filter: blur(14px);
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.24);
}

.frontier-war-map-title {
    max-width: min(54%, 360px);
    padding: 10px 12px;
}

.frontier-war-map-title span,
.frontier-war-map-focus span {
    display: block;
    color: #f0c76e;
    font-size: 0.72rem;
}

.frontier-war-map-title strong,
.frontier-war-map-focus strong {
    display: block;
    margin-top: 3px;
    color: #fff4d8;
    text-shadow: 0 2px 12px rgba(0, 0, 0, 0.45);
}

.frontier-war-map-title em,
.frontier-war-map-focus em,
.frontier-war-map-focus p {
    display: block;
    margin-top: 4px;
    color: #d6e3de;
    font-style: normal;
    font-size: 0.74rem;
    line-height: 1.4;
    overflow-wrap: anywhere;
}

.frontier-war-map-kpis {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: flex-end;
    max-width: 44%;
}

.frontier-war-map-kpis span {
    min-height: 32px;
    padding: 6px 9px;
    border: 1px solid rgba(179, 224, 212, 0.2);
    border-radius: 999px;
    color: #dce7e4;
    background: rgba(8, 14, 16, 0.72);
    font-size: 0.72rem;
    backdrop-filter: blur(10px);
}

.frontier-war-map-kpis b {
    color: #fff4d8;
}

.frontier-war-map-kpis span.success {
    border-color: rgba(116, 214, 202, 0.34);
}

.frontier-war-map-kpis span.warning {
    border-color: rgba(240, 199, 110, 0.34);
}

.frontier-war-map-kpis span.danger {
    border-color: rgba(216, 95, 95, 0.42);
}

.frontier-war-routes {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: 4;
}

.frontier-war-routes line {
    stroke: rgba(22, 28, 27, 0.34);
    stroke-width: 1px;
    stroke-linecap: round;
    vector-effect: non-scaling-stroke;
    opacity: 0.42;
    filter: drop-shadow(0 0 1px rgba(242, 230, 199, 0.28));
}

.frontier-war-routes line.active {
    stroke: rgba(238, 173, 70, 0.74);
    stroke-width: 1.45px;
    opacity: 0.72;
}

.frontier-war-routes line.secured {
    stroke: rgba(13, 143, 131, 0.68);
    stroke-width: 1.35px;
    opacity: 0.62;
}

.frontier-war-routes line.contested {
    stroke: rgba(176, 50, 44, 0.78);
    stroke-width: 1.55px;
    stroke-dasharray: 5 4;
    opacity: 0.76;
    animation: frontierWarRouteTension 2.8s linear infinite;
}

.frontier-war-routes line.fogged {
    opacity: 0.2;
}

.frontier-war-node-layer {
    position: absolute;
    inset: 0;
    z-index: 5;
}

.frontier-war-map-legend {
    position: absolute;
    z-index: 7;
    bottom: 14px;
    left: 14px;
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    max-width: min(54%, 340px);
    padding: 7px 8px;
    border: 1px solid rgba(240, 199, 110, 0.2);
    border-radius: 8px;
    background: rgba(12, 20, 22, 0.82);
    backdrop-filter: blur(12px);
    box-shadow: 0 10px 22px rgba(0, 0, 0, 0.28);
    pointer-events: none;
}

.frontier-war-map-legend span {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    color: #c8d7d4;
    font-size: 0.72rem;
}

.frontier-war-map-legend i,
.frontier-war-map-legend b {
    display: inline-block;
    width: 18px;
    height: 8px;
    border-radius: 999px;
    background: rgba(116, 214, 202, 0.58);
}

.frontier-war-map-legend i.route-contested {
    background: rgba(216, 95, 95, 0.76);
}

.frontier-war-map-legend i.territory-player {
    background: rgba(116, 214, 202, 0.72);
}

.frontier-war-map-legend i.territory-enemy {
    background: rgba(216, 95, 95, 0.78);
}

.frontier-war-map-legend b {
    display: grid;
    place-items: center;
    width: 18px;
    height: 18px;
    color: #081012;
    background: #f0c76e;
    font-size: 0.66rem;
}

.frontier-war-map-focus {
    position: absolute;
    z-index: 7;
    right: 14px;
    bottom: 14px;
    width: min(300px, calc(100% - 28px));
    padding: 10px 12px;
    pointer-events: none;
}

.frontier-war-map-focus.success {
    border-color: rgba(116, 214, 202, 0.3);
}

.frontier-war-map-focus.warning {
    border-color: rgba(240, 199, 110, 0.32);
}

.frontier-war-map-focus.danger {
    border-color: rgba(216, 95, 95, 0.38);
}

.frontier-war-node {
    position: absolute;
    z-index: 5;
    width: 36px;
    min-height: 36px;
    transform: translate(-50%, -50%);
    padding: 4px;
    display: grid;
    place-items: center;
    gap: 0;
    align-content: center;
    border: none;
    border-radius: 999px;
    color: #fff7e8;
    background: transparent;
    cursor: pointer;
    isolation: isolate;
    box-shadow: none;
    transition: transform 160ms ease, filter 160ms ease;
}

.frontier-war-node::before {
    content: '';
    position: absolute;
    inset: 0;
    border: 1px solid rgba(60, 45, 30, 0.34);
    border-radius: 999px;
    background:
        linear-gradient(180deg, rgba(36, 31, 25, 0.82), rgba(16, 18, 17, 0.78)),
        radial-gradient(circle at 0 0, color-mix(in srgb, var(--fw-accent, #a9b8b6) 22%, transparent), transparent 54%);
    box-shadow: 0 5px 12px rgba(0, 0, 0, 0.34), inset 0 1px 0 rgba(255, 255, 255, 0.1);
    z-index: -2;
}

.frontier-war-node::after {
    content: '';
    position: absolute;
    left: 50%;
    bottom: -4px;
    width: 28px;
    height: 10px;
    transform: translateX(-50%);
    background: radial-gradient(ellipse at center, color-mix(in srgb, var(--fw-accent, #a9b8b6) 36%, transparent), transparent 72%);
    opacity: 0.28;
    z-index: -3;
}

.frontier-war-node:hover {
    transform: translate(-50%, -50%) translateY(-3px) scale(1.06);
    z-index: 8;
}

.frontier-war-node-head {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0;
}

.frontier-war-node-seal {
    display: grid;
    place-items: center;
    width: 24px;
    height: 24px;
    border: 1px solid rgba(255, 247, 232, 0.5);
    border-radius: 50%;
    color: #0d1212;
    font-weight: 800;
    font-size: 0.62rem;
    background: var(--fw-accent, #a9b8b6);
    box-shadow: 0 0 0 2px rgba(6, 13, 15, 0.28), 0 0 9px color-mix(in srgb, var(--fw-accent, #a9b8b6) 42%, transparent);
}

.frontier-war-node-type {
    position: absolute;
    right: -4px;
    bottom: -2px;
    display: grid;
    place-items: center;
    width: 16px;
    height: 16px;
    border: 1px solid rgba(240, 199, 110, 0.28);
    border-radius: 999px;
    color: #f2e6c7;
    background: rgba(6, 13, 15, 0.54);
    font-size: 0.46rem;
    font-weight: 800;
    line-height: 1;
}

.frontier-war-node-copy {
    position: absolute;
    left: 50%;
    top: calc(100% + 5px);
    transform: translateX(-50%);
    z-index: 3;
    display: flex;
    flex-direction: column;
    gap: 2px;
    width: max-content;
    max-width: 112px;
    min-width: 56px;
    padding: 4px 6px;
    border: 1px solid rgba(240, 199, 110, 0.22);
    border-radius: 6px;
    background: rgba(7, 12, 13, 0.88);
    box-shadow: 0 8px 18px rgba(0, 0, 0, 0.34);
    opacity: 0;
    visibility: hidden;
    transition: opacity 140ms ease, transform 140ms ease, visibility 0s linear 140ms;
    pointer-events: none;
}

.frontier-war-node strong,
.frontier-war-node em {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.frontier-war-node:hover .frontier-war-node-copy,
.frontier-war-node.selected .frontier-war-node-copy,
.frontier-war-node.recommended .frontier-war-node-copy,
.frontier-war-node.enemy-target .frontier-war-node-copy {
    opacity: 1;
    visibility: visible;
    transform: translateX(-50%) translateY(2px);
    transition-delay: 0s;
}

.frontier-war-node strong {
    color: #fff4d8;
    text-shadow: 0 1px 7px rgba(0, 0, 0, 0.65);
    font-size: 0.69rem;
}

.frontier-war-node em {
    font-style: normal;
    color: #d3c9ad;
    font-size: 0.56rem;
}

.frontier-war-node.owner-player::before {
    border-color: rgba(20, 154, 144, 0.76);
    background:
        linear-gradient(180deg, rgba(12, 74, 68, 0.84), rgba(9, 34, 35, 0.82)),
        radial-gradient(circle at 20% 0%, rgba(116, 214, 202, 0.16), transparent 58%);
}

.frontier-war-node.owner-player .frontier-war-node-seal {
    background: var(--fw-accent, #74d6ca);
}

.frontier-war-node.owner-neutral::before {
    border-color: rgba(111, 96, 72, 0.48);
    background: linear-gradient(180deg, rgba(54, 49, 39, 0.78), rgba(25, 24, 20, 0.76));
}

.frontier-war-node.owner-enemy::before {
    border-color: rgba(188, 65, 58, 0.7);
    background:
        linear-gradient(180deg, rgba(86, 30, 29, 0.84), rgba(29, 17, 17, 0.82)),
        radial-gradient(circle at 20% 0%, rgba(216, 95, 95, 0.16), transparent 58%);
}

.frontier-war-node.owner-enemy .frontier-war-node-seal {
    background: var(--fw-accent, #d85f5f);
    color: #fff7ef;
}

.frontier-war-node.owner-fog {
    opacity: 0.66;
    width: 28px;
    min-height: 28px;
    padding: 4px;
    border-radius: 999px;
}

.frontier-war-node.owner-fog::before {
    border-radius: 999px;
    border-color: rgba(120, 136, 130, 0.42);
    background: rgba(21, 24, 23, 0.82);
    box-shadow: 0 8px 18px rgba(0, 0, 0, 0.3), inset 0 0 0 1px rgba(221, 232, 225, 0.08);
}

.frontier-war-node.owner-fog .frontier-war-node-head {
    justify-content: center;
}

.frontier-war-node.owner-fog .frontier-war-node-seal {
    width: 19px;
    height: 19px;
    color: #edf3ef;
    background: rgba(169, 184, 182, 0.32);
}

.frontier-war-node.owner-fog .frontier-war-node-type,
.frontier-war-node.owner-fog .frontier-war-node-copy,
.frontier-war-node.owner-fog .frontier-war-node-badges {
    display: none;
}

.frontier-war-node.owner-fog strong,
.frontier-war-node.owner-fog em,
.frontier-war-node.hidden strong {
    color: #d9dedb;
}

.frontier-war-node.reachable:not(.owner-player)::before {
    box-shadow: 0 0 0 2px rgba(238, 173, 70, 0.22), 0 10px 22px rgba(0, 0, 0, 0.34), inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

.frontier-war-node.recommended::before {
    border-color: rgba(240, 199, 110, 0.92);
    box-shadow: 0 0 0 2px rgba(240, 199, 110, 0.22), 0 0 22px rgba(240, 199, 110, 0.18), 0 10px 20px rgba(0, 0, 0, 0.32);
    animation: frontierWarNodePulse 2.4s ease-in-out infinite;
}

.frontier-war-node.frontline:not(.recommended)::before {
    box-shadow: 0 0 0 2px rgba(240, 199, 110, 0.18), 0 10px 22px rgba(0, 0, 0, 0.34);
    animation: frontierWarFrontlineBreath 3.4s ease-in-out infinite;
}

.frontier-war-node.borderline:not(.recommended)::before {
    border-style: double;
}

.frontier-war-node.danger::before {
    border-color: rgba(216, 95, 95, 0.72);
    animation: frontierWarDangerPulse 2.2s ease-in-out infinite;
}

.frontier-war-node.enemy-target::before {
    border-color: rgba(216, 95, 95, 0.98);
    box-shadow: 0 0 0 3px rgba(216, 95, 95, 0.16), 0 0 24px rgba(216, 95, 95, 0.22), 0 10px 20px rgba(0, 0, 0, 0.34);
    animation: frontierWarEnemyTarget 1.9s ease-in-out infinite;
}

.frontier-war-node.pressure-hotspot:not(.enemy-target)::before {
    border-color: rgba(240, 199, 110, 0.72);
    box-shadow: 0 0 0 3px rgba(240, 199, 110, 0.14), 0 0 22px rgba(240, 199, 110, 0.16), 0 10px 22px rgba(0, 0, 0, 0.34);
}

.frontier-war-node.selected::before {
    border-color: rgba(240, 199, 110, 0.92);
    box-shadow: 0 0 0 3px rgba(240, 199, 110, 0.26), 0 0 34px rgba(240, 199, 110, 0.24), 0 14px 28px rgba(0, 0, 0, 0.36);
}

.frontier-war-node-badges {
    position: absolute;
    left: 50%;
    top: -10px;
    transform: translateX(-50%);
    display: flex;
    gap: 3px;
    min-height: 12px;
    align-items: center;
    pointer-events: none;
    opacity: 0;
    visibility: hidden;
    transition: opacity 140ms ease, visibility 0s linear 140ms;
}

.frontier-war-node:hover .frontier-war-node-badges,
.frontier-war-node.selected .frontier-war-node-badges,
.frontier-war-node.recommended .frontier-war-node-badges,
.frontier-war-node.enemy-target .frontier-war-node-badges,
.frontier-war-node.pressure-hotspot .frontier-war-node-badges {
    opacity: 1;
    visibility: visible;
    transition-delay: 0s;
}

.frontier-war-node-badges.frontier-war-node-badges-empty small {
    opacity: 0.68;
}

.frontier-war-node-badges small {
    display: grid;
    place-items: center;
    min-width: 14px;
    height: 14px;
    padding: 0 3px;
    border-radius: 999px;
    color: #081012;
    background: #f0c76e;
    font-size: 0.48rem;
    font-weight: 800;
    line-height: 1;
}

.frontier-war-node-badges small.success {
    background: #74d6ca;
}

.frontier-war-node-badges small.warning {
    background: #f0c76e;
}

.frontier-war-node-badges small.danger {
    color: #fff7ef;
    background: #d85f5f;
}

.frontier-war-node-badges small.info {
    background: #9bb7df;
}

.frontier-war-map-token-art .frontier-war-routes line {
    stroke-linecap: round;
    filter: drop-shadow(0 0 2px rgba(6, 13, 15, 0.54));
    opacity: 0.34;
}

.frontier-war-map-token-art .frontier-war-routes line[data-route-brush="secured"] {
    stroke: rgba(78, 205, 185, 0.7);
    stroke-width: 1.4px;
}

.frontier-war-map-token-art .frontier-war-routes line[data-route-brush="contested"] {
    stroke: rgba(220, 84, 70, 0.82);
    stroke-width: 1.65px;
    stroke-dasharray: 6 4;
}

.frontier-war-map-token-art .frontier-war-routes line[data-route-brush="active"] {
    stroke: rgba(232, 181, 86, 0.74);
    stroke-width: 1.45px;
}

.frontier-war-map-token-art .frontier-war-routes line[data-route-brush="fogged"] {
    stroke: rgba(193, 203, 197, 0.28);
    stroke-width: 1px;
}

.frontier-war-route-brush-layer {
    position: absolute;
    inset: 0;
    z-index: 4;
    overflow: hidden;
    pointer-events: none;
}

.frontier-war-route-brush {
    position: absolute;
    height: 24px;
    min-width: 28px;
    transform: translate(-50%, -50%) rotate(var(--fw-route-angle, 0deg));
    transform-origin: 50% 50%;
    background-image: url('../images/frontier-war/world-map-route-brushes-v113.png');
    background-repeat: no-repeat;
    background-size: 100% 500%;
    filter: drop-shadow(0 2px 5px rgba(4, 8, 10, 0.36));
    mix-blend-mode: screen;
    opacity: 0.72;
}

.frontier-war-route-brush[data-route-brush="secured"] {
    background-position: center 0%;
    opacity: 0.66;
}

.frontier-war-route-brush[data-route-brush="contested"] {
    background-position: center 25%;
    opacity: 0.84;
}

.frontier-war-route-brush[data-route-brush="active"] {
    background-position: center 50%;
    opacity: 0.76;
}

.frontier-war-route-brush[data-route-brush="fogged"] {
    background-position: center 75%;
    opacity: 0.4;
    filter: grayscale(0.35) drop-shadow(0 1px 3px rgba(4, 8, 10, 0.26));
}

.frontier-war-player-immersive .frontier-war-route-brush[data-route-brush="fogged"] {
    opacity: 0.36;
    filter: none;
    mix-blend-mode: normal;
}

.frontier-war-route-brush[data-route-brush="neutral"] {
    background-position: center 100%;
    opacity: 0.54;
}

.frontier-war-map-player-route-feedback-v1 .frontier-war-route-brush-layer {
    z-index: 4;
}

.frontier-war-map-player-route-feedback-v1 .frontier-war-player-route-feedback {
    --fw-route-accent: #f0c76e;
    --fw-route-accent-rgb: 240, 199, 110;
    --fw-route-deep: #7d4f23;
    --fw-route-ink: #081012;
    position: absolute;
    inset: 0;
    z-index: 8;
    overflow: visible;
    pointer-events: none;
}

.frontier-war-map-player-route-feedback-v1 .frontier-war-node-layer {
    z-index: 6;
}

.frontier-war-map-action-preview-v158 .frontier-war-player-action-preview {
    --fw-preview-accent: #f0c76e;
    --fw-preview-accent-rgb: 240, 199, 110;
    --fw-preview-ink: #081012;
    position: absolute;
    inset: 0;
    z-index: 7;
    overflow: visible;
    pointer-events: none;
}

.frontier-war-map-action-preview-v158 .frontier-war-player-action-preview.warning {
    --fw-preview-accent: #f0c76e;
    --fw-preview-accent-rgb: 240, 199, 110;
}

.frontier-war-map-action-preview-v158 .frontier-war-player-action-preview.danger {
    --fw-preview-accent: #d85f5f;
    --fw-preview-accent-rgb: 216, 95, 95;
    --fw-preview-ink: #fff7ef;
}

.frontier-war-map-action-preview-v158 .frontier-war-player-action-preview-line {
    position: absolute;
    left: var(--fw-preview-x, 50%);
    top: var(--fw-preview-y, 50%);
    z-index: 1;
    width: var(--fw-preview-length, 14%);
    height: 9px;
    transform: translateY(-50%) rotate(var(--fw-preview-angle, 0deg));
    transform-origin: 0 50%;
    border-radius: 999px;
    opacity: 0.62;
    background:
        linear-gradient(90deg, rgba(var(--fw-preview-accent-rgb), 0.1), rgba(var(--fw-preview-accent-rgb), 0.72), rgba(var(--fw-preview-accent-rgb), 0.18)),
        repeating-linear-gradient(90deg, rgba(255, 247, 232, 0.58) 0 9px, transparent 9px 18px);
    filter: drop-shadow(0 0 10px rgba(var(--fw-preview-accent-rgb), 0.34));
    mix-blend-mode: screen;
}

.frontier-war-map-action-preview-v158 .frontier-war-player-action-preview-target {
    position: absolute;
    left: var(--fw-preview-target-x, 50%);
    top: var(--fw-preview-target-y, 50%);
    z-index: 2;
    width: 70px;
    height: 70px;
    transform: translate(-50%, -50%);
    border: 1px dashed rgba(var(--fw-preview-accent-rgb), 0.84);
    border-radius: 999px;
    background: radial-gradient(circle, rgba(var(--fw-preview-accent-rgb), 0.18) 0 34%, transparent 35%);
    box-shadow: 0 0 0 5px rgba(6, 13, 15, 0.18), 0 0 24px rgba(var(--fw-preview-accent-rgb), 0.28);
    animation: frontierWarActionPreviewTarget 1.8s ease-in-out infinite;
}

.frontier-war-map-action-preview-v158 .frontier-war-player-action-preview-card {
    position: absolute;
    left: var(--fw-preview-mid-x, 50%);
    top: var(--fw-preview-mid-y, 50%);
    z-index: 3;
    display: grid;
    gap: 5px;
    width: min(250px, 36vw);
    padding: 9px 10px;
    transform: translate(-50%, -148%);
    border: 1px solid rgba(var(--fw-preview-accent-rgb), 0.44);
    border-radius: 8px;
    color: #f7ead0;
    background:
        radial-gradient(circle at 0 0, rgba(var(--fw-preview-accent-rgb), 0.16), transparent 45%),
        rgba(7, 14, 16, 0.9);
    box-shadow: 0 16px 34px rgba(0, 0, 0, 0.34), inset 0 1px 0 rgba(255, 255, 255, 0.06);
    backdrop-filter: blur(10px);
}

.frontier-war-map-action-preview-v158 .frontier-war-player-action-preview-card > span {
    color: #74d6ca;
    font-size: 0.62rem;
    font-weight: 800;
    letter-spacing: 0;
}

.frontier-war-map-action-preview-v158 .frontier-war-player-action-preview-card strong {
    display: flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
    color: #fff0c2;
    font-size: 0.78rem;
    line-height: 1.22;
}

.frontier-war-map-action-preview-v158 .frontier-war-player-action-preview-card strong i {
    display: grid;
    flex: 0 0 auto;
    place-items: center;
    width: 22px;
    height: 22px;
    border-radius: 999px;
    color: var(--fw-preview-ink);
    background: var(--fw-preview-accent);
    font-style: normal;
    font-size: 0.62rem;
}

.frontier-war-map-action-preview-v158 .frontier-war-player-action-preview-card div {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
}

.frontier-war-map-action-preview-v158 .frontier-war-player-action-preview-card em {
    display: inline-flex;
    max-width: 100%;
    padding: 3px 6px;
    border: 1px solid rgba(179, 224, 212, 0.16);
    border-radius: 999px;
    color: #d8e9e5;
    background: rgba(255, 255, 255, 0.055);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-style: normal;
    font-size: 0.6rem;
    font-weight: 800;
}

.frontier-war-map-action-preview-v158 .frontier-war-player-action-preview-card em.success {
    border-color: rgba(116, 214, 202, 0.34);
    color: #a9eee4;
}

.frontier-war-map-action-preview-v158 .frontier-war-player-action-preview-card em.warning {
    border-color: rgba(240, 199, 110, 0.36);
    color: #f3d99a;
}

.frontier-war-map-action-preview-v158 .frontier-war-player-action-preview-card em.danger {
    border-color: rgba(216, 95, 95, 0.42);
    color: #ffb8ad;
}

.frontier-war-map-player-route-feedback-v1 .frontier-war-player-route-feedback.success {
    --fw-route-accent: #74d6ca;
    --fw-route-accent-rgb: 116, 214, 202;
    --fw-route-deep: #0f5f57;
    --fw-route-ink: #041010;
}

.frontier-war-map-player-route-feedback-v1 .frontier-war-player-route-feedback.captured {
    --fw-route-accent: #f0c76e;
    --fw-route-accent-rgb: 240, 199, 110;
    --fw-route-deep: #8a6127;
    --fw-route-ink: #151006;
}

.frontier-war-map-player-route-feedback-v1 .frontier-war-player-route-feedback.danger {
    --fw-route-accent: #d85f5f;
    --fw-route-accent-rgb: 216, 95, 95;
    --fw-route-deep: #6e2528;
    --fw-route-ink: #fff7ef;
}

.frontier-war-map-player-route-feedback-v1 .frontier-war-player-route-line {
    position: absolute;
    left: var(--fw-route-x, 50%);
    top: var(--fw-route-y, 50%);
    z-index: 1;
    width: var(--fw-route-length, 16%);
    height: 14px;
    transform: translateY(-50%) rotate(var(--fw-route-angle, 0deg)) scaleX(0.08);
    transform-origin: 0 50%;
    border-radius: 999px;
    opacity: 0;
    background:
        radial-gradient(circle at 100% 50%, rgba(var(--fw-route-accent-rgb), 0.92), transparent 24%),
        linear-gradient(90deg, rgba(var(--fw-route-accent-rgb), 0), rgba(var(--fw-route-accent-rgb), 0.78) 52%, rgba(var(--fw-route-accent-rgb), 0.08));
    filter: drop-shadow(0 0 8px rgba(var(--fw-route-accent-rgb), 0.48));
    mix-blend-mode: screen;
    animation: frontierWarPlayerRouteLine 1.35s cubic-bezier(0.18, 0.82, 0.28, 1) both;
}

.frontier-war-map-player-route-feedback-v1 .frontier-war-player-route-line::after {
    content: '';
    position: absolute;
    inset: 6px 4px;
    border-radius: 999px;
    background: repeating-linear-gradient(90deg, rgba(255, 247, 232, 0.88) 0 8px, transparent 8px 18px);
    opacity: 0.72;
    animation: frontierWarPlayerRouteLineSpark 1.12s linear both;
}

.frontier-war-map-player-route-feedback-v1 .frontier-war-player-route-step {
    position: absolute;
    left: var(--fw-step-x, 50%);
    top: var(--fw-step-y, 50%);
    z-index: 4;
    width: 13px;
    height: 13px;
    transform: translate(-50%, -50%) rotate(45deg) scale(0.35);
    border: 1px solid rgba(255, 247, 232, 0.7);
    border-radius: 4px;
    background: linear-gradient(135deg, rgba(255, 239, 171, 0.96), rgba(var(--fw-route-accent-rgb), 0.78));
    box-shadow: 0 0 0 2px rgba(7, 14, 16, 0.24), 0 0 18px rgba(var(--fw-route-accent-rgb), 0.45);
    opacity: 0;
    animation: frontierWarPlayerRouteStep 1.22s calc(120ms + var(--fw-step-index, 0) * 92ms) ease-out both;
}

.frontier-war-map-player-route-feedback-v1 .frontier-war-player-route-token {
    position: absolute;
    left: var(--fw-route-x, 50%);
    top: var(--fw-route-y, 50%);
    z-index: 6;
    display: grid;
    place-items: center;
    width: clamp(76px, 7vw, 108px);
    height: clamp(76px, 7vw, 108px);
    transform: translate(-50%, -50%) scale(0.72);
    opacity: 0;
    filter: drop-shadow(0 12px 18px rgba(0, 0, 0, 0.42)) drop-shadow(0 0 18px rgba(var(--fw-route-accent-rgb), 0.34));
    animation: frontierWarPlayerRouteToken 1.35s cubic-bezier(0.18, 0.82, 0.28, 1) both;
}

.frontier-war-map-player-route-feedback-v1 .frontier-war-player-route-token-art {
    position: absolute;
    inset: -5%;
    width: 110%;
    height: 110%;
    object-fit: contain;
    transform: none;
    transform-origin: 50% 54%;
}

.frontier-war-map-player-route-feedback-v1 .frontier-war-player-route-token b {
    position: absolute;
    right: 7px;
    bottom: 7px;
    display: grid;
    place-items: center;
    width: 22px;
    height: 22px;
    border: 1px solid rgba(255, 247, 232, 0.64);
    border-radius: 999px;
    color: var(--fw-route-ink);
    background:
        radial-gradient(circle at 32% 24%, rgba(255, 255, 255, 0.36), transparent 34%),
        linear-gradient(180deg, var(--fw-route-accent), var(--fw-route-deep));
    box-shadow: 0 0 0 3px rgba(6, 13, 15, 0.24), 0 0 20px rgba(var(--fw-route-accent-rgb), 0.42);
    font-size: 0.6rem;
    font-weight: 800;
    line-height: 1;
}

.frontier-war-map-player-route-feedback-v1 .frontier-war-player-route-target-pulse {
    position: absolute;
    left: var(--fw-route-target-x, 50%);
    top: var(--fw-route-target-y, 50%);
    z-index: 2;
    width: 52px;
    height: 52px;
    transform: translate(-50%, -50%) scale(0.24);
    border: 2px solid rgba(var(--fw-route-accent-rgb), 0.74);
    border-radius: 999px;
    opacity: 0;
    box-shadow: 0 0 0 1px rgba(255, 247, 232, 0.18), 0 0 28px rgba(var(--fw-route-accent-rgb), 0.42);
    animation: frontierWarPlayerRouteTarget 920ms 760ms ease-out both;
}

.frontier-war-map-player-route-feedback-v1 .frontier-war-player-route-impact {
    position: absolute;
    left: var(--fw-route-target-x, 50%);
    top: var(--fw-route-target-y, 50%);
    z-index: 5;
    width: 64px;
    height: 64px;
    transform: translate(-50%, -50%) scale(0.32);
    border-radius: 999px;
    opacity: 0;
    background:
        radial-gradient(circle, rgba(255, 247, 215, 0.86) 0 10%, rgba(var(--fw-route-accent-rgb), 0.45) 11% 34%, transparent 36%),
        conic-gradient(from 18deg, transparent 0 12%, rgba(255, 238, 160, 0.72) 13% 16%, transparent 17% 28%, rgba(var(--fw-route-accent-rgb), 0.65) 29% 33%, transparent 34% 100%);
    filter: drop-shadow(0 0 18px rgba(var(--fw-route-accent-rgb), 0.55));
    animation: frontierWarPlayerRouteImpact 820ms 760ms cubic-bezier(0.16, 0.92, 0.22, 1) both;
}

.frontier-war-map-player-route-feedback-v1 .frontier-war-player-route-reveal {
    position: absolute;
    left: var(--fw-route-target-x, 50%);
    top: var(--fw-route-target-y, 50%);
    z-index: 6;
    display: grid;
    place-items: center;
    width: 72px;
    height: 72px;
    transform: translate(-50%, -50%) scale(0.45);
    border: 1px solid rgba(166, 235, 224, 0.7);
    border-radius: 999px;
    color: #06201d;
    background:
        radial-gradient(circle at 50% 50%, rgba(232, 255, 245, 0.9) 0 16%, rgba(116, 214, 202, 0.5) 17% 34%, transparent 35%),
        repeating-conic-gradient(from 18deg, rgba(232, 255, 245, 0.7) 0deg 12deg, transparent 12deg 32deg);
    box-shadow: 0 0 0 4px rgba(7, 14, 16, 0.18), 0 0 28px rgba(116, 214, 202, 0.52);
    opacity: 0;
    animation: frontierWarPlayerRouteReveal 1.05s 620ms ease-out both;
}

.frontier-war-map-player-route-feedback-v1 .frontier-war-player-route-reveal i {
    display: grid;
    place-items: center;
    width: 24px;
    height: 24px;
    border-radius: 999px;
    background: #d9fff7;
    font-style: normal;
    font-size: 0.7rem;
    font-weight: 900;
}

.frontier-war-map-player-route-feedback-v1 .frontier-war-player-route-ownership {
    position: absolute;
    left: var(--fw-route-target-x, 50%);
    top: var(--fw-route-target-y, 50%);
    z-index: 3;
    width: 88px;
    height: 88px;
    transform: translate(-50%, -50%) scale(0.16);
    border: 2px solid rgba(255, 231, 160, 0.82);
    border-radius: 999px;
    opacity: 0;
    background: radial-gradient(circle, rgba(240, 199, 110, 0.34) 0 34%, rgba(116, 214, 202, 0.28) 35% 62%, transparent 63%);
    box-shadow: inset 0 0 24px rgba(255, 231, 160, 0.24), 0 0 30px rgba(240, 199, 110, 0.46);
    animation: frontierWarPlayerRouteOwnership 900ms 760ms ease-out both;
}

.frontier-war-map-player-route-feedback-v1 .frontier-war-player-route-flag {
    position: absolute;
    left: var(--fw-route-target-x, 50%);
    top: var(--fw-route-target-y, 50%);
    z-index: 7;
    display: grid;
    place-items: center;
    width: 24px;
    height: 24px;
    transform: translate(-50%, -96%) scale(0.42) rotate(-8deg);
    border: 1px solid rgba(255, 247, 232, 0.58);
    border-radius: 6px 6px 6px 2px;
    color: #151006;
    background: linear-gradient(180deg, #ffe7a0, #d8983e);
    box-shadow: 0 8px 16px rgba(0, 0, 0, 0.34), 0 0 18px rgba(240, 199, 110, 0.34);
    opacity: 0;
    font-size: 0.62rem;
    font-weight: 800;
    line-height: 1;
    animation: frontierWarPlayerRouteFlag 660ms 880ms cubic-bezier(0.2, 1.35, 0.3, 1) both;
}

.frontier-war-map-player-route-feedback-v1 .frontier-war-player-route-result-burst {
    position: absolute;
    left: var(--fw-route-mid-x, 50%);
    top: calc(var(--fw-route-mid-y, 50%) - 7%);
    z-index: 10;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 8px;
    align-items: center;
    min-width: min(260px, 42vw);
    max-width: min(340px, 52vw);
    padding: 9px 12px;
    transform: translate(-50%, -50%) scale(0.82);
    border: 1px solid rgba(var(--fw-route-accent-rgb), 0.62);
    border-radius: 8px;
    color: #fff3d2;
    background:
        radial-gradient(circle at 12% 20%, rgba(255, 247, 214, 0.18), transparent 42%),
        linear-gradient(180deg, rgba(23, 24, 18, 0.94), rgba(8, 15, 15, 0.88));
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.42), 0 0 28px rgba(var(--fw-route-accent-rgb), 0.36);
    opacity: 0;
    backdrop-filter: blur(12px);
    animation: frontierWarPlayerRouteResultBurst 1.22s 700ms cubic-bezier(0.2, 1, 0.24, 1) both;
}

.frontier-war-map-player-route-feedback-v1 .frontier-war-player-route-result-burst b {
    display: grid;
    place-items: center;
    min-width: 44px;
    height: 32px;
    padding: 0 8px;
    border-radius: 999px;
    color: #151006;
    background: linear-gradient(180deg, #fff1b2, var(--fw-route-accent));
    box-shadow: 0 0 0 3px rgba(7, 14, 16, 0.2);
    font-size: 0.82rem;
    line-height: 1;
}

.frontier-war-map-player-route-feedback-v1 .frontier-war-player-route-result-burst strong {
    min-width: 0;
    overflow: hidden;
    color: #fff1c4;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 0.78rem;
    line-height: 1.25;
}

.frontier-war-map-player-route-feedback-v1 .frontier-war-player-route-result-burst.captured {
    border-color: rgba(255, 231, 160, 0.7);
    box-shadow: 0 20px 44px rgba(0, 0, 0, 0.46), 0 0 34px rgba(240, 199, 110, 0.46);
}

.frontier-war-map-player-route-feedback-v1 .frontier-war-player-route-callout {
    position: absolute;
    left: var(--fw-route-mid-x, 50%);
    top: var(--fw-route-mid-y, 50%);
    z-index: 5;
    max-width: min(190px, 36vw);
    padding: 5px 8px;
    transform: translate(-50%, -148%) scale(0.94);
    border: 1px solid rgba(var(--fw-route-accent-rgb), 0.42);
    border-radius: 7px;
    color: #fff4d8;
    background: rgba(7, 14, 16, 0.88);
    box-shadow: 0 12px 24px rgba(0, 0, 0, 0.32), inset 0 1px 0 rgba(255, 255, 255, 0.06);
    backdrop-filter: blur(10px);
    opacity: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 0.68rem;
    font-weight: 800;
    animation: frontierWarPlayerRouteCallout 1.28s 180ms ease both;
}

.frontier-war-map-player-route-feedback-v1 .frontier-war-player-route-delta {
    --fw-delta-drift: calc((var(--fw-delta-index, 0) - 0.5) * 46px);
    position: absolute;
    left: calc(var(--fw-route-target-x, 50%) + var(--fw-delta-drift));
    top: var(--fw-route-target-y, 50%);
    z-index: 8;
    max-width: 116px;
    padding: 4px 7px;
    transform: translate(-50%, -88%) scale(0.82);
    border: 1px solid rgba(255, 247, 232, 0.5);
    border-radius: 999px;
    color: #fff7df;
    background: rgba(16, 22, 18, 0.86);
    box-shadow: 0 10px 18px rgba(0, 0, 0, 0.34), 0 0 18px rgba(var(--fw-route-accent-rgb), 0.3);
    opacity: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 0.6rem;
    font-weight: 900;
    animation: frontierWarPlayerRouteDelta 1.02s calc(760ms + var(--fw-delta-index, 0) * 90ms) ease-out both;
}

.frontier-war-map-player-route-feedback-v1 .frontier-war-player-route-delta.damage {
    color: #ffe8d7;
    border-color: rgba(255, 155, 111, 0.54);
    background: rgba(52, 20, 16, 0.86);
}

.frontier-war-map-player-route-feedback-v1 .frontier-war-player-route-delta.calm {
    color: #dcfff4;
    border-color: rgba(116, 214, 202, 0.54);
    background: rgba(10, 36, 33, 0.86);
}

.frontier-war-map-player-route-feedback-v1 .frontier-war-player-route-hud-pulse {
    position: absolute;
    left: var(--fw-route-reward-hud-x, 76%);
    top: var(--fw-route-reward-hud-y, 5%);
    z-index: 8;
    display: grid;
    place-items: center;
    min-width: 46px;
    height: 24px;
    padding: 0 8px;
    transform: translate(-50%, -50%) scale(0.74);
    border: 1px solid rgba(255, 231, 160, 0.58);
    border-radius: 999px;
    color: #151006;
    background: linear-gradient(180deg, #fff2ba, #dba248);
    box-shadow: 0 0 0 4px rgba(7, 14, 16, 0.22), 0 0 24px rgba(240, 199, 110, 0.55);
    opacity: 0;
    font-size: 0.62rem;
    font-weight: 900;
    animation: frontierWarPlayerRouteHudPulse 900ms 1.02s ease-out both;
}

.frontier-war-map-player-route-feedback-v1 .frontier-war-player-route-reward {
    --fw-reward-drift: calc((var(--fw-reward-index, 0) - 1.5) * 30px);
    position: absolute;
    left: calc(var(--fw-route-target-x, 50%) + var(--fw-reward-drift));
    top: var(--fw-route-target-y, 50%);
    z-index: 7;
    max-width: 92px;
    padding: 3px 6px;
    transform: translate(-50%, -62%) scale(0.86);
    border: 1px solid rgba(var(--fw-route-accent-rgb), 0.38);
    border-radius: 999px;
    color: #fff4d8;
    background: rgba(12, 20, 22, 0.82);
    box-shadow: 0 8px 18px rgba(0, 0, 0, 0.3);
    opacity: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 0.58rem;
    font-weight: 800;
    animation: frontierWarPlayerRouteRewardToHud 1.16s calc(980ms + var(--fw-reward-index, 0) * 70ms) ease-out both;
}

@keyframes frontierWarActionPreviewTarget {
    0%, 100% {
        opacity: 0.58;
        transform: translate(-50%, -50%) scale(0.92);
    }
    50% {
        opacity: 0.92;
        transform: translate(-50%, -50%) scale(1.08);
    }
}

@keyframes frontierWarPlayerRouteLine {
    0% {
        opacity: 0;
        transform: translateY(-50%) rotate(var(--fw-route-angle, 0deg)) scaleX(0.08);
    }
    30%, 76% {
        opacity: 0.9;
        transform: translateY(-50%) rotate(var(--fw-route-angle, 0deg)) scaleX(1);
    }
    100% {
        opacity: 0;
        transform: translateY(-50%) rotate(var(--fw-route-angle, 0deg)) scaleX(1);
    }
}

@keyframes frontierWarPlayerRouteLineSpark {
    0% {
        background-position: -28px 0;
        opacity: 0;
    }
    32%, 74% {
        opacity: 0.74;
    }
    100% {
        background-position: 36px 0;
        opacity: 0;
    }
}

@keyframes frontierWarPlayerRouteStep {
    0% {
        opacity: 0;
        transform: translate(-50%, -50%) rotate(45deg) scale(0.28);
    }
    28%, 72% {
        opacity: 1;
        transform: translate(-50%, -50%) rotate(45deg) scale(1);
    }
    100% {
        opacity: 0;
        transform: translate(-50%, -50%) rotate(45deg) scale(0.62);
    }
}

@keyframes frontierWarPlayerRouteToken {
    0% {
        left: var(--fw-route-x, 50%);
        top: var(--fw-route-y, 50%);
        opacity: 0;
        transform: translate(-50%, -50%) scale(0.72);
    }
    12% {
        opacity: 1;
    }
    84% {
        left: var(--fw-route-target-x, 50%);
        top: var(--fw-route-target-y, 50%);
        opacity: 1;
        transform: translate(-50%, -50%) scale(1.04);
    }
    100% {
        left: var(--fw-route-target-x, 50%);
        top: var(--fw-route-target-y, 50%);
        opacity: 0;
        transform: translate(-50%, -50%) scale(0.82);
    }
}

@keyframes frontierWarPlayerRouteTarget {
    0% {
        opacity: 0;
        transform: translate(-50%, -50%) scale(0.24);
    }
    36% {
        opacity: 0.78;
    }
    100% {
        opacity: 0;
        transform: translate(-50%, -50%) scale(1.28);
    }
}

@keyframes frontierWarPlayerRouteImpact {
    0% {
        opacity: 0;
        transform: translate(-50%, -50%) scale(0.28) rotate(-8deg);
    }
    32%, 64% {
        opacity: 0.92;
        transform: translate(-50%, -50%) scale(1.04) rotate(6deg);
    }
    100% {
        opacity: 0;
        transform: translate(-50%, -50%) scale(1.42) rotate(18deg);
    }
}

@keyframes frontierWarPlayerRouteReveal {
    0% {
        opacity: 0;
        transform: translate(-50%, -50%) scale(0.38) rotate(-18deg);
    }
    24%, 68% {
        opacity: 0.92;
        transform: translate(-50%, -50%) scale(1) rotate(8deg);
    }
    100% {
        opacity: 0;
        transform: translate(-50%, -50%) scale(1.42) rotate(22deg);
    }
}

@keyframes frontierWarPlayerRouteOwnership {
    0% {
        opacity: 0;
        transform: translate(-50%, -50%) scale(0.16);
    }
    42%, 76% {
        opacity: 0.8;
        transform: translate(-50%, -50%) scale(1);
    }
    100% {
        opacity: 0;
        transform: translate(-50%, -50%) scale(1.32);
    }
}

@keyframes frontierWarPlayerRouteFlag {
    0% {
        opacity: 0;
        transform: translate(-50%, -78%) scale(0.42) rotate(-10deg);
    }
    68% {
        opacity: 1;
        transform: translate(-50%, -118%) scale(1.08) rotate(4deg);
    }
    100% {
        opacity: 1;
        transform: translate(-50%, -112%) scale(1) rotate(0deg);
    }
}

@keyframes frontierWarPlayerRouteCallout {
    0% {
        opacity: 0;
        transform: translate(-50%, -128%) scale(0.92);
    }
    18%, 78% {
        opacity: 1;
        transform: translate(-50%, -148%) scale(1);
    }
    100% {
        opacity: 0;
        transform: translate(-50%, -162%) scale(0.98);
    }
}

@keyframes frontierWarPlayerRouteResultBurst {
    0% {
        opacity: 0;
        transform: translate(-50%, -50%) scale(0.72);
    }
    18%, 74% {
        opacity: 1;
        transform: translate(-50%, -50%) scale(1);
    }
    100% {
        opacity: 0;
        transform: translate(-50%, -54%) scale(1.06);
    }
}

@keyframes frontierWarPlayerRouteDelta {
    0% {
        opacity: 0;
        transform: translate(-50%, -88%) scale(0.82);
    }
    18%, 72% {
        opacity: 1;
        transform: translate(-50%, -150%) scale(1);
    }
    100% {
        opacity: 0;
        transform: translate(-50%, -192%) scale(0.92);
    }
}

@keyframes frontierWarPlayerRouteHudPulse {
    0% {
        opacity: 0;
        transform: translate(-50%, -50%) scale(0.74);
    }
    28%, 72% {
        opacity: 1;
        transform: translate(-50%, -50%) scale(1);
    }
    100% {
        opacity: 0;
        transform: translate(-50%, -50%) scale(1.16);
    }
}

@keyframes frontierWarPlayerRouteRewardToHud {
    0% {
        opacity: 0;
        left: calc(var(--fw-route-target-x, 50%) + var(--fw-reward-drift));
        top: var(--fw-route-target-y, 50%);
        transform: translate(-50%, -58%) scale(0.84);
    }
    18% {
        opacity: 1;
        left: calc(var(--fw-route-target-x, 50%) + var(--fw-reward-drift));
        top: var(--fw-route-target-y, 50%);
        transform: translate(-50%, -128%) scale(1);
    }
    72% {
        opacity: 1;
        left: var(--fw-route-reward-hud-x, 76%);
        top: var(--fw-route-reward-hud-y, 5%);
        transform: translate(-50%, -50%) scale(0.92);
    }
    100% {
        opacity: 0;
        left: var(--fw-route-reward-hud-x, 76%);
        top: var(--fw-route-reward-hud-y, 5%);
        transform: translate(-50%, -50%) scale(0.76);
    }
}

@media (prefers-reduced-motion: reduce) {
    .frontier-war-map-action-preview-v158 .frontier-war-player-action-preview-target,
    .frontier-war-map-player-route-feedback-v1 .frontier-war-player-route-line,
    .frontier-war-map-player-route-feedback-v1 .frontier-war-player-route-line::after,
    .frontier-war-map-player-route-feedback-v1 .frontier-war-player-route-step,
    .frontier-war-map-player-route-feedback-v1 .frontier-war-player-route-token,
    .frontier-war-map-player-route-feedback-v1 .frontier-war-player-route-target-pulse,
    .frontier-war-map-player-route-feedback-v1 .frontier-war-player-route-impact,
    .frontier-war-map-player-route-feedback-v1 .frontier-war-player-route-reveal,
    .frontier-war-map-player-route-feedback-v1 .frontier-war-player-route-ownership,
    .frontier-war-map-player-route-feedback-v1 .frontier-war-player-route-flag,
    .frontier-war-map-player-route-feedback-v1 .frontier-war-player-route-callout,
    .frontier-war-map-player-route-feedback-v1 .frontier-war-player-route-result-burst,
    .frontier-war-map-player-route-feedback-v1 .frontier-war-player-route-delta,
    .frontier-war-map-player-route-feedback-v1 .frontier-war-player-route-hud-pulse,
    .frontier-war-map-player-route-feedback-v1 .frontier-war-player-route-reward {
        animation: none;
    }

    .frontier-war-map-action-preview-v158 .frontier-war-player-action-preview-target {
        opacity: 0.68;
        transform: translate(-50%, -50%) scale(1);
    }

    .frontier-war-map-player-route-feedback-v1 .frontier-war-player-route-line {
        opacity: 0.72;
        transform: translateY(-50%) rotate(var(--fw-route-angle, 0deg)) scaleX(1);
    }

    .frontier-war-map-player-route-feedback-v1 .frontier-war-player-route-line::after {
        opacity: 0.42;
    }

    .frontier-war-map-player-route-feedback-v1 .frontier-war-player-route-step {
        opacity: 0.82;
        transform: translate(-50%, -50%) rotate(45deg) scale(0.82);
    }

    .frontier-war-map-player-route-feedback-v1 .frontier-war-player-route-token {
        left: var(--fw-route-target-x, 50%);
        top: var(--fw-route-target-y, 50%);
        opacity: 0.92;
        transform: translate(-50%, -50%) scale(0.92);
    }

    .frontier-war-map-player-route-feedback-v1 .frontier-war-player-route-target-pulse {
        opacity: 0.38;
        transform: translate(-50%, -50%) scale(0.88);
    }

    .frontier-war-map-player-route-feedback-v1 .frontier-war-player-route-impact {
        opacity: 0.42;
        transform: translate(-50%, -50%) scale(0.92);
    }

    .frontier-war-map-player-route-feedback-v1 .frontier-war-player-route-reveal {
        opacity: 0.62;
        transform: translate(-50%, -50%) scale(0.92);
    }

    .frontier-war-map-player-route-feedback-v1 .frontier-war-player-route-ownership {
        opacity: 0.48;
        transform: translate(-50%, -50%) scale(1);
    }

    .frontier-war-map-player-route-feedback-v1 .frontier-war-player-route-flag {
        opacity: 1;
        transform: translate(-50%, -112%) scale(1);
    }

    .frontier-war-map-player-route-feedback-v1 .frontier-war-player-route-callout {
        opacity: 1;
        transform: translate(-50%, -148%) scale(1);
    }

    .frontier-war-map-player-route-feedback-v1 .frontier-war-player-route-result-burst {
        opacity: 0.96;
        transform: translate(-50%, -50%) scale(1);
    }

    .frontier-war-map-player-route-feedback-v1 .frontier-war-player-route-delta {
        opacity: 0.96;
        transform: translate(-50%, -150%) scale(1);
    }

    .frontier-war-map-player-route-feedback-v1 .frontier-war-player-route-hud-pulse {
        opacity: 0.96;
        transform: translate(-50%, -50%) scale(1);
    }

    .frontier-war-map-player-route-feedback-v1 .frontier-war-player-route-reward {
        opacity: 0.96;
        transform: translate(-50%, -132%) scale(1);
    }
}

.frontier-war-node-token-art {
    width: 56px;
    min-height: 58px;
    padding: 0;
}

.frontier-war-node-token-art::before {
    inset: 23px 5px 0;
    border-color: rgba(255, 247, 232, 0.22);
    border-radius: 50%;
    background:
        radial-gradient(ellipse at center, rgba(7, 12, 13, 0.9), rgba(7, 12, 13, 0.18) 72%, transparent 73%),
        color-mix(in srgb, var(--fw-accent, #a9b8b6) 18%, rgba(8, 12, 12, 0.84));
    box-shadow: 0 6px 12px rgba(0, 0, 0, 0.36);
}

.frontier-war-node-token-art::after {
    bottom: 1px;
    width: 44px;
    height: 14px;
    opacity: 0.28;
}

.frontier-war-node-art,
.frontier-war-node-art span,
.frontier-war-node-token-art .frontier-war-node-head,
.frontier-war-node-token-art .frontier-war-node-badges {
    position: absolute;
}

.frontier-war-node-art {
    inset: 0;
    z-index: 1;
    display: grid;
    place-items: center;
    pointer-events: none;
}

.frontier-war-node-shadow {
    left: 50%;
    bottom: 4px;
    width: 46px;
    height: 15px;
    transform: translateX(-50%);
    border-radius: 50%;
    background: radial-gradient(ellipse at center, rgba(0, 0, 0, 0.52), transparent 70%);
}

.frontier-war-node-owner-plinth {
    z-index: 0;
    left: 50%;
    bottom: 2px;
    width: 50px;
    height: 18px;
    transform: translateX(-50%);
    border: 1px solid rgba(255, 247, 232, 0.24);
    border-radius: 50%;
    background:
        radial-gradient(ellipse at center, color-mix(in srgb, var(--fw-owner-color, var(--fw-accent, #74d6ca)) 44%, rgba(7, 12, 13, 0.12)), rgba(7, 12, 13, 0.52) 74%, transparent 75%),
        linear-gradient(90deg, rgba(255, 255, 255, 0.08), transparent 34%, rgba(0, 0, 0, 0.22));
    box-shadow: 0 5px 12px rgba(0, 0, 0, 0.42), 0 0 14px color-mix(in srgb, var(--fw-owner-color, var(--fw-accent, #74d6ca)) 22%, transparent);
}

.frontier-war-node-fx-ring {
    z-index: 1;
    left: 50%;
    bottom: 0;
    width: 54px;
    height: 24px;
    transform: translateX(-50%);
    border: 1px solid color-mix(in srgb, var(--fw-fx-color, var(--fw-accent, #f0c76e)) 52%, transparent);
    border-radius: 50%;
    opacity: 0;
    box-shadow: 0 0 18px color-mix(in srgb, var(--fw-fx-color, var(--fw-accent, #f0c76e)) 36%, transparent);
}

.frontier-war-node-building {
    z-index: 2;
    left: 50%;
    bottom: 8px;
    width: 50px;
    height: 46px;
    transform: translateX(-50%);
    border: 0;
    border-radius: 0;
    background-image:
        url('../images/frontier-war/world-map-settlement-production-atlas-v115.png'),
        url('../images/frontier-war/world-map-settlement-atlas-v113.png');
    background-repeat: no-repeat;
    background-size: 400% 400%, 400% 400%;
    background-position: 0% 0%;
    clip-path: none;
    filter:
        drop-shadow(0 1px 0 rgba(255, 244, 216, 0.18))
        drop-shadow(0 7px 9px rgba(0, 0, 0, 0.46))
        drop-shadow(0 0 7px color-mix(in srgb, var(--fw-accent, #74d6ca) 28%, transparent));
}

.frontier-war-map-settlement-production-v115 .frontier-war-node-building {
    bottom: 4px;
    width: 58px;
    height: 54px;
    filter:
        drop-shadow(0 1px 0 rgba(255, 244, 216, 0.2))
        drop-shadow(0 8px 10px rgba(0, 0, 0, 0.52))
        drop-shadow(0 0 9px color-mix(in srgb, var(--fw-accent, #74d6ca) 30%, transparent))
        saturate(1.08)
        contrast(1.04);
}

.frontier-war-map-settlement-production-v115 .frontier-war-node-shadow {
    bottom: 1px;
    width: 58px;
    height: 18px;
    opacity: 0.82;
}

.frontier-war-map-settlement-production-v115 .frontier-war-node-owner-plinth {
    width: 56px;
    height: 19px;
}

.frontier-war-node-building::before,
.frontier-war-node-building::after {
    content: none;
    display: none;
}

.frontier-war-node-banner {
    z-index: 4;
    right: 6px;
    top: 10px;
    width: 14px;
    height: 22px;
    border-left: 2px solid rgba(255, 247, 232, 0.62);
    filter: drop-shadow(0 2px 3px rgba(0, 0, 0, 0.38));
}

.frontier-war-node-banner::before {
    content: '';
    position: absolute;
    left: 1px;
    top: 0;
    width: 13px;
    height: 11px;
    clip-path: polygon(0 0, 100% 8%, 78% 50%, 100% 92%, 0 100%);
    background:
        linear-gradient(90deg, rgba(255, 255, 255, 0.2), transparent 42%),
        var(--fw-owner-color, var(--fw-accent, #74d6ca));
    box-shadow: 0 0 10px color-mix(in srgb, var(--fw-owner-color, var(--fw-accent, #74d6ca)) 54%, transparent);
}

.frontier-war-node-banner::after {
    content: '';
    position: absolute;
    left: 3px;
    top: 2px;
    width: 7px;
    height: 6px;
    border-top: 1px solid rgba(255, 247, 232, 0.5);
    border-bottom: 1px solid rgba(6, 13, 15, 0.22);
    opacity: 0.62;
}

.frontier-war-node-spark {
    z-index: 1;
    left: 50%;
    top: 4px;
    width: 48px;
    height: 34px;
    transform: translateX(-50%);
    border-radius: 50%;
    background: radial-gradient(circle at 50% 45%, color-mix(in srgb, var(--fw-accent, #74d6ca) 28%, transparent), transparent 68%);
    opacity: 0.2;
}

.frontier-war-node-fx-burst {
    z-index: 3;
    left: 50%;
    top: 3px;
    width: 54px;
    height: 44px;
    transform: translateX(-50%) scale(0.92);
    border-radius: 50%;
    opacity: 0;
    background:
        radial-gradient(circle at 50% 45%, color-mix(in srgb, var(--fw-fx-color, #f0c76e) 34%, transparent), transparent 58%),
        conic-gradient(from 20deg, transparent 0 14%, color-mix(in srgb, var(--fw-fx-color, #f0c76e) 44%, transparent) 15% 19%, transparent 20% 38%, color-mix(in srgb, var(--fw-fx-color, #f0c76e) 34%, transparent) 39% 42%, transparent 43% 100%);
    mix-blend-mode: screen;
    filter: drop-shadow(0 0 8px color-mix(in srgb, var(--fw-fx-color, #f0c76e) 42%, transparent));
}

.frontier-war-node-token-art .frontier-war-node-head {
    z-index: 2;
    right: -1px;
    bottom: 1px;
}

.frontier-war-node-token-art .frontier-war-node-seal {
    width: 18px;
    height: 18px;
    font-size: 0.46rem;
    box-shadow: 0 0 0 1px rgba(6, 13, 15, 0.34);
}

.frontier-war-node-token-art .frontier-war-node-type {
    right: auto;
    left: -16px;
    bottom: -1px;
    width: 15px;
    height: 15px;
}

.frontier-war-node-token-art .frontier-war-node-copy,
.frontier-war-node-token-art .frontier-war-node-badges {
    z-index: 4;
}

.frontier-war-node-token-art.owner-enemy .frontier-war-node-banner::before {
    background: #d85f5f;
}

.frontier-war-node-token-art.owner-neutral .frontier-war-node-banner::before {
    background: #d2d9cd;
}

.frontier-war-node-token-art.owner-fog .frontier-war-node-art {
    opacity: 0.44;
    filter: grayscale(0.65);
}

.frontier-war-node-token-art.skin-player {
    --fw-owner-color: #74d6ca;
}

.frontier-war-node-token-art.skin-enemy {
    --fw-owner-color: #d85f5f;
}

.frontier-war-node-token-art.skin-neutral {
    --fw-owner-color: #d2d9cd;
}

.frontier-war-node-token-art.skin-contested {
    --fw-owner-color: #f0c76e;
}

.frontier-war-node-token-art.skin-fog {
    --fw-owner-color: #9aa4a0;
}

.frontier-war-node-token-art.owner-enemy .frontier-war-node-owner-plinth,
.frontier-war-node-token-art.skin-enemy .frontier-war-node-owner-plinth {
    background:
        radial-gradient(ellipse at center, rgba(216, 95, 95, 0.42), rgba(57, 18, 18, 0.68) 72%, transparent 73%),
        linear-gradient(90deg, rgba(255, 255, 255, 0.08), transparent 34%, rgba(0, 0, 0, 0.24));
}

.frontier-war-node-token-art.skin-contested .frontier-war-node-owner-plinth {
    border-style: dashed;
    animation: frontierWarOccupationTension 2.6s ease-in-out infinite;
}

.frontier-war-node-token-art.skin-fog .frontier-war-node-banner {
    opacity: 0.28;
}

.frontier-war-node-token-art.fx-selected,
.frontier-war-node-token-art.fx-build,
.frontier-war-node-token-art.fx-garrison {
    --fw-fx-color: #74d6ca;
}

.frontier-war-node-token-art.fx-attack,
.frontier-war-node-token-art.fx-raid,
.frontier-war-node-token-art.fx-pressure {
    --fw-fx-color: #f06d5c;
}

.frontier-war-node-token-art.fx-scheme,
.frontier-war-node-token-art.fx-scout {
    --fw-fx-color: #b49bff;
}

.frontier-war-node-token-art.fx-frontline {
    --fw-fx-color: #f0c76e;
}

.frontier-war-node-token-art.fx-selected .frontier-war-node-fx-ring,
.frontier-war-node-token-art.fx-attack .frontier-war-node-fx-ring,
.frontier-war-node-token-art.fx-raid .frontier-war-node-fx-ring,
.frontier-war-node-token-art.fx-scheme .frontier-war-node-fx-ring,
.frontier-war-node-token-art.fx-garrison .frontier-war-node-fx-ring,
.frontier-war-node-token-art.fx-build .frontier-war-node-fx-ring,
.frontier-war-node-token-art.fx-scout .frontier-war-node-fx-ring,
.frontier-war-node-token-art.fx-pressure .frontier-war-node-fx-ring,
.frontier-war-node-token-art.fx-frontline .frontier-war-node-fx-ring {
    opacity: 0.58;
    animation: frontierWarFxRing 2.2s ease-in-out infinite;
}

.frontier-war-node-token-art.fx-attack .frontier-war-node-fx-burst,
.frontier-war-node-token-art.fx-raid .frontier-war-node-fx-burst,
.frontier-war-node-token-art.fx-scheme .frontier-war-node-fx-burst,
.frontier-war-node-token-art.fx-pressure .frontier-war-node-fx-burst {
    opacity: 0.72;
    animation: frontierWarFxBurst 1.8s ease-in-out infinite;
}

.frontier-war-node-token-art.fx-build .frontier-war-node-fx-burst,
.frontier-war-node-token-art.fx-garrison .frontier-war-node-fx-burst,
.frontier-war-node-token-art.fx-selected .frontier-war-node-fx-burst,
.frontier-war-node-token-art.fx-frontline .frontier-war-node-fx-burst {
    opacity: 0.42;
}

.frontier-war-map-occupation-fx .frontier-war-node-banner {
    right: 0;
    top: 0;
    width: 24px;
    height: 36px;
    border-left: 0;
    background-image: url('../images/frontier-war/world-map-ownership-banners-v114.png');
    background-repeat: no-repeat;
    background-size: 500% 100%;
    background-position: 0% 50%;
    filter:
        drop-shadow(0 3px 4px rgba(0, 0, 0, 0.46))
        drop-shadow(0 0 6px color-mix(in srgb, var(--fw-owner-color, var(--fw-accent, #74d6ca)) 32%, transparent));
}

.frontier-war-map-occupation-fx .frontier-war-node-banner::before,
.frontier-war-map-occupation-fx .frontier-war-node-banner::after {
    content: none;
    display: none;
}

.frontier-war-node-token-art.skin-player .frontier-war-node-banner { background-position: 0% 50%; }
.frontier-war-node-token-art.skin-enemy .frontier-war-node-banner { background-position: 25% 50%; }
.frontier-war-node-token-art.skin-neutral .frontier-war-node-banner { background-position: 50% 50%; }
.frontier-war-node-token-art.skin-contested .frontier-war-node-banner { background-position: 75% 50%; }
.frontier-war-node-token-art.skin-fog .frontier-war-node-banner { background-position: 100% 50%; }

.frontier-war-map-occupation-fx .frontier-war-node-fx-burst {
    top: 8px;
    width: 46px;
    height: 34px;
    background-image: url('../images/frontier-war/world-map-combat-fx-v114.png');
    background-repeat: no-repeat;
    background-size: 400% 300%;
    background-position: 0% 0%;
    opacity: 0;
    filter:
        drop-shadow(0 0 8px color-mix(in srgb, var(--fw-fx-color, #f0c76e) 44%, transparent))
        saturate(1.08);
}

.frontier-war-node-token-art.fx-idle .frontier-war-node-fx-burst { background-position: 0% 0%; opacity: 0; }
.frontier-war-node-token-art.fx-selected .frontier-war-node-fx-burst { background-position: 33.333% 0%; opacity: 0.38; }
.frontier-war-node-token-art.fx-attack .frontier-war-node-fx-burst { background-position: 66.666% 0%; opacity: 0.48; }
.frontier-war-node-token-art.fx-raid .frontier-war-node-fx-burst { background-position: 100% 0%; opacity: 0.46; }
.frontier-war-node-token-art.fx-scheme .frontier-war-node-fx-burst { background-position: 0% 50%; opacity: 0.44; }
.frontier-war-node-token-art.fx-garrison .frontier-war-node-fx-burst { background-position: 33.333% 50%; opacity: 0.34; }
.frontier-war-node-token-art.fx-build .frontier-war-node-fx-burst { background-position: 66.666% 50%; opacity: 0.34; }
.frontier-war-node-token-art.fx-scout .frontier-war-node-fx-burst { background-position: 100% 50%; opacity: 0.3; }
.frontier-war-node-token-art.fx-pressure .frontier-war-node-fx-burst { background-position: 0% 100%; opacity: 0.46; }
.frontier-war-node-token-art.fx-frontline .frontier-war-node-fx-burst { background-position: 33.333% 100%; opacity: 0.28; }
.frontier-war-node-token-art.fx-fog .frontier-war-node-fx-burst { background-position: 66.666% 100%; opacity: 0.08; }

.frontier-war-player-immersive .frontier-war-node-token-art.fx-fog .frontier-war-node-fx-burst {
    opacity: 0.07;
    filter: none;
    mix-blend-mode: normal;
}

.frontier-war-render-smooth .frontier-war-map-paint,
.frontier-war-render-smooth .frontier-war-node-building,
.frontier-war-render-smooth .frontier-war-map-settlement-production-v115 .frontier-war-node-building,
.frontier-war-render-smooth .frontier-war-map-occupation-fx .frontier-war-node-banner,
.frontier-war-render-smooth .frontier-war-map-landmark,
.frontier-war-render-smooth .frontier-war-map-fireline,
.frontier-war-render-smooth .frontier-war-region-overlay-brush,
.frontier-war-render-smooth .frontier-war-territory {
    filter: none;
}

.frontier-war-render-smooth .frontier-war-node,
.frontier-war-render-smooth .frontier-war-node-copy,
.frontier-war-render-smooth .frontier-war-node-badges,
.frontier-war-render-smooth .frontier-war-player-action-grid button {
    transition: none;
}

.frontier-war-render-smooth .frontier-war-node:hover {
    transform: translate(-50%, -50%);
    z-index: 8;
}

.frontier-war-render-smooth .frontier-war-node:hover .frontier-war-node-copy,
.frontier-war-render-smooth .frontier-war-node.selected .frontier-war-node-copy,
.frontier-war-render-smooth .frontier-war-node.recommended .frontier-war-node-copy,
.frontier-war-render-smooth .frontier-war-node.enemy-target .frontier-war-node-copy {
    transform: translateX(-50%);
}

.frontier-war-render-smooth .frontier-war-player-action-grid button:hover {
    transform: none;
}

.frontier-war-render-smooth .frontier-war-routes line.contested,
.frontier-war-render-smooth .frontier-war-node.recommended::before,
.frontier-war-render-smooth .frontier-war-node.frontline:not(.recommended)::before,
.frontier-war-render-smooth .frontier-war-node.danger::before,
.frontier-war-render-smooth .frontier-war-node.enemy-target::before,
.frontier-war-render-smooth .frontier-war-node-token-art.skin-contested .frontier-war-node-owner-plinth,
.frontier-war-render-smooth .frontier-war-node-token-art.fx-selected .frontier-war-node-fx-ring,
.frontier-war-render-smooth .frontier-war-node-token-art.fx-attack .frontier-war-node-fx-ring,
.frontier-war-render-smooth .frontier-war-node-token-art.fx-raid .frontier-war-node-fx-ring,
.frontier-war-render-smooth .frontier-war-node-token-art.fx-scheme .frontier-war-node-fx-ring,
.frontier-war-render-smooth .frontier-war-node-token-art.fx-garrison .frontier-war-node-fx-ring,
.frontier-war-render-smooth .frontier-war-node-token-art.fx-build .frontier-war-node-fx-ring,
.frontier-war-render-smooth .frontier-war-node-token-art.fx-scout .frontier-war-node-fx-ring,
.frontier-war-render-smooth .frontier-war-node-token-art.fx-pressure .frontier-war-node-fx-ring,
.frontier-war-render-smooth .frontier-war-node-token-art.fx-frontline .frontier-war-node-fx-ring,
.frontier-war-render-smooth .frontier-war-node-token-art.fx-attack .frontier-war-node-fx-burst,
.frontier-war-render-smooth .frontier-war-node-token-art.fx-raid .frontier-war-node-fx-burst,
.frontier-war-render-smooth .frontier-war-node-token-art.fx-scheme .frontier-war-node-fx-burst,
.frontier-war-render-smooth .frontier-war-node-token-art.fx-pressure .frontier-war-node-fx-burst,
.frontier-war-render-smooth .frontier-war-report-steps div {
    animation: none;
}

.frontier-war-render-smooth .frontier-war-node-fx-ring,
.frontier-war-render-smooth .frontier-war-node-fx-burst,
.frontier-war-render-smooth .frontier-war-route-brush {
    filter: none;
    mix-blend-mode: normal;
}

.frontier-war-render-smooth .frontier-war-node-fx-ring {
    box-shadow: none;
    opacity: 0.34;
}

.frontier-war-render-smooth .frontier-war-node-token-art.fx-attack .frontier-war-node-fx-burst,
.frontier-war-render-smooth .frontier-war-node-token-art.fx-raid .frontier-war-node-fx-burst,
.frontier-war-render-smooth .frontier-war-node-token-art.fx-scheme .frontier-war-node-fx-burst,
.frontier-war-render-smooth .frontier-war-node-token-art.fx-pressure .frontier-war-node-fx-burst {
    opacity: 0.32;
}

.frontier-war-render-smooth .frontier-war-node-token-art.fx-fog .frontier-war-node-fx-burst {
    display: none;
}

.frontier-war-render-smooth .frontier-war-player-info-drawer,
.frontier-war-render-smooth .frontier-war-player-command-dock .frontier-war-player-actions,
.frontier-war-render-smooth .frontier-war-player-command-dock .frontier-war-player-node,
.frontier-war-render-smooth .frontier-war-player-objective-dock .frontier-war-player-goal,
.frontier-war-render-smooth .frontier-war-player-objective-dock .frontier-war-battle-report,
.frontier-war-render-smooth .frontier-war-player-action-flash {
    backdrop-filter: none;
}

.frontier-war-render-smooth .frontier-war-player-action-flash {
    animation: frontierWarPlayerActionFlashSmooth 880ms linear both;
}

@keyframes frontierWarPlayerActionFlashSmooth {
    0%, 100% {
        opacity: 0;
    }
    18%, 78% {
        opacity: 1;
    }
}

.frontier-war-node-token-art.node-kind-headquarters .frontier-war-node-building { background-position: 0% 0%; }
.frontier-war-node-token-art.node-kind-town .frontier-war-node-building { background-position: 33.333% 0%; }
.frontier-war-node-token-art.node-kind-pass .frontier-war-node-building { background-position: 66.666% 0%; }
.frontier-war-node-token-art.node-kind-ferry .frontier-war-node-building { background-position: 100% 0%; }
.frontier-war-node-token-art.node-kind-camp .frontier-war-node-building { background-position: 0% 33.333%; }
.frontier-war-node-token-art.node-kind-mine .frontier-war-node-building { background-position: 33.333% 33.333%; }
.frontier-war-node-token-art.node-kind-secret .frontier-war-node-building { background-position: 66.666% 33.333%; }
.frontier-war-node-token-art.node-kind-sect .frontier-war-node-building { background-position: 100% 33.333%; }
.frontier-war-node-token-art.node-kind-island .frontier-war-node-building { background-position: 0% 66.666%; }
.frontier-war-node-token-art.node-kind-inn .frontier-war-node-building { background-position: 33.333% 66.666%; }
.frontier-war-node-token-art.node-kind-fortress .frontier-war-node-building { background-position: 66.666% 66.666%; }
.frontier-war-node-token-art.node-kind-capital .frontier-war-node-building { background-position: 100% 66.666%; }
.frontier-war-node-token-art.node-kind-altar .frontier-war-node-building { background-position: 0% 100%; }
.frontier-war-node-token-art.node-kind-valley .frontier-war-node-building { background-position: 33.333% 100%; }
.frontier-war-node-token-art.node-kind-cave .frontier-war-node-building { background-position: 66.666% 100%; }
.frontier-war-node-token-art.node-kind-harbor .frontier-war-node-building { background-position: 100% 100%; }

.frontier-war-side {
    display: flex;
    flex-direction: column;
    gap: 14px;
    position: sticky;
    top: 12px;
    max-height: calc(100vh - 24px);
    overflow-y: auto;
    padding-right: 2px;
}

.frontier-war-detail-head {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: flex-start;
    margin-bottom: 10px;
}

.frontier-war-detail-head h4 {
    margin: 3px 0 0;
    color: #f2e6c7;
    font-size: 1.2rem;
}

.owner-badge {
    flex: 0 0 auto;
    padding: 4px 9px;
    border-radius: 999px;
    font-size: 0.78rem;
}

.owner-badge.owner-player {
    color: #081012;
    background: #74d6ca;
}

.owner-badge.owner-neutral {
    color: #0c1315;
    background: #d2d9cd;
}

.owner-badge.owner-enemy {
    color: #fff7ef;
    background: #d85f5f;
}

.frontier-war-detail-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin: 12px 0;
}

.frontier-war-detail-grid div {
    min-width: 0;
    padding: 9px;
    border: 1px solid rgba(179, 224, 212, 0.12);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.045);
}

.frontier-war-detail-grid strong {
    color: #f2e6c7;
    font-size: 1rem;
}

.frontier-war-state-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin: 2px 0 10px;
}

.frontier-war-state-tags span {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    min-height: 24px;
    padding: 3px 7px 3px 4px;
    border: 1px solid rgba(240, 199, 110, 0.22);
    border-radius: 999px;
    color: #c8d7d4;
    background: rgba(240, 199, 110, 0.06);
    font-size: 0.72rem;
}

.frontier-war-state-tags b {
    display: grid;
    place-items: center;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    color: #081012;
    background: #f0c76e;
    font-size: 0.62rem;
}

.frontier-war-state-tags span.success {
    border-color: rgba(116, 214, 202, 0.28);
    background: rgba(116, 214, 202, 0.07);
}

.frontier-war-state-tags span.success b {
    background: #74d6ca;
}

.frontier-war-state-tags span.warning {
    border-color: rgba(240, 199, 110, 0.28);
    background: rgba(240, 199, 110, 0.07);
}

.frontier-war-state-tags span.warning b {
    background: #f0c76e;
}

.frontier-war-state-tags span.danger {
    border-color: rgba(216, 95, 95, 0.32);
    background: rgba(216, 95, 95, 0.08);
}

.frontier-war-state-tags span.danger b {
    color: #fff7ef;
    background: #d85f5f;
}

.frontier-war-state-tags span.info {
    border-color: rgba(155, 183, 223, 0.26);
    background: rgba(155, 183, 223, 0.07);
}

.frontier-war-state-tags span.info b {
    background: #9bb7df;
}

.frontier-war-conquest-feedback {
    position: relative;
    min-height: 122px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px;
    align-items: end;
    margin: 10px 0;
    padding: 13px;
    overflow: hidden;
    border: 1px solid color-mix(in srgb, var(--fw-feedback, #f0c76e) 42%, rgba(255, 255, 255, 0.08));
    border-radius: 8px;
    background:
        linear-gradient(90deg, rgba(5, 10, 12, 0.9), rgba(5, 10, 12, 0.46) 48%, rgba(5, 10, 12, 0.88)),
        url('../images/frontier-war/conquest-feedback-banner-v20.png') center / cover no-repeat;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.05), 0 14px 30px rgba(0, 0, 0, 0.28);
    animation: frontierWarFeedbackIn 420ms ease-out both;
}

.frontier-war-conquest-feedback::before,
.frontier-war-conquest-feedback::after {
    content: '';
    position: absolute;
    pointer-events: none;
}

.frontier-war-conquest-feedback::before {
    inset: 0;
    background:
        radial-gradient(circle at 18% 18%, color-mix(in srgb, var(--fw-feedback, #f0c76e) 30%, transparent), transparent 34%),
        linear-gradient(110deg, transparent 0 28%, rgba(255, 247, 224, 0.18) 42%, transparent 58% 100%);
    opacity: 0.68;
    mix-blend-mode: screen;
    animation: frontierWarFeedbackSweep 3.8s ease-in-out infinite;
}

.frontier-war-conquest-feedback::after {
    left: 13px;
    right: 13px;
    bottom: 8px;
    height: 1px;
    background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--fw-feedback, #f0c76e) 72%, transparent), transparent);
    opacity: 0.72;
}

.frontier-war-conquest-feedback > div {
    position: relative;
    z-index: 1;
    min-width: 0;
}

.frontier-war-conquest-feedback span,
.frontier-war-conquest-feedback strong,
.frontier-war-conquest-feedback p {
    display: block;
    min-width: 0;
}

.frontier-war-conquest-feedback span {
    color: #c8d7d4;
    font-size: 0.72rem;
}

.frontier-war-conquest-feedback strong {
    margin: 3px 0 5px;
    color: #f2e6c7;
    font-size: 1.02rem;
    text-shadow: 0 2px 10px rgba(0, 0, 0, 0.58);
}

.frontier-war-conquest-feedback p {
    margin: 0;
    color: #dbe7e3;
    font-size: 0.8rem;
    line-height: 1.38;
    overflow-wrap: anywhere;
}

.frontier-war-feedback-runes {
    display: flex;
    gap: 6px;
    align-self: start;
}

.frontier-war-feedback-runes i {
    display: grid;
    place-items: center;
    width: 28px;
    height: 28px;
    border: 1px solid color-mix(in srgb, var(--fw-feedback, #f0c76e) 58%, rgba(255, 255, 255, 0.14));
    border-radius: 50%;
    color: #081012;
    background:
        radial-gradient(circle at 34% 26%, rgba(255, 247, 232, 0.76), transparent 34%),
        var(--fw-feedback, #f0c76e);
    box-shadow: 0 0 0 2px rgba(6, 13, 15, 0.36), 0 8px 18px rgba(0, 0, 0, 0.26);
    font-style: normal;
    font-weight: 900;
    font-size: 0.68rem;
    animation: frontierWarRunePop 520ms ease-out both;
}

.frontier-war-feedback-runes i:nth-child(2) {
    animation-delay: 90ms;
}

.frontier-war-feedback-runes i:nth-child(3) {
    animation-delay: 180ms;
}

.frontier-war-feedback-meter {
    grid-column: 1 / -1;
    height: 5px;
    overflow: hidden;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.1);
}

.frontier-war-feedback-meter b {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, color-mix(in srgb, var(--fw-feedback, #f0c76e) 72%, #d85f5f), var(--fw-feedback, #f0c76e), #74d6ca);
    box-shadow: 0 0 16px color-mix(in srgb, var(--fw-feedback, #f0c76e) 50%, transparent);
    animation: frontierWarMeterFill 720ms ease-out both;
}

.frontier-war-conquest-feedback.secured {
    --fw-feedback: #74d6ca;
}

.frontier-war-conquest-feedback.danger {
    --fw-feedback: #d85f5f;
}

.frontier-war-chance {
    margin: 10px 0;
}

.frontier-war-chance strong {
    display: block;
    margin: 2px 0 6px;
    color: #f0c76e;
    font-size: 1.15rem;
}

.frontier-war-chance div {
    height: 8px;
    overflow: hidden;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.09);
}

.frontier-war-chance i {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #d85f5f, #f0c76e, #74d6ca);
}

.frontier-war-forecast {
    display: grid;
    gap: 8px;
    margin: 10px 0;
    padding: 10px;
    border: 1px solid rgba(179, 224, 212, 0.13);
    border-radius: 8px;
    background: rgba(255,255,255,0.045);
}

.frontier-war-forecast-head {
    display: grid;
    gap: 4px;
}

.frontier-war-forecast-head strong {
    color: #f2e6c7;
}

.frontier-war-forecast-head span,
.frontier-war-forecast p,
.frontier-war-forecast-grid em {
    color: #a9b8b6;
    font-size: 0.78rem;
    line-height: 1.38;
}

.frontier-war-forecast p {
    margin: 0;
    color: #d7e2de;
}

.frontier-war-forecast-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 6px;
}

.frontier-war-forecast-grid div {
    min-width: 0;
    padding: 7px;
    border: 1px solid rgba(179, 224, 212, 0.12);
    border-radius: 8px;
    background: rgba(6, 13, 15, 0.62);
}

.frontier-war-forecast-grid span,
.frontier-war-forecast-grid strong,
.frontier-war-forecast-grid em {
    display: block;
    overflow-wrap: anywhere;
}

.frontier-war-forecast-grid span {
    color: #a9b8b6;
    font-size: 0.68rem;
}

.frontier-war-forecast-grid strong {
    margin: 3px 0 1px;
    color: #f2e6c7;
    font-size: 0.86rem;
}

.frontier-war-forecast-grid .success strong {
    color: #74d6ca;
}

.frontier-war-forecast-grid .warning strong {
    color: #f0c76e;
}

.frontier-war-forecast-grid .danger strong {
    color: #d85f5f;
}

.frontier-war-forecast-risks {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
}

.frontier-war-forecast-risks span {
    padding: 3px 7px;
    border: 1px solid rgba(216, 95, 95, 0.28);
    border-radius: 999px;
    color: #f2d6d6;
    background: rgba(216, 95, 95, 0.08);
    font-size: 0.7rem;
}

.frontier-war-relation {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
    padding: 8px 10px;
    border-radius: 8px;
    background: rgba(255,255,255,0.05);
}

.frontier-war-relation.friendly strong {
    color: #74d6ca;
}

.frontier-war-relation.neutral strong {
    color: #f0c76e;
}

.frontier-war-relation.hostile strong {
    color: #d85f5f;
}

.frontier-war-actions {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(112px, 1fr));
    gap: 8px;
    margin-top: 12px;
}

.frontier-war-action {
    min-height: 58px;
    padding: 8px 10px;
    display: grid;
    grid-template-columns: 30px minmax(0, 1fr);
    gap: 8px;
    align-items: center;
    text-align: left;
    min-width: 0;
    overflow-wrap: anywhere;
}

.frontier-war-action-copy,
.frontier-war-action-copy strong,
.frontier-war-action-copy span {
    display: block;
    min-width: 0;
}

.frontier-war-action-icon {
    display: grid;
    place-items: center;
    width: 30px;
    height: 30px;
    border: 1px solid rgba(240, 199, 110, 0.38);
    border-radius: 50%;
    color: #081012;
    background:
        radial-gradient(circle at 35% 28%, rgba(255, 247, 232, 0.72), transparent 34%),
        #f0c76e;
    box-shadow: 0 0 0 2px rgba(6, 13, 15, 0.34), 0 6px 14px rgba(0, 0, 0, 0.24);
    font-style: normal;
    font-weight: 900;
    font-size: 0.72rem;
    line-height: 1;
}

.frontier-war-action strong {
    color: #f2e6c7;
}

.frontier-war-action-copy > span {
    margin-top: 3px;
    font-size: 0.76rem;
    line-height: 1.32;
}

.frontier-war-action.primary {
    border-color: rgba(240, 199, 110, 0.52);
    background: rgba(240, 199, 110, 0.13);
}

.frontier-war-action.primary .frontier-war-action-icon {
    animation: frontierWarActionToken 2.4s ease-in-out infinite;
}

.frontier-war-action:disabled {
    cursor: not-allowed;
    opacity: 0.48;
}

.frontier-war-hero-list,
.frontier-war-log-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.frontier-war-hero-card {
    padding: 10px;
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(110px, 1fr);
    gap: 10px;
    border: 1px solid rgba(179, 224, 212, 0.12);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.045);
}

.frontier-war-hero-card.deployed {
    border-color: rgba(240, 199, 110, 0.38);
    background: rgba(240, 199, 110, 0.08);
}

.frontier-war-hero-card.injured {
    border-color: rgba(216, 95, 95, 0.36);
}

.frontier-war-hero-card strong {
    display: block;
    color: #f2e6c7;
}

.frontier-war-hero-card em {
    display: block;
    margin-top: 6px;
    color: #74d6ca;
    font-style: normal;
    font-size: 0.72rem;
    line-height: 1.35;
}

.frontier-war-hero-toggle {
    margin-top: 8px;
    min-height: 26px;
    padding: 4px 8px;
    border: 1px solid rgba(116, 214, 202, 0.28);
    border-radius: 8px;
    color: #e9f1ef;
    background: rgba(116, 214, 202, 0.08);
    cursor: pointer;
}

.frontier-war-hero-toggle:hover {
    border-color: rgba(116, 214, 202, 0.62);
}

.frontier-war-hero-bars {
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr);
    gap: 3px 6px;
    align-items: center;
    font-size: 0.72rem;
    color: #a9b8b6;
}

.frontier-war-hero-bars i {
    display: block;
    height: 6px;
    overflow: hidden;
    border-radius: 999px;
    background: rgba(255,255,255,0.08);
}

.frontier-war-hero-bars b {
    display: block;
    height: 100%;
    background: #74d6ca;
}

.frontier-war-hero-bars .rivalry b {
    background: #d85f5f;
}

.frontier-war-bottom {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
    margin-top: 14px;
}

.frontier-war-workbench-tabs {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 10px;
    min-width: 0;
}

.frontier-war-workbench-tab {
    min-width: 0;
    min-height: 62px;
    padding: 10px 12px;
    border: 1px solid rgba(179, 224, 212, 0.16);
    border-radius: 8px;
    color: #d7e2de;
    text-align: left;
    background:
        linear-gradient(180deg, rgba(15, 26, 28, 0.94), rgba(7, 14, 16, 0.92)),
        radial-gradient(circle at 100% 0%, rgba(116, 214, 202, 0.08), transparent 42%);
    cursor: pointer;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
    transition: border-color 0.2s ease, background 0.2s ease, transform 0.2s ease;
}

.frontier-war-workbench-tab:hover {
    border-color: rgba(240, 199, 110, 0.38);
    background: rgba(240, 199, 110, 0.08);
    transform: translateY(-1px);
}

.frontier-war-workbench-tab.active {
    border-color: rgba(240, 199, 110, 0.58);
    background:
        linear-gradient(135deg, rgba(240, 199, 110, 0.16), rgba(116, 214, 202, 0.08)),
        rgba(7, 14, 16, 0.94);
    box-shadow: inset 0 0 0 1px rgba(240, 199, 110, 0.08), 0 12px 28px rgba(0, 0, 0, 0.24);
}

.frontier-war-workbench-tab span,
.frontier-war-workbench-tab strong {
    display: block;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.frontier-war-workbench-tab span {
    color: #f2e6c7;
    font-weight: 800;
}

.frontier-war-workbench-tab strong {
    margin-top: 5px;
    color: #a9b8b6;
    font-size: 0.82rem;
    font-weight: 500;
}

.frontier-war-workbench-deck {
    min-width: 0;
}

.frontier-war-workbench-page {
    display: none;
    min-width: 0;
}

.frontier-war-workbench-page.active {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 12px;
}

.frontier-war-workbench-page-board.active {
    display: block;
}

.frontier-war-workbench-page-player.active {
    display: block;
}

.frontier-war-workbench-page-council.active {
    display: block;
}

.frontier-war-workbench-page-council.active > .frontier-war-confirm-stack-trace-jump-panel,
.frontier-war-workbench-page-council.active > .frontier-war-confirm-stack-outcome-echo-panel,
.frontier-war-workbench-page-council.active > .frontier-war-confirm-stack-commit-highlight-panel,
.frontier-war-workbench-page-council.active > .frontier-war-command {
    grid-column: 1 / -1;
}

.frontier-war-council-briefing {
    display: grid;
    gap: 12px;
}

.frontier-war-council-topline {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.frontier-war-council-topline article,
.frontier-war-council-side article {
    min-width: 0;
    padding: 12px;
    border: 1px solid rgba(179, 224, 212, 0.14);
    border-radius: 8px;
    background:
        radial-gradient(circle at 0 0, rgba(240, 199, 110, 0.08), transparent 36%),
        rgba(255, 255, 255, 0.045);
}

.frontier-war-council-topline article.success {
    border-color: rgba(116, 214, 202, 0.34);
}

.frontier-war-council-topline article.warning {
    border-color: rgba(240, 199, 110, 0.36);
}

.frontier-war-council-topline article.danger {
    border-color: rgba(216, 95, 95, 0.4);
}

.frontier-war-council-topline span,
.frontier-war-council-topline strong,
.frontier-war-council-topline p,
.frontier-war-council-side strong,
.frontier-war-council-side p {
    display: block;
    min-width: 0;
    overflow-wrap: anywhere;
}

.frontier-war-council-topline span {
    color: #74d6ca;
    font-size: 0.76rem;
}

.frontier-war-council-topline strong,
.frontier-war-council-side strong {
    margin-top: 3px;
    color: #f2e6c7;
}

.frontier-war-council-topline p,
.frontier-war-council-side p {
    margin: 7px 0 0;
    color: #c8d7d4;
    font-size: 0.84rem;
    line-height: 1.42;
}

.frontier-war-council-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(280px, 0.8fr);
    gap: 12px;
    align-items: start;
}

.frontier-war-council-actions {
    display: grid;
    gap: 10px;
}

.frontier-war-council-actions button {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 12px;
    align-items: center;
    min-width: 0;
    min-height: 88px;
    padding: 12px;
    border: 1px solid rgba(179, 224, 212, 0.16);
    border-radius: 8px;
    color: #e9f1ef;
    text-align: left;
    background: rgba(255, 255, 255, 0.045);
    cursor: pointer;
    transition: border-color 0.18s ease, background 0.18s ease, transform 0.18s ease;
}

.frontier-war-council-actions button:hover {
    border-color: rgba(240, 199, 110, 0.48);
    background: rgba(240, 199, 110, 0.08);
    transform: translateY(-1px);
}

.frontier-war-council-actions button.success {
    border-color: rgba(116, 214, 202, 0.32);
}

.frontier-war-council-actions button.warning {
    border-color: rgba(240, 199, 110, 0.34);
}

.frontier-war-council-actions button.danger {
    border-color: rgba(216, 95, 95, 0.4);
}

.frontier-war-council-actions b {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border: 1px solid rgba(240, 199, 110, 0.34);
    border-radius: 50%;
    color: #081012;
    background: #f0c76e;
    font-size: 1rem;
}

.frontier-war-council-actions span,
.frontier-war-council-actions strong,
.frontier-war-council-actions em,
.frontier-war-council-actions small {
    display: block;
    min-width: 0;
    overflow-wrap: anywhere;
}

.frontier-war-council-actions strong {
    color: #f2e6c7;
    font-size: 0.98rem;
}

.frontier-war-council-actions em {
    margin-top: 2px;
    color: #74d6ca;
    font-style: normal;
    font-size: 0.78rem;
}

.frontier-war-council-actions small {
    margin-top: 5px;
    color: #b8c9c5;
    font-size: 0.8rem;
    line-height: 1.35;
}

.frontier-war-council-side {
    display: grid;
    gap: 10px;
}

.frontier-war-council-side p b {
    display: inline-grid;
    place-items: center;
    width: 20px;
    height: 20px;
    margin-right: 6px;
    border-radius: 50%;
    color: #081012;
    background: #74d6ca;
    font-size: 0.68rem;
}

.frontier-war-log article,
.frontier-war-strategy article,
.frontier-war-target article,
.frontier-war-command article,
.frontier-war-season-goals article,
.frontier-war-region-control article,
.frontier-war-contracts article,
.frontier-war-tribunal article,
.frontier-war-edict-history article,
.frontier-war-nemesis article,
.frontier-war-enemy-director article,
.frontier-war-season-chain article,
.frontier-war-campaign-report article,
.frontier-war-review article,
.frontier-war-battle-report article,
.frontier-war-ai article,
.frontier-war-season article,
.frontier-war-playtest article,
.frontier-war-viewport-qa article,
.frontier-war-difficulty article,
.frontier-war-pacing article,
.frontier-war-realrun article,
.frontier-war-branch-sampling article,
.frontier-war-longrun article,
.frontier-war-art article,
.frontier-war-build article,
.frontier-war-factions article,
.frontier-war-reference article {
    padding: 10px;
    border: 1px solid rgba(179, 224, 212, 0.12);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.045);
}

.frontier-war-log article.success {
    border-color: rgba(116, 214, 202, 0.34);
}

.frontier-war-log article.danger {
    border-color: rgba(216, 95, 95, 0.34);
}

.frontier-war-log strong,
.frontier-war-strategy strong,
.frontier-war-target strong,
.frontier-war-command strong,
.frontier-war-season-goals strong,
.frontier-war-region-control strong,
.frontier-war-contracts strong,
.frontier-war-tribunal strong,
.frontier-war-edict-history strong,
.frontier-war-nemesis strong,
.frontier-war-enemy-director strong,
.frontier-war-season-chain strong,
.frontier-war-campaign-report strong,
.frontier-war-review strong,
.frontier-war-battle-report strong,
.frontier-war-ai strong,
.frontier-war-season strong,
.frontier-war-playtest strong,
.frontier-war-viewport-qa strong,
.frontier-war-difficulty strong,
.frontier-war-pacing strong,
.frontier-war-realrun strong,
.frontier-war-branch-sampling strong,
.frontier-war-longrun strong,
.frontier-war-art strong,
.frontier-war-build strong,
.frontier-war-factions strong,
.frontier-war-reference strong {
    color: #f2e6c7;
}

.frontier-war-log p,
.frontier-war-strategy p,
.frontier-war-command p,
.frontier-war-season-goals p,
.frontier-war-contracts p,
.frontier-war-tribunal p,
.frontier-war-edict-history p,
.frontier-war-nemesis p,
.frontier-war-enemy-director p,
.frontier-war-season-chain p,
.frontier-war-campaign-report p,
.frontier-war-review p,
.frontier-war-battle-report p,
.frontier-war-ai p,
.frontier-war-season p,
.frontier-war-playtest p,
.frontier-war-viewport-qa p,
.frontier-war-difficulty p,
.frontier-war-pacing p,
.frontier-war-realrun p,
.frontier-war-branch-sampling p,
.frontier-war-longrun p,
.frontier-war-art p,
.frontier-war-build p,
.frontier-war-reference p {
    margin: 5px 0 0;
    line-height: 1.48;
    font-size: 0.86rem;
}

.frontier-war-log ol {
    margin: 8px 0 0;
    padding-left: 18px;
    color: #c8d7d4;
    font-size: 0.8rem;
    line-height: 1.45;
}

.frontier-war-strategy-grid,
.frontier-war-target-grid,
.frontier-war-command-grid,
.frontier-war-season-list,
.frontier-war-route-events,
.frontier-war-goal-list,
.frontier-war-region-list,
.frontier-war-contract-list,
.frontier-war-tribunal-seats,
.frontier-war-tribunal-history,
.frontier-war-edict-options,
.frontier-war-edict-history,
.frontier-war-route-grid,
.frontier-war-route-combos,
.frontier-war-triad-grid,
.frontier-war-tension-grid,
.frontier-war-ceremony-steps,
.frontier-war-route-ledger,
.frontier-war-replay-plan,
.frontier-war-report-ceremony,
.frontier-war-report-doctrine,
.frontier-war-route-aftermath,
.frontier-war-director-grid,
.frontier-war-storyline,
.frontier-war-ending-grid,
.frontier-war-replay-grid,
.frontier-war-qa-grid,
.frontier-war-scenario-matrix,
.frontier-war-viewport-checks,
.frontier-war-pacing-checks,
.frontier-war-pacing-history,
.frontier-war-longrun-checks,
.frontier-war-longrun-timeline,
.frontier-war-art-checks,
.frontier-war-build-grid,
.frontier-war-faction-grid,
.frontier-war-reference-grid {
    display: grid;
    gap: 8px;
}

.frontier-war-command-chain {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 7px;
    margin-bottom: 9px;
}

.frontier-war-command-chain button {
    min-width: 0;
    min-height: 58px;
    display: grid;
    grid-template-columns: 24px minmax(0, 1fr);
    grid-template-rows: auto auto;
    column-gap: 7px;
    align-items: center;
    padding: 8px;
    border: 1px solid rgba(179, 224, 212, 0.14);
    border-radius: 8px;
    color: #e9f1ef;
    text-align: left;
    background: rgba(255, 255, 255, 0.045);
    cursor: pointer;
}

.frontier-war-command-chain button:hover {
    border-color: rgba(116, 214, 202, 0.42);
    background: rgba(116, 214, 202, 0.08);
}

.frontier-war-command-chain b {
    grid-row: 1 / span 2;
    display: grid;
    place-items: center;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    color: #081012;
    background: #f0c76e;
    font-size: 0.78rem;
}

.frontier-war-command-chain span,
.frontier-war-command-chain em {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.frontier-war-command-chain span {
    color: #f2e6c7;
    font-weight: 700;
    font-size: 0.78rem;
}

.frontier-war-command-chain em {
    color: #a9b8b6;
    font-style: normal;
    font-size: 0.68rem;
}

.frontier-war-command-chain .success b {
    background: #74d6ca;
}

.frontier-war-command-chain .danger b {
    color: #fff7ef;
    background: #d85f5f;
}

.frontier-war-strategy article em,
.frontier-war-build article em,
.frontier-war-factions article em {
    display: block;
    margin-top: 5px;
    color: #a9b8b6;
    font-style: normal;
    font-size: 0.76rem;
}

.frontier-war-target-score {
    display: grid;
    grid-template-columns: auto auto minmax(0, 1fr);
    align-items: center;
    gap: 6px;
    margin-bottom: 10px;
}

.frontier-war-target-score strong {
    color: #74d6ca;
    font-size: 2rem;
    line-height: 1;
}

.frontier-war-target-score span {
    color: #a9b8b6;
}

.frontier-war-target-score i {
    display: block;
    height: 9px;
    overflow: hidden;
    border-radius: 999px;
    background: rgba(255,255,255,0.08);
}

.frontier-war-target-score b {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #d85f5f, #f0c76e, #74d6ca);
}

.frontier-war-target-grid {
    grid-template-columns: repeat(auto-fit, minmax(94px, 1fr));
}

.frontier-war-target article {
    padding: 8px;
}

.frontier-war-target article.done {
    border-color: rgba(116, 214, 202, 0.34);
    background: rgba(116, 214, 202, 0.07);
}

.frontier-war-target article span {
    display: block;
    margin-top: 4px;
    color: #a9b8b6;
    font-size: 0.72rem;
}

.frontier-war-target-play {
    margin-top: 10px;
    padding: 10px;
    border: 1px solid rgba(240, 199, 110, 0.22);
    border-radius: 8px;
    background: rgba(240, 199, 110, 0.06);
}

.frontier-war-target-play strong,
.frontier-war-target-play span,
.frontier-war-target-play em {
    display: block;
}

.frontier-war-target-play span {
    margin-top: 4px;
    color: #74d6ca;
    font-size: 0.9rem;
}

.frontier-war-target-play em {
    margin-top: 4px;
    color: #a9b8b6;
    font-style: normal;
    font-size: 0.76rem;
    line-height: 1.4;
}

.frontier-war-command article.danger,
.frontier-war-season article.danger {
    border-color: rgba(216, 95, 95, 0.34);
}

.frontier-war-command article.warning,
.frontier-war-season article.warning {
    border-color: rgba(240, 199, 110, 0.34);
    background: rgba(240, 199, 110, 0.06);
}

.frontier-war-command article.success,
.frontier-war-season article.success {
    border-color: rgba(116, 214, 202, 0.34);
}

.frontier-war-route-events {
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    margin-top: 8px;
}

.frontier-war-route-events article,
.frontier-war-route-aftermath article {
    min-width: 0;
    padding: 8px;
    border: 1px solid rgba(179, 224, 212, 0.12);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.035);
}

.frontier-war-route-events article.active,
.frontier-war-route-aftermath article.main {
    border-color: rgba(240, 199, 110, 0.34);
    background: rgba(240, 199, 110, 0.065);
}

.frontier-war-route-events article.success,
.frontier-war-route-aftermath article.success {
    border-color: rgba(116, 214, 202, 0.34);
}

.frontier-war-route-events article.warning,
.frontier-war-route-aftermath article.warning {
    border-color: rgba(240, 199, 110, 0.3);
}

.frontier-war-route-events article.danger,
.frontier-war-route-aftermath article.danger {
    border-color: rgba(216, 95, 95, 0.34);
}

.frontier-war-route-events p,
.frontier-war-route-events em,
.frontier-war-route-aftermath p,
.frontier-war-route-aftermath em {
    display: block;
    margin: 4px 0 0;
    color: #a9b8b6;
    font-size: 0.74rem;
    line-height: 1.36;
    overflow-wrap: anywhere;
}

.frontier-war-route-aftermath {
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    margin: 8px 0;
}

.frontier-war-command article {
    position: relative;
    overflow: hidden;
}

.frontier-war-command article::before {
    content: '';
    position: absolute;
    inset: 0 auto 0 0;
    width: 3px;
    background: rgba(240, 199, 110, 0.72);
}

.frontier-war-command article.danger::before {
    background: rgba(216, 95, 95, 0.82);
}

.frontier-war-command article.warning::before {
    background: rgba(240, 199, 110, 0.82);
}

.frontier-war-command article.success::before {
    background: rgba(116, 214, 202, 0.82);
}

.frontier-war-season-goals article.done,
.frontier-war-region-control article.done,
.frontier-war-contracts article.done {
    border-color: rgba(116, 214, 202, 0.34);
    background: rgba(116, 214, 202, 0.07);
}

.frontier-war-season-goals article em,
.frontier-war-region-control article em,
.frontier-war-contracts article em,
.frontier-war-nemesis article em,
.frontier-war-enemy-director article em {
    display: block;
    margin-top: 6px;
    color: #a9b8b6;
    font-size: 0.76rem;
    font-style: normal;
    line-height: 1.38;
}

.frontier-war-region-control article div {
    display: flex;
    justify-content: space-between;
    gap: 8px;
    align-items: center;
}

.frontier-war-region-control article span {
    color: #74d6ca;
    font-size: 0.8rem;
}

.frontier-war-region-control article i,
.frontier-war-nemesis-meter i,
.frontier-war-director-meter i {
    display: block;
    height: 8px;
    margin-top: 8px;
    overflow: hidden;
    border-radius: 999px;
    background: rgba(255,255,255,0.08);
}

.frontier-war-region-control article b,
.frontier-war-nemesis-meter b,
.frontier-war-director-meter b {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #d85f5f, #f0c76e, #74d6ca);
}

.frontier-war-contracts article.hostile {
    border-color: rgba(216, 95, 95, 0.32);
}

.frontier-war-contracts article.friendly {
    border-color: rgba(116, 214, 202, 0.32);
}

.frontier-war-nemesis article.active {
    border-color: rgba(240, 199, 110, 0.38);
    background: rgba(240, 199, 110, 0.07);
}

.frontier-war-nemesis article.danger {
    border-color: rgba(216, 95, 95, 0.42);
    background: rgba(216, 95, 95, 0.08);
}

.frontier-war-nemesis-meter,
.frontier-war-director-meter {
    margin-top: 10px;
}

.frontier-war-nemesis-meter span,
.frontier-war-director-meter span {
    color: #f0c76e;
    font-size: 0.78rem;
}

.frontier-war-director-main {
    border-color: rgba(240, 199, 110, 0.34);
    background: rgba(240, 199, 110, 0.06);
}

.frontier-war-director-main.danger,
.frontier-war-director-grid article.danger {
    border-color: rgba(216, 95, 95, 0.38);
    background: rgba(216, 95, 95, 0.08);
}

.frontier-war-director-grid {
    margin-top: 8px;
}

.frontier-war-director-grid article.warning {
    border-color: rgba(240, 199, 110, 0.3);
}

.frontier-war-enemy-phase {
    position: relative;
    overflow: hidden;
    display: grid;
    gap: 10px;
    margin-top: 8px;
    border-color: rgba(240, 199, 110, 0.34);
    background:
        linear-gradient(135deg, rgba(240, 199, 110, 0.1), rgba(255, 255, 255, 0.04)),
        rgba(6, 13, 15, 0.58);
}

.frontier-war-enemy-phase::before {
    content: '';
    position: absolute;
    inset: 0 auto 0 0;
    width: 4px;
    background: #f0c76e;
    box-shadow: 0 0 18px rgba(240, 199, 110, 0.46);
}

.frontier-war-enemy-phase.danger {
    border-color: rgba(216, 95, 95, 0.42);
    background:
        linear-gradient(135deg, rgba(216, 95, 95, 0.12), rgba(255, 255, 255, 0.035)),
        rgba(6, 13, 15, 0.58);
}

.frontier-war-enemy-phase.danger::before {
    background: #d85f5f;
    box-shadow: 0 0 20px rgba(216, 95, 95, 0.52);
}

.frontier-war-enemy-phase.success {
    border-color: rgba(116, 214, 202, 0.38);
}

.frontier-war-enemy-phase > div {
    min-width: 0;
}

.frontier-war-enemy-phase span,
.frontier-war-enemy-phase strong,
.frontier-war-enemy-phase p {
    display: block;
    min-width: 0;
}

.frontier-war-enemy-phase > div:first-child {
    padding-left: 2px;
}

.frontier-war-enemy-phase > div:first-child > span {
    color: #f0c76e;
    font-size: 0.72rem;
}

.frontier-war-enemy-phase-meter span {
    color: #c8d7d4;
    font-size: 0.76rem;
}

.frontier-war-enemy-phase-meter i {
    display: block;
    height: 7px;
    margin-top: 6px;
    overflow: hidden;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.08);
}

.frontier-war-enemy-phase-meter b {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #74d6ca, #f0c76e, #d85f5f);
}

.frontier-war-enemy-phase-counters,
.frontier-war-enemy-phase-history {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.frontier-war-enemy-phase-counters button {
    min-height: 28px;
    padding: 4px 9px;
    border: 1px solid rgba(116, 214, 202, 0.28);
    border-radius: 999px;
    color: #e9f1ef;
    background: rgba(116, 214, 202, 0.08);
    cursor: pointer;
}

.frontier-war-enemy-phase-counters button:hover {
    border-color: rgba(116, 214, 202, 0.58);
    background: rgba(116, 214, 202, 0.14);
}

.frontier-war-enemy-phase-history {
    margin-top: 8px;
}

.frontier-war-enemy-phase-history span {
    min-width: 0;
    padding: 4px 8px;
    border: 1px solid rgba(179, 224, 212, 0.14);
    border-radius: 999px;
    color: #c8d7d4;
    background: rgba(255,255,255,0.045);
    font-size: 0.72rem;
    overflow-wrap: anywhere;
}

.frontier-war-enemy-phase-history span.danger {
    border-color: rgba(216, 95, 95, 0.3);
    color: #f2d6d6;
    background: rgba(216, 95, 95, 0.08);
}

.frontier-war-enemy-phase-history span.success {
    border-color: rgba(116, 214, 202, 0.3);
    color: #d8f5ef;
    background: rgba(116, 214, 202, 0.08);
}

.frontier-war-enemy-phase-history b {
    margin-right: 4px;
    color: #f2e6c7;
}

.frontier-war-doctrine-counter {
    display: grid;
    gap: 8px;
    margin-top: 8px;
    padding: 10px;
    border: 1px solid rgba(240, 199, 110, 0.2);
    border-radius: 8px;
    background:
        linear-gradient(180deg, rgba(18, 24, 23, 0.92), rgba(7, 14, 16, 0.94)),
        radial-gradient(circle at 100% 0%, rgba(216, 95, 95, 0.08), transparent 42%);
}

.frontier-war-doctrine-counter-grid,
.frontier-war-report-doctrine-counter {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 8px;
}

.frontier-war-doctrine-counter-grid article,
.frontier-war-report-doctrine-counter article {
    min-width: 0;
    padding: 8px;
    border: 1px solid rgba(179, 224, 212, 0.12);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.035);
}

.frontier-war-doctrine-counter strong,
.frontier-war-report-doctrine-counter strong {
    color: #f2e6c7;
}

.frontier-war-doctrine-counter-grid article.active,
.frontier-war-report-doctrine-counter article.main {
    border-color: rgba(240, 199, 110, 0.36);
    background: rgba(240, 199, 110, 0.07);
}

.frontier-war-doctrine-counter-grid article.danger,
.frontier-war-report-doctrine-counter article.danger {
    border-color: rgba(216, 95, 95, 0.36);
}

.frontier-war-doctrine-counter-grid article.warning,
.frontier-war-report-doctrine-counter article.warning {
    border-color: rgba(240, 199, 110, 0.32);
}

.frontier-war-doctrine-counter-grid article.success,
.frontier-war-report-doctrine-counter article.success {
    border-color: rgba(116, 214, 202, 0.34);
}

.frontier-war-doctrine-counter-grid p,
.frontier-war-doctrine-counter-grid em,
.frontier-war-report-doctrine-counter p,
.frontier-war-report-doctrine-counter em {
    display: block;
    margin: 4px 0 0;
    color: #a9b8b6;
    font-size: 0.74rem;
    line-height: 1.36;
    overflow-wrap: anywhere;
}

.frontier-war-doctrine-counter-actions,
.frontier-war-doctrine-counter-history {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.frontier-war-doctrine-counter-actions button {
    min-height: 28px;
    padding: 4px 9px;
    border: 1px solid rgba(240, 199, 110, 0.28);
    border-radius: 999px;
    color: #f2e6c7;
    background: rgba(240, 199, 110, 0.08);
    cursor: pointer;
}

.frontier-war-doctrine-counter-actions button:hover {
    border-color: rgba(240, 199, 110, 0.58);
    background: rgba(240, 199, 110, 0.14);
}

.frontier-war-doctrine-counter-history span {
    min-width: 0;
    padding: 4px 8px;
    border: 1px solid rgba(179, 224, 212, 0.14);
    border-radius: 999px;
    color: #c8d7d4;
    background: rgba(255, 255, 255, 0.045);
    font-size: 0.72rem;
    overflow-wrap: anywhere;
}

.frontier-war-doctrine-counter-history b {
    margin-right: 5px;
    color: #f0c76e;
}

.frontier-war-doctrine-response {
    display: grid;
    gap: 8px;
    padding: 10px;
    border: 1px solid rgba(116, 214, 202, 0.22);
    border-radius: 8px;
    background:
        linear-gradient(180deg, rgba(15, 26, 25, 0.92), rgba(7, 14, 16, 0.94)),
        radial-gradient(circle at 0% 0%, rgba(116, 214, 202, 0.09), transparent 42%);
}

.frontier-war-doctrine-response-grid,
.frontier-war-report-doctrine-response {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 8px;
}

.frontier-war-doctrine-response-grid article,
.frontier-war-report-doctrine-response article {
    min-width: 0;
    padding: 8px;
    border: 1px solid rgba(179, 224, 212, 0.14);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.035);
}

.frontier-war-doctrine-response-grid article.recommended,
.frontier-war-report-doctrine-response article.recommended,
.frontier-war-report-doctrine-response article.main {
    border-color: rgba(116, 214, 202, 0.42);
    background: rgba(116, 214, 202, 0.08);
}

.frontier-war-doctrine-response-grid article.disabled {
    opacity: 0.58;
}

.frontier-war-doctrine-response strong,
.frontier-war-report-doctrine-response strong {
    color: #f2e6c7;
}

.frontier-war-doctrine-response-grid p,
.frontier-war-doctrine-response-grid em,
.frontier-war-report-doctrine-response p,
.frontier-war-report-doctrine-response em {
    display: block;
    margin: 4px 0 0;
    color: #a9b8b6;
    font-size: 0.74rem;
    line-height: 1.36;
    overflow-wrap: anywhere;
}

.frontier-war-doctrine-response-actions,
.frontier-war-doctrine-response-history {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.frontier-war-doctrine-response-actions button {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 30px;
    padding: 5px 10px;
    border: 1px solid rgba(116, 214, 202, 0.3);
    border-radius: 999px;
    color: #d8f5ef;
    background: rgba(116, 214, 202, 0.08);
    cursor: pointer;
}

.frontier-war-doctrine-response-actions button.recommended {
    border-color: rgba(240, 199, 110, 0.44);
    color: #f2e6c7;
    background: rgba(240, 199, 110, 0.1);
}

.frontier-war-doctrine-response-actions button:disabled {
    cursor: default;
    opacity: 0.48;
}

.frontier-war-doctrine-response-actions button:not(:disabled):hover {
    border-color: rgba(116, 214, 202, 0.62);
    background: rgba(116, 214, 202, 0.15);
}

.frontier-war-doctrine-response-actions span {
    color: #a9b8b6;
    font-size: 0.7rem;
}

.frontier-war-doctrine-response-history span {
    min-width: 0;
    padding: 4px 8px;
    border: 1px solid rgba(116, 214, 202, 0.2);
    border-radius: 999px;
    color: #c8d7d4;
    background: rgba(116, 214, 202, 0.055);
    font-size: 0.72rem;
    overflow-wrap: anywhere;
}

.frontier-war-doctrine-response-history b {
    margin-right: 5px;
    color: #74d6ca;
}

.frontier-war-strategy-memory,
.frontier-war-season-legacy,
.frontier-war-season-challenge,
.frontier-war-season-collection,
.frontier-war-season-library,
.frontier-war-season-quest,
.frontier-war-season-branch {
    display: grid;
    gap: 8px;
    padding: 10px;
    border: 1px solid rgba(240, 199, 110, 0.22);
    border-radius: 8px;
    background:
        linear-gradient(180deg, rgba(19, 24, 21, 0.92), rgba(8, 13, 14, 0.94)),
        radial-gradient(circle at 100% 0%, rgba(240, 199, 110, 0.08), transparent 42%);
}

.frontier-war-strategy-memory-grid,
.frontier-war-memory-opportunities,
.frontier-war-season-legacy-grid,
.frontier-war-season-legacy-carryovers,
.frontier-war-season-challenge-grid,
.frontier-war-season-challenge-badges,
.frontier-war-season-collection-grid,
.frontier-war-season-collection-badges,
.frontier-war-season-collection-rewards,
.frontier-war-season-library-grid,
.frontier-war-season-quest-grid,
.frontier-war-season-branch-grid,
.frontier-war-intelligence-archive,
.frontier-war-intelligence-legacy,
.frontier-war-report-season-challenge,
.frontier-war-report-season-collection,
.frontier-war-report-season-library,
.frontier-war-report-season-quest,
.frontier-war-report-season-branch,
.frontier-war-report-season-branch-pool,
.frontier-war-report-season-branch-weight,
.frontier-war-report-season-branch-intervention,
.frontier-war-report-season-branch-memory,
.frontier-war-report-season-branch-misdirection,
.frontier-war-report-season-branch-misdirection-economy,
.frontier-war-report-counterintelligence,
.frontier-war-report-intelligence-archive,
.frontier-war-report-intelligence-legacy,
.frontier-war-report-season-legacy,
.frontier-war-report-strategy-memory {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 8px;
}

.frontier-war-memory-opportunities,
.frontier-war-season-legacy-carryovers,
.frontier-war-season-challenge-badges,
.frontier-war-season-collection-badges,
.frontier-war-season-collection-rewards,
.frontier-war-season-library-grid,
.frontier-war-season-quest-grid,
.frontier-war-season-branch-grid {
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
}

.frontier-war-strategy-memory-grid article,
.frontier-war-memory-opportunities article,
.frontier-war-season-legacy-grid article,
.frontier-war-season-legacy-carryovers article,
.frontier-war-season-challenge-grid article,
.frontier-war-season-challenge-badges article,
.frontier-war-season-collection-grid article,
.frontier-war-season-collection-badges article,
.frontier-war-season-collection-rewards article,
.frontier-war-season-library-grid article,
.frontier-war-season-quest-grid article,
.frontier-war-season-branch-grid article,
.frontier-war-intelligence-archive article,
.frontier-war-intelligence-legacy article,
.frontier-war-report-season-challenge article,
.frontier-war-report-season-collection article,
.frontier-war-report-season-library article,
.frontier-war-report-season-quest article,
.frontier-war-report-season-branch article,
.frontier-war-report-season-branch-pool article,
.frontier-war-report-season-branch-weight article,
.frontier-war-report-season-branch-intervention article,
.frontier-war-report-season-branch-memory article,
.frontier-war-report-season-branch-misdirection article,
.frontier-war-report-season-branch-misdirection-economy article,
.frontier-war-report-counterintelligence article,
.frontier-war-report-intelligence-archive article,
.frontier-war-report-intelligence-legacy article,
.frontier-war-report-season-legacy article,
.frontier-war-report-strategy-memory article {
    min-width: 0;
    padding: 8px;
    border: 1px solid rgba(179, 224, 212, 0.14);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.035);
}

.frontier-war-strategy-memory-grid article.success,
.frontier-war-memory-opportunities article.success,
.frontier-war-season-legacy-grid article.success,
.frontier-war-season-legacy-carryovers article.success,
.frontier-war-season-challenge-grid article.success,
.frontier-war-season-challenge-badges article.success,
.frontier-war-season-collection-grid article.success,
.frontier-war-season-collection-badges article.success,
.frontier-war-season-collection-rewards article.success,
.frontier-war-season-library-grid article.success,
.frontier-war-season-quest-grid article.success,
.frontier-war-season-branch-grid article.success,
.frontier-war-intelligence-archive article.success,
.frontier-war-intelligence-legacy article.success,
.frontier-war-report-season-challenge article.success,
.frontier-war-report-season-collection article.success,
.frontier-war-report-season-library article.success,
.frontier-war-report-season-quest article.success,
.frontier-war-report-season-branch article.success,
.frontier-war-report-season-branch-pool article.success,
.frontier-war-report-season-branch-weight article.success,
.frontier-war-report-season-branch-intervention article.success,
.frontier-war-report-season-branch-memory article.success,
.frontier-war-report-season-branch-misdirection article.success,
.frontier-war-report-season-branch-misdirection-economy article.success,
.frontier-war-report-counterintelligence article.success,
.frontier-war-report-intelligence-archive article.success,
.frontier-war-report-intelligence-legacy article.success,
.frontier-war-report-season-legacy article.success,
.frontier-war-report-strategy-memory article.success {
    border-color: rgba(116, 214, 202, 0.34);
}

.frontier-war-strategy-memory-grid article.warning,
.frontier-war-memory-opportunities article.warning,
.frontier-war-season-legacy-grid article.warning,
.frontier-war-season-legacy-carryovers article.warning,
.frontier-war-season-challenge-grid article.warning,
.frontier-war-season-challenge-badges article.warning,
.frontier-war-season-collection-grid article.warning,
.frontier-war-season-collection-badges article.warning,
.frontier-war-season-collection-rewards article.warning,
.frontier-war-season-library-grid article.warning,
.frontier-war-season-quest-grid article.warning,
.frontier-war-season-branch-grid article.warning,
.frontier-war-intelligence-archive article.warning,
.frontier-war-intelligence-legacy article.warning,
.frontier-war-report-season-challenge article.warning,
.frontier-war-report-season-collection article.warning,
.frontier-war-report-season-library article.warning,
.frontier-war-report-season-quest article.warning,
.frontier-war-report-season-branch article.warning,
.frontier-war-report-season-branch-pool article.warning,
.frontier-war-report-season-branch-weight article.warning,
.frontier-war-report-season-branch-intervention article.warning,
.frontier-war-report-season-branch-memory article.warning,
.frontier-war-report-season-branch-misdirection article.warning,
.frontier-war-report-season-branch-misdirection-economy article.warning,
.frontier-war-report-counterintelligence article.warning,
.frontier-war-report-intelligence-archive article.warning,
.frontier-war-report-intelligence-legacy article.warning,
.frontier-war-report-season-legacy article.warning,
.frontier-war-report-strategy-memory article.warning {
    border-color: rgba(240, 199, 110, 0.34);
}

.frontier-war-strategy-memory-grid article.danger,
.frontier-war-memory-opportunities article.danger,
.frontier-war-season-legacy-grid article.danger,
.frontier-war-season-legacy-carryovers article.danger,
.frontier-war-season-challenge-grid article.danger,
.frontier-war-season-challenge-badges article.danger,
.frontier-war-season-collection-grid article.danger,
.frontier-war-season-collection-badges article.danger,
.frontier-war-season-collection-rewards article.danger,
.frontier-war-season-library-grid article.danger,
.frontier-war-season-quest-grid article.danger,
.frontier-war-season-branch-grid article.danger,
.frontier-war-intelligence-archive article.danger,
.frontier-war-intelligence-legacy article.danger,
.frontier-war-report-season-challenge article.danger,
.frontier-war-report-season-collection article.danger,
.frontier-war-report-season-library article.danger,
.frontier-war-report-season-quest article.danger,
.frontier-war-report-season-branch article.danger,
.frontier-war-report-season-branch-pool article.danger,
.frontier-war-report-season-branch-weight article.danger,
.frontier-war-report-season-branch-intervention article.danger,
.frontier-war-report-season-branch-memory article.danger,
.frontier-war-report-season-branch-misdirection article.danger,
.frontier-war-report-season-branch-misdirection-economy article.danger,
.frontier-war-report-counterintelligence article.danger,
.frontier-war-report-intelligence-archive article.danger,
.frontier-war-report-intelligence-legacy article.danger,
.frontier-war-report-season-legacy article.danger,
.frontier-war-report-strategy-memory article.danger {
    border-color: rgba(216, 95, 95, 0.34);
}

.frontier-war-report-season-legacy article.main,
.frontier-war-report-season-challenge article.main,
.frontier-war-report-season-collection article.main,
.frontier-war-report-season-library article.main,
.frontier-war-report-season-quest article.main,
.frontier-war-report-season-branch article.main,
.frontier-war-report-season-branch-pool article.main,
.frontier-war-report-season-branch-weight article.main,
.frontier-war-report-season-branch-intervention article.main,
.frontier-war-report-season-branch-memory article.main,
.frontier-war-report-season-branch-misdirection article.main,
.frontier-war-report-season-branch-misdirection-economy article.main,
.frontier-war-report-counterintelligence article.main,
.frontier-war-report-intelligence-archive article.main,
.frontier-war-report-intelligence-legacy article.main,
.frontier-war-report-strategy-memory article.main {
    border-color: rgba(240, 199, 110, 0.38);
    background: rgba(240, 199, 110, 0.065);
}

.frontier-war-strategy-memory strong,
.frontier-war-season-legacy strong,
.frontier-war-season-challenge strong,
.frontier-war-season-collection strong,
.frontier-war-season-library strong,
.frontier-war-season-quest strong,
.frontier-war-season-branch strong,
.frontier-war-intelligence-archive strong,
.frontier-war-intelligence-legacy strong,
.frontier-war-report-season-challenge strong,
.frontier-war-report-season-collection strong,
.frontier-war-report-season-library strong,
.frontier-war-report-season-quest strong,
.frontier-war-report-season-branch strong,
.frontier-war-report-season-branch-pool strong,
.frontier-war-report-season-branch-weight strong,
.frontier-war-report-season-branch-intervention strong,
.frontier-war-report-season-branch-memory strong,
.frontier-war-report-season-branch-misdirection strong,
.frontier-war-report-season-branch-misdirection-economy strong,
.frontier-war-report-counterintelligence strong,
.frontier-war-report-intelligence-archive strong,
.frontier-war-report-intelligence-legacy strong,
.frontier-war-report-season-legacy strong,
.frontier-war-report-strategy-memory strong {
    color: #f2e6c7;
}

.frontier-war-strategy-memory-grid p,
.frontier-war-strategy-memory-grid em,
.frontier-war-memory-opportunities p,
.frontier-war-season-legacy-grid p,
.frontier-war-season-legacy-grid em,
.frontier-war-season-legacy-carryovers p,
.frontier-war-season-challenge-grid p,
.frontier-war-season-challenge-grid em,
.frontier-war-season-challenge-badges p,
.frontier-war-season-collection-grid p,
.frontier-war-season-collection-grid em,
.frontier-war-season-collection-badges p,
.frontier-war-season-collection-rewards p,
.frontier-war-season-library-grid p,
.frontier-war-season-library-grid em,
.frontier-war-season-quest-grid p,
.frontier-war-season-quest-grid em,
.frontier-war-season-branch-grid p,
.frontier-war-season-branch-grid em,
.frontier-war-intelligence-archive p,
.frontier-war-intelligence-archive em,
.frontier-war-intelligence-legacy p,
.frontier-war-intelligence-legacy em,
.frontier-war-report-season-challenge p,
.frontier-war-report-season-challenge em,
.frontier-war-report-season-collection p,
.frontier-war-report-season-collection em,
.frontier-war-report-season-library p,
.frontier-war-report-season-library em,
.frontier-war-report-season-quest p,
.frontier-war-report-season-quest em,
.frontier-war-report-season-branch p,
.frontier-war-report-season-branch em,
.frontier-war-report-season-branch-pool p,
.frontier-war-report-season-branch-pool em,
.frontier-war-report-season-branch-weight p,
.frontier-war-report-season-branch-weight em,
.frontier-war-report-season-branch-intervention p,
.frontier-war-report-season-branch-intervention em,
.frontier-war-report-season-branch-memory p,
.frontier-war-report-season-branch-memory em,
.frontier-war-report-season-branch-misdirection p,
.frontier-war-report-season-branch-misdirection em,
.frontier-war-report-season-branch-misdirection-economy p,
.frontier-war-report-season-branch-misdirection-economy em,
.frontier-war-report-counterintelligence p,
.frontier-war-report-counterintelligence em,
.frontier-war-report-intelligence-archive p,
.frontier-war-report-intelligence-archive em,
.frontier-war-report-intelligence-legacy p,
.frontier-war-report-intelligence-legacy em,
.frontier-war-report-season-legacy p,
.frontier-war-report-season-legacy em,
.frontier-war-report-strategy-memory p,
.frontier-war-report-strategy-memory em {
    display: block;
    margin: 4px 0 0;
    color: #a9b8b6;
    font-size: 0.74rem;
    line-height: 1.36;
    overflow-wrap: anywhere;
}

.frontier-war-season-legacy-history {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.frontier-war-season-legacy-history span {
    min-width: 0;
    padding: 4px 8px;
    border: 1px solid rgba(240, 199, 110, 0.2);
    border-radius: 999px;
    color: #c8d7d4;
    background: rgba(240, 199, 110, 0.055);
    font-size: 0.72rem;
    overflow-wrap: anywhere;
}

.frontier-war-season-legacy-history b {
    margin-right: 5px;
    color: #f0c76e;
}

.frontier-war-season-challenge-grid article i {
    display: block;
    height: 5px;
    margin-top: 6px;
    overflow: hidden;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.08);
}

.frontier-war-season-challenge-grid article i b {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #74d6ca, #f0c76e);
}

.frontier-war-season-challenge-next {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
    gap: 8px;
}

.frontier-war-season-challenge-next button {
    min-width: 0;
    padding: 8px;
    border: 1px solid rgba(240, 199, 110, 0.24);
    border-radius: 8px;
    color: #f2e6c7;
    text-align: left;
    background: rgba(240, 199, 110, 0.055);
    cursor: pointer;
}

.frontier-war-season-challenge-next button:hover {
    border-color: rgba(116, 214, 202, 0.45);
    background: rgba(116, 214, 202, 0.08);
}

.frontier-war-season-challenge-next span {
    display: block;
    margin-top: 4px;
    color: #a9b8b6;
    font-size: 0.72rem;
    line-height: 1.34;
    overflow-wrap: anywhere;
}

.frontier-war-season-challenge-history {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.frontier-war-season-challenge-history span {
    min-width: 0;
    padding: 4px 8px;
    border: 1px solid rgba(116, 214, 202, 0.22);
    border-radius: 999px;
    color: #c8d7d4;
    background: rgba(116, 214, 202, 0.055);
    font-size: 0.72rem;
    overflow-wrap: anywhere;
}

.frontier-war-season-challenge-history b {
    margin-right: 5px;
    color: #74d6ca;
}

.frontier-war-season-collection-history {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.frontier-war-season-collection-history span {
    min-width: 0;
    padding: 4px 8px;
    border: 1px solid rgba(240, 199, 110, 0.22);
    border-radius: 999px;
    color: #c8d7d4;
    background: rgba(240, 199, 110, 0.055);
    font-size: 0.72rem;
    overflow-wrap: anywhere;
}

.frontier-war-season-collection-history b {
    margin-right: 5px;
    color: #f0c76e;
}

.frontier-war-season-library-filters,
.frontier-war-season-library-target-actions,
.frontier-war-season-library-grid article div {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.frontier-war-season-library-filters button,
.frontier-war-season-library-target-actions button,
.frontier-war-season-library-grid article button {
    min-width: 0;
    padding: 6px 8px;
    border: 1px solid rgba(240, 199, 110, 0.22);
    border-radius: 8px;
    color: #f2e6c7;
    background: rgba(255, 255, 255, 0.04);
    cursor: pointer;
}

.frontier-war-season-library-filters button {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    min-width: 76px;
}

.frontier-war-season-library-filters button.active,
.frontier-war-season-library-grid article.active {
    border-color: rgba(116, 214, 202, 0.48);
    background: rgba(116, 214, 202, 0.09);
}

.frontier-war-season-library-filters button:hover,
.frontier-war-season-library-target-actions button:hover,
.frontier-war-season-library-grid article button:hover {
    border-color: rgba(116, 214, 202, 0.52);
    background: rgba(116, 214, 202, 0.12);
}

.frontier-war-season-library-filters span {
    color: #74d6ca;
    font-size: 0.72rem;
}

.frontier-war-season-library-grid article {
    display: grid;
    align-content: start;
    gap: 5px;
}

.frontier-war-season-library-grid article div {
    margin-top: 2px;
}

.frontier-war-season-quest-actions,
.frontier-war-season-quest-history {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.frontier-war-season-quest-actions button {
    min-width: 0;
    padding: 6px 8px;
    border: 1px solid rgba(116, 214, 202, 0.28);
    border-radius: 8px;
    color: #f2e6c7;
    background: rgba(116, 214, 202, 0.075);
    cursor: pointer;
}

.frontier-war-season-quest-actions button:hover {
    border-color: rgba(240, 199, 110, 0.46);
    background: rgba(240, 199, 110, 0.1);
}

.frontier-war-season-quest-grid article i {
    display: block;
    height: 5px;
    margin-top: 6px;
    overflow: hidden;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.08);
}

.frontier-war-season-quest-grid article i b {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #74d6ca, #f0c76e);
}

.frontier-war-season-quest-grid article.complete {
    border-color: rgba(116, 214, 202, 0.42);
    background: rgba(116, 214, 202, 0.07);
}

.frontier-war-season-quest-history span {
    min-width: 0;
    padding: 4px 8px;
    border: 1px solid rgba(116, 214, 202, 0.22);
    border-radius: 999px;
    color: #c8d7d4;
    background: rgba(116, 214, 202, 0.055);
    font-size: 0.72rem;
    overflow-wrap: anywhere;
}

.frontier-war-season-quest-history b {
    margin-right: 5px;
    color: #74d6ca;
}

.frontier-war-season-branch-grid article.active {
    border-color: rgba(240, 199, 110, 0.42);
    background: rgba(240, 199, 110, 0.065);
}

.frontier-war-season-branch-grid article.applied {
    box-shadow: inset 0 0 0 1px rgba(116, 214, 202, 0.16);
}

.frontier-war-season-branch-pool,
.frontier-war-season-branch-weight,
.frontier-war-season-branch-history {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.frontier-war-season-branch-pool span,
.frontier-war-season-branch-weight span,
.frontier-war-season-branch-history span {
    min-width: 0;
    padding: 4px 8px;
    border: 1px solid rgba(240, 199, 110, 0.2);
    border-radius: 999px;
    color: #c8d7d4;
    background: rgba(240, 199, 110, 0.055);
    font-size: 0.72rem;
    overflow-wrap: anywhere;
}

.frontier-war-season-branch-pool b,
.frontier-war-season-branch-weight b,
.frontier-war-season-branch-history b {
    margin-right: 5px;
    color: #f0c76e;
}

.frontier-war-season-branch-weight span.success {
    border-color: rgba(116, 214, 202, 0.28);
    background: rgba(116, 214, 202, 0.06);
}

.frontier-war-season-branch-weight span.warning {
    border-color: rgba(240, 199, 110, 0.28);
    background: rgba(240, 199, 110, 0.06);
}

.frontier-war-season-branch-weight span.danger {
    border-color: rgba(216, 95, 95, 0.28);
    background: rgba(216, 95, 95, 0.07);
}

.frontier-war-season-branch-intervention {
    display: grid;
    gap: 8px;
    padding: 8px;
    border: 1px solid rgba(116, 214, 202, 0.18);
    border-radius: 8px;
    background: rgba(116, 214, 202, 0.045);
}

.frontier-war-season-branch-intervention article.main {
    min-width: 0;
    padding: 8px;
    border: 1px solid rgba(179, 224, 212, 0.16);
    border-radius: 8px;
    background: rgba(6, 13, 15, 0.54);
}

.frontier-war-season-branch-intervention article.main.success {
    border-color: rgba(116, 214, 202, 0.34);
}

.frontier-war-season-branch-intervention article.main.warning {
    border-color: rgba(240, 199, 110, 0.34);
}

.frontier-war-season-branch-intervention article.main.danger {
    border-color: rgba(216, 95, 95, 0.34);
}

.frontier-war-season-branch-intervention strong,
.frontier-war-season-branch-intervention p,
.frontier-war-season-branch-intervention em {
    display: block;
    min-width: 0;
    overflow-wrap: anywhere;
}

.frontier-war-season-branch-intervention p,
.frontier-war-season-branch-intervention em {
    margin: 4px 0 0;
    color: #a9b8b6;
    font-size: 0.74rem;
    line-height: 1.36;
}

.frontier-war-branch-intervention-actions {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(138px, 1fr));
    gap: 6px;
}

.frontier-war-branch-intervention-actions button {
    min-width: 0;
    padding: 7px 8px;
    border: 1px solid rgba(179, 224, 212, 0.18);
    border-radius: 8px;
    color: #f2e6c7;
    background: rgba(255, 255, 255, 0.05);
    text-align: left;
    cursor: pointer;
}

.frontier-war-branch-intervention-actions button.success {
    border-color: rgba(116, 214, 202, 0.34);
}

.frontier-war-branch-intervention-actions button.warning {
    border-color: rgba(240, 199, 110, 0.34);
}

.frontier-war-branch-intervention-actions button.danger {
    border-color: rgba(216, 95, 95, 0.34);
}

.frontier-war-branch-intervention-actions button:disabled {
    cursor: not-allowed;
    opacity: 0.48;
}

.frontier-war-branch-intervention-actions button:not(:disabled):hover {
    border-color: rgba(240, 199, 110, 0.46);
    background: rgba(240, 199, 110, 0.08);
}

.frontier-war-branch-intervention-actions strong,
.frontier-war-branch-intervention-actions span {
    display: block;
    min-width: 0;
    overflow-wrap: anywhere;
}

.frontier-war-branch-intervention-actions span {
    margin-top: 3px;
    color: #a9b8b6;
    font-size: 0.68rem;
    line-height: 1.28;
}

.frontier-war-branch-intervention-history {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.frontier-war-branch-intervention-history span {
    min-width: 0;
    padding: 4px 8px;
    border: 1px solid rgba(116, 214, 202, 0.22);
    border-radius: 999px;
    color: #c8d7d4;
    background: rgba(116, 214, 202, 0.055);
    font-size: 0.72rem;
    overflow-wrap: anywhere;
}

.frontier-war-branch-intervention-history b {
    margin-right: 5px;
    color: #74d6ca;
}

.frontier-war-season-branch-memory {
    display: grid;
    grid-template-columns: minmax(0, 1.3fr) repeat(auto-fit, minmax(120px, 0.7fr));
    gap: 6px;
    align-items: stretch;
}

.frontier-war-season-branch-memory article,
.frontier-war-season-branch-memory span {
    min-width: 0;
    padding: 7px 8px;
    border: 1px solid rgba(240, 199, 110, 0.18);
    border-radius: 8px;
    background: rgba(240, 199, 110, 0.055);
    overflow-wrap: anywhere;
}

.frontier-war-season-branch-memory article.warning,
.frontier-war-season-branch-memory span.warning {
    border-color: rgba(240, 199, 110, 0.34);
}

.frontier-war-season-branch-memory article.danger,
.frontier-war-season-branch-memory span.danger {
    border-color: rgba(216, 95, 95, 0.34);
}

.frontier-war-season-branch-memory article.success,
.frontier-war-season-branch-memory span.success {
    border-color: rgba(116, 214, 202, 0.34);
}

.frontier-war-season-branch-memory span {
    display: flex;
    min-height: 54px;
    flex-direction: column;
    justify-content: center;
    color: #c8d7d4;
    font-size: 0.72rem;
    line-height: 1.28;
}

.frontier-war-season-branch-memory b {
    margin-bottom: 2px;
    color: #f0c76e;
}

.frontier-war-branch-misdirection-actions {
    display: grid;
    grid-column: 1 / -1;
    grid-template-columns: repeat(auto-fit, minmax(138px, 1fr));
    gap: 6px;
}

.frontier-war-branch-misdirection-actions button {
    min-width: 0;
    padding: 7px 8px;
    border: 1px solid rgba(240, 199, 110, 0.22);
    border-radius: 8px;
    color: #f2e6c7;
    background: rgba(240, 199, 110, 0.055);
    text-align: left;
    cursor: pointer;
}

.frontier-war-branch-misdirection-actions button.info {
    border-color: rgba(116, 214, 202, 0.28);
}

.frontier-war-branch-misdirection-actions button.warning {
    border-color: rgba(240, 199, 110, 0.34);
}

.frontier-war-branch-misdirection-actions button.danger {
    border-color: rgba(216, 95, 95, 0.34);
}

.frontier-war-branch-misdirection-actions button:disabled {
    cursor: not-allowed;
    opacity: 0.48;
}

.frontier-war-branch-misdirection-actions button:not(:disabled):hover {
    border-color: rgba(116, 214, 202, 0.45);
    background: rgba(116, 214, 202, 0.08);
}

.frontier-war-branch-misdirection-actions strong,
.frontier-war-branch-misdirection-actions span {
    display: block;
    min-width: 0;
    overflow-wrap: anywhere;
}

.frontier-war-branch-misdirection-actions span {
    margin-top: 3px;
    color: #a9b8b6;
    font-size: 0.68rem;
    line-height: 1.28;
}

.frontier-war-branch-misdirection-history {
    display: flex;
    grid-column: 1 / -1;
    flex-wrap: wrap;
    gap: 6px;
}

.frontier-war-branch-misdirection-history span {
    min-width: 0;
    padding: 4px 8px;
    border: 1px solid rgba(240, 199, 110, 0.22);
    border-radius: 999px;
    color: #c8d7d4;
    background: rgba(240, 199, 110, 0.055);
    font-size: 0.72rem;
    overflow-wrap: anywhere;
}

.frontier-war-branch-misdirection-history b {
    margin-right: 5px;
    color: #f0c76e;
}

.frontier-war-branch-misdirection-economy {
    display: grid;
    grid-column: 1 / -1;
    grid-template-columns: minmax(0, 1.2fr) repeat(auto-fit, minmax(120px, 0.8fr));
    gap: 6px;
}

.frontier-war-branch-misdirection-economy article,
.frontier-war-branch-misdirection-economy span {
    min-width: 0;
    padding: 7px 8px;
    border: 1px solid rgba(116, 214, 202, 0.2);
    border-radius: 8px;
    color: #c8d7d4;
    background: rgba(116, 214, 202, 0.055);
    overflow-wrap: anywhere;
}

.frontier-war-branch-misdirection-economy article.warning,
.frontier-war-branch-misdirection-economy span.warning {
    border-color: rgba(240, 199, 110, 0.34);
}

.frontier-war-branch-misdirection-economy article.danger,
.frontier-war-branch-misdirection-economy span.danger {
    border-color: rgba(216, 95, 95, 0.34);
}

.frontier-war-branch-misdirection-economy strong,
.frontier-war-branch-misdirection-economy b {
    color: #74d6ca;
}

.frontier-war-branch-misdirection-economy p,
.frontier-war-branch-misdirection-economy em {
    display: block;
    margin: 4px 0 0;
    color: #a9b8b6;
    font-size: 0.72rem;
    line-height: 1.3;
}

.frontier-war-counterintel-tasks,
.frontier-war-intelligence-archive,
.frontier-war-intelligence-legacy,
.frontier-war-intelligence-counterplay,
.frontier-war-enemy-tactics,
.frontier-war-tactical-legacy,
.frontier-war-tactical-counterplay,
.frontier-war-tactical-objectives,
.frontier-war-tactical-objective-collection,
.frontier-war-tactical-challenge-chain,
.frontier-war-tactical-challenge-intervention,
.frontier-war-tactical-challenge-adaptation,
.frontier-war-tactical-adaptation-archive,
.frontier-war-tactical-trend-profile,
.frontier-war-tactical-preparation,
.frontier-war-tactical-preparation-fulfillment,
.frontier-war-tactical-adjustment-fulfillment,
.frontier-war-tactical-late-memory,
.frontier-war-tactical-late-style,
.frontier-war-tactical-style-counter {
    display: grid;
    grid-column: 1 / -1;
    grid-template-columns: minmax(0, 1.2fr) repeat(auto-fit, minmax(132px, 0.8fr));
    gap: 6px;
}

.frontier-war-counterintel-tasks article,
.frontier-war-counterintel-tasks button,
.frontier-war-counterintel-tasks span,
.frontier-war-intelligence-archive article,
.frontier-war-intelligence-archive span,
.frontier-war-intelligence-legacy article,
.frontier-war-intelligence-legacy span,
.frontier-war-intelligence-counterplay article,
.frontier-war-intelligence-counterplay span,
.frontier-war-enemy-tactics article,
.frontier-war-enemy-tactics button,
.frontier-war-tactical-legacy article,
.frontier-war-tactical-counterplay article,
.frontier-war-tactical-objectives article,
.frontier-war-tactical-objective-collection article,
.frontier-war-tactical-challenge-chain article,
.frontier-war-tactical-challenge-intervention article,
.frontier-war-tactical-challenge-intervention button,
.frontier-war-tactical-challenge-adaptation article,
.frontier-war-tactical-adaptation-archive article,
.frontier-war-tactical-trend-profile article,
.frontier-war-tactical-preparation article,
.frontier-war-tactical-preparation button,
.frontier-war-tactical-preparation-fulfillment article,
.frontier-war-tactical-preparation-fulfillment button,
.frontier-war-tactical-adjustment-fulfillment article,
.frontier-war-tactical-late-memory article,
.frontier-war-tactical-late-style article,
.frontier-war-tactical-style-counter article,
.frontier-war-tactical-style-counter button {
    min-width: 0;
    padding: 7px 8px;
    border: 1px solid rgba(179, 224, 212, 0.18);
    border-radius: 8px;
    color: #c8d7d4;
    background: rgba(255, 255, 255, 0.04);
    overflow-wrap: anywhere;
}

.frontier-war-counterintel-tasks button,
.frontier-war-enemy-tactics button,
.frontier-war-tactical-challenge-intervention button,
.frontier-war-tactical-preparation button,
.frontier-war-tactical-preparation-fulfillment button,
.frontier-war-tactical-style-counter button {
    text-align: left;
    cursor: pointer;
}

.frontier-war-counterintel-tasks button:disabled,
.frontier-war-enemy-tactics button:disabled,
.frontier-war-tactical-challenge-intervention button:disabled,
.frontier-war-tactical-preparation button:disabled,
.frontier-war-tactical-preparation-fulfillment button:disabled,
.frontier-war-tactical-style-counter button:disabled {
    cursor: not-allowed;
    opacity: 0.5;
}

.frontier-war-counterintel-tasks button:not(:disabled):hover,
.frontier-war-enemy-tactics button:not(:disabled):hover,
.frontier-war-tactical-challenge-intervention button:not(:disabled):hover,
.frontier-war-tactical-preparation button:not(:disabled):hover,
.frontier-war-tactical-preparation-fulfillment button:not(:disabled):hover,
.frontier-war-tactical-style-counter button:not(:disabled):hover {
    border-color: rgba(116, 214, 202, 0.45);
    background: rgba(116, 214, 202, 0.08);
}

.frontier-war-tactical-preparation button.recommended,
.frontier-war-tactical-preparation-fulfillment button.recommended {
    border-color: rgba(240, 199, 110, 0.46);
    background: rgba(240, 199, 110, 0.08);
}

.frontier-war-counterintel-tasks .success,
.frontier-war-intelligence-archive .success,
.frontier-war-intelligence-legacy .success,
.frontier-war-intelligence-counterplay .success,
.frontier-war-enemy-tactics .success,
.frontier-war-tactical-legacy .success,
.frontier-war-tactical-counterplay .success,
.frontier-war-tactical-objectives .success,
.frontier-war-tactical-objective-collection .success,
.frontier-war-tactical-challenge-chain .success,
.frontier-war-tactical-challenge-intervention .success,
.frontier-war-tactical-challenge-adaptation .success,
.frontier-war-tactical-adaptation-archive .success,
.frontier-war-tactical-trend-profile .success,
.frontier-war-tactical-preparation .success,
.frontier-war-tactical-preparation-fulfillment .success,
.frontier-war-tactical-adjustment-fulfillment .success,
.frontier-war-tactical-late-memory .success,
.frontier-war-tactical-late-style .success,
.frontier-war-tactical-style-counter .success,
.frontier-war-counterintel-tasks button.success {
    border-color: rgba(116, 214, 202, 0.34);
}

.frontier-war-counterintel-tasks .warning,
.frontier-war-intelligence-archive .warning,
.frontier-war-intelligence-legacy .warning,
.frontier-war-intelligence-counterplay .warning,
.frontier-war-enemy-tactics .warning,
.frontier-war-tactical-legacy .warning,
.frontier-war-tactical-counterplay .warning,
.frontier-war-tactical-objectives .warning,
.frontier-war-tactical-objective-collection .warning,
.frontier-war-tactical-challenge-chain .warning,
.frontier-war-tactical-challenge-intervention .warning,
.frontier-war-tactical-challenge-adaptation .warning,
.frontier-war-tactical-adaptation-archive .warning,
.frontier-war-tactical-trend-profile .warning,
.frontier-war-tactical-preparation .warning,
.frontier-war-tactical-preparation-fulfillment .warning,
.frontier-war-tactical-adjustment-fulfillment .warning,
.frontier-war-tactical-late-memory .warning,
.frontier-war-tactical-late-style .warning,
.frontier-war-tactical-style-counter .warning,
.frontier-war-counterintel-tasks button.warning {
    border-color: rgba(240, 199, 110, 0.34);
}

.frontier-war-counterintel-tasks .danger,
.frontier-war-intelligence-archive .danger,
.frontier-war-intelligence-legacy .danger,
.frontier-war-intelligence-counterplay .danger,
.frontier-war-enemy-tactics .danger,
.frontier-war-tactical-legacy .danger,
.frontier-war-tactical-counterplay .danger,
.frontier-war-tactical-objectives .danger,
.frontier-war-tactical-objective-collection .danger,
.frontier-war-tactical-challenge-chain .danger,
.frontier-war-tactical-challenge-intervention .danger,
.frontier-war-tactical-challenge-adaptation .danger,
.frontier-war-tactical-adaptation-archive .danger,
.frontier-war-tactical-trend-profile .danger,
.frontier-war-tactical-preparation .danger,
.frontier-war-tactical-preparation-fulfillment .danger,
.frontier-war-tactical-adjustment-fulfillment .danger,
.frontier-war-tactical-late-memory .danger,
.frontier-war-tactical-late-style .danger,
.frontier-war-tactical-style-counter .danger,
.frontier-war-counterintel-tasks button.danger {
    border-color: rgba(216, 95, 95, 0.34);
}

.frontier-war-counterintel-tasks strong,
.frontier-war-counterintel-tasks b,
.frontier-war-intelligence-archive strong,
.frontier-war-intelligence-archive b,
.frontier-war-intelligence-legacy strong,
.frontier-war-intelligence-legacy b,
.frontier-war-intelligence-counterplay strong,
.frontier-war-intelligence-counterplay b,
.frontier-war-enemy-tactics strong,
.frontier-war-enemy-tactics b,
.frontier-war-tactical-legacy strong,
.frontier-war-tactical-legacy b,
.frontier-war-tactical-counterplay strong,
.frontier-war-tactical-counterplay b,
.frontier-war-tactical-objectives strong,
.frontier-war-tactical-objectives b,
.frontier-war-tactical-objective-collection strong,
.frontier-war-tactical-objective-collection b,
.frontier-war-tactical-challenge-chain strong,
.frontier-war-tactical-challenge-chain b,
.frontier-war-tactical-challenge-intervention strong,
.frontier-war-tactical-challenge-intervention b,
.frontier-war-tactical-challenge-adaptation strong,
.frontier-war-tactical-challenge-adaptation b,
.frontier-war-tactical-adaptation-archive strong,
.frontier-war-tactical-adaptation-archive b,
.frontier-war-tactical-trend-profile strong,
.frontier-war-tactical-trend-profile b,
.frontier-war-tactical-preparation strong,
.frontier-war-tactical-preparation b,
.frontier-war-tactical-preparation-fulfillment strong,
.frontier-war-tactical-preparation-fulfillment b,
.frontier-war-tactical-adjustment-fulfillment strong,
.frontier-war-tactical-adjustment-fulfillment b,
.frontier-war-tactical-late-memory strong,
.frontier-war-tactical-late-memory b,
.frontier-war-tactical-late-style strong,
.frontier-war-tactical-late-style b,
.frontier-war-tactical-style-counter strong,
.frontier-war-tactical-style-counter b {
    color: #f0c76e;
}

.frontier-war-counterintel-tasks p,
.frontier-war-counterintel-tasks em,
.frontier-war-counterintel-tasks span,
.frontier-war-intelligence-archive p,
.frontier-war-intelligence-archive em,
.frontier-war-intelligence-archive span,
.frontier-war-intelligence-legacy p,
.frontier-war-intelligence-legacy em,
.frontier-war-intelligence-legacy span,
.frontier-war-intelligence-counterplay p,
.frontier-war-intelligence-counterplay em,
.frontier-war-intelligence-counterplay span,
.frontier-war-enemy-tactics p,
.frontier-war-enemy-tactics em,
.frontier-war-enemy-tactics span,
.frontier-war-tactical-legacy p,
.frontier-war-tactical-legacy em,
.frontier-war-tactical-counterplay p,
.frontier-war-tactical-counterplay em,
.frontier-war-tactical-objectives p,
.frontier-war-tactical-objectives em,
.frontier-war-tactical-objective-collection p,
.frontier-war-tactical-objective-collection em,
.frontier-war-tactical-challenge-chain p,
.frontier-war-tactical-challenge-chain em,
.frontier-war-tactical-challenge-intervention p,
.frontier-war-tactical-challenge-intervention em,
.frontier-war-tactical-challenge-intervention span,
.frontier-war-tactical-challenge-adaptation p,
.frontier-war-tactical-challenge-adaptation em,
.frontier-war-tactical-adaptation-archive p,
.frontier-war-tactical-adaptation-archive em,
.frontier-war-tactical-trend-profile p,
.frontier-war-tactical-trend-profile em,
.frontier-war-tactical-preparation p,
.frontier-war-tactical-preparation em,
.frontier-war-tactical-preparation span,
.frontier-war-tactical-preparation-fulfillment p,
.frontier-war-tactical-preparation-fulfillment em,
.frontier-war-tactical-preparation-fulfillment span,
.frontier-war-tactical-adjustment-fulfillment p,
.frontier-war-tactical-adjustment-fulfillment em,
.frontier-war-tactical-adjustment-fulfillment span,
.frontier-war-tactical-late-memory p,
.frontier-war-tactical-late-memory em,
.frontier-war-tactical-late-memory span,
.frontier-war-tactical-late-style p,
.frontier-war-tactical-late-style em,
.frontier-war-tactical-late-style span,
.frontier-war-tactical-style-counter p,
.frontier-war-tactical-style-counter em,
.frontier-war-tactical-style-counter span {
    display: block;
    margin: 4px 0 0;
    color: #a9b8b6;
    font-size: 0.72rem;
    line-height: 1.3;
}

.frontier-war-report-intelligence-counterplay,
.frontier-war-report-enemy-tactics,
.frontier-war-report-tactical-legacy,
.frontier-war-report-tactical-counterplay,
.frontier-war-report-tactical-objectives,
.frontier-war-report-tactical-objective-collection,
.frontier-war-report-tactical-challenge-chain,
.frontier-war-report-tactical-challenge-intervention,
.frontier-war-report-tactical-challenge-adaptation,
.frontier-war-report-tactical-adaptation-archive,
.frontier-war-report-tactical-trend-profile,
.frontier-war-report-tactical-preparation,
.frontier-war-report-tactical-preparation-fulfillment,
.frontier-war-report-tactical-adjustment-fulfillment,
.frontier-war-report-tactical-late-memory,
.frontier-war-report-tactical-late-style,
.frontier-war-report-tactical-style-counter {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 8px;
}

.frontier-war-report-intelligence-counterplay article,
.frontier-war-report-enemy-tactics article,
.frontier-war-report-tactical-legacy article,
.frontier-war-report-tactical-counterplay article,
.frontier-war-report-tactical-objectives article,
.frontier-war-report-tactical-objective-collection article,
.frontier-war-report-tactical-challenge-chain article,
.frontier-war-report-tactical-challenge-intervention article,
.frontier-war-report-tactical-challenge-adaptation article,
.frontier-war-report-tactical-adaptation-archive article,
.frontier-war-report-tactical-trend-profile article,
.frontier-war-report-tactical-preparation article,
.frontier-war-report-tactical-preparation-fulfillment article,
.frontier-war-report-tactical-adjustment-fulfillment article,
.frontier-war-report-tactical-late-memory article,
.frontier-war-report-tactical-late-style article,
.frontier-war-report-tactical-style-counter article {
    min-width: 0;
    padding: 8px;
    border: 1px solid rgba(179, 224, 212, 0.14);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.035);
}

.frontier-war-report-intelligence-counterplay article.main,
.frontier-war-report-enemy-tactics article.main,
.frontier-war-report-tactical-legacy article.main,
.frontier-war-report-tactical-counterplay article.main,
.frontier-war-report-tactical-objectives article.main,
.frontier-war-report-tactical-objective-collection article.main,
.frontier-war-report-tactical-challenge-chain article.main,
.frontier-war-report-tactical-challenge-intervention article.main,
.frontier-war-report-tactical-challenge-adaptation article.main,
.frontier-war-report-tactical-adaptation-archive article.main,
.frontier-war-report-tactical-trend-profile article.main,
.frontier-war-report-tactical-preparation article.main,
.frontier-war-report-tactical-preparation-fulfillment article.main,
.frontier-war-report-tactical-adjustment-fulfillment article.main,
.frontier-war-report-tactical-late-memory article.main,
.frontier-war-report-tactical-late-style article.main,
.frontier-war-report-tactical-style-counter article.main {
    border-color: rgba(240, 199, 110, 0.38);
    background: rgba(240, 199, 110, 0.065);
}

.frontier-war-report-intelligence-counterplay article.success,
.frontier-war-report-enemy-tactics article.success,
.frontier-war-report-tactical-legacy article.success,
.frontier-war-report-tactical-counterplay article.success,
.frontier-war-report-tactical-objectives article.success,
.frontier-war-report-tactical-objective-collection article.success,
.frontier-war-report-tactical-challenge-chain article.success,
.frontier-war-report-tactical-challenge-intervention article.success,
.frontier-war-report-tactical-challenge-adaptation article.success,
.frontier-war-report-tactical-adaptation-archive article.success,
.frontier-war-report-tactical-trend-profile article.success,
.frontier-war-report-tactical-preparation article.success,
.frontier-war-report-tactical-preparation-fulfillment article.success,
.frontier-war-report-tactical-adjustment-fulfillment article.success,
.frontier-war-report-tactical-late-memory article.success,
.frontier-war-report-tactical-late-style article.success,
.frontier-war-report-tactical-style-counter article.success {
    border-color: rgba(116, 214, 202, 0.34);
}

.frontier-war-report-intelligence-counterplay article.warning,
.frontier-war-report-enemy-tactics article.warning,
.frontier-war-report-tactical-legacy article.warning,
.frontier-war-report-tactical-counterplay article.warning,
.frontier-war-report-tactical-objectives article.warning,
.frontier-war-report-tactical-objective-collection article.warning,
.frontier-war-report-tactical-challenge-chain article.warning,
.frontier-war-report-tactical-challenge-intervention article.warning,
.frontier-war-report-tactical-challenge-adaptation article.warning,
.frontier-war-report-tactical-adaptation-archive article.warning,
.frontier-war-report-tactical-trend-profile article.warning,
.frontier-war-report-tactical-preparation article.warning,
.frontier-war-report-tactical-preparation-fulfillment article.warning,
.frontier-war-report-tactical-adjustment-fulfillment article.warning,
.frontier-war-report-tactical-late-memory article.warning,
.frontier-war-report-tactical-late-style article.warning,
.frontier-war-report-tactical-style-counter article.warning {
    border-color: rgba(240, 199, 110, 0.34);
}

.frontier-war-report-intelligence-counterplay article.danger,
.frontier-war-report-enemy-tactics article.danger,
.frontier-war-report-tactical-legacy article.danger,
.frontier-war-report-tactical-counterplay article.danger,
.frontier-war-report-tactical-objectives article.danger,
.frontier-war-report-tactical-objective-collection article.danger,
.frontier-war-report-tactical-challenge-chain article.danger,
.frontier-war-report-tactical-challenge-intervention article.danger,
.frontier-war-report-tactical-challenge-adaptation article.danger,
.frontier-war-report-tactical-adaptation-archive article.danger,
.frontier-war-report-tactical-trend-profile article.danger,
.frontier-war-report-tactical-preparation article.danger,
.frontier-war-report-tactical-preparation-fulfillment article.danger,
.frontier-war-report-tactical-adjustment-fulfillment article.danger,
.frontier-war-report-tactical-late-memory article.danger,
.frontier-war-report-tactical-late-style article.danger,
.frontier-war-report-tactical-style-counter article.danger {
    border-color: rgba(216, 95, 95, 0.34);
}

.frontier-war-report-intelligence-counterplay strong,
.frontier-war-report-enemy-tactics strong,
.frontier-war-report-tactical-legacy strong,
.frontier-war-report-tactical-counterplay strong,
.frontier-war-report-tactical-objectives strong,
.frontier-war-report-tactical-objective-collection strong,
.frontier-war-report-tactical-challenge-chain strong,
.frontier-war-report-tactical-challenge-intervention strong,
.frontier-war-report-tactical-challenge-adaptation strong,
.frontier-war-report-tactical-adaptation-archive strong,
.frontier-war-report-tactical-trend-profile strong,
.frontier-war-report-tactical-preparation strong,
.frontier-war-report-tactical-preparation-fulfillment strong,
.frontier-war-report-tactical-adjustment-fulfillment strong,
.frontier-war-report-tactical-late-memory strong,
.frontier-war-report-tactical-late-style strong,
.frontier-war-report-tactical-style-counter strong {
    color: #f2e6c7;
}

.frontier-war-report-intelligence-counterplay p,
.frontier-war-report-intelligence-counterplay em,
.frontier-war-report-enemy-tactics p,
.frontier-war-report-enemy-tactics em,
.frontier-war-report-tactical-legacy p,
.frontier-war-report-tactical-legacy em,
.frontier-war-report-tactical-counterplay p,
.frontier-war-report-tactical-counterplay em,
.frontier-war-report-tactical-objectives p,
.frontier-war-report-tactical-objectives em,
.frontier-war-report-tactical-objective-collection p,
.frontier-war-report-tactical-objective-collection em,
.frontier-war-report-tactical-challenge-chain p,
.frontier-war-report-tactical-challenge-chain em,
.frontier-war-report-tactical-challenge-intervention p,
.frontier-war-report-tactical-challenge-intervention em,
.frontier-war-report-tactical-challenge-adaptation p,
.frontier-war-report-tactical-challenge-adaptation em,
.frontier-war-report-tactical-adaptation-archive p,
.frontier-war-report-tactical-adaptation-archive em,
.frontier-war-report-tactical-trend-profile p,
.frontier-war-report-tactical-trend-profile em,
.frontier-war-report-tactical-preparation p,
.frontier-war-report-tactical-preparation em,
.frontier-war-report-tactical-preparation-fulfillment p,
.frontier-war-report-tactical-preparation-fulfillment em,
.frontier-war-report-tactical-adjustment-fulfillment p,
.frontier-war-report-tactical-adjustment-fulfillment em,
.frontier-war-report-tactical-late-memory p,
.frontier-war-report-tactical-late-memory em,
.frontier-war-report-tactical-late-style p,
.frontier-war-report-tactical-late-style em,
.frontier-war-report-tactical-style-counter p,
.frontier-war-report-tactical-style-counter em,
.frontier-war-report-enemy-pressure-budget p,
.frontier-war-report-enemy-pressure-budget em,
.frontier-war-report-enemy-pressure-control p,
.frontier-war-report-enemy-pressure-control em,
.frontier-war-report-pressure-archive p,
.frontier-war-report-pressure-archive em {
    display: block;
    margin: 4px 0 0;
    color: #a9b8b6;
    font-size: 0.74rem;
    line-height: 1.36;
    overflow-wrap: anywhere;
}

.frontier-war-tactical-style-ecology {
    display: grid;
    grid-column: 1 / -1;
    grid-template-columns: minmax(0, 1.2fr) repeat(auto-fit, minmax(132px, 0.8fr));
    gap: 6px;
}

.frontier-war-tactical-style-ecology article {
    min-width: 0;
    padding: 7px 8px;
    border: 1px solid rgba(179, 224, 212, 0.18);
    border-radius: 8px;
    color: #c8d7d4;
    background: rgba(255, 255, 255, 0.04);
    overflow-wrap: anywhere;
}

.frontier-war-tactical-style-ecology .success {
    border-color: rgba(116, 214, 202, 0.34);
}

.frontier-war-tactical-style-ecology .warning {
    border-color: rgba(240, 199, 110, 0.34);
}

.frontier-war-tactical-style-ecology .danger {
    border-color: rgba(216, 95, 95, 0.34);
}

.frontier-war-tactical-style-ecology strong,
.frontier-war-tactical-style-ecology b {
    color: #f0c76e;
}

.frontier-war-tactical-style-ecology p,
.frontier-war-tactical-style-ecology em,
.frontier-war-tactical-style-ecology span {
    display: block;
    margin: 4px 0 0;
    color: #a9b8b6;
    font-size: 0.72rem;
    line-height: 1.3;
}

.frontier-war-report-tactical-style-ecology {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 8px;
}

.frontier-war-report-tactical-style-ecology article {
    min-width: 0;
    padding: 8px;
    border: 1px solid rgba(179, 224, 212, 0.14);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.035);
    overflow-wrap: anywhere;
}

.frontier-war-report-tactical-style-ecology article.main {
    border-color: rgba(240, 199, 110, 0.38);
    background: rgba(240, 199, 110, 0.065);
}

.frontier-war-report-tactical-style-ecology article.success {
    border-color: rgba(116, 214, 202, 0.34);
}

.frontier-war-report-tactical-style-ecology article.warning {
    border-color: rgba(240, 199, 110, 0.34);
}

.frontier-war-report-tactical-style-ecology article.danger {
    border-color: rgba(216, 95, 95, 0.34);
}

.frontier-war-report-tactical-style-ecology strong {
    color: #f2e6c7;
}

.frontier-war-report-tactical-style-ecology p,
.frontier-war-report-tactical-style-ecology em {
    display: block;
    margin: 4px 0 0;
    color: #a9b8b6;
    font-size: 0.74rem;
    line-height: 1.36;
    overflow-wrap: anywhere;
}

.frontier-war-enemy-pressure-budget {
    display: grid;
    grid-column: 1 / -1;
    grid-template-columns: minmax(0, 1.2fr) repeat(auto-fit, minmax(132px, 0.8fr));
    gap: 6px;
}

.frontier-war-enemy-pressure-control {
    display: grid;
    grid-column: 1 / -1;
    grid-template-columns: minmax(0, 1fr) repeat(auto-fit, minmax(132px, 0.8fr));
    gap: 6px;
}

.frontier-war-pressure-archive {
    display: grid;
    grid-column: 1 / -1;
    grid-template-columns: minmax(0, 1fr) repeat(auto-fit, minmax(132px, 0.8fr));
    gap: 6px;
}

.frontier-war-enemy-pressure-budget article,
.frontier-war-enemy-pressure-control article,
.frontier-war-pressure-archive article,
.frontier-war-report-enemy-pressure-budget article,
.frontier-war-report-enemy-pressure-control article,
.frontier-war-report-pressure-archive article {
    min-width: 0;
    padding: 8px;
    border: 1px solid rgba(179, 224, 212, 0.16);
    border-radius: 8px;
    color: #c8d7d4;
    background: rgba(255, 255, 255, 0.04);
    overflow-wrap: anywhere;
}

.frontier-war-enemy-pressure-budget article.main,
.frontier-war-enemy-pressure-control article.main,
.frontier-war-pressure-archive article.main,
.frontier-war-report-enemy-pressure-budget article.main,
.frontier-war-report-enemy-pressure-control article.main,
.frontier-war-report-pressure-archive article.main {
    border-color: rgba(240, 199, 110, 0.34);
    background: rgba(240, 199, 110, 0.065);
}

.frontier-war-enemy-pressure-budget article.success,
.frontier-war-enemy-pressure-control article.success,
.frontier-war-pressure-archive article.success,
.frontier-war-report-enemy-pressure-budget article.success,
.frontier-war-report-enemy-pressure-control article.success,
.frontier-war-report-pressure-archive article.success {
    border-color: rgba(116, 214, 202, 0.34);
}

.frontier-war-enemy-pressure-budget article.warning,
.frontier-war-enemy-pressure-control article.warning,
.frontier-war-pressure-archive article.warning,
.frontier-war-report-enemy-pressure-budget article.warning,
.frontier-war-report-enemy-pressure-control article.warning,
.frontier-war-report-pressure-archive article.warning {
    border-color: rgba(240, 199, 110, 0.36);
}

.frontier-war-enemy-pressure-budget article.danger,
.frontier-war-enemy-pressure-control article.danger,
.frontier-war-pressure-archive article.danger,
.frontier-war-report-enemy-pressure-budget article.danger,
.frontier-war-report-enemy-pressure-control article.danger,
.frontier-war-report-pressure-archive article.danger {
    border-color: rgba(216, 95, 95, 0.36);
    background: rgba(216, 95, 95, 0.07);
}

.frontier-war-enemy-pressure-budget strong,
.frontier-war-enemy-pressure-control strong,
.frontier-war-pressure-archive strong,
.frontier-war-report-enemy-pressure-budget strong,
.frontier-war-report-enemy-pressure-control strong,
.frontier-war-report-pressure-archive strong {
    color: #f2e6c7;
}

.frontier-war-enemy-pressure-budget p,
.frontier-war-enemy-pressure-budget em,
.frontier-war-enemy-pressure-control p,
.frontier-war-enemy-pressure-control em,
.frontier-war-pressure-archive p,
.frontier-war-pressure-archive em,
.frontier-war-report-enemy-pressure-budget p,
.frontier-war-report-enemy-pressure-budget em,
.frontier-war-report-enemy-pressure-control p,
.frontier-war-report-enemy-pressure-control em {
    display: block;
    margin: 4px 0 0;
    color: #a9b8b6;
    font-size: 0.73rem;
    line-height: 1.34;
    overflow-wrap: anywhere;
}

.frontier-war-enemy-pressure-control button {
    min-width: 0;
    padding: 8px;
    border: 1px solid rgba(179, 224, 212, 0.18);
    border-radius: 8px;
    color: #c8d7d4;
    background: rgba(255, 255, 255, 0.04);
    text-align: left;
    overflow-wrap: anywhere;
}

.frontier-war-enemy-pressure-control button.recommended {
    border-color: rgba(116, 214, 202, 0.38);
    background: rgba(116, 214, 202, 0.07);
}

.frontier-war-enemy-pressure-control button:disabled {
    cursor: not-allowed;
    opacity: 0.48;
}

.frontier-war-enemy-pressure-control button strong,
.frontier-war-enemy-pressure-control button span {
    display: block;
}

.frontier-war-enemy-pressure-control button span {
    margin-top: 4px;
    color: #a9b8b6;
    font-size: 0.72rem;
    line-height: 1.28;
}

.frontier-war-pressure-budget-meter {
    margin-top: 8px;
}

.frontier-war-pressure-budget-meter span {
    display: block;
    color: #f0c76e;
    font-size: 0.74rem;
}

.frontier-war-pressure-budget-meter i {
    display: block;
    width: 100%;
    height: 6px;
    margin-top: 4px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.08);
    overflow: hidden;
}

.frontier-war-pressure-budget-meter b {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #74d6ca, #f0c76e, #d85f5f);
}

.frontier-war-report-enemy-pressure-budget,
.frontier-war-report-enemy-pressure-control,
.frontier-war-report-pressure-archive {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 8px;
}

@media (max-width: 720px) {
    .frontier-war-tactical-style-ecology,
    .frontier-war-report-tactical-style-ecology,
    .frontier-war-enemy-pressure-budget,
    .frontier-war-enemy-pressure-control,
    .frontier-war-pressure-archive,
    .frontier-war-report-enemy-pressure-budget,
    .frontier-war-report-enemy-pressure-control,
    .frontier-war-report-pressure-archive {
        grid-template-columns: 1fr;
    }
}

.frontier-war-counter-list,
.frontier-war-heat-list,
.frontier-war-story-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 8px;
}

.frontier-war-counter-list span,
.frontier-war-heat-list span,
.frontier-war-story-tags span {
    min-width: 0;
    padding: 4px 8px;
    border: 1px solid rgba(179, 224, 212, 0.14);
    border-radius: 999px;
    color: #c8d7d4;
    background: rgba(255,255,255,0.045);
    font-size: 0.72rem;
    overflow-wrap: anywhere;
}

.frontier-war-counter-list b,
.frontier-war-heat-list b {
    margin-right: 5px;
    color: #f0c76e;
}

.frontier-war-storyline {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.frontier-war-storyline article {
    position: relative;
    min-width: 0;
}

.frontier-war-storyline article.done {
    border-color: rgba(116, 214, 202, 0.32);
    background: rgba(116, 214, 202, 0.07);
}

.frontier-war-storyline article.active {
    border-color: rgba(240, 199, 110, 0.38);
    background: rgba(240, 199, 110, 0.07);
}

.frontier-war-storyline article span {
    display: grid;
    place-items: center;
    width: 24px;
    height: 24px;
    margin-bottom: 7px;
    border-radius: 50%;
    color: #081012;
    background: #f0c76e;
    font-weight: 800;
    font-size: 0.75rem;
}

.frontier-war-storyline article.done span {
    background: #74d6ca;
}

.frontier-war-story-next {
    margin-top: 8px;
    border-color: rgba(240, 199, 110, 0.26);
    background: rgba(240, 199, 110, 0.06);
}

.frontier-war-campaign-main {
    border-color: rgba(240, 199, 110, 0.34);
    background: rgba(240, 199, 110, 0.07);
}

.frontier-war-review-main {
    border-color: rgba(116, 214, 202, 0.3);
    background: rgba(116, 214, 202, 0.07);
}

.frontier-war-review-main.warning {
    border-color: rgba(240, 199, 110, 0.34);
    background: rgba(240, 199, 110, 0.06);
}

.frontier-war-review-main.danger {
    border-color: rgba(216, 95, 95, 0.34);
    background: rgba(216, 95, 95, 0.08);
}

.frontier-war-campaign-main em,
.frontier-war-ending-grid article em {
    display: block;
    margin-top: 6px;
    color: #a9b8b6;
    font-size: 0.76rem;
    font-style: normal;
    line-height: 1.38;
}

.frontier-war-campaign-score {
    margin-top: 10px;
}

.frontier-war-campaign-score span {
    color: #f0c76e;
    font-size: 0.78rem;
}

.frontier-war-campaign-score i {
    display: block;
    height: 8px;
    margin-top: 7px;
    overflow: hidden;
    border-radius: 999px;
    background: rgba(255,255,255,0.08);
}

.frontier-war-campaign-score b {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #d85f5f, #f0c76e, #74d6ca);
}

.frontier-war-ending-grid {
    margin-top: 8px;
}

.frontier-war-campaign-tags,
.frontier-war-campaign-advice,
.frontier-war-review-stages,
.frontier-war-review-advice {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(156px, 1fr));
    gap: 8px;
    margin-top: 10px;
}

.frontier-war-campaign-tags article.info,
.frontier-war-campaign-advice article.info,
.frontier-war-review-stages article.success,
.frontier-war-review-advice article.success {
    border-color: rgba(116, 214, 202, 0.3);
    background: rgba(116, 214, 202, 0.07);
}

.frontier-war-campaign-tags article.warning,
.frontier-war-campaign-advice article.warning,
.frontier-war-review-stages article.warning,
.frontier-war-review-advice article.warning {
    border-color: rgba(240, 199, 110, 0.3);
    background: rgba(240, 199, 110, 0.06);
}

.frontier-war-campaign-tags article.danger,
.frontier-war-campaign-advice article.danger,
.frontier-war-review-stages article.danger,
.frontier-war-review-advice article.danger {
    border-color: rgba(216, 95, 95, 0.34);
    background: rgba(216, 95, 95, 0.08);
}

.frontier-war-review-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 9px;
}

.frontier-war-review-tags span {
    padding: 4px 8px;
    border: 1px solid rgba(179, 224, 212, 0.14);
    border-radius: 999px;
    color: #c8d7d4;
    background: rgba(255, 255, 255, 0.045);
    font-size: 0.72rem;
}

.frontier-war-review-tags span.success {
    border-color: rgba(116, 214, 202, 0.3);
    color: #74d6ca;
}

.frontier-war-review-tags span.warning {
    border-color: rgba(240, 199, 110, 0.3);
    color: #f0c76e;
}

.frontier-war-review-tags span.danger {
    border-color: rgba(216, 95, 95, 0.34);
    color: #d85f5f;
}

.frontier-war-review-stages em {
    display: block;
    margin-top: 6px;
    color: #8fb3ad;
    font-size: 0.72rem;
    font-style: normal;
    overflow-wrap: anywhere;
}

.frontier-war-ending-grid article.unlocked {
    border-color: rgba(116, 214, 202, 0.34);
    background: rgba(116, 214, 202, 0.07);
}

.frontier-war-replay-grid {
    margin-top: 8px;
}

.frontier-war-replay-grid button {
    min-height: 58px;
    padding: 9px;
    border: 1px solid rgba(179, 224, 212, 0.14);
    border-radius: 8px;
    color: #e9f1ef;
    text-align: left;
    background: rgba(255, 255, 255, 0.045);
    cursor: pointer;
}

.frontier-war-replay-grid button:hover {
    border-color: rgba(116, 214, 202, 0.45);
    background: rgba(116, 214, 202, 0.08);
}

.frontier-war-replay-grid strong,
.frontier-war-replay-grid span {
    display: block;
}

.frontier-war-replay-grid span {
    margin-top: 4px;
    color: #a9b8b6;
    font-size: 0.76rem;
    line-height: 1.35;
}

.frontier-war-mini-action {
    width: 100%;
    min-height: 32px;
    margin-top: 9px;
    padding: 6px 9px;
    border: 1px solid rgba(116, 214, 202, 0.3);
    border-radius: 8px;
    color: #e9f1ef;
    background: rgba(116, 214, 202, 0.08);
    cursor: pointer;
}

.frontier-war-mini-action:hover {
    border-color: rgba(116, 214, 202, 0.65);
    background: rgba(116, 214, 202, 0.16);
}

.frontier-war-season article em {
    display: block;
    margin-top: 6px;
    color: #a9b8b6;
    font-size: 0.74rem;
    font-style: normal;
}

.frontier-war-balance-bars {
    display: grid;
    gap: 8px;
}

.frontier-war-balance-bars div {
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr) 34px;
    gap: 8px;
    align-items: center;
    color: #a9b8b6;
    font-size: 0.78rem;
}

.frontier-war-balance-bars i {
    display: block;
    height: 8px;
    overflow: hidden;
    border-radius: 999px;
    background: rgba(255,255,255,0.08);
}

.frontier-war-balance-bars b {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #d85f5f, #f0c76e, #74d6ca);
}

.frontier-war-balance-bars strong {
    color: #f2e6c7;
    text-align: right;
}

.frontier-war-balance-notes {
    margin-top: 10px;
}

.frontier-war-balance-notes p {
    margin: 5px 0 0;
    color: #c8d7d4;
    font-size: 0.8rem;
    line-height: 1.42;
}

.frontier-war-100-audit {
    grid-column: 1 / -1;
    padding: 12px;
}

.frontier-war-geo-ecology {
    grid-column: 1 / -1;
    padding: 12px;
}

.frontier-war-war-prep {
    grid-column: 1 / -1;
    padding: 12px;
}

.frontier-war-hero-warband {
    grid-column: 1 / -1;
    padding: 12px;
}

.frontier-war-diplomacy-politics {
    grid-column: 1 / -1;
    padding: 12px;
}

.frontier-war-war-readability {
    grid-column: 1 / -1;
    padding: 12px;
}

.frontier-war-content-scale {
    grid-column: 1 / -1;
    padding: 12px;
}

.frontier-war-final-release,
.frontier-war-productization,
.frontier-war-release-candidate,
.frontier-war-current-save {
    grid-column: 1 / -1;
    padding: 12px;
}

.frontier-war-100-audit-main,
.frontier-war-100-benchmarks article,
.frontier-war-100-modules article,
.frontier-war-100-next article,
.frontier-war-commercial-packaging-main,
.frontier-war-commercial-showcase article,
.frontier-war-report-art article,
.frontier-war-report-commercial article,
.frontier-war-report-illustrated-map article,
.frontier-war-report-100-audit article,
.frontier-war-geo-main,
.frontier-war-geo-grid article,
.frontier-war-geo-regions article,
.frontier-war-geo-chokes article,
.frontier-war-geo-heartlands article,
.frontier-war-report-geo-ecology article,
.frontier-war-war-prep-main,
.frontier-war-war-prep-plans article,
.frontier-war-war-prep-lines article,
.frontier-war-report-war-prep article,
.frontier-war-hero-warband-main,
.frontier-war-hero-warband-slots article,
.frontier-war-hero-warband-bonds article,
.frontier-war-hero-warband-events article,
.frontier-war-hero-warband-memory article,
.frontier-war-hero-warband-routes article,
.frontier-war-report-hero-warband article,
.frontier-war-diplomacy-main,
.frontier-war-diplomacy-agendas article,
.frontier-war-diplomacy-actions article,
.frontier-war-diplomacy-seats article,
.frontier-war-diplomacy-coalition article,
.frontier-war-report-diplomacy-politics article,
.frontier-war-war-readability-main,
.frontier-war-readability-tutorial article,
.frontier-war-readability-layers article,
.frontier-war-readability-reports article,
.frontier-war-readability-coach article,
.frontier-war-readability-terms article,
.frontier-war-report-war-readability article,
.frontier-war-content-scale-main,
.frontier-war-content-scenarios article,
.frontier-war-content-factions article,
.frontier-war-content-heroes article,
.frontier-war-content-terrain article,
.frontier-war-content-endings article,
.frontier-war-content-runs article,
.frontier-war-report-content-scale article,
.frontier-war-final-release-main,
.frontier-war-final-playtest article,
.frontier-war-final-matrix article,
.frontier-war-final-difficulty article,
.frontier-war-final-checks article,
.frontier-war-report-final-release article,
.frontier-war-productization-main,
.frontier-war-productization-routes article,
.frontier-war-productization-calendar article,
.frontier-war-productization-copy article,
.frontier-war-productization-gates article,
.frontier-war-report-productization article,
.frontier-war-release-candidate-main,
.frontier-war-release-candidate-gates article,
.frontier-war-release-candidate-commands article,
.frontier-war-release-candidate-artifacts article,
.frontier-war-report-release-candidate article,
.frontier-war-current-save-main,
.frontier-war-current-save-grid article,
.frontier-war-report-current-save article {
    min-width: 0;
    padding: 9px;
    border: 1px solid rgba(179, 224, 212, 0.16);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.04);
    overflow-wrap: anywhere;
}

.frontier-war-100-audit-main,
.frontier-war-commercial-packaging-main,
.frontier-war-report-art article.main,
.frontier-war-report-commercial article.main,
.frontier-war-report-illustrated-map article.main,
.frontier-war-report-100-audit article.main,
.frontier-war-geo-main,
.frontier-war-report-geo-ecology article.main,
.frontier-war-war-prep-main,
.frontier-war-report-war-prep article.main,
.frontier-war-hero-warband-main,
.frontier-war-report-hero-warband article.main,
.frontier-war-diplomacy-main,
.frontier-war-report-diplomacy-politics article.main,
.frontier-war-war-readability-main,
.frontier-war-report-war-readability article.main,
.frontier-war-content-scale-main,
.frontier-war-report-content-scale article.main,
.frontier-war-final-release-main,
.frontier-war-report-final-release article.main,
.frontier-war-productization-main,
.frontier-war-report-productization article.main,
.frontier-war-release-candidate-main,
.frontier-war-report-release-candidate article.main,
.frontier-war-current-save-main,
.frontier-war-report-current-save article.main {
    border-color: rgba(240, 199, 110, 0.36);
    background: rgba(240, 199, 110, 0.065);
}

.frontier-war-100-benchmarks,
.frontier-war-commercial-showcase,
.frontier-war-report-art,
.frontier-war-report-commercial,
.frontier-war-report-illustrated-map,
.frontier-war-report-100-audit,
.frontier-war-report-geo-ecology,
.frontier-war-report-war-prep,
.frontier-war-report-hero-warband,
.frontier-war-report-diplomacy-politics,
.frontier-war-report-war-readability,
.frontier-war-report-content-scale,
.frontier-war-report-final-release,
.frontier-war-report-productization,
.frontier-war-report-release-candidate,
.frontier-war-report-current-save {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(168px, 1fr));
    gap: 8px;
    margin-top: 8px;
}

.frontier-war-100-modules {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(142px, 1fr));
    gap: 7px;
    margin-top: 8px;
}

.frontier-war-100-next {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
    gap: 8px;
    margin-top: 8px;
}

.frontier-war-geo-kpis,
.frontier-war-geo-grid,
.frontier-war-geo-regions,
.frontier-war-geo-chokes,
.frontier-war-geo-heartlands,
.frontier-war-war-prep-kpis,
.frontier-war-war-prep-plans,
.frontier-war-war-prep-lines,
.frontier-war-hero-warband-kpis,
.frontier-war-hero-warband-slots,
.frontier-war-hero-warband-bonds,
.frontier-war-hero-warband-events,
.frontier-war-hero-warband-memory,
.frontier-war-hero-warband-routes,
.frontier-war-diplomacy-kpis,
.frontier-war-diplomacy-agendas,
.frontier-war-diplomacy-actions,
.frontier-war-diplomacy-seats,
.frontier-war-diplomacy-coalition,
.frontier-war-readability-kpis,
.frontier-war-readability-tutorial,
.frontier-war-readability-layers,
.frontier-war-readability-reports,
.frontier-war-readability-coach,
.frontier-war-readability-terms,
.frontier-war-content-kpis,
.frontier-war-content-scenarios,
.frontier-war-content-factions,
.frontier-war-content-heroes,
.frontier-war-content-terrain,
.frontier-war-content-endings,
.frontier-war-content-runs,
.frontier-war-final-kpis,
.frontier-war-final-playtest,
.frontier-war-final-matrix,
.frontier-war-final-difficulty,
.frontier-war-final-checks,
.frontier-war-productization-kpis,
.frontier-war-productization-routes,
.frontier-war-productization-calendar,
.frontier-war-productization-copy,
.frontier-war-productization-gates,
.frontier-war-release-candidate-kpis,
.frontier-war-release-candidate-gates,
.frontier-war-release-candidate-commands,
.frontier-war-release-candidate-artifacts,
.frontier-war-current-save-kpis,
.frontier-war-current-save-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(156px, 1fr));
    gap: 8px;
    margin-top: 8px;
}

.frontier-war-geo-kpis span,
.frontier-war-war-prep-kpis span,
.frontier-war-hero-warband-kpis span,
.frontier-war-diplomacy-kpis span,
.frontier-war-readability-kpis span,
.frontier-war-content-kpis span,
.frontier-war-final-kpis span,
.frontier-war-productization-kpis span,
.frontier-war-release-candidate-kpis span,
.frontier-war-current-save-kpis span {
    min-width: 0;
    padding: 7px 8px;
    border: 1px solid rgba(116, 214, 202, 0.18);
    border-radius: 8px;
    color: #f2e6c7;
    background: rgba(116, 214, 202, 0.055);
    font-size: 0.74rem;
    overflow-wrap: anywhere;
}

.frontier-war-commercial-packaging {
    grid-column: 1 / -1;
    padding: 12px;
    border-color: rgba(240, 199, 110, 0.28);
}

.frontier-war-commercial-packaging-main {
    background:
        linear-gradient(180deg, rgba(240, 199, 110, 0.09), rgba(116, 214, 202, 0.045)),
        rgba(8, 16, 18, 0.62);
}

.frontier-war-commercial-packaging-kpis,
.frontier-war-commercial-assets {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 8px;
}

.frontier-war-commercial-packaging-kpis span,
.frontier-war-commercial-assets span {
    min-width: 0;
    padding: 5px 8px;
    border: 1px solid rgba(240, 199, 110, 0.16);
    border-radius: 999px;
    color: #c8d7d4;
    background: rgba(255, 255, 255, 0.045);
    font-size: 0.72rem;
    overflow-wrap: anywhere;
}

.frontier-war-commercial-packaging-kpis b {
    margin-right: 4px;
    color: #f0c76e;
}

.frontier-war-commercial-showcase article.showdown {
    border-color: color-mix(in srgb, var(--fw-rival, #d85f5f) 42%, transparent);
    background:
        radial-gradient(circle at 100% 0, color-mix(in srgb, var(--fw-rival, #d85f5f) 18%, transparent), transparent 56%),
        rgba(255, 255, 255, 0.045);
}

.frontier-war-commercial-showcase article.showdown strong {
    display: block;
    margin: 5px 0;
    color: #f0c76e;
    font-size: 1rem;
}

.frontier-war-asset-polish {
    grid-column: 1 / -1;
    padding: 12px;
    border-color: rgba(116, 214, 202, 0.26);
}

.frontier-war-asset-polish-main {
    background:
        linear-gradient(135deg, rgba(116, 214, 202, 0.1), rgba(240, 199, 110, 0.055)),
        rgba(8, 16, 18, 0.62);
}

.frontier-war-asset-polish-main em {
    display: block;
    margin-top: 7px;
    color: #f0c76e;
    font-size: 0.74rem;
    font-style: normal;
}

.frontier-war-asset-cast,
.frontier-war-shot-deck,
.frontier-war-report-asset-polish {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
    margin-top: 8px;
}

.frontier-war-report-asset-polish {
    grid-template-columns: 1.2fr repeat(2, minmax(0, 0.9fr));
}

.frontier-war-asset-cast article,
.frontier-war-shot-deck article,
.frontier-war-report-asset-polish article {
    min-width: 0;
    padding: 10px;
    border: 1px solid rgba(116, 214, 202, 0.16);
    border-radius: 8px;
    background:
        radial-gradient(circle at 100% 0, color-mix(in srgb, var(--fw-portrait, #74d6ca) 13%, transparent), transparent 48%),
        rgba(255, 255, 255, 0.045);
}

.frontier-war-asset-cast b,
.frontier-war-shot-deck span {
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    margin-bottom: 7px;
    border: 1px solid color-mix(in srgb, var(--fw-portrait, #74d6ca) 45%, transparent);
    border-radius: 50%;
    color: var(--fw-portrait, #74d6ca);
    background: color-mix(in srgb, var(--fw-portrait, #74d6ca) 12%, rgba(6, 13, 15, 0.78));
}

.frontier-war-asset-cast strong,
.frontier-war-shot-deck strong,
.frontier-war-report-asset-polish strong {
    display: block;
    color: #f2e6c7;
    font-size: 0.82rem;
    line-height: 1.2;
    overflow-wrap: anywhere;
}

.frontier-war-asset-cast p,
.frontier-war-asset-cast em,
.frontier-war-shot-deck p,
.frontier-war-shot-deck em,
.frontier-war-report-asset-polish p,
.frontier-war-report-asset-polish em {
    display: block;
    margin: 5px 0 0;
    color: #a9b8b6;
    font-size: 0.72rem;
    font-style: normal;
    line-height: 1.34;
    overflow-wrap: anywhere;
}

.frontier-war-asset-tracks {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 8px;
}

.frontier-war-asset-tracks span {
    min-width: 0;
    padding: 5px 8px;
    border: 1px solid rgba(116, 214, 202, 0.16);
    border-radius: 999px;
    color: #c8d7d4;
    background: rgba(255, 255, 255, 0.045);
    font-size: 0.72rem;
    overflow-wrap: anywhere;
}

.frontier-war-asset-tracks b {
    margin-right: 4px;
    color: #74d6ca;
}

.frontier-war-100-modules article.solid,
.frontier-war-100-next article.success,
.frontier-war-war-prep-plans article.solid,
.frontier-war-war-prep-lines article.success,
.frontier-war-hero-warband article.success,
.frontier-war-diplomacy-politics article.success,
.frontier-war-war-readability article.success,
.frontier-war-content-scale article.success,
.frontier-war-final-release article.success,
.frontier-war-productization article.success,
.frontier-war-release-candidate article.success,
.frontier-war-readability-tutorial article.done,
.frontier-war-diplomacy-seats article.support,
.frontier-war-geo-regions article.controlled,
.frontier-war-geo-chokes article.deny {
    border-color: rgba(116, 214, 202, 0.34);
}

.frontier-war-100-modules article.forming,
.frontier-war-100-next article.warning,
.frontier-war-war-prep-lines article.warning,
.frontier-war-hero-warband article.warning,
.frontier-war-diplomacy-politics article.warning,
.frontier-war-war-readability article.warning,
.frontier-war-content-scale article.warning,
.frontier-war-final-release article.warning,
.frontier-war-productization article.warning,
.frontier-war-release-candidate article.warning,
.frontier-war-diplomacy-seats article.abstain,
.frontier-war-geo-regions article.contested,
.frontier-war-geo-chokes article.force,
.frontier-war-geo-chokes article.bypass {
    border-color: rgba(240, 199, 110, 0.36);
}

.frontier-war-100-modules article.gap,
.frontier-war-100-next article.danger,
.frontier-war-war-prep-plans article.gap,
.frontier-war-war-prep-lines article.danger,
.frontier-war-hero-warband article.danger,
.frontier-war-diplomacy-politics article.danger,
.frontier-war-war-readability article.danger,
.frontier-war-content-scale article.danger,
.frontier-war-final-release article.danger,
.frontier-war-productization article.danger,
.frontier-war-release-candidate article.danger,
.frontier-war-diplomacy-seats article.opposition,
.frontier-war-geo-regions article.enemy-held,
.frontier-war-geo-chokes article.cut {
    border-color: rgba(216, 95, 95, 0.36);
    background: rgba(216, 95, 95, 0.06);
}

.frontier-war-war-prep-plans article.recommended {
    border-color: rgba(240, 199, 110, 0.46);
    box-shadow: inset 0 0 0 1px rgba(240, 199, 110, 0.08);
}

.frontier-war-100-audit strong,
.frontier-war-commercial-packaging strong,
.frontier-war-report-commercial strong,
.frontier-war-report-art strong,
.frontier-war-report-illustrated-map strong,
.frontier-war-report-100-audit strong,
.frontier-war-geo-ecology strong,
.frontier-war-report-geo-ecology strong,
.frontier-war-war-prep strong,
.frontier-war-report-war-prep strong,
.frontier-war-hero-warband strong,
.frontier-war-report-hero-warband strong,
.frontier-war-diplomacy-politics strong,
.frontier-war-report-diplomacy-politics strong,
.frontier-war-war-readability strong,
.frontier-war-report-war-readability strong,
.frontier-war-content-scale strong,
.frontier-war-report-content-scale strong,
.frontier-war-final-release strong,
.frontier-war-report-final-release strong,
.frontier-war-productization strong,
.frontier-war-report-productization strong,
.frontier-war-release-candidate strong,
.frontier-war-report-release-candidate strong {
    color: #f2e6c7;
}

.frontier-war-100-audit p,
.frontier-war-100-audit em,
.frontier-war-commercial-packaging p,
.frontier-war-commercial-packaging em,
.frontier-war-report-commercial p,
.frontier-war-report-commercial em,
.frontier-war-report-art p,
.frontier-war-report-art em,
.frontier-war-report-illustrated-map p,
.frontier-war-report-illustrated-map em,
.frontier-war-report-100-audit p,
.frontier-war-report-100-audit em,
.frontier-war-geo-ecology p,
.frontier-war-geo-ecology em,
.frontier-war-report-geo-ecology p,
.frontier-war-report-geo-ecology em,
.frontier-war-war-prep p,
.frontier-war-war-prep em,
.frontier-war-report-war-prep p,
.frontier-war-report-war-prep em,
.frontier-war-hero-warband p,
.frontier-war-hero-warband em,
.frontier-war-report-hero-warband p,
.frontier-war-report-hero-warband em,
.frontier-war-diplomacy-politics p,
.frontier-war-diplomacy-politics em,
.frontier-war-report-diplomacy-politics p,
.frontier-war-report-diplomacy-politics em,
.frontier-war-war-readability p,
.frontier-war-war-readability em,
.frontier-war-report-war-readability p,
.frontier-war-report-war-readability em,
.frontier-war-content-scale p,
.frontier-war-content-scale em,
.frontier-war-report-content-scale p,
.frontier-war-report-content-scale em,
.frontier-war-final-release p,
.frontier-war-final-release em,
.frontier-war-report-final-release p,
.frontier-war-report-final-release em,
.frontier-war-productization p,
.frontier-war-productization em,
.frontier-war-report-productization p,
.frontier-war-report-productization em,
.frontier-war-release-candidate p,
.frontier-war-release-candidate em,
.frontier-war-report-release-candidate p,
.frontier-war-report-release-candidate em {
    display: block;
    margin: 4px 0 0;
    color: #a9b8b6;
    font-size: 0.74rem;
    line-height: 1.36;
    overflow-wrap: anywhere;
}

.frontier-war-100-scorebar {
    margin-top: 8px;
}

.frontier-war-100-scorebar span {
    display: block;
    color: #f0c76e;
    font-size: 0.74rem;
}

.frontier-war-100-scorebar i {
    display: block;
    width: 100%;
    height: 7px;
    margin-top: 4px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.08);
    overflow: hidden;
}

.frontier-war-100-scorebar.compact i {
    height: 5px;
}

.frontier-war-100-scorebar b {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #74d6ca, #f0c76e, #d85f5f);
}

.frontier-war-playtest-main {
    border-color: rgba(240, 199, 110, 0.3);
    background: rgba(240, 199, 110, 0.06);
}

.frontier-war-playtest-main.success {
    border-color: rgba(116, 214, 202, 0.34);
    background: rgba(116, 214, 202, 0.07);
}

.frontier-war-playtest-main.warning {
    border-color: rgba(240, 199, 110, 0.34);
}

.frontier-war-playtest-kpis {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 6px;
    margin-top: 9px;
}

.frontier-war-playtest-kpis span {
    min-width: 0;
    padding: 6px;
    border: 1px solid rgba(179, 224, 212, 0.12);
    border-radius: 8px;
    color: #c8d7d4;
    background: rgba(6, 13, 15, 0.55);
    font-size: 0.72rem;
    text-align: center;
    overflow-wrap: anywhere;
}

.frontier-war-qa-grid,
.frontier-war-scenario-matrix {
    margin-top: 8px;
}

.frontier-war-qa-grid {
    grid-template-columns: repeat(auto-fit, minmax(86px, 1fr));
}

.frontier-war-scenario-matrix {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.frontier-war-qa-grid article,
.frontier-war-scenario-matrix article {
    min-width: 0;
    padding: 8px;
}

.frontier-war-qa-grid article.done,
.frontier-war-scenario-matrix article.success {
    border-color: rgba(116, 214, 202, 0.32);
    background: rgba(116, 214, 202, 0.07);
}

.frontier-war-qa-grid article.warning,
.frontier-war-scenario-matrix article.warning {
    border-color: rgba(240, 199, 110, 0.3);
    background: rgba(240, 199, 110, 0.06);
}

.frontier-war-scenario-matrix article.danger {
    border-color: rgba(216, 95, 95, 0.34);
    background: rgba(216, 95, 95, 0.08);
}

.frontier-war-viewport-main {
    border-color: rgba(116, 214, 202, 0.3);
    background: rgba(116, 214, 202, 0.06);
}

.frontier-war-viewport-main.warning {
    border-color: rgba(240, 199, 110, 0.34);
    background: rgba(240, 199, 110, 0.06);
}

.frontier-war-viewport-kpis {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 6px;
    margin-top: 9px;
}

.frontier-war-viewport-kpis span {
    min-width: 0;
    padding: 6px;
    border: 1px solid rgba(179, 224, 212, 0.12);
    border-radius: 8px;
    color: #c8d7d4;
    background: rgba(6, 13, 15, 0.55);
    font-size: 0.72rem;
    text-align: center;
    overflow-wrap: anywhere;
}

.frontier-war-viewport-checks {
    grid-template-columns: repeat(auto-fit, minmax(86px, 1fr));
    margin-top: 8px;
}

.frontier-war-viewport-checks article.done {
    border-color: rgba(116, 214, 202, 0.32);
    background: rgba(116, 214, 202, 0.07);
}

.frontier-war-viewport-checks article.warning {
    border-color: rgba(240, 199, 110, 0.3);
    background: rgba(240, 199, 110, 0.06);
}

.frontier-war-browser-targets {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 8px;
}

.frontier-war-browser-targets span {
    padding: 4px 8px;
    border: 1px solid rgba(179, 224, 212, 0.14);
    border-radius: 999px;
    color: #c8d7d4;
    background: rgba(255,255,255,0.045);
    font-size: 0.72rem;
}

.frontier-war-browser-targets b {
    margin-right: 5px;
    color: #74d6ca;
}

.frontier-war-difficulty-main,
.frontier-war-realrun-main,
.frontier-war-branch-sampling-main {
    border-color: rgba(116, 214, 202, 0.28);
    background: rgba(116, 214, 202, 0.06);
}

.frontier-war-difficulty-main.warning,
.frontier-war-realrun-main.warning,
.frontier-war-branch-sampling-main.warning {
    border-color: rgba(240, 199, 110, 0.34);
    background: rgba(240, 199, 110, 0.06);
}

.frontier-war-realrun-main.danger,
.frontier-war-branch-sampling-main.danger {
    border-color: rgba(216, 95, 95, 0.34);
    background: rgba(216, 95, 95, 0.08);
}

.frontier-war-difficulty-switch {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 6px;
    margin-top: 10px;
}

.frontier-war-difficulty-switch button {
    min-width: 0;
    min-height: 52px;
    padding: 7px 8px;
    border: 1px solid rgba(179, 224, 212, 0.16);
    border-radius: 8px;
    color: #d7e2de;
    background: rgba(255, 255, 255, 0.045);
    cursor: pointer;
    text-align: left;
}

.frontier-war-difficulty-switch button.active {
    border-color: rgba(240, 199, 110, 0.5);
    background: rgba(240, 199, 110, 0.12);
}

.frontier-war-difficulty-switch b,
.frontier-war-difficulty-switch span {
    display: block;
    min-width: 0;
    overflow-wrap: anywhere;
}

.frontier-war-difficulty-switch span {
    margin-top: 3px;
    color: #8fb3ad;
    font-size: 0.72rem;
}

.frontier-war-difficulty-curve,
.frontier-war-realrun-grid,
.frontier-war-branch-sampling-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(148px, 1fr));
    gap: 8px;
    margin-top: 8px;
}

.frontier-war-difficulty-curve article.info,
.frontier-war-realrun-grid article.success,
.frontier-war-branch-sampling-grid article.success {
    border-color: rgba(116, 214, 202, 0.3);
    background: rgba(116, 214, 202, 0.07);
}

.frontier-war-difficulty-curve article.warning,
.frontier-war-realrun-grid article.warning,
.frontier-war-branch-sampling-grid article.warning {
    border-color: rgba(240, 199, 110, 0.3);
    background: rgba(240, 199, 110, 0.06);
}

.frontier-war-realrun-grid article.danger,
.frontier-war-branch-sampling-grid article.danger {
    border-color: rgba(216, 95, 95, 0.34);
    background: rgba(216, 95, 95, 0.08);
}

.frontier-war-realrun-kpis,
.frontier-war-branch-sampling-kpis {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 6px;
    margin-top: 9px;
}

.frontier-war-realrun-kpis span,
.frontier-war-branch-sampling-kpis span {
    min-width: 0;
    padding: 6px;
    border: 1px solid rgba(179, 224, 212, 0.12);
    border-radius: 8px;
    color: #c8d7d4;
    background: rgba(6, 13, 15, 0.55);
    font-size: 0.72rem;
    text-align: center;
    overflow-wrap: anywhere;
}

.frontier-war-tribunal-main {
    border-color: rgba(240, 199, 110, 0.28);
    background:
        linear-gradient(180deg, rgba(32, 28, 18, 0.88), rgba(11, 18, 18, 0.92)),
        radial-gradient(circle at 0% 0%, rgba(240, 199, 110, 0.14), transparent 44%);
}

.frontier-war-tribunal-main.success {
    border-color: rgba(116, 214, 202, 0.36);
    background:
        linear-gradient(180deg, rgba(14, 36, 32, 0.9), rgba(8, 18, 18, 0.92)),
        radial-gradient(circle at 100% 0%, rgba(116, 214, 202, 0.14), transparent 42%);
}

.frontier-war-tribunal-main.danger {
    border-color: rgba(216, 95, 95, 0.34);
    background:
        linear-gradient(180deg, rgba(42, 20, 20, 0.9), rgba(10, 16, 17, 0.92)),
        radial-gradient(circle at 0% 0%, rgba(216, 95, 95, 0.12), transparent 44%);
}

.frontier-war-tribunal-bars {
    display: grid;
    gap: 7px;
    margin-top: 10px;
}

.frontier-war-tribunal-bars span {
    display: grid;
    grid-template-columns: 72px minmax(0, 1fr);
    gap: 8px;
    align-items: center;
    color: #c8d7d4;
    font-size: 0.76rem;
}

.frontier-war-tribunal-bars i {
    height: 7px;
    overflow: hidden;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.09);
}

.frontier-war-tribunal-bars b {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #d85f5f, #f0c76e, #74d6ca);
}

.frontier-war-edict-summary {
    margin-top: 8px;
    border-color: rgba(116, 214, 202, 0.28);
    background:
        linear-gradient(180deg, rgba(13, 33, 31, 0.86), rgba(8, 16, 18, 0.9)),
        radial-gradient(circle at 100% 0%, rgba(116, 214, 202, 0.12), transparent 42%);
}

.frontier-war-edict-summary.warning {
    border-color: rgba(240, 199, 110, 0.3);
    background:
        linear-gradient(180deg, rgba(35, 30, 17, 0.88), rgba(8, 16, 18, 0.9)),
        radial-gradient(circle at 100% 0%, rgba(240, 199, 110, 0.12), transparent 42%);
}

.frontier-war-edict-summary.danger {
    border-color: rgba(216, 95, 95, 0.32);
    background:
        linear-gradient(180deg, rgba(42, 20, 20, 0.88), rgba(8, 16, 18, 0.9)),
        radial-gradient(circle at 100% 0%, rgba(216, 95, 95, 0.12), transparent 42%);
}

.frontier-war-edict-summary em {
    display: block;
    margin-top: 6px;
    color: #a9b8b6;
    font-size: 0.74rem;
    line-height: 1.35;
}

.frontier-war-edict-options {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: 8px;
}

.frontier-war-edict-options button {
    min-width: 0;
    min-height: 96px;
    padding: 10px;
    border: 1px solid rgba(179, 224, 212, 0.14);
    border-radius: 8px;
    color: #e9f1ef;
    text-align: left;
    background: rgba(255, 255, 255, 0.045);
    cursor: pointer;
}

.frontier-war-edict-options button.success {
    border-color: rgba(116, 214, 202, 0.3);
    background: rgba(116, 214, 202, 0.07);
}

.frontier-war-edict-options button.warning {
    border-color: rgba(240, 199, 110, 0.28);
    background: rgba(240, 199, 110, 0.07);
}

.frontier-war-edict-options button.danger {
    border-color: rgba(216, 95, 95, 0.3);
    background: rgba(216, 95, 95, 0.07);
}

.frontier-war-edict-options button:hover:not(:disabled) {
    border-color: rgba(240, 199, 110, 0.46);
    transform: translateY(-1px);
}

.frontier-war-edict-options button:disabled {
    cursor: default;
    opacity: 0.68;
}

.frontier-war-edict-options button.enacted {
    opacity: 0.9;
    box-shadow: inset 0 0 0 1px rgba(116, 214, 202, 0.16);
}

.frontier-war-edict-options strong,
.frontier-war-edict-options span,
.frontier-war-edict-options em {
    display: block;
    min-width: 0;
    overflow-wrap: anywhere;
}

.frontier-war-edict-options span {
    margin: 5px 0;
    color: #f0c76e;
    font-size: 0.76rem;
}

.frontier-war-edict-options em {
    color: #a9b8b6;
    font-size: 0.72rem;
    line-height: 1.34;
    font-style: normal;
}

.frontier-war-edict-history {
    margin-top: 8px;
}

.frontier-war-edict-history article.success {
    border-color: rgba(116, 214, 202, 0.34);
}

.frontier-war-edict-history article.warning {
    border-color: rgba(240, 199, 110, 0.3);
}

.frontier-war-edict-history article.danger {
    border-color: rgba(216, 95, 95, 0.34);
}

.frontier-war-edict-history em {
    display: block;
    margin-top: 6px;
    color: #a9b8b6;
    font-size: 0.74rem;
}

.frontier-war-route-balance {
    display: grid;
    gap: 8px;
    margin-top: 8px;
    padding: 10px;
    border: 1px solid rgba(179, 224, 212, 0.12);
    border-radius: 8px;
    background:
        linear-gradient(180deg, rgba(12, 22, 24, 0.9), rgba(8, 16, 18, 0.92)),
        radial-gradient(circle at 100% 0%, rgba(240, 199, 110, 0.08), transparent 38%);
}

.frontier-war-route-balance-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.frontier-war-route-balance-head strong {
    color: #f2e6c7;
}

.frontier-war-route-balance-head span {
    color: #a9b8b6;
    font-size: 0.74rem;
}

.frontier-war-route-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.frontier-war-route-grid article {
    padding: 8px;
    border: 1px solid rgba(179, 224, 212, 0.12);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.04);
}

.frontier-war-route-grid article.active {
    border-color: rgba(116, 214, 202, 0.36);
    background: rgba(116, 214, 202, 0.07);
}

.frontier-war-route-grid p,
.frontier-war-route-grid em {
    display: block;
    margin: 4px 0 0;
    color: #a9b8b6;
    font-size: 0.72rem;
    line-height: 1.34;
    overflow-wrap: anywhere;
}

.frontier-war-route-combos {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.frontier-war-route-combos span {
    min-width: 0;
    padding: 8px;
    border: 1px solid rgba(179, 224, 212, 0.12);
    border-radius: 8px;
    color: #a9b8b6;
    background: rgba(255, 255, 255, 0.035);
    font-size: 0.72rem;
    line-height: 1.34;
    overflow-wrap: anywhere;
}

.frontier-war-route-combos span.active {
    border-color: rgba(240, 199, 110, 0.34);
    color: #dfe9e5;
    background: rgba(240, 199, 110, 0.07);
}

.frontier-war-route-combos b {
    display: block;
    margin-bottom: 3px;
    color: #f0c76e;
}

.frontier-war-doctrine {
    display: grid;
    gap: 8px;
    margin-top: 8px;
    padding: 10px;
    border: 1px solid rgba(240, 199, 110, 0.18);
    border-radius: 8px;
    background:
        linear-gradient(180deg, rgba(14, 22, 22, 0.92), rgba(8, 14, 16, 0.94)),
        radial-gradient(circle at 100% 0%, rgba(116, 214, 202, 0.08), transparent 42%);
}

.frontier-war-doctrine-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.frontier-war-doctrine-head strong,
.frontier-war-doctrine-main strong,
.frontier-war-triad-grid strong,
.frontier-war-tension-grid strong,
.frontier-war-report-doctrine strong {
    color: #f2e6c7;
}

.frontier-war-doctrine-head span,
.frontier-war-doctrine-main em,
.frontier-war-triad-grid em,
.frontier-war-tension-grid em,
.frontier-war-report-doctrine em {
    color: #a9b8b6;
    font-size: 0.74rem;
}

.frontier-war-doctrine-main,
.frontier-war-triad-grid article,
.frontier-war-tension-grid article,
.frontier-war-report-doctrine article {
    min-width: 0;
    padding: 8px;
    border: 1px solid rgba(179, 224, 212, 0.12);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.035);
}

.frontier-war-doctrine-main.success,
.frontier-war-triad-grid article.success,
.frontier-war-tension-grid article.success,
.frontier-war-report-doctrine article.success {
    border-color: rgba(116, 214, 202, 0.34);
}

.frontier-war-doctrine-main.warning,
.frontier-war-triad-grid article.warning,
.frontier-war-tension-grid article.warning,
.frontier-war-report-doctrine article.warning {
    border-color: rgba(240, 199, 110, 0.32);
}

.frontier-war-doctrine-main.danger,
.frontier-war-triad-grid article.danger,
.frontier-war-tension-grid article.danger,
.frontier-war-report-doctrine article.danger {
    border-color: rgba(216, 95, 95, 0.34);
}

.frontier-war-triad-grid {
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
}

.frontier-war-tension-grid,
.frontier-war-report-doctrine {
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
}

.frontier-war-triad-grid article.active {
    border-color: rgba(240, 199, 110, 0.42);
    background: rgba(240, 199, 110, 0.075);
}

.frontier-war-doctrine-main p,
.frontier-war-doctrine-main em,
.frontier-war-triad-grid p,
.frontier-war-triad-grid em,
.frontier-war-tension-grid p,
.frontier-war-tension-grid em,
.frontier-war-report-doctrine p,
.frontier-war-report-doctrine em {
    display: block;
    margin: 4px 0 0;
    line-height: 1.36;
    overflow-wrap: anywhere;
}

.frontier-war-route-ceremony {
    display: grid;
    gap: 8px;
    margin-top: 8px;
    padding: 10px;
    border: 1px solid rgba(240, 199, 110, 0.18);
    border-radius: 8px;
    background:
        linear-gradient(180deg, rgba(18, 23, 22, 0.92), rgba(8, 15, 16, 0.94)),
        radial-gradient(circle at 0% 0%, rgba(240, 199, 110, 0.09), transparent 40%);
}

.frontier-war-route-ceremony.sealed {
    border-color: rgba(240, 199, 110, 0.34);
}

.frontier-war-route-ceremony-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.frontier-war-route-ceremony-head strong,
.frontier-war-ceremony-main strong {
    color: #f2e6c7;
}

.frontier-war-route-ceremony-head span,
.frontier-war-ceremony-main em,
.frontier-war-ceremony-steps span,
.frontier-war-route-ledger em,
.frontier-war-report-ceremony em {
    color: #a9b8b6;
    font-size: 0.74rem;
}

.frontier-war-ceremony-main {
    padding: 9px;
    border: 1px solid rgba(179, 224, 212, 0.12);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.045);
}

.frontier-war-ceremony-main p,
.frontier-war-ceremony-main em,
.frontier-war-ceremony-steps p,
.frontier-war-route-ledger p,
.frontier-war-route-ledger em,
.frontier-war-replay-plan p,
.frontier-war-report-ceremony p {
    display: block;
    margin: 4px 0 0;
    line-height: 1.36;
    overflow-wrap: anywhere;
}

.frontier-war-ceremony-steps {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.frontier-war-route-ledger {
    grid-template-columns: repeat(auto-fit, minmax(118px, 1fr));
}

.frontier-war-replay-plan,
.frontier-war-report-ceremony {
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
}

.frontier-war-ceremony-steps article,
.frontier-war-route-ledger article,
.frontier-war-replay-plan article,
.frontier-war-report-ceremony article {
    min-width: 0;
    padding: 8px;
    border: 1px solid rgba(179, 224, 212, 0.12);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.035);
}

.frontier-war-route-ledger article.active {
    border-color: rgba(116, 214, 202, 0.36);
    background: rgba(116, 214, 202, 0.07);
}

.frontier-war-ceremony-steps article.success,
.frontier-war-replay-plan article.success,
.frontier-war-report-ceremony article.success {
    border-color: rgba(116, 214, 202, 0.34);
}

.frontier-war-ceremony-steps article.warning,
.frontier-war-replay-plan article.warning,
.frontier-war-report-ceremony article.warning {
    border-color: rgba(240, 199, 110, 0.3);
}

.frontier-war-ceremony-steps article.danger,
.frontier-war-replay-plan article.danger,
.frontier-war-report-ceremony article.danger {
    border-color: rgba(216, 95, 95, 0.34);
}

.frontier-war-ceremony-steps strong,
.frontier-war-route-ledger strong,
.frontier-war-replay-plan strong,
.frontier-war-report-ceremony strong {
    color: #f2e6c7;
}

.frontier-war-route-ledger p,
.frontier-war-replay-plan p,
.frontier-war-report-ceremony p {
    color: #c8d7d4;
    font-size: 0.74rem;
}

.frontier-war-tribunal-kpis {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
    margin: 8px 0;
}

.frontier-war-tribunal-kpis span,
.frontier-war-tribunal-stage span {
    min-width: 0;
    padding: 8px;
    border: 1px solid rgba(179, 224, 212, 0.12);
    border-radius: 8px;
    color: #c8d7d4;
    background: rgba(255, 255, 255, 0.045);
    font-size: 0.78rem;
    overflow-wrap: anywhere;
}

.frontier-war-tribunal-kpis b,
.frontier-war-tribunal-stage b {
    display: block;
    color: #f0c76e;
    font-size: 0.98rem;
}

.frontier-war-tribunal-seats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.frontier-war-tribunal-seats article.support,
.frontier-war-tribunal-history article.success {
    border-color: rgba(116, 214, 202, 0.34);
}

.frontier-war-tribunal-seats article.abstain,
.frontier-war-tribunal-history article.warning {
    border-color: rgba(240, 199, 110, 0.3);
}

.frontier-war-tribunal-seats article.opposition,
.frontier-war-tribunal-history article.danger {
    border-color: rgba(216, 95, 95, 0.34);
}

.frontier-war-tribunal-seats em,
.frontier-war-tribunal-history em {
    display: block;
    margin-top: 6px;
    color: #a9b8b6;
    font-size: 0.74rem;
}

.frontier-war-tribunal-stage {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 7px;
    margin-top: 8px;
}

.frontier-war-tribunal-stage span.owned {
    border-color: rgba(116, 214, 202, 0.32);
    background: rgba(116, 214, 202, 0.07);
}

.frontier-war-tribunal-stage span.visible {
    border-color: rgba(240, 199, 110, 0.28);
}

.frontier-war-tribunal-stage span.hidden {
    opacity: 0.68;
}

.frontier-war-tribunal-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin-top: 9px;
}

.frontier-war-tribunal-actions button {
    min-width: 0;
    min-height: 58px;
    padding: 9px;
    border: 1px solid rgba(240, 199, 110, 0.24);
    border-radius: 8px;
    color: #e9f1ef;
    text-align: left;
    background: rgba(240, 199, 110, 0.07);
    cursor: pointer;
}

.frontier-war-tribunal-actions button:hover {
    border-color: rgba(116, 214, 202, 0.42);
    background: rgba(116, 214, 202, 0.08);
}

.frontier-war-tribunal-actions span {
    display: block;
    margin-top: 4px;
    color: #a9b8b6;
    font-size: 0.74rem;
}

.frontier-war-tribunal-history {
    margin-top: 8px;
}

.frontier-war-pacing-main {
    border-color: rgba(116, 214, 202, 0.28);
    background: rgba(116, 214, 202, 0.06);
}

.frontier-war-pacing-main.warning {
    border-color: rgba(240, 199, 110, 0.34);
    background: rgba(240, 199, 110, 0.06);
}

.frontier-war-pacing-main.danger {
    border-color: rgba(216, 95, 95, 0.34);
    background: rgba(216, 95, 95, 0.08);
}

.frontier-war-pacing-kpis {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 6px;
    margin-top: 9px;
}

.frontier-war-pacing-kpis span {
    min-width: 0;
    padding: 6px;
    border: 1px solid rgba(179, 224, 212, 0.12);
    border-radius: 8px;
    color: #c8d7d4;
    background: rgba(6, 13, 15, 0.55);
    font-size: 0.72rem;
    text-align: center;
    overflow-wrap: anywhere;
}

.frontier-war-pacing-checks,
.frontier-war-pacing-history {
    grid-template-columns: repeat(auto-fit, minmax(112px, 1fr));
    margin-top: 8px;
}

.frontier-war-pacing-checks article.done,
.frontier-war-pacing-history article.success {
    border-color: rgba(116, 214, 202, 0.32);
    background: rgba(116, 214, 202, 0.07);
}

.frontier-war-pacing-checks article.warning,
.frontier-war-pacing-history article.warning {
    border-color: rgba(240, 199, 110, 0.3);
    background: rgba(240, 199, 110, 0.06);
}

.frontier-war-pacing-history em {
    display: block;
    margin-top: 5px;
    color: #8fb3ad;
    font-size: 0.72rem;
    font-style: normal;
}

.frontier-war-longrun-main {
    border-color: rgba(116, 214, 202, 0.3);
    background: rgba(116, 214, 202, 0.06);
}

.frontier-war-longrun-main.warning {
    border-color: rgba(240, 199, 110, 0.34);
    background: rgba(240, 199, 110, 0.06);
}

.frontier-war-longrun-main.danger {
    border-color: rgba(216, 95, 95, 0.34);
    background: rgba(216, 95, 95, 0.08);
}

.frontier-war-longrun-kpis {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 6px;
    margin-top: 9px;
}

.frontier-war-longrun-kpis span {
    min-width: 0;
    padding: 6px;
    border: 1px solid rgba(179, 224, 212, 0.12);
    border-radius: 8px;
    color: #c8d7d4;
    background: rgba(6, 13, 15, 0.55);
    font-size: 0.72rem;
    text-align: center;
    overflow-wrap: anywhere;
}

.frontier-war-longrun-checks {
    grid-template-columns: repeat(auto-fit, minmax(86px, 1fr));
    margin-top: 8px;
}

.frontier-war-longrun-checks article.done {
    border-color: rgba(116, 214, 202, 0.32);
    background: rgba(116, 214, 202, 0.07);
}

.frontier-war-longrun-checks article.warning {
    border-color: rgba(240, 199, 110, 0.3);
    background: rgba(240, 199, 110, 0.06);
}

.frontier-war-longrun-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 8px;
}

.frontier-war-longrun-actions span,
.frontier-war-longrun-tuning span {
    padding: 4px 8px;
    border: 1px solid rgba(179, 224, 212, 0.14);
    border-radius: 999px;
    color: #c8d7d4;
    background: rgba(255, 255, 255, 0.045);
    font-size: 0.72rem;
}

.frontier-war-longrun-actions b,
.frontier-war-longrun-tuning b {
    margin-right: 5px;
    color: #f0c76e;
}

.frontier-war-longrun-tuning {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 6px;
}

.frontier-war-longrun-matrix {
    margin-top: 8px;
    padding: 8px;
    border: 1px solid rgba(179, 224, 212, 0.14);
    border-radius: 8px;
    background: rgba(6, 13, 15, 0.48);
}

.frontier-war-longrun-matrix-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    min-width: 0;
}

.frontier-war-longrun-matrix-head span {
    color: #8fb3ad;
    font-size: 0.72rem;
    white-space: nowrap;
}

.frontier-war-longrun-matrix-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 6px;
    margin-top: 8px;
}

.frontier-war-longrun-matrix-grid span {
    min-width: 0;
    padding: 6px 7px;
    border: 1px solid rgba(179, 224, 212, 0.13);
    border-radius: 8px;
    color: #c8d7d4;
    background: rgba(255, 255, 255, 0.045);
    font-size: 0.72rem;
    line-height: 1.3;
    overflow-wrap: anywhere;
}

.frontier-war-longrun-matrix-grid span.stable {
    border-color: rgba(116, 214, 202, 0.28);
    background: rgba(116, 214, 202, 0.07);
}

.frontier-war-longrun-matrix-grid span.watch {
    border-color: rgba(240, 199, 110, 0.3);
    background: rgba(240, 199, 110, 0.06);
}

.frontier-war-longrun-matrix-grid b {
    display: block;
    margin-bottom: 2px;
    color: #f0c76e;
}

.frontier-war-longrun-timeline {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: 8px;
}

.frontier-war-longrun-timeline article {
    min-width: 0;
}

.frontier-war-longrun-timeline article.success {
    border-color: rgba(116, 214, 202, 0.32);
    background: rgba(116, 214, 202, 0.07);
}

.frontier-war-art-main {
    border-color: rgba(240, 199, 110, 0.3);
    background:
        linear-gradient(180deg, rgba(240, 199, 110, 0.08), rgba(116, 214, 202, 0.045)),
        rgba(8, 16, 18, 0.58);
}

.frontier-war-art-kpis {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 6px;
    margin-top: 9px;
}

.frontier-war-art-kpis span {
    min-width: 0;
    padding: 6px;
    border: 1px solid rgba(240, 199, 110, 0.15);
    border-radius: 8px;
    color: #f2e6c7;
    background: rgba(6, 13, 15, 0.52);
    font-size: 0.72rem;
    text-align: center;
    overflow-wrap: anywhere;
}

.frontier-war-art-checks {
    grid-template-columns: repeat(auto-fit, minmax(86px, 1fr));
    margin-top: 8px;
}

.frontier-war-art-checks article.done {
    border-color: rgba(240, 199, 110, 0.3);
    background: rgba(240, 199, 110, 0.07);
}

.frontier-war-art-checks article.warning {
    border-color: rgba(216, 95, 95, 0.28);
    background: rgba(216, 95, 95, 0.07);
}

.frontier-war-art-signals {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 8px;
}

.frontier-war-art-signals span {
    padding: 4px 8px;
    border: 1px solid rgba(179, 224, 212, 0.14);
    border-radius: 999px;
    color: #c8d7d4;
    background: rgba(255, 255, 255, 0.045);
    font-size: 0.72rem;
}

.frontier-war-report-banner {
    min-height: 96px;
    margin-bottom: 10px;
    padding: 10px;
    display: flex;
    align-items: flex-end;
    justify-content: flex-start;
    overflow: hidden;
    border: 1px solid rgba(240, 199, 110, 0.28);
    border-radius: 8px;
    background:
        linear-gradient(90deg, rgba(7, 14, 16, 0.9), rgba(7, 14, 16, 0.24) 48%, rgba(7, 14, 16, 0.84)),
        url('../images/frontier-war/battle-report-banner-v19.png') center / cover no-repeat;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.04), 0 12px 28px rgba(0, 0, 0, 0.26);
}

.frontier-war-report-banner span {
    max-width: 100%;
    padding: 5px 9px;
    border: 1px solid rgba(240, 199, 110, 0.34);
    border-radius: 999px;
    color: #f2e6c7;
    background: rgba(6, 13, 15, 0.74);
    font-weight: 800;
    font-size: 0.74rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.frontier-war-report-banner.success {
    border-color: rgba(116, 214, 202, 0.34);
}

.frontier-war-report-banner.danger {
    border-color: rgba(216, 95, 95, 0.34);
}

.frontier-war-report-steps {
    display: grid;
    gap: 8px;
    margin-top: 10px;
}

.frontier-war-report-steps div {
    display: grid;
    grid-template-columns: 24px minmax(0, 1fr);
    gap: 8px;
    align-items: start;
    animation: frontierWarReportStepIn 460ms ease-out both;
}

.frontier-war-report-steps div:nth-child(2) {
    animation-delay: 80ms;
}

.frontier-war-report-steps div:nth-child(3) {
    animation-delay: 160ms;
}

.frontier-war-report-steps div:nth-child(4) {
    animation-delay: 240ms;
}

.frontier-war-report-steps span {
    display: grid;
    place-items: center;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    color: #081012;
    background: #f0c76e;
    font-weight: 800;
    font-size: 0.75rem;
}

@keyframes frontierWarNodePulse {
    0%, 100% {
        box-shadow: 0 0 0 3px rgba(240, 199, 110, 0.22), 0 0 22px rgba(240, 199, 110, 0.16), 0 12px 24px rgba(0,0,0,0.34);
        filter: brightness(1);
    }
    50% {
        box-shadow: 0 0 0 5px rgba(240, 199, 110, 0.1), 0 0 36px rgba(240, 199, 110, 0.32), 0 14px 28px rgba(0,0,0,0.36);
        filter: brightness(1.08);
    }
}

@keyframes frontierWarFrontlineBreath {
    0%, 100% {
        filter: brightness(1);
    }
    50% {
        filter: brightness(1.07);
    }
}

@keyframes frontierWarDangerPulse {
    0%, 100% {
        box-shadow: 0 8px 18px rgba(0, 0, 0, 0.34), 0 0 0 0 rgba(216, 95, 95, 0.18);
    }
    50% {
        box-shadow: 0 9px 20px rgba(0, 0, 0, 0.36), 0 0 0 4px rgba(216, 95, 95, 0.1);
    }
}

@keyframes frontierWarEnemyTarget {
    0%, 100% {
        filter: brightness(1);
        transform: translate(-50%, -50%);
    }
    50% {
        filter: brightness(1.12);
        transform: translate(-50%, -50%) scale(1.03);
    }
}

@keyframes frontierWarRouteTension {
    0% {
        stroke-dashoffset: 0;
    }
    100% {
        stroke-dashoffset: -6;
    }
}

@keyframes frontierWarOccupationTension {
    0%, 100% {
        opacity: 0.78;
        transform: translateX(-50%) scale(1);
    }
    50% {
        opacity: 1;
        transform: translateX(-50%) scale(1.08);
    }
}

@keyframes frontierWarFxRing {
    0%, 100% {
        opacity: 0.38;
        transform: translateX(-50%) scale(0.92);
    }
    50% {
        opacity: 0.72;
        transform: translateX(-50%) scale(1.08);
    }
}

@keyframes frontierWarFxBurst {
    0%, 100% {
        opacity: 0.36;
        transform: translateX(-50%) scale(0.88) rotate(0deg);
    }
    50% {
        opacity: 0.82;
        transform: translateX(-50%) scale(1.06) rotate(8deg);
    }
}

@keyframes frontierWarFeedbackIn {
    0% {
        opacity: 0;
        transform: translateY(8px);
        filter: brightness(1.12);
    }
    100% {
        opacity: 1;
        transform: translateY(0);
        filter: brightness(1);
    }
}

@keyframes frontierWarFeedbackSweep {
    0%, 100% {
        transform: translateX(-18%);
        opacity: 0.44;
    }
    48% {
        transform: translateX(18%);
        opacity: 0.82;
    }
}

@keyframes frontierWarRunePop {
    0% {
        opacity: 0;
        transform: translateY(8px) scale(0.78);
    }
    100% {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

@keyframes frontierWarMeterFill {
    0% {
        transform: translateX(-100%);
    }
    100% {
        transform: translateX(0);
    }
}

@keyframes frontierWarActionToken {
    0%, 100% {
        transform: translateY(0);
        box-shadow: 0 0 0 2px rgba(6, 13, 15, 0.34), 0 6px 14px rgba(0, 0, 0, 0.24);
    }
    50% {
        transform: translateY(-1px);
        box-shadow: 0 0 0 2px rgba(6, 13, 15, 0.34), 0 0 18px rgba(240, 199, 110, 0.32), 0 8px 18px rgba(0, 0, 0, 0.26);
    }
}

@keyframes frontierWarReportStepIn {
    0% {
        opacity: 0;
        transform: translateY(6px);
    }
    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

@media (prefers-reduced-motion: reduce) {
    .frontier-war-routes line.contested,
    .frontier-war-node.recommended,
    .frontier-war-node.frontline:not(.recommended),
    .frontier-war-node.danger,
    .frontier-war-node.enemy-target,
    .frontier-war-conquest-feedback,
    .frontier-war-conquest-feedback::before,
    .frontier-war-feedback-runes i,
    .frontier-war-feedback-meter b,
    .frontier-war-action.primary .frontier-war-action-icon,
    .frontier-war-report-steps div,
    .frontier-war-dynamic-war-layer-v122::before,
    .frontier-war-dynamic-war-beat::before,
    .frontier-war-dynamic-war-beat i,
    .frontier-war-dynamic-war-beat b,
    .frontier-war-action-aftershock::before,
    .frontier-war-action-aftershock i,
    .frontier-war-action-aftershock b,
    .frontier-war-action-aftershock em,
    .frontier-war-consequence-flow::before,
    .frontier-war-consequence-flow i,
    .frontier-war-consequence-flow b,
    .frontier-war-consequence-flow em,
    .frontier-war-decision-cue,
    .frontier-war-confirm-trace,
    .frontier-war-confirm-trace i,
    .frontier-war-confirm-stack-return-path-fault-drill-v150,
    .frontier-war-confirm-stack-replay-pin-compare-v149,
    .frontier-war-confirm-stack-cause-filtered-undo-timeline-v148,
    .frontier-war-confirm-stack-guarded-undo-drilldown-v147,
    .frontier-war-confirm-stack-receipt-diff-guard-v146,
    .frontier-war-decision-preview,
    .frontier-war-decision-rationale {
        animation: none !important;
    }
}

.frontier-war-ai-list {
    display: grid;
    gap: 8px;
}

.frontier-war-ai article.danger,
.frontier-war-battle-report article.danger {
    border-color: rgba(216, 95, 95, 0.34);
}

.frontier-war-ai article.success,
.frontier-war-battle-report article.success {
    border-color: rgba(116, 214, 202, 0.34);
}

.frontier-war-build article.active {
    border-color: rgba(116, 214, 202, 0.38);
    background: rgba(116, 214, 202, 0.08);
}

.frontier-war-scenario-grid {
    display: grid;
    gap: 8px;
}

.frontier-war-scenario-grid button {
    min-height: 76px;
    padding: 10px;
    border: 1px solid rgba(179, 224, 212, 0.14);
    border-radius: 8px;
    color: #e9f1ef;
    text-align: left;
    background: rgba(255, 255, 255, 0.045);
    cursor: pointer;
}

.frontier-war-scenario-grid button:hover {
    border-color: rgba(116, 214, 202, 0.45);
}

.frontier-war-scenario-grid button.active {
    border-color: rgba(240, 199, 110, 0.44);
    background: rgba(240, 199, 110, 0.08);
}

.frontier-war-scenario-grid strong,
.frontier-war-scenario-grid span {
    display: block;
}

.frontier-war-scenario-grid strong {
    color: #f2e6c7;
}

.frontier-war-scenario-grid span {
    margin-top: 5px;
    color: #a9b8b6;
    font-size: 0.78rem;
    line-height: 1.38;
}

.frontier-war-faction-grid {
    grid-template-columns: repeat(auto-fit, minmax(88px, 1fr));
}

.frontier-war-factions article {
    min-width: 0;
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr);
    gap: 9px;
    align-items: center;
    border-color: color-mix(in srgb, var(--fw-faction-color, #a9b8b6) 32%, rgba(179, 224, 212, 0.12));
    background:
        radial-gradient(circle at 12% 16%, color-mix(in srgb, var(--fw-faction-color, #a9b8b6) 18%, transparent), transparent 52%),
        rgba(255, 255, 255, 0.045);
}

.frontier-war-faction-seal {
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border: 1px solid rgba(255, 247, 232, 0.38);
    border-radius: 50%;
    color: #081012;
    background:
        radial-gradient(circle at 35% 28%, rgba(255, 247, 232, 0.58), transparent 34%),
        var(--fw-faction-color, #a9b8b6);
    box-shadow: 0 0 0 2px rgba(6, 13, 15, 0.34), 0 0 15px color-mix(in srgb, var(--fw-faction-color, #a9b8b6) 42%, transparent);
    font-weight: 900;
    font-size: 0.76rem;
}

.frontier-war-faction-copy,
.frontier-war-faction-copy strong,
.frontier-war-faction-copy span,
.frontier-war-faction-copy em {
    display: block;
    min-width: 0;
}

.frontier-war-faction-score {
    display: block;
    margin-top: 4px;
    color: #a9b8b6;
}

.frontier-war-faction-copy em {
    margin-top: 3px;
    font-size: 0.72rem;
    line-height: 1.35;
}

.frontier-war-factions article.friendly strong {
    color: #74d6ca;
}

.frontier-war-factions article.neutral strong {
    color: #f0c76e;
}

.frontier-war-factions article.hostile strong {
    color: #d85f5f;
}

@media (max-width: 980px) {
    .frontier-war-shell {
        padding: 12px;
    }

    body.frontier-war-player-chrome {
        overflow: auto;
    }

    .frontier-war-shell-player {
        padding: 0;
        overflow: visible;
    }

    .frontier-war-player-immersive {
        min-height: 0;
        height: auto;
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: 0;
        overflow: visible;
    }

    .frontier-war-player-immersive::after {
        display: none;
    }

    .frontier-war-player-map-panel,
    .frontier-war-player-hud,
    .frontier-war-player-info-drawer,
    .frontier-war-player-command-dock,
    .frontier-war-player-objective-dock {
        position: relative;
        inset: auto;
        width: auto;
        max-height: none;
    }

    .frontier-war-player-map-panel {
        height: 660px;
        width: 100%;
        min-width: 0;
        order: 2;
    }

    .frontier-war-player-hud {
        margin: 10px;
        grid-template-columns: 1fr;
        order: 1;
    }

    .frontier-war-player-info-drawer,
    .frontier-war-player-info-drawer[open] {
        inset: auto;
        margin: 10px;
        width: calc(100% - 20px);
        max-width: none;
        max-height: none;
        overflow: visible;
        order: 3;
    }

    .frontier-war-player-dashboard-grid {
        grid-template-columns: 1fr;
    }

    .frontier-war-player-info-drawer-grid {
        grid-template-columns: 1fr;
    }

    .frontier-war-opening-steps {
        grid-template-columns: 1fr;
    }

    .frontier-war-player-hud-stats,
    .frontier-war-player-hud-actions {
        justify-content: flex-start;
    }

    .frontier-war-player-command-dock,
    .frontier-war-player-objective-dock {
        max-height: none;
        margin: 10px;
        overflow: visible;
        padding-right: 0;
    }

    .frontier-war-player-command-dock {
        order: 4;
    }

    .frontier-war-player-objective-dock {
        grid-template-columns: 1fr;
        order: 5;
    }

    .frontier-war-hero,
    .frontier-war-commercial-hero,
    .frontier-war-player-mode,
    .frontier-war-layout,
    .frontier-war-pressure-strip {
        grid-template-columns: 1fr;
    }

    .frontier-war-commercial-kpis,
    .frontier-war-commercial-warband,
    .frontier-war-commercial-shotrail {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .frontier-war-pressure-kpis,
    .frontier-war-pressure-actions,
    .frontier-war-toolbar-actions {
        justify-content: flex-start;
    }

    .frontier-war-workbench-tabs {
        display: flex;
        gap: 8px;
        overflow-x: auto;
        padding-bottom: 3px;
        scrollbar-width: thin;
    }

    .frontier-war-workbench-tab {
        flex: 0 0 142px;
    }

    .frontier-war-map {
        height: 540px;
        min-height: 540px;
    }

    .frontier-war-player-immersive .frontier-war-map {
        height: 100%;
        min-height: 100%;
    }

    .frontier-war-map-header {
        top: 10px;
        left: 10px;
        right: 10px;
        flex-direction: column;
    }

    .frontier-war-map-title,
    .frontier-war-map-kpis {
        max-width: none;
    }

    .frontier-war-map-kpis {
        justify-content: flex-start;
    }

    .frontier-war-map-legend {
        left: 10px;
        bottom: 10px;
        max-width: calc(100% - 20px);
    }

    .frontier-war-map-focus {
        right: 10px;
        bottom: 10px;
        width: min(280px, calc(100% - 20px));
    }

    .frontier-war-side {
        position: static;
        max-height: none;
        overflow: visible;
        padding-right: 0;
    }
}

@media (max-width: 620px) {
    .frontier-war-shell {
        padding: 10px;
    }

    .frontier-war-shell-player {
        padding: 0;
    }

    .frontier-war-player-map-panel {
        height: 560px;
    }

    .frontier-war-player-hud,
    .frontier-war-player-info-drawer,
    .frontier-war-player-info-drawer[open],
    .frontier-war-player-command-dock,
    .frontier-war-player-objective-dock {
        margin: 8px;
    }

    .frontier-war-player-info-drawer,
    .frontier-war-player-info-drawer[open] {
        width: calc(100% - 16px);
    }

    .frontier-war-player-hud {
        padding: 9px;
    }

    .frontier-war-player-hud-stats span {
        min-width: 0;
        flex: 1 1 calc(50% - 7px);
    }

    .frontier-war-player-hud-actions .frontier-war-small-btn {
        flex: 1 1 calc(50% - 7px);
    }

    .frontier-war-player-immersive .frontier-war-node-token-art {
        width: 52px;
        min-height: 54px;
    }

    .frontier-war-overview {
        display: flex;
        gap: 8px;
        overflow-x: auto;
        padding-bottom: 2px;
        scrollbar-width: thin;
    }

    .frontier-war-overview div {
        flex: 0 0 138px;
        padding: 10px;
    }

    .frontier-war-hero-copy {
        min-height: 136px;
    }

    .frontier-war-commercial-copy {
        min-height: 184px;
        padding: 14px;
    }

    .frontier-war-commercial-copy h3 {
        font-size: 1.22rem;
    }

    .frontier-war-commercial-kpis {
        display: flex;
        gap: 8px;
        overflow-x: auto;
        padding-bottom: 2px;
        scrollbar-width: thin;
    }

    .frontier-war-commercial-kpis div {
        flex: 0 0 136px;
    }

    .frontier-war-commercial-warband {
        grid-template-columns: 1fr;
    }

    .frontier-war-commercial-shotrail {
        display: flex;
        gap: 8px;
        overflow-x: auto;
        padding-bottom: 2px;
        scrollbar-width: thin;
    }

    .frontier-war-commercial-shotrail article {
        flex: 0 0 152px;
    }

    .frontier-war-player-node-kpis {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .frontier-war-toolbar {
        align-items: flex-start;
        flex-direction: column;
    }

    .frontier-war-map {
        height: 490px;
        min-height: 490px;
    }

    .frontier-war-map-header {
        top: 8px;
        left: 8px;
        right: 8px;
        gap: 8px;
    }

    .frontier-war-map-title {
        padding: 8px 9px;
    }

    .frontier-war-map-title strong {
        font-size: 0.94rem;
    }

    .frontier-war-map-title em,
    .frontier-war-map-focus em,
    .frontier-war-map-focus p {
        font-size: 0.68rem;
    }

    .frontier-war-map-kpis {
        gap: 6px;
    }

    .frontier-war-map-kpis span {
        min-height: 28px;
        padding: 4px 7px;
        font-size: 0.66rem;
    }

    .frontier-war-map-legend {
        left: 8px;
        bottom: 84px;
        gap: 4px;
        max-width: calc(100% - 16px);
        padding: 5px 6px;
    }

    .frontier-war-map-legend span {
        gap: 4px;
        font-size: 0.66rem;
    }

    .frontier-war-map-legend i {
        width: 14px;
        height: 6px;
    }

    .frontier-war-map-legend b {
        width: 16px;
        height: 16px;
        font-size: 0.58rem;
    }

    .frontier-war-map-focus {
        left: 8px;
        right: 8px;
        bottom: 8px;
        width: auto;
        padding: 8px 9px;
    }

    .frontier-war-node {
        width: 34px;
        min-height: 34px;
        padding: 4px;
    }

    .frontier-war-node-seal {
        width: 23px;
        height: 23px;
        font-size: 0.6rem;
    }

    .frontier-war-node-type {
        width: 15px;
        height: 15px;
        font-size: 0.48rem;
    }

    .frontier-war-node-copy {
        max-width: 92px;
        padding: 3px 5px;
    }

    .frontier-war-node strong {
        font-size: 0.62rem;
    }

    .frontier-war-node em {
        display: none;
    }

    .frontier-war-node-badges {
        gap: 2px;
        min-height: 13px;
    }

    .frontier-war-node-badges small {
        min-width: 14px;
        height: 13px;
        font-size: 0.48rem;
    }

    .frontier-war-node.owner-fog {
        width: 26px;
        min-height: 26px;
        padding: 4px;
    }

    .frontier-war-node.owner-fog .frontier-war-node-seal {
        width: 19px;
        height: 19px;
    }

    .frontier-war-node-token-art {
        width: 44px;
        min-height: 46px;
    }

    .frontier-war-node-token-art::before {
        inset: 18px 4px 0;
    }

    .frontier-war-node-building {
        bottom: 7px;
        width: 42px;
        height: 38px;
    }

    .frontier-war-map-settlement-production-v115 .frontier-war-node-building {
        bottom: 4px;
        width: 48px;
        height: 44px;
    }

    .frontier-war-node-owner-plinth {
        width: 40px;
        height: 14px;
    }

    .frontier-war-node-fx-ring {
        width: 42px;
        height: 19px;
    }

    .frontier-war-node-fx-burst {
        width: 44px;
        height: 34px;
    }

    .frontier-war-node-banner {
        right: 4px;
        top: 8px;
        width: 12px;
        height: 18px;
    }

    .frontier-war-map-occupation-fx .frontier-war-node-banner {
        right: 0;
        top: 0;
        width: 18px;
        height: 28px;
    }

    .frontier-war-node-token-art .frontier-war-node-head {
        right: -2px;
        bottom: 0;
    }

    .frontier-war-node-token-art .frontier-war-node-seal {
        width: 16px;
        height: 16px;
        font-size: 0.42rem;
    }

    .frontier-war-route-brush {
        height: 18px;
        min-width: 20px;
    }

    .frontier-war-territory span {
        font-size: 0.58rem;
    }

    .frontier-war-map-decal {
        opacity: 0.42;
        width: min(var(--fw-mobile-decal-width, 15%), 64px) !important;
    }

    .frontier-war-map-landmark,
    .frontier-war-map-fireline {
        width: min(10%, 46px) !important;
    }

    .frontier-war-action-aftershock:not(.kind-action-trail) {
        width: min(var(--fw-aftershock-mobile-width, 13%), 58px) !important;
    }

    .frontier-war-consequence-flow:not(.kind-route-ripple):not(.kind-frontline-claim):not(.kind-region-shock) {
        width: min(var(--fw-flow-mobile-width, 13%), 58px) !important;
    }

    .frontier-war-consequence-flow.kind-region-shock {
        opacity: 0.34;
    }

    .frontier-war-action-aftershock.kind-action-trail {
        max-width: 34%;
        height: 8px;
    }

    .frontier-war-consequence-flow.kind-route-ripple,
    .frontier-war-consequence-flow.kind-frontline-claim {
        max-width: 34%;
        height: 7px;
    }

    .frontier-war-decision-cue {
        min-width: 96px;
        max-width: 138px;
        padding: 6px 7px 6px 9px;
        opacity: 0.86;
    }

    .frontier-war-decision-cue strong {
        font-size: 0.58rem;
    }

    .frontier-war-decision-cue em {
        display: none;
    }

    .frontier-war-decision-rationale {
        min-width: 104px;
        max-width: 148px;
        grid-template-columns: 18px minmax(0, 1fr);
        padding: 6px 7px;
        opacity: 0.82;
    }

    .frontier-war-decision-rationale i {
        width: 18px;
        height: 18px;
        font-size: 0.58rem;
    }

    .frontier-war-decision-rationale strong {
        font-size: 0.58rem;
    }

    .frontier-war-decision-rationale em {
        display: none;
    }

    .frontier-war-decision-preview {
        min-width: 106px;
        max-width: 154px;
        grid-template-columns: 18px minmax(0, 1fr);
        padding: 6px 7px;
        opacity: 0.84;
    }

    .frontier-war-decision-preview i {
        width: 18px;
        height: 18px;
        font-size: 0.58rem;
    }

    .frontier-war-decision-preview strong {
        font-size: 0.58rem;
    }

    .frontier-war-decision-preview em {
        display: none;
    }

    .frontier-war-confirm-trace {
        height: 7px;
        min-width: 34px;
        opacity: 0.62;
    }

    .frontier-war-confirm-trace b {
        width: 16px;
        height: 16px;
        font-size: 0.52rem;
    }

    .frontier-war-confirm-trace em {
        display: none;
    }

    .frontier-war-decision-preview-steps,
    .frontier-war-decision-rationale-steps,
    .frontier-war-confirm-trace-steps {
        grid-template-columns: 1fr;
    }

    .frontier-war-actions,
    .frontier-war-detail-grid,
    .frontier-war-power-breakdown-grid,
    .frontier-war-hero-card,
    .frontier-war-forecast-grid,
    .frontier-war-command-chain,
    .frontier-war-council-topline,
    .frontier-war-council-layout,
    .frontier-war-council-actions,
    .frontier-war-storyline,
    .frontier-war-playtest-kpis,
    .frontier-war-100-benchmarks,
    .frontier-war-100-modules,
    .frontier-war-100-next,
    .frontier-war-commercial-showcase,
    .frontier-war-report-art,
    .frontier-war-report-commercial,
    .frontier-war-report-illustrated-map,
    .frontier-war-report-asset-polish,
    .frontier-war-asset-cast,
    .frontier-war-shot-deck,
    .frontier-war-report-100-audit,
    .frontier-war-report-geo-ecology,
    .frontier-war-geo-kpis,
    .frontier-war-geo-grid,
    .frontier-war-geo-regions,
    .frontier-war-geo-chokes,
    .frontier-war-geo-heartlands,
    .frontier-war-war-prep-kpis,
    .frontier-war-war-prep-plans,
    .frontier-war-war-prep-lines,
    .frontier-war-report-war-prep,
    .frontier-war-hero-warband-kpis,
    .frontier-war-hero-warband-slots,
    .frontier-war-hero-warband-bonds,
    .frontier-war-hero-warband-events,
    .frontier-war-hero-warband-memory,
    .frontier-war-hero-warband-routes,
    .frontier-war-report-hero-warband,
    .frontier-war-diplomacy-kpis,
    .frontier-war-diplomacy-agendas,
    .frontier-war-diplomacy-actions,
    .frontier-war-diplomacy-seats,
    .frontier-war-diplomacy-coalition,
    .frontier-war-report-diplomacy-politics,
    .frontier-war-readability-kpis,
    .frontier-war-readability-tutorial,
    .frontier-war-readability-layers,
    .frontier-war-readability-reports,
    .frontier-war-readability-coach,
    .frontier-war-readability-terms,
    .frontier-war-report-war-readability,
    .frontier-war-content-kpis,
    .frontier-war-content-scenarios,
    .frontier-war-content-factions,
    .frontier-war-content-heroes,
    .frontier-war-content-terrain,
    .frontier-war-content-endings,
    .frontier-war-content-runs,
    .frontier-war-report-content-scale,
    .frontier-war-final-kpis,
    .frontier-war-final-playtest,
    .frontier-war-final-matrix,
    .frontier-war-final-difficulty,
    .frontier-war-final-checks,
    .frontier-war-report-final-release,
    .frontier-war-productization-kpis,
    .frontier-war-productization-routes,
    .frontier-war-productization-calendar,
    .frontier-war-productization-copy,
    .frontier-war-productization-gates,
    .frontier-war-report-productization,
    .frontier-war-release-candidate-kpis,
    .frontier-war-release-candidate-gates,
    .frontier-war-release-candidate-commands,
    .frontier-war-release-candidate-artifacts,
    .frontier-war-report-release-candidate,
    .frontier-war-current-save-kpis,
    .frontier-war-current-save-grid,
    .frontier-war-report-current-save,
    .frontier-war-scenario-matrix,
    .frontier-war-viewport-kpis,
    .frontier-war-difficulty-switch,
    .frontier-war-difficulty-curve,
    .frontier-war-realrun-kpis,
    .frontier-war-realrun-grid,
    .frontier-war-campaign-tags,
    .frontier-war-campaign-advice,
    .frontier-war-route-events,
    .frontier-war-route-aftermath,
    .frontier-war-doctrine-counter-grid,
    .frontier-war-doctrine-response-grid,
    .frontier-war-strategy-memory-grid,
    .frontier-war-memory-opportunities,
    .frontier-war-season-legacy-grid,
    .frontier-war-season-legacy-carryovers,
    .frontier-war-season-challenge-grid,
    .frontier-war-season-challenge-badges,
    .frontier-war-season-challenge-next,
    .frontier-war-season-collection-grid,
    .frontier-war-season-collection-badges,
    .frontier-war-season-collection-rewards,
    .frontier-war-season-library-grid,
    .frontier-war-season-quest-grid,
    .frontier-war-season-branch-grid,
    .frontier-war-branch-intervention-actions,
    .frontier-war-review-stages,
    .frontier-war-review-advice,
    .frontier-war-tribunal-kpis,
    .frontier-war-tribunal-seats,
    .frontier-war-tribunal-stage,
    .frontier-war-tribunal-actions,
    .frontier-war-tribunal-history,
    .frontier-war-edict-options,
    .frontier-war-edict-history,
    .frontier-war-route-grid,
    .frontier-war-route-combos,
    .frontier-war-triad-grid,
    .frontier-war-tension-grid,
    .frontier-war-ceremony-steps,
    .frontier-war-route-ledger,
    .frontier-war-replay-plan,
    .frontier-war-report-ceremony,
    .frontier-war-report-doctrine,
    .frontier-war-report-doctrine-counter,
    .frontier-war-report-doctrine-response,
    .frontier-war-report-strategy-memory,
    .frontier-war-report-season-legacy,
    .frontier-war-report-season-challenge,
    .frontier-war-report-season-collection,
    .frontier-war-report-season-library,
    .frontier-war-report-season-quest,
    .frontier-war-report-season-branch,
    .frontier-war-report-season-branch-pool,
    .frontier-war-report-season-branch-weight,
    .frontier-war-report-season-branch-intervention,
    .frontier-war-report-season-branch-memory,
    .frontier-war-report-season-branch-misdirection,
    .frontier-war-report-season-branch-misdirection-economy,
    .frontier-war-report-counterintelligence,
    .frontier-war-report-intelligence-archive,
    .frontier-war-report-intelligence-legacy,
    .frontier-war-report-intelligence-counterplay,
    .frontier-war-report-enemy-tactics,
    .frontier-war-report-tactical-legacy,
    .frontier-war-report-tactical-counterplay,
    .frontier-war-report-tactical-objectives,
    .frontier-war-report-tactical-objective-collection,
    .frontier-war-report-tactical-challenge-chain,
    .frontier-war-report-tactical-challenge-intervention,
    .frontier-war-report-tactical-challenge-adaptation,
    .frontier-war-report-tactical-adaptation-archive,
    .frontier-war-report-tactical-trend-profile,
    .frontier-war-report-tactical-preparation,
    .frontier-war-report-tactical-preparation-fulfillment,
    .frontier-war-report-tactical-adjustment-fulfillment,
    .frontier-war-report-tactical-late-memory,
    .frontier-war-report-tactical-late-style,
    .frontier-war-report-tactical-style-counter,
    .frontier-war-season-branch-memory,
    .frontier-war-branch-misdirection-actions,
    .frontier-war-branch-misdirection-economy,
    .frontier-war-counterintel-tasks,
    .frontier-war-intelligence-archive,
    .frontier-war-intelligence-legacy,
    .frontier-war-intelligence-counterplay,
    .frontier-war-enemy-tactics,
    .frontier-war-tactical-legacy,
    .frontier-war-tactical-counterplay,
    .frontier-war-tactical-objectives,
    .frontier-war-tactical-objective-collection,
    .frontier-war-tactical-challenge-chain,
    .frontier-war-tactical-challenge-intervention,
    .frontier-war-tactical-challenge-adaptation,
    .frontier-war-tactical-adaptation-archive,
    .frontier-war-tactical-trend-profile,
    .frontier-war-tactical-preparation,
    .frontier-war-tactical-preparation-fulfillment,
    .frontier-war-tactical-adjustment-fulfillment,
    .frontier-war-tactical-late-memory,
    .frontier-war-tactical-late-style,
    .frontier-war-tactical-style-counter,
    .frontier-war-pacing-kpis,
    .frontier-war-pacing-history,
    .frontier-war-branch-sampling-kpis,
    .frontier-war-branch-sampling-grid,
    .frontier-war-longrun-kpis,
    .frontier-war-longrun-matrix-grid,
    .frontier-war-longrun-timeline,
    .frontier-war-art-kpis,
    .frontier-war-commercial-packaging-kpis,
    .frontier-war-asset-tracks,
    .frontier-war-commercial-combatrail,
    .frontier-war-region-occupation-grid,
    .frontier-war-action-cinematic-rail,
    .frontier-war-action-cinematic-tracks,
    .frontier-war-art-slot-grid,
    .frontier-war-region-overlay-grid,
    .frontier-war-faction-landmark-grid,
    .frontier-war-battle-fireline-grid,
    .frontier-war-dynamic-war-grid,
    .frontier-war-action-aftershock-grid,
    .frontier-war-consequence-flow-grid,
    .frontier-war-decision-cue-grid,
    .frontier-war-confirm-stack-cause-filter-grid,
    .frontier-war-confirm-stack-cause-filter-timeline,
    .frontier-war-confirm-stack-replay-pin-grid,
    .frontier-war-confirm-stack-replay-pin-compare-grid,
    .frontier-war-confirm-stack-misjump-recovery-path,
    .frontier-war-confirm-stack-recovery-receipt-grid,
    .frontier-war-confirm-stack-return-path-fault-grid,
    .frontier-war-confirm-stack-return-path-drill-steps,
    .frontier-war-confirm-stack-return-path-proof-grid,
    .frontier-war-confirm-stack-diff-cause-labels,
    .frontier-war-confirm-stack-guarded-undo-drilldown,
    .frontier-war-confirm-stack-guarded-undo-closure,
    .frontier-war-confirm-stack-receipt-diff-grid,
    .frontier-war-confirm-stack-undo-safety-loop,
    .frontier-war-confirm-stack-trace-landing-grid,
    .frontier-war-confirm-stack-action-receipt-grid,
    .frontier-war-confirm-stack-undo-mirror-path,
    .frontier-war-confirm-stack-intent-confidence-grid,
    .frontier-war-confirm-stack-return-replay-path,
    .frontier-war-confirm-stack-trace-jump-actions,
    .frontier-war-confirm-stack-trace-jump-grid,
    .frontier-war-confirm-stack-outcome-echo-grid,
    .frontier-war-confirm-stack-recommendation-score,
    .frontier-war-confirm-stack-recommendation-grid,
    .frontier-war-confirm-stack-playback-pin-summary,
    .frontier-war-confirm-stack-playback-pin-grid,
    .frontier-war-confirm-stack-playback-summary,
    .frontier-war-confirm-stack-playback-track,
    .frontier-war-confirm-stack-drilldown-summary,
    .frontier-war-confirm-stack-drilldown-grid,
    .frontier-war-confirm-stack-filter-grid,
    .frontier-war-confirm-stack-grid,
    .frontier-war-confirm-replay-grid,
    .frontier-war-confirm-trace-grid,
    .frontier-war-decision-preview-grid,
    .frontier-war-decision-rationale-grid,
    .frontier-war-action-cinematic-target,
    .frontier-war-combat-lens-grid,
    .frontier-war-command-cinematics,
    .frontier-war-battle-freeze,
    .frontier-war-combat-feedback-kpis,
    .frontier-war-combat-aftermath,
    .frontier-war-combat-feedback-tracks,
    .frontier-war-report-combat-feedback {
        grid-template-columns: 1fr;
    }

    .frontier-war-commercial-combatrail {
        display: flex;
        gap: 8px;
        overflow-x: auto;
        padding-bottom: 2px;
        scrollbar-width: thin;
    }

    .frontier-war-confirm-stack-v130 {
        left: 10px;
        right: 10px;
        bottom: 168px;
        width: auto;
    }

    .frontier-war-map-trace-drilldown-v132 .frontier-war-confirm-stack-v130 {
        display: none;
    }

    .frontier-war-map-trace-playback-v133 .frontier-war-confirm-stack-v130,
    .frontier-war-map-trace-playback-v133 .frontier-war-confirm-stack-drilldown-v132 {
        display: none;
    }

    .frontier-war-confirm-stack-filter-v131 {
        left: 10px;
        right: 10px;
        bottom: 10px;
        width: auto;
    }

    .frontier-war-confirm-stack-drilldown-v132 {
        left: 10px;
        right: 10px;
        top: 112px;
        width: auto;
    }

    .frontier-war-confirm-stack-playback-v133 {
        left: 10px;
        right: 10px;
        top: 112px;
        width: auto;
    }

    .frontier-war-confirm-stack-return-path-fault-drill-v150,
    .frontier-war-confirm-stack-replay-pin-compare-v149,
    .frontier-war-confirm-stack-cause-filtered-undo-timeline-v148 {
        padding: 7px;
    }

    .frontier-war-confirm-stack-drilldown-grid-v132 {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 3px;
    }

    .frontier-war-confirm-stack-playback-track-v133 {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 3px;
    }

    .frontier-war-confirm-stack-recommendation-score,
    .frontier-war-confirm-stack-cause-filter-grid,
    .frontier-war-confirm-stack-cause-filter-timeline,
    .frontier-war-confirm-stack-replay-pin-grid,
    .frontier-war-confirm-stack-return-path-fault-grid,
    .frontier-war-confirm-stack-return-path-drill-steps,
    .frontier-war-confirm-stack-return-path-proof-grid,
    .frontier-war-confirm-stack-diff-cause-labels,
    .frontier-war-confirm-stack-guarded-undo-drilldown,
    .frontier-war-confirm-stack-guarded-undo-closure,
    .frontier-war-confirm-stack-receipt-diff-grid,
    .frontier-war-confirm-stack-undo-safety-loop,
    .frontier-war-confirm-stack-action-receipt-grid,
    .frontier-war-confirm-stack-undo-mirror-path,
    .frontier-war-confirm-stack-intent-confidence-grid,
    .frontier-war-confirm-stack-return-replay-path,
    .frontier-war-confirm-stack-entry-handoff-intent-grid,
    .frontier-war-confirm-stack-entry-handoff-breadcrumbs,
    .frontier-war-confirm-stack-trace-landing-decay-grid,
    .frontier-war-confirm-stack-trace-landing-echo-grid,
    .frontier-war-confirm-stack-trace-landing-grid,
    .frontier-war-confirm-stack-trace-jump-actions,
    .frontier-war-confirm-stack-trace-jump-grid,
    .frontier-war-confirm-stack-outcome-echo-grid,
    .frontier-war-confirm-stack-commit-highlight-grid,
    .frontier-war-confirm-stack-commit-preview-grid,
    .frontier-war-confirm-stack-recommendation-grid,
    .frontier-war-confirm-stack-playback-pin-grid-v134,
    .frontier-war-confirm-stack-playback-pin-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 3px;
    }

    .frontier-war-confirm-stack-trace-jump-actions,
    .frontier-war-confirm-stack-cause-filter-grid,
    .frontier-war-confirm-stack-cause-filter-timeline,
    .frontier-war-confirm-stack-replay-pin-grid,
    .frontier-war-confirm-stack-diff-cause-labels,
    .frontier-war-confirm-stack-guarded-undo-drilldown,
    .frontier-war-confirm-stack-guarded-undo-closure,
    .frontier-war-confirm-stack-receipt-diff-grid,
    .frontier-war-confirm-stack-undo-safety-loop,
    .frontier-war-confirm-stack-action-receipt-grid,
    .frontier-war-confirm-stack-undo-mirror-path,
    .frontier-war-confirm-stack-intent-confidence-grid,
    .frontier-war-confirm-stack-entry-handoff-intent-grid,
    .frontier-war-confirm-stack-trace-landing-decay-grid,
    .frontier-war-confirm-stack-return-path-fault-grid,
    .frontier-war-confirm-stack-return-path-drill-steps,
    .frontier-war-confirm-stack-return-path-proof-grid,
    .frontier-war-confirm-stack-trace-landing-echo-grid,
    .frontier-war-confirm-stack-trace-landing-grid,
    .frontier-war-confirm-stack-trace-jump-grid,
    .frontier-war-confirm-stack-outcome-echo-grid,
    .frontier-war-confirm-stack-commit-highlight-grid,
    .frontier-war-confirm-stack-commit-preview-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .frontier-war-confirm-stack-drilldown-grid-v132 article {
        padding: 5px 3px;
    }

    .frontier-war-confirm-stack-playback-track-v133 article {
        padding: 5px 3px;
    }

    .frontier-war-confirm-stack-recommendation-score article,
    .frontier-war-confirm-stack-cause-filter-grid article,
    .frontier-war-confirm-stack-cause-filter-timeline button,
    .frontier-war-confirm-stack-replay-pin-grid article,
    .frontier-war-confirm-stack-receipt-diff-grid article,
    .frontier-war-confirm-stack-undo-safety-loop button,
    .frontier-war-confirm-stack-action-receipt-grid article,
    .frontier-war-confirm-stack-undo-mirror-path button,
    .frontier-war-confirm-stack-intent-confidence-grid article,
    .frontier-war-confirm-stack-return-replay-path button,
    .frontier-war-confirm-stack-entry-handoff-intent-grid article,
    .frontier-war-confirm-stack-entry-handoff-breadcrumbs button,
    .frontier-war-confirm-stack-trace-landing-decay-grid article,
    .frontier-war-confirm-stack-trace-landing-echo-grid button,
    .frontier-war-confirm-stack-trace-landing-grid article,
    .frontier-war-confirm-stack-trace-jump-actions button,
    .frontier-war-confirm-stack-trace-jump-grid article,
    .frontier-war-confirm-stack-outcome-echo-grid article,
    .frontier-war-confirm-stack-commit-highlight-grid article,
    .frontier-war-confirm-stack-commit-preview-grid article,
    .frontier-war-confirm-stack-recommendation-grid article,
    .frontier-war-confirm-stack-playback-pin-grid-v134 article,
    .frontier-war-confirm-stack-playback-pin-grid article {
        padding: 5px 3px;
    }

    .frontier-war-confirm-stack-drilldown-grid-v132 strong,
    .frontier-war-confirm-stack-drilldown-grid-v132 span,
    .frontier-war-confirm-stack-playback-track-v133 strong,
    .frontier-war-confirm-stack-playback-track-v133 span,
    .frontier-war-confirm-stack-recommendation-score strong,
    .frontier-war-confirm-stack-recommendation-score b,
    .frontier-war-confirm-stack-cause-filter-grid strong,
    .frontier-war-confirm-stack-cause-filter-grid span,
    .frontier-war-confirm-stack-cause-filter-grid em,
    .frontier-war-confirm-stack-cause-filter-timeline strong,
    .frontier-war-confirm-stack-cause-filter-timeline span,
    .frontier-war-confirm-stack-cause-filter-timeline em,
    .frontier-war-confirm-stack-replay-pin-grid strong,
    .frontier-war-confirm-stack-replay-pin-grid span,
    .frontier-war-confirm-stack-replay-pin-grid em,
    .frontier-war-confirm-stack-receipt-diff-grid strong,
    .frontier-war-confirm-stack-receipt-diff-grid span,
    .frontier-war-confirm-stack-receipt-diff-grid em,
    .frontier-war-confirm-stack-undo-safety-loop strong,
    .frontier-war-confirm-stack-undo-safety-loop span,
    .frontier-war-confirm-stack-undo-safety-loop em,
    .frontier-war-confirm-stack-action-receipt-grid strong,
    .frontier-war-confirm-stack-action-receipt-grid span,
    .frontier-war-confirm-stack-action-receipt-grid em,
    .frontier-war-confirm-stack-undo-mirror-path strong,
    .frontier-war-confirm-stack-undo-mirror-path span,
    .frontier-war-confirm-stack-undo-mirror-path em,
    .frontier-war-confirm-stack-intent-confidence-grid strong,
    .frontier-war-confirm-stack-intent-confidence-grid span,
    .frontier-war-confirm-stack-intent-confidence-grid em,
    .frontier-war-confirm-stack-return-replay-path strong,
    .frontier-war-confirm-stack-return-replay-path span,
    .frontier-war-confirm-stack-return-replay-path em,
    .frontier-war-confirm-stack-entry-handoff-intent-grid strong,
    .frontier-war-confirm-stack-entry-handoff-intent-grid span,
    .frontier-war-confirm-stack-entry-handoff-intent-grid em,
    .frontier-war-confirm-stack-entry-handoff-breadcrumbs strong,
    .frontier-war-confirm-stack-entry-handoff-breadcrumbs span,
    .frontier-war-confirm-stack-entry-handoff-breadcrumbs em,
    .frontier-war-confirm-stack-trace-landing-decay-grid strong,
    .frontier-war-confirm-stack-trace-landing-decay-grid span,
    .frontier-war-confirm-stack-trace-landing-decay-grid em,
    .frontier-war-confirm-stack-trace-landing-echo-grid strong,
    .frontier-war-confirm-stack-trace-landing-echo-grid span,
    .frontier-war-confirm-stack-trace-landing-echo-grid em,
    .frontier-war-confirm-stack-trace-landing-grid strong,
    .frontier-war-confirm-stack-trace-landing-grid span,
    .frontier-war-confirm-stack-trace-landing-grid em,
    .frontier-war-confirm-stack-trace-jump-actions strong,
    .frontier-war-confirm-stack-trace-jump-actions span,
    .frontier-war-confirm-stack-trace-jump-grid strong,
    .frontier-war-confirm-stack-trace-jump-grid span,
    .frontier-war-confirm-stack-trace-jump-grid em,
    .frontier-war-confirm-stack-outcome-echo-grid strong,
    .frontier-war-confirm-stack-outcome-echo-grid span,
    .frontier-war-confirm-stack-outcome-echo-grid em,
    .frontier-war-confirm-stack-commit-highlight-grid strong,
    .frontier-war-confirm-stack-commit-highlight-grid span,
    .frontier-war-confirm-stack-commit-highlight-grid em,
    .frontier-war-confirm-stack-commit-preview-grid strong,
    .frontier-war-confirm-stack-commit-preview-grid span,
    .frontier-war-confirm-stack-commit-preview-grid em,
    .frontier-war-confirm-stack-recommendation-grid strong,
    .frontier-war-confirm-stack-recommendation-grid span,
    .frontier-war-confirm-stack-playback-pin-grid-v134 strong,
    .frontier-war-confirm-stack-playback-pin-grid-v134 span,
    .frontier-war-confirm-stack-playback-pin-grid-v134 b {
        font-size: 0.52rem;
    }

    .frontier-war-confirm-stack-filter-options-v131,
    .frontier-war-confirm-stack-filter-tabs {
        grid-template-columns: repeat(5, minmax(0, 1fr));
        gap: 3px;
    }

    .frontier-war-confirm-stack-filter-option-v131,
    .frontier-war-confirm-stack-filter-tabs button {
        padding: 5px 3px;
    }

    .frontier-war-confirm-stack-filter-option-v131 span,
    .frontier-war-confirm-stack-filter-tabs strong {
        font-size: 0.54rem;
    }

    .frontier-war-confirm-stack-filter-list-v131 {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .frontier-war-action-cinematic-rail,
    .frontier-war-action-cinematic-target {
        display: flex;
        gap: 8px;
        overflow-x: auto;
        padding-bottom: 2px;
        scrollbar-width: thin;
    }

    .frontier-war-commercial-combatrail article,
    .frontier-war-action-cinematic-rail article,
    .frontier-war-action-cinematic-target > div {
        flex: 0 0 160px;
    }

    .frontier-war-forecast {
        padding: 8px;
    }

    .frontier-war-command-chain button {
        min-height: 52px;
    }

    .frontier-war-action {
        min-height: 54px;
        padding: 8px;
    }

    .frontier-war-workbench-page.active {
        grid-template-columns: 1fr;
    }

    .frontier-war-report-banner {
        min-height: 74px;
    }

    .frontier-war-conquest-feedback {
        min-height: 104px;
        grid-template-columns: 1fr;
        gap: 8px;
        padding: 10px;
    }

    .frontier-war-feedback-runes {
        justify-content: flex-start;
    }

    .frontier-war-small-btn,
    .frontier-war-mini-action,
    .frontier-war-replay-grid button,
    .frontier-war-scenario-grid button {
        max-width: 100%;
        overflow-wrap: anywhere;
    }

    .frontier-war-toolbar {
        align-items: flex-start;
        flex-direction: column;
    }
}

@media (max-width: 720px) {
    .frontier-war-confirm-stack-echo-trail-handoff-grid,
    .frontier-war-confirm-stack-echo-trail-handoff-route {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 3px;
    }

    .frontier-war-confirm-stack-echo-trail-handoff-grid article,
    .frontier-war-confirm-stack-echo-trail-handoff-route button {
        padding: 5px 3px;
    }

    .frontier-war-confirm-stack-echo-trail-handoff-grid strong,
    .frontier-war-confirm-stack-echo-trail-handoff-grid span,
    .frontier-war-confirm-stack-echo-trail-handoff-grid em,
    .frontier-war-confirm-stack-echo-trail-handoff-route strong,
    .frontier-war-confirm-stack-echo-trail-handoff-route span,
    .frontier-war-confirm-stack-echo-trail-handoff-route em {
        font-size: 0.52rem;
    }
}


.frontier-war-map-return-path-replay-delta-v152 .return-path-replay-delta-v152 {
    box-shadow: 0 0 0 2px rgba(125, 211, 252, 0.42), 0 14px 30px rgba(14, 165, 233, 0.18);
}

.frontier-war-confirm-stack-return-path-delta-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 8px;
}

.frontier-war-confirm-stack-return-path-delta-grid article {
    border: 1px solid rgba(125, 211, 252, 0.28);
    border-radius: 12px;
    padding: 8px;
    background: rgba(8, 47, 73, 0.34);
}

.frontier-war-confirm-stack-return-path-delta-grid article.ready {
    border-color: rgba(74, 222, 128, 0.36);
}

.frontier-war-confirm-stack-return-path-replay-delta-v152 .frontier-war-confirm-stack-return-path-delta-grid em,
.frontier-war-confirm-stack-return-path-fault-drill-panel .frontier-war-confirm-stack-return-path-delta-grid em {
    color: rgba(226, 232, 240, 0.82);
    overflow-wrap: anywhere;
}

.frontier-war-node.marker-optimized-v154 .frontier-war-node-badges {
    top: -8px;
    gap: 2px;
    min-height: 16px;
    padding: 1px 2px;
    border: 1px solid rgba(255, 247, 232, 0.22);
    border-radius: 999px;
    background: rgba(6, 13, 15, 0.62);
    box-shadow: 0 3px 8px rgba(0, 0, 0, 0.28);
}

.frontier-war-node.marker-optimized-v154 .frontier-war-node-badges small {
    min-width: 15px;
    height: 15px;
    padding: 0 3px;
    border: 1px solid rgba(255, 247, 232, 0.2);
    font-size: 0.5rem;
}

.frontier-war-node.marker-optimized-v154 .frontier-war-node-badges small.fallback {
    opacity: 0.72;
}

.frontier-war-node.marker-has-hidden-v154 .frontier-war-node-badges::after {
    content: '+';
    display: grid;
    place-items: center;
    width: 11px;
    height: 11px;
    border-radius: 999px;
    color: #ffe9b5;
    background: rgba(6, 13, 15, 0.74);
    font-size: 0.48rem;
    font-weight: 800;
    line-height: 1;
}

.frontier-war-node.marker-density-dense .frontier-war-node-badges {
    border-color: rgba(240, 199, 110, 0.42);
}

.frontier-war-node.marker-density-watch .frontier-war-node-badges {
    border-color: rgba(125, 211, 252, 0.28);
}

.frontier-war-node.marker-density-clear .frontier-war-node-badges {
    border-color: rgba(116, 214, 202, 0.28);
}

.frontier-war-node.marker-priority-recommended::before,
.frontier-war-node.marker-priority-enemy-target::before,
.frontier-war-node.marker-priority-danger::before {
    box-shadow: 0 0 0 3px rgba(240, 199, 110, 0.2), 0 12px 24px rgba(0, 0, 0, 0.34);
}

.frontier-war-node.marker-priority-enemy-target::before,
.frontier-war-node.marker-priority-danger::before {
    border-color: rgba(216, 95, 95, 0.86);
}

.frontier-war-node.marker-priority-pressure-hotspot::before,
.frontier-war-node.marker-priority-frontline::before,
.frontier-war-node.marker-priority-border::before {
    border-color: rgba(125, 211, 252, 0.56);
}

.frontier-war-map > .frontier-war-map-marker-readability-v153,
.frontier-war-map > .frontier-war-map-marker-optimization-v154,
.frontier-war-map > .frontier-war-map-marker-legend-v155,
.frontier-war-map > .frontier-war-map-marker-consistency-v156 {
    position: absolute;
    right: 14px;
    z-index: 22;
    width: min(260px, calc(100% - 28px));
    padding: 9px;
    border: 1px solid rgba(125, 211, 252, 0.26);
    border-radius: 8px;
    color: rgba(255, 247, 232, 0.92);
    background: rgba(6, 13, 15, 0.72);
    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.28);
    backdrop-filter: blur(4px);
    pointer-events: none;
}

.frontier-war-map > .frontier-war-map-marker-readability-v153 {
    top: 76px;
}

.frontier-war-map > .frontier-war-map-marker-optimization-v154 {
    top: 184px;
    border-color: rgba(116, 214, 202, 0.28);
}

.frontier-war-map > .frontier-war-map-marker-legend-v155 {
    top: 292px;
    border-color: rgba(240, 199, 110, 0.28);
}

.frontier-war-map > .frontier-war-map-marker-consistency-v156 {
    top: 400px;
    border-color: rgba(125, 211, 252, 0.3);
    background: rgba(6, 18, 19, 0.72);
}

.frontier-war-map > .frontier-war-map-marker-dock-v157 {
    position: absolute;
    top: 154px;
    right: 12px;
    z-index: 24;
    display: grid;
    gap: 6px;
    width: min(258px, calc(100% - 24px));
    padding: 8px;
    border: 1px solid rgba(125, 211, 252, 0.32);
    border-radius: 8px;
    color: rgba(255, 247, 232, 0.92);
    background: rgba(5, 15, 18, 0.76);
    box-shadow: 0 14px 28px rgba(0, 0, 0, 0.32);
    backdrop-filter: blur(5px);
    pointer-events: none;
}

.frontier-war-marker-dock-head-v157 {
    display: grid;
    gap: 2px;
}

.frontier-war-marker-dock-head-v157 span,
.frontier-war-marker-dock-head-v157 em {
    color: rgba(226, 232, 240, 0.74);
    font-size: 0.6rem;
    font-style: normal;
    overflow-wrap: anywhere;
    text-transform: uppercase;
}

.frontier-war-marker-dock-head-v157 strong {
    color: #fff7e8;
    font-size: 0.78rem;
}

.frontier-war-marker-dock-summary-v157,
.frontier-war-marker-dock-legacy-v157 {
    display: grid;
    gap: 5px;
}

.frontier-war-marker-dock-legacy-v157 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.frontier-war-marker-dock-summary-v157 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.frontier-war-marker-dock-summary-v157 article,
.frontier-war-marker-dock-legacy-v157 > .frontier-war-map-marker-readability-v153,
.frontier-war-marker-dock-legacy-v157 > .frontier-war-map-marker-optimization-v154,
.frontier-war-marker-dock-legacy-v157 > .frontier-war-map-marker-legend-v155,
.frontier-war-marker-dock-legacy-v157 > .frontier-war-map-marker-consistency-v156 {
    min-width: 0;
    padding: 6px;
    border: 1px solid rgba(255, 247, 232, 0.13);
    border-radius: 7px;
    background: rgba(255, 247, 232, 0.05);
    box-shadow: none;
}

.frontier-war-marker-dock-summary-v157 article strong,
.frontier-war-marker-dock-summary-v157 article span,
.frontier-war-marker-dock-summary-v157 article em {
    display: block;
    margin: 0;
    overflow-wrap: anywhere;
}

.frontier-war-marker-dock-summary-v157 article span {
    color: rgba(240, 199, 110, 0.86);
    font-size: 0.58rem;
    font-weight: 800;
}

.frontier-war-marker-dock-summary-v157 article strong {
    color: #fff7e8;
    font-size: 0.66rem;
}

.frontier-war-marker-dock-summary-v157 article em {
    color: rgba(226, 232, 240, 0.72);
    font-size: 0.56rem;
    font-style: normal;
}

.frontier-war-marker-dock-legacy-v157 > .frontier-war-map-marker-readability-v153 > div:first-child,
.frontier-war-marker-dock-legacy-v157 > .frontier-war-map-marker-optimization-v154 > div:first-child,
.frontier-war-marker-dock-legacy-v157 > .frontier-war-map-marker-legend-v155 > div:first-child,
.frontier-war-marker-dock-legacy-v157 > .frontier-war-map-marker-consistency-v156 > div:first-child {
    display: grid;
    gap: 1px;
}

.frontier-war-marker-dock-legacy-v157 > .frontier-war-map-marker-readability-v153 span,
.frontier-war-marker-dock-legacy-v157 > .frontier-war-map-marker-optimization-v154 span,
.frontier-war-marker-dock-legacy-v157 > .frontier-war-map-marker-legend-v155 span,
.frontier-war-marker-dock-legacy-v157 > .frontier-war-map-marker-consistency-v156 span,
.frontier-war-marker-dock-legacy-v157 > .frontier-war-map-marker-readability-v153 em,
.frontier-war-marker-dock-legacy-v157 > .frontier-war-map-marker-optimization-v154 em,
.frontier-war-marker-dock-legacy-v157 > .frontier-war-map-marker-legend-v155 em,
.frontier-war-marker-dock-legacy-v157 > .frontier-war-map-marker-consistency-v156 em {
    color: rgba(226, 232, 240, 0.72);
    font-size: 0.56rem;
    font-style: normal;
    overflow-wrap: anywhere;
}

.frontier-war-marker-dock-legacy-v157 > .frontier-war-map-marker-readability-v153 strong,
.frontier-war-marker-dock-legacy-v157 > .frontier-war-map-marker-optimization-v154 strong,
.frontier-war-marker-dock-legacy-v157 > .frontier-war-map-marker-legend-v155 strong,
.frontier-war-marker-dock-legacy-v157 > .frontier-war-map-marker-consistency-v156 strong {
    color: #fff7e8;
    font-size: 0.68rem;
}

.frontier-war-marker-dock-legacy-v157 .frontier-war-marker-readability-samples-v153,
.frontier-war-marker-dock-legacy-v157 .frontier-war-marker-optimization-samples-v154,
.frontier-war-marker-dock-legacy-v157 .frontier-war-marker-legend-grid-v155,
.frontier-war-marker-dock-legacy-v157 .frontier-war-marker-hidden-context-v155,
.frontier-war-marker-dock-legacy-v157 .frontier-war-marker-consistency-grid-v156 {
    display: none;
}

.frontier-war-map > .frontier-war-map-marker-readability-v153 > div:first-child,
.frontier-war-map > .frontier-war-map-marker-optimization-v154 > div:first-child,
.frontier-war-map > .frontier-war-map-marker-legend-v155 > div:first-child,
.frontier-war-map > .frontier-war-map-marker-consistency-v156 > div:first-child {
    display: grid;
    gap: 2px;
}

.frontier-war-map > .frontier-war-map-marker-readability-v153 span,
.frontier-war-map > .frontier-war-map-marker-optimization-v154 span,
.frontier-war-map > .frontier-war-map-marker-legend-v155 span,
.frontier-war-map > .frontier-war-map-marker-consistency-v156 span {
    color: rgba(226, 232, 240, 0.76);
    font-size: 0.62rem;
    text-transform: uppercase;
}

.frontier-war-map > .frontier-war-map-marker-readability-v153 strong,
.frontier-war-map > .frontier-war-map-marker-optimization-v154 strong,
.frontier-war-map > .frontier-war-map-marker-legend-v155 strong,
.frontier-war-map > .frontier-war-map-marker-consistency-v156 strong {
    color: #fff7e8;
    font-size: 0.78rem;
}

.frontier-war-map > .frontier-war-map-marker-readability-v153 em,
.frontier-war-map > .frontier-war-map-marker-optimization-v154 em,
.frontier-war-map > .frontier-war-map-marker-legend-v155 em,
.frontier-war-map > .frontier-war-map-marker-consistency-v156 em {
    color: rgba(255, 247, 232, 0.72);
    font-size: 0.6rem;
    font-style: normal;
    overflow-wrap: anywhere;
}

.frontier-war-marker-readability-samples-v153,
.frontier-war-marker-optimization-samples-v154,
.frontier-war-marker-hidden-context-v155 {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 5px;
    margin-top: 7px;
}

.frontier-war-marker-readability-samples-v153 article,
.frontier-war-marker-optimization-samples-v154 article,
.frontier-war-marker-hidden-context-v155 article {
    min-width: 0;
    padding: 5px;
    border: 1px solid rgba(255, 247, 232, 0.14);
    border-radius: 7px;
    background: rgba(255, 247, 232, 0.05);
}

.frontier-war-marker-readability-samples-v153 strong,
.frontier-war-marker-optimization-samples-v154 strong,
.frontier-war-marker-hidden-context-v155 strong {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.frontier-war-marker-legend-grid-v155 {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 4px;
    margin-top: 7px;
}

.frontier-war-marker-consistency-grid-v156 {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 4px;
    margin-top: 7px;
}

.frontier-war-marker-legend-grid-v155 span {
    display: flex;
    align-items: center;
    gap: 4px;
    min-width: 0;
    padding: 4px 5px;
    border: 1px solid rgba(255, 247, 232, 0.13);
    border-radius: 7px;
    background: rgba(255, 247, 232, 0.05);
    overflow: hidden;
}

.frontier-war-marker-legend-grid-v155 b,
.frontier-war-marker-detail-v155 article span strong {
    flex: 0 0 auto;
    display: inline-grid;
    place-items: center;
    min-width: 1.15rem;
    height: 1.15rem;
    border-radius: 999px;
    color: #081314;
    background: rgba(240, 199, 110, 0.9);
    font-size: 0.62rem;
}

.frontier-war-marker-legend-grid-v155 em {
    margin-left: auto;
    font-size: 0.56rem;
}

.frontier-war-marker-consistency-grid-v156 article {
    min-width: 0;
    padding: 4px 5px;
    border: 1px solid rgba(255, 247, 232, 0.13);
    border-radius: 7px;
    background: rgba(255, 247, 232, 0.05);
}

.frontier-war-marker-consistency-grid-v156 strong,
.frontier-war-marker-consistency-grid-v156 span,
.frontier-war-marker-consistency-grid-v156 em {
    display: block;
    margin: 0;
    color: rgba(226, 232, 240, 0.72);
    font-size: 0.58rem;
    overflow-wrap: anywhere;
}

.frontier-war-marker-consistency-grid-v156 strong {
    color: #fff7e8;
    font-size: 0.64rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.frontier-war-marker-hidden-context-v155 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.frontier-war-marker-hidden-context-v155 span,
.frontier-war-marker-hidden-context-v155 p,
.frontier-war-marker-hidden-context-v155 em {
    margin: 0;
    color: rgba(226, 232, 240, 0.72);
    font-size: 0.62rem;
    overflow-wrap: anywhere;
}

.frontier-war-marker-detail-v155 {
    display: grid;
    gap: 8px;
    padding: 9px;
    border: 1px solid rgba(240, 199, 110, 0.2);
    border-radius: 8px;
    background: rgba(240, 199, 110, 0.06);
}

.frontier-war-marker-detail-v155 > div {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}

.frontier-war-marker-detail-v155 > div span,
.frontier-war-marker-detail-v155 > div em {
    color: rgba(226, 232, 240, 0.72);
    font-size: 0.66rem;
    font-style: normal;
}

.frontier-war-marker-detail-v155 > div strong {
    color: #fff7e8;
    font-size: 0.74rem;
    white-space: nowrap;
}

.frontier-war-marker-detail-v155 section {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 7px;
}

.frontier-war-marker-detail-v155 article {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 5px;
    min-width: 0;
}

.frontier-war-marker-detail-v155 article > b {
    flex-basis: 100%;
    color: rgba(255, 247, 232, 0.84);
    font-size: 0.66rem;
    font-weight: 800;
}

.frontier-war-marker-detail-v155 article span {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    min-width: 0;
    max-width: 100%;
    padding: 3px 5px;
    border: 1px solid rgba(255, 247, 232, 0.13);
    border-radius: 999px;
    color: rgba(255, 247, 232, 0.82);
    background: rgba(6, 13, 15, 0.34);
    font-size: 0.62rem;
}

.frontier-war-marker-detail-v155 article span strong {
    min-width: 1rem;
    height: 1rem;
    font-size: 0.58rem;
}

.frontier-war-map-marker-legend-panel-v155 {
    display: grid;
    gap: 10px;
    min-width: 0;
    padding: 12px;
    border: 1px solid rgba(240, 199, 110, 0.24);
    border-radius: 8px;
    background:
        linear-gradient(180deg, rgba(38, 27, 10, 0.74), rgba(6, 13, 15, 0.68)),
        radial-gradient(circle at 10% 0, rgba(240, 199, 110, 0.12), transparent 46%);
}

.frontier-war-map-marker-consistency-panel-v156 {
    display: grid;
    gap: 10px;
    min-width: 0;
    padding: 12px;
    border: 1px solid rgba(125, 211, 252, 0.24);
    border-radius: 8px;
    background:
        linear-gradient(180deg, rgba(7, 24, 29, 0.78), rgba(6, 13, 15, 0.68)),
        radial-gradient(circle at 8% 0, rgba(125, 211, 252, 0.12), transparent 48%);
}

.frontier-war-map-marker-dock-panel-v157 {
    display: grid;
    gap: 10px;
    align-content: start;
    align-self: start;
    min-width: 0;
    padding: 12px;
    border: 1px solid rgba(125, 211, 252, 0.26);
    border-radius: 8px;
    background:
        linear-gradient(180deg, rgba(6, 24, 31, 0.8), rgba(6, 13, 15, 0.68)),
        radial-gradient(circle at 8% 0, rgba(125, 211, 252, 0.14), transparent 48%);
}

.frontier-war-map-marker-dock-panel-v157 article.main {
    display: grid;
    gap: 4px;
    padding: 9px;
    border: 1px solid rgba(255, 247, 232, 0.14);
    border-radius: 8px;
    background: rgba(255, 247, 232, 0.05);
}

.frontier-war-map-marker-dock-panel-v157 article.main.success {
    border-color: rgba(125, 211, 252, 0.34);
}

.frontier-war-map-marker-dock-panel-v157 article.main.warning {
    border-color: rgba(240, 199, 110, 0.34);
}

.frontier-war-map-marker-dock-panel-v157 p,
.frontier-war-map-marker-dock-panel-v157 em {
    margin: 0;
    color: rgba(226, 232, 240, 0.76);
    font-size: 0.72rem;
    line-height: 1.45;
    overflow-wrap: anywhere;
}

.frontier-war-marker-dock-panel-grid-v157 {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(118px, 1fr));
    gap: 8px;
}

.frontier-war-marker-dock-panel-grid-v157 article {
    min-width: 0;
    padding: 8px;
    border: 1px solid rgba(255, 247, 232, 0.13);
    border-radius: 8px;
    background: rgba(6, 13, 15, 0.42);
}

.frontier-war-marker-dock-panel-grid-v157 span,
.frontier-war-marker-dock-panel-grid-v157 p,
.frontier-war-marker-dock-panel-grid-v157 em {
    display: block;
    margin: 0;
    color: rgba(226, 232, 240, 0.72);
    font-size: 0.66rem;
}

.frontier-war-marker-dock-panel-grid-v157 strong {
    display: block;
    color: #fff7e8;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.frontier-war-map-marker-consistency-panel-v156 article.main,
.frontier-war-map-marker-legend-panel-v155 article.main {
    display: grid;
    gap: 4px;
    padding: 9px;
    border: 1px solid rgba(255, 247, 232, 0.14);
    border-radius: 8px;
    background: rgba(255, 247, 232, 0.05);
}

.frontier-war-map-marker-consistency-panel-v156 article.main.success {
    border-color: rgba(125, 211, 252, 0.34);
}

.frontier-war-map-marker-consistency-panel-v156 article.main.warning {
    border-color: rgba(240, 199, 110, 0.34);
}

.frontier-war-map-marker-consistency-panel-v156 p,
.frontier-war-map-marker-consistency-panel-v156 em,
.frontier-war-map-marker-legend-panel-v155 p,
.frontier-war-map-marker-legend-panel-v155 em {
    margin: 0;
    color: rgba(226, 232, 240, 0.76);
    font-size: 0.72rem;
    line-height: 1.45;
    overflow-wrap: anywhere;
}

.frontier-war-map-marker-consistency-panel-v156 .frontier-war-marker-consistency-grid-v156 article {
    padding: 8px;
    background: rgba(6, 13, 15, 0.42);
}

.frontier-war-map-marker-optimization-panel-v154 {
    display: grid;
    gap: 10px;
    min-width: 0;
    padding: 12px;
    border: 1px solid rgba(116, 214, 202, 0.24);
    border-radius: 8px;
    background:
        linear-gradient(180deg, rgba(10, 28, 28, 0.78), rgba(6, 13, 15, 0.68)),
        radial-gradient(circle at 8% 0, rgba(116, 214, 202, 0.12), transparent 48%);
}

.frontier-war-map-marker-optimization-panel-v154 article.main {
    display: grid;
    gap: 4px;
    padding: 9px;
    border: 1px solid rgba(255, 247, 232, 0.14);
    border-radius: 8px;
    background: rgba(255, 247, 232, 0.05);
}

.frontier-war-map-marker-optimization-panel-v154 article.main.success {
    border-color: rgba(116, 214, 202, 0.34);
}

.frontier-war-map-marker-optimization-panel-v154 article.main.warning {
    border-color: rgba(240, 199, 110, 0.34);
}

.frontier-war-map-marker-optimization-panel-v154 p,
.frontier-war-map-marker-optimization-panel-v154 em {
    margin: 0;
    color: rgba(226, 232, 240, 0.76);
    font-size: 0.72rem;
    line-height: 1.45;
    overflow-wrap: anywhere;
}

.frontier-war-marker-optimization-score-grid-v154,
.frontier-war-marker-optimization-sample-grid-v154 {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
    gap: 8px;
}

.frontier-war-marker-optimization-score-grid-v154 article,
.frontier-war-marker-optimization-sample-grid-v154 article {
    min-width: 0;
    padding: 8px;
    border: 1px solid rgba(255, 247, 232, 0.14);
    border-radius: 8px;
    background: rgba(6, 13, 15, 0.42);
}

.frontier-war-marker-optimization-score-grid-v154 span,
.frontier-war-marker-optimization-sample-grid-v154 p,
.frontier-war-marker-optimization-sample-grid-v154 em {
    margin: 0;
    color: rgba(226, 232, 240, 0.74);
    font-size: 0.66rem;
}

.frontier-war-marker-optimization-score-grid-v154 strong,
.frontier-war-marker-optimization-sample-grid-v154 strong {
    display: block;
    color: #fff7e8;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

@media (max-width: 720px) {
    .frontier-war-map > .frontier-war-map-marker-readability-v153,
    .frontier-war-map > .frontier-war-map-marker-optimization-v154,
    .frontier-war-map > .frontier-war-map-marker-legend-v155,
    .frontier-war-map > .frontier-war-map-marker-consistency-v156 {
        left: 10px;
        right: auto;
        width: min(210px, calc(100% - 20px));
        padding: 7px;
    }

    .frontier-war-map > .frontier-war-map-marker-readability-v153 {
        top: 62px;
    }

    .frontier-war-map > .frontier-war-map-marker-optimization-v154 {
        top: 154px;
    }

    .frontier-war-map > .frontier-war-map-marker-legend-v155 {
        top: 246px;
    }

    .frontier-war-map > .frontier-war-map-marker-consistency-v156 {
        top: 338px;
    }

    .frontier-war-map > .frontier-war-map-marker-dock-v157 {
        left: 10px;
        right: auto;
        top: 136px;
        width: min(196px, calc(100% - 20px));
        padding: 6px;
    }

    .frontier-war-marker-dock-summary-v157 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .frontier-war-marker-dock-summary-v157 article,
    .frontier-war-marker-dock-legacy-v157 > .frontier-war-map-marker-readability-v153,
    .frontier-war-marker-dock-legacy-v157 > .frontier-war-map-marker-optimization-v154,
    .frontier-war-marker-dock-legacy-v157 > .frontier-war-map-marker-legend-v155,
    .frontier-war-marker-dock-legacy-v157 > .frontier-war-map-marker-consistency-v156 {
        padding: 5px;
    }

    .frontier-war-marker-readability-samples-v153,
    .frontier-war-marker-optimization-samples-v154,
    .frontier-war-marker-hidden-context-v155 {
        grid-template-columns: 1fr;
    }

    .frontier-war-marker-legend-grid-v155 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .frontier-war-marker-detail-v155 section {
        grid-template-columns: 1fr;
    }

    .frontier-war-marker-consistency-grid-v156 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .frontier-war-map-marker-consistency-panel-v156 {
        padding: 9px;
    }

    .frontier-war-map-marker-dock-panel-v157 {
        padding: 9px;
    }

    .frontier-war-map-marker-legend-panel-v155 {
        padding: 9px;
    }

    .frontier-war-map-marker-optimization-panel-v154 {
        padding: 9px;
    }

    .frontier-war-marker-optimization-score-grid-v154,
    .frontier-war-marker-optimization-sample-grid-v154 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (prefers-reduced-motion: reduce) {
    .frontier-war-node.marker-optimized-v154 .frontier-war-node-badges {
        transition: none !important;
    }
}
