:root {
    --bg: #000;
    --panel: #0b1113;
    --panel-2: #111a1d;
    --ink: #e8f2ef;
    --muted: #8fa7a0;
    --line: rgba(91,255,209,.24);
    --signal: #5bffd1;
    --warn: #ff405a;
    --amber: #d7a64d;
}

* {
    box-sizing: border-box;
    font-family: inherit;
}

html {
    font-family: Arial, sans-serif;
}

body {
    margin: 0;
    background: var(--bg);
    color: var(--ink);
    font-family: Arial, sans-serif;
}

.network-notification {
    position: fixed;
    right: 18px;
    bottom: 18px;
    z-index: 100000;
    max-width: min(360px, calc(100vw - 36px));
    padding: 13px 16px;
    border: 1px solid rgba(91,255,209,.5);
    background: rgba(5,7,8,.94);
    color: var(--signal);
    box-shadow: 0 12px 34px rgba(0,0,0,.38), 0 0 24px rgba(91,255,209,.16);
    font-size: .78rem;
    font-weight: 900;
    letter-spacing: .08em;
    line-height: 1.35;
    text-transform: uppercase;
}

.network-notification[hidden] {
    display: none;
}

/* EchoDeploy's inherited EchoOverlay owns the ecosystem menu. */
.echo-radial {
    display: none !important;
    pointer-events: none !important;
}

.echo-radial {
    position: fixed;
    left: 18px;
    top: 18px;
    z-index: 100001;
    width: 58px;
    height: 58px;
    pointer-events: none;
}

.echo-radial.open {
    inset: 0;
    width: auto;
    height: auto;
    z-index: 100010;
}

.echo-radial.open[data-hover-label]::after {
    content: attr(data-hover-label);
    position: fixed;
    left: 50vw;
    top: 50vh;
    z-index: 1;
    max-width: min(360px, 70vw);
    transform: translate(-50%, -50%);
    border: 1px solid rgba(0, 196, 255, .7);
    border-radius: 999px;
    background: rgba(1, 8, 17, .82);
    box-shadow: 0 0 30px rgba(0, 174, 255, .36);
    color: #f8fbff;
    padding: 12px 22px;
    font-size: 18px;
    font-weight: 950;
    pointer-events: none;
    text-align: center;
}

.echo-radial-backdrop {
    display: none;
    position: fixed;
    inset: 0;
    border: 0;
    background: rgba(1, 8, 17, .62);
    backdrop-filter: blur(3px);
    cursor: default;
    overflow: hidden;
}

.echo-radial-backdrop::after {
    content: "";
    position: fixed;
    inset: 0;
    background-image: url("/echoboard-radial-logo.png");
    background-position: center;
    background-repeat: no-repeat;
    background-size: min(82vmin, 900px) auto;
    opacity: .18;
    pointer-events: none;
}

.echo-radial.open .echo-radial-backdrop {
    display: block;
    pointer-events: auto;
}

.echo-radial-core,
.echo-radial-item {
    position: absolute;
    display: grid;
    align-items: center;
    border: 1px solid rgba(91,255,209,.5);
    background: rgba(5,7,8,.96);
    color: var(--signal);
    box-shadow: 0 12px 30px rgba(0,0,0,.28);
    font-weight: 900;
    letter-spacing: 0;
    text-decoration: none;
    transition: opacity .16s ease, transform .21s cubic-bezier(.2,.8,.2,1), background .16s ease, color .16s ease;
}

.echo-radial-core {
    left: 0;
    top: 0;
    width: 72px;
    height: 72px;
    place-items: center;
    border-radius: 18px;
    border: 2px solid rgba(0, 196, 255, .88);
    background: rgba(1, 8, 17, .72);
    padding: 0;
    overflow: hidden;
    box-shadow:
        0 0 0 2px rgba(59, 130, 246, .18),
        0 0 24px rgba(0, 174, 255, .48);
    cursor: pointer;
    pointer-events: auto;
}

.echo-radial.open .echo-radial-core {
    left: 50vw;
    top: 50vh;
    opacity: 0;
    pointer-events: none;
    transform: translate(-50%, -50%) scale(.75);
}

.echo-radial-core img {
    display: block;
    width: calc(100% - 8px);
    height: calc(100% - 8px);
    object-fit: contain;
    transform: none;
    filter: drop-shadow(0 0 10px rgba(91,255,209,.42));
}

.echo-radial-item {
    left: 50vw;
    top: 50vh;
    grid-template-columns: 50px minmax(0, 1fr);
    gap: 10px;
    width: 210px;
    min-height: 52px;
    padding: 6px 14px 6px 7px;
    border-radius: 999px;
    font-size: .82rem;
    opacity: 0;
    pointer-events: none;
    transform: translate(-50%, -50%) scale(.45);
}

.echo-radial-item:has(.echo-radial-logo-mark) {
    grid-template-columns: 1fr;
    place-items: center;
    width: 108px;
    min-height: 108px;
    padding: 0;
    border: 2px solid rgba(0, 196, 255, .82);
    border-radius: 50%;
    background: rgba(1, 8, 17, .24);
    box-shadow:
        0 0 0 2px rgba(59, 130, 246, .16),
        0 0 26px rgba(0, 174, 255, .46),
        inset 0 0 22px rgba(0, 174, 255, .1);
}

.echo-radial-item strong {
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border: 1px solid rgba(91,255,209,.38);
    border-radius: 50%;
    color: #ffffff;
    font-size: .7rem;
    text-shadow: 0 0 10px rgba(91,255,209,.76);
}

.echo-radial-item strong.echo-radial-logo-mark {
    width: 86px;
    height: 86px;
    border: 0;
    background: transparent;
    overflow: visible;
    filter: drop-shadow(0 0 8px rgba(91,255,209,.78)) drop-shadow(0 0 16px rgba(0, 229, 255, .34));
}

.echo-radial-item strong.echo-radial-logo-mark img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.echo-radial-item span {
    display: block;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.echo-radial-item:has(.echo-radial-logo-mark) > span {
    display: none;
}

.echo-radial.open .echo-radial-item {
    opacity: 1;
    pointer-events: auto;
}

.echo-radial-core:hover,
.echo-radial-item:hover {
    background: var(--signal);
    color: #03100d;
}

.echo-radial-core:hover {
    background: transparent;
    box-shadow: none;
}

.echo-radial.open .item-0 { transform: translate(-50%, -50%) translate(0, -230px); }
.echo-radial.open .item-1 { transform: translate(-50%, -50%) translate(176px, -176px); }
.echo-radial.open .item-2 { transform: translate(-50%, -50%) translate(244px, -46px); }
.echo-radial.open .item-3 { transform: translate(-50%, -50%) translate(214px, 112px); }
.echo-radial.open .item-4 { transform: translate(-50%, -50%) translate(84px, 230px); }
.echo-radial.open .item-5 { transform: translate(-50%, -50%) translate(-84px, 230px); }
.echo-radial.open .item-6 { transform: translate(-50%, -50%) translate(-214px, 112px); }
.echo-radial.open .item-7 { transform: translate(-50%, -50%) translate(-244px, -46px); }
.echo-radial.open .item-8 { transform: translate(-50%, -50%) translate(-176px, -176px); }

@media (max-width: 760px) {
    .echo-radial-item {
        width: 152px;
        min-height: 46px;
        font-size: .7rem;
    }

    .echo-radial.open .item-0 { transform: translate(-50%, -50%) translate(0, -168px); }
    .echo-radial.open .item-1 { transform: translate(-50%, -50%) translate(124px, -124px); }
    .echo-radial.open .item-2 { transform: translate(-50%, -50%) translate(166px, -32px); }
    .echo-radial.open .item-3 { transform: translate(-50%, -50%) translate(144px, 80px); }
    .echo-radial.open .item-4 { transform: translate(-50%, -50%) translate(54px, 168px); }
    .echo-radial.open .item-5 { transform: translate(-50%, -50%) translate(-54px, 168px); }
    .echo-radial.open .item-6 { transform: translate(-50%, -50%) translate(-144px, 80px); }
    .echo-radial.open .item-7 { transform: translate(-50%, -50%) translate(-166px, -32px); }
    .echo-radial.open .item-8 { transform: translate(-50%, -50%) translate(-124px, -124px); }
}

a { color: inherit; }
.network-strip {
    position: relative;
    z-index: 25;
    width: min(1220px, calc(100% - 28px));
    margin: 14px auto 0;
    border: 1px solid var(--line);
    background: linear-gradient(90deg, rgba(5,7,8,.96), rgba(11,17,19,.88));
}
.network-strip-label {
    display: none;
}
.network-strip-links {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}
.network-logo-link {
    display: grid;
    place-items: center;
    min-height: 86px;
    padding: 10px;
    border-left: 1px solid rgba(91,255,209,.12);
    color: var(--signal);
    text-decoration: none;
    text-align: center;
}
.network-logo-link:first-child { border-left: 0; }
.network-logo-link img {
    width: 46px;
    height: 46px;
    object-fit: contain;
    border: 1px solid rgba(91,255,209,.24);
    border-radius: 12px;
    background: #000;
    padding: 4px;
}
.network-logo-link:nth-child(2) img { border-radius: 50%; }
.network-logo-link:hover,
.network-logo-link.network-primary { background: rgba(91,255,209,.06); }
.local-nav { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.topbar {
    position: sticky;
    top: 0;
    z-index: 20;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 18px;
    padding: 12px 22px;
    border-bottom: 1px solid var(--line);
    background: rgba(5,7,8,.92);
}
.brand {
    color: var(--signal);
    font-weight: 900;
    text-transform: uppercase;
    text-decoration: none;
    letter-spacing: .12em;
}
nav { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
nav a, nav button, .button, button {
    border: 1px solid var(--line);
    background: transparent;
    color: var(--ink);
    padding: 7px 10px;
    text-decoration: none;
    text-transform: uppercase;
    font-size: .72rem;
    font-weight: 900;
    letter-spacing: .08em;
    cursor: pointer;
}
nav form { margin: 0; }
nav a:hover, nav button:hover, .button:hover, button:hover { background: var(--signal); color: #03100d; }
main { width: min(1220px, calc(100% - 28px)); margin: 0 auto; padding: 24px 0 42px; }
footer { color: var(--muted); border-top: 1px solid var(--line); padding: 18px 22px; font-size: .85rem; }

@media (max-width: 760px) {
    .network-strip {
        width: 100%;
        margin-top: 0;
        border-left: 0;
        border-right: 0;
    }

    .network-logo-link {
        min-height: 72px;
        padding: 8px;
    }

    .network-logo-link img {
        width: 42px;
        height: 42px;
    }

    .topbar,
    .local-nav {
        align-items: stretch;
        flex-direction: column;
    }

    .local-nav a,
    .local-nav button,
    .local-nav form {
        width: 100%;
    }
}

.signal-shell {
    box-sizing: border-box;
    width: calc(100vw - 28px);
    max-width: none;
    margin-left: calc(50% - 50vw + 14px);
    padding-left: clamp(34px, 7vw, 92px);
    padding-right: 14px;
    background: #000;
}

.signal-hero, .detail-head {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 18px;
    align-items: end;
    padding: 20px 0;
    border-bottom: 3px double var(--signal);
}
.signal-logo-wrap {
    position: relative;
    width: min(560px, 100%);
    overflow: hidden;
    background: #000;
}
.signal-logo-wrap::after {
    display: none;
}
.signal-hero-logo {
    display: block;
    width: 100%;
    height: auto;
    background: transparent;
    border: 0;
    box-shadow: none;
    filter: none;
}
.kicker, .meta, .quality, dt, .muted {
    color: var(--muted);
    text-transform: uppercase;
    letter-spacing: .08em;
    font-size: .76rem;
    font-weight: 900;
}
h1 { margin: 0; font-size: clamp(2.5rem, 6vw, 5.4rem); line-height: .9; letter-spacing: -.06em; text-transform: uppercase; }
h2 { margin: 0 0 8px; letter-spacing: -.035em; }
.signal-hero p, .detail-head p { color: var(--muted); max-width: 720px; line-height: 1.55; }
.signal-stats, .coordinate-box {
    display: grid;
    gap: 8px;
    min-width: 230px;
    border: 1px solid var(--line);
    background: var(--panel);
    padding: 12px;
}
.signal-stats strong { color: var(--signal); font-size: 1.25rem; }
.notice { margin: 16px 0; border: 1px solid var(--line); background: rgba(91,255,209,.08); color: var(--signal); padding: 12px; }
.signal-filters { display: grid; grid-template-columns: 1fr 210px auto auto; gap: 10px; margin: 14px 0 18px; }
input, select, textarea {
    width: 100%;
    border: 1px solid var(--line);
    background: #071012;
    color: var(--ink);
    padding: 10px;
}
textarea { min-height: 150px; resize: vertical; }
.signal-list { display: grid; grid-template-columns: 1fr; gap: 10px; }
.readonly-map-panel {
    margin: 18px 0;
    border: 1px solid var(--line);
    background: linear-gradient(180deg, rgba(11,17,19,.94), rgba(17,26,29,.92));
    padding: 12px;
}
.map-head {
    display: flex;
    justify-content: space-between;
    align-items: end;
    gap: 14px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--line);
}
.map-head h2 { font-size: 1.6rem; text-transform: uppercase; color: var(--signal); }
.map-thread-context {
    max-width: 760px;
    margin: 2px 0 0;
    color: var(--muted);
    font-size: .76rem;
    line-height: 1.4;
}
.map-head-actions {
    display: grid;
    justify-items: end;
    gap: 8px;
    min-width: min(620px, 54vw);
}
.map-toolbar { display: flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; }
.map-toolbar button { min-width: 38px; padding: 7px 9px; }
.map-toolbar #armMarkerPlacement[aria-pressed="true"] {
    border-color: var(--signal);
    background: var(--signal);
    color: #020607;
}
.signal-map.is-marker-placement-active,
.signal-map.is-marker-placement-active .leaflet-container {
    cursor: crosshair;
}
.signal-map.is-marker-placement-active {
    box-shadow: inset 0 0 0 2px var(--signal), 0 0 26px rgba(91,255,209,.2);
}
.strand-selector {
    display: grid;
    gap: 5px;
    width: min(460px, 100%);
}
.strand-selector label {
    margin: 0;
    color: var(--muted);
    font-size: .66rem;
    font-weight: 900;
    letter-spacing: .08em;
    text-align: right;
    text-transform: uppercase;
}
.strand-selector select {
    width: 100%;
    min-height: 36px;
    border-color: rgba(91,255,209,.34);
    background:
        linear-gradient(90deg, rgba(91,255,209,.10), rgba(5,7,8,.88)),
        #050708;
    color: var(--ink);
    font-size: .72rem;
    font-weight: 900;
    letter-spacing: 0;
    text-transform: uppercase;
    box-shadow: 0 0 18px rgba(91,255,209,.08);
}
.strand-selector select:focus {
    outline: 1px solid var(--signal);
    box-shadow: 0 0 0 2px rgba(91,255,209,.16), 0 0 24px rgba(91,255,209,.14);
}
.strand-editor-actions {
    display: flex;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 6px;
    width: min(460px, 100%);
}
.strand-editor-actions button,
.strand-editor-card button {
    border: 1px solid rgba(91,255,209,.28);
    background: rgba(3,8,10,.78);
    color: var(--signal);
    padding: 7px 9px;
    font-size: .62rem;
    font-weight: 900;
    letter-spacing: .03em;
    text-transform: uppercase;
}
.strand-editor-actions button:hover,
.strand-editor-card button:hover {
    border-color: var(--signal);
    background: rgba(91,255,209,.14);
    color: var(--ink);
}
.strand-editor-actions button.is-disabled,
.strand-editor-card button.is-disabled,
.strand-editor-actions button:disabled,
.strand-editor-card button:disabled {
    cursor: not-allowed;
    opacity: .42;
    border-color: rgba(143,167,160,.22);
    background: rgba(143,167,160,.06);
    color: var(--muted);
}
.strand-editor-modal {
    position: fixed;
    inset: 0;
    z-index: 2147483000;
    display: grid;
    place-items: center;
    background: rgba(0,0,0,.56);
    padding: 24px;
}
.strand-editor-modal[hidden] {
    display: none !important;
}
.strand-editor-card {
    width: min(760px, 96vw);
    max-height: min(780px, 92vh);
    overflow: auto;
    border: 1px solid rgba(91,255,209,.42);
    background:
        linear-gradient(135deg, rgba(91,255,209,.12), transparent 42%),
        linear-gradient(180deg, rgba(5,7,8,.98), rgba(11,17,19,.96));
    box-shadow: 0 26px 70px rgba(0,0,0,.56), 0 0 36px rgba(91,255,209,.16);
}
.strand-editor-card > header {
    display: flex;
    align-items: end;
    justify-content: flex-start;
    gap: 12px;
    border-bottom: 1px solid rgba(91,255,209,.24);
    padding: 12px;
}
.strand-editor-card > header > button {
    flex: 0 0 auto;
}
.strand-editor-card h3 {
    margin: 0;
    color: var(--signal);
    font-size: 1.05rem;
    line-height: 1.1;
    text-transform: uppercase;
}
.strand-editor-form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    padding: 12px;
}
.strand-editor-form label {
    display: grid;
    gap: 5px;
    margin: 0;
    color: var(--muted);
    font-size: .62rem;
    font-weight: 900;
    text-transform: uppercase;
}
.strand-editor-form input,
.strand-editor-form select,
.strand-editor-form textarea {
    min-height: 36px;
    padding: 8px 9px;
    font-size: .74rem;
    letter-spacing: 0;
}
.strand-editor-form textarea {
    min-height: 92px;
    line-height: 1.4;
}
.strand-editor-wide,
.strand-editor-form footer,
.strand-editor-state,
.strand-editor-publish {
    grid-column: 1 / -1;
}
.strand-editor-publish {
    display: flex !important;
    align-items: center;
    gap: 8px;
}
.strand-editor-publish input {
    width: auto;
    min-height: 0;
    accent-color: var(--signal);
}
.strand-editor-state {
    border-left: 3px solid rgba(91,255,209,.62);
    background: rgba(91,255,209,.07);
    color: var(--ink);
    padding: 7px 9px;
    font-size: .68rem;
    font-weight: 900;
    text-transform: uppercase;
}
.strand-editor-form footer {
    display: flex;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 8px;
}
.marker-editor-card {
    width: min(680px, 96vw);
}
.marker-editor-modal {
    place-items: stretch end;
    padding: 0;
    background: rgba(0,0,0,.42);
}
.marker-editor-card {
    display: flex;
    flex-direction: column;
    width: min(760px, 100vw);
    height: 100vh;
    max-height: none;
    overflow: hidden;
    border-width: 0 0 0 1px;
    background: #050708;
    box-shadow: -20px 0 54px rgba(0,0,0,.58), -1px 0 24px rgba(91,255,209,.12);
}
.marker-editor-card > header {
    flex: 0 0 auto;
    align-items: center;
    padding: 16px 18px;
}
.marker-editor-card > header > button {
    margin-left: auto;
}
.marker-editor-view-switch {
    display: grid;
    grid-template-columns: 1fr 1fr;
    flex: 0 0 auto;
    border-bottom: 1px solid rgba(91,255,209,.24);
    padding: 10px 18px;
}
.marker-editor-view-switch button {
    min-height: 36px;
    border-radius: 0;
}
.marker-editor-view-switch button[aria-pressed="true"] {
    border-color: var(--signal);
    background: var(--signal);
    color: #03100d;
}
.marker-editor-form {
    display: block;
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    padding: 0;
}
.marker-editor-form[data-marker-editor-view="quick"] [data-marker-advanced] {
    display: none !important;
}
.marker-editor-section {
    grid-column: 1 / -1;
    border-bottom: 1px solid rgba(91,255,209,.18);
    padding: 16px 18px 18px;
}
.marker-editor-section > header {
    display: flex;
    align-items: start;
    gap: 10px;
    margin-bottom: 12px;
}
.marker-editor-section > header > span {
    flex: 0 0 auto;
    border: 1px solid rgba(91,255,209,.34);
    color: var(--signal);
    padding: 4px 6px;
    font-size: .62rem;
    font-weight: 900;
}
.marker-editor-section h4,
.marker-editor-section p {
    margin: 0;
}
.marker-editor-section h4 {
    color: var(--ink);
    font-size: .8rem;
    text-transform: uppercase;
}
.marker-editor-section p {
    margin-top: 3px;
    color: var(--muted);
    font-size: .66rem;
    line-height: 1.35;
}
.marker-editor-grid,
.marker-relationship-builder {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}
.marker-editor-grid label,
.marker-relationship-builder label {
    display: grid;
    gap: 5px;
    margin: 0;
    color: var(--muted);
    font-size: .62rem;
    font-weight: 900;
    text-transform: uppercase;
}
.marker-location-reference {
    display: grid;
    grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
    gap: 10px;
    border-left: 3px solid var(--signal);
    background: rgba(91,255,209,.06);
    padding: 10px;
}
.marker-location-reference[hidden] {
    display: none;
}
.marker-location-reference > div {
    grid-column: 1 / -1;
    color: var(--signal);
    font-size: .66rem;
    font-weight: 800;
    line-height: 1.4;
}
.marker-relationship-builder > button {
    align-self: end;
    min-height: 36px;
}
.marker-relationship-list,
.marker-existing-relationships {
    display: grid;
    gap: 6px;
    margin-top: 12px;
}
.marker-duplicate-matches {
    border-left: 3px solid #f6c453;
    background: rgba(246,196,83,.08);
    padding: 8px 10px;
}
.marker-duplicate-matches > strong {
    display: block;
    color: #f6c453;
    font-size: .64rem;
    text-transform: uppercase;
}
.marker-duplicate-matches button {
    display: block;
    width: 100%;
    margin-top: 5px;
    border: 0;
    border-top: 1px solid rgba(246,196,83,.2);
    border-radius: 0;
    background: transparent;
    color: var(--ink);
    padding: 6px 0 2px;
    text-align: left;
    font-size: .68rem;
}
.marker-relationship-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
    border-left: 3px solid var(--signal);
    background: rgba(91,255,209,.06);
    padding: 8px 9px;
}
.marker-relationship-row strong,
.marker-relationship-row span {
    display: block;
    overflow-wrap: anywhere;
}
.marker-relationship-row strong {
    color: var(--ink);
    font-size: .7rem;
}
.marker-relationship-row span {
    margin-top: 3px;
    color: var(--muted);
    font-size: .62rem;
}
.marker-existing-relationships {
    border-top: 1px solid rgba(91,255,209,.16);
    padding-top: 10px;
}
.marker-existing-relationships > strong {
    color: var(--muted);
    font-size: .62rem;
    text-transform: uppercase;
}
.marker-editor-form > .strand-editor-state {
    margin: 14px 18px 0;
}
.marker-editor-form > footer {
    position: sticky;
    bottom: 0;
    z-index: 3;
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    border-top: 1px solid rgba(91,255,209,.24);
    background: rgba(5,7,8,.98);
    padding: 12px 18px;
}
.marker-editor-destructive-actions,
.marker-editor-primary-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.marker-editor-destructive-actions {
    margin-right: auto;
}
.marker-editor-destructive-actions[hidden] {
    display: none;
}
.marker-editor-form .marker-detach-button {
    border-color: rgba(246,196,83,.72);
    color: #f6d77d;
}
.marker-editor-form .marker-delete-button {
    border-color: rgba(255,91,111,.78);
    color: #ff7d90;
}
.marker-editor-form .marker-delete-button:hover,
.marker-editor-form .marker-delete-button:focus-visible {
    background: #ff5b6f;
    color: #090203;
}
.marker-editor-form input:required:invalid,
.marker-editor-form select:required:invalid {
    border-color: rgba(246,196,83,.62);
}
@media (max-width: 620px) {
    .marker-editor-card {
        width: 100vw;
    }
    .marker-editor-grid,
    .marker-relationship-builder {
        grid-template-columns: 1fr;
    }
    .marker-location-reference {
        grid-template-columns: 1fr;
    }
    .marker-location-reference > div {
        grid-column: 1;
    }
}
.origin-flag {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    min-width: 1.85em;
    height: 1.45em;
    margin-right: .45em;
    border: 1px solid rgba(91,255,209,.24);
    background: rgba(3,8,10,.72);
    color: var(--ink);
    font-size: .8em;
    font-weight: 900;
    line-height: 1;
    vertical-align: -.12em;
}
.origin-flag-dual {
    min-width: 3.35em;
    letter-spacing: -.08em;
}
.strand-mission-board {
    margin-top: 12px;
    border: 1px solid rgba(91,255,209,.24);
    background:
        linear-gradient(90deg, rgba(91,255,209,.08), rgba(255,69,150,.05) 46%, rgba(91,255,209,.06)),
        rgba(5,7,8,.72);
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.025), 0 18px 36px rgba(0,0,0,.2);
}
.mission-board-head {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 14px;
    padding: 10px 12px;
    border-bottom: 1px solid rgba(91,255,209,.2);
}
.mission-board-head h3 {
    margin: 0;
    color: var(--ink);
    font-size: 1rem;
    line-height: 1.1;
    text-transform: uppercase;
}
.mission-status-strip {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 6px;
}
.mission-status-strip span {
    min-height: 30px;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    border: 1px solid rgba(91,255,209,.24);
    background: rgba(2,12,14,.72);
    color: var(--muted);
    padding: 6px 8px;
    font-size: .66rem;
    font-weight: 900;
    text-transform: uppercase;
}
.mission-status-strip strong {
    color: var(--signal);
    font-size: .82rem;
}
.mission-grid {
    display: grid;
    grid-template-columns: minmax(250px, 1.05fr) minmax(320px, 1.35fr) minmax(250px, .9fr);
    background: rgba(91,255,209,.16);
    gap: 1px;
}
.mission-panel {
    min-width: 0;
    padding: 10px;
    background:
        radial-gradient(circle at 12% 20%, rgba(91,255,209,.08), transparent 28%),
        rgba(4,10,12,.92);
}
.mission-panel header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 8px;
    color: var(--signal);
    font-size: .68rem;
    font-weight: 900;
    text-transform: uppercase;
}
.mission-panel header strong {
    min-width: 28px;
    border: 1px solid rgba(91,255,209,.24);
    background: rgba(91,255,209,.08);
    color: var(--ink);
    padding: 3px 6px;
    text-align: center;
}
.mission-priority-list,
.mission-task-list,
.mission-question-list {
    display: grid;
    gap: 7px;
    margin: 0;
    padding: 0;
    list-style: none;
}
.mission-task-list {
    max-height: 338px;
    overflow-y: auto;
    padding-right: 4px;
    scrollbar-color: rgba(91,255,209,.38) rgba(3,8,10,.8);
}
.mission-priority-row button,
.mission-task-row button {
    width: 100%;
    min-height: 34px;
    border: 1px solid rgba(91,255,209,.28);
    background:
        linear-gradient(90deg, rgba(91,255,209,.12), rgba(3,8,10,.9)),
        rgba(3,8,10,.9);
    color: var(--ink);
    text-align: left;
    text-transform: uppercase;
}
.mission-priority-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 6px;
}
.mission-priority-row button {
    display: grid;
    gap: 4px;
    padding: 8px 10px;
}
.mission-priority-row button strong {
    display: flex;
    align-items: center;
    min-width: 0;
    overflow: hidden;
    font-size: .78rem;
    line-height: 1.15;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.mission-priority-row button strong .origin-flag {
    font-size: .9rem;
}
.mission-priority-row button span {
    overflow: hidden;
    color: var(--muted);
    font-size: .63rem;
    line-height: 1.25;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.mission-priority-row:nth-child(1) button {
    border-color: rgba(255,69,150,.62);
    box-shadow: 0 0 20px rgba(255,69,150,.12);
}
.mission-priority-row:nth-child(2) button {
    border-color: rgba(255,190,88,.48);
}
.mission-priority-row button:hover,
.mission-task-row button:hover {
    border-color: var(--signal);
    background:
        linear-gradient(90deg, rgba(91,255,209,.22), rgba(3,8,10,.92)),
        rgba(3,8,10,.92);
    color: var(--ink);
}
.mission-task-row {
    display: grid;
    grid-template-columns: 92px minmax(0, 1fr) auto;
    gap: 4px 8px;
    align-items: center;
    border: 1px solid rgba(255,255,255,.05);
    background: rgba(255,255,255,.025);
    padding: 7px;
}
.mission-task-type {
    align-self: stretch;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255,190,88,.36);
    background: rgba(255,190,88,.08);
    color: #ffd38a;
    padding: 4px 6px;
    font-size: .61rem;
    font-weight: 900;
    text-align: center;
    text-transform: uppercase;
}
.mission-task-row strong {
    display: flex;
    align-items: center;
    min-width: 0;
    overflow: hidden;
    color: var(--ink);
    font-size: .72rem;
    line-height: 1.2;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
}
.mission-task-row button {
    display: inline-flex;
    align-items: center;
    min-width: 0;
    padding: 7px 8px;
    overflow: hidden;
    font-size: .68rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.mission-review-button,
.mission-priority-row .mission-review-button,
.mission-task-row .mission-review-button {
    width: auto;
    min-width: 70px;
    min-height: 34px;
    align-self: stretch;
    border-color: rgba(255,211,138,.4);
    background: rgba(255,211,138,.08);
    color: #ffd38a;
    padding: 7px 8px;
    text-align: center;
    font-size: .6rem;
}
.mission-task-row .mission-review-button {
    grid-column: 3;
    grid-row: 1 / span 2;
}
.mission-review-button:hover {
    border-color: #ffd38a;
    background: rgba(255,211,138,.16);
    color: var(--ink);
}
.mission-task-row em {
    grid-column: 2;
    overflow: hidden;
    color: var(--muted);
    font-size: .63rem;
    font-style: normal;
    line-height: 1.25;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.mission-question-list {
    counter-reset: mission-question;
}
.mission-question-list li {
    counter-increment: mission-question;
    position: relative;
    min-height: 48px;
    border-left: 3px solid rgba(91,255,209,.44);
    background: rgba(91,255,209,.045);
    color: var(--ink);
    padding: 9px 10px 9px 38px;
    font-size: .72rem;
    line-height: 1.35;
}
.mission-question-list li::before {
    content: counter(mission-question, decimal-leading-zero);
    position: absolute;
    left: 8px;
    top: 9px;
    color: var(--signal);
    font-size: .65rem;
    font-weight: 900;
}
.tactical-drawer > summary {
    position: relative;
    cursor: pointer;
    list-style: none;
    padding-right: 56px;
    user-select: none;
}
.tactical-drawer > summary::-webkit-details-marker {
    display: none;
}
.tactical-drawer > summary::after {
    content: "+";
    position: absolute;
    right: 12px;
    top: 50%;
    display: grid;
    place-items: center;
    width: 30px;
    height: 30px;
    border: 1px solid rgba(91,255,209,.34);
    background: rgba(3,8,10,.86);
    color: var(--signal);
    font-size: .95rem;
    font-weight: 900;
    line-height: 1;
    transform: translateY(-50%);
}
.tactical-drawer[open] > summary::after {
    content: "-";
}
.tactical-drawer:not([open]) > summary {
    border-bottom: 0;
}
.tactical-drawer > summary:hover::after,
.tactical-drawer > summary:focus-visible::after {
    border-color: var(--signal);
    background: rgba(91,255,209,.12);
    color: var(--ink);
}
.tactical-drawer > summary:focus-visible {
    outline: 1px solid var(--signal);
    outline-offset: 3px;
}
.strand-timeline {
    margin-top: 12px;
    border: 1px solid rgba(91,255,209,.22);
    background:
        linear-gradient(180deg, rgba(3,8,10,.9), rgba(3,8,10,.72)),
        rgba(3,8,10,.84);
}
.timeline-head {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 14px;
    padding: 10px 12px;
    border-bottom: 1px solid rgba(91,255,209,.18);
}
.timeline-head h3 {
    margin: 0;
    color: var(--ink);
    font-size: .96rem;
    line-height: 1.1;
    text-transform: uppercase;
}
.timeline-window {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--muted);
    font-size: .66rem;
    font-weight: 900;
    text-transform: uppercase;
}
.timeline-window i {
    width: 72px;
    height: 1px;
    background: linear-gradient(90deg, rgba(91,255,209,.1), var(--signal), rgba(255,69,150,.7));
}
.timeline-empty {
    margin: 12px;
    border: 1px dashed rgba(91,255,209,.28);
    color: var(--muted);
    padding: 16px;
    text-align: center;
    text-transform: uppercase;
    font-size: .72rem;
    font-weight: 900;
}
.timeline-rail {
    position: relative;
    display: grid;
    grid-auto-columns: minmax(230px, 280px);
    grid-auto-flow: column;
    gap: 12px;
    margin: 0;
    padding: 12px;
    overflow-x: auto;
    list-style: none;
    scrollbar-color: rgba(91,255,209,.38) rgba(3,8,10,.8);
}
.timeline-event {
    --timeline-accent: var(--signal);
    position: relative;
    display: grid;
    grid-template-rows: auto 14px minmax(0, 1fr);
    min-width: 0;
}
.timeline-event-relationship {
    --timeline-accent: #ff4596;
}
.timeline-event time {
    color: var(--muted);
    font-size: .64rem;
    font-weight: 900;
    text-transform: uppercase;
}
.timeline-node {
    position: relative;
    margin-top: 7px;
    height: 1px;
    background: linear-gradient(90deg, var(--timeline-accent), rgba(91,255,209,.12));
}
.timeline-node::before {
    content: "";
    position: absolute;
    left: 0;
    top: -4px;
    width: 9px;
    height: 9px;
    border: 2px solid var(--timeline-accent);
    background: #030607;
    box-shadow: 0 0 14px color-mix(in srgb, var(--timeline-accent) 55%, transparent);
}
.timeline-event-body {
    display: grid;
    gap: 7px;
    min-height: 178px;
    border: 1px solid rgba(91,255,209,.18);
    border-top: 2px solid var(--timeline-accent);
    background:
        linear-gradient(180deg, rgba(91,255,209,.065), rgba(255,255,255,.018)),
        rgba(5,12,14,.92);
    padding: 9px;
}
.timeline-event-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    color: var(--muted);
    font-size: .61rem;
    font-weight: 900;
    text-transform: uppercase;
}
.timeline-event-top strong {
    color: var(--timeline-accent);
}
.timeline-event-body button {
    width: 100%;
    min-width: 0;
    border: 1px solid rgba(91,255,209,.22);
    background: rgba(3,8,10,.72);
    color: var(--ink);
    padding: 7px 8px;
    overflow: hidden;
    text-align: left;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
}
.timeline-event-body button:hover {
    border-color: var(--timeline-accent);
    background: rgba(91,255,209,.12);
    color: var(--ink);
}
.timeline-event-body p {
    display: -webkit-box;
    min-height: 48px;
    margin: 0;
    overflow: hidden;
    color: var(--muted);
    font-size: .68rem;
    line-height: 1.35;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}
.timeline-event-body footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-top: auto;
}
.timeline-event-body footer span,
.timeline-event-body footer a {
    overflow: hidden;
    color: var(--muted);
    font-size: .61rem;
    font-weight: 900;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
}
.timeline-event-body footer a {
    flex: 0 0 auto;
    border: 1px solid rgba(91,255,209,.24);
    color: var(--signal);
    padding: 4px 6px;
    text-decoration: none;
}
.timeline-event-body footer a:hover {
    border-color: var(--signal);
    background: rgba(91,255,209,.12);
    color: var(--ink);
}
.assessment-lens {
    margin-top: 12px;
    border: 1px solid rgba(91,255,209,.24);
    background:
        linear-gradient(135deg, rgba(91,255,209,.08), rgba(255,69,150,.045) 42%, rgba(255,190,88,.045)),
        rgba(3,8,10,.84);
}
.assessment-head {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 14px;
    padding: 10px 12px;
    border-bottom: 1px solid rgba(91,255,209,.18);
}
.assessment-head h3 {
    margin: 0;
    color: var(--ink);
    font-size: .96rem;
    line-height: 1.1;
    text-transform: uppercase;
}
.assessment-readout {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 6px;
}
.assessment-readout span {
    min-height: 30px;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    border: 1px solid rgba(91,255,209,.24);
    background: rgba(2,12,14,.72);
    color: var(--muted);
    padding: 6px 8px;
    font-size: .66rem;
    font-weight: 900;
    text-transform: uppercase;
}
.assessment-readout strong {
    color: var(--signal);
    font-size: .82rem;
}
.assessment-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(310px, .65fr);
    gap: 1px;
    background: rgba(91,255,209,.16);
}
.assessment-judgments,
.assessment-side {
    min-width: 0;
    background: rgba(4,10,12,.92);
    padding: 10px;
}
.assessment-judgments > header,
.indicator-watchlist > header,
.evidence-matrix > header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 8px;
    color: var(--signal);
    font-size: .68rem;
    font-weight: 900;
    text-transform: uppercase;
}
.assessment-judgments > header strong,
.indicator-watchlist > header strong,
.evidence-matrix > header strong {
    min-width: 28px;
    border: 1px solid rgba(91,255,209,.24);
    background: rgba(91,255,209,.08);
    color: var(--ink);
    padding: 3px 6px;
    text-align: center;
}
.assessment-card-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 9px;
}
.assessment-card {
    --assessment-accent: var(--signal);
    display: grid;
    gap: 8px;
    min-width: 0;
    border: 1px solid rgba(91,255,209,.18);
    border-top: 3px solid var(--assessment-accent);
    background:
        radial-gradient(circle at 0 0, rgba(91,255,209,.11), transparent 34%),
        rgba(3,8,10,.88);
    padding: 10px;
}
.assessment-card-critical {
    --assessment-accent: #ff4596;
}
.assessment-card-warning {
    --assessment-accent: #ffd38a;
}
.assessment-card-economic {
    --assessment-accent: #62d7ff;
}
.assessment-card-military {
    --assessment-accent: #9db2ff;
}
.assessment-card-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}
.assessment-card-top span {
    border: 1px solid color-mix(in srgb, var(--assessment-accent) 55%, transparent);
    color: var(--assessment-accent);
    padding: 4px 6px;
    font-size: .61rem;
    font-weight: 900;
    text-transform: uppercase;
}
.assessment-card-top strong {
    color: var(--assessment-accent);
    font-size: 1rem;
}
.assessment-card h4 {
    margin: 0;
    color: var(--ink);
    font-size: .88rem;
    line-height: 1.15;
    text-transform: uppercase;
}
.assessment-card p {
    margin: 0;
    color: var(--muted);
    font-size: .72rem;
    line-height: 1.35;
}
.assessment-card dl {
    display: grid;
    grid-template-columns: 86px minmax(0, 1fr);
    gap: 5px 8px;
    margin: 0;
    border-top: 1px solid rgba(255,255,255,.05);
    padding-top: 8px;
}
.assessment-card dt {
    color: var(--assessment-accent);
    font-size: .6rem;
    font-weight: 900;
    text-transform: uppercase;
}
.assessment-card dd {
    color: var(--muted);
    font-size: .66rem;
    line-height: 1.35;
}
.assessment-marker-links {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}
.assessment-marker-links button,
.evidence-columns button {
    min-width: 0;
    border: 1px solid rgba(91,255,209,.24);
    background: rgba(3,8,10,.74);
    color: var(--ink);
    padding: 6px 8px;
    overflow: hidden;
    text-align: left;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
}
.assessment-marker-links button {
    max-width: 100%;
    flex: 1 1 150px;
    font-size: .62rem;
}
.assessment-marker-links button:hover,
.evidence-columns button:hover {
    border-color: var(--signal);
    background: rgba(91,255,209,.12);
    color: var(--ink);
}
.assessment-side {
    display: grid;
    align-content: start;
    gap: 10px;
}
.indicator-watchlist ul {
    display: grid;
    gap: 7px;
    margin: 0;
    padding: 0;
    list-style: none;
}
.indicator-row {
    --indicator-accent: var(--signal);
    border-left: 3px solid var(--indicator-accent);
    background: rgba(255,255,255,.025);
    padding: 8px;
}
.indicator-row-triggered {
    --indicator-accent: #ff4596;
}
.indicator-row-review {
    --indicator-accent: #ffd38a;
}
.indicator-row-quiet {
    --indicator-accent: #8aa3a0;
}
.indicator-row div {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}
.indicator-row span {
    border: 1px solid color-mix(in srgb, var(--indicator-accent) 45%, transparent);
    color: var(--indicator-accent);
    padding: 3px 5px;
    font-size: .58rem;
    font-weight: 900;
    text-transform: uppercase;
}
.indicator-row strong {
    overflow: hidden;
    color: var(--ink);
    font-size: .72rem;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
}
.indicator-row p,
.indicator-row em {
    margin: 5px 0 0;
    color: var(--muted);
    font-size: .64rem;
    line-height: 1.3;
}
.indicator-row em {
    display: block;
    font-style: normal;
}
.evidence-columns {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}
.evidence-columns div {
    display: grid;
    align-content: start;
    gap: 6px;
    min-width: 0;
}
.evidence-columns h4 {
    margin: 0;
    color: var(--muted);
    font-size: .63rem;
    text-transform: uppercase;
}
.evidence-columns button {
    display: grid;
    gap: 3px;
    width: 100%;
}
.evidence-columns button strong,
.evidence-columns button span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.evidence-columns button strong {
    font-size: .64rem;
}
.evidence-columns button span {
    color: var(--muted);
    font-size: .58rem;
}
.claim-ledger {
    margin-top: 12px;
    border: 1px solid rgba(91,255,209,.24);
    background:
        linear-gradient(135deg, rgba(91,255,209,.07), rgba(98,215,255,.045) 48%, rgba(255,211,138,.045)),
        rgba(3,8,10,.86);
}
.claim-ledger-head {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 14px;
    padding: 10px 12px;
    border-bottom: 1px solid rgba(91,255,209,.18);
}
.claim-ledger-head h3 {
    margin: 0;
    color: var(--ink);
    font-size: .96rem;
    line-height: 1.1;
    text-transform: uppercase;
}
.claim-ledger-readout {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 6px;
}
.claim-ledger-readout span {
    min-height: 30px;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    border: 1px solid rgba(91,255,209,.24);
    background: rgba(2,12,14,.72);
    color: var(--muted);
    padding: 6px 8px;
    font-size: .66rem;
    font-weight: 900;
    text-transform: uppercase;
}
.claim-ledger-readout strong {
    color: var(--signal);
    font-size: .82rem;
}
.claim-ledger-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(320px, .65fr);
    gap: 1px;
    background: rgba(91,255,209,.16);
}
.claim-ledger-main,
.claim-audit-panel {
    min-width: 0;
    background: rgba(4,10,12,.92);
    padding: 10px;
}
.claim-ledger-main > header,
.claim-audit-list > header,
.claim-source-table > header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 8px;
    color: var(--signal);
    font-size: .68rem;
    font-weight: 900;
    text-transform: uppercase;
}
.claim-ledger-main > header strong,
.claim-audit-list > header strong,
.claim-source-table > header strong {
    min-width: 28px;
    border: 1px solid rgba(91,255,209,.24);
    background: rgba(91,255,209,.08);
    color: var(--ink);
    padding: 3px 6px;
    text-align: center;
}
.claim-card-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 9px;
}
.claim-card {
    --claim-accent: var(--signal);
    display: grid;
    gap: 8px;
    min-width: 0;
    border: 1px solid rgba(91,255,209,.18);
    border-top: 3px solid var(--claim-accent);
    background:
        linear-gradient(180deg, rgba(91,255,209,.055), rgba(255,255,255,.018)),
        rgba(3,8,10,.88);
    padding: 10px;
}
.claim-card-critical {
    --claim-accent: #ff4596;
}
.claim-card-warning {
    --claim-accent: #ffd38a;
}
.claim-card-economic {
    --claim-accent: #62d7ff;
}
.claim-card-military {
    --claim-accent: #9db2ff;
}
.claim-card-top {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 7px;
}
.claim-card-top span,
.claim-card-top em {
    border: 1px solid color-mix(in srgb, var(--claim-accent) 48%, transparent);
    color: var(--claim-accent);
    padding: 4px 6px;
    font-size: .58rem;
    font-style: normal;
    font-weight: 900;
    text-transform: uppercase;
}
.claim-card-top em {
    overflow: hidden;
    color: var(--muted);
    text-overflow: ellipsis;
    white-space: nowrap;
}
.claim-card-top strong {
    color: var(--claim-accent);
    font-size: 1rem;
}
.claim-card h4 {
    margin: 0;
    color: var(--ink);
    font-size: .86rem;
    line-height: 1.18;
    text-transform: uppercase;
}
.claim-card dl {
    display: grid;
    grid-template-columns: 104px minmax(0, 1fr);
    gap: 5px 8px;
    margin: 0;
    border-top: 1px solid rgba(255,255,255,.05);
    padding-top: 8px;
}
.claim-card dt {
    color: var(--claim-accent);
    font-size: .58rem;
    font-weight: 900;
    text-transform: uppercase;
}
.claim-card dd {
    color: var(--muted);
    font-size: .64rem;
    line-height: 1.35;
}
.claim-marker-links {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}
.claim-marker-links button,
.claim-source-table button {
    min-width: 0;
    border: 1px solid rgba(91,255,209,.24);
    background: rgba(3,8,10,.74);
    color: var(--ink);
    padding: 6px 8px;
    overflow: hidden;
    text-align: left;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
}
.claim-marker-links button {
    max-width: 100%;
    flex: 1 1 160px;
    font-size: .62rem;
}
.claim-marker-links button:hover,
.claim-source-table button:hover {
    border-color: var(--signal);
    background: rgba(91,255,209,.12);
    color: var(--ink);
}
.claim-audit-panel {
    display: grid;
    align-content: start;
    gap: 10px;
}
.claim-audit-list ul {
    display: grid;
    gap: 7px;
    margin: 0;
    padding: 0;
    list-style: none;
}
.claim-audit-list li {
    border-left: 3px solid rgba(255,211,138,.74);
    background: rgba(255,255,255,.025);
    padding: 8px;
}
.claim-audit-list li span {
    display: inline-flex;
    border: 1px solid rgba(255,211,138,.36);
    color: #ffd38a;
    padding: 3px 5px;
    font-size: .58rem;
    font-weight: 900;
    text-transform: uppercase;
}
.claim-audit-list li strong {
    display: block;
    margin-top: 6px;
    color: var(--ink);
    font-size: .72rem;
    text-transform: uppercase;
}
.claim-audit-list li p {
    margin: 4px 0 0;
    color: var(--muted);
    font-size: .64rem;
    line-height: 1.32;
}
.claim-source-table div {
    display: grid;
    gap: 6px;
}
.claim-source-table button {
    display: grid;
    gap: 3px;
    width: 100%;
}
.claim-source-table button strong,
.claim-source-table button span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.claim-source-table button strong {
    font-size: .64rem;
}
.claim-source-table button span {
    color: var(--muted);
    font-size: .58rem;
}
.watch-engine {
    margin-top: 12px;
    border: 1px solid rgba(91,255,209,.24);
    background:
        linear-gradient(135deg, rgba(255,69,150,.07), rgba(91,255,209,.06) 42%, rgba(98,215,255,.04)),
        rgba(3,8,10,.86);
}
.watch-engine-head {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 14px;
    padding: 10px 12px;
    border-bottom: 1px solid rgba(91,255,209,.18);
}
.watch-engine-head h3 {
    margin: 0;
    color: var(--ink);
    font-size: .96rem;
    line-height: 1.1;
    text-transform: uppercase;
}
.watch-engine-readout {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 6px;
}
.watch-engine-readout span {
    min-height: 30px;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    border: 1px solid rgba(91,255,209,.24);
    background: rgba(2,12,14,.72);
    color: var(--muted);
    padding: 6px 8px;
    font-size: .66rem;
    font-weight: 900;
    text-transform: uppercase;
}
.watch-engine-readout strong {
    color: var(--signal);
    font-size: .82rem;
}
.watch-engine-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(320px, .65fr);
    gap: 1px;
    background: rgba(91,255,209,.16);
}
.watch-alerts,
.watch-side {
    min-width: 0;
    background: rgba(4,10,12,.92);
    padding: 10px;
}
.watch-alerts > header,
.watch-escalation-queue > header,
.quiet-condition-list > header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 8px;
    color: var(--signal);
    font-size: .68rem;
    font-weight: 900;
    text-transform: uppercase;
}
.watch-alerts > header strong,
.watch-escalation-queue > header strong,
.quiet-condition-list > header strong {
    min-width: 28px;
    border: 1px solid rgba(91,255,209,.24);
    background: rgba(91,255,209,.08);
    color: var(--ink);
    padding: 3px 6px;
    text-align: center;
}
.watch-alert-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 9px;
}
.watch-alert {
    --watch-accent: var(--signal);
    display: grid;
    gap: 8px;
    min-width: 0;
    border: 1px solid rgba(91,255,209,.18);
    border-top: 3px solid var(--watch-accent);
    background:
        radial-gradient(circle at 0 0, rgba(91,255,209,.08), transparent 34%),
        rgba(3,8,10,.88);
    padding: 10px;
}
.watch-alert-critical,
.watch-state-triggered {
    --watch-accent: #ff4596;
}
.watch-alert-warning {
    --watch-accent: #ffd38a;
}
.watch-alert-audit,
.watch-state-escalated {
    --watch-accent: #ff7a45;
}
.watch-alert-economic {
    --watch-accent: #62d7ff;
}
.watch-alert-signal {
    --watch-accent: #5bffd1;
}
.watch-state-quiet {
    --watch-accent: #8aa3a0;
}
.watch-alert-top {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 7px;
}
.watch-alert-top span,
.watch-alert-top em {
    border: 1px solid color-mix(in srgb, var(--watch-accent) 48%, transparent);
    color: var(--watch-accent);
    padding: 4px 6px;
    font-size: .58rem;
    font-style: normal;
    font-weight: 900;
    text-transform: uppercase;
}
.watch-alert-top em {
    overflow: hidden;
    color: var(--muted);
    text-overflow: ellipsis;
    white-space: nowrap;
}
.watch-alert-top strong {
    color: var(--watch-accent);
    font-size: .68rem;
}
.watch-alert h4 {
    margin: 0;
    color: var(--ink);
    font-size: .86rem;
    line-height: 1.18;
    text-transform: uppercase;
}
.watch-alert dl {
    display: grid;
    grid-template-columns: 86px minmax(0, 1fr);
    gap: 5px 8px;
    margin: 0;
    border-top: 1px solid rgba(255,255,255,.05);
    padding-top: 8px;
}
.watch-alert dt {
    color: var(--watch-accent);
    font-size: .58rem;
    font-weight: 900;
    text-transform: uppercase;
}
.watch-alert dd {
    color: var(--muted);
    font-size: .64rem;
    line-height: 1.35;
}
.watch-marker-links {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}
.watch-marker-links button {
    max-width: 100%;
    min-width: 0;
    flex: 1 1 150px;
    border: 1px solid rgba(91,255,209,.24);
    background: rgba(3,8,10,.74);
    color: var(--ink);
    padding: 6px 8px;
    overflow: hidden;
    text-align: left;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
    font-size: .62rem;
}
.watch-marker-links button:hover {
    border-color: var(--watch-accent);
    background: rgba(91,255,209,.12);
    color: var(--ink);
}
.watch-side {
    display: grid;
    align-content: start;
    gap: 10px;
}
.watch-escalation-queue ol,
.quiet-condition-list ul {
    display: grid;
    gap: 7px;
    margin: 0;
    padding: 0;
    list-style: none;
}
.watch-queue-row,
.quiet-condition-list li {
    --watch-accent: var(--signal);
    border-left: 3px solid var(--watch-accent);
    background: rgba(255,255,255,.025);
    padding: 8px;
}
.watch-queue-row span,
.quiet-condition-list li span {
    display: inline-flex;
    border: 1px solid color-mix(in srgb, var(--watch-accent) 45%, transparent);
    color: var(--watch-accent);
    padding: 3px 5px;
    font-size: .58rem;
    font-weight: 900;
    text-transform: uppercase;
}
.watch-queue-row strong,
.quiet-condition-list li strong {
    display: block;
    margin-top: 6px;
    overflow: hidden;
    color: var(--ink);
    font-size: .72rem;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
}
.watch-queue-row p,
.quiet-condition-list li p {
    margin: 4px 0 0;
    color: var(--muted);
    font-size: .64rem;
    line-height: 1.32;
}
.review-desk {
    margin-top: 12px;
    border: 1px solid rgba(91,255,209,.24);
    background:
        linear-gradient(135deg, rgba(255,211,138,.07), rgba(91,255,209,.055) 48%, rgba(255,69,150,.035)),
        rgba(3,8,10,.86);
}
.review-desk-head {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 14px;
    padding: 10px 12px;
    border-bottom: 1px solid rgba(91,255,209,.18);
}
.review-desk-head h3 {
    margin: 0;
    color: var(--ink);
    font-size: .96rem;
    line-height: 1.1;
    text-transform: uppercase;
}
.review-desk-readout {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 6px;
}
.review-desk-readout span {
    min-height: 30px;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    border: 1px solid rgba(91,255,209,.24);
    background: rgba(2,12,14,.72);
    color: var(--muted);
    padding: 6px 8px;
    font-size: .66rem;
    font-weight: 900;
    text-transform: uppercase;
}
.review-desk-readout strong {
    color: var(--signal);
    font-size: .82rem;
}
.review-desk-layout {
    display: grid;
    grid-template-columns: minmax(320px, .8fr) minmax(0, 1.2fr);
    gap: 1px;
    background: rgba(91,255,209,.16);
}
.review-editor,
.review-action-list-panel {
    min-width: 0;
    background: rgba(4,10,12,.92);
    padding: 10px;
}
.review-editor > header,
.review-action-list-panel > header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 8px;
    color: var(--signal);
    font-size: .68rem;
    font-weight: 900;
    text-transform: uppercase;
}
.review-editor > header strong,
.review-action-list-panel > header strong {
    min-width: 28px;
    border: 1px solid rgba(91,255,209,.24);
    background: rgba(91,255,209,.08);
    color: var(--ink);
    padding: 3px 6px;
    text-align: center;
}
.review-editor-target {
    border-left: 3px solid #ffd38a;
    background: rgba(255,211,138,.07);
    color: var(--ink);
    padding: 8px;
    font-size: .72rem;
    font-weight: 900;
    text-transform: uppercase;
}
.review-control-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    margin-top: 8px;
}
.review-control-grid label,
.review-note-label {
    margin: 0;
    color: var(--muted);
    font-size: .62rem;
    font-weight: 900;
    text-transform: uppercase;
}
.review-control-grid select,
.review-control-grid input {
    margin-top: 5px;
    min-height: 34px;
    padding: 7px 8px;
    font-size: .66rem;
}
.review-note-label {
    display: grid;
    gap: 5px;
    margin-top: 8px;
}
.review-note-label textarea {
    min-height: 112px;
    padding: 9px;
    font-size: .72rem;
    line-height: 1.35;
}
.review-editor-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 8px;
}
.review-editor-actions button {
    border: 1px solid rgba(91,255,209,.28);
    background: rgba(3,8,10,.74);
    color: var(--signal);
    padding: 7px 10px;
    font-size: .64rem;
    font-weight: 900;
    text-transform: uppercase;
}
.review-editor-actions button:hover {
    border-color: var(--signal);
    background: rgba(91,255,209,.12);
    color: var(--ink);
}
.review-action-list {
    display: grid;
    gap: 7px;
    max-height: 440px;
    overflow-y: auto;
    padding-right: 4px;
    scrollbar-color: rgba(91,255,209,.38) rgba(3,8,10,.8);
}
.review-action-row {
    display: grid;
    gap: 5px;
    width: 100%;
    border: 1px solid rgba(91,255,209,.18);
    border-left: 3px solid rgba(255,211,138,.72);
    background: rgba(255,255,255,.025);
    color: var(--ink);
    padding: 8px;
    text-align: left;
}
.review-action-row.is-active {
    border-color: rgba(91,255,209,.44);
    border-left-color: var(--signal);
    background: rgba(91,255,209,.07);
}
.review-action-row span {
    width: fit-content;
    border: 1px solid rgba(255,211,138,.36);
    color: #ffd38a;
    padding: 3px 5px;
    font-size: .58rem;
    font-weight: 900;
    text-transform: uppercase;
}
.review-action-row strong,
.review-action-row em,
.review-action-row p {
    overflow: hidden;
    text-overflow: ellipsis;
}
.review-action-row strong {
    font-size: .76rem;
    text-transform: uppercase;
    white-space: nowrap;
}
.review-action-row em {
    color: var(--muted);
    font-size: .61rem;
    font-style: normal;
    text-transform: uppercase;
    white-space: nowrap;
}
.review-action-row p {
    display: -webkit-box;
    margin: 0;
    color: var(--muted);
    font-size: .66rem;
    line-height: 1.32;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}
.review-action-empty {
    border: 1px dashed rgba(91,255,209,.28);
    color: var(--muted);
    padding: 16px;
    text-align: center;
    text-transform: uppercase;
    font-size: .7rem;
    font-weight: 900;
}
.promotion-queue-panel {
    display: grid;
    gap: 8px;
    margin-top: 12px;
    border-top: 1px solid rgba(91,255,209,.2);
    padding-top: 10px;
}
.promotion-queue-panel > header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    color: var(--signal);
    font-size: .68rem;
    font-weight: 900;
    text-transform: uppercase;
}
.promotion-queue-panel > header strong {
    min-width: 28px;
    border: 1px solid rgba(91,255,209,.24);
    background: rgba(91,255,209,.08);
    color: var(--ink);
    padding: 3px 6px;
    text-align: center;
}
.promotion-queue-list {
    display: grid;
    gap: 7px;
    max-height: 250px;
    overflow-y: auto;
    padding-right: 4px;
    scrollbar-color: rgba(255,211,138,.38) rgba(3,8,10,.8);
}
.promotion-queue-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
    align-items: start;
    border: 1px solid rgba(255,211,138,.22);
    border-left: 3px solid #ffd38a;
    background: rgba(255,211,138,.045);
    color: var(--ink);
    padding: 8px;
}
.promotion-queue-row span {
    display: inline-flex;
    width: fit-content;
    border: 1px solid rgba(255,211,138,.38);
    color: #ffd38a;
    padding: 3px 5px;
    font-size: .58rem;
    font-weight: 900;
    text-transform: uppercase;
}
.promotion-queue-row strong,
.promotion-queue-row em,
.promotion-queue-row p {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
}
.promotion-queue-row strong {
    margin-top: 5px;
    color: var(--ink);
    font-size: .74rem;
    text-transform: uppercase;
    white-space: nowrap;
}
.promotion-queue-row em {
    margin-top: 3px;
    color: var(--muted);
    font-size: .61rem;
    font-style: normal;
    text-transform: uppercase;
    white-space: nowrap;
}
.promotion-queue-row p {
    display: -webkit-box;
    margin: 5px 0 0;
    color: var(--muted);
    font-size: .66rem;
    line-height: 1.32;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}
.promotion-queue-row button {
    border: 1px solid rgba(255,211,138,.32);
    background: rgba(3,8,10,.74);
    color: #ffd38a;
    padding: 6px 8px;
    font-size: .6rem;
    font-weight: 900;
    text-transform: uppercase;
}
.promotion-queue-row button:hover {
    background: rgba(255,211,138,.12);
    color: var(--ink);
}
.analyst-review-panel {
    border-color: rgba(255,211,138,.28);
    background:
        linear-gradient(135deg, rgba(255,211,138,.07), rgba(91,255,209,.04)),
        rgba(3,8,10,.88);
}
.analyst-review-panel > header {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 8px;
}
.analyst-review-panel > header h3 {
    margin: 0;
    color: #ffd38a;
    font-size: .82rem;
    text-transform: uppercase;
}
.analyst-review-panel > header button {
    border: 1px solid rgba(91,255,209,.28);
    background: rgba(3,8,10,.74);
    color: var(--signal);
    padding: 6px 8px;
    font-size: .62rem;
    font-weight: 900;
    text-transform: uppercase;
}
.map-stage-wrap {
    position: relative;
    overflow: hidden;
    z-index: 0;
}
.signal-map {
    position: relative;
    z-index: 1;
    height: clamp(360px, 52vw, 640px);
    margin-top: 12px;
    overflow: hidden;
    border: 1px solid rgba(91,255,209,.18);
    background:
        radial-gradient(circle at 50% 52%, rgba(91,255,209,.14), transparent 36%),
        linear-gradient(145deg, rgba(20,184,166,.12), transparent 34%),
        #030607;
    touch-action: none;
    user-select: none;
    cursor: grab;
}
.signal-map .leaflet-container,
.leaflet-container.signal-map {
    background: #030607;
    font-family: inherit;
}
.signal-map .leaflet-tile-pane {
    filter: saturate(.88) contrast(1.05) brightness(.88);
}
.signal-map[data-base-mode="physical"] .leaflet-tile-pane,
.signal-map[data-base-mode="streetsPhysical"] .leaflet-tile-pane {
    filter: saturate(.84) contrast(1.02) brightness(.88);
}
.signal-map[data-base-mode="oceanographic"] .leaflet-tile-pane {
    filter: saturate(.96) contrast(1.08) brightness(.86);
}
.leaflet-grid-tile {
    width: 100%;
    height: 100%;
    border-right: 1px solid rgba(91,255,209,.08);
    border-bottom: 1px solid rgba(91,255,209,.08);
}
.signal-leaflet-label {
    border: 1px solid rgba(91,255,209,.28);
    background: rgba(5,7,8,.88);
    color: var(--ink);
    box-shadow: 0 0 12px rgba(91,255,209,.10);
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: 0;
}
.signal-leaflet-label::before { display: none; }
.hide-labels .signal-leaflet-label { display: none; }
.leaflet-signal-marker {
    filter: drop-shadow(0 0 8px rgba(91,255,209,.44));
}
.leaflet-coordinate-stack {
    width: 38px;
    height: 38px;
}
.coordinate-stack-symbol {
    position: relative;
    display: block;
    width: 38px;
    height: 38px;
}
.coordinate-stack-symbol i {
    position: absolute;
    width: 25px;
    height: 25px;
    border: 1px solid var(--marker-color);
    background: #050708;
    box-shadow: 0 0 10px color-mix(in srgb, var(--marker-color) 36%, transparent);
}
.coordinate-stack-symbol i:nth-child(1) { inset: 2px auto auto 2px; opacity: .46; }
.coordinate-stack-symbol i:nth-child(2) { inset: 6px auto auto 6px; opacity: .72; }
.coordinate-stack-symbol i:nth-child(3) { inset: 10px auto auto 10px; }
.coordinate-stack-symbol b {
    position: absolute;
    right: -5px;
    top: -5px;
    z-index: 2;
    display: grid;
    place-items: center;
    min-width: 22px;
    height: 22px;
    border: 2px solid #050708;
    border-radius: 50%;
    background: var(--marker-color);
    color: #03100d;
    padding: 0 4px;
    font-size: .65rem;
    font-weight: 1000;
    line-height: 1;
}
.leaflet-coordinate-stack:hover .coordinate-stack-symbol i,
.leaflet-coordinate-stack.is-active .coordinate-stack-symbol i {
    border-color: #fff;
}
.leaflet-bearing-vector {
    filter: drop-shadow(0 0 6px rgba(91,255,209,.25));
}
.leaflet-popup-content-wrapper,
.leaflet-popup-tip {
    border: 1px solid var(--line);
    background: #071012;
    color: var(--ink);
    box-shadow: 0 18px 40px rgba(0,0,0,.36);
}
.leaflet-popup-content {
    margin: 10px 12px;
    font-size: .78rem;
    line-height: 1.45;
}
.master-marker-popup .leaflet-popup-content {
    width: min(330px, 76vw) !important;
}
.marker-popup {
    display: grid;
    gap: 8px;
}
.marker-popup header {
    display: grid;
    gap: 3px;
    padding-bottom: 7px;
    border-bottom: 1px solid rgba(91,255,209,.22);
}
.marker-popup header strong {
    display: flex;
    align-items: center;
    color: var(--signal);
    font-size: .94rem;
    line-height: 1.2;
}
.marker-popup header span,
.marker-popup p,
.popup-source-empty {
    color: var(--muted);
    font-size: .74rem;
}
.marker-popup p {
    max-height: 70px;
    overflow: auto;
    margin: 0;
}
.popup-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}
.popup-actions a,
.popup-actions button {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    border: 1px solid var(--line);
    background: rgba(91,255,209,.08);
    color: var(--ink);
    padding: 7px 9px;
    text-decoration: none;
    text-transform: uppercase;
    font-size: .66rem;
    font-weight: 900;
    letter-spacing: .06em;
}
.popup-actions a:hover,
.popup-actions button:hover {
    background: var(--signal);
    color: #03100d;
}
.popup-sources summary {
    cursor: pointer;
    color: var(--signal);
    font-size: .7rem;
    font-weight: 900;
    text-transform: uppercase;
}
.popup-source-list {
    display: grid;
    gap: 8px;
    max-height: 300px;
    overflow: auto;
    margin: 8px 0 0;
    padding-left: 18px;
}
.popup-source-list.compact {
    max-height: 145px;
}
.popup-source-list li {
    color: var(--muted);
}
.popup-source-list a {
    color: var(--ink);
    font-weight: 900;
    text-decoration: none;
}
.popup-source-list a:hover {
    color: var(--signal);
}
.popup-source-list span {
    display: block;
    margin-top: 2px;
    color: var(--muted);
    font-size: .68rem;
    text-transform: uppercase;
}
.popup-source-list p {
    margin: 4px 0 0;
    color: var(--muted);
    font-size: .74rem;
}
.source-route-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 6px;
}
.source-route-actions button {
    min-height: 26px;
    border: 1px solid rgba(91, 255, 209, .45);
    background: rgba(7, 20, 20, .82);
    color: var(--signal);
    font: inherit;
    font-size: .66rem;
    font-weight: 900;
    letter-spacing: 0;
    text-transform: uppercase;
    cursor: pointer;
}
.source-route-actions button:hover {
    border-color: var(--signal);
    background: rgba(91, 255, 209, .14);
}
.source-route-actions button:disabled,
.source-route-actions button[data-source-route-status="published"] {
    cursor: default;
    opacity: .72;
}
.source-route-actions button[data-source-route-status="published"] {
    border-color: rgba(125, 255, 154, .6);
    color: #7dff9a;
}
.marker-dossier-overlay {
    position: absolute;
    inset: 10px;
    z-index: 1600;
    display: flex;
    min-width: 0;
    min-height: 0;
    pointer-events: auto;
}
.marker-dossier-overlay[hidden] {
    display: none !important;
}
.coordinate-group-panel {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    width: 100%;
    min-width: 0;
    min-height: 0;
    overflow: hidden;
    border: 1px solid rgba(91,255,209,.48);
    background: rgba(3,7,9,.98);
    box-shadow: 0 28px 70px rgba(0,0,0,.68), 0 0 30px rgba(91,255,209,.08);
    color: var(--ink);
}
.coordinate-group-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    padding: 16px 18px 14px;
    border-bottom: 1px solid rgba(91,255,209,.22);
    background: rgba(7,16,18,.96);
}
.coordinate-group-head h2 {
    margin: 4px 0 5px;
    color: var(--signal);
    font-size: 1.35rem;
    line-height: 1.08;
    text-transform: uppercase;
}
.coordinate-group-head p {
    margin: 0;
    color: var(--muted);
    font-size: .76rem;
    font-weight: 800;
    text-transform: uppercase;
}
.coordinate-group-head button {
    min-height: 34px;
    border: 1px solid rgba(91,255,209,.36);
    background: #050708;
    color: var(--ink);
    padding: 8px 11px;
    font-size: .68rem;
    font-weight: 900;
    text-transform: uppercase;
}
.coordinate-group-head button:hover {
    background: var(--signal);
    color: #03100d;
}
.coordinate-group-list {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 420px), 1fr));
    align-content: start;
    gap: 10px;
    min-height: 0;
    overflow: auto;
    padding: 14px;
}
.coordinate-group-card {
    --marker-color: var(--signal);
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr) auto;
    align-items: start;
    gap: 11px;
    min-width: 0;
    border: 1px solid color-mix(in srgb, var(--marker-color) 34%, rgba(91,255,209,.15));
    border-left: 3px solid var(--marker-color);
    background: rgba(7,16,18,.86);
    color: var(--ink);
    padding: 12px;
    text-align: left;
    cursor: pointer;
}
.coordinate-group-card:hover,
.coordinate-group-card:focus-visible {
    border-color: var(--marker-color);
    background: color-mix(in srgb, var(--marker-color) 10%, rgba(7,16,18,.94));
    outline: none;
}
.coordinate-group-card-icon {
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    border: 1px solid color-mix(in srgb, var(--marker-color) 54%, transparent);
    background: #050708;
    font-size: 1rem;
}
.coordinate-group-card-copy {
    display: grid;
    gap: 4px;
    min-width: 0;
}
.coordinate-group-card-copy strong {
    color: var(--marker-color);
    font-size: .92rem;
    line-height: 1.15;
    text-transform: uppercase;
}
.coordinate-group-card-copy em {
    color: var(--muted);
    font-size: .66rem;
    font-style: normal;
    font-weight: 900;
    text-transform: uppercase;
}
.coordinate-group-card-copy > span {
    display: -webkit-box;
    overflow: hidden;
    color: var(--ink);
    font-size: .76rem;
    line-height: 1.4;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}
.coordinate-group-card-stats {
    display: grid;
    grid-template-columns: auto auto;
    gap: 2px 7px;
    min-width: 72px;
    color: var(--muted);
    font-size: .6rem;
    text-transform: uppercase;
}
.coordinate-group-card-stats b {
    color: var(--ink);
    font-size: .7rem;
}
.coordinate-group-card-stats small {
    font-size: .58rem;
    font-weight: 800;
}
.marker-dossier-card {
    --marker-color: var(--signal);
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    width: 100%;
    min-width: 0;
    min-height: 0;
    overflow: hidden;
    border: 1px solid color-mix(in srgb, var(--marker-color) 52%, rgba(91,255,209,.18));
    background:
        linear-gradient(135deg, color-mix(in srgb, var(--marker-color) 12%, transparent), transparent 34%),
        linear-gradient(180deg, rgba(7,16,18,.98), rgba(3,7,9,.96));
    box-shadow: 0 28px 70px rgba(0,0,0,.62), 0 0 0 1px rgba(91,255,209,.08) inset;
    color: var(--ink);
    backdrop-filter: blur(10px);
}
.marker-dossier-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    padding: 16px 18px 14px;
    border-bottom: 1px solid rgba(91,255,209,.18);
    background: rgba(3,8,10,.58);
}
.marker-dossier-head h2 {
    display: flex;
    align-items: center;
    margin: 4px 0 5px;
    color: var(--ink);
    font-size: 1.55rem;
    line-height: 1.05;
    letter-spacing: 0;
    text-transform: uppercase;
}
.marker-dossier-head p {
    margin: 0;
    color: var(--muted);
    font-size: .82rem;
    font-weight: 800;
    text-transform: uppercase;
}
.marker-dossier-head-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    justify-content: flex-end;
}
.marker-dossier-head-actions button {
    min-height: 34px;
    border: 1px solid rgba(91,255,209,.36);
    background: rgba(3,8,10,.74);
    color: var(--ink);
    padding: 8px 11px;
    font-size: .68rem;
    font-weight: 900;
    text-transform: uppercase;
}
.marker-dossier-head-actions button:hover {
    background: var(--signal);
    color: #03100d;
}
.dossier-readiness-badge,
.dossier-readiness-panel strong {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    border: 1px solid rgba(91,255,209,.30);
    padding: 6px 9px;
    background: rgba(91,255,209,.09);
    color: var(--signal);
    font-size: .68rem;
    font-weight: 1000;
    text-transform: uppercase;
}
.dossier-readiness-ready {
    border-color: rgba(119,214,109,.44);
    background: rgba(119,214,109,.12);
    color: #9cff93;
}
.dossier-readiness-gap {
    border-color: rgba(255,211,138,.46);
    background: rgba(255,211,138,.12);
    color: #ffd38a;
}
.dossier-readiness-review {
    border-color: rgba(139,156,255,.44);
    background: rgba(139,156,255,.12);
    color: #b8c3ff;
}
.dossier-readiness-queued {
    border-color: rgba(91,255,209,.52);
    background: rgba(91,255,209,.14);
    color: var(--signal);
}
.marker-dossier-body {
    display: grid;
    grid-template-columns: minmax(340px, .92fr) minmax(440px, 1.08fr);
    gap: 14px;
    min-height: 0;
    overflow: auto;
    padding: 14px;
}
.marker-dossier-main,
.marker-dossier-side {
    display: grid;
    align-content: start;
    gap: 12px;
    min-width: 0;
}
.dossier-locator-panel,
.dossier-brief-panel,
.dossier-readiness-panel,
.dossier-source-panel,
.dossier-relationship-panel,
.dossier-timeline-panel,
.marker-dossier-overlay .analyst-review-panel {
    border: 1px solid rgba(91,255,209,.16);
    background: rgba(3,8,10,.72);
    box-shadow: 0 0 22px rgba(91,255,209,.05);
}
.dossier-locator-panel,
.dossier-brief-panel,
.dossier-readiness-panel,
.dossier-source-panel,
.dossier-relationship-panel,
.dossier-timeline-panel {
    display: grid;
    gap: 10px;
    padding: 11px;
}
.dossier-locator-panel > header,
.dossier-brief-panel > header,
.dossier-readiness-panel > header,
.dossier-source-panel > header,
.dossier-relationship-panel > header,
.dossier-timeline-panel > header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    color: var(--muted);
    font-size: .68rem;
    font-weight: 900;
    text-transform: uppercase;
}
.dossier-locator-panel > header strong,
.dossier-brief-panel > header strong,
.dossier-source-panel > header strong,
.dossier-relationship-panel > header strong,
.dossier-timeline-panel > header strong {
    color: var(--marker-color);
}
.dossier-live-locator-map {
    position: relative;
    min-height: 250px;
    aspect-ratio: 1.9;
    overflow: hidden;
    border: 1px solid color-mix(in srgb, var(--marker-color) 34%, rgba(91,255,209,.18));
    background:
        linear-gradient(90deg, rgba(91,255,209,.11) 1px, transparent 1px),
        linear-gradient(rgba(91,255,209,.08) 1px, transparent 1px),
        linear-gradient(145deg, #071012, #020607);
    background-size: 12.5% 100%, 100% 20%, auto;
    cursor: default;
}
.dossier-live-locator-map > span {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    color: var(--muted);
    font-size: .72rem;
    font-weight: 900;
    text-transform: uppercase;
}
.dossier-live-locator-map.leaflet-container {
    background: #071012;
    font-family: inherit;
}
.dossier-live-locator-map .leaflet-tile-pane {
    filter: saturate(.9) contrast(1.05) brightness(.88);
}
.dossier-live-locator-map .leaflet-control-container {
    display: none;
}
.dossier-static-map {
    position: relative;
    min-height: 250px;
    aspect-ratio: 1.9;
    overflow: hidden;
    border: 1px solid color-mix(in srgb, var(--marker-color) 34%, rgba(91,255,209,.18));
    background:
        linear-gradient(90deg, rgba(91,255,209,.11) 1px, transparent 1px),
        linear-gradient(rgba(91,255,209,.08) 1px, transparent 1px),
        radial-gradient(ellipse at 28% 42%, rgba(91,255,209,.16), transparent 22%),
        radial-gradient(ellipse at 66% 54%, rgba(59,130,246,.14), transparent 24%),
        linear-gradient(145deg, #071012, #020607);
    background-size: 12.5% 100%, 100% 20%, auto, auto, auto;
}
.dossier-static-map::after {
    content: "";
    position: absolute;
    inset: 0;
    opacity: .52;
    background:
        linear-gradient(28deg, transparent 47%, rgba(232,242,239,.20) 48%, rgba(232,242,239,.20) 50%, transparent 51%),
        linear-gradient(118deg, transparent 46%, rgba(91,255,209,.18) 47%, rgba(91,255,209,.18) 49%, transparent 50%),
        radial-gradient(ellipse at 34% 44%, rgba(232,242,239,.10), transparent 18%);
    background-size: 170px 170px, 210px 210px, auto;
}
.dossier-static-map-label {
    position: absolute;
    z-index: 2;
    color: var(--muted);
    font-size: .66rem;
    font-weight: 1000;
}
.dossier-static-map-label.north { top: 8px; left: 50%; transform: translateX(-50%); }
.dossier-static-map-label.south { bottom: 8px; left: 50%; transform: translateX(-50%); }
.dossier-static-map-label.west { top: 50%; left: 8px; transform: translateY(-50%); }
.dossier-static-map-label.east { top: 50%; right: 8px; transform: translateY(-50%); }
.dossier-static-map-point {
    position: absolute;
    z-index: 4;
    width: 18px;
    height: 18px;
    border: 3px solid #020607;
    border-radius: 999px;
    background: var(--marker-color);
    box-shadow: 0 0 0 2px rgba(232,242,239,.92), 0 0 26px var(--marker-color);
    transform: translate(-50%, -50%);
}
.dossier-static-map-callout {
    position: absolute;
    z-index: 4;
    max-width: 42%;
    padding: 6px 8px;
    border: 1px solid color-mix(in srgb, var(--marker-color) 54%, rgba(91,255,209,.18));
    background: rgba(3,8,10,.88);
    color: var(--ink);
    font-size: .68rem;
    font-style: normal;
    font-weight: 900;
    line-height: 1.2;
    text-transform: uppercase;
    transform: translateY(-50%);
}
.dossier-coordinate-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 6px;
    margin: 0;
}
.dossier-coordinate-grid div,
.dossier-stat-grid span,
.dossier-source-buckets span {
    min-width: 0;
    border: 1px solid rgba(91,255,209,.14);
    background: rgba(7,16,18,.64);
    padding: 8px;
}
.dossier-coordinate-grid dt {
    color: var(--muted);
    font-size: .62rem;
    font-weight: 900;
    text-transform: uppercase;
}
.dossier-coordinate-grid dd {
    margin: 3px 0 0;
    color: var(--ink);
    font-size: .72rem;
    font-weight: 800;
    line-height: 1.2;
    overflow-wrap: anywhere;
}
.dossier-brief-panel p,
.dossier-readiness-panel p {
    margin: 0;
    color: var(--ink);
    font-size: .9rem;
    line-height: 1.45;
}
.dossier-action-rail {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.dossier-action-rail a,
.dossier-action-rail button,
.dossier-action-disabled {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 36px;
    border: 1px solid color-mix(in srgb, var(--marker-color) 42%, rgba(91,255,209,.22));
    background: rgba(91,255,209,.08);
    color: var(--ink);
    padding: 8px 11px;
    text-decoration: none;
    font-size: .7rem;
    font-weight: 1000;
    text-transform: uppercase;
}
.dossier-action-rail a:hover,
.dossier-action-rail button:hover {
    background: var(--marker-color);
    color: #03100d;
}
.dossier-action-disabled {
    opacity: .54;
}
.marker-dossier-overlay .analyst-review-panel {
    padding: 11px;
}
.marker-dossier-side {
    grid-template-rows: auto;
}
.dossier-stat-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
}
.dossier-stat-grid span,
.dossier-source-buckets span {
    display: grid;
    gap: 3px;
    color: var(--muted);
    font-size: .64rem;
    font-weight: 900;
    text-transform: uppercase;
}
.dossier-stat-grid strong,
.dossier-source-buckets strong {
    color: var(--ink);
    font-size: .92rem;
    line-height: 1;
}
.dossier-source-buckets {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 6px;
}
.marker-dossier-overlay .popup-source-list.compact {
    max-height: 165px;
    padding-left: 18px;
}
.marker-dossier-overlay .popup-source-list li,
.marker-dossier-overlay .popup-source-list p,
.dossier-empty {
    color: var(--muted);
    font-size: .76rem;
}
.marker-dossier-overlay .popup-source-list a {
    color: var(--ink);
}
.dossier-relationship-list,
.dossier-timeline-list {
    display: grid;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}
.dossier-relationship-list li,
.dossier-timeline-list li {
    min-width: 0;
    border-left: 3px solid var(--relationship-color, var(--marker-color));
    background: rgba(7,16,18,.64);
    padding: 8px 9px;
}
.dossier-relationship-list span,
.dossier-timeline-list time {
    display: block;
    color: var(--muted);
    font-size: .62rem;
    font-weight: 900;
    text-transform: uppercase;
}
.dossier-relationship-list strong {
    display: block;
    margin-top: 3px;
    color: var(--relationship-color, var(--marker-color));
    font-size: .76rem;
    text-transform: uppercase;
}
.dossier-relationship-list p,
.dossier-timeline-list span {
    margin: 3px 0 0;
    color: var(--ink);
    font-size: .76rem;
    line-height: 1.3;
}
@media (max-width: 1120px) {
    .marker-dossier-body {
        grid-template-columns: 1fr;
    }
    .dossier-source-buckets {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}
@media (max-width: 720px) {
    .marker-dossier-overlay {
        inset: 6px;
    }
    .marker-dossier-head {
        display: grid;
    }
    .marker-dossier-head-actions {
        justify-content: flex-start;
    }
    .marker-dossier-body {
        padding: 10px;
    }
    .coordinate-group-head {
        display: grid;
    }
    .coordinate-group-list {
        grid-template-columns: 1fr;
        padding: 10px;
    }
    .coordinate-group-card {
        grid-template-columns: 34px minmax(0, 1fr);
    }
    .coordinate-group-card-stats {
        grid-column: 2;
        grid-template-columns: repeat(6, auto);
        justify-content: start;
    }
    .dossier-live-locator-map,
    .dossier-static-map {
        min-height: 210px;
    }
    .dossier-coordinate-grid,
    .dossier-stat-grid,
    .dossier-source-buckets {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
.leaflet-control-attribution {
    border: 1px solid rgba(91,255,209,.14);
    background: rgba(5,7,8,.72) !important;
    color: var(--muted);
    font-size: .64rem;
}
.leaflet-control-attribution a { color: var(--signal); }
.signal-map.is-panning { cursor: grabbing; }
.signal-map[data-base-mode="political"] {
    background:
        linear-gradient(90deg, rgba(91,255,209,.08) 1px, transparent 1px),
        linear-gradient(rgba(91,255,209,.05) 1px, transparent 1px),
        radial-gradient(circle at 35% 45%, rgba(91,255,209,.13), transparent 18%),
        radial-gradient(circle at 62% 38%, rgba(255,64,90,.10), transparent 16%),
        linear-gradient(145deg, #071012, #030607);
    background-size: 12.5% 100%, 100% 25%, auto, auto, auto;
}
.signal-map[data-base-mode="physical"] {
    background:
        radial-gradient(ellipse at 28% 38%, rgba(119,214,109,.18), transparent 26%),
        radial-gradient(ellipse at 64% 48%, rgba(215,166,77,.14), transparent 24%),
        radial-gradient(circle at 50% 52%, rgba(91,255,209,.10), transparent 38%),
        linear-gradient(145deg, #08110d, #030607);
}
.signal-map[data-base-mode="streetsPhysical"] {
    background:
        linear-gradient(35deg, transparent 47%, rgba(232,242,239,.10) 48%, rgba(232,242,239,.10) 50%, transparent 51%),
        linear-gradient(115deg, transparent 47%, rgba(91,255,209,.11) 48%, rgba(91,255,209,.11) 50%, transparent 51%),
        radial-gradient(ellipse at 38% 42%, rgba(119,214,109,.14), transparent 27%),
        linear-gradient(145deg, #071012, #030607);
    background-size: 180px 180px, 220px 220px, auto, auto;
}
.signal-map[data-base-mode="oceanographic"] {
    background:
        radial-gradient(ellipse at 48% 55%, rgba(59,130,246,.24), transparent 34%),
        repeating-radial-gradient(circle at 50% 52%, rgba(91,255,209,.10) 0 1px, transparent 1px 18px),
        linear-gradient(145deg, #031326, #030607);
}
.map-search-input {
    min-height: 36px;
    font-size: .82rem;
}
.priority-featured .quality,
.quality-featured .quality { color: #ffffff; }
.priority-featured { box-shadow: inset 3px 0 0 var(--signal); }
.signal-map::after {
    content: none;
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    opacity: .78;
    background-repeat: no-repeat;
}
.signal-map[data-base-mode="political"]::after {
    background-image:
        linear-gradient(90deg, transparent 24%, rgba(232,242,239,.22) 24.2%, transparent 24.7%, transparent 48%, rgba(232,242,239,.18) 48.2%, transparent 48.7%, transparent 73%, rgba(232,242,239,.16) 73.2%, transparent 73.6%),
        linear-gradient(0deg, transparent 32%, rgba(232,242,239,.18) 32.2%, transparent 32.8%, transparent 61%, rgba(232,242,239,.14) 61.2%, transparent 61.8%),
        radial-gradient(ellipse at 25% 38%, rgba(91,255,209,.26) 0 12%, rgba(91,255,209,.13) 12.4% 18%, transparent 18.5%),
        radial-gradient(ellipse at 53% 44%, rgba(91,255,209,.24) 0 15%, rgba(91,255,209,.10) 15.5% 22%, transparent 22.5%),
        radial-gradient(ellipse at 75% 56%, rgba(91,255,209,.20) 0 11%, rgba(91,255,209,.09) 11.5% 17%, transparent 17.5%);
}
.signal-map[data-base-mode="physical"]::after {
    background-image:
        repeating-radial-gradient(ellipse at 30% 42%, rgba(215,166,77,.26) 0 2px, transparent 2px 15px),
        repeating-radial-gradient(ellipse at 64% 48%, rgba(119,214,109,.20) 0 2px, transparent 2px 18px),
        radial-gradient(ellipse at 28% 40%, rgba(119,214,109,.22) 0 17%, transparent 17.5%),
        radial-gradient(ellipse at 64% 50%, rgba(215,166,77,.18) 0 21%, transparent 21.5%),
        radial-gradient(ellipse at 79% 34%, rgba(119,214,109,.16) 0 10%, transparent 10.5%);
}
.signal-map[data-base-mode="streetsPhysical"]::after {
    background-image:
        linear-gradient(32deg, transparent 49%, rgba(232,242,239,.35) 49.4%, rgba(232,242,239,.35) 50.2%, transparent 50.6%),
        linear-gradient(112deg, transparent 49%, rgba(91,255,209,.28) 49.4%, rgba(91,255,209,.28) 50.2%, transparent 50.6%),
        linear-gradient(0deg, transparent 49%, rgba(232,242,239,.18) 49.3%, transparent 49.9%),
        radial-gradient(ellipse at 36% 45%, rgba(119,214,109,.18) 0 20%, transparent 20.5%);
    background-size: 170px 170px, 220px 220px, 100% 92px, auto;
}
.signal-map[data-base-mode="oceanographic"]::after {
    background-image:
        repeating-radial-gradient(ellipse at 50% 52%, rgba(91,255,209,.22) 0 1px, transparent 1px 20px),
        radial-gradient(ellipse at 42% 58%, rgba(59,130,246,.34) 0 24%, transparent 24.5%),
        radial-gradient(ellipse at 70% 32%, rgba(59,130,246,.24) 0 16%, transparent 16.5%),
        linear-gradient(90deg, transparent 18%, rgba(91,255,209,.18) 18.2%, transparent 18.6%, transparent 82%, rgba(91,255,209,.14) 82.2%, transparent 82.6%);
}
.signal-map::before {
    content: none;
    position: absolute;
    inset: 7% 4%;
    border: 1px solid rgba(91,255,209,.14);
    border-radius: 50%;
    opacity: .65;
}
.map-cartography {
    position: absolute;
    inset: 0;
    z-index: 1;
    width: 100%;
    height: 100%;
    pointer-events: none;
    opacity: .95;
}
.map-cartography path { vector-effect: non-scaling-stroke; }
.carto-land path { fill: rgba(91,255,209,.10); stroke: rgba(232,242,239,.46); stroke-width: 1.4; }
.carto-borders path { fill: none; stroke: rgba(232,242,239,.48); stroke-width: 1; stroke-dasharray: 7 6; }
.carto-routes path { fill: none; stroke: rgba(232,242,239,.42); stroke-width: 1.5; }
.carto-contours path, .carto-depths path { fill: none; stroke-width: 1.4; }
.carto-contours path { stroke: rgba(215,166,77,.58); }
.carto-depths path { stroke: rgba(59,130,246,.62); }
.signal-map[data-base-mode="political"] .carto-contours,
.signal-map[data-base-mode="political"] .carto-depths,
.signal-map[data-base-mode="physical"] .carto-borders,
.signal-map[data-base-mode="physical"] .carto-routes,
.signal-map[data-base-mode="physical"] .carto-depths,
.signal-map[data-base-mode="streetsPhysical"] .carto-depths,
.signal-map[data-base-mode="oceanographic"] .carto-borders,
.signal-map[data-base-mode="oceanographic"] .carto-routes,
.signal-map[data-base-mode="oceanographic"] .carto-contours { display: none; }
.signal-map[data-base-mode="physical"] .carto-land path { fill: rgba(119,214,109,.16); stroke: rgba(215,166,77,.62); }
.signal-map[data-base-mode="streetsPhysical"] .carto-land path { fill: rgba(119,214,109,.13); stroke: rgba(232,242,239,.50); }
.signal-map[data-base-mode="streetsPhysical"] .carto-routes path { stroke: rgba(232,242,239,.72); stroke-width: 2; }
.signal-map[data-base-mode="oceanographic"] .carto-land path { fill: rgba(59,130,246,.07); stroke: rgba(91,255,209,.42); }
.signal-map[data-base-mode="oceanographic"] .carto-depths path { stroke-width: 2; }
.map-source-layer, .map-grid-lines, .map-heat-layer, .map-world, .map-vector-layer, .map-marker-layer {
    position: absolute;
    inset: 0;
    transform-origin: 0 0;
}
.map-source-layer {
    z-index: 1;
    pointer-events: none;
    background-position: center;
    background-repeat: no-repeat;
    background-size: 100% 100%;
    opacity: .74;
}
.map-grid-lines { z-index: 640;
    background:
        linear-gradient(rgba(91,255,209,.07) 1px, transparent 1px),
        linear-gradient(90deg, rgba(91,255,209,.07) 1px, transparent 1px);
    background-size: 100% 25%, 12.5% 100%;
    pointer-events: none;
}
.map-heat-layer { pointer-events: none; z-index: 3; }
.map-world { z-index: 4; }
.map-vector-layer { pointer-events: none; z-index: 4; }
.map-marker-layer { z-index: 5; }
.heat-point {
    position: absolute;
    width: var(--heat-size);
    height: var(--heat-size);
    transform: translate(-50%, -50%);
    border-radius: 999px;
    background: radial-gradient(circle, var(--heat-color), transparent 68%);
    filter: blur(2px);
}
.leaflet-heat-icon {
    border: 0;
    background: transparent;
    pointer-events: none;
}
.leaflet-heat-point {
    display: block;
    width: var(--heat-size);
    height: var(--heat-size);
    border-radius: 999px;
    background: radial-gradient(circle, var(--heat-color), transparent 68%);
    filter: blur(2px);
    opacity: .78;
}
.latlong-grid-line {
    stroke-dasharray: 5 9;
    vector-effect: non-scaling-stroke;
}
.latlong-grid-label {
    border: 0;
    background: transparent;
    color: var(--signal);
    pointer-events: none;
}
.latlong-grid-label span {
    display: inline-flex;
    align-items: center;
    min-height: 18px;
    border: 0;
    background: transparent;
    color: var(--signal);
    padding: 0;
    font-size: .58rem;
    font-weight: 900;
    letter-spacing: 0;
    line-height: 1;
    text-transform: uppercase;
    white-space: nowrap;
    box-shadow: none;
}
.latlong-grid-label-lon span {
    color: #9fe8ff;
}
.leaflet-relationship-vector {
    stroke-linecap: round;
    stroke-linejoin: round;
    animation: relationship-flow 4s linear infinite;
    filter: drop-shadow(0 0 8px rgba(91,255,209,.24));
}
.leaflet-relationship-vector.is-active {
    animation-duration: 1.45s;
    filter: drop-shadow(0 0 14px rgba(255,255,255,.4));
}
.leaflet-relationship-vector.is-muted {
    animation: none;
    filter: none;
}
@keyframes relationship-flow {
    from { stroke-dashoffset: 0; }
    to { stroke-dashoffset: -44; }
}
.relationship-arrow-icon,
.relationship-label-icon {
    border: 0;
    background: transparent;
    pointer-events: none;
}
.relationship-arrow-icon span {
    --relationship-color: var(--signal);
    --relationship-rotation: 0deg;
    display: block;
    width: 0;
    height: 0;
    margin: 6px auto 0;
    border-top: 6px solid transparent;
    border-bottom: 6px solid transparent;
    border-left: 13px solid var(--relationship-color);
    transform: rotate(var(--relationship-rotation));
    transform-origin: 50% 50%;
    filter: drop-shadow(0 0 7px var(--relationship-color));
}
.relationship-arrow-icon.is-active span {
    border-left-width: 16px;
    filter: drop-shadow(0 0 12px var(--relationship-color));
}
.relationship-arrow-icon.is-muted span {
    opacity: .2;
}
.relationship-label-icon span {
    --relationship-color: var(--signal);
    display: inline-flex;
    align-items: center;
    gap: 6px;
    border: 1px solid color-mix(in srgb, var(--relationship-color) 62%, transparent);
    background: rgba(5,7,8,.82);
    color: var(--ink);
    padding: 4px 6px;
    box-shadow: 0 0 18px color-mix(in srgb, var(--relationship-color) 30%, transparent);
    white-space: nowrap;
}
.relationship-label-icon strong {
    color: var(--relationship-color);
    font-size: .56rem;
    font-weight: 900;
    letter-spacing: 0;
    line-height: 1;
    text-transform: uppercase;
}
.relationship-label-icon em {
    color: var(--muted);
    font-size: .54rem;
    font-style: normal;
    font-weight: 900;
}
.relationship-label-icon.is-active span {
    background: rgba(5,7,8,.94);
    box-shadow: 0 0 26px color-mix(in srgb, var(--relationship-color) 48%, transparent);
}
.map-empty {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    color: var(--muted);
    text-transform: uppercase;
    letter-spacing: .08em;
    font-size: .82rem;
    font-weight: 900;
    pointer-events: none;
    z-index: 650;
}
.map-empty[hidden] { display: none; }
.map-marker {
    --marker-color: var(--signal);
    position: absolute;
    width: 30px;
    height: 30px;
    transform: translate(-50%, -50%);
    color: var(--marker-color);
    border: 0;
    background: transparent;
    padding: 0;
    cursor: pointer;
    text-decoration: none;
    z-index: 2;
}
.map-marker svg {
    width: 30px;
    height: 30px;
    overflow: visible;
    filter: drop-shadow(0 0 9px color-mix(in srgb, var(--marker-color) 70%, transparent));
}
.map-marker path {
    fill: #050708;
    stroke: var(--marker-color);
    stroke-width: 1.8px;
}
.map-marker.shape-star path { fill: rgba(255,255,255,.2); }
.map-marker.shape-triangle path, .map-marker.shape-delta path { fill: color-mix(in srgb, var(--marker-color) 24%, #050708); }
.bearing-vector {
    stroke: var(--marker-color);
    stroke-width: 1.4px;
    stroke-linecap: round;
    opacity: .7;
}
.map-marker em {
    display: inline-flex;
    align-items: center;
    gap: 0;
    position: absolute;
    left: 26px;
    top: 2px;
    min-width: 140px;
    max-width: 240px;
    padding: 5px 7px;
    border: 1px solid rgba(91,255,209,.2);
    background: rgba(5,7,8,.88);
    color: var(--ink);
    font-style: normal;
    font-size: .72rem;
    line-height: 1.25;
    opacity: .92;
}
.map-marker em span {
    overflow: hidden;
    text-overflow: ellipsis;
}
.map-marker em .origin-flag {
    font-size: .76rem;
}
.map-marker:hover, .map-marker.is-active { z-index: 8; }
.map-marker:hover path, .map-marker.is-active path { stroke: #ffffff; stroke-width: 2.4px; }
.map-marker:hover em, .map-marker.is-active em { border-color: var(--signal); color: var(--signal); }
.map-marker.leaflet-coordinate-stack em {
    opacity: 0;
    pointer-events: none;
}
.map-marker.leaflet-coordinate-stack:focus-visible em,
.map-marker.leaflet-coordinate-stack.is-active em {
    opacity: .96;
}
.map-hud {
    position: absolute;
    z-index: 1250;
    border: 1px solid var(--line);
    background: rgba(5,7,8,.82);
    color: var(--signal);
    padding: 6px 8px;
    font-size: .72rem;
    font-weight: 900;
    letter-spacing: .06em;
    text-transform: uppercase;
    pointer-events: none;
}
.map-coordinate-hud { right: 10px; bottom: 10px; }
.map-zoom-hud { left: 10px; bottom: 10px; }
.map-legend {
    position: absolute;
    right: 96px;
    top: 10px;
    z-index: 1250;
    width: min(240px, calc(100% - 20px));
    border: 1px solid var(--line);
    background: rgba(5,7,8,.86);
    color: var(--ink);
}
.map-legend summary {
    cursor: pointer;
    padding: 8px 10px;
    color: var(--signal);
    text-transform: uppercase;
    font-size: .72rem;
    font-weight: 900;
    letter-spacing: .08em;
}
.map-legend span {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 0 10px 8px;
    color: var(--muted);
    font-size: .76rem;
}
.map-legend i {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--legend-color);
    box-shadow: 0 0 10px var(--legend-color);
}
.map-layer-toggle {
    position: absolute;
    top: 10px;
    right: 10px;
    z-index: 1250;
    min-width: 72px;
}
.map-mode-control {
    position: absolute;
    left: 10px;
    top: 10px;
    z-index: 1260;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    max-width: calc(100% - 96px);
}
.map-mode-control span {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    color: var(--muted);
    font-size: .66rem;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.map-mode-control button {
    min-height: 30px;
    border: 1px solid rgba(91,255,209,.34);
    background: rgba(5,7,8,.82);
    color: var(--ink);
    padding: 7px 10px;
    text-transform: uppercase;
    font-size: .66rem;
    font-weight: 900;
    letter-spacing: .06em;
}
.map-mode-control button:hover,
.map-mode-control button[aria-pressed="true"] {
    background: var(--signal);
    color: #03100d;
}
.map-base-layer-control {
    position: absolute;
    top: 48px;
    left: 10px;
    z-index: 1250;
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    max-width: calc(100% - 128px);
}
.map-base-layer-control button {
    min-height: 30px;
    border: 1px solid var(--line);
    background: rgba(5,7,8,.82);
    color: var(--ink);
    padding: 7px 9px;
    text-transform: uppercase;
    font-size: .66rem;
    font-weight: 900;
    letter-spacing: .06em;
}
.map-base-layer-control button:hover,
.map-base-layer-control button[aria-pressed="true"] {
    background: var(--signal);
    color: #03100d;
}
.map-source-popup {
    position: absolute;
    top: 52px;
    left: 10px;
    z-index: 1300;
    display: grid;
    gap: 10px;
    width: min(380px, calc(100% - 24px));
    max-height: calc(100% - 70px);
    overflow: auto;
    border: 1px solid var(--signal);
    background: rgba(5,7,8,.94);
    color: var(--ink);
    box-shadow: 0 18px 40px rgba(0,0,0,.42), 0 0 22px rgba(91,255,209,.14);
    padding: 12px;
}
.map-source-popup[hidden] {
    display: none;
}
.map-source-popup header {
    display: flex;
    align-items: start;
    justify-content: space-between;
    gap: 10px;
    border-bottom: 1px solid rgba(91,255,209,.22);
    padding-bottom: 8px;
}
.map-source-popup h3 {
    margin: 2px 0 0;
    color: var(--signal);
    font-size: .92rem;
    text-transform: uppercase;
    letter-spacing: .06em;
}
.map-source-popup p {
    margin: 0;
    color: var(--muted);
    font-size: .76rem;
    line-height: 1.45;
}
.map-source-meta {
    display: grid;
    gap: 6px;
    margin: 0;
}
.map-source-meta div {
    display: grid;
    grid-template-columns: 76px minmax(0, 1fr);
    gap: 8px;
    min-width: 0;
}
.map-source-meta dt {
    color: var(--signal);
    font-size: .66rem;
}
.map-source-meta dd {
    margin: 0;
    min-width: 0;
    color: var(--ink);
    overflow-wrap: anywhere;
    font-size: .74rem;
    line-height: 1.35;
}
.map-source-tiles {
    display: grid;
    gap: 4px;
}
.relationship-inspector {
    position: absolute;
    left: 50%;
    bottom: 46px;
    z-index: 1320;
    width: min(520px, calc(100% - 24px));
    max-height: min(320px, calc(100% - 96px));
    overflow: auto;
    transform: translateX(-50%);
    border: 1px solid rgba(91,255,209,.42);
    background:
        linear-gradient(90deg, rgba(91,255,209,.12), transparent 34%),
        linear-gradient(180deg, rgba(5,7,8,.96), rgba(10,18,20,.92));
    color: var(--ink);
    box-shadow: 0 18px 40px rgba(0,0,0,.46), 0 0 28px rgba(91,255,209,.18);
    padding: 10px;
    pointer-events: none;
}
.relationship-inspector[hidden] {
    display: none;
}
.relationship-inspector header {
    display: flex;
    align-items: start;
    justify-content: space-between;
    gap: 10px;
    border-bottom: 1px solid rgba(91,255,209,.22);
    padding-bottom: 8px;
}
.relationship-inspector h3 {
    display: flex;
    align-items: center;
    margin: 2px 0 0;
    color: var(--signal);
    font-size: .92rem;
    line-height: 1.15;
    text-transform: uppercase;
}
.relationship-inspector button {
    border: 1px solid var(--line);
    background: rgba(91,255,209,.08);
    color: var(--ink);
    padding: 6px 8px;
    text-transform: uppercase;
    font-size: .62rem;
    font-weight: 900;
    letter-spacing: 0;
    pointer-events: auto;
}
.relationship-inspector-count {
    margin: 8px 0;
    color: var(--muted);
    font-size: .68rem;
    font-weight: 900;
    text-transform: uppercase;
}
.relationship-inspector-list,
.relationship-edge-list {
    display: grid;
    gap: 8px;
    margin: 0;
    padding-left: 18px;
}
.relationship-inspector-list li,
.relationship-edge-list li {
    --relationship-color: var(--signal);
    border-left: 3px solid var(--relationship-color);
    background: rgba(91,255,209,.04);
    color: var(--muted);
    padding: 7px 8px;
}
.relationship-inspector-list strong,
.relationship-edge-list strong {
    display: block;
    color: var(--relationship-color);
    font-size: .68rem;
    letter-spacing: 0;
    text-transform: uppercase;
}
.relationship-inspector-list span,
.relationship-edge-list span,
.relationship-edge-list em {
    display: block;
    margin-top: 2px;
    color: var(--ink);
    font-size: .68rem;
    font-style: normal;
    font-weight: 900;
    text-transform: uppercase;
}
.relationship-inspector-list span .origin-flag,
.relationship-edge-list span .origin-flag,
.dossier-relationship-list p .origin-flag {
    font-size: .78rem;
}
.relationship-inspector-list p,
.relationship-edge-list p {
    margin: 5px 0 0;
    color: var(--muted);
    font-size: .72rem;
    line-height: 1.35;
}
.relationship-edge-list.compact {
    max-height: 150px;
    overflow: auto;
}
.relationship-edge-list a {
    color: var(--signal);
    font-size: .66rem;
    font-weight: 900;
    text-transform: uppercase;
    pointer-events: auto;
}
.map-filter-matrix {
    position: absolute;
    top: 52px;
    right: 10px;
    z-index: 1200;
    width: min(310px, calc(100% - 24px));
    max-height: calc(100% - 24px);
    overflow: auto;
    border: 1px solid var(--signal);
    background: rgba(7,12,14,.94);
    box-shadow: -8px 0 22px rgba(91,255,209,.16);
    padding: 12px;
    transform: translateX(calc(100% + 24px));
    transition: transform .18s ease;
}
.map-filter-matrix.open { transform: translateX(0); }
.filter-section {
    padding-bottom: 10px;
    margin-bottom: 10px;
    border-bottom: 1px dashed rgba(91,255,209,.24);
}
.filter-section:last-child { border-bottom: 0; margin-bottom: 0; }
.filter-section h3 {
    margin: 0 0 8px;
    color: var(--signal);
    text-transform: uppercase;
    font-size: .74rem;
    letter-spacing: .08em;
}
.filter-label {
    display: flex;
    align-items: center;
    gap: 7px;
    margin: 7px 0;
    color: var(--muted);
    text-transform: none;
    letter-spacing: 0;
    font-size: .78rem;
    line-height: 1.25;
}
.filter-label input { width: auto; accent-color: var(--signal); }
.relationship-filter-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 6px;
}
.relationship-filter-label {
    --relationship-color: var(--signal);
    display: grid;
    grid-template-columns: auto 12px minmax(0, 1fr);
    align-items: center;
    gap: 8px;
    margin: 0;
    border: 1px solid rgba(91,255,209,.13);
    background: linear-gradient(90deg, color-mix(in srgb, var(--relationship-color) 16%, transparent), rgba(5,7,8,.42));
    color: var(--muted);
    padding: 7px 8px;
}
.relationship-filter-label input {
    width: auto;
    accent-color: var(--relationship-color);
}
.relationship-filter-label i {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--relationship-color);
    box-shadow: 0 0 12px var(--relationship-color);
}
.relationship-filter-label span {
    display: grid;
    gap: 2px;
    min-width: 0;
}
.relationship-filter-label strong {
    color: var(--ink);
    font-size: .7rem;
    font-weight: 900;
    letter-spacing: 0;
    line-height: 1.1;
    text-transform: uppercase;
}
.relationship-filter-label em {
    color: var(--muted);
    font-size: .62rem;
    font-style: normal;
    font-weight: 900;
    letter-spacing: 0;
    text-transform: uppercase;
}
.relationship-filter-label.is-empty {
    opacity: .42;
}
.relationship-filter-label.is-empty i {
    box-shadow: none;
}
.hide-grid .map-grid-lines,
.hide-heat .map-heat-layer,
.hide-labels .map-marker em,
.hide-relationships .leaflet-relationship-vector,
.hide-relationships .relationship-arrow-icon,
.hide-relationships .relationship-label-icon,
.hide-vectors .bearing-vector,
.hide-vectors .map-vector-layer { display: none; }
.map-popup-panel {
    position: absolute;
    z-index: 900;
    width: min(350px, calc(100% - 24px));
    padding: 10px 12px;
    border: 1px solid var(--line);
    background: rgba(5,7,8,.88);
    color: var(--ink);
    box-shadow: 0 18px 40px rgba(0,0,0,.36);
}
.map-popup-panel[hidden] {
    display: none;
}
.surface-drawer {
    border: 1px solid var(--line);
    background: rgba(11,17,19,.72);
    padding: 0 12px 12px;
}
.signal-workbench {
    margin: 18px 0;
    border: 1px solid var(--line);
    background: linear-gradient(180deg, rgba(7,12,14,.94), rgba(11,17,19,.82));
    padding: 12px;
}
.intel-report-drawer {
    margin-top: 12px;
    border: 1px solid rgba(91,255,209,.34);
    background: linear-gradient(180deg, rgba(5,7,8,.96), rgba(11,17,19,.9));
    box-shadow: 0 18px 42px rgba(0,0,0,.28);
}
.intel-report-drawer[hidden] {
    display: none;
}
.intel-report-drawer > header {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 12px;
    padding: 12px;
    border-bottom: 1px solid var(--line);
}
.intel-report-drawer h2 {
    display: flex;
    align-items: center;
    margin: 0;
    color: var(--signal);
    font-size: 1.35rem;
    text-transform: uppercase;
}
#intelReportBody {
    display: grid;
    gap: 12px;
    padding: 12px;
}
.intel-report-section {
    display: grid;
    gap: 10px;
}
.intel-report-section h3 {
    margin: 0;
    color: var(--signal);
    font-size: .8rem;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.intel-report-section p {
    margin: 0;
    color: var(--muted);
    line-height: 1.55;
}
.intel-report-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 8px;
}
.intel-report-grid span {
    display: grid;
    gap: 5px;
    min-width: 0;
    border: 1px solid rgba(91,255,209,.18);
    background: rgba(5,7,8,.52);
    padding: 9px;
    color: var(--ink);
    overflow-wrap: anywhere;
    font-size: .78rem;
}
.intel-report-grid strong {
    color: var(--muted);
    font-size: .66rem;
    text-transform: uppercase;
    letter-spacing: .08em;
}
.legacy-disabled-note {
    border: 1px dashed rgba(91,255,209,.3);
    background: rgba(91,255,209,.05);
    color: var(--muted);
    padding: 14px;
    line-height: 1.45;
}
.legacy-disabled-drawer .signal-filters,
.legacy-disabled-drawer .signal-list {
    display: none;
}
.workbench-head {
    display: flex;
    justify-content: space-between;
    align-items: end;
    gap: 14px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--line);
}
.workbench-head h2 {
    margin: 0;
    color: var(--signal);
    font-size: 1.35rem;
    text-transform: uppercase;
}
.workbench-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 8px;
}
.checked-signal-list {
    display: grid;
    gap: 7px;
    max-height: 360px;
    overflow: auto;
    margin: 12px 0;
    padding-right: 4px;
}
.checked-signal-row {
    display: grid;
    grid-template-columns: auto minmax(220px, 1fr) minmax(130px, .6fr) minmax(130px, .6fr) auto;
    gap: 10px;
    align-items: center;
    min-height: 58px;
    margin: 0;
    padding: 9px 10px;
    border: 1px solid rgba(91,255,209,.18);
    background: rgba(5,7,8,.56);
    color: var(--ink);
    text-transform: none;
    letter-spacing: 0;
}
.checked-signal-row:hover {
    border-color: rgba(91,255,209,.42);
    background: rgba(91,255,209,.06);
}
.checked-signal-row input {
    width: auto;
    accent-color: var(--signal);
}
.checked-signal-row a,
.checked-signal-row button {
    border: 1px solid var(--line);
    padding: 6px 8px;
    background: transparent;
    color: var(--signal);
    text-decoration: none;
    text-transform: uppercase;
    font-size: .7rem;
    font-weight: 900;
}
.checked-signal-row a:hover,
.checked-signal-row button:hover {
    background: var(--signal);
    color: #03100d;
}
.checked-signal-row.is-disabled {
    opacity: .52;
}
.checked-signal-main {
    display: grid;
    gap: 4px;
    min-width: 0;
}
.checked-signal-main strong,
.checked-signal-main em,
.checked-signal-meta {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.checked-signal-main strong {
    display: flex;
    align-items: center;
    min-width: 0;
    color: var(--ink);
    font-size: .92rem;
}
.checked-signal-main strong span:last-child {
    overflow: hidden;
    text-overflow: ellipsis;
}
.checked-signal-main em,
.checked-signal-meta {
    color: var(--muted);
    font-style: normal;
    font-size: .73rem;
}
.checked-signal-empty {
    border: 1px dashed rgba(91,255,209,.28);
    color: var(--muted);
    padding: 18px;
    text-align: center;
    text-transform: uppercase;
    font-size: .78rem;
    font-weight: 900;
    letter-spacing: .08em;
}
.complex-search-panel {
    border-top: 1px solid var(--line);
    padding-top: 12px;
}
.search-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
}
.search-grid label {
    margin: 0;
}
.search-toggles {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 10px;
}
.inline-check {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin: 0;
}
.inline-check input {
    width: auto;
    accent-color: var(--signal);
}
.surface-drawer summary {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: center;
    margin: 0 -12px 12px;
    padding: 12px;
    cursor: pointer;
    color: var(--signal);
    text-transform: uppercase;
    letter-spacing: .08em;
    font-size: .78rem;
    font-weight: 900;
    border-bottom: 1px solid var(--line);
    list-style: none;
}
.surface-drawer summary::-webkit-details-marker { display: none; }
.surface-drawer summary::after { content: "+"; color: var(--signal); font-size: 1.1rem; }
.surface-drawer[open] summary::after { content: "-"; }
.signal-row-data {
    display: grid;
    grid-template-columns: 180px 1fr 1fr;
    gap: 10px;
    color: var(--muted);
    font-size: .8rem;
    border-top: 1px solid rgba(91,255,209,.13);
    padding-top: 9px;
    margin-top: 8px;
}.signal-card, .detail-grid article, .detail-grid aside, .form-shell {
    border: 1px solid var(--line);
    background: linear-gradient(180deg, var(--panel), var(--panel-2));
    padding: 14px;
}
.signal-card-top { display: flex; justify-content: space-between; gap: 10px; align-items: center; }
.quality { color: var(--signal); }
.quality-noise .quality { color: var(--warn); }
.quality-archived .quality { color: var(--amber); }
.signal-card p { color: var(--muted); line-height: 1.5; }
.signal-card.is-active { border-color: var(--signal); box-shadow: 0 0 0 1px rgba(91,255,209,.2); }
.signal-card.map-filtered-out { opacity: .42; }
.chips { display: flex; flex-wrap: wrap; gap: 6px; }
.chips span { border: 1px solid var(--line); padding: 4px 7px; color: var(--muted); font-size: .75rem; }
.back-link { display: inline-block; margin-bottom: 14px; color: var(--signal); text-decoration: none; }
.detail-grid { display: grid; grid-template-columns: 1.5fr .7fr; gap: 14px; margin-top: 18px; }
pre { white-space: pre-wrap; color: var(--ink); line-height: 1.55; font-family: inherit; }
dl { display: grid; grid-template-columns: 120px 1fr; gap: 8px 12px; }
dd { margin: 0; color: var(--ink); }
.form-shell { width: min(760px, 100%); margin: 24px auto; }
.form-shell.compact { width: min(480px, 100%); }

.identity-actions { margin: 0 0 16px; }

.identity-table-wrap {
    overflow-x: auto;
    border: 1px solid var(--line);
    background: var(--panel);
}

.identity-token-wrap { margin-top: 20px; }

.identity-section-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 14px 16px;
    border-bottom: 1px solid var(--line);
}

.identity-section-head h2 {
    margin: 2px 0 0;
    font-size: 1.1rem;
}

.identity-table {
    width: 100%;
    border-collapse: collapse;
    min-width: 920px;
}

.identity-table th,
.identity-table td {
    padding: 12px;
    border-bottom: 1px solid var(--line);
    text-align: left;
    vertical-align: top;
}

.identity-table th {
    color: var(--muted);
    font-size: .78rem;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.identity-table td span {
    display: block;
    color: var(--muted);
    font-size: .86rem;
    margin-top: 2px;
}

.identity-table tr.is-muted {
    opacity: .58;
}

.identity-table form {
    display: flex;
    gap: 8px;
    align-items: center;
    flex-wrap: wrap;
}

.identity-table input,
.identity-table select {
    min-width: 150px;
}

.signal-edit-shell {
    width: min(940px, 100%);
}
.signal-edit-form {
    display: grid;
    gap: 10px;
    margin-top: 18px;
}
.edit-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}
.edit-flag-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    padding: 10px;
    border: 1px solid rgba(91,255,209,.18);
    background: rgba(5,7,8,.4);
}
.form-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
}
label { display: block; margin: 14px 0; color: var(--muted); text-transform: uppercase; font-size: .76rem; letter-spacing: .08em; font-weight: 900; }
.error { color: var(--warn); }
.auth-status { display: grid; gap: 6px; margin: 12px 0; padding: 10px; border: 1px solid var(--line); background: rgba(91,255,209,.06); color: var(--muted); text-transform: uppercase; font-size: .72rem; font-weight: 900; letter-spacing: .06em; }
@media (max-width: 920px) {
    .signal-shell {
        width: 100%;
        margin-left: 0;
        padding: 92px 10px 0;
    }

    .signal-hero, .detail-head, .detail-grid, .signal-filters { grid-template-columns: 1fr; }
    .signal-list { grid-template-columns: 1fr; }
    .signal-row-data { grid-template-columns: 1fr; }
    .workbench-head { align-items: stretch; flex-direction: column; }
    .workbench-actions { justify-content: flex-start; }
    .checked-signal-row { grid-template-columns: auto minmax(0, 1fr); }
    .checked-signal-row .checked-signal-meta,
    .checked-signal-row a { grid-column: 2; }
    .search-grid { grid-template-columns: 1fr; }
    .edit-grid,
    .edit-flag-grid { grid-template-columns: 1fr; }
    .map-head { align-items: end; flex-direction: row; }
    .map-head-actions {
        justify-items: end;
        min-width: min(420px, 54vw);
    }
    .strand-selector {
        width: 100%;
    }
    .strand-editor-actions {
        width: 100%;
    }
    .strand-selector label {
        text-align: right;
    }
    .mission-board-head {
        align-items: stretch;
        flex-direction: column;
    }
    .mission-status-strip {
        justify-content: flex-start;
    }
    .strand-mission-board {
        overflow-x: auto;
    }
    .mission-grid {
        grid-template-columns: 250px 360px 250px;
        min-width: 860px;
    }
    .timeline-head {
        align-items: stretch;
        flex-direction: column;
    }
    .timeline-window {
        justify-content: space-between;
    }
    .timeline-rail {
        grid-auto-columns: minmax(220px, 260px);
    }
    .assessment-head {
        align-items: stretch;
        flex-direction: column;
    }
    .assessment-readout {
        justify-content: flex-start;
    }
    .assessment-lens {
        overflow-x: auto;
    }
    .assessment-layout {
        grid-template-columns: 1040px 330px;
        min-width: 1370px;
        max-height: 520px;
        overflow-y: auto;
    }
    .assessment-card-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
    .claim-ledger-head {
        align-items: stretch;
        flex-direction: column;
    }
    .claim-ledger-readout {
        justify-content: flex-start;
    }
    .claim-ledger {
        overflow-x: auto;
    }
    .claim-ledger-layout {
        grid-template-columns: 1120px 340px;
        min-width: 1460px;
        max-height: 540px;
        overflow-y: auto;
    }
    .claim-card-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
    .watch-engine-head {
        align-items: stretch;
        flex-direction: column;
    }
    .watch-engine-readout {
        justify-content: flex-start;
    }
    .watch-engine {
        overflow-x: auto;
    }
    .watch-engine-layout {
        grid-template-columns: 1120px 340px;
        min-width: 1460px;
        max-height: 520px;
        overflow-y: auto;
    }
    .watch-alert-grid {
        grid-template-columns: repeat(5, minmax(0, 1fr));
    }
    .review-desk-head {
        align-items: stretch;
        flex-direction: column;
    }
    .review-desk-readout {
        justify-content: flex-start;
    }
    .review-desk {
        overflow-x: auto;
    }
    .review-desk-layout {
        grid-template-columns: 440px 680px;
        min-width: 1120px;
        max-height: 540px;
        overflow-y: auto;
    }
    .map-toolbar { justify-content: flex-start; }
    .map-filter-matrix {
        top: 52px;
        right: 10px;
        transform: translateX(calc(100% + 24px));
    }
    .map-filter-matrix.open { transform: translateX(0); }
    .map-legend {
        left: 10px;
        right: auto;
        top: 10px;
    }
    .map-layer-toggle {
        top: 10px;
        right: 10px;
    }
    .map-base-layer-control {
        top: 88px;
        max-width: calc(100% - 20px);
    }
    .map-source-popup {
        top: 104px;
        max-height: calc(100% - 116px);
    }
    .relationship-inspector {
        left: 10px;
        right: 10px;
        bottom: 70px;
        width: auto;
        transform: none;
    }
    .map-filter-matrix {
        top: 96px;
    }
    .map-coordinate-hud { left: 10px; right: auto; bottom: 42px; }
    .map-marker em { min-width: 110px; max-width: 180px; }
    .signal-map { height: min(72vh, 620px); }
    .intel-report-grid { grid-template-columns: 1fr; }
}

@media (max-width: 680px) {
    .map-head {
        align-items: stretch;
        flex-direction: column;
    }
    .map-head-actions {
        justify-items: stretch;
        min-width: 0;
    }
    .strand-editor-actions {
        justify-content: flex-start;
    }
    .strand-editor-form {
        grid-template-columns: 1fr;
    }
    .strand-selector label {
        text-align: left;
    }
    .mission-task-row {
        grid-template-columns: 84px minmax(0, 1fr) auto;
    }
    .mission-status-strip span {
        flex: 1 1 126px;
        justify-content: center;
    }
    .assessment-readout span {
        flex: 1 1 126px;
        justify-content: center;
    }
    .claim-ledger-readout span {
        flex: 1 1 126px;
        justify-content: center;
    }
    .watch-engine-readout span {
        flex: 1 1 126px;
        justify-content: center;
    }
    .review-desk-readout span {
        flex: 1 1 126px;
        justify-content: center;
    }
    .review-control-grid {
        grid-template-columns: 1fr;
    }
}

:root {
    --echo-display-scale: 1.3;
}

html {
    font-size: calc(16px * var(--echo-display-scale));
}

.echoDisplayGear {
    position: fixed;
    right: 18px;
    bottom: 18px;
    z-index: 5000;
    display: grid;
    justify-items: end;
}

.echoDisplayGearButton {
    display: grid;
    place-items: center;
    width: 58px;
    height: 58px;
    border: 1px solid rgba(91,255,209,.62);
    border-radius: 50%;
    background:
        radial-gradient(circle at 50% 38%, rgba(91,255,209,.28), transparent 44%),
        linear-gradient(145deg, rgba(5,26,27,.98), rgba(2,8,10,.96));
    color: #effff9;
    box-shadow:
        0 0 18px rgba(91,255,209,.34),
        0 0 34px rgba(30,120,140,.24),
        inset 0 0 18px rgba(91,255,209,.16);
}

.echoDisplayGearButton span {
    font-size: 16px;
    font-weight: 1000;
    line-height: 1;
}

.echoDisplayGearButton small {
    color: #a8d8ce;
    font-size: 8px;
    font-weight: 900;
    line-height: 1;
    text-transform: uppercase;
}

.echoDisplayPanel {
    position: absolute;
    right: 70px;
    bottom: 0;
    width: min(276px, calc(100vw - 110px));
    display: grid;
    gap: 10px;
    padding: 10px;
    border: 1px solid rgba(91,255,209,.48);
    border-radius: 8px;
    background: rgba(2,13,14,.98);
    opacity: 0;
    pointer-events: none;
    transform: translateY(8px) scale(.98);
    transition: opacity 140ms ease, transform 140ms ease;
    box-shadow:
        0 18px 42px rgba(0,0,0,.52),
        0 0 26px rgba(91,255,209,.18);
}

.echoDisplayGear:hover .echoDisplayPanel,
.echoDisplayGear:focus-within .echoDisplayPanel {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0) scale(1);
}

.echoDisplayPanel section {
    display: grid;
    gap: 7px;
}

.echoDisplayPanel section > span {
    color: #9fe8d6;
    font-size: 11px;
    font-weight: 900;
    line-height: 1;
    text-transform: uppercase;
}

.echoDisplayPanel section > div {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 6px;
}

.echoDisplayPanel button {
    min-height: 30px;
    border: 1px solid rgba(91,255,209,.34);
    border-radius: 6px;
    background: rgba(9,31,32,.96);
    color: #edf7f4;
    font-size: 12px;
    font-weight: 900;
    line-height: 1;
    text-transform: uppercase;
}

.echoDisplayPanel button.active {
    border-color: #9fe8d6;
    background: #9fe8d6;
    color: #04110f;
}

html.echo-display-layout-mobile main,
html.echo-display-layout-mobile .container {
    max-width: 860px;
    margin-inline: auto;
    padding-inline: 10px;
}

html.echo-display-layout-desktop .container {
    max-width: 1500px;
}

html.echo-display-theme-contrast body {
    filter: contrast(1.06);
}

html.echo-display-theme-whiteblack {
    color-scheme: dark;
    background: #000;
    color: #fff;
}

html.echo-display-theme-blackwhite {
    color-scheme: light;
    background: #fff;
    color: #000;
}

html.echo-display-theme-whiteblack body,
html.echo-display-theme-whiteblack main,
html.echo-display-theme-whiteblack .container,
html.echo-display-theme-whiteblack .navbar,
html.echo-display-theme-whiteblack .footer,
html.echo-display-theme-whiteblack .card,
html.echo-display-theme-whiteblack .table,
html.echo-display-theme-whiteblack .form-control,
html.echo-display-theme-whiteblack .btn,
html.echo-display-theme-whiteblack .echoDisplayPanel,
html.echo-display-theme-whiteblack .echoDisplayGearButton,
html.echo-display-theme-whiteblack .echo-radial-core,
html.echo-display-theme-whiteblack .echo-radial-item {
    background: #000 !important;
    color: #fff !important;
    border-color: rgba(255, 255, 255, .72) !important;
    box-shadow: none !important;
}

html.echo-display-theme-blackwhite body,
html.echo-display-theme-blackwhite main,
html.echo-display-theme-blackwhite .container,
html.echo-display-theme-blackwhite .navbar,
html.echo-display-theme-blackwhite .footer,
html.echo-display-theme-blackwhite .card,
html.echo-display-theme-blackwhite .table,
html.echo-display-theme-blackwhite .form-control,
html.echo-display-theme-blackwhite .btn,
html.echo-display-theme-blackwhite .echoDisplayPanel,
html.echo-display-theme-blackwhite .echoDisplayGearButton,
html.echo-display-theme-blackwhite .echo-radial-core,
html.echo-display-theme-blackwhite .echo-radial-item {
    background: #fff !important;
    color: #000 !important;
    border-color: rgba(0, 0, 0, .72) !important;
    box-shadow: none !important;
}

html.echo-display-theme-whiteblack a,
html.echo-display-theme-whiteblack button,
html.echo-display-theme-blackwhite a,
html.echo-display-theme-blackwhite button {
    color: inherit;
}









