:root {
    --app-zoom: 1.1;
    --endor-navy: #06131e;
    --endor-navy-soft: #0a1b29;
    --endor-surface-dark: #102536;
    --endor-teal: #00b8b5;
    --endor-teal-strong: #008f92;
    --endor-cyan: #24d5e7;
    --endor-violet: #9a7cff;
    --endor-success: #35c978;
    --endor-warning: #f0b44d;
    --endor-error: #f06b6b;
    --ink: #102334;
    --muted: #607487;
    --muted-light: #8a9aaa;
    --bg: #f3f6fa;
    --surface: #ffffff;
    --line: #dfe7ed;
    --line-soft: #edf1f4;
    --radius-control: 10px;
    --radius-card: 16px;
    --shadow-card: 0 16px 45px rgba(6, 19, 30, 0.07);
    --sidebar-width: 252px;
}

* {
    box-sizing: border-box;
}

html {
    min-width: 320px;
    min-height: 100%;
    background: var(--bg);
    color: var(--ink);
    scroll-behavior: smooth;
}

body,
button,
input {
    font-family: Manrope, "Segoe UI", Arial, sans-serif;
}

body {
    min-height: 100vh;
    margin: 0;
    background:
        radial-gradient(circle at 92% 2%, rgba(36, 213, 231, 0.07), transparent 24rem),
        var(--bg);
    color: var(--ink);
    font-size: 14px;
    -webkit-font-smoothing: antialiased;
}

button,
input {
    font: inherit;
}

button,
a,
label {
    -webkit-tap-highlight-color: transparent;
}

button,
label {
    cursor: pointer;
}

a {
    color: var(--endor-teal-strong);
    text-decoration: none;
}

:focus-visible {
    outline: 2px solid var(--endor-cyan);
    outline-offset: 3px;
}

::selection {
    background: rgba(36, 213, 231, 0.22);
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.skip-link {
    position: fixed;
    top: 10px;
    left: 10px;
    z-index: 1000;
    padding: 10px 14px;
    border-radius: 8px;
    background: var(--endor-cyan);
    color: var(--endor-navy);
    font-weight: 800;
    transform: translateY(-150%);
}

.skip-link:focus {
    transform: translateY(0);
}

.app-frame {
    min-height: 100vh;
    zoom: var(--app-zoom);
}

.sidebar {
    position: fixed;
    inset: 0 auto 0 0;
    z-index: 40;
    display: flex;
    width: var(--sidebar-width);
    flex-direction: column;
    color: #d7e0e7;
    background:
        radial-gradient(circle at 0 0, rgba(0, 184, 181, 0.22), transparent 34%),
        linear-gradient(180deg, var(--endor-navy) 0%, #081b29 100%);
    box-shadow: 12px 0 45px rgba(6, 19, 30, 0.12);
}

.product-mark {
    display: flex;
    min-height: 82px;
    align-items: center;
    gap: 12px;
    padding: 18px 22px;
    color: #fff;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.product-symbol {
    width: 39px;
    height: 39px;
    overflow: visible;
    fill: none;
    stroke: var(--endor-cyan);
    stroke-width: 2.25;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.product-mark > span {
    display: flex;
    flex-direction: column;
    line-height: 1;
}

.endor-word {
    color: #fff;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.34em;
}

.product-word {
    margin-top: 5px;
    color: var(--endor-cyan);
    font-size: 18px;
    font-weight: 700;
    letter-spacing: 0.19em;
}

.workspace-switcher {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 18px 14px 10px;
    padding: 10px;
    border: 1px solid rgba(255, 255, 255, 0.09);
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.045);
}

.workspace-avatar,
.user-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 10px;
    font-size: 11px;
    font-weight: 800;
}

.workspace-avatar {
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    color: var(--endor-navy);
    background: var(--endor-cyan);
}

.workspace-copy {
    display: flex;
    min-width: 0;
    flex: 1;
    flex-direction: column;
}

.workspace-copy small {
    color: #7f94a4;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.workspace-copy strong {
    overflow: hidden;
    margin-top: 3px;
    color: #f5f8fa;
    font-size: 12px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.chevron {
    color: #7f94a4;
}

.primary-nav {
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: 3px;
    overflow-y: auto;
    padding: 12px 12px;
    scrollbar-color: rgba(120, 145, 162, 0.45) transparent;
    scrollbar-width: thin;
}

.nav-label {
    padding: 9px 11px 7px;
    color: #607788;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: 0.17em;
    text-transform: uppercase;
}

.nav-label-spaced {
    margin-top: 17px;
}

.nav-item {
    position: relative;
    display: flex;
    min-height: 42px;
    align-items: center;
    gap: 10px;
    margin: 2px 0;
    padding: 8px 11px;
    border-radius: 10px;
    color: #aebdca;
    font-size: 12px;
    font-weight: 600;
    transition: color 160ms ease, background 160ms ease, transform 160ms ease;
}

.nav-item:hover,
.nav-item:focus-visible {
    color: #fff;
    background: rgba(255, 255, 255, 0.06);
}

.nav-item.is-active {
    color: #fff;
    background: rgba(0, 184, 181, 0.17);
}

.nav-item.is-active::before {
    position: absolute;
    left: -12px;
    width: 3px;
    height: 24px;
    border-radius: 0 3px 3px 0;
    background: var(--endor-cyan);
    content: "";
}

.nav-icon {
    display: inline-flex;
    width: 25px;
    height: 25px;
    align-items: center;
    justify-content: center;
    color: #7891a2;
    font-size: 17px;
}

.is-active .nav-icon {
    color: var(--endor-cyan);
}

.nav-count {
    margin-left: auto;
    padding: 2px 6px;
    border-radius: 12px;
    color: #7891a2;
    background: rgba(255, 255, 255, 0.06);
    font-size: 9px;
}

.nav-group {
    margin: 1px 0;
}

.nav-group > summary {
    display: flex;
    min-height: 42px;
    align-items: center;
    gap: 10px;
    padding: 8px 11px;
    border-radius: 10px;
    color: #aebdca;
    font-size: 12px;
    font-weight: 650;
    list-style: none;
    cursor: pointer;
    transition: color 160ms ease, background 160ms ease;
}

.nav-group > summary::-webkit-details-marker {
    display: none;
}

.nav-group > summary:hover,
.nav-group > summary:focus-visible,
.nav-group[open] > summary {
    color: #fff;
    background: rgba(255, 255, 255, 0.055);
}

.nav-group[open] > summary .nav-icon {
    color: var(--endor-cyan);
}

.nav-group-chevron {
    margin-left: auto;
    color: #607788;
    font-size: 11px;
    transition: transform 160ms ease;
}

.nav-group[open] .nav-group-chevron {
    transform: rotate(180deg);
}

.nav-submenu {
    display: grid;
    gap: 2px;
    margin: 2px 0 6px 37px;
    padding-left: 9px;
    border-left: 1px solid rgba(255, 255, 255, 0.09);
}

.nav-submenu a,
.nav-submenu-logout {
    position: relative;
    display: flex;
    min-height: 31px;
    align-items: center;
    gap: 6px;
    padding: 6px 8px;
    border: 0;
    border-radius: 7px;
    color: #8fa2b0;
    background: transparent;
    font: inherit;
    font-size: 10px;
    font-weight: 650;
    text-align: left;
    transition: color 140ms ease, background 140ms ease;
}

.nav-submenu a:hover,
.nav-submenu a:focus-visible,
.nav-submenu a.is-active,
.nav-submenu-logout:hover,
.nav-submenu-logout:focus-visible {
    color: #fff;
    background: rgba(0, 184, 181, 0.12);
}

.nav-submenu a.is-active::before {
    position: absolute;
    left: -10px;
    width: 2px;
    height: 18px;
    border-radius: 2px;
    background: var(--endor-cyan);
    content: "";
}

.nav-submenu .nav-count {
    font-size: 8px;
}

.nav-submenu-action {
    color: #72b9ba !important;
}

.nav-submenu form {
    margin: 0;
}

.nav-submenu-logout {
    width: 100%;
    cursor: pointer;
}

.sidebar-footer {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 16px 20px 22px;
    border-top: 1px solid rgba(255, 255, 255, 0.07);
    color: #aebdca;
    font-size: 10px;
}

.sidebar-footer > span:last-child {
    display: flex;
    flex-direction: column;
}

.sidebar-footer strong {
    color: #dae3e9;
    font-size: 10px;
}

.sidebar-footer small {
    margin-top: 2px;
    color: #687f90;
}

.status-dot,
.live-dot {
    width: 7px;
    height: 7px;
    flex: 0 0 7px;
    border-radius: 50%;
    background: var(--endor-success);
    box-shadow: 0 0 0 4px rgba(53, 201, 120, 0.1);
}

.app-main {
    min-height: 100vh;
    margin-left: var(--sidebar-width);
}

.topbar {
    position: sticky;
    top: 0;
    z-index: 30;
    display: flex;
    height: 66px;
    align-items: center;
    gap: 18px;
    padding: 0 30px;
    border-bottom: 1px solid rgba(16, 35, 52, 0.09);
    background: rgba(255, 255, 255, 0.92);
    box-shadow: 0 7px 24px rgba(6, 19, 30, 0.035);
    backdrop-filter: blur(14px);
}

.global-search {
    display: flex;
    width: min(520px, 52vw);
    height: 39px;
    align-items: center;
    gap: 9px;
    padding: 0 11px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: #f8fafc;
    color: #8a9aaa;
}

.global-search input,
.graph-search input {
    min-width: 0;
    flex: 1;
    border: 0;
    outline: 0;
    background: transparent;
    color: var(--ink);
}

.global-search input::placeholder,
.graph-search input::placeholder {
    color: #8a9aaa;
}

kbd {
    padding: 3px 6px;
    border: 1px solid #dbe3e9;
    border-radius: 5px;
    color: #7c8f9f;
    background: #fff;
    box-shadow: 0 1px 1px rgba(6, 19, 30, 0.05);
    font-size: 9px;
}

.topbar-actions {
    display: flex;
    align-items: center;
    gap: 9px;
    margin-left: auto;
}

.environment-pill {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 7px 10px;
    border: 1px solid #dce9e8;
    border-radius: 999px;
    color: #57716f;
    background: #f3fbfa;
    font-size: 10px;
    font-weight: 700;
}

.environment-pill span {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--endor-teal);
}

.icon-button {
    display: inline-flex;
    width: 36px;
    height: 36px;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--line);
    border-radius: 10px;
    color: var(--muted);
    background: #fff;
    font-weight: 750;
}

.icon-button:hover {
    color: var(--endor-teal-strong);
    border-color: rgba(0, 184, 181, 0.35);
}

.menu-button {
    display: none;
}

.user-button {
    width: 36px;
    height: 36px;
    color: #fff;
    background: var(--endor-navy);
}

.main-content {
    width: 100%;
    padding: 34px 34px 48px;
}

.page-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 28px;
    margin-bottom: 27px;
}

.eyebrow,
.panel-kicker {
    margin: 0 0 8px;
    color: var(--endor-teal-strong);
    font-size: 9px;
    font-weight: 800;
    letter-spacing: 0.17em;
    text-transform: uppercase;
}

.page-heading h1 {
    max-width: 790px;
    margin: 0;
    color: var(--endor-navy);
    font-size: clamp(28px, 3.1vw, 43px);
    font-weight: 720;
    letter-spacing: -0.045em;
    line-height: 1.08;
}

.page-heading h1 span {
    color: var(--endor-teal-strong);
}

.page-lead {
    max-width: 720px;
    margin: 11px 0 0;
    color: var(--muted);
    font-size: 13px;
    line-height: 1.65;
}

.heading-actions {
    display: flex;
    gap: 9px;
    padding-bottom: 3px;
}

.button {
    display: inline-flex;
    min-height: 40px;
    align-items: center;
    justify-content: center;
    gap: 7px;
    padding: 9px 15px;
    border: 1px solid transparent;
    border-radius: var(--radius-control);
    font-size: 11px;
    font-weight: 750;
    transition: transform 160ms ease, box-shadow 160ms ease, background 160ms ease;
}

.button:hover {
    transform: translateY(-1px);
}

.button-primary {
    color: #031316;
    background: var(--endor-teal);
    box-shadow: 0 10px 24px rgba(0, 184, 181, 0.19);
}

.button-primary:hover {
    background: var(--endor-cyan);
}

.button-secondary {
    color: var(--ink);
    border-color: var(--line);
    background: #fff;
}

.button-danger {
    color: #9d3131;
    border-color: #efcaca;
    background: #fff7f7;
}

.metric-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 13px;
    margin-bottom: 15px;
}

.metric-card {
    display: grid;
    min-height: 91px;
    grid-template-columns: auto 1fr;
    grid-template-rows: 1fr auto;
    align-items: center;
    gap: 0 12px;
    padding: 15px 17px;
    border: 1px solid var(--line-soft);
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.95);
    box-shadow: 0 8px 25px rgba(6, 19, 30, 0.045);
}

.metric-icon {
    display: inline-flex;
    width: 42px;
    height: 42px;
    grid-row: 1 / 3;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    font-size: 21px;
    font-weight: 500;
}

.metric-icon-teal { color: var(--endor-teal-strong); background: rgba(0, 184, 181, 0.11); }
.metric-icon-cyan { color: #138da5; background: rgba(36, 213, 231, 0.12); }
.metric-icon-violet { color: #7559d9; background: rgba(154, 124, 255, 0.12); }
.metric-icon-amber { color: #b47a17; background: rgba(240, 180, 77, 0.14); }

.metric-card div {
    display: flex;
    align-items: baseline;
    gap: 7px;
}

.metric-card div strong {
    color: var(--endor-navy);
    font-size: 23px;
    letter-spacing: -0.04em;
}

.metric-card div span {
    color: #536879;
    font-size: 11px;
    font-weight: 700;
}

.metric-card small {
    color: #8a9aaa;
    font-size: 9px;
}

.metric-card .positive { color: #208d58; }
.metric-card .warning { color: #a87014; }

.dashboard-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 15px;
}

.panel {
    min-width: 0;
    overflow: hidden;
    border: 1px solid var(--line-soft);
    border-radius: var(--radius-card);
    background: #fff;
    box-shadow: var(--shadow-card);
}

.panel-heading,
.graph-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 18px 20px 14px;
    border-bottom: 1px solid var(--line-soft);
}

.panel-heading h2,
.graph-toolbar h2 {
    margin: 0;
    color: var(--endor-navy);
    font-size: 17px;
    font-weight: 720;
    letter-spacing: -0.025em;
}

.panel-heading a {
    font-size: 10px;
    font-weight: 750;
}

.format-pills {
    display: flex;
    gap: 4px;
}

.format-pills b {
    padding: 4px 6px;
    border: 1px solid var(--line);
    border-radius: 5px;
    color: #718594;
    background: #fafcfd;
    font-size: 8px;
    letter-spacing: 0.06em;
}

.source-panel,
.pipeline-panel {
    min-height: 335px;
}

.upload-zone {
    display: flex;
    min-height: 176px;
    align-items: center;
    flex-direction: column;
    justify-content: center;
    margin: 18px 20px 12px;
    padding: 20px;
    border: 1.5px dashed #b8cacd;
    border-radius: 13px;
    background:
        linear-gradient(135deg, rgba(0, 184, 181, 0.035), rgba(36, 213, 231, 0.02)),
        #fbfdfd;
    text-align: center;
    transition: border-color 160ms ease, background 160ms ease, transform 160ms ease;
}

.upload-zone:hover,
.upload-zone.is-dragging {
    border-color: var(--endor-teal);
    background: #f2fbfa;
    transform: translateY(-1px);
}

.upload-glyph {
    display: inline-flex;
    width: 42px;
    height: 42px;
    align-items: center;
    justify-content: center;
    margin-bottom: 10px;
    border-radius: 12px;
    color: var(--endor-teal-strong);
    background: rgba(0, 184, 181, 0.11);
    font-size: 22px;
}

.upload-zone strong {
    color: var(--ink);
    font-size: 12px;
}

.upload-zone > span:nth-of-type(2) {
    max-width: 480px;
    margin-top: 5px;
    color: #7b8d9b;
    font-size: 9px;
    line-height: 1.5;
}

.select-file {
    margin-top: 11px;
    color: var(--endor-teal-strong) !important;
    font-size: 10px !important;
    font-weight: 800;
}

.source-note {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 0 21px 16px;
}

.source-note > span {
    display: inline-flex;
    width: 23px;
    height: 23px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    color: #1b8050;
    background: rgba(53, 201, 120, 0.12);
    font-size: 10px;
}

.source-note p {
    margin: 0;
    color: #7b8d9b;
    font-size: 9px;
    line-height: 1.5;
}

.source-note strong {
    color: #435c6e;
}

.source-upload-fields {
    display: flex;
    align-items: end;
    gap: 12px;
    padding: 0 20px 14px;
}

.source-upload-fields label {
    display: flex;
    min-width: 0;
    flex: 1;
    flex-direction: column;
    gap: 5px;
    color: #526879;
    font-size: 9px;
    font-weight: 750;
}

.source-upload-fields label small {
    color: #8999a6;
    font-weight: 500;
}

.source-upload-fields input {
    min-height: 36px;
    margin: 0;
    padding: 8px 10px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    font-size: 10px;
}

.source-upload-fields .button {
    min-height: 36px;
    white-space: nowrap;
}

.source-upload-fields .button:disabled {
    cursor: not-allowed;
    opacity: 0.48;
    transform: none;
}

.dashboard-list-panel {
    min-height: 260px;
}

.dashboard-empty {
    display: flex;
    min-height: 190px;
    align-items: center;
    justify-content: center;
    gap: 13px;
    padding: 28px;
    text-align: left;
}

.dashboard-empty > span {
    display: inline-flex;
    width: 42px;
    height: 42px;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    color: var(--endor-teal-strong);
    background: rgba(0, 184, 181, 0.1);
    font-size: 19px;
}

.dashboard-empty strong {
    color: #40596a;
    font-size: 11px;
}

.dashboard-empty p {
    max-width: 460px;
    margin: 3px 0 0;
    color: #7b8d9b;
    font-size: 9px;
    line-height: 1.55;
}

.compact-empty {
    min-height: 210px;
}

.dashboard-table-wrap {
    overflow-x: auto;
    padding: 5px 20px 18px;
}

.dashboard-table {
    width: 100%;
    margin: 0;
    border-collapse: collapse;
}

.dashboard-table th,
.dashboard-table td {
    padding: 10px 8px;
    border-bottom: 1px solid var(--line-soft);
    color: #536879;
    font-size: 9px;
    text-align: left;
}

.dashboard-table th {
    color: #81919e;
    font-size: 8px;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.dashboard-table td:first-child strong,
.dashboard-table td:first-child small {
    display: block;
}

.dashboard-table td:first-child strong {
    color: #30495b;
    font-size: 10px;
}

.dashboard-table td:first-child small {
    max-width: 270px;
    overflow: hidden;
    margin-top: 2px;
    color: #8a9aaa;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.status-badge {
    display: inline-flex;
    padding: 4px 7px;
    border-radius: 999px;
    color: #187158;
    background: #e8f7f1;
    font-size: 8px;
    font-weight: 750;
}

.real-pipeline-list li:not(:last-child)::after {
    bottom: -6px;
}

.entity-summary-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin: 0;
    padding: 14px 20px 20px;
    list-style: none;
}

.entity-summary-list li {
    min-width: 0;
}

.entity-summary-list li > button {
    display: grid;
    width: 100%;
    grid-template-columns: 32px 1fr auto;
    align-items: center;
    gap: 9px;
    padding: 9px;
    border: 1px solid var(--line-soft);
    border-radius: 10px;
    background: #fff;
    font: inherit;
    text-align: left;
    cursor: pointer;
    transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.entity-summary-list li > button:hover,
.entity-summary-list li > button:focus-visible {
    border-color: rgba(0, 167, 165, 0.42);
    box-shadow: 0 7px 18px rgba(6, 38, 51, 0.08);
    transform: translateY(-1px);
}

.entity-summary-list li > button > span {
    display: inline-flex;
    width: 32px;
    height: 32px;
    align-items: center;
    justify-content: center;
    border-radius: 9px;
    color: var(--entity-color, var(--endor-teal-strong));
    background: color-mix(in srgb, var(--entity-color, var(--endor-teal)) 12%, white);
}

.entity-summary-list div,
.entity-summary-list strong,
.entity-summary-list small {
    display: block;
    min-width: 0;
}

.entity-summary-list strong {
    overflow: hidden;
    color: #30495b;
    font-size: 10px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.entity-summary-list small,
.entity-summary-list b {
    color: #8a9aaa;
    font-size: 8px;
}

.graph-empty-state {
    min-height: 250px;
}

.live-graph-tools {
    display: flex;
    align-items: center;
    gap: 8px;
}

.live-graph-tools label {
    display: block;
}

.live-graph-tools input {
    width: 220px;
    height: 34px;
    margin: 0;
    padding: 0 11px;
    border: 1px solid var(--line);
    border-radius: 9px;
    color: #40596a;
    background: #f8fafb;
    font-size: 10px;
}

.live-graph-search-results {
    position: absolute;
    z-index: 20;
    top: 110px;
    right: 20px;
    width: min(360px, calc(100% - 40px));
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 18px 45px rgba(7, 27, 42, 0.16);
}

.live-graph-search-results button {
    display: flex;
    width: 100%;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 10px 12px;
    border: 0;
    border-bottom: 1px solid var(--line-soft);
    color: #40596a;
    background: #fff;
    font: inherit;
    text-align: left;
    cursor: pointer;
}

.live-graph-search-results button:last-child {
    border-bottom: 0;
}

.live-graph-search-results button:hover,
.live-graph-search-results button:focus-visible {
    background: #f2fbfa;
}

.live-graph-search-results strong {
    overflow: hidden;
    font-size: 10px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.live-graph-search-results small {
    color: #8294a2;
    font-size: 8px;
    white-space: nowrap;
}

.live-graph-panel {
    position: relative;
}

.graph-view-tabs {
    display: flex;
    gap: 5px;
    padding: 8px 20px;
    border-bottom: 1px solid var(--line-soft);
    background: #fbfcfd;
}

.graph-view-tabs button {
    min-height: 31px;
    padding: 6px 11px;
    border: 1px solid transparent;
    border-radius: 8px;
    color: #718594;
    background: transparent;
    font-size: 9px;
    font-weight: 750;
    cursor: pointer;
}

.graph-view-tabs button:hover,
.graph-view-tabs button:focus-visible,
.graph-view-tabs button.is-active {
    color: var(--endor-navy);
    border-color: #cfe4e3;
    background: #eef9f8;
}

.live-graph-layout {
    display: grid;
    min-height: 500px;
    grid-template-columns: minmax(0, 1fr) 270px;
}

.live-graph-main {
    min-width: 0;
}

.live-graph-canvas {
    position: relative;
    min-width: 0;
    min-height: 500px;
    overflow: hidden;
    background:
        radial-gradient(circle at center, rgba(0, 184, 181, 0.04), transparent 42%),
        #f8fafc;
}

#workspace-graph-svg {
    display: block;
    width: 100%;
    height: 500px;
}

#workspace-path-svg,
#workspace-community-svg {
    display: block;
    width: 100%;
    border: 1px solid var(--line-soft);
    border-radius: 11px;
    background: radial-gradient(circle at center, rgba(0, 184, 181, 0.035), transparent 50%), #f8fafc;
}

.live-graph-canvas .graph-empty-state {
    position: absolute;
    inset: 0;
}

.live-graph-status {
    position: absolute;
    bottom: 10px;
    left: 12px;
    margin: 0;
    padding: 5px 8px;
    border-radius: 7px;
    color: #718594;
    background: rgba(255, 255, 255, 0.9);
    font-size: 8px;
}

.live-graph-status:empty {
    display: none;
}

.live-graph-status[data-kind="error"] {
    color: #9e3333;
    background: rgba(255, 245, 245, 0.94);
}

.live-node {
    color: var(--node-color);
    cursor: pointer;
}

.live-node circle {
    fill: #fff;
    stroke: currentColor;
    stroke-width: 2.5;
    filter: drop-shadow(0 5px 7px rgba(11, 34, 50, 0.12));
}

.live-node:hover circle,
.live-node:focus-visible circle,
.live-node.is-root circle {
    fill: color-mix(in srgb, var(--node-color) 10%, white);
    stroke-width: 3.5;
}

.live-node:focus {
    outline: none;
}

.live-node-symbol {
    fill: currentColor;
    font-size: 11px;
    font-weight: 800;
    pointer-events: none;
}

.live-node-label,
.live-edge-label {
    fill: #536879;
    font-size: 8px;
    font-weight: 700;
    paint-order: stroke;
    pointer-events: none;
    stroke: #f8fafc;
    stroke-linejoin: round;
    stroke-width: 5px;
}

.live-edge {
    cursor: pointer;
}

.live-edge:focus {
    outline: none;
}

.live-edge:hover line:not(.live-edge-hit),
.live-edge:focus-visible line:not(.live-edge-hit) {
    stroke-width: 4;
    stroke-opacity: 1;
}

.live-edge-label {
    fill: #718594;
    font-size: 7px;
    font-weight: 600;
}

.live-graph-inspector {
    max-height: 760px;
    overflow-y: auto;
    padding: 20px;
    border-left: 1px solid var(--line-soft);
    background: #fff;
}

.live-graph-inspector > span,
.live-graph-inspector > small {
    color: #8093a1;
    font-size: 8px;
    font-weight: 750;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.live-graph-inspector h3 {
    margin: 6px 0 3px;
    overflow-wrap: anywhere;
    color: var(--endor-navy);
    font-size: 17px;
}

.live-graph-inspector dl {
    display: grid;
    gap: 7px;
    margin: 18px 0;
}

.live-graph-inspector dl div {
    min-width: 0;
    padding-bottom: 7px;
    border-bottom: 1px solid var(--line-soft);
}

.live-graph-inspector dt {
    color: #8495a3;
    font-size: 8px;
    font-weight: 700;
}

.live-graph-inspector dd {
    margin: 2px 0 0;
    overflow-wrap: anywhere;
    color: #435c6e;
    font-size: 9px;
}

.live-graph-inspector .button {
    width: 100%;
}

.live-inspector-actions {
    display: grid;
    gap: 7px;
}

.live-evidence-section {
    margin-top: 20px;
    padding-top: 17px;
    border-top: 1px solid var(--line-soft);
}

.live-evidence-section > header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 9px;
}

.live-evidence-section > header span {
    color: var(--endor-navy);
    font-size: 9px;
    font-weight: 800;
    text-transform: uppercase;
}

.live-evidence-section > header small,
.live-evidence-card > small {
    color: #8294a2;
    font-size: 7px;
}

.live-evidence-card {
    margin-bottom: 9px;
    padding: 10px;
    border: 1px solid #dcebea;
    border-radius: 10px;
    background: #f6fbfb;
}

.live-evidence-card header {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 2px;
}

.live-evidence-card header a {
    overflow: hidden;
    color: var(--endor-teal-strong);
    font-size: 9px;
    font-weight: 800;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.live-evidence-card header small,
.live-evidence-card > p {
    margin: 0;
    color: #8294a2;
    font-size: 7px;
}

.live-evidence-card > p {
    margin-top: 5px;
}

.live-evidence-card dl {
    display: grid;
    gap: 0;
    margin: 8px 0;
}

.live-evidence-card dl div {
    padding: 5px 0;
    border-top: 1px solid rgba(207, 228, 227, 0.7);
}

.live-evidence-card dt {
    color: #8193a1;
    font-size: 7px;
}

.live-evidence-card dd {
    margin: 2px 0 0;
    overflow-wrap: anywhere;
    color: #385363;
    font-size: 8px;
}

.graph-analysis-panel {
    min-height: 500px;
    padding: 18px;
    background: #fff;
}

.graph-analysis-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 16px;
}

.graph-analysis-heading span,
.graph-path-controls label > span {
    color: var(--endor-teal-strong);
    font-size: 7px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.graph-analysis-heading h3 {
    margin: 3px 0 2px;
    color: var(--endor-navy);
    font-size: 16px;
}

.graph-analysis-heading p {
    margin: 0;
    color: #8294a2;
    font-size: 8px;
}

.graph-analysis-controls {
    display: flex;
    align-items: center;
    gap: 7px;
}

.graph-analysis-controls label {
    display: flex;
    align-items: center;
    gap: 5px;
    color: #607483;
    font-size: 8px;
    white-space: nowrap;
}

.graph-analysis-controls select,
.graph-path-controls input,
.graph-path-controls select,
.graph-path-controls output {
    min-height: 34px;
    margin: 0;
    padding: 6px 9px;
    border: 1px solid var(--line);
    border-radius: 8px;
    color: #40596a;
    background: #f9fbfc;
    font-size: 9px;
}

.graph-relationship-table-wrap {
    overflow-x: auto;
    border: 1px solid var(--line-soft);
    border-radius: 10px;
}

.graph-relationship-table tbody tr {
    cursor: pointer;
}

.graph-relationship-table tbody tr:hover,
.graph-relationship-table tbody tr:focus-visible {
    outline: 0;
    background: #f1faf9;
}

.graph-analysis-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-top: 12px;
}

.graph-analysis-footer p,
.graph-analysis-status {
    margin: 0;
    color: #718594;
    font-size: 8px;
}

.graph-path-controls {
    display: grid;
    grid-template-columns: minmax(130px, 0.8fr) minmax(220px, 1.4fr) 105px 135px auto;
    align-items: end;
    gap: 9px;
    margin-bottom: 16px;
}

.graph-path-controls label {
    position: relative;
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 5px;
}

.graph-path-controls output {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.graph-target-results {
    position: absolute;
    z-index: 25;
    top: 57px;
    right: 0;
    left: 0;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 9px;
    background: #fff;
    box-shadow: 0 15px 35px rgba(7, 27, 42, 0.16);
}

.graph-target-results button {
    display: flex;
    width: 100%;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 8px 10px;
    border: 0;
    border-bottom: 1px solid var(--line-soft);
    color: #40596a;
    background: #fff;
    font-size: 8px;
    text-align: left;
    cursor: pointer;
}

.graph-target-results button:hover,
.graph-target-results button:focus-visible {
    background: #f1faf9;
}

.graph-path-workspace {
    display: grid;
    grid-template-columns: minmax(180px, 0.35fr) minmax(0, 1fr);
    gap: 12px;
}

.graph-path-results {
    display: grid;
    gap: 6px;
    margin-bottom: 10px;
}

.graph-path-results button {
    display: flex;
    width: 100%;
    min-width: 0;
    flex-direction: column;
    gap: 3px;
    padding: 9px;
    border: 1px solid var(--line-soft);
    border-radius: 8px;
    color: #40596a;
    background: #fff;
    text-align: left;
    cursor: pointer;
}

.graph-path-results button:hover,
.graph-path-results button.is-active {
    border-color: #a9d9d6;
    background: #f1faf9;
}

.graph-path-results strong {
    font-size: 8px;
}

.graph-path-results small {
    overflow: hidden;
    color: #8193a1;
    font-size: 7px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.graph-community-report {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin-top: 14px;
}

.graph-community-report > section {
    padding: 12px;
    border: 1px solid var(--line-soft);
    border-radius: 10px;
}

.graph-community-report h4 {
    margin: 0 0 9px;
    color: var(--endor-navy);
    font-size: 10px;
}

#graph-community-list {
    display: grid;
    gap: 6px;
}

#graph-community-list article {
    padding: 8px 9px;
    border-left: 4px solid var(--community-color);
    border-radius: 6px;
    background: #f8fafb;
}

#graph-community-list strong,
#graph-community-list small {
    display: block;
    color: #40596a;
    font-size: 8px;
}

#graph-community-list small,
#graph-community-list p {
    color: #8193a1;
    font-size: 7px;
}

#graph-community-list p {
    margin: 4px 0 0;
}

#graph-centrality-list {
    display: grid;
    gap: 5px;
    margin: 0;
    padding: 0;
    list-style: none;
}

#graph-centrality-list li {
    display: flex;
    justify-content: space-between;
    gap: 8px;
    padding: 6px 0;
    border-bottom: 1px solid var(--line-soft);
    color: #536879;
    font-size: 8px;
}

.help-heading {
    align-items: flex-end;
}

.help-start {
    display: grid;
    grid-template-columns: minmax(220px, 0.35fr) minmax(0, 1fr);
    align-items: center;
    gap: 28px;
    margin-bottom: 14px;
    padding: 22px;
}

.help-start h2,
.help-finish h2 {
    margin: 3px 0 5px;
    color: var(--endor-navy);
    font-size: 19px;
}

.help-start p,
.help-finish p {
    margin: 0;
    color: var(--muted);
    font-size: 10px;
    line-height: 1.6;
}

.help-flow {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 6px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.help-flow li {
    position: relative;
    display: flex;
    min-width: 0;
    flex-direction: column;
    align-items: center;
    padding: 11px 7px;
    border: 1px solid var(--line-soft);
    border-radius: 10px;
    background: #f9fbfc;
    text-align: center;
}

.help-flow li:not(:last-child)::after {
    position: absolute;
    z-index: 2;
    top: 25px;
    right: -9px;
    width: 12px;
    color: #9bb0bc;
    background: #fff;
    content: "→";
    font-size: 9px;
}

.help-flow li > span {
    display: inline-flex;
    width: 27px;
    height: 27px;
    align-items: center;
    justify-content: center;
    margin-bottom: 6px;
    border-radius: 50%;
    color: #062229;
    background: var(--endor-cyan);
    font-size: 9px;
    font-weight: 850;
}

.help-flow strong {
    color: #40596a;
    font-size: 8px;
}

.help-flow small {
    margin-top: 2px;
    color: #8294a2;
    font-size: 7px;
}

.help-index {
    position: sticky;
    z-index: 15;
    top: 74px;
    display: flex;
    overflow-x: auto;
    align-items: center;
    gap: 6px;
    margin-bottom: 14px;
    padding: 9px 12px;
    white-space: nowrap;
}

.help-index strong {
    padding: 6px 8px;
    color: var(--endor-navy);
    font-size: 8px;
}

.help-index a {
    padding: 6px 8px;
    border: 1px solid var(--line-soft);
    border-radius: 7px;
    color: #607483;
    background: #fbfcfd;
    font-size: 8px;
    font-weight: 700;
}

.help-index a:hover,
.help-index a:focus-visible {
    color: var(--endor-teal-strong);
    border-color: #b9ddda;
    background: #f0faf9;
}

.help-guide {
    display: grid;
    gap: 14px;
}

.help-step {
    position: relative;
    display: grid;
    min-height: 420px;
    grid-template-columns: minmax(0, 1.05fr) minmax(360px, 0.95fr);
    overflow: hidden;
    scroll-margin-top: 140px;
}

.help-step-copy {
    position: relative;
    z-index: 2;
    padding: 31px 34px;
}

.help-step-number {
    position: absolute;
    top: 20px;
    right: 22px;
    color: rgba(0, 143, 146, 0.08);
    font-size: 72px;
    font-weight: 900;
    line-height: 1;
}

.help-step h2 {
    max-width: 580px;
    margin: 4px 0 10px;
    color: var(--endor-navy);
    font-size: clamp(20px, 2.2vw, 28px);
    letter-spacing: -0.035em;
}

.help-step h3 {
    margin: 15px 0 4px;
    color: #30495b;
    font-size: 11px;
}

.help-step-copy > p:not(.panel-kicker) {
    max-width: 650px;
    margin: 0 0 12px;
    color: var(--muted);
    font-size: 10px;
    line-height: 1.7;
}

.help-checklist,
.help-actions {
    display: grid;
    gap: 8px;
    margin: 15px 0;
    padding: 0;
    list-style: none;
}

.help-checklist li,
.help-actions li {
    position: relative;
    padding-left: 24px;
    color: #536879;
    font-size: 9px;
    line-height: 1.55;
}

.help-checklist li::before,
.help-actions li::before {
    position: absolute;
    top: 0;
    left: 0;
    display: inline-flex;
    width: 16px;
    height: 16px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    color: var(--endor-teal-strong);
    background: rgba(0, 184, 181, 0.11);
    content: "✓";
    font-size: 7px;
    font-weight: 900;
}

.help-actions {
    counter-reset: help-actions;
}

.help-actions li {
    counter-increment: help-actions;
}

.help-actions li::before {
    color: #fff;
    background: var(--endor-teal-strong);
    content: counter(help-actions);
}

.help-warning {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 9px;
    margin-top: 16px;
    padding: 10px 12px;
    border-left: 3px solid var(--endor-warning);
    border-radius: 7px;
    color: #7b622e;
    background: #fff9ed;
    font-size: 8px;
    line-height: 1.55;
}

.help-warning strong {
    white-space: nowrap;
}

.help-inline-link {
    display: inline-flex;
    margin-top: 5px;
    color: var(--endor-teal-strong);
    font-size: 9px;
    font-weight: 800;
}

.help-inline-link::after {
    margin-left: 5px;
    content: "→";
}

.help-mode-list {
    display: grid;
    gap: 7px;
    margin: 15px 0;
}

.help-mode-list div {
    display: grid;
    grid-template-columns: 120px 1fr;
    gap: 10px;
    padding: 9px 10px;
    border: 1px solid var(--line-soft);
    border-radius: 8px;
    background: #fbfcfd;
}

.help-mode-list dt {
    color: var(--endor-teal-strong);
    font-size: 9px;
    font-weight: 800;
}

.help-mode-list dd {
    margin: 0;
    color: #607483;
    font-size: 8px;
    line-height: 1.5;
}

.help-status-list {
    display: grid;
    gap: 6px;
    margin: 15px 0;
    padding: 0;
    list-style: none;
}

.help-status-list li {
    display: grid;
    grid-template-columns: 100px 1fr;
    gap: 10px;
    padding: 8px 10px;
    border-left: 3px solid #b9d8d6;
    border-radius: 6px;
    background: #f8fbfc;
    color: #607483;
    font-size: 8px;
}

.help-status-list b {
    color: #40596a;
}

.help-illustration {
    position: relative;
    display: flex;
    min-width: 0;
    min-height: 420px;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    padding: 34px;
    border-left: 1px solid var(--line-soft);
    background:
        radial-gradient(circle at 70% 20%, rgba(36, 213, 231, 0.12), transparent 17rem),
        linear-gradient(135deg, #f7fbfc, #edf4f7);
}

.help-illustration::before {
    position: absolute;
    inset: 0;
    opacity: 0.35;
    background-image: radial-gradient(#a9bbc5 0.7px, transparent 0.7px);
    background-size: 18px 18px;
    content: "";
}

.help-mini-window,
.help-drop-zone,
.help-secure-box,
.help-profile-visual > *,
.help-map-node,
.help-document,
.help-rif-form,
.help-edge-card,
.help-source-record {
    position: relative;
    z-index: 2;
    border: 1px solid rgba(201, 216, 224, 0.95);
    background: rgba(255, 255, 255, 0.96);
    box-shadow: 0 18px 45px rgba(7, 35, 49, 0.1);
}

.help-classification-visual {
    gap: 22px;
}

.help-mini-window {
    display: grid;
    width: min(290px, 72%);
    gap: 6px;
    padding: 18px;
    border-radius: 13px;
}

.help-mini-title {
    color: #8193a1;
    font-size: 7px;
    font-weight: 750;
}

.help-mini-window b {
    margin-bottom: 6px;
    padding: 9px;
    border: 1px solid var(--line);
    border-radius: 8px;
    color: #40596a;
    font-size: 8px;
}

.help-mini-window b.is-selected {
    border-color: #91d3cf;
    background: #f0faf9;
}

.help-mini-window i {
    color: #a46f16;
    font-size: 7px;
}

.help-file-stack {
    position: relative;
    z-index: 2;
    display: grid;
    gap: 8px;
}

.help-file-stack span {
    display: inline-flex;
    width: 56px;
    height: 66px;
    align-items: flex-end;
    justify-content: center;
    padding: 9px;
    border-radius: 5px 13px 5px 5px;
    color: var(--endor-teal-strong);
    background: #fff;
    box-shadow: 0 10px 25px rgba(7, 35, 49, 0.1);
    font-size: 8px;
    font-weight: 850;
}

.help-upload-help-visual,
.help-rif-visual {
    gap: 16px;
}

.help-drop-zone {
    display: flex;
    width: 240px;
    min-height: 180px;
    align-items: center;
    flex-direction: column;
    justify-content: center;
    padding: 25px;
    border: 2px dashed #9bc8c6;
    border-radius: 15px;
    text-align: center;
}

.help-drop-zone > span {
    display: inline-flex;
    width: 43px;
    height: 43px;
    align-items: center;
    justify-content: center;
    margin-bottom: 10px;
    border-radius: 12px;
    color: var(--endor-teal-strong);
    background: #e7f8f7;
    font-size: 21px;
}

.help-drop-zone strong,
.help-secure-box strong {
    color: #40596a;
    font-size: 10px;
}

.help-drop-zone small,
.help-secure-box small {
    margin-top: 4px;
    color: #8193a1;
    font-size: 7px;
}

.help-visual-arrow {
    position: relative;
    z-index: 3;
    color: var(--endor-teal-strong);
    font-size: 24px;
}

.help-secure-box {
    display: flex;
    width: 145px;
    min-height: 120px;
    align-items: center;
    flex-direction: column;
    justify-content: center;
    padding: 15px;
    border-radius: 13px;
    text-align: center;
}

.help-secure-box > span {
    display: inline-flex;
    width: 34px;
    height: 34px;
    align-items: center;
    justify-content: center;
    margin-bottom: 7px;
    border-radius: 50%;
    color: #fff;
    background: var(--endor-success);
}

.help-profile-visual {
    align-content: center;
    flex-direction: column;
}

.help-sheet-tabs {
    display: flex;
    z-index: 3;
    width: min(430px, 100%);
    justify-content: space-between;
    padding: 11px 14px;
    border-radius: 12px 12px 0 0;
    color: #536879;
    font-size: 8px;
}

.help-sheet-tabs b {
    color: var(--endor-teal-strong);
}

.help-sheet-grid {
    display: grid;
    z-index: 2;
    width: min(430px, 100%);
    grid-template-columns: repeat(3, 1fr);
    border-top: 0;
    border-radius: 0 0 12px 12px;
}

.help-sheet-grid > * {
    overflow: hidden;
    padding: 11px;
    border-right: 1px solid var(--line-soft);
    border-bottom: 1px solid var(--line-soft);
    color: #607483;
    font-size: 8px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.help-sheet-grid b {
    color: #30495b;
    background: #f6f9fb;
}

.help-profile-check {
    z-index: 4;
    margin-top: 14px;
    padding: 8px 11px;
    border-color: #b9e4ca;
    border-radius: 9px;
    color: #24764d;
    background: #effaf3;
    font-size: 8px;
    font-weight: 800;
}

.help-mapping-visual {
    gap: 10px;
}

.help-map-node {
    display: flex;
    z-index: 3;
    width: 120px;
    min-height: 120px;
    align-items: center;
    flex-direction: column;
    justify-content: center;
    border: 3px solid var(--endor-teal);
    border-radius: 50%;
    text-align: center;
}

.help-map-node.is-target {
    border-color: var(--endor-violet);
}

.help-map-node span,
.help-map-node small {
    color: #8193a1;
    font-size: 7px;
}

.help-map-node strong {
    margin: 4px 0;
    color: #30495b;
    font-size: 10px;
}

.help-map-edge {
    position: relative;
    z-index: 3;
    display: flex;
    min-width: 135px;
    flex-direction: column;
    align-items: center;
    color: #718594;
}

.help-map-edge b {
    color: #40596a;
    font-size: 8px;
}

.help-map-edge span {
    color: var(--endor-teal-strong);
    font-size: 15px;
}

.help-map-edge small {
    font-size: 7px;
}

.help-evidence-chip {
    position: absolute;
    z-index: 4;
    right: 50%;
    bottom: 75px;
    padding: 7px 10px;
    border: 1px solid #b9ddda;
    border-radius: 20px;
    color: var(--endor-teal-strong);
    background: #fff;
    font-size: 7px;
    font-weight: 800;
    transform: translateX(50%);
}

.help-document {
    display: flex;
    width: 135px;
    height: 175px;
    align-items: center;
    flex-direction: column;
    justify-content: center;
    border-radius: 6px 22px 6px 6px;
}

.help-document b {
    color: #cf5151;
    font-size: 25px;
}

.help-document span,
.help-document i {
    margin-top: 8px;
    color: #8193a1;
    font-size: 8px;
}

.help-rif-form {
    display: grid;
    width: 185px;
    gap: 5px;
    padding: 15px;
    border-radius: 12px;
}

.help-rif-form span {
    color: #8193a1;
    font-size: 7px;
}

.help-rif-form b {
    padding: 7px;
    border: 1px solid var(--line);
    border-radius: 7px;
    color: #40596a;
    font-size: 8px;
}

.help-rif-form em {
    margin-top: 6px;
    color: #a56b14;
    font-size: 7px;
}

.help-queue-visual {
    flex-direction: column;
}

.help-queue-row {
    position: relative;
    z-index: 2;
    display: grid;
    width: min(330px, 90%);
    grid-template-columns: 34px 1fr auto;
    align-items: center;
    gap: 10px;
    padding: 11px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 12px 28px rgba(7, 35, 49, 0.08);
}

.help-queue-row > span {
    display: inline-flex;
    width: 30px;
    height: 30px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    color: #8193a1;
    background: #eef3f5;
    font-size: 9px;
}

.help-queue-row strong {
    color: #40596a;
    font-size: 9px;
}

.help-queue-row i {
    color: #8193a1;
    font-size: 7px;
}

.help-queue-row.is-done > span {
    color: #fff;
    background: var(--endor-success);
}

.help-queue-row.is-running {
    border-color: #8ed9d5;
}

.help-queue-row.is-running > span {
    color: var(--endor-teal-strong);
    background: #e7f8f7;
}

.help-queue-line {
    position: relative;
    z-index: 1;
    width: 2px;
    height: 28px;
    background: #b7cccf;
}

.help-graph-visual {
    flex-direction: column;
    padding: 25px;
}

.help-graph-search {
    position: relative;
    z-index: 3;
    align-self: flex-start;
    min-width: 180px;
    margin-left: 8%;
    padding: 9px 11px;
    border: 1px solid var(--line);
    border-radius: 9px;
    color: #607483;
    background: #fff;
    box-shadow: 0 10px 25px rgba(7, 35, 49, 0.08);
    font-size: 8px;
}

.help-graph-visual svg {
    position: relative;
    z-index: 2;
    width: min(440px, 100%);
}

.help-graph-visual line {
    stroke: #9caeb8;
    stroke-width: 2;
}

.help-graph-visual line.is-selected {
    stroke: var(--endor-teal);
    stroke-width: 5;
}

.help-graph-visual circle {
    fill: #fff;
    stroke: var(--endor-teal-strong);
    stroke-width: 3;
    filter: drop-shadow(0 6px 5px rgba(7, 35, 49, 0.12));
}

.help-graph-visual text {
    fill: #40596a;
    font-size: 10px;
    font-weight: 850;
    text-anchor: middle;
}

.help-graph-visual text.help-edge-text {
    fill: var(--endor-teal-strong);
    font-size: 7px;
}

.help-graph-tabs {
    position: relative;
    z-index: 3;
    display: flex;
    gap: 5px;
    padding: 6px;
    border: 1px solid var(--line);
    border-radius: 9px;
    background: #fff;
    font-size: 7px;
}

.help-graph-tabs > * {
    padding: 6px 8px;
    color: #718594;
}

.help-graph-tabs b {
    border-radius: 6px;
    color: var(--endor-teal-strong);
    background: #eaf9f8;
}

.help-evidence-visual {
    flex-direction: column;
}

.help-edge-card {
    display: flex;
    z-index: 3;
    width: min(330px, 95%);
    flex-direction: column;
    padding: 13px;
    border-left: 4px solid var(--endor-teal);
    border-radius: 10px;
}

.help-edge-card span,
.help-edge-card small {
    color: #8193a1;
    font-size: 7px;
}

.help-edge-card strong {
    margin: 4px 0;
    color: #30495b;
    font-size: 10px;
}

.help-evidence-line {
    position: relative;
    z-index: 2;
    width: 2px;
    height: 32px;
    background: var(--endor-teal);
}

.help-source-record {
    z-index: 3;
    width: min(360px, 100%);
    padding: 14px;
    border-radius: 11px;
}

.help-source-record header {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    padding-bottom: 9px;
    border-bottom: 1px solid var(--line-soft);
}

.help-source-record header b {
    color: var(--endor-teal-strong);
    font-size: 8px;
}

.help-source-record header span {
    color: #8193a1;
    font-size: 7px;
}

.help-source-record dl {
    display: grid;
    gap: 5px;
    margin: 10px 0 0;
}

.help-source-record dl div {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    color: #536879;
    font-size: 8px;
}

.help-source-record dd {
    margin: 0;
    font-weight: 750;
}

.help-finish {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
    margin-top: 14px;
    padding: 25px 30px;
    border-color: rgba(0, 184, 181, 0.25);
    background: linear-gradient(120deg, #fff, #effafa);
}

.source-detail-metrics {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 15px;
}

.source-detail-metrics article {
    min-width: 0;
    padding: 14px 16px;
    border: 1px solid var(--line-soft);
    border-radius: 12px;
    background: #fff;
    box-shadow: var(--shadow-card);
}

.source-detail-metrics small,
.source-detail-metrics strong {
    display: block;
}

.source-detail-metrics small {
    margin-bottom: 4px;
    color: #8797a4;
    font-size: 8px;
    text-transform: uppercase;
}

.source-detail-metrics strong {
    overflow: hidden;
    color: #30495b;
    font-size: 11px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.source-detail-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(340px, 0.65fr);
    align-items: start;
    gap: 15px;
}

.sheet-profile + .sheet-profile {
    border-top: 1px solid var(--line-soft);
}

.sheet-profile > header {
    padding: 14px 20px 5px;
}

.sheet-profile > header strong,
.sheet-profile > header small {
    display: block;
}

.sheet-profile > header strong {
    color: #30495b;
    font-size: 11px;
}

.sheet-profile > header small {
    margin-top: 2px;
    color: #8999a6;
    font-size: 8px;
}

.source-sample-wrap {
    max-height: 310px;
}

.source-sample-table {
    min-width: 620px;
}

.source-sample-table th small {
    display: block;
    margin-top: 2px;
    color: #9aa8b2;
    font-size: 7px;
    font-weight: 500;
    text-transform: none;
}

.source-sample-table td {
    max-width: 220px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.mapping-form {
    display: flex;
    flex-direction: column;
    gap: 13px;
    padding: 18px 20px 22px;
}

.mapping-form fieldset {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    margin: 0;
    padding: 12px;
    border: 1px solid var(--line-soft);
    border-radius: 10px;
}

.mapping-form legend {
    padding: 0 5px;
    color: #526879;
    font-size: 9px;
    font-weight: 800;
}

.mapping-form .form-field {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 5px;
}

.mapping-form .form-field > span {
    color: #607483;
    font-size: 8px;
    font-weight: 750;
}

.mapping-form select {
    width: 100%;
    min-height: 36px;
    margin: 0;
    padding: 7px 9px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    font-size: 9px;
}

.mapping-form .button {
    align-self: flex-start;
}

.mapping-warning {
    padding: 11px 12px;
    border-left: 3px solid #e6aa3e;
    border-radius: 7px;
    background: #fff8e9;
}

.mapping-warning strong {
    color: #7b591e;
    font-size: 9px;
}

.mapping-warning p {
    margin: 3px 0 0;
    color: #8b7144;
    font-size: 8px;
    line-height: 1.5;
}

.mapping-complete {
    padding: 28px 20px;
    text-align: center;
}

.mapping-complete > span {
    display: inline-flex;
    width: 48px;
    height: 48px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    color: #fff;
    background: #2b9b68;
    font-size: 20px;
}

.mapping-complete h3 {
    margin: 11px 0 3px;
    color: #30495b;
    font-size: 15px;
}

.mapping-complete > p {
    margin: 0;
    color: #7b8d9b;
    font-size: 9px;
}

.mapping-complete > .form-field {
    max-width: 430px;
    margin: 18px auto;
    text-align: left;
}

.mapping-complete progress {
    width: 100%;
    height: 12px;
    accent-color: var(--endor-teal-strong);
}

.mapping-complete > .heading-actions {
    justify-content: center;
    margin-top: 18px;
}

.mapping-complete dl {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 8px;
    margin: 18px 0;
}

.mapping-complete dl div {
    padding: 10px;
    border: 1px solid var(--line-soft);
    border-radius: 9px;
}

.mapping-complete dt {
    color: #8797a4;
    font-size: 8px;
}

.mapping-complete dd {
    margin: 3px 0 0;
    color: #30495b;
    font-size: 15px;
    font-weight: 800;
}

.pipeline-list {
    display: flex;
    flex-direction: column;
    gap: 0;
    margin: 0;
    padding: 10px 20px 7px;
    list-style: none;
}

.pipeline-list li {
    position: relative;
    display: grid;
    min-height: 49px;
    grid-template-columns: 29px 1fr auto;
    align-items: center;
    gap: 10px;
}

.pipeline-list li:not(:last-child)::after {
    position: absolute;
    top: 37px;
    bottom: -12px;
    left: 14px;
    width: 1px;
    background: #dce5ea;
    content: "";
}

.pipeline-list li > span {
    z-index: 1;
    display: inline-flex;
    width: 29px;
    height: 29px;
    align-items: center;
    justify-content: center;
    border: 1px solid #dce5ea;
    border-radius: 9px;
    color: #8a9aaa;
    background: #f8fafb;
    font-size: 9px;
    font-weight: 800;
}

.pipeline-list .is-done > span {
    color: #fff;
    border-color: var(--endor-teal-strong);
    background: var(--endor-teal-strong);
}

.pipeline-list .is-running > span {
    color: var(--endor-teal-strong);
    border-color: var(--endor-teal);
    background: rgba(0, 184, 181, 0.09);
    box-shadow: 0 0 0 4px rgba(0, 184, 181, 0.07);
}

.pipeline-list div {
    display: flex;
    min-width: 0;
    flex-direction: column;
}

.pipeline-list strong {
    color: #30495b;
    font-size: 10px;
}

.pipeline-list small {
    margin-top: 2px;
    color: #8a9aaa;
    font-size: 8px;
}

.pipeline-list li > b {
    color: #91a0ac;
    font-size: 8px;
    font-weight: 700;
}

.pipeline-list .is-done > b { color: #31835a; }
.pipeline-list .is-running > b { color: var(--endor-teal-strong); }

.pipeline-progress {
    height: 4px;
    margin: 2px 20px 8px;
    overflow: hidden;
    border-radius: 4px;
    background: #e9eef2;
}

.pipeline-progress span {
    display: block;
    height: 100%;
    border-radius: 4px;
    background: linear-gradient(90deg, var(--endor-teal-strong), var(--endor-cyan));
}

.pipeline-caption {
    display: flex;
    align-items: center;
    gap: 6px;
    margin: 0 20px 15px;
    color: #7b8d9b;
    font-size: 8px;
}

.pipeline-caption span {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--endor-teal);
    animation: soft-pulse 1.8s infinite;
}

.pipeline-caption strong { color: #536879; }

.graph-panel {
    grid-column: 1 / -1;
}

.graph-toolbar {
    padding-top: 15px;
    padding-bottom: 13px;
}

.graph-controls {
    display: flex;
    align-items: center;
    gap: 8px;
}

.graph-search {
    display: flex;
    width: 190px;
    height: 34px;
    align-items: center;
    gap: 7px;
    padding: 0 9px;
    border: 1px solid var(--line);
    border-radius: 9px;
    color: #8a9aaa;
    background: #f8fafb;
    font-size: 10px;
}

.depth-control {
    display: flex;
    height: 34px;
    align-items: center;
    gap: 3px;
    padding: 3px 4px 3px 9px;
    border: 1px solid var(--line);
    border-radius: 9px;
    color: #718594;
    background: #fff;
    font-size: 8px;
    font-weight: 700;
}

.depth-control button {
    width: 26px;
    height: 26px;
    border: 0;
    border-radius: 6px;
    color: #718594;
    background: transparent;
    font-size: 9px;
    font-weight: 800;
}

.depth-control button.is-active {
    color: var(--endor-navy);
    background: rgba(0, 184, 181, 0.15);
}

.icon-button.light {
    width: 34px;
    height: 34px;
}

.graph-workspace {
    display: grid;
    min-height: 520px;
    grid-template-columns: minmax(0, 1fr) 280px;
}

.graph-canvas {
    position: relative;
    min-width: 0;
    overflow: hidden;
    background: #f8fafc;
}

#demo-graph {
    display: block;
    width: 100%;
    height: 520px;
    transition: transform 240ms ease;
}

.edge-layer path {
    fill: none;
    stroke: #8ea2b3;
    stroke-width: 1.35;
    opacity: 0.66;
    transition: opacity 160ms ease, stroke 160ms ease;
}

.edge-layer path:nth-child(1),
.edge-layer path:nth-child(5) {
    stroke: var(--endor-teal-strong);
}

.edge-labels text {
    fill: #6f8392;
    font-size: 8px;
    font-weight: 650;
    text-anchor: middle;
    paint-order: stroke;
    stroke: #f8fafc;
    stroke-width: 5px;
    stroke-linejoin: round;
}

.graph-node {
    color: var(--endor-teal-strong);
    filter: url(#node-shadow);
    cursor: pointer;
    transition: opacity 160ms ease;
}

.graph-node > circle:first-child,
.graph-node > rect {
    fill: #fff;
    stroke: currentColor;
    stroke-width: 2;
}

.graph-node.is-selected > circle:first-child,
.graph-node.is-selected > rect {
    fill: var(--endor-navy);
    stroke: var(--endor-cyan);
    stroke-width: 2.5;
}

.node-ring {
    fill: none;
    stroke: rgba(0, 184, 181, 0.24);
    stroke-width: 5;
}

.node-icon {
    fill: currentColor;
    font-size: 12px;
    font-weight: 800;
    text-anchor: middle;
}

.is-selected .node-icon {
    fill: var(--endor-cyan);
}

.node-label,
.node-type {
    filter: none;
    text-anchor: middle;
}

.node-label {
    fill: #263f51;
    font-size: 10px;
    font-weight: 750;
}

.node-type {
    fill: #8799a7;
    font-size: 6px;
    font-weight: 800;
    letter-spacing: 0.09em;
}

.type-org { color: #148fa7; }
.type-phone { color: #298a5a; }
.type-address { color: #bd841f; }
.type-person-alt { color: #506f85; }
.type-vehicle { color: #785edf; }

.graph-node.is-muted {
    opacity: 0.18;
}

.graph-node.is-match > circle:first-child,
.graph-node.is-match > rect {
    stroke-width: 4;
}

.graph-legend {
    position: absolute;
    bottom: 14px;
    left: 17px;
    display: flex;
    gap: 14px;
    padding: 8px 11px;
    border: 1px solid var(--line);
    border-radius: 9px;
    background: rgba(255, 255, 255, 0.9);
    box-shadow: 0 7px 20px rgba(6, 19, 30, 0.06);
    backdrop-filter: blur(8px);
}

.graph-legend span {
    display: flex;
    align-items: center;
    gap: 5px;
    color: #718594;
    font-size: 7px;
    font-weight: 700;
}

.graph-legend i {
    width: 7px;
    height: 7px;
    border-radius: 50%;
}

.legend-person { background: var(--endor-teal); }
.legend-org { background: var(--endor-cyan); }
.legend-asset { background: var(--endor-violet); }
.legend-contact { background: var(--endor-success); }

.graph-zoom {
    position: absolute;
    right: 14px;
    bottom: 14px;
    display: flex;
    overflow: hidden;
    flex-direction: column;
    border: 1px solid var(--line);
    border-radius: 9px;
    background: #fff;
    box-shadow: 0 7px 20px rgba(6, 19, 30, 0.06);
}

.graph-zoom button {
    width: 31px;
    height: 29px;
    border: 0;
    color: #718594;
    background: #fff;
}

.graph-zoom button + button {
    border-top: 1px solid var(--line);
}

.entity-inspector {
    padding: 19px;
    border-left: 1px solid var(--line-soft);
    background: #fff;
}

.inspector-topline {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.inspector-topline span {
    padding: 4px 7px;
    border-radius: 5px;
    color: var(--endor-teal-strong);
    background: rgba(0, 184, 181, 0.1);
    font-size: 7px;
    font-weight: 800;
    letter-spacing: 0.1em;
}

.inspector-topline button {
    border: 0;
    color: #8799a7;
    background: transparent;
}

.inspector-identity {
    display: flex;
    align-items: center;
    gap: 11px;
    margin-top: 16px;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--line-soft);
}

.inspector-avatar {
    display: inline-flex;
    width: 43px;
    height: 43px;
    flex: 0 0 43px;
    align-items: center;
    justify-content: center;
    border-radius: 13px;
    color: var(--endor-cyan);
    background: var(--endor-navy);
    font-size: 11px;
    font-weight: 800;
}

.inspector-identity h3 {
    margin: 0;
    color: var(--endor-navy);
    font-size: 15px;
    letter-spacing: -0.025em;
}

.inspector-identity p {
    margin: 4px 0 0;
    color: #8a9aaa;
    font-size: 8px;
}

.confidence {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 7px;
    margin-top: 16px;
    color: #718594;
    font-size: 8px;
}

.confidence strong {
    color: #218757;
    font-size: 9px;
}

.confidence div {
    height: 4px;
    grid-column: 1 / -1;
    overflow: hidden;
    border-radius: 5px;
    background: #e9eef1;
}

.confidence i {
    display: block;
    height: 100%;
    border-radius: 5px;
    background: var(--endor-success);
}

.property-list {
    margin: 15px 0;
}

.property-list > div {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 9px 0;
    border-bottom: 1px solid var(--line-soft);
    font-size: 8px;
}

.property-list dt {
    color: #8a9aaa;
}

.property-list dd {
    margin: 0;
    color: #3b5364;
    font-weight: 700;
    text-align: right;
}

.evidence-card {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 9px;
    padding: 10px;
    border: 1px solid #dcebea;
    border-radius: 10px;
    background: #f5fbfb;
}

.evidence-icon {
    display: inline-flex;
    width: 27px;
    height: 27px;
    align-items: center;
    justify-content: center;
    border-radius: 7px;
    color: var(--endor-teal-strong);
    background: rgba(0, 184, 181, 0.11);
}

.evidence-card div {
    display: flex;
    min-width: 0;
    flex-direction: column;
}

.evidence-card small,
.evidence-card span {
    color: #8294a2;
    font-size: 7px;
}

.evidence-card strong {
    overflow: hidden;
    margin: 2px 0;
    color: #385363;
    font-size: 8px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.evidence-card button {
    border: 0;
    color: var(--endor-teal-strong);
    background: transparent;
}

.button-inspector {
    width: 100%;
    margin-top: 14px;
    color: #fff;
    background: var(--endor-navy);
}

.graph-footer {
    display: flex;
    min-height: 39px;
    align-items: center;
    justify-content: space-between;
    gap: 15px;
    padding: 8px 18px;
    border-top: 1px solid var(--line-soft);
    color: #8294a2;
    background: #fbfcfd;
    font-size: 8px;
}

.graph-footer span:first-child {
    display: inline-flex;
    align-items: center;
    gap: 7px;
}

@keyframes soft-pulse {
    50% { opacity: 0.45; transform: scale(0.8); }
}

@media (max-width: 1180px) {
    .metric-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .graph-workspace { grid-template-columns: minmax(0, 1fr) 250px; }
    .graph-search { display: none; }
}

@media (max-width: 930px) {
    .sidebar {
        transform: translateX(-105%);
        transition: transform 200ms ease;
    }
    .sidebar.is-open { transform: translateX(0); }
    .app-main { margin-left: 0; }
    .menu-button { display: inline-flex; }
    .main-content { padding: 28px 22px 40px; }
    .dashboard-grid { grid-template-columns: 1fr; }
    .graph-panel { grid-column: auto; }
    .graph-workspace { grid-template-columns: 1fr; }
    .live-graph-layout { grid-template-columns: 1fr; }
    .live-graph-inspector { border-top: 1px solid var(--line-soft); border-left: 0; }
    .graph-path-controls { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .graph-path-workspace { grid-template-columns: 1fr; }
    .help-step { grid-template-columns: 1fr; }
    .help-illustration { min-height: 350px; border-top: 1px solid var(--line-soft); border-left: 0; }
    .help-start { grid-template-columns: 1fr; }
    .entity-inspector { border-top: 1px solid var(--line-soft); border-left: 0; }
}

@media (max-width: 1100px) {
    .source-detail-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 700px) {
    .source-detail-metrics {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .source-upload-fields,
    .mapping-form fieldset {
        align-items: stretch;
        grid-template-columns: 1fr;
        flex-direction: column;
    }

    .source-upload-fields .button,
    .mapping-form .button {
        width: 100%;
    }

    .entity-summary-list {
        grid-template-columns: 1fr;
    }

    .graph-view-tabs {
        overflow-x: auto;
    }

    .graph-analysis-heading,
    .graph-analysis-controls {
        align-items: stretch;
        flex-direction: column;
    }

    .graph-path-controls,
    .graph-community-report {
        grid-template-columns: 1fr;
    }

    .help-start,
    .help-step-copy,
    .help-finish {
        padding: 20px;
    }

    .help-flow {
        min-width: 550px;
    }

    .help-start {
        overflow-x: auto;
    }

    .help-index {
        top: 66px;
    }

    .help-step {
        min-height: 0;
    }

    .help-illustration {
        min-height: 320px;
        padding: 24px 16px;
    }

    .help-classification-visual,
    .help-upload-help-visual,
    .help-rif-visual,
    .help-mapping-visual {
        flex-wrap: wrap;
    }

    .help-mode-list div,
    .help-status-list li {
        grid-template-columns: 1fr;
    }

    .help-warning {
        grid-template-columns: 1fr;
    }

    .help-finish {
        align-items: stretch;
        flex-direction: column;
    }
}

@media (max-width: 680px) {
    .topbar { padding: 0 14px; }
    .global-search { width: auto; flex: 1; }
    .global-search kbd,
    .environment-pill { display: none; }
    .main-content { padding: 23px 14px 34px; }
    .page-heading { align-items: flex-start; flex-direction: column; }
    .heading-actions { width: 100%; }
    .heading-actions .button { flex: 1; }
    .metric-grid { grid-template-columns: 1fr; }
    .graph-toolbar { align-items: flex-start; flex-direction: column; }
    .live-graph-tools { width: 100%; align-items: stretch; flex-direction: column; }
    .live-graph-tools label,
    .live-graph-tools input { width: 100%; }
    .live-graph-search-results { top: 188px; right: 14px; width: calc(100% - 28px); }
    .graph-controls { width: 100%; }
    .depth-control { flex: 1; }
    .format-pills { display: none; }
    #demo-graph { width: 820px; max-width: none; transform: translateX(-110px); }
    .graph-legend { display: none; }
    .graph-footer { align-items: flex-start; flex-direction: column; }
}

/* Readability, interface zoom and the persistent entity catalog. */
.app-zoom-control,
.graph-scale-control,
.table-scale-control {
    display: inline-flex;
    overflow: hidden;
    align-items: center;
    border: 1px solid var(--line);
    border-radius: 9px;
    background: #fff;
}

.app-zoom-control button,
.graph-scale-control button,
.table-scale-control button {
    display: inline-flex;
    min-width: 30px;
    height: 32px;
    align-items: center;
    justify-content: center;
    padding: 0 7px;
    border: 0;
    color: #536879;
    background: transparent;
    font-size: 13px;
    font-weight: 800;
}

.app-zoom-control button + button,
.graph-scale-control > * + *,
.table-scale-control > * + * {
    border-left: 1px solid var(--line-soft);
}

.app-zoom-control button:hover,
.graph-scale-control button:hover,
.table-scale-control button:hover {
    color: var(--endor-navy);
    background: rgba(0, 184, 181, 0.1);
}

.app-zoom-control output,
.graph-scale-control output,
.table-scale-control output {
    min-width: 44px;
    color: #607487;
    font-size: 10px;
    font-weight: 800;
    text-align: center;
}

.app-zoom-control button[data-app-zoom="reset"] {
    min-width: 48px;
}

.graph-scale-control {
    height: 34px;
}

.table-scale-control {
    height: 30px;
}

.table-scale-control button {
    min-width: 27px;
    height: 28px;
    font-size: 12px;
}

.table-scale-control output {
    min-width: 42px;
    font-size: 9px;
}

.panel-heading-tools {
    display: flex;
    align-items: center;
    gap: 9px;
}

.zoomable-table {
    zoom: var(--table-zoom, 1);
}

.graph-scale-control button {
    height: 32px;
}

.atlas-app .eyebrow,
.atlas-app .panel-kicker {
    font-size: 10px;
}

.atlas-app .page-lead {
    font-size: 14px;
}

.atlas-app .button {
    font-size: 12px;
}

.atlas-app .panel-heading h2,
.atlas-app .graph-toolbar h2 {
    font-size: 18px;
}

.atlas-app .dashboard-table th {
    font-size: 10px;
}

.atlas-app .dashboard-table td {
    font-size: 11px;
    line-height: 1.45;
}

.atlas-app .dashboard-table td:first-child strong {
    font-size: 12px;
}

.atlas-app .dashboard-table td:first-child small,
.atlas-app .status-badge {
    font-size: 10px;
}

.atlas-app .form-field > span,
.atlas-app .mapping-form legend,
.atlas-app .analysis-source-picker legend {
    font-size: 11px;
}

.atlas-app input,
.atlas-app select,
.atlas-app textarea {
    font-size: 12px;
}

.atlas-app .dashboard-empty strong {
    font-size: 13px;
}

.atlas-app .dashboard-empty p,
.atlas-app .metric-card small {
    font-size: 11px;
}

.atlas-app .live-node-label {
    font-size: 10px;
}

.atlas-app .live-edge-label {
    font-size: 9px;
}

.source-sample-table th,
.source-sample-table td {
    font-size: 11px !important;
}

.source-sample-table th small {
    font-size: 9px;
}

.source-sample-table.is-compact th,
.source-sample-table.is-compact td {
    padding: 8px 6px;
    font-size: 10px !important;
}

.source-sample-table.is-ultra-dense th,
.source-sample-table.is-ultra-dense td {
    padding: 7px 5px;
    font-size: 9px !important;
}

.entity-filter-panel {
    margin-bottom: 18px;
    padding: 18px 20px;
}

.entity-filter-form {
    display: grid;
    grid-template-columns: minmax(240px, 1.35fr) repeat(3, minmax(150px, 0.7fr)) auto;
    align-items: end;
    gap: 12px;
}

.entity-filter-form .form-field {
    margin: 0;
}

.entity-filter-actions,
.entity-row-actions {
    display: flex;
    align-items: center;
    gap: 7px;
}

.entity-catalog-panel {
    margin-bottom: 20px;
}

.entity-table-wrap {
    padding-top: 8px;
}

.entity-catalog-table {
    min-width: 980px;
}

.entity-catalog-table td:first-child {
    position: relative;
    min-width: 240px;
    padding-left: 42px;
}

.entity-catalog-table .entity-type-divider th {
    padding: 13px 14px;
    border-top: 8px solid #f4f7f9;
    border-bottom: 1px solid color-mix(in srgb, var(--entity-color, var(--endor-teal)) 18%, var(--line));
    color: var(--endor-navy);
    background: linear-gradient(90deg, rgba(0, 184, 181, 0.08), rgba(255, 255, 255, 0.98));
    font-size: 13px;
    letter-spacing: 0;
    text-align: left;
    text-transform: none;
}

.entity-catalog-table .entity-type-group:first-of-type .entity-type-divider th {
    border-top-width: 0;
}

.entity-type-divider th > * {
    vertical-align: middle;
}

.entity-type-divider .entity-type-symbol.is-static {
    position: static;
    margin-right: 8px;
    transform: none;
}

.entity-type-divider small {
    margin-left: 8px;
    color: var(--muted);
    font-size: 9px;
    font-weight: 700;
}

.entity-type-symbol {
    position: absolute;
    top: 50%;
    left: 9px;
    display: inline-flex;
    width: 25px;
    height: 25px;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    color: var(--entity-color, var(--endor-teal-strong));
    background: color-mix(in srgb, var(--entity-color, var(--endor-teal)) 11%, white);
    font-size: 16px;
    transform: translateY(-50%);
}

.entity-catalog-table td:nth-child(2) small,
.entity-catalog-table td:nth-child(2) span {
    display: block;
}

.entity-catalog-table td:nth-child(2) small {
    margin-top: 2px;
    color: var(--muted-light);
    font-size: 9px;
    text-transform: uppercase;
}

.entity-identifier-value {
    max-width: 220px;
    overflow: hidden;
    color: #30495b;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.catalog-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    padding: 16px 20px 20px;
}

.catalog-pagination a,
.catalog-pagination .current,
.catalog-pagination .is-disabled {
    display: inline-flex;
    min-width: 32px;
    height: 32px;
    align-items: center;
    justify-content: center;
    padding: 0 9px;
    border: 1px solid var(--line);
    border-radius: 8px;
    color: #536879;
    background: #fff;
    font-size: 11px;
    font-weight: 750;
}

.catalog-pagination .current {
    color: var(--endor-navy);
    border-color: rgba(0, 184, 181, 0.4);
    background: rgba(0, 184, 181, 0.12);
}

.catalog-pagination .is-disabled {
    color: #a9b5be;
}

.catalog-pagination > span:last-child {
    margin-left: 10px;
    color: var(--muted);
    font-size: 11px;
}

.entity-empty-state {
    min-height: 300px;
}

.entity-analysis-banner {
    margin-bottom: 18px;
}

.entity-detail-metrics {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 10px;
    margin-bottom: 18px;
}

.entity-detail-metrics article {
    display: flex;
    min-height: 78px;
    flex-direction: column;
    justify-content: center;
    padding: 15px 17px;
    border: 1px solid var(--line-soft);
    border-radius: 13px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(6, 19, 30, 0.04);
}

.entity-detail-metrics small {
    color: var(--muted);
    font-size: 10px;
    font-weight: 750;
    text-transform: uppercase;
}

.entity-detail-metrics strong {
    margin-top: 5px;
    overflow: hidden;
    color: var(--endor-navy);
    font-size: 18px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.entity-detail-layout {
    display: grid;
    grid-template-columns: minmax(320px, 0.8fr) minmax(0, 1.2fr);
    gap: 18px;
    margin-bottom: 18px;
}

.entity-profile-content {
    display: grid;
    gap: 22px;
    padding: 20px;
}

.entity-profile-content h3 {
    margin: 0 0 10px;
    color: #30495b;
    font-size: 13px;
}

.entity-identifier-list,
.entity-property-list {
    display: grid;
    gap: 7px;
    margin: 0;
}

.entity-identifier-list div,
.entity-property-list div {
    display: grid;
    grid-template-columns: minmax(110px, 0.35fr) minmax(0, 1fr);
    gap: 10px;
    padding: 9px 10px;
    border: 1px solid var(--line-soft);
    border-radius: 9px;
    background: #fbfcfd;
}

.entity-identifier-list dt,
.entity-property-list dt {
    color: var(--muted);
    font-size: 10px;
    font-weight: 750;
}

.entity-identifier-list dd,
.entity-property-list dd {
    min-width: 0;
    margin: 0;
    overflow-wrap: anywhere;
    color: var(--ink);
    font-size: 11px;
}

.entity-muted-copy,
.entity-panel-limit {
    color: var(--muted);
    font-size: 11px;
}

.entity-relationship-list {
    display: grid;
    gap: 8px;
    padding: 16px 20px 20px;
}

.entity-relationship-list article {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
    padding: 11px 12px;
    border: 1px solid var(--line-soft);
    border-radius: 10px;
    background: #fbfcfd;
}

.relationship-direction {
    display: inline-flex;
    width: 32px;
    height: 32px;
    align-items: center;
    justify-content: center;
    border-radius: 9px;
    color: var(--endor-teal-strong);
    background: rgba(0, 184, 181, 0.1);
    font-size: 17px;
}

.entity-relationship-list small,
.entity-relationship-list strong,
.entity-relationship-list p {
    display: block;
}

.entity-relationship-list small {
    color: var(--endor-teal-strong);
    font-size: 9px;
    font-weight: 800;
    text-transform: uppercase;
}

.entity-relationship-list strong {
    margin-top: 3px;
    font-size: 12px;
}

.entity-relationship-list p {
    margin: 3px 0 0;
    color: var(--muted);
    font-size: 10px;
}

.entity-relationship-list article > b {
    color: var(--muted-light);
    font-size: 10px;
}

.entity-panel-limit {
    margin: 0;
    padding: 0 20px 18px;
}

.entity-evidence-panel {
    margin-bottom: 20px;
}

.entity-evidence-table {
    min-width: 900px;
}

@media (max-width: 1180px) {
    .entity-filter-form {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .entity-search-field,
    .entity-filter-actions {
        grid-column: span 2;
    }

    .entity-detail-metrics {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 820px) {
    .entity-detail-layout {
        grid-template-columns: 1fr;
    }

    .entity-detail-metrics {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .catalog-pagination {
        flex-wrap: wrap;
    }

    .catalog-pagination > span:last-child {
        width: 100%;
        margin: 7px 0 0;
        text-align: center;
    }
}

@media (max-width: 680px) {
    .app-zoom-control {
        position: fixed;
        right: 14px;
        bottom: 14px;
        z-index: 60;
        box-shadow: 0 8px 25px rgba(6, 19, 30, 0.16);
    }

    .entity-filter-form {
        grid-template-columns: 1fr;
    }

    .entity-search-field,
    .entity-filter-actions {
        grid-column: auto;
    }

    .entity-filter-actions .button {
        flex: 1;
    }

    .entity-detail-metrics {
        grid-template-columns: 1fr;
    }

    .entity-identifier-list div,
    .entity-property-list div {
        grid-template-columns: 1fr;
    }

    .graph-scale-control {
        align-self: flex-start;
    }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
}

/* Type studio */
.studio-heading {
    align-items: center;
}

.studio-tabs {
    display: flex;
    gap: 5px;
    margin-bottom: 16px;
    padding: 5px;
    border: 1px solid var(--line-soft);
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.82);
}

.studio-tabs a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 9px 13px;
    border-radius: 8px;
    color: var(--muted);
    font-size: 11px;
    font-weight: 750;
}

.studio-tabs a:first-child,
.studio-tabs a:hover {
    color: var(--endor-navy);
    background: #fff;
    box-shadow: 0 3px 12px rgba(6, 19, 30, 0.06);
}

.studio-tabs span {
    display: inline-flex;
    min-width: 20px;
    height: 20px;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    color: var(--endor-teal-strong);
    background: rgba(0, 184, 181, 0.1);
    font-size: 9px;
}

.studio-section {
    margin-bottom: 18px;
    padding: 22px;
    border: 1px solid var(--line-soft);
    border-radius: var(--radius-card);
    background: #fff;
    box-shadow: var(--shadow-card);
}

.studio-section-heading,
.catalog-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
}

.studio-section-heading {
    margin-bottom: 17px;
}

.studio-section-heading h2 {
    margin: 0;
    color: var(--endor-navy);
    font-size: 19px;
}

.studio-section-heading p:last-child,
.catalog-heading span,
.studio-empty p {
    margin: 5px 0 0;
    color: var(--muted);
    font-size: 10px;
}

.studio-summary,
.readonly-badge {
    padding: 6px 9px;
    border-radius: 999px;
    color: #57716f;
    background: #f1f8f7;
    font-size: 9px;
    font-weight: 750;
}

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

.type-grid-custom {
    margin-bottom: 22px;
}

.type-card {
    position: relative;
    display: grid;
    min-width: 0;
    grid-template-columns: auto 1fr;
    gap: 11px;
    padding: 14px;
    border: 1px solid var(--line-soft);
    border-radius: 12px;
    background: #fbfcfd;
    transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.type-card:hover {
    border-color: color-mix(in srgb, var(--type-color), white 55%);
    box-shadow: 0 9px 24px rgba(6, 19, 30, 0.07);
    transform: translateY(-1px);
}

.type-card.is-custom {
    border-left: 3px solid var(--type-color);
    background: #fff;
}

.type-card-mark {
    display: inline-flex;
    width: 39px;
    height: 39px;
    align-items: center;
    justify-content: center;
    border-radius: 11px;
    color: var(--type-color);
    background: color-mix(in srgb, var(--type-color), transparent 88%);
    font-size: 10px;
    font-weight: 850;
}

.type-card-copy {
    min-width: 0;
    padding-right: 55px;
}

.type-card-title {
    display: flex;
    align-items: center;
    gap: 6px;
}

.type-card-title h3 {
    overflow: hidden;
    margin: 1px 0 4px;
    color: var(--endor-navy);
    font-size: 12px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.type-card-title span {
    padding: 2px 5px;
    border-radius: 5px;
    color: var(--endor-teal-strong);
    background: rgba(0, 184, 181, 0.09);
    font-size: 7px;
    font-weight: 800;
    text-transform: uppercase;
}

.type-card code {
    color: #718594;
    font-size: 8px;
}

.type-card p {
    margin: 5px 0 0;
    color: #8a9aaa;
    font-size: 8px;
}

.type-card-action {
    position: absolute;
    top: 14px;
    right: 12px;
    color: var(--endor-teal-strong);
    font-size: 8px;
    font-weight: 800;
}

.catalog-heading {
    margin: 4px 0 11px;
    padding-top: 17px;
    border-top: 1px solid var(--line-soft);
}

.catalog-heading div {
    display: flex;
    flex-direction: column;
}

.catalog-heading strong {
    color: #40596a;
    font-size: 11px;
}

.readonly-badge {
    color: #748694;
    background: #f2f5f7;
    text-transform: uppercase;
}

.studio-empty {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 21px;
    padding: 15px;
    border: 1px dashed #cbd8df;
    border-radius: 12px;
    background: #fafcfd;
}

.studio-empty > span {
    display: inline-flex;
    width: 38px;
    height: 38px;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    color: var(--endor-teal-strong);
    background: rgba(0, 184, 181, 0.09);
    font-size: 19px;
}

.studio-empty strong {
    color: #40596a;
    font-size: 11px;
}

.relationship-mark {
    display: flex;
    width: 48px;
    align-items: center;
    gap: 4px;
    color: var(--type-color);
}

.relationship-mark i {
    width: 11px;
    height: 11px;
    border: 3px solid color-mix(in srgb, var(--type-color), white 25%);
    border-radius: 50%;
    background: #fff;
}

.relationship-mark b {
    flex: 1;
    font-size: 15px;
    text-align: center;
}

.studio-breadcrumb {
    display: flex;
    gap: 8px;
    margin-bottom: 22px;
    color: #8a9aaa;
    font-size: 10px;
}

.studio-breadcrumb a {
    font-weight: 750;
}

.studio-form-heading {
    margin-bottom: 20px;
}

.studio-form-heading h1 {
    font-size: clamp(25px, 2.6vw, 36px);
}

.studio-form-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 280px;
    align-items: start;
    gap: 15px;
}

.studio-form-main {
    display: grid;
    gap: 15px;
}

.form-section,
.studio-form-aside > div {
    border: 1px solid var(--line-soft);
    border-radius: var(--radius-card);
    background: #fff;
    box-shadow: var(--shadow-card);
}

.form-section > header {
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 17px 19px;
    border-bottom: 1px solid var(--line-soft);
}

.form-section > header > span {
    display: inline-flex;
    width: 28px;
    height: 28px;
    flex: 0 0 28px;
    align-items: center;
    justify-content: center;
    border-radius: 9px;
    color: var(--endor-teal-strong);
    background: rgba(0, 184, 181, 0.1);
    font-size: 10px;
    font-weight: 850;
}

.form-section h2 {
    margin: 0;
    color: var(--endor-navy);
    font-size: 14px;
}

.form-section header p {
    margin: 3px 0 0;
    color: var(--muted);
    font-size: 9px;
}

.form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    padding: 19px;
}

.form-field,
.field-row > label {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 6px;
    color: #536879;
    font-size: 9px;
    font-weight: 750;
}

.form-field > span,
.field-row > label > span {
    min-height: 13px;
}

.form-field input,
.form-field select,
.field-row input,
.field-row select {
    width: 100%;
    height: 39px;
    margin: 0;
    padding: 0 10px;
    border: 1px solid var(--line);
    border-radius: 9px;
    outline: 0;
    color: var(--ink);
    background: #fbfcfd;
    font-size: 10px;
}

.form-field input:focus,
.form-field select:focus,
.field-row input:focus,
.field-row select:focus {
    border-color: var(--endor-teal);
    background: #fff;
    box-shadow: 0 0 0 3px rgba(0, 184, 181, 0.08);
}

.form-field > small {
    color: #8a9aaa;
    font-size: 8px;
    font-weight: 500;
}

.form-field .form-error {
    color: #c64d4d;
}

.color-field > div {
    display: flex;
    height: 39px;
    align-items: center;
    gap: 9px;
    padding: 5px 9px;
    border: 1px solid var(--line);
    border-radius: 9px;
    background: #fbfcfd;
}

.color-field input {
    width: 25px;
    height: 25px;
    padding: 0;
    border: 0;
    background: transparent;
}

.color-field code {
    color: #607487;
    font-size: 9px;
}

.switch-field {
    display: flex;
    grid-column: 1 / -1;
    align-items: flex-start;
    gap: 9px;
    padding: 12px;
    border: 1px solid #dcebea;
    border-radius: 10px;
    background: #f6fbfb;
}

.switch-field > span {
    display: flex;
    flex-direction: column;
}

.switch-field b {
    color: #40596a;
    font-size: 10px;
}

.switch-field small {
    margin-top: 3px;
    color: #718594;
    font-size: 8px;
}

.field-builder {
    padding: 15px 19px 19px;
}

.field-builder-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 11px;
}

.field-builder-head > div {
    display: flex;
    flex-direction: column;
}

.field-builder-head strong {
    color: #40596a;
    font-size: 10px;
}

.field-builder-head span {
    margin-top: 3px;
    color: #8a9aaa;
    font-size: 8px;
}

.field-list {
    display: grid;
    gap: 8px;
}

.field-row {
    display: grid;
    grid-template-columns: 16px minmax(110px, 1fr) minmax(130px, 1.2fr) minmax(105px, 0.8fr) minmax(120px, 1fr) auto 26px;
    align-items: end;
    gap: 8px;
    padding: 10px;
    border: 1px solid var(--line-soft);
    border-radius: 11px;
    background: #fbfcfd;
}

[data-show-identifiers="0"] .field-row {
    grid-template-columns: 16px minmax(130px, 1fr) minmax(150px, 1.2fr) minmax(120px, 0.8fr) auto 26px;
}

.field-drag {
    align-self: center;
    color: #acbac4;
    font-size: 13px;
}

.field-flags {
    display: flex;
    height: 39px;
    align-items: center;
    gap: 8px;
    white-space: nowrap;
}

.field-flags label {
    display: flex;
    align-items: center;
    gap: 3px;
    color: #718594;
    font-size: 8px;
}

.field-flags input {
    width: 13px;
    height: 13px;
}

.remove-field {
    display: inline-flex;
    width: 26px;
    height: 26px;
    align-items: center;
    justify-content: center;
    margin-bottom: 6px;
    border: 0;
    border-radius: 7px;
    color: #9aa9b4;
    background: transparent;
    font-size: 17px;
}

.remove-field:hover {
    color: #c64d4d;
    background: #fff0f0;
}

.studio-form-aside {
    position: sticky;
    top: 82px;
    display: grid;
    gap: 11px;
}

.type-preview,
.relationship-preview {
    display: flex;
    align-items: center;
    flex-direction: column;
    padding: 23px 18px;
    text-align: center;
}

.preview-kicker {
    align-self: flex-start;
    margin-bottom: 20px;
    color: #8a9aaa;
    font-size: 8px;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.preview-node {
    display: inline-flex;
    width: 72px;
    height: 72px;
    align-items: center;
    justify-content: center;
    margin-bottom: 14px;
    border: 5px solid color-mix(in srgb, var(--preview-color), white 65%);
    border-radius: 25px;
    color: #fff;
    background: var(--preview-color);
    box-shadow: 0 10px 27px color-mix(in srgb, var(--preview-color), transparent 70%);
    font-size: 16px;
    font-weight: 850;
}

.type-preview strong,
.relationship-preview strong {
    color: var(--endor-navy);
    font-size: 13px;
}

.type-preview > small,
.relationship-preview > small {
    margin-top: 4px;
    color: #8a9aaa;
    font-size: 7px;
    letter-spacing: 0.08em;
}

.relationship-preview > div {
    display: flex;
    width: 190px;
    align-items: center;
    gap: 7px;
    margin: 12px 0 18px;
    color: var(--preview-color);
}

.relationship-preview i {
    width: 23px;
    height: 23px;
    flex: 0 0 23px;
    border: 5px solid color-mix(in srgb, var(--preview-color), white 55%);
    border-radius: 50%;
    background: var(--preview-color);
}

.relationship-preview b {
    flex: 1;
    font-size: 22px;
    letter-spacing: 0.05em;
}

.studio-guidance {
    padding: 15px;
}

.studio-guidance strong {
    color: #40596a;
    font-size: 10px;
}

.studio-guidance ul {
    margin: 9px 0 0;
    padding-left: 16px;
    color: #718594;
    font-size: 8px;
    line-height: 1.9;
}

.studio-guidance p {
    margin: 8px 0 0;
    color: #718594;
    font-size: 8px;
    line-height: 1.65;
}

.form-actions {
    display: flex;
    gap: 8px;
    padding: 12px;
}

.form-actions .button {
    flex: 1;
}

@media (max-width: 1280px) {
    .type-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .field-row,
    [data-show-identifiers="0"] .field-row { grid-template-columns: 16px repeat(2, minmax(130px, 1fr)) 26px; }
    .field-row > label:nth-of-type(n + 3),
    .field-flags { grid-column: auto; }
}

@media (max-width: 930px) {
    .studio-form-layout { grid-template-columns: 1fr; }
    .studio-form-aside { position: static; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .form-actions { grid-column: 1 / -1; }
}

@media (max-width: 680px) {
    .studio-heading .heading-actions { flex-direction: column; }
    .studio-section { padding: 15px; }
    .studio-section-heading { align-items: flex-start; flex-direction: column; }
    .type-grid { grid-template-columns: 1fr; }
    .form-grid { grid-template-columns: 1fr; padding: 15px; }
    .field-builder { padding: 13px; }
    .field-builder-head { align-items: flex-start; flex-direction: column; }
    .field-row,
    [data-show-identifiers="0"] .field-row { grid-template-columns: 14px 1fr 26px; }
    .field-row > label,
    .field-flags { grid-column: 2 / 3; }
    .remove-field { grid-column: 3; grid-row: 1; }
    .studio-form-aside { grid-template-columns: 1fr; }
    .form-actions { grid-column: auto; }
}

/* Path exploration */
.path-tool-button {
    min-height: 34px;
    padding: 6px 10px;
    white-space: nowrap;
}

.community-tool-button {
    min-height: 34px;
    padding: 6px 10px;
    white-space: nowrap;
}

.path-explorer {
    position: absolute;
    top: 14px;
    left: 14px;
    z-index: 8;
    width: min(390px, calc(100% - 28px));
    overflow: hidden;
    border: 1px solid #d7e2e8;
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.97);
    box-shadow: 0 18px 48px rgba(6, 19, 30, 0.17);
    backdrop-filter: blur(12px);
}

.path-explorer[hidden] {
    display: none;
}

.path-explorer > header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 13px 14px;
    color: #fff;
    background: var(--endor-navy);
}

.path-explorer header div {
    display: flex;
    flex-direction: column;
}

.path-explorer header small {
    color: #7fa0b6;
    font-size: 7px;
    font-weight: 800;
    letter-spacing: 0.13em;
    text-transform: uppercase;
}

.path-explorer header strong {
    margin-top: 3px;
    font-size: 12px;
}

.path-explorer header button {
    width: 27px;
    height: 27px;
    border: 0;
    border-radius: 8px;
    color: #9cb0bf;
    background: rgba(255, 255, 255, 0.07);
    font-size: 17px;
}

.path-query {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    align-items: end;
    gap: 7px;
    padding: 12px 13px 9px;
}

.path-query > span {
    padding-bottom: 9px;
    color: var(--endor-teal-strong);
}

.path-query label {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 4px;
}

.path-query label span {
    color: #718594;
    font-size: 7px;
    font-weight: 800;
    text-transform: uppercase;
}

.path-query select {
    width: 100%;
    height: 32px;
    margin: 0;
    padding: 0 7px;
    border: 1px solid var(--line);
    border-radius: 8px;
    color: #40596a;
    background: #f8fafb;
    font-size: 8px;
}

.path-alternatives {
    display: flex;
    gap: 5px;
    overflow-x: auto;
    padding: 4px 13px 9px;
}

.path-alternatives button {
    flex: 0 0 auto;
    padding: 6px 8px;
    border: 1px solid var(--line);
    border-radius: 7px;
    color: #718594;
    background: #fff;
    font-size: 7px;
    font-weight: 750;
}

.path-alternatives button.is-active {
    color: var(--endor-navy);
    border-color: rgba(0, 184, 181, 0.38);
    background: rgba(0, 184, 181, 0.11);
}

.path-only-toggle {
    display: flex;
    align-items: center;
    gap: 6px;
    margin: 0 13px;
    padding: 8px 9px;
    border: 1px solid #dcebea;
    border-radius: 8px;
    color: #57716f;
    background: #f4faf9;
    font-size: 7px;
    font-weight: 700;
}

.path-only-toggle input {
    width: 13px;
    height: 13px;
    margin: 0;
}

.path-step-list {
    display: grid;
    gap: 5px;
    max-height: 150px;
    margin: 0;
    padding: 10px 13px;
    overflow-y: auto;
    list-style: none;
}

.path-step-list li {
    display: grid;
    grid-template-columns: 22px 1fr;
    align-items: center;
    gap: 8px;
    padding: 6px 7px;
    border: 1px solid transparent;
    border-radius: 8px;
    opacity: 0.52;
    cursor: pointer;
}

.path-step-list li.is-done {
    opacity: 1;
}

.path-step-list li.is-current {
    border-color: rgba(0, 184, 181, 0.22);
    background: #f2faf9;
}

.path-step-list li > span {
    display: inline-flex;
    width: 22px;
    height: 22px;
    align-items: center;
    justify-content: center;
    border-radius: 7px;
    color: #718594;
    background: #eef2f5;
    font-size: 8px;
    font-weight: 850;
}

.path-step-list li.is-done > span {
    color: #fff;
    background: var(--endor-teal-strong);
}

.path-step-list li div {
    display: flex;
    min-width: 0;
    flex-direction: column;
}

.path-step-list strong {
    overflow: hidden;
    color: #40596a;
    font-size: 8px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.path-step-list small {
    margin-top: 2px;
    color: var(--endor-teal-strong);
    font-size: 7px;
}

.path-explorer > footer {
    display: grid;
    grid-template-columns: 28px 1fr 28px;
    align-items: center;
    gap: 5px;
    padding: 9px 13px 12px;
    border-top: 1px solid var(--line-soft);
}

.path-explorer footer button {
    height: 27px;
    border: 1px solid var(--line);
    border-radius: 7px;
    color: #536879;
    background: #fff;
    font-size: 9px;
}

.path-explorer footer span {
    color: #718594;
    font-size: 7px;
    font-weight: 750;
    text-align: center;
}

.path-explorer footer [data-full-path] {
    grid-column: 1 / -1;
    color: var(--endor-navy);
    border-color: rgba(0, 184, 181, 0.25);
    background: rgba(0, 184, 181, 0.09);
    font-size: 8px;
    font-weight: 800;
}

.edge-layer path.is-path-muted,
.edge-labels text.is-path-muted {
    opacity: 0.09;
}

.edge-layer path.is-path {
    stroke: color-mix(in srgb, var(--endor-teal), white 28%);
    stroke-width: 2.4;
    opacity: 0.48;
}

.edge-layer path.is-path-progress {
    stroke: var(--endor-teal-strong);
    stroke-width: 3.4;
    opacity: 1;
}

.edge-layer path.is-path-current {
    stroke: var(--endor-cyan);
    stroke-width: 4.6;
    opacity: 1;
}

.edge-labels text.is-path {
    fill: var(--endor-teal-strong);
    font-weight: 850;
    opacity: 1;
}

.graph-node.is-path-muted {
    opacity: 0.1;
}

.graph-node.is-path > circle:first-child,
.graph-node.is-path > rect {
    stroke-width: 3;
}

.graph-node.is-path-progress > circle:first-child,
.graph-node.is-path-progress > rect {
    fill: #e9fbf9;
    stroke: var(--endor-teal-strong);
}

.graph-node.is-path-current > circle:first-child,
.graph-node.is-path-current > rect {
    fill: var(--endor-navy);
    stroke: var(--endor-cyan);
    stroke-width: 4;
}

.graph-node.is-path-current .node-icon {
    fill: var(--endor-cyan);
}

.graph-node.is-path-hidden,
.edge-layer path.is-path-hidden,
.edge-labels text.is-path-hidden {
    opacity: 0;
    pointer-events: none;
}

/* Community analysis */
.community-explorer {
    position: absolute;
    top: 14px;
    left: 14px;
    z-index: 9;
    width: min(390px, calc(100% - 28px));
    overflow: hidden;
    border: 1px solid #d7e2e8;
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.97);
    box-shadow: 0 18px 48px rgba(6, 19, 30, 0.17);
    backdrop-filter: blur(12px);
}

.community-explorer[hidden] {
    display: none;
}

.community-explorer > header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 13px 14px;
    color: #fff;
    background: var(--endor-navy);
}

.community-explorer header div {
    display: flex;
    flex-direction: column;
}

.community-explorer header small {
    color: #7fa0b6;
    font-size: 7px;
    font-weight: 800;
    letter-spacing: 0.13em;
    text-transform: uppercase;
}

.community-explorer header strong {
    margin-top: 3px;
    font-size: 12px;
}

.community-explorer header button {
    width: 27px;
    height: 27px;
    border: 0;
    border-radius: 8px;
    color: #9cb0bf;
    background: rgba(255, 255, 255, 0.07);
    font-size: 17px;
}

.community-intro {
    margin: 0;
    padding: 11px 13px 6px;
    color: #718594;
    font-size: 8px;
}

.community-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 7px;
    padding: 6px 13px 10px;
}

.community-list > button {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 5px;
    padding: 8px;
    border: 1px solid #dde5ea;
    border-radius: 9px;
    color: #536879;
    background: #fff;
    text-align: left;
}

.community-list > button.is-active {
    border-color: var(--community-color);
    background: color-mix(in srgb, var(--community-color), white 91%);
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--community-color), transparent 65%);
}

.community-list button span {
    display: flex;
    align-items: center;
    gap: 5px;
}

.community-list button i {
    width: 9px;
    height: 9px;
    flex: 0 0 auto;
    border-radius: 50%;
    background: var(--community-color);
}

.community-list button strong {
    overflow: hidden;
    color: var(--endor-navy);
    font-size: 8px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.community-list button small {
    color: #718594;
    font-size: 7px;
}

.community-link-summary {
    margin: 0 13px 10px;
    padding: 9px;
    border: 1px solid #e3e8f1;
    border-radius: 9px;
    background: #f8f9fc;
}

.community-link-summary > small,
.centrality-summary > label {
    display: block;
    margin-bottom: 5px;
    color: #718594;
    font-size: 7px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.community-link-summary button {
    display: flex;
    width: 100%;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 6px 7px;
    border: 1px solid transparent;
    border-radius: 7px;
    color: #536879;
    background: #fff;
}

.community-link-summary button.is-active {
    border-color: rgba(142, 91, 183, 0.45);
    background: #f7f0fb;
}

.community-link-summary button span {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 7px;
}

.community-link-summary button i {
    width: 23px;
    height: 4px;
    border-radius: 3px;
    background: linear-gradient(90deg, var(--from-color), var(--to-color));
}

.community-link-summary button strong {
    color: #8e5bb7;
    font-size: 8px;
}

.community-link-summary p {
    margin: 6px 0 0;
    color: #8494a0;
    font-size: 7px;
}

.centrality-summary {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 145px;
    margin: 0 13px 10px;
    padding: 9px;
    border: 1px solid #dcebea;
    border-radius: 9px;
    background: #f4faf9;
}

.centrality-summary > label {
    align-self: center;
    margin: 0;
}

.centrality-summary select {
    height: 27px;
    margin: 0;
    padding: 0 6px;
    border: 1px solid #cfe0df;
    border-radius: 7px;
    color: #536879;
    background: #fff;
    font-size: 7px;
}

.centrality-summary ol {
    display: grid;
    grid-column: 1 / -1;
    gap: 4px;
    margin: 8px 0 5px;
    padding: 0;
    list-style: none;
}

.centrality-summary li {
    display: grid;
    grid-template-columns: 17px 1fr auto;
    align-items: center;
    gap: 6px;
    color: #536879;
    font-size: 7px;
}

.centrality-summary li span {
    display: inline-flex;
    width: 17px;
    height: 17px;
    align-items: center;
    justify-content: center;
    border-radius: 5px;
    color: #fff;
    background: var(--endor-teal-strong);
    font-weight: 800;
}

.centrality-summary li strong {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.centrality-summary li small {
    color: var(--endor-teal-strong);
    font-weight: 800;
}

.centrality-summary > small {
    grid-column: 1 / -1;
    color: #8494a0;
    font-size: 7px;
}

.community-explorer > footer {
    padding: 9px 13px 12px;
    border-top: 1px solid var(--line-soft);
}

.community-explorer footer button {
    width: 100%;
    height: 28px;
    border: 1px solid rgba(0, 184, 181, 0.25);
    border-radius: 7px;
    color: var(--endor-navy);
    background: rgba(0, 184, 181, 0.09);
    font-size: 8px;
    font-weight: 800;
}

.graph-node.is-community > circle:first-child,
.graph-node.is-community > rect {
    fill: color-mix(in srgb, var(--community-color), white 86%);
    stroke: var(--community-color);
    stroke-width: 3;
}

.graph-node.is-community .node-icon {
    fill: color-mix(in srgb, var(--community-color), #06131e 24%);
}

.graph-node.is-community-muted,
.edge-layer path.is-community-muted {
    opacity: 0.12;
}

.edge-layer path.is-community-internal {
    stroke: var(--community-color);
    stroke-width: 2.4;
    opacity: 0.7;
}

.edge-layer path.is-community-between {
    stroke: var(--community-color);
    stroke-width: 2.7;
    stroke-dasharray: 6 4;
    opacity: 0.72;
}

.edge-layer path.is-community-focus {
    stroke-width: 4.4;
    stroke-dasharray: none;
    opacity: 1;
}

.edge-labels text.is-community-internal,
.edge-labels text.is-community-between {
    fill: var(--community-color);
    font-weight: 850;
    opacity: 1;
}

@media (max-width: 1180px) {
    .path-tool-button { font-size: 0; }
    .path-tool-button::after { font-size: 14px; content: "↝"; }
    .community-tool-button { font-size: 0; }
    .community-tool-button::after { font-size: 14px; content: "◉"; }
}

@media (max-width: 680px) {
    .path-explorer { top: 8px; left: 8px; width: calc(100% - 16px); }
    .community-explorer { top: 8px; left: 8px; width: calc(100% - 16px); }
}

/* Endor Suite Login Contract */
.atlas-login-page {
    --endor-login-accent: var(--endor-cyan);
    --endor-login-action: var(--endor-teal-strong);
    display: flex;
    min-height: 100vh;
    min-height: 100svh;
    align-items: center;
    justify-content: center;
    margin: 0;
    padding: 24px;
    color: var(--ink);
    background:
        radial-gradient(circle at 12% 12%, rgba(0, 184, 181, 0.24), transparent 30%),
        radial-gradient(circle at 88% 86%, rgba(36, 213, 231, 0.14), transparent 32%),
        linear-gradient(145deg, var(--endor-navy) 0%, #0b2636 54%, #102f42 100%);
}

.endor-login-shell {
    display: grid;
    width: min(960px, 100%);
    min-height: 560px;
    grid-template-columns: minmax(0, 0.96fr) minmax(380px, 1.04fr);
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 24px;
    background: var(--surface);
    box-shadow: 0 24px 60px rgba(6, 19, 30, 0.14);
}

.endor-login-story {
    position: relative;
    display: flex;
    min-width: 0;
    flex-direction: column;
    justify-content: space-between;
    gap: 32px;
    overflow: hidden;
    padding: 44px;
    color: #f5f8fa;
    background:
        linear-gradient(150deg, rgba(36, 213, 231, 0.17), transparent 42%),
        var(--endor-navy);
}

.endor-login-story::after {
    position: absolute;
    right: -120px;
    bottom: -120px;
    width: 360px;
    height: 360px;
    border: 1px solid rgba(36, 213, 231, 0.28);
    border-radius: 50%;
    content: "";
}

.endor-login-logo {
    position: relative;
    z-index: 1;
    width: min(220px, 72%);
    height: auto;
    margin: 0;
}

.endor-login-copy {
    position: relative;
    z-index: 1;
}

.endor-login-kicker {
    display: inline-block;
    margin-bottom: 14px;
    color: var(--endor-login-accent);
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.endor-login-copy h1 {
    max-width: 430px;
    margin: 0 0 16px;
    color: #fff;
    font-size: clamp(1.9rem, 3.2vw, 2.65rem);
    font-weight: 700;
    letter-spacing: -0.045em;
    line-height: 1.06;
}

.endor-login-copy p {
    max-width: 440px;
    margin: 0;
    color: #b9c8d2;
    font-size: 0.93rem;
    line-height: 1.62;
}

.endor-login-product-link {
    display: inline-block;
    margin-top: 20px;
    color: var(--endor-login-accent);
    font-size: 0.84rem;
    font-weight: 750;
    text-decoration: none;
    text-underline-offset: 4px;
}

.endor-login-product-link:hover,
.endor-login-product-link:focus-visible {
    color: #fff;
    text-decoration: underline;
}

.endor-login-form-panel {
    display: flex;
    min-width: 0;
    align-items: center;
    padding: 42px 40px;
}

.endor-login-form {
    width: 100%;
}

.endor-auth-form {
    display: grid;
    gap: 16px;
}

.endor-login-form-header {
    margin: 0 0 4px;
}

.endor-login-form-header h2 {
    margin: 0 0 6px;
    color: var(--ink);
    font-size: 1.6rem;
    font-weight: 750;
    letter-spacing: -0.035em;
}

.endor-login-form-header p {
    margin: 0;
    color: var(--muted);
    font-size: 0.88rem;
    line-height: 1.5;
}

.endor-login-field {
    display: grid;
    gap: 7px;
    margin: 0;
    color: var(--ink);
    font-size: 0.84rem;
    font-weight: 700;
}

.endor-login-field .form-control {
    width: 100%;
    min-height: 46px;
    margin: 0;
    padding: 10px 12px;
    border: 1px solid rgba(16, 35, 52, 0.12);
    border-radius: var(--radius-control);
    outline: 0;
    color: var(--ink);
    background: #fff;
}

.endor-login-field .form-control:focus {
    border-color: var(--endor-login-action);
    box-shadow: 0 0 0 3px rgba(0, 184, 181, 0.12);
}

.endor-password-field {
    position: relative;
    display: block;
}

.endor-password-field .form-control {
    padding-right: 78px;
}

.endor-password-toggle {
    position: absolute;
    top: 50%;
    right: 7px;
    min-height: 32px;
    padding: 5px 8px;
    border: 0;
    border-radius: 7px;
    color: var(--endor-login-action);
    background: transparent;
    font: inherit;
    font-size: 0.73rem;
    font-weight: 750;
    transform: translateY(-50%);
}

.endor-password-toggle:hover,
.endor-password-toggle:focus-visible {
    color: var(--endor-navy);
    background: rgba(36, 213, 231, 0.15);
}

.endor-login-actions {
    display: flex;
    min-height: 46px;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-top: 2px;
}

.endor-login-actions .button {
    min-width: 132px;
    min-height: 44px;
    padding-inline: 22px;
}

.endor-login-help {
    max-width: 180px;
    color: var(--muted);
    font-size: 0.76rem;
    font-weight: 600;
    line-height: 1.45;
}

.endor-login-footnote {
    margin: 26px 0 0;
    color: var(--muted);
    font-size: 0.77rem;
    line-height: 1.5;
    text-align: center;
}

.endor-suite-links {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 6px 14px;
    margin-top: 10px;
    font-size: 0.71rem;
    line-height: 1.4;
}

.endor-suite-links a {
    color: var(--muted);
    text-decoration: none;
    text-underline-offset: 3px;
}

.endor-suite-links a:hover,
.endor-suite-links a:focus-visible {
    color: var(--endor-login-action);
    text-decoration: underline;
}

.endor-login-form .message {
    margin: 0 0 16px;
    padding: 11px 13px;
    border: 1px solid rgba(240, 107, 107, 0.3);
    border-radius: var(--radius-control);
    color: #8f3030;
    background: #fff0f0;
    font-size: 0.78rem;
    line-height: 1.45;
}

.endor-login-form .message.hidden {
    display: none;
}

.access-form {
    display: grid;
    gap: 18px;
}

.access-form .input {
    display: grid;
    gap: 7px;
}

.access-form label {
    color: #263b4b;
    font-size: 12px;
    font-weight: 800;
}

.access-form input:not([type="checkbox"]),
.access-form select {
    width: 100%;
    height: 46px;
    box-sizing: border-box;
    padding: 0 13px;
    border: 1px solid #cfdbe3;
    border-radius: 10px;
    outline: 0;
    color: var(--endor-navy);
    background: #fff;
}

.access-form input:focus,
.access-form select:focus {
    border-color: var(--endor-teal);
    box-shadow: 0 0 0 3px rgba(0, 184, 181, 0.12);
}

.workspace-menu,
.user-menu {
    position: relative;
}

.workspace-menu summary,
.user-menu summary {
    list-style: none;
}

.workspace-menu summary::-webkit-details-marker,
.user-menu summary::-webkit-details-marker {
    display: none;
}

.workspace-options {
    position: absolute;
    z-index: 20;
    top: calc(100% + 5px);
    right: 0;
    left: 0;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.13);
    border-radius: 10px;
    background: #102332;
    box-shadow: 0 16px 34px rgba(0, 0, 0, 0.28);
}

.workspace-options a {
    display: block;
    padding: 10px 12px;
    color: #d9e6ed;
    font-size: 11px;
    text-decoration: none;
}

.workspace-options a:hover {
    color: #fff;
    background: rgba(0, 184, 181, 0.15);
}

.user-menu-panel {
    position: absolute;
    z-index: 30;
    top: calc(100% + 10px);
    right: 0;
    display: grid;
    width: 210px;
    padding: 15px;
    border: 1px solid var(--line-soft);
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 18px 42px rgba(6, 19, 30, 0.2);
}

.user-menu-panel strong,
.user-menu-panel small {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.user-menu-panel small {
    margin: 3px 0 12px;
    color: #71828e;
}

.user-menu-panel a,
.user-menu-logout {
    display: block;
    width: 100%;
    box-sizing: border-box;
    padding: 9px 8px;
    border: 0;
    border-radius: 7px;
    color: var(--endor-navy);
    background: transparent;
    font: inherit;
    font-size: 11px;
    font-weight: 750;
    text-align: left;
    text-decoration: none;
    cursor: pointer;
}

.user-menu-panel a:hover,
.user-menu-logout:hover {
    background: #f0f5f7;
}

.compact-heading {
    margin-bottom: 22px;
}

.access-panel {
    border: 1px solid var(--line-soft);
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 9px 28px rgba(6, 19, 30, 0.06);
}

.access-table-wrap {
    overflow-x: auto;
}

.access-table {
    width: 100%;
    border-collapse: collapse;
}

.access-table th,
.access-table td {
    padding: 15px 18px;
    border-bottom: 1px solid var(--line-soft);
    text-align: left;
}

.access-table th {
    color: #71828e;
    font-size: 10px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.access-table td {
    color: #314858;
    font-size: 12px;
}

.access-table td:first-child strong,
.access-table td:first-child small {
    display: block;
}

.access-table td:first-child small {
    margin-top: 3px;
    color: #81919d;
}

.access-status {
    display: inline-flex;
    padding: 5px 8px;
    border-radius: 999px;
    font-size: 9px;
    font-weight: 850;
    text-transform: uppercase;
}

.access-status.is-active {
    color: #08766f;
    background: #dcf8f4;
}

.access-status.is-inactive {
    color: #8b5660;
    background: #f7e8eb;
}

.table-action {
    color: var(--endor-teal-strong);
    font-weight: 800;
    text-decoration: none;
}

.access-form-panel {
    max-width: 660px;
    padding: 28px;
}

.access-form-actions {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 6px;
}

.form-guidance {
    margin: -3px 0 0;
    color: #71828e;
    font-size: 11px;
    line-height: 1.5;
}

.account-panel {
    max-width: 760px;
    padding: 26px;
}

.account-details {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 22px;
    margin: 0;
}

.account-details div {
    display: grid;
    gap: 5px;
}

.account-details dt {
    color: #7b8d99;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.07em;
    text-transform: uppercase;
}

.account-details dd {
    margin: 0;
    color: var(--endor-navy);
    font-size: 14px;
    font-weight: 700;
}

.empty-access-panel {
    max-width: 620px;
    margin: 8vh auto 0;
    padding: 48px;
    text-align: center;
}

.empty-access-icon {
    display: grid;
    width: 58px;
    height: 58px;
    margin: 0 auto 18px;
    border-radius: 18px;
    place-items: center;
    color: var(--endor-teal-strong);
    background: rgba(0, 184, 181, 0.1);
    font-size: 26px;
}

.empty-access-panel p {
    margin: 10px auto 24px;
    color: #647786;
    line-height: 1.6;
}

@media (max-width: 820px) {
    .atlas-login-page {
        align-items: flex-start;
        padding: 16px;
    }

    .endor-login-shell {
        width: min(620px, 100%);
        min-height: 0;
        grid-template-columns: minmax(0, 1fr);
    }

    .endor-login-story {
        min-height: 280px;
        padding: 32px 30px;
    }

    .endor-login-copy h1 {
        max-width: 520px;
        font-size: 2rem;
    }

    .endor-login-form-panel {
        padding: 34px 30px;
    }
}

@media (max-width: 680px) {
    .account-details { grid-template-columns: 1fr; }
    .access-form-actions { align-items: stretch; flex-direction: column-reverse; }
    .access-form-actions .button { justify-content: center; }
}

@media (max-width: 480px) {
    .atlas-login-page {
        padding: 0;
    }

    .endor-login-shell {
        width: 100%;
        min-height: 100vh;
        min-height: 100svh;
        align-content: start;
        border: 0;
        border-radius: 0;
    }

    .endor-login-story {
        min-height: 220px;
        padding: 24px 22px;
    }

    .endor-login-logo {
        width: min(180px, 68%);
    }

    .endor-login-copy p,
    .endor-login-product-link {
        display: none;
    }

    .endor-login-copy h1 {
        margin-bottom: 0;
        font-size: 1.55rem;
    }

    .endor-login-form-panel {
        padding: 28px 22px;
    }

    .endor-login-actions {
        align-items: center;
        flex-direction: row;
    }

    .endor-login-actions .button {
        width: auto;
    }
}

/* Geospatial analysis */
.geo-heading {
    align-items: center;
}

.geo-heading p {
    max-width: 760px;
    margin: 10px 0 0;
    color: var(--muted);
    line-height: 1.6;
}

.geo-heading-badge {
    display: grid;
    min-width: 150px;
    grid-template-columns: 36px 1fr;
    gap: 1px 9px;
    padding: 11px 13px;
    border: 1px solid #dcebea;
    border-radius: 13px;
    background: #f5fbfb;
}

.geo-heading-badge > span {
    display: inline-flex;
    width: 36px;
    height: 36px;
    grid-row: 1 / 3;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    color: var(--endor-navy);
    background: var(--endor-cyan);
    font-size: 19px;
}

.geo-heading-badge strong {
    align-self: end;
    color: var(--endor-navy);
    font-size: 11px;
}

.geo-heading-badge small {
    color: var(--muted-light);
    font-size: 8px;
}

.geo-filter-panel {
    display: grid;
    grid-template-columns: repeat(4, minmax(120px, 1fr)) minmax(120px, 0.8fr) auto auto;
    align-items: end;
    gap: 10px;
    margin-bottom: 14px;
    padding: 14px;
    border: 1px solid var(--line-soft);
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 8px 28px rgba(6, 19, 30, 0.045);
}

.geo-filter-field {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 6px;
}

.geo-filter-field label {
    color: #607487;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.geo-filter-field input,
.geo-filter-field select {
    width: 100%;
    height: 40px;
    margin: 0;
    padding: 0 10px;
    border: 1px solid var(--line);
    border-radius: 9px;
    outline: 0;
    color: var(--ink);
    background: #fbfcfd;
    font: inherit;
    font-size: 10px;
}

.geo-filter-field input:focus,
.geo-filter-field select:focus {
    border-color: var(--endor-teal);
    box-shadow: 0 0 0 3px rgba(0, 184, 181, 0.09);
}

.geo-filter-submit {
    color: #031316;
    background: var(--endor-teal);
}

.geo-area-submit {
    color: var(--ink);
    border-color: var(--line);
    background: #fff;
}

.geo-area-submit.is-dirty {
    color: var(--endor-teal-strong);
    border-color: var(--endor-teal);
    box-shadow: 0 0 0 3px rgba(0, 184, 181, 0.08);
}

.geo-filter-panel[aria-busy="true"] .button {
    opacity: 0.62;
    pointer-events: none;
}

.geo-workspace {
    display: grid;
    min-height: 620px;
    grid-template-columns: minmax(0, 1fr) 278px;
    overflow: hidden;
    border: 1px solid var(--line-soft);
    border-radius: var(--radius-card);
    background: #fff;
    box-shadow: var(--shadow-card);
}

.geo-map-shell {
    position: relative;
    z-index: 0;
    min-width: 0;
    min-height: 620px;
    isolation: isolate;
    background: #e8eef1;
}

.geo-map {
    width: 100%;
    height: 620px;
}

.geo-map-status {
    position: absolute;
    z-index: 700;
    top: 13px;
    left: 54px;
    max-width: min(390px, calc(100% - 210px));
    padding: 8px 11px;
    border: 1px solid rgba(16, 35, 52, 0.12);
    border-radius: 8px;
    color: #526b7d;
    background: rgba(255, 255, 255, 0.92);
    box-shadow: 0 6px 18px rgba(6, 19, 30, 0.09);
    font-size: 9px;
    font-weight: 700;
    backdrop-filter: blur(9px);
}

.geo-map-status[data-state="error"] {
    color: #9e3333;
    border-color: rgba(240, 107, 107, 0.4);
    background: rgba(255, 247, 247, 0.96);
}

.geo-legend {
    position: absolute;
    z-index: 700;
    bottom: 22px;
    left: 13px;
    display: flex;
    gap: 13px;
    padding: 8px 10px;
    border: 1px solid rgba(16, 35, 52, 0.11);
    border-radius: 8px;
    color: #607487;
    background: rgba(255, 255, 255, 0.93);
    box-shadow: 0 6px 18px rgba(6, 19, 30, 0.08);
    font-size: 8px;
    font-weight: 700;
    backdrop-filter: blur(9px);
}

.geo-legend span {
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

.geo-legend i {
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
}

.geo-legend .legend-erb { background: #e89b57; }
.geo-legend .legend-observation { background: #9a7cff; }
.geo-legend .legend-track {
    width: 14px;
    height: 2px;
    border-radius: 0;
    background: #55708a;
}

.geo-insight-panel {
    padding: 22px 19px;
    border-left: 1px solid var(--line-soft);
    background: #fff;
}

.geo-insight-panel h2 {
    margin: 0;
    color: var(--endor-navy);
    font-size: 18px;
    letter-spacing: -0.03em;
}

.geo-metrics {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 7px;
    margin: 18px 0;
}

.geo-metrics div {
    padding: 10px 7px;
    border: 1px solid var(--line-soft);
    border-radius: 10px;
    background: #f8fafc;
    text-align: center;
}

.geo-metrics dt {
    color: var(--muted-light);
    font-size: 7px;
    font-weight: 750;
    text-transform: uppercase;
}

.geo-metrics dd {
    margin: 4px 0 0;
    color: var(--endor-navy);
    font-size: 20px;
    font-weight: 800;
    letter-spacing: -0.05em;
}

.geo-insight-note {
    margin-top: 10px;
    padding: 12px;
    border: 1px solid #dcebea;
    border-radius: 11px;
    background: #f5fbfb;
}

.geo-insight-note strong {
    color: #355261;
    font-size: 10px;
}

.geo-insight-note p,
.geo-limit-warning {
    margin: 5px 0 0;
    color: #718594;
    font-size: 9px;
    line-height: 1.55;
}

.geo-limit-warning {
    padding: 10px;
    border: 1px solid rgba(240, 180, 77, 0.35);
    border-radius: 9px;
    color: #8a641c;
    background: rgba(240, 180, 77, 0.11);
}

.geo-popup {
    min-width: 180px;
    color: #536879;
    font-family: Manrope, "Segoe UI", Arial, sans-serif;
    font-size: 10px;
}

.geo-popup > strong {
    display: block;
    margin-bottom: 7px;
    color: var(--endor-navy);
    font-size: 12px;
}

.geo-popup p {
    margin: 3px 0;
}

.geo-popup p span {
    color: #7f93a6;
    font-weight: 750;
}

.geo-map .leaflet-control-layers {
    border: 1px solid rgba(16, 35, 52, 0.12);
    border-radius: 9px;
    box-shadow: 0 6px 18px rgba(6, 19, 30, 0.08);
    color: #536879;
    font: 9px Manrope, "Segoe UI", Arial, sans-serif;
}

.geo-map .leaflet-control-attribution {
    font-size: 8px;
}

@media (max-width: 1320px) {
    .geo-filter-panel {
        grid-template-columns: repeat(3, minmax(140px, 1fr));
    }
}

@media (max-width: 930px) {
    .geo-workspace {
        grid-template-columns: minmax(0, 1fr);
    }

    .geo-insight-panel {
        border-top: 1px solid var(--line-soft);
        border-left: 0;
    }

    .geo-map,
    .geo-map-shell {
        height: 560px;
        min-height: 560px;
    }
}

@media (max-width: 680px) {
    .geo-heading-badge {
        display: none;
    }

    .geo-filter-panel {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .geo-filter-submit,
    .geo-area-submit {
        width: 100%;
    }

    .geo-map,
    .geo-map-shell {
        height: 500px;
        min-height: 500px;
    }

    .geo-map-status {
        top: 56px;
        left: 10px;
        max-width: calc(100% - 20px);
    }

    .geo-legend {
        right: 10px;
        bottom: 28px;
        left: 10px;
        justify-content: center;
    }
}

@media (max-width: 460px) {
    .geo-filter-panel {
        grid-template-columns: minmax(0, 1fr);
    }

    .geo-legend {
        gap: 7px;
        font-size: 7px;
    }
}

.analysis-context-banner {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: -8px 0 24px;
    padding: 14px 16px;
    border: 1px solid rgba(0, 184, 181, 0.22);
    border-radius: var(--radius-card);
    background: linear-gradient(110deg, rgba(0, 184, 181, 0.09), rgba(36, 213, 231, 0.03));
}

.analysis-context-banner > div {
    display: flex;
    min-width: 0;
    flex: 1;
    flex-direction: column;
}

.analysis-context-banner span,
.analysis-card-list small {
    color: var(--endor-teal-strong);
    font-size: 8px;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.analysis-context-banner strong {
    margin-top: 2px;
    color: var(--endor-navy);
}

.analysis-context-banner small {
    margin-top: 2px;
    color: var(--muted);
}

.analysis-catalog-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(330px, 0.65fr);
    gap: 18px;
}

.analysis-list-panel,
.analysis-form-panel,
.analysis-sources-panel,
.source-batch-history {
    padding: 20px;
}

.source-batch-actions {
    white-space: nowrap;
}

.source-batch-actions form {
    margin: 0;
}

.button-compact {
    min-height: 2rem;
    padding: 0.35rem 0.65rem;
}

.panel-count {
    display: inline-flex;
    min-width: 30px;
    height: 30px;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    color: var(--endor-teal-strong);
    background: rgba(0, 184, 181, 0.1);
    font-size: 10px;
    font-weight: 800;
}

.analysis-card-list {
    display: grid;
    gap: 10px;
}

.analysis-card-list article {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 16px;
    border: 1px solid var(--line-soft);
    border-radius: 12px;
    background: #fbfcfd;
}

.analysis-card-list h3 {
    margin: 4px 0;
    color: var(--endor-navy);
    font-size: 15px;
}

.analysis-card-list p {
    margin: 0;
    color: var(--muted);
    font-size: 10px;
}

.analysis-form {
    display: grid;
    gap: 14px;
}

.analysis-form textarea {
    min-height: 92px;
    resize: vertical;
}

.analysis-source-picker {
    display: grid;
    gap: 8px;
    min-width: 0;
    margin: 0;
    padding: 0;
    border: 0;
}

.analysis-source-picker legend {
    margin-bottom: 8px;
    color: var(--endor-navy);
    font-size: 11px;
    font-weight: 800;
}

.analysis-source-picker label {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 11px;
    border: 1px solid var(--line-soft);
    border-radius: 10px;
    background: #fbfcfd;
}

.analysis-source-picker input {
    width: 16px;
    height: 16px;
    flex: 0 0 16px;
    margin: 0;
}

.analysis-source-picker label > span {
    display: flex;
    min-width: 0;
    flex-direction: column;
}

.analysis-source-picker strong {
    overflow: hidden;
    color: var(--ink);
    font-size: 11px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.analysis-source-picker small {
    margin-top: 2px;
    color: var(--muted);
    font-size: 8px;
}

.analysis-source-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.inference-scope-panel {
    margin-bottom: 16px;
    padding: 18px 20px;
}

.inference-scope-form {
    display: grid;
    grid-template-columns: minmax(280px, 1fr) auto auto;
    align-items: end;
    gap: 10px;
}

.inference-scope-form .form-field {
    margin: 0;
}

.inference-notice {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 16px;
    padding: 14px 16px;
    border: 1px solid rgba(0, 184, 181, 0.2);
    border-radius: 12px;
    background: rgba(0, 184, 181, 0.055);
}

.inference-notice.is-warning {
    border-color: rgba(231, 157, 49, 0.28);
    background: rgba(255, 188, 76, 0.09);
}

.inference-notice > span {
    display: inline-flex;
    width: 26px;
    height: 26px;
    flex: 0 0 26px;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    color: var(--endor-teal-strong);
    background: #fff;
    font-weight: 900;
}

.inference-notice strong {
    color: var(--endor-navy);
    font-size: 12px;
}

.inference-notice p {
    margin: 3px 0 0;
    color: var(--muted);
    font-size: 10px;
    line-height: 1.55;
}

.inference-status-tabs {
    display: flex;
    gap: 6px;
    margin: 18px 0 12px;
}

.inference-status-tabs a {
    padding: 8px 12px;
    border: 1px solid var(--line);
    border-radius: 9px;
    color: var(--muted);
    background: #fff;
    font-size: 10px;
    font-weight: 800;
}

.inference-status-tabs a.is-active {
    color: var(--endor-navy);
    border-color: rgba(0, 184, 181, 0.4);
    background: rgba(0, 184, 181, 0.1);
}

.inference-queue {
    display: grid;
    gap: 12px;
}

.inference-card {
    padding: 18px;
    border-left: 4px solid #efb94c;
}

.inference-card.status-approved {
    border-left-color: var(--endor-teal);
}

.inference-card.status-rejected {
    border-left-color: #aab7c1;
    opacity: 0.86;
}

.inference-card > header,
.inference-card > footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
}

.inference-state {
    color: #a36b0d;
    font-size: 8px;
    font-weight: 900;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.status-approved .inference-state {
    color: var(--endor-teal-strong);
}

.status-rejected .inference-state {
    color: var(--muted);
}

.inference-card h2 {
    margin: 3px 0 0;
    color: var(--endor-navy);
    font-size: 16px;
}

.inference-confidence {
    color: var(--endor-navy);
    font-size: 18px;
}

.inference-confidence small {
    display: block;
    color: var(--muted);
    font-size: 7px;
    letter-spacing: 0.08em;
    text-align: right;
    text-transform: uppercase;
}

.inference-relation {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(90px, 0.25fr) minmax(0, 1fr);
    align-items: center;
    gap: 10px;
    margin: 16px 0;
}

.inference-relation > div {
    display: flex;
    min-width: 0;
    flex-direction: column;
    padding: 13px;
    border: 1px solid var(--line-soft);
    border-radius: 11px;
    background: #fbfcfd;
}

.inference-relation > div small,
.inference-relation > div span {
    color: var(--muted);
    font-size: 8px;
}

.inference-relation > div strong {
    margin: 2px 0;
    overflow: hidden;
    color: var(--ink);
    font-size: 12px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.inference-arrow {
    display: flex;
    flex-direction: column;
    color: var(--endor-teal-strong);
    font-size: 23px;
    text-align: center;
}

.inference-arrow small {
    color: var(--muted);
    font-size: 8px;
}

.inference-rationale {
    margin: 0 0 14px;
    color: #526777;
    font-size: 11px;
    line-height: 1.6;
}

.inference-evidence {
    margin-bottom: 14px;
    border: 1px solid var(--line-soft);
    border-radius: 10px;
    background: #fbfcfd;
}

.inference-evidence summary {
    padding: 11px 13px;
    color: var(--endor-navy);
    cursor: pointer;
    font-size: 10px;
    font-weight: 800;
}

.inference-evidence > div {
    display: grid;
    gap: 8px;
    padding: 0 12px 12px;
}

.inference-evidence article {
    padding: 11px;
    border: 1px solid var(--line-soft);
    border-radius: 9px;
    background: #fff;
}

.inference-evidence article > strong,
.inference-evidence article > small {
    display: block;
}

.inference-evidence article > strong {
    color: var(--ink);
    font-size: 10px;
}

.inference-evidence article > small,
.inference-card > footer > small,
.inference-reviewed-by {
    color: var(--muted);
    font-size: 8px;
}

.inference-evidence dl {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 5px 12px;
    margin: 9px 0 0;
}

.inference-evidence dl div {
    display: grid;
    grid-template-columns: minmax(80px, 0.4fr) minmax(0, 1fr);
    gap: 6px;
    font-size: 8px;
}

.inference-evidence dt {
    overflow: hidden;
    color: var(--muted);
    font-weight: 800;
    text-overflow: ellipsis;
}

.inference-evidence dd {
    min-width: 0;
    margin: 0;
    overflow-wrap: anywhere;
}

.inference-card > footer form,
.inference-analysis-banner form {
    margin: 0;
}

.inference-empty-state {
    min-height: 220px;
}

.source-batch-history {
    margin-top: 18px;
}

@media (max-width: 1100px) {
    .analysis-catalog-layout {
        grid-template-columns: 1fr;
    }

    .analysis-source-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 680px) {
    .analysis-context-banner,
    .analysis-card-list article {
        align-items: stretch;
        flex-direction: column;
    }

    .analysis-source-grid {
        grid-template-columns: 1fr;
    }

    .inference-scope-form,
    .inference-relation,
    .inference-evidence dl {
        grid-template-columns: 1fr;
    }

    .inference-card > header,
    .inference-card > footer {
        align-items: stretch;
        flex-direction: column;
    }

    .inference-confidence small {
        display: inline;
    }
}
