/* LUMA Capture authoring — Soft Tiles map + left rail (URL path google-capture/) */

:root {
    --ame-accent: var(--luma-color-accent, #00a3e0);
    --ame-accent-2: var(--luma-color-accent-2, #5ce1ff);
    --ame-accent-soft: var(--luma-color-accent-soft, rgba(0, 163, 224, 0.14));
    --ame-success: var(--luma-color-success, #2ecc71);
    --ame-warning: var(--luma-color-warning, #f59e0b);
    --ame-danger: var(--luma-color-danger, #ef4444);
    --ame-surface: var(--luma-surface-body, #0b1117);
    --ame-panel: var(--luma-surface-card, #151d28);
    --ame-header: var(--luma-surface-header, #1a232f);
    --ame-input: var(--luma-surface-input, #1f2a38);
    --ame-hover: var(--luma-surface-hover, #212c3b);
    --ame-text: var(--luma-text-main, #e0e0e0);
    --ame-heading: var(--luma-text-heading, #ffffff);
    --ame-muted: var(--luma-text-muted, #8b9bb4);
    --ame-faint: var(--luma-text-faint, #6b7280);
    --ame-border: var(--luma-border, #2e3d52);
    --ame-line: var(--luma-border-soft, #1f2a38);
    --ame-border-strong: var(--luma-border-strong, #3d516d);
    --ame-touch: var(--luma-touch-min, 44px);
    --ame-left-w: var(--luma-rail-width, 360px);
}

.gc-page {
    margin: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
    font-family: var(--luma-font-family, 'Inter', 'Segoe UI', system-ui, sans-serif);
    background: var(--ame-surface);
    color: #e5e7eb; /* token-oneoff: palette */
    user-select: none;
    display: flex;
    flex-direction: column;
}

html, body {
    width: 100%;
    height: 100%;
}

#gc-app {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    width: 100%;
    min-height: 0;
    min-width: 0;
    position: relative;
}

.gc-app-body {
    display: flex;
    flex-direction: row;
    flex: 1 1 auto;
    min-height: 0;
    width: 100%;
}

/* —— Classic full-bleed application menubar (page top, not rail) —— */
.gc-menubar {
    flex: 0 0 auto;
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 0;
    width: 100%;
    box-sizing: border-box;
    min-height: 40px;
    height: auto;
    padding: 4px 8px 4px 10px; /* token-oneoff: off-scale spacing */
    background: #121a24; /* token-oneoff: palette */
    border-bottom: 1px solid #2a3a4f; /* token-oneoff: palette */
    z-index: 100; /* token-oneoff: local stacking */
    position: relative;
}

.gc-menubar-brand {
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
    flex-shrink: 0;
    height: auto;
    box-sizing: border-box;
    margin-right: 10px; /* token-oneoff: off-scale spacing */
    padding-right: 10px; /* token-oneoff: off-scale spacing */
    border-right: 1px solid #2a3a4f; /* token-oneoff: palette */
}

.gc-menubar-brand-stack {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 2px; /* token-oneoff: off-scale spacing */
    min-width: 0;
}

/* Logo + product name as one left-aligned lockup (shared cap height / baseline). */
.gc-menubar-wordmark {
    display: inline-flex;
    align-items: flex-end;
    justify-content: flex-start;
    gap: 0;
    line-height: 1;
}

.gc-menubar-logo {
    display: block;
    /* ~10% under prior 18px; flex-end keeps baseline with Capture. */
    height: 16px;
    width: auto;
    max-height: none;
    flex: 0 0 auto;
    margin: 0;
    /* SVG foot pad sits below ink — nudge up to meet Capture baseline. */
    margin-bottom: 2px; /* token-oneoff: off-scale spacing */
    object-fit: contain;
    object-position: left bottom;
}

.gc-menubar-title {
    margin: 0;
    /* Word space after LUMA mark. */
    margin-left: 6px; /* token-oneoff: off-scale spacing */
    padding: 0;
    font-size: 18px; /* token-oneoff: off-scale type */
    font-weight: 650; /* token-oneoff: off-scale weight */
    line-height: 1;
    letter-spacing: 0.01em;
    color: #e5e7eb; /* token-oneoff: palette */
    white-space: nowrap;
    flex: 0 0 auto;
}

.gc-menubar-menus {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 0;
    flex: 0 1 auto;
    min-width: 0;
}

.gc-menu {
    position: relative;
    display: flex;
    align-items: center;
}

.gc-menu-trigger {
    appearance: none;
    border: none;
    background: transparent;
    color: #d1d5db; /* token-oneoff: palette */
    font: inherit;
    font-size: var(--luma-font-md);
    font-weight: var(--luma-weight-medium);
    padding: 0 11px; /* token-oneoff: off-scale spacing */
    border-radius: 0;
    cursor: default;
    line-height: 28px; /* token-oneoff: leading */
}

.gc-menu-trigger:hover,
.gc-menu.is-open > .gc-menu-trigger {
    background: rgba(0, 163, 224, 0.22); /* token-oneoff: glass */
    color: #f9fafb; /* token-oneoff: palette */
}

.gc-menu-panel {
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 220px;
    padding: var(--luma-space-1);
    margin: 0;
    list-style: none;
    background: #1a2433; /* token-oneoff: palette */
    border: 1px solid #2a3a4f; /* token-oneoff: palette */
    border-radius: 0 0 6px 6px; /* token-oneoff: off-scale radius */
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.45); /* token-oneoff: shadow */
    z-index: 200; /* token-oneoff: local stacking */
}

.gc-menu-panel--flyout {
    top: -1px;
    left: calc(100% + 1px);
    min-width: 240px;
    border-radius: var(--luma-radius-xs);
}

.gc-menu-item {
    display: block;
    width: 100%;
    box-sizing: border-box;
    appearance: none;
    border: none;
    background: transparent;
    color: #e5e7eb; /* token-oneoff: palette */
    font: inherit;
    font-size: var(--luma-font-md);
    font-weight: var(--luma-weight-medium);
    text-align: left;
    text-decoration: none;
    padding: 6px 10px; /* token-oneoff: off-scale spacing */
    border-radius: 3px; /* token-oneoff: off-scale radius */
    cursor: default;
}

a.gc-menu-item {
    color: #e5e7eb; /* token-oneoff: palette */
}

.gc-menu-item:hover,
.gc-menu-item:focus-visible {
    background: rgba(0, 163, 224, 0.22); /* token-oneoff: glass */
    color: #e0f2fe; /* token-oneoff: palette */
    outline: none;
}

.gc-menu-item:disabled,
.gc-menu-item[disabled] {
    opacity: 0.45;
    cursor: default;
    pointer-events: none;
}

.gc-menu-item[hidden],
.gc-menu-item[hidden][disabled] {
    display: none !important;
}

.gc-menu-item--submenu {
    position: relative;
}

.gc-menu-item--submenu::after {
    content: '▸';
    float: right;
    opacity: 0.7;
}

.gc-menu-sep {
    height: 1px;
    margin: 4px 6px; /* token-oneoff: off-scale spacing */
    background: #2a3a4f; /* token-oneoff: palette */
}

.gc-menu-empty,
.gc-menu-meta {
    margin: 0;
    padding: 8px 10px; /* token-oneoff: off-scale spacing */
    font-size: var(--luma-font-sm);
    color: #9ca3af; /* token-oneoff: palette */
}

.gc-menu-recent-list {
    max-height: 240px;
    overflow: auto;
}

.gc-menubar-working {
    margin: 0;
    max-width: min(420px, 40vw);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: var(--luma-font-sm);
    color: #9ca3af; /* token-oneoff: palette */
    align-self: center;
    line-height: 1.2; /* token-oneoff: leading */
    padding: 0;
}

.gc-menubar-end {
    margin-left: auto;
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: var(--luma-space-3);
    flex-shrink: 0;
    min-width: 0;
    padding-left: var(--luma-space-3);
}

.gc-build-badge {
    display: inline-flex;
    align-items: center;
    flex-shrink: 0;
    padding: 0 2px; /* token-oneoff: off-scale spacing */
    color: #9ca3af; /* token-oneoff: palette */
    font: 500 11px/1 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    letter-spacing: 0.02em;
    user-select: none;
    white-space: nowrap;
}

.gc-build-badge--brand {
    padding: 0;
    font-size: var(--luma-font-xs);
    font-weight: var(--luma-weight-medium);
    letter-spacing: 0.04em;
    color: rgba(255, 255, 255, 0.55); /* token-oneoff: glass */
}

.gc-menubar-session-wrap {
    position: relative;
    flex-shrink: 0;
}

.gc-menubar-session {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: var(--luma-space-1) var(--luma-space-3);
    flex-shrink: 0;
    min-width: 0;
    font-size: var(--luma-font-sm);
    line-height: 1.35; /* token-oneoff: leading */
    color: #9ca3af; /* token-oneoff: palette */
    text-align: right;
}

.gc-menubar-session-state {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: var(--luma-space-1) var(--luma-space-3);
    min-width: 0;
}

.gc-menubar-session-state[hidden] {
    display: none !important;
}

.gc-menu--session-signin {
    display: inline-flex;
    align-items: center;
}

.gc-menu--session-signin > .gc-menu-trigger {
    padding: 0;
    line-height: 1.35; /* token-oneoff: leading */
    font-size: var(--luma-font-sm);
    font-weight: var(--luma-weight-semibold);
    color: #9ca3af; /* token-oneoff: palette */
    border-radius: var(--luma-radius-2xs);
}

.gc-menu--session-signin > .gc-menu-trigger:hover,
.gc-menu--session-signin.is-open > .gc-menu-trigger {
    background: transparent;
    color: #e5e7eb; /* token-oneoff: palette */
}

.gc-menubar-signin-panel {
    right: 0;
    left: auto;
    min-width: 260px;
    max-width: min(92vw, 320px);
    padding: 10px; /* token-oneoff: off-scale spacing */
    margin-top: var(--luma-space-1);
    border-radius: var(--luma-radius-xs);
    user-select: text;
}

.gc-menubar-signin-panel .gc-field-block {
    margin-bottom: var(--luma-space-2);
}

.gc-menubar-signin-panel .gc-btn-row {
    margin-top: var(--luma-space-1);
}

.gc-menubar-signin-title {
    margin: 0 0 var(--luma-space-2);
    font-size: var(--luma-font-md);
    font-weight: var(--luma-weight-semibold);
    color: #e5e7eb; /* token-oneoff: palette */
}

.gc-menubar-session-label {
    margin: 0;
    min-width: 0;
}

.gc-menubar-session-label strong {
    color: #f3f4f6; /* token-oneoff: palette */
    font-weight: var(--luma-weight-semibold);
}

.gc-menubar-session-link {
    color: #9ca3af; /* token-oneoff: palette */
    font-size: var(--luma-font-sm);
    font-weight: var(--luma-weight-semibold);
    text-decoration: none;
    flex-shrink: 0;
    appearance: none;
    border: none;
    background: transparent;
    font-family: inherit;
    cursor: default;
    padding: 0;
}

.gc-menubar-session-link:hover,
.gc-menubar-session-link:focus-visible {
    color: #e5e7eb; /* token-oneoff: palette */
    outline: none;
}

.gc-menubar-session-link:focus-visible {
    outline: 2px solid var(--luma-color-accent, #00a3e0);
    outline-offset: 2px;
    border-radius: var(--luma-radius-2xs);
}

.gc-menubar-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
}

.gc-page.gc-sv-disabled [data-gc-mode-menu="streetview"] {
    display: none !important;
}

.gc-rail {
    width: 300px;
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    gap: 0;
    background: rgba(15, 22, 32, 0.96); /* token-oneoff: glass */
    border-right: 1px solid #2a3a4f; /* token-oneoff: palette */
    z-index: 20; /* token-oneoff: local stacking */
    overflow: hidden;
    padding: 0;
    box-sizing: border-box;
    min-height: 0;
    height: auto;
    align-self: stretch;
}

.gc-rail-scroll {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    padding: 16px 14px 12px; /* token-oneoff: off-scale spacing */
    box-sizing: border-box;
}

.gc-rail-dock {
    flex: 0 0 auto;
    padding: 12px 14px 16px; /* token-oneoff: off-scale spacing */
    border-top: 1px solid #2a3a4f; /* token-oneoff: palette */
    background: rgba(11, 17, 23, 0.98); /* token-oneoff: glass */
    box-shadow: 0 -8px 16px rgba(0, 0, 0, 0.25); /* token-oneoff: shadow */
}

.gc-mesh-actions {
    display: flex;
    flex-direction: column;
    gap: var(--luma-space-2);
    margin-bottom: 10px; /* token-oneoff: off-scale spacing */
}

.gc-mesh-actions .gc-btn[hidden] {
    display: none;
}

.gc-mesh-actions .gc-btn-ghost {
    font-weight: var(--luma-weight-medium);
}

.gc-rail-dock .gc-hint {
    margin: var(--luma-space-2) 0 0;
}

.gc-rail-dock .gc-hint + .gc-hint {
    margin-top: var(--luma-space-1);
}

.gc-harvest-progress {
    margin-top: 0;
    padding: 14px 16px; /* token-oneoff: off-scale spacing */
    border: 1px solid #2a3a4f; /* token-oneoff: palette */
    border-radius: var(--luma-radius-md);
    background: rgba(21, 29, 40, 0.98); /* token-oneoff: glass */
    max-width: 420px;
    width: min(420px, calc(100vw - 32px));
    box-shadow: 0 16px 48px rgba(0, 0, 0, 0.45); /* token-oneoff: shadow */
}

.gc-capture-eta {
    margin: var(--luma-space-2) 0 0;
    font-size: var(--luma-font-md);
    font-weight: 650; /* token-oneoff: off-scale weight */
    line-height: 1.35; /* token-oneoff: leading */
    text-align: center;
}

.gc-capture-eta.is-green { color: #86efac; /* token-oneoff: palette */ }
.gc-capture-eta.is-amber { color: #fbbf24; /* token-oneoff: palette */ }
.gc-capture-eta.is-red { color: #fca5a5; /* token-oneoff: palette */ }
.gc-capture-eta.is-muted { color: var(--ame-faint); font-weight: var(--luma-weight-medium); }

.gc-harvest-modal {
    position: fixed;
    inset: 0;
    z-index: 12000; /* token-oneoff: local stacking */
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--luma-space-4);
}

.gc-harvest-modal[hidden] {
    display: none !important;
}

.gc-harvest-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(6, 10, 16, 0.72); /* token-oneoff: glass */
    backdrop-filter: blur(2px); /* token-oneoff: blur */
}

.gc-harvest-modal-dialog {
    position: relative;
    z-index: 1;
}

.gc-harvest-modal-actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--luma-space-2);
    justify-content: flex-end;
    margin-top: var(--luma-space-3);
}

.gc-harvest-import-actions {
    margin-top: var(--luma-space-3);
    padding-top: 10px; /* token-oneoff: off-scale spacing */
    border-top: 1px solid rgba(148, 163, 184, 0.22); /* token-oneoff: glass */
}

.gc-harvest-import-hint {
    margin: 0 0 var(--luma-space-2);
}

.gc-harvest-import-btns {
    display: flex;
    flex-wrap: wrap;
    gap: var(--luma-space-2);
}

.gc-harvest-import-btns .gc-btn-primary {
    flex: 1 1 auto;
    min-width: 10rem;
}

.gc-choice-modal {
    z-index: 14000; /* token-oneoff: local stacking */
}

.gc-choice-modal .gc-send-dialog {
    max-width: 420px;
}

/* Recent project folders inside the boot gate reuse the menu row look. */
#gcSiteGateRecentList {
    display: flex;
    flex-direction: column;
    gap: 2px; /* token-oneoff: off-scale spacing */
    max-height: 168px;
    overflow: auto;
}

#gcSiteGateRecentList .gc-menu-item {
    background: rgba(148, 163, 184, 0.10); /* token-oneoff: glass */
    cursor: pointer;
}

#gcSiteGateRecentList .gc-menu-item:hover {
    background: rgba(0, 163, 224, 0.22); /* token-oneoff: glass */
}

/* Before a saved .lumasite: Boundary + Helper dock visible; Panoramas locked */
body.gc-phase-drawing #gcModeTabs [data-gc-mode="streetview"],
body.gc-phase-drawing .gc-menubar-menus [data-gc-mode-menu="streetview"],
body.gc-phase-drawing #gcPanelStreetView,
body.gc-phase-drawing #gcRailDockSv,
body.gc-phase-drawing #gcRailRight,
body.gc-phase-drawing #gcZonesSection,
body.gc-phase-drawing #gcMenuSendMaxBtn {
    display: none !important;
}

/* Keep Site / 3D Map panel; hide mesh-only zone chrome until ready */
body.gc-phase-drawing #gcPanelMesh #gcZonesSection,
body.gc-phase-drawing #gcMeshModeHint {
    display: none !important;
}

.gc-harvest-folder-link {
    color: var(--luma-vista-accent-2);
    text-decoration: underline;
    text-underline-offset: 2px;
    cursor: pointer;
    background: none;
    border: none;
    padding: 0;
    font: inherit;
    font-weight: 650; /* token-oneoff: off-scale weight */
    text-align: left;
}

.gc-harvest-folder-link:hover,
.gc-harvest-folder-link:focus-visible {
    color: #bae6fd; /* token-oneoff: palette */
}

.gc-harvest-progress.is-cancelled {
    border-color: rgba(251, 191, 36, 0.4); /* token-oneoff: glass */
    background: rgba(50, 40, 10, 0.4); /* token-oneoff: glass */
}

.gc-harvest-progress.is-cancelled .gc-harvest-status-label {
    color: #fbbf24; /* token-oneoff: palette */
}

.gc-harvest-progress.is-cancelled .gc-harvest-detail {
    color: #fde68a; /* token-oneoff: palette */
}

/* —— Send to 3ds Max sheet —— */
.gc-send-dialog {
    max-width: 440px;
    width: min(440px, calc(100vw - 32px));
    padding: 20px 20px 16px; /* token-oneoff: off-scale spacing */
    background: var(--gc-panel, #1a1d24);
    border: 1px solid rgba(255, 255, 255, 0.1); /* token-oneoff: glass */
    border-radius: 10px; /* token-oneoff: off-scale radius */
    color: #e8eaed; /* token-oneoff: palette */
}

.gc-send-head {
    margin-bottom: var(--luma-space-3);
}

.gc-send-title {
    margin: 0 0 var(--luma-space-1);
    font-size: 17px; /* token-oneoff: off-scale type */
    font-weight: 650; /* token-oneoff: off-scale weight */
}

.gc-send-section-label {
    margin: 0 0 var(--luma-space-2);
    font-size: var(--luma-font-md);
    font-weight: 650; /* token-oneoff: off-scale weight */
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #9aa0a6; /* token-oneoff: palette */
}

.gc-send-checklist {
    display: flex;
    flex-direction: column;
    gap: 10px; /* token-oneoff: off-scale spacing */
}

.gc-send-check-row {
    display: flex;
    flex-direction: column;
    gap: 6px; /* token-oneoff: off-scale spacing */
    padding: 10px 12px; /* token-oneoff: off-scale spacing */
    border-radius: var(--luma-radius-sm);
    background: rgba(255, 255, 255, 0.04); /* token-oneoff: glass */
    border: 1px solid rgba(255, 255, 255, 0.06); /* token-oneoff: glass */
}

.gc-send-check-row label.gc-send-check {
    display: flex;
    align-items: flex-start;
    gap: var(--luma-space-2);
    font-size: 14px; /* token-oneoff: off-scale type */
    cursor: pointer;
}

.gc-send-check-row .gc-send-sub {
    margin-left: var(--luma-space-5);
    display: flex;
    flex-direction: column;
    gap: var(--luma-space-1);
    font-size: var(--luma-font-lg);
    color: #bdc1c6; /* token-oneoff: palette */
}

.gc-send-check-row .gc-send-sub label {
    display: flex;
    align-items: center;
    gap: 6px; /* token-oneoff: off-scale spacing */
    cursor: pointer;
}

.gc-send-imagery-detail {
    margin-left: var(--luma-space-5);
    font-size: var(--luma-font-md);
    color: #9aa0a6; /* token-oneoff: palette */
}

.gc-send-summary {
    margin: var(--luma-space-3) 0 0;
    font-size: var(--luma-font-lg);
    color: var(--luma-vista-accent-2);
    min-height: 1.2em;
}

.gc-send-clash-toolbar {
    display: flex;
    gap: var(--luma-space-2);
    margin-bottom: var(--luma-space-2);
}

.gc-send-clash-list {
    max-height: 240px;
    overflow: auto;
    display: flex;
    flex-direction: column;
    gap: var(--luma-space-2);
}

.gc-send-clash-row {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: var(--luma-space-2);
    align-items: center;
    padding: 8px 10px; /* token-oneoff: off-scale spacing */
    border-radius: var(--luma-radius-xs);
    background: rgba(255, 255, 255, 0.04); /* token-oneoff: glass */
    font-size: var(--luma-font-lg);
}

.gc-send-clash-row select {
    font: inherit;
    font-size: var(--luma-font-md);
    padding: 4px 6px; /* token-oneoff: off-scale spacing */
    border-radius: var(--luma-radius-2xs);
    border: 1px solid rgba(255, 255, 255, 0.15); /* token-oneoff: glass */
    background: #12141a; /* token-oneoff: palette */
    color: inherit;
}

.gc-send-progress-label {
    margin: 0 0 var(--luma-space-2);
    font-size: 15px; /* token-oneoff: off-scale type */
    font-weight: 650; /* token-oneoff: off-scale weight */
}

.gc-send-actions {
    margin-top: var(--luma-space-4);
}

html.gc-harvest-modal-open,
html.gc-harvest-modal-open body {
    overflow: hidden;
}

.gc-harvest-progress.is-done {
    border-color: rgba(34, 197, 94, 0.35); /* token-oneoff: glass */
    background: rgba(20, 40, 28, 0.45); /* token-oneoff: glass */
}

.gc-harvest-progress.is-error {
    border-color: rgba(248, 113, 113, 0.45); /* token-oneoff: glass */
    background: rgba(69, 10, 10, 0.35); /* token-oneoff: glass */
}

.gc-harvest-progress-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px; /* token-oneoff: off-scale spacing */
    margin-bottom: var(--luma-space-2);
}

.gc-harvest-elapsed {
    font-size: var(--luma-font-lg);
    font-weight: 650; /* token-oneoff: off-scale weight */
    font-variant-numeric: tabular-nums;
    color: var(--luma-vista-accent-2);
    flex-shrink: 0;
}

.gc-harvest-status-label {
    font-size: var(--luma-font-md);
    line-height: 1.35; /* token-oneoff: leading */
    color: #9ca3af; /* token-oneoff: palette */
    text-align: right;
    flex: 1;
    min-width: 0;
}

.gc-harvest-progress.is-error .gc-harvest-status-label {
    color: #fca5a5; /* token-oneoff: palette */
}

.gc-harvest-progress.is-done .gc-harvest-status-label {
    color: #86efac; /* token-oneoff: palette */
}

.gc-harvest-steps {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 3px; /* token-oneoff: off-scale spacing */
}

.gc-harvest-step {
    display: flex;
    align-items: flex-start;
    gap: var(--luma-space-2);
    font-size: var(--luma-font-sm);
    line-height: 1.35; /* token-oneoff: leading */
    color: var(--ame-faint);
}

.gc-harvest-step.is-done {
    color: #9ca3af; /* token-oneoff: palette */
}

.gc-harvest-step.is-done .gc-harvest-step-icon::before {
    content: '✓';
    color: #22c55e; /* token-oneoff: palette */
}

.gc-harvest-step.is-active {
    color: #f3f4f6; /* token-oneoff: palette */
    font-weight: var(--luma-weight-semibold);
}

.gc-harvest-step.is-active .gc-harvest-step-icon::before {
    content: '';
    display: inline-block;
    width: 10px;
    height: 10px;
    border: 2px solid #4b5563; /* token-oneoff: palette */
    border-top-color: #00a3e0;
    border-radius: 50%;
    animation: gc-harvest-spin 0.8s linear infinite;
    vertical-align: middle;
}

@keyframes gc-harvest-spin {
    to { transform: rotate(360deg); }
}

.gc-harvest-step.is-skipped {
    opacity: 0.45;
    font-style: italic;
}

.gc-harvest-step.is-error .gc-harvest-step-label {
    color: #fca5a5; /* token-oneoff: palette */
}

.gc-harvest-step-icon {
    width: 14px;
    flex-shrink: 0;
    text-align: center;
    font-size: var(--luma-font-xs);
    line-height: 1.5; /* token-oneoff: leading */
}

.gc-harvest-step-icon::before {
    content: '○';
    color: #4b5563; /* token-oneoff: palette */
}

.gc-harvest-detail {
    margin: var(--luma-space-2) 0 0;
    font-size: var(--luma-font-sm);
    line-height: 1.45; /* token-oneoff: leading */
    word-break: break-word;
    color: #9ca3af; /* token-oneoff: palette */
}

.gc-harvest-progress.is-error .gc-harvest-detail {
    color: #fca5a5; /* token-oneoff: palette */
}

.gc-harvest-progress.is-done .gc-harvest-detail {
    color: #86efac; /* token-oneoff: palette */
}

.gc-rail-head {
    margin-bottom: 18px; /* token-oneoff: off-scale spacing */
}

.gc-rail-head-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--luma-space-3);
}

.gc-rail-head-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--luma-space-3);
    margin-top: var(--luma-space-1);
}

.gc-brand {
    display: inline-block;
    height: 12px;
    width: 56px;
    flex-shrink: 0;
    margin-top: var(--luma-space-1);
    object-fit: contain;
    object-position: left center;
}

/* Menubar lockup: never inherit rail .gc-brand 12×56 sizing. */
.gc-menubar-brand .gc-menubar-logo,
.gc-menubar-brand img.gc-menubar-logo {
    display: block;
    height: 16px !important;
    width: auto !important;
    max-width: none;
    margin-top: 0 !important; /* token-oneoff: important */
    margin-bottom: 2px; /* token-oneoff: off-scale spacing */
    flex: 0 0 auto;
    object-fit: contain;
    object-position: left bottom;
}

.gc-version-inline {
    font-size: var(--luma-font-xs);
    font-weight: var(--luma-weight-medium);
    letter-spacing: 0.04em;
    color: rgba(255, 255, 255, 0.55); /* token-oneoff: glass */
    line-height: 1;
    user-select: text;
    flex-shrink: 0;
}

.gc-title {
    margin: 0;
    font-size: 18px; /* token-oneoff: off-scale type */
    font-weight: 650; /* token-oneoff: off-scale weight */
    color: #f3f4f6; /* token-oneoff: palette */
    line-height: 1.2; /* token-oneoff: leading */
    text-align: right;
}

.gc-instructions-link {
    display: inline-block;
    padding: 0;
    border: none;
    background: none;
    font: inherit;
    font-size: var(--luma-font-md);
    font-weight: var(--luma-weight-semibold);
    line-height: 1.3; /* token-oneoff: leading */
    color: var(--luma-vista-accent-2);
    text-decoration: none;
    cursor: pointer;
}

.gc-instructions-link:hover,
.gc-instructions-link:focus-visible {
    color: var(--luma-color-accent, #00a3e0);
    text-decoration: underline;
    outline: none;
}

.gc-sub {
    margin: 0;
    font-size: var(--luma-font-md);
    line-height: 1.4; /* token-oneoff: leading */
    color: #9ca3af; /* token-oneoff: palette */
}

.gc-section {
    margin-bottom: 18px; /* token-oneoff: off-scale spacing */
}

.gc-section-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--luma-space-2);
    margin: 0 0 var(--luma-space-2);
}

.gc-section-head .gc-section-title {
    margin: 0;
}

.gc-section-title {
    margin: 0 0 var(--luma-space-2);
    font-size: var(--luma-font-sm);
    font-weight: var(--luma-weight-bold);
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #9ca3af; /* token-oneoff: palette */
}

.gc-btn-row {
    display: flex;
    gap: var(--luma-space-2);
}

.gc-history-block {
    margin-top: 10px; /* token-oneoff: off-scale spacing */
}

.gc-history-hint {
    margin-top: var(--luma-space-1);
}

.gc-history-actions {
    margin-top: var(--luma-space-2);
}

#gcLivingSection #gcDownloadBtn {
    margin-top: 10px; /* token-oneoff: off-scale spacing */
}

.gc-btn {
    appearance: none;
    border: 1px solid var(--ame-border-strong);
    background: rgba(21, 29, 40, 0.95); /* token-oneoff: glass */
    color: #e5e7eb; /* token-oneoff: palette */
    border-radius: 10px; /* token-oneoff: off-scale radius */
    padding: 9px 12px; /* token-oneoff: off-scale spacing */
    font: inherit;
    font-size: var(--luma-font-lg);
    font-weight: var(--luma-weight-semibold);
    cursor: pointer;
}

.gc-btn:hover {
    border-color: var(--ame-accent);
    color: var(--luma-vista-accent-2);
}

.gc-btn:disabled {
    opacity: 0.45;
    cursor: not-allowed;
}

.gc-btn-ghost {
    background: transparent;
}

.gc-btn-primary {
    background: rgba(0, 163, 224, 0.22); /* token-oneoff: glass */
    border-color: var(--ame-accent);
    color: var(--luma-vista-accent-2);
}

.gc-btn-block {
    width: 100%;
    margin-top: var(--luma-space-2);
}

.gc-btn.is-on {
    border-color: var(--ame-accent);
    background: rgba(0, 163, 224, 0.28); /* token-oneoff: glass */
    color: var(--luma-vista-accent-2);
}

.gc-hint {
    margin: var(--luma-space-2) 0 0;
    font-size: var(--luma-font-md);
    line-height: 1.4; /* token-oneoff: leading */
    color: #9ca3af; /* token-oneoff: palette */
}

.gc-zone {
    border: 1px solid #2a3a4f; /* token-oneoff: palette */
    border-radius: 10px; /* token-oneoff: off-scale radius */
    padding: 10px; /* token-oneoff: off-scale spacing */
    margin-bottom: var(--luma-space-2);
    background: rgba(21, 29, 40, 0.55); /* token-oneoff: glass */
    cursor: pointer;
    transition: border-color 0.15s var(--luma-ease-out), box-shadow 0.15s var(--luma-ease-out);
}

.gc-zone:hover {
    border-color: #3d536e; /* token-oneoff: palette */
}

.gc-zone.is-active {
    border-color: #5b8def; /* token-oneoff: palette */
    box-shadow: 0 0 0 1px rgba(91, 141, 239, 0.35); /* token-oneoff: shadow */
}

.gc-zone .gc-field,
.gc-zone input,
.gc-zone select,
.gc-zone button {
    cursor: auto;
}

.gc-zone-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--luma-space-2);
    margin-bottom: var(--luma-space-2);
}

.gc-zone-head-main {
    display: inline-flex;
    align-items: center;
    gap: var(--luma-space-2);
    min-width: 0;
}

.gc-zone-label {
    font-size: var(--luma-font-lg);
    font-weight: 650; /* token-oneoff: off-scale weight */
    color: #f3f4f6; /* token-oneoff: palette */
}

.gc-zone-controls {
    display: flex;
    align-items: flex-end;
    gap: var(--luma-space-2);
    margin-bottom: 6px; /* token-oneoff: off-scale spacing */
}

.gc-zone-controls .gc-field {
    margin-bottom: 0;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: var(--luma-space-1);
    grid-template-columns: none;
}

.gc-zone-controls .gc-field-cap {
    font-size: var(--luma-font-sm);
    color: #9ca3af; /* token-oneoff: palette */
    line-height: 1.2; /* token-oneoff: leading */
}

.gc-zone-controls .gc-field-unit {
    opacity: 0.75;
    font-weight: var(--luma-weight-medium);
}

.gc-zone-controls .gc-field--width {
    flex: 0 0 auto;
    width: 4.75rem;
}

.gc-zone-controls .gc-field--width input {
    width: 100%;
    padding: 5px 6px; /* token-oneoff: off-scale spacing */
    text-align: right;
    font-variant-numeric: tabular-nums;
}

.gc-zone-controls .gc-field--lod {
    flex: 1 1 auto;
    min-width: 0;
}

.gc-zone-controls .gc-field--lod select {
    width: 100%;
    padding: 5px 6px; /* token-oneoff: off-scale spacing */
}

.gc-zone-stats {
    margin: 2px 0 0; /* token-oneoff: off-scale spacing */
    border-radius: var(--luma-radius-xs);
    background: rgba(0, 0, 0, 0.18); /* token-oneoff: glass */
    border: 1px solid rgba(61, 81, 109, 0.55); /* token-oneoff: glass */
}

.gc-zone-stats > summary {
    list-style: none;
    cursor: pointer;
    padding: 5px 8px; /* token-oneoff: off-scale spacing */
    font-size: var(--luma-font-sm);
    color: #c4cdd8; /* token-oneoff: palette */
    line-height: 1.35; /* token-oneoff: leading */
    user-select: none;
}

.gc-zone-stats > summary::-webkit-details-marker {
    display: none;
}

.gc-zone-stats > summary::before {
    content: '▸';
    display: inline-block;
    width: 0.9em;
    color: #8b9bb0; /* token-oneoff: palette */
    transition: transform 0.12s var(--luma-ease-out);
}

.gc-zone-stats[open] > summary::before {
    transform: rotate(90deg);
}

.gc-zone-stats-line {
    color: #9ca3af; /* token-oneoff: palette */
}

.gc-zone-stats-detail {
    list-style: none;
    margin: 0;
    padding: 0 var(--luma-space-2) var(--luma-space-2);
    display: grid;
    gap: var(--luma-space-1);
}

.gc-zone-stats-detail li {
    display: flex;
    justify-content: space-between;
    gap: 10px; /* token-oneoff: off-scale spacing */
    font-size: var(--luma-font-sm);
    line-height: 1.35; /* token-oneoff: leading */
    color: #9ca3af; /* token-oneoff: palette */
}

.gc-zone-stats-k {
    flex: 0 0 auto;
    color: #7b8798; /* token-oneoff: palette */
}

.gc-zone-stats-v {
    text-align: right;
    color: #d1d5db; /* token-oneoff: palette */
    min-width: 0;
}

.gc-zone-swatch {
    width: 22px;
    height: 22px;
    border-radius: var(--luma-radius-2xs);
    border: 1px solid rgba(255, 255, 255, 0.35); /* token-oneoff: glass */
    flex-shrink: 0;
    background: var(--gc-zone-swatch, #6b7280);
    box-sizing: border-box;
}

.gc-field {
    display: grid;
    grid-template-columns: 72px 1fr;
    align-items: center;
    gap: var(--luma-space-2);
    margin-bottom: 6px; /* token-oneoff: off-scale spacing */
    font-size: var(--luma-font-md);
    color: #9ca3af; /* token-oneoff: palette */
}

.gc-field input,
.gc-field select {
    width: 100%;
    box-sizing: border-box;
    border: 1px solid var(--ame-border-strong);
    background: var(--ame-surface);
    color: #e5e7eb; /* token-oneoff: palette */
    border-radius: var(--luma-radius-sm);
    padding: 6px 8px; /* token-oneoff: off-scale spacing */
    font: inherit;
    font-size: var(--luma-font-lg);
}

.gc-field input:focus,
.gc-field select:focus {
    outline: none;
    border-color: var(--ame-accent);
}

.gc-atlas-opt {
    display: flex;
    align-items: center;
    gap: var(--luma-space-2);
    margin: var(--luma-space-2) 0 var(--luma-space-1);
    font-size: var(--luma-font-md);
    color: #9ca3af; /* token-oneoff: palette */
    cursor: pointer;
}

#gcZoneCoverageWrap {
    margin-top: 2px; /* token-oneoff: off-scale spacing */
}

#gcLodGridToggleWrap {
    margin-top: 10px; /* token-oneoff: off-scale spacing */
}

#gcLodGridStatus {
    margin: 2px 0 0; /* token-oneoff: off-scale spacing */
}

#gcLodGridStatus.is-error {
    color: #fca5a5; /* token-oneoff: palette */
}

.gc-atlas-opt input[type="checkbox"] {
    width: auto;
    margin: 0;
}

.gc-atlas-row {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 14px; /* token-oneoff: off-scale spacing */
    align-items: flex-end;
    margin-bottom: var(--luma-space-2);
}

.gc-atlas-num {
    display: flex;
    flex-direction: column;
    gap: var(--luma-space-1);
    font-size: var(--luma-font-sm);
    color: #9ca3af; /* token-oneoff: palette */
}

.gc-atlas-num input {
    width: 88px;
    box-sizing: border-box;
    border: 1px solid var(--ame-border-strong);
    background: var(--ame-surface);
    color: #e5e7eb; /* token-oneoff: palette */
    border-radius: var(--luma-radius-sm);
    padding: 6px 8px; /* token-oneoff: off-scale spacing */
    font: inherit;
    font-size: var(--luma-font-lg);
}

.gc-stage-wrap {
    position: relative;
    flex: 1;
    min-width: 0;
    min-height: 0;
    background: var(--ame-surface);
}

.gc-stage {
    position: absolute;
    inset: 0;
    z-index: 1;
}

#planMapStage,
#planMapStage > div:not(.gsv-boundary-overlay) {
    position: absolute;
    inset: 0;
}

#planMapStage > .gsv-boundary-overlay {
    z-index: 14; /* token-oneoff: local stacking */
}

.gc-hud-top {
    position: absolute;
    top: 14px;
    left: 14px;
    right: 14px;
    z-index: 12; /* token-oneoff: local stacking */
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    pointer-events: none;
}

.gc-hud-top .hud-left-container,
.gc-hud-top .hud-right-container {
    display: flex;
    gap: var(--luma-space-2);
    pointer-events: auto;
}

.gc-attr {
    position: absolute;
    right: 10px;
    bottom: 8px;
    z-index: 8; /* token-oneoff: local stacking */
    font-size: var(--luma-font-sm);
    color: rgba(255, 255, 255, 0.75); /* token-oneoff: glass */
    pointer-events: none;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); /* token-oneoff: shadow */
}

.gc-boot-error {
    position: absolute;
    inset: 0;
    z-index: 30; /* token-oneoff: local stacking */
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--luma-space-5);
    background: rgba(11, 17, 23, 0.92); /* token-oneoff: glass */
    color: #fecaca; /* token-oneoff: palette */
    font-size: 14px; /* token-oneoff: off-scale type */
    text-align: center;
}

.gc-edge-handles {
    position: absolute;
    inset: 0;
    z-index: 20; /* token-oneoff: local stacking */
    pointer-events: none;
}

.gc-edge-handle {
    position: absolute;
    width: 14px;
    height: 14px;
    margin: -7px 0 0 -7px; /* token-oneoff: offset */
    border-radius: 3px; /* token-oneoff: off-scale radius */
    border: 2px solid #fff; /* token-oneoff: palette */
    background: var(--gc-zone-handle, #00a3e0);
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.45); /* token-oneoff: shadow */
    pointer-events: auto;
    cursor: ew-resize;
    touch-action: none;
}

.gc-edge-handle[data-edge="n"],
.gc-edge-handle[data-edge="s"] {
    cursor: ns-resize;
}

.gc-edge-handle:hover,
.gc-edge-handle.is-drag {
    filter: brightness(1.2);
    transform: scale(1.15);
}

.gc-hint-dim {
    opacity: 0.75;
    font-size: var(--luma-font-sm);
}

.gc-hint-dim code {
    font-size: var(--luma-font-xs);
    color: var(--luma-vista-accent-2);
}

#gcProjectSection .gc-field-block {
    display: block;
    margin-bottom: var(--luma-space-2);
}

#gcProjectSection .gc-field-block input,
#gcProjectSection .gc-field-block select {
    margin-top: var(--luma-space-1);
}

.gc-field-block .gc-path-row {
    grid-column: auto;
}

.gc-path-row {
    display: flex;
    gap: 6px; /* token-oneoff: off-scale spacing */
    align-items: stretch;
    grid-column: 2;
}

.gc-path-row input,
.gc-path-row select {
    flex: 1;
    min-width: 0;
}

.gc-path-row .gc-btn {
    padding: 6px 10px; /* token-oneoff: off-scale spacing */
    flex-shrink: 0;
}

.gc-autofill-trap {
    position: absolute !important;
    left: -9999px !important;
    width: 1px !important;
    height: 1px !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

.gc-input-secret {
    -webkit-text-security: disc;
}

.gc-optional {
    font-weight: var(--luma-weight-medium);
    text-transform: none;
    letter-spacing: 0;
    color: var(--ame-faint);
    font-size: var(--luma-font-sm);
}

.gc-local-form {
    position: relative;
}

.gc-atlas-fields {
    margin: var(--luma-space-1) 0 0;
    padding: 10px 12px; /* token-oneoff: off-scale spacing */
    border: 1px solid #2a3a4f; /* token-oneoff: palette */
    border-radius: 10px; /* token-oneoff: off-scale radius */
    background: rgba(21, 29, 40, 0.45); /* token-oneoff: glass */
}

.gc-field-legend {
    font-size: var(--luma-font-md);
    font-weight: 650; /* token-oneoff: off-scale weight */
    color: #d1d5db; /* token-oneoff: palette */
    padding: 0 var(--luma-space-1);
}

.gc-check {
    display: flex;
    align-items: flex-start;
    gap: var(--luma-space-2);
    font-size: var(--luma-font-lg);
    color: #e5e7eb; /* token-oneoff: palette */
    cursor: pointer;
    margin: 6px 0; /* token-oneoff: off-scale spacing */
}

.gc-check input {
    margin-top: 2px; /* token-oneoff: off-scale spacing */
}

.gc-atlas-size-row select,
.gc-atlas-size-row input[type="number"] {
    min-width: 0;
    flex: 1;
}

.gc-field:has(.gc-path-row) {
    grid-template-columns: 72px 1fr;
}

#gcCompanionStatus.is-online {
    color: #86efac; /* token-oneoff: palette */
}

#gcCompanionStatus.is-offline {
    color: #fca5a5; /* token-oneoff: palette */
}

.gc-helper-status {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--luma-space-2);
    margin: 6px 0 0; /* token-oneoff: off-scale spacing */
}

.gc-helper-status-line {
    margin: 0;
    flex: 1 1 auto;
    min-width: 0;
}

.gc-helper-ready-icon {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    flex: 0 0 auto;
    box-shadow: 0 0 0 2px rgba(15, 23, 32, 0.65); /* token-oneoff: shadow */
}

.gc-helper-ready-icon.is-ok {
    background: #22c55e; /* token-oneoff: palette */
}

.gc-helper-ready-icon.is-warn {
    background: var(--ame-warning);
}

.gc-helper-ready-icon.is-bad {
    background: var(--ame-danger);
}

.gc-helper-tip {
    display: none;
    position: absolute;
    left: 0;
    right: 0;
    bottom: calc(100% + 8px);
    z-index: 40; /* token-oneoff: local stacking */
    padding: 10px 12px; /* token-oneoff: off-scale spacing */
    border: 1px solid #2a3a4f; /* token-oneoff: palette */
    border-radius: 10px; /* token-oneoff: off-scale radius */
    background: rgba(15, 23, 32, 0.96); /* token-oneoff: glass */
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.45); /* token-oneoff: shadow */
    font-size: var(--luma-font-md);
    pointer-events: auto;
}

.gc-helper-status:hover .gc-helper-tip,
.gc-helper-status:focus-within .gc-helper-tip {
    display: block;
}

/* Keep tip open while moving into it */
.gc-helper-tip[hidden] {
    display: none !important;
}

.gc-companion-health {
    /* legacy class — details now live in .gc-helper-tip */
    margin: 0;
    padding: 0;
    border: none;
    background: transparent;
}

.gc-helper-offline {
    margin: 8px 0 6px; /* token-oneoff: off-scale spacing */
    padding: var(--luma-space-3);
    border: 1px solid rgba(251, 191, 36, 0.45); /* token-oneoff: glass */
    border-radius: 10px; /* token-oneoff: off-scale radius */
    background: rgba(66, 48, 12, 0.55); /* token-oneoff: glass */
    font-size: var(--luma-font-md);
}

.gc-multitab-banner {
    margin: 0;
    padding: 8px 14px; /* token-oneoff: off-scale spacing */
    border-bottom: 1px solid rgba(251, 191, 36, 0.4); /* token-oneoff: glass */
    background: rgba(66, 48, 12, 0.92); /* token-oneoff: glass */
    font-size: var(--luma-font-md);
    z-index: 40; /* token-oneoff: local stacking */
}

.gc-multitab-banner-msg {
    margin: 0;
    color: #fde68a; /* token-oneoff: palette */
    line-height: 1.4; /* token-oneoff: leading */
}

.gc-helper-offline-msg {
    margin: 0 0 10px; /* token-oneoff: off-scale spacing */
    color: #fde68a; /* token-oneoff: palette */
    line-height: 1.4; /* token-oneoff: leading */
}

.gc-helper-offline-actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--luma-space-2);
    align-items: center;
}

.gc-helper-offline-actions .gc-btn {
    margin: 0;
}

.gc-helper-offline-hint {
    margin: var(--luma-space-2) 0 0;
    color: #fde68a; /* token-oneoff: palette */
    line-height: 1.45; /* token-oneoff: leading */
}

.gc-helper-offline-hint code {
    font-size: var(--luma-font-sm);
}

.gc-companion-health.is-offline {
    border-color: rgba(248, 113, 113, 0.35); /* token-oneoff: glass */
}

.gc-companion-health.is-online {
    border-color: rgba(134, 239, 172, 0.28); /* token-oneoff: glass */
}

.gc-health-grid {
    display: grid;
    grid-template-columns: 72px 1fr;
    gap: 4px 10px; /* token-oneoff: off-scale spacing */
    margin: 0;
}

.gc-health-grid dt {
    margin: 0;
    color: #9ca3af; /* token-oneoff: palette */
    font-weight: var(--luma-weight-semibold);
}

.gc-health-grid dd {
    margin: 0;
    color: #e5e7eb; /* token-oneoff: palette */
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gc-health-grid dd.is-ok {
    color: #86efac; /* token-oneoff: palette */
}

.gc-health-grid dd.is-warn {
    color: #fcd34d; /* token-oneoff: palette */
}

.gc-health-grid dd.is-bad {
    color: #fca5a5; /* token-oneoff: palette */
}

.gc-project-health {
    list-style: none;
    margin: var(--luma-space-2) 0 0;
    padding: var(--luma-space-2) 0 0;
    border-top: 1px solid rgba(255, 255, 255, 0.08); /* token-oneoff: glass */
    font-size: var(--luma-font-sm);
    line-height: 1.35; /* token-oneoff: leading */
}

.gc-project-health li {
    margin: 0 0 var(--luma-space-1);
    color: #e5e7eb; /* token-oneoff: palette */
}

.gc-project-health li.is-ok .gc-project-health-label { color: #86efac; /* token-oneoff: palette */ }
.gc-project-health li.is-warn .gc-project-health-label { color: #fcd34d; /* token-oneoff: palette */ }
.gc-project-health li.is-bad .gc-project-health-label { color: #fca5a5; /* token-oneoff: palette */ }

.gc-project-health-detail {
    color: #9ca3af; /* token-oneoff: palette */
}

.gc-health-actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--luma-space-2) var(--luma-space-3);
    margin: 10px 0 0; /* token-oneoff: off-scale spacing */
    font-size: var(--luma-font-sm);
}

.gc-health-link,
.gc-health-link-btn {
    color: var(--luma-vista-accent-2);
    background: none;
    border: none;
    padding: 0;
    font: inherit;
    cursor: pointer;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.gc-health-error {
    margin: var(--luma-space-2) 0 0;
    color: #fca5a5; /* token-oneoff: palette */
    white-space: pre-wrap;
    word-break: break-word;
}

.gc-health-error[hidden] {
    display: none !important;
}

.gc-health-update {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--luma-space-2) var(--luma-space-3);
    margin: var(--luma-space-2) 0 0;
    padding: 8px 10px; /* token-oneoff: off-scale spacing */
    border-radius: var(--luma-radius-xs);
    background: rgba(252, 211, 77, 0.08); /* token-oneoff: glass */
    border: 1px solid rgba(252, 211, 77, 0.28); /* token-oneoff: glass */
    font-size: var(--luma-font-sm);
    color: #fcd34d; /* token-oneoff: palette */
}

.gc-health-update[hidden] {
    display: none !important;
}

.gc-health-update-msg {
    flex: 1 1 auto;
    min-width: 0;
}

.gc-health-update-btn {
    flex: 0 0 auto;
}

.gc-accordion {
    margin-top: 10px; /* token-oneoff: off-scale spacing */
    border: 1px solid #2a3a4f; /* token-oneoff: palette */
    border-radius: 10px; /* token-oneoff: off-scale radius */
    background: rgba(21, 29, 40, 0.45); /* token-oneoff: glass */
    overflow: hidden;
}

.gc-accordion-summary {
    cursor: pointer;
    list-style: none;
    padding: 10px 12px; /* token-oneoff: off-scale spacing */
    font-size: var(--luma-font-md);
    font-weight: var(--luma-weight-bold);
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #9ca3af; /* token-oneoff: palette */
    user-select: none;
}

.gc-accordion-summary::-webkit-details-marker {
    display: none;
}

.gc-accordion-summary::before {
    content: '▸ ';
    color: var(--ame-accent);
}

.gc-accordion[open] .gc-accordion-summary::before {
    content: '▾ ';
}

.gc-accordion-body {
    padding: 0 var(--luma-space-3) var(--luma-space-3);
    border-top: 1px solid #2a3a4f; /* token-oneoff: palette */
    padding-top: 10px; /* token-oneoff: off-scale spacing */
}

.gc-accordion-quiet {
    margin: 0 0 10px; /* token-oneoff: off-scale spacing */
    border: none;
    border-radius: 0;
    background: transparent;
    overflow: visible;
}

.gc-accordion-quiet .gc-accordion-summary {
    padding: 2px 0; /* token-oneoff: off-scale spacing */
    font-size: var(--luma-font-sm);
    font-weight: var(--luma-weight-medium);
    letter-spacing: 0;
    text-transform: none;
    color: var(--ame-faint);
}

.gc-accordion-quiet .gc-accordion-summary::before {
    color: var(--ame-faint);
}

.gc-accordion-quiet .gc-accordion-body {
    padding: var(--luma-space-2) 0 var(--luma-space-1);
    border-top: none;
}

.gc-zone-eye {
    appearance: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    padding: 0;
    cursor: pointer;
    color: rgba(255, 255, 255, 0.95); /* token-oneoff: glass */
    line-height: 0;
    filter: drop-shadow(0 0 1px rgba(0, 0, 0, 0.55));
}

.gc-zone-eye:hover,
.gc-zone-eye:focus-visible {
    outline: 2px solid rgba(255, 255, 255, 0.55); /* token-oneoff: glass */
    outline-offset: 1px;
}

.gc-zone-eye.is-on {
    color: rgba(255, 255, 255, 0.98); /* token-oneoff: glass */
}

.gc-zone-eye.is-off {
    color: rgba(255, 255, 255, 0.55); /* token-oneoff: glass */
    opacity: 0.78;
    filter: grayscale(0.25) drop-shadow(0 0 1px rgba(0, 0, 0, 0.45));
}

.gc-zone-eye.is-off:hover,
.gc-zone-eye.is-off:focus-visible {
    opacity: 0.95;
}

.gc-zone-eye .gc-zone-eye-icon {
    display: block;
}

.gc-zone-del {
    appearance: none;
    border: none;
    background: transparent;
    color: #9ca3af; /* token-oneoff: palette */
    cursor: pointer;
    font-size: var(--luma-font-sm);
    font-weight: var(--luma-weight-semibold);
    padding: 2px 4px; /* token-oneoff: off-scale spacing */
}

.gc-zone-del:hover {
    color: #fca5a5; /* token-oneoff: palette */
}

.gc-zone-labels {
    position: absolute;
    inset: 0;
    z-index: 9; /* token-oneoff: local stacking */
    pointer-events: none;
}

.gc-zone-label-stack {
    position: absolute;
    left: 0;
    top: 0;
    width: 0;
    height: 0;
    pointer-events: none;
}

.gc-zone-label-name,
.gc-zone-label-lod {
    position: absolute;
    left: 4px;
    font-size: var(--luma-font-sm);
    font-weight: var(--luma-weight-bold);
    line-height: 1.2; /* token-oneoff: leading */
    padding: 2px 6px; /* token-oneoff: off-scale spacing */
    border-radius: var(--luma-radius-2xs);
    white-space: nowrap;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.65); /* token-oneoff: shadow */
    max-width: 220px;
    overflow: hidden;
    text-overflow: ellipsis;
}

.gc-zone-label-name {
    bottom: 4px; /* above the top edge */
    color: var(--ame-surface);
    background: rgba(255, 255, 255, 0.92); /* token-oneoff: glass */
}

.gc-zone-label-lod {
    top: 4px; /* inside the box under the top edge */
    color: #f3f4f6; /* token-oneoff: palette */
    background: rgba(11, 17, 23, 0.82); /* token-oneoff: glass */
    font-weight: 650; /* token-oneoff: off-scale weight */
}

/* Site Engine boundary vertex handles (same language as Model Workshop). */
.gsv-boundary-overlay {
    position: absolute;
    inset: 0;
    z-index: 14; /* token-oneoff: local stacking */
    pointer-events: none;
    overflow: hidden;
}

.gsv-vertex-handle {
    position: absolute;
    left: 0;
    top: 0;
    width: 14px;
    height: 14px;
    padding: 0;
    margin: 0;
    border-radius: 50%;
    border: 2px solid var(--ame-accent);
    background: var(--ame-heading);
    box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.35); /* token-oneoff: shadow */
    cursor: grab;
    pointer-events: auto;
    box-sizing: border-box;
    transform: translate(-50%, -50%);
    z-index: 15; /* token-oneoff: local stacking */
}

.gsv-vertex-handle:active {
    cursor: grabbing;
}

.gsv-vertex-handle.is-close {
    width: 18px;
    height: 18px;
    border-color: #ffb020; /* token-oneoff: palette */
    background: #fff7e6; /* token-oneoff: palette */
    box-shadow: 0 0 0 2px rgba(255, 176, 32, 0.55); /* token-oneoff: shadow */
}

.gsv-vertex-mid {
    width: 18px;
    height: 18px;
    background: var(--ame-accent);
    border: 2px solid #fff; /* token-oneoff: palette */
    cursor: copy;
    display: flex;
    align-items: center;
    justify-content: center;
}

.gsv-vertex-mid-plus {
    color: var(--ame-heading);
    font-size: 14px; /* token-oneoff: off-scale type */
    font-weight: var(--luma-weight-bold);
    line-height: 1;
    pointer-events: none;
    user-select: none;
}

@media (max-width: 820px) {
    #gc-app {
        flex-direction: column;
    }
    .gc-app-body {
        flex-direction: column;
    }
    .gc-menubar {
        flex-wrap: nowrap;
        min-height: 40px;
        height: auto;
        padding: var(--luma-space-1) var(--luma-space-2);
        overflow-x: auto;
    }
    .gc-menubar-end {
        margin-left: auto;
        flex: 0 1 auto;
        min-width: 0;
        padding-left: var(--luma-space-2);
        gap: var(--luma-space-2);
    }
    .gc-menubar-working {
        max-width: 28vw;
        flex: 0 1 auto;
        margin-left: 0;
        order: unset;
    }
    .gc-menu-panel--flyout {
        left: 0;
        top: calc(100% + 2px);
    }
    .gc-rail {
        width: 100%;
        max-height: 42%;
        border-right: none;
        border-bottom: 1px solid #2a3a4f; /* token-oneoff: palette */
    }
}

/* —— Instructions page —— */
.gc-instructions-page {
    margin: 0;
    min-height: 100%;
    overflow: auto;
    user-select: text;
    background: var(--ame-surface);
    color: #e5e7eb; /* token-oneoff: palette */
    font-family: var(--luma-font-family, 'Inter', 'Segoe UI', system-ui, sans-serif);
}

.gc-instructions {
    max-width: 640px;
    margin: 0 auto; /* token-oneoff: off-scale spacing */
    padding: 28px 20px 48px; /* token-oneoff: off-scale spacing */
    box-sizing: border-box;
}

.gc-instructions-head {
    margin-bottom: 28px; /* token-oneoff: off-scale spacing */
}

.gc-instructions-back {
    display: inline-block;
    margin-bottom: var(--luma-space-4);
    font-size: var(--luma-font-lg);
    font-weight: var(--luma-weight-semibold);
    color: var(--luma-vista-accent-2);
    text-decoration: none;
}

.gc-instructions-back:hover {
    text-decoration: underline;
}

.gc-instructions-head .gc-brand {
    margin-bottom: var(--luma-space-1);
}

.gc-instructions-head h1 {
    margin: 0 0 10px; /* token-oneoff: off-scale spacing */
    font-size: 26px; /* token-oneoff: off-scale type */
    font-weight: 650; /* token-oneoff: off-scale weight */
    color: #f3f4f6; /* token-oneoff: palette */
    line-height: 1.2; /* token-oneoff: leading */
}

.gc-instructions-lead {
    margin: 0;
    font-size: 15px; /* token-oneoff: off-scale type */
    line-height: 1.55; /* token-oneoff: leading */
    color: #9ca3af; /* token-oneoff: palette */
}

.gc-instructions-banner {
    margin: 14px 0 0; /* token-oneoff: off-scale spacing */
    padding: 10px 12px; /* token-oneoff: off-scale spacing */
    font-size: 14px; /* token-oneoff: off-scale type */
    line-height: 1.5; /* token-oneoff: leading */
    color: #e5e7eb; /* token-oneoff: palette */
    background: rgba(245, 158, 11, 0.1); /* token-oneoff: glass */
    border: 1px solid rgba(245, 158, 11, 0.35); /* token-oneoff: glass */
    border-radius: var(--luma-radius-sm);
}

.gc-instructions-install-cta {
    padding: 16px 14px; /* token-oneoff: off-scale spacing */
    border: 1px solid rgba(96, 165, 250, 0.35); /* token-oneoff: glass */
    border-radius: 10px; /* token-oneoff: off-scale radius */
    background: rgba(30, 58, 95, 0.35); /* token-oneoff: glass */
}

.gc-instructions-cta-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 14px; /* token-oneoff: off-scale spacing */
    align-items: baseline;
    margin: var(--luma-space-3) 0 var(--luma-space-2);
}

.gc-instructions-cta-actions > a:first-child {
    display: inline-block;
    padding: 8px 14px; /* token-oneoff: off-scale spacing */
    border-radius: var(--luma-radius-sm);
    background: #2563eb; /* token-oneoff: palette */
    color: #f8fafc; /* token-oneoff: palette */
    text-decoration: none;
    font-weight: var(--luma-weight-semibold);
}

.gc-instructions-cta-actions > a:first-child:hover {
    background: #1d4ed8; /* token-oneoff: palette */
}

.gc-instructions-cta-secondary {
    color: #93c5fd; /* token-oneoff: palette */
    font-weight: var(--luma-weight-semibold);
}

.gc-instructions-cta-note {
    color: #9ca3af; /* token-oneoff: palette */
    font-size: var(--luma-font-md);
}

.gc-instructions-block {
    margin-bottom: 28px; /* token-oneoff: off-scale spacing */
    padding-bottom: var(--luma-space-5);
    border-bottom: 1px solid #2a3a4f; /* token-oneoff: palette */
}

.gc-instructions-block:last-of-type {
    border-bottom: none;
}

.gc-instructions-block h2 {
    margin: 0 0 var(--luma-space-3);
    font-size: var(--luma-font-lg);
    font-weight: var(--luma-weight-bold);
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--ame-accent);
}

.gc-instructions-checklist,
.gc-instructions-bullets {
    margin: 0;
    padding-left: 1.2em; /* token-oneoff: off-scale spacing */
    font-size: 14px; /* token-oneoff: off-scale type */
    line-height: 1.55; /* token-oneoff: leading */
    color: #d1d5db; /* token-oneoff: palette */
}

.gc-instructions-checklist li,
.gc-instructions-bullets li {
    margin-bottom: var(--luma-space-2);
}

.gc-instructions-steps {
    margin: 0;
    padding-left: 1.35em; /* token-oneoff: off-scale spacing */
    font-size: 14px; /* token-oneoff: off-scale type */
    line-height: 1.55; /* token-oneoff: leading */
    color: #d1d5db; /* token-oneoff: palette */
}

.gc-instructions-steps li {
    margin-bottom: 14px; /* token-oneoff: off-scale spacing */
    padding-left: var(--luma-space-1);
}

.gc-instructions-steps li::marker {
    color: var(--ame-accent);
    font-weight: var(--luma-weight-bold);
}

.gc-instructions-note {
    margin: 14px 0 0; /* token-oneoff: off-scale spacing */
    padding: 10px 12px; /* token-oneoff: off-scale spacing */
    font-size: var(--luma-font-lg);
    line-height: 1.45; /* token-oneoff: leading */
    color: #9ca3af; /* token-oneoff: palette */
    background: rgba(0, 163, 224, 0.08); /* token-oneoff: glass */
    border: 1px solid rgba(0, 163, 224, 0.25); /* token-oneoff: glass */
    border-radius: var(--luma-radius-sm);
}

.gc-instructions-ps-box {
    margin: 14px 0 0; /* token-oneoff: off-scale spacing */
    padding: 12px 14px; /* token-oneoff: off-scale spacing */
    border: 1px solid rgba(251, 191, 36, 0.4); /* token-oneoff: glass */
    border-radius: 10px; /* token-oneoff: off-scale radius */
    background: rgba(66, 48, 12, 0.4); /* token-oneoff: glass */
}

.gc-instructions-ps {
    margin: 8px 0 10px; /* token-oneoff: off-scale spacing */
    padding: 10px 12px; /* token-oneoff: off-scale spacing */
    border-radius: var(--luma-radius-sm);
    background: #0b1220; /* token-oneoff: palette */
    color: #e5e7eb; /* token-oneoff: palette */
    font-size: var(--luma-font-md);
    line-height: 1.45; /* token-oneoff: leading */
    white-space: pre-wrap;
    word-break: break-all;
    overflow-x: auto;
}

.gc-instructions-block code,
.gc-instructions-dl code {
    font-size: 0.92em; /* token-oneoff: off-scale type */
    padding: 1px 5px; /* token-oneoff: off-scale spacing */
    border-radius: var(--luma-radius-2xs);
    background: rgba(15, 22, 32, 0.9); /* token-oneoff: glass */
    border: 1px solid #374151; /* token-oneoff: palette */
    color: #e5e7eb; /* token-oneoff: palette */
}

.gc-instructions-lead-tight {
    margin-bottom: 14px; /* token-oneoff: off-scale spacing */
    font-size: 14px; /* token-oneoff: off-scale type */
}

.gc-instructions-downloads {
    list-style: none;
    margin: 0;
    padding: 0;
    border: 1px solid #2a3a4f; /* token-oneoff: palette */
    border-radius: 10px; /* token-oneoff: off-scale radius */
    overflow: hidden;
}

.gc-instructions-dl-item {
    margin: 0;
    padding: 12px 14px; /* token-oneoff: off-scale spacing */
    border-bottom: 1px solid #2a3a4f; /* token-oneoff: palette */
    background: rgba(15, 22, 32, 0.6); /* token-oneoff: glass */
}

.gc-instructions-dl-item:last-child {
    border-bottom: none;
}

.gc-instructions-dl-link {
    display: inline-flex;
    align-items: baseline;
    gap: var(--luma-space-2);
    font-size: 14px; /* token-oneoff: off-scale type */
    font-weight: 650; /* token-oneoff: off-scale weight */
    color: var(--luma-vista-accent-2);
    text-decoration: none;
}

.gc-instructions-dl-link:hover {
    text-decoration: underline;
}

.gc-instructions-dl-ver {
    font-size: var(--luma-font-sm);
    font-weight: var(--luma-weight-semibold);
    letter-spacing: 0.03em;
    color: var(--ame-faint);
}

.gc-instructions-dl-current {
    margin: 2px 0 0; /* token-oneoff: off-scale spacing */
    font-size: var(--luma-font-md);
    font-weight: var(--luma-weight-semibold);
    color: #9ca3af; /* token-oneoff: palette */
}

.gc-instructions-dl-filename {
    margin: 2px 0 0; /* token-oneoff: off-scale spacing */
    font-size: var(--luma-font-sm);
    font-family: ui-monospace, 'Cascadia Code', 'Consolas', monospace; /* token-oneoff: type stack */
    color: var(--ame-faint);
    word-break: break-all;
}

.gc-instructions-dl-summary {
    margin: var(--luma-space-1) 0 0;
    font-size: var(--luma-font-lg);
    line-height: 1.45; /* token-oneoff: leading */
    color: #9ca3af; /* token-oneoff: palette */
}

.gc-instructions-block a {
    color: var(--luma-vista-accent-2);
}

.gc-instructions-dl {
    margin: 0;
    font-size: 14px; /* token-oneoff: off-scale type */
    line-height: 1.5; /* token-oneoff: leading */
}

.gc-instructions-dl dt {
    margin-top: var(--luma-space-3);
    font-weight: 650; /* token-oneoff: off-scale weight */
    color: #f3f4f6; /* token-oneoff: palette */
}

.gc-instructions-dl dt:first-child {
    margin-top: 0;
}

.gc-instructions-dl dd {
    margin: var(--luma-space-1) 0 0;
    color: #9ca3af; /* token-oneoff: palette */
}

.gc-instructions-foot {
    margin-top: var(--luma-space-2);
    text-align: center;
}

.gc-instructions-foot .gc-btn {
    display: inline-block;
    text-decoration: none;
}

.gc-instructions-block-optional {
    margin-top: 18px; /* token-oneoff: off-scale spacing */
    padding-top: 18px; /* token-oneoff: off-scale spacing */
    border-top: 1px dashed #374151; /* token-oneoff: palette */
}

.gc-instructions-block-optional h2 {
    color: #9ca3af; /* token-oneoff: palette */
    font-size: var(--luma-font-md);
}

.gc-instructions-foot-note {
    margin: 14px 0 0; /* token-oneoff: off-scale spacing */
    font-size: var(--luma-font-md);
    color: var(--ame-faint);
}

/* Instructions tabs */
.gc-instructions-tabs {
    display: flex;
    gap: 0;
    margin-bottom: var(--luma-space-5);
    border: 1px solid #2a3a4f; /* token-oneoff: palette */
    border-radius: 10px; /* token-oneoff: off-scale radius */
    overflow: hidden;
    background: rgba(15, 22, 32, 0.96); /* token-oneoff: glass */
}

.gc-instructions-tab {
    flex: 1;
    appearance: none;
    border: none;
    border-right: 1px solid #2a3a4f; /* token-oneoff: palette */
    background: transparent;
    color: #9ca3af; /* token-oneoff: palette */
    font: inherit;
    font-size: var(--luma-font-lg);
    font-weight: 650; /* token-oneoff: off-scale weight */
    letter-spacing: 0.02em;
    padding: 11px 14px; /* token-oneoff: off-scale spacing */
    cursor: pointer;
    transition: color 0.15s, background 0.15s; /* token-oneoff: motion */
}

.gc-instructions-tab:last-child {
    border-right: none;
}

.gc-instructions-tab:hover {
    color: #d1d5db; /* token-oneoff: palette */
    background: rgba(21, 29, 40, 0.55); /* token-oneoff: glass */
}

.gc-instructions-tab:focus-visible {
    outline: 2px solid var(--ame-accent);
    outline-offset: -2px;
    z-index: 1;
}

.gc-instructions-tab[aria-selected="true"] {
    color: var(--luma-vista-accent-2);
    background: rgba(0, 163, 224, 0.18); /* token-oneoff: glass */
    box-shadow: inset 0 -2px 0 var(--ame-accent);
}

.gc-instructions-panel {
    display: none;
}

.gc-instructions-panel.is-active {
    display: block;
}

.gc-instructions-block-warn h2 {
    color: #fbbf24; /* token-oneoff: palette */
}

/* Dual-rail modes + Street View */
.gc-mode-tabs {
    display: flex;
    gap: var(--luma-space-1);
    padding: var(--luma-space-3) 0;
    margin: var(--luma-space-1) 0 var(--luma-space-1);
    border-top: 1px solid #2a3a4f; /* token-oneoff: palette */
    border-bottom: 1px solid #2a3a4f; /* token-oneoff: palette */
}

.gc-mode-tab {
    flex: 1 1 0;
    min-width: 0;
    padding: 7px 6px; /* token-oneoff: off-scale spacing */
    border: 1px solid #2a3a4f; /* token-oneoff: palette */
    border-radius: var(--luma-radius-sm);
    background: rgba(21, 29, 40, 0.9); /* token-oneoff: glass */
    color: #9ca3af; /* token-oneoff: palette */
    font-size: var(--luma-font-sm);
    font-weight: 650; /* token-oneoff: off-scale weight */
    letter-spacing: 0.02em;
    cursor: pointer;
}

.gc-mode-tab:hover {
    color: #e5e7eb; /* token-oneoff: palette */
    border-color: #3b4f6a; /* token-oneoff: palette */
}

.gc-mode-tab.is-on {
    color: #e0f2fe; /* token-oneoff: palette */
    background: rgba(0, 163, 224, 0.2); /* token-oneoff: glass */
    border-color: rgba(0, 163, 224, 0.55); /* token-oneoff: glass */
}

.gc-mode-panel[hidden] {
    display: none !important;
}

.gc-rail-right {
    width: 280px;
    border-right: none;
    border-left: 1px solid #2a3a4f; /* token-oneoff: palette */
}

.gc-rail-right[hidden] {
    display: none !important;
}

.gc-sv-list {
    list-style: none;
    margin: 10px 0 0; /* token-oneoff: off-scale spacing */
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 6px; /* token-oneoff: off-scale spacing */
}

.gc-sv-list li {
    display: flex;
    align-items: center;
    gap: var(--luma-space-2);
    padding: 8px 10px; /* token-oneoff: off-scale spacing */
    border: 1px solid #2a3a4f; /* token-oneoff: palette */
    border-radius: var(--luma-radius-sm);
    background: rgba(21, 29, 40, 0.85); /* token-oneoff: glass */
    cursor: pointer;
}

.gc-sv-list-num {
    flex: 0 0 auto;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    border: 2px solid #fff; /* token-oneoff: palette */
    background: var(--ame-accent);
    color: var(--ame-heading);
    font-size: var(--luma-font-sm);
    font-weight: var(--luma-weight-bold);
    line-height: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.35); /* token-oneoff: shadow */
}

.gc-sv-list li.is-selected .gc-sv-list-num {
    background: #fbbf24; /* token-oneoff: palette */
}

.gc-sv-list li.is-selected {
    border-color: rgba(0, 163, 224, 0.65); /* token-oneoff: glass */
    background: rgba(0, 163, 224, 0.12); /* token-oneoff: glass */
}

.gc-sv-list-meta {
    flex: 1 1 auto;
    min-width: 0;
}

.gc-sv-list-title {
    display: block;
    width: 100%;
    font-size: var(--luma-font-md);
    font-weight: 650; /* token-oneoff: off-scale weight */
    color: #e5e7eb; /* token-oneoff: palette */
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.gc-sv-list-title-btn {
    appearance: none;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    font: inherit;
    text-align: left;
    cursor: pointer;
}

.gc-sv-list-title-btn:hover,
.gc-sv-list-title-btn:focus-visible {
    color: var(--luma-vista-accent-2);
    outline: none;
}

.gc-sv-list-rename-input {
    display: block;
    width: 100%;
    box-sizing: border-box;
    margin: 0;
    padding: 2px 6px; /* token-oneoff: off-scale spacing */
    border-radius: var(--luma-radius-xs);
    border: 1px solid var(--luma-vista-accent);
    background: #0b1220; /* token-oneoff: palette */
    color: #f1f5f9; /* token-oneoff: palette */
    font: inherit;
    font-size: var(--luma-font-md);
    font-weight: 650; /* token-oneoff: off-scale weight */
}

.gc-sv-explorer-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    margin-top: 4px;
}

.gc-sv-explorer-badge {
    display: inline-block;
    font-size: 0.62rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    padding: 1px 5px;
    border-radius: 4px;
    border: 1px solid transparent;
}

.gc-sv-explorer-badge.is-pending {
    color: #b45309;
    background: rgba(245, 158, 11, 0.12);
    border-color: rgba(245, 158, 11, 0.35);
}

.gc-sv-explorer-badge.is-sync {
    color: #047857;
    background: rgba(16, 185, 129, 0.12);
    border-color: rgba(16, 185, 129, 0.35);
}

.gc-sv-explorer-badge.is-warn {
    color: #b91c1c;
    background: rgba(239, 68, 68, 0.1);
    border-color: rgba(239, 68, 68, 0.3);
}

.gc-sv-explorer-badge.is-muted {
    color: #64748b;
    background: rgba(100, 116, 139, 0.1);
    border-color: rgba(100, 116, 139, 0.25);
}

.gc-explorer-send-extra {
    margin-top: 0.75rem;
}

.gc-explorer-send-extra-list {
    margin: 0.25rem 0 0;
    padding-left: 1.1rem;
    font-size: 0.82rem;
    color: var(--gc-muted, #94a3b8);
}

.gc-chrome-pill.is-pending {
    color: #b45309;
    border-color: rgba(245, 158, 11, 0.45);
}

.gc-chrome-pill.is-clickable {
    cursor: pointer;
}

.gc-chrome-pill.is-clickable:hover,
.gc-chrome-pill.is-clickable:focus-visible {
    filter: brightness(1.08);
}

.gc-sv-list-sub {
    display: block;
    margin-top: 2px; /* token-oneoff: off-scale spacing */
    font-size: var(--luma-font-sm);
    color: #9ca3af; /* token-oneoff: palette */
}

.gc-sv-list-actions {
    flex: 0 0 auto;
    margin-left: auto;
    display: inline-flex;
    align-items: center;
    gap: var(--luma-space-1);
}

.gc-sv-list-edit {
    flex: 0 0 auto;
    width: 28px;
    height: 28px;
    padding: 0;
    border: 1px solid #2a3a4f; /* token-oneoff: palette */
    border-radius: var(--luma-radius-xs);
    background: rgba(15, 23, 34, 0.9); /* token-oneoff: glass */
    color: #cbd5e1; /* token-oneoff: palette */
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.gc-sv-list-edit:hover,
.gc-sv-list-edit:focus-visible {
    color: var(--ame-heading);
    border-color: var(--luma-vista-accent);
    outline: none;
}

.gc-sv-list-del {
    flex: 0 0 auto;
    width: 28px;
    height: 28px;
    padding: 0;
    border: 1px solid #2a3a4f; /* token-oneoff: palette */
    border-radius: var(--luma-radius-xs);
    background: rgba(15, 23, 34, 0.9); /* token-oneoff: glass */
    color: #94a3b8; /* token-oneoff: palette */
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.gc-sv-list-del:hover,
.gc-sv-list-del:focus-visible {
    color: #fecaca; /* token-oneoff: palette */
    border-color: #f87171; /* token-oneoff: palette */
    outline: none;
}

.gc-sv-markers {
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 7; /* token-oneoff: local stacking */
    overflow: hidden;
}

.gc-sv-coverage {
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 6; /* token-oneoff: local stacking */
    overflow: hidden;
}

.gc-sv-dot {
    position: absolute;
    left: 0;
    top: 0;
    width: 20px;
    height: 20px;
    margin: -10px 0 0 -10px; /* token-oneoff: offset */
    border-radius: 50%;
    border: 2px solid #fff; /* token-oneoff: palette */
    background: #64748b; /* token-oneoff: palette */
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.45); /* token-oneoff: shadow */
    pointer-events: auto;
    cursor: pointer;
    padding: 0;
    appearance: none;
    will-change: transform;
    opacity: 1;
    transition: width 0.18s var(--luma-ease-out), height 0.18s var(--luma-ease-out), margin 0.18s var(--luma-ease-out), background 0.2s var(--luma-ease-out), opacity 0.2s var(--luma-ease-out), box-shadow 0.15s var(--luma-ease-out);
}

/* Outdoor Street View — size only distinguishes loading vs ready; colour = resolution. */
.gc-sv-dot--outdoor.gc-sv-dot--res-unknown {
    width: 12px;
    height: 12px;
    margin: -6px 0 0 -6px; /* token-oneoff: offset */
    border-style: dashed;
    border-width: 1.5px;
    border-color: rgba(255, 255, 255, 0.9); /* token-oneoff: glass */
    background: #94a3b8; /* token-oneoff: palette */
    opacity: 0.75;
}

.gc-sv-dot--outdoor.gc-sv-dot--res-low,
.gc-sv-dot--outdoor.gc-sv-dot--res-med,
.gc-sv-dot--outdoor.gc-sv-dot--res-high {
    width: 20px;
    height: 20px;
    margin: -10px 0 0 -10px; /* token-oneoff: offset */
    border-style: solid;
    border-width: 2px;
    border-color: #fff; /* token-oneoff: palette */
    opacity: 1;
}

.gc-sv-dot--outdoor.gc-sv-dot--res-low {
    background: var(--ame-danger);
}

.gc-sv-dot--outdoor.gc-sv-dot--res-med {
    background: var(--ame-warning);
}

.gc-sv-dot--outdoor.gc-sv-dot--res-high {
    background: #22c55e; /* token-oneoff: palette */
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.45), 0 0 0 2px rgba(34, 197, 94, 0.35); /* token-oneoff: shadow */
}

/* Capture-date mode — distinct from H/M/L amber/green/red. */
.gc-sv-dot--outdoor.gc-sv-dot--date-recent {
    width: 20px;
    height: 20px;
    margin: -10px 0 0 -10px; /* token-oneoff: offset */
    border: 2px solid #fff; /* token-oneoff: palette */
    background: var(--luma-vista-accent);
    opacity: 1;
}

.gc-sv-dot--outdoor.gc-sv-dot--date-mid {
    width: 20px;
    height: 20px;
    margin: -10px 0 0 -10px; /* token-oneoff: offset */
    border: 2px solid #fff; /* token-oneoff: palette */
    background: #a78bfa; /* token-oneoff: palette */
    opacity: 1;
}

.gc-sv-dot--outdoor.gc-sv-dot--date-old {
    width: 20px;
    height: 20px;
    margin: -10px 0 0 -10px; /* token-oneoff: offset */
    border: 2px solid #fff; /* token-oneoff: palette */
    background: #64748b; /* token-oneoff: palette */
    opacity: 1;
}

.gc-sv-dot--outdoor.gc-sv-dot--date-unknown {
    width: 12px;
    height: 12px;
    margin: -6px 0 0 -6px; /* token-oneoff: offset */
    border: 1.5px dashed rgba(255, 255, 255, 0.9); /* token-oneoff: glass */
    background: #475569; /* token-oneoff: palette */
    opacity: 0.8;
}

/* Photo Sphere / other — soft yellow squares (not amber — reserved for med SV). */
.gc-sv-dot--user {
    width: 18px;
    height: 18px;
    margin: -9px 0 0 -9px; /* token-oneoff: offset */
    border-radius: 3px; /* token-oneoff: off-scale radius */
    border: 2px solid rgba(255, 255, 255, 0.9); /* token-oneoff: glass */
    background: #e4c65a; /* token-oneoff: palette */
    opacity: 0.92;
}

.gc-sv-dot.is-res-pending {
    animation: gc-sv-dot-pulse 1.1s ease-in-out infinite;
}

@keyframes gc-sv-dot-pulse {
    0%, 100% { opacity: 0.5; }
    50% { opacity: 0.9; }
}

.gc-sv-dot:hover,
.gc-sv-dot:focus-visible {
    outline: none;
    filter: brightness(1.15);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.55), 0 0 0 2px rgba(255, 255, 255, 0.4); /* token-oneoff: shadow */
}

.gc-sv-dot.is-used {
    display: none;
}

.gc-sv-sample-key {
    position: absolute;
    left: 12px;
    bottom: 12px;
    z-index: 9; /* token-oneoff: local stacking */
    display: flex;
    flex-direction: column-reverse;
    align-items: flex-start;
    gap: var(--luma-space-2);
    pointer-events: none;
}

.gc-sv-sample-key[hidden] {
    display: none !important;
}

.gc-sv-sample-key-toggle {
    pointer-events: auto;
    width: 40px;
    height: 40px;
    margin: 0;
    padding: 0;
    border: 1px solid rgba(42, 58, 79, 0.95); /* token-oneoff: glass */
    border-radius: 10px; /* token-oneoff: off-scale radius */
    background: rgba(11, 17, 23, 0.92); /* token-oneoff: glass */
    backdrop-filter: blur(6px); /* token-oneoff: blur */
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4); /* token-oneoff: shadow */
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    appearance: none;
    color: #e5e7eb; /* token-oneoff: palette */
}

.gc-sv-sample-key-toggle:hover,
.gc-sv-sample-key-toggle:focus-visible {
    outline: none;
    border-color: #60a5fa; /* token-oneoff: palette */
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.45), 0 0 0 2px rgba(96, 165, 250, 0.35); /* token-oneoff: shadow */
}

.gc-sv-sample-key-toggle.is-on,
.gc-sv-sample-key-toggle[aria-expanded="true"] {
    border-color: #93c5fd; /* token-oneoff: palette */
    background: rgba(15, 23, 42, 0.96); /* token-oneoff: glass */
}

.gc-sv-sample-key-toggle:disabled {
    opacity: 0.55;
    cursor: wait;
}

.gc-sv-sample-key-glyph {
    display: flex;
    flex-direction: column;
    gap: 3px; /* token-oneoff: off-scale spacing */
    align-items: center;
}

.gc-sv-sample-key-swatch {
    width: 14px;
    height: 6px;
    border-radius: var(--luma-radius-pill);
    border: 1px solid rgba(255, 255, 255, 0.55); /* token-oneoff: glass */
}

.gc-sv-sample-key-swatch--high { background: #22c55e; /* token-oneoff: palette */ }
.gc-sv-sample-key-swatch--med { background: var(--ame-warning); }
.gc-sv-sample-key-swatch--low { background: var(--ame-danger); }

.gc-sv-sample-key-sr {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px; /* token-oneoff: offset */
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.gc-sv-coverage-legend {
    position: relative;
    left: auto;
    bottom: auto;
    z-index: 9; /* token-oneoff: local stacking */
    max-width: min(260px, calc(100vw - 24px));
    padding: 8px 10px; /* token-oneoff: off-scale spacing */
    border: 1px solid rgba(42, 58, 79, 0.95); /* token-oneoff: glass */
    border-radius: 10px; /* token-oneoff: off-scale radius */
    background: rgba(11, 17, 23, 0.92); /* token-oneoff: glass */
    backdrop-filter: blur(6px); /* token-oneoff: blur */
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4); /* token-oneoff: shadow */
    color: #e5e7eb; /* token-oneoff: palette */
    pointer-events: auto;
}

.gc-sv-coverage-legend[hidden] {
    display: none !important;
}

.gc-sv-coverage-legend-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--luma-space-2);
    margin: 0 0 6px; /* token-oneoff: off-scale spacing */
}

.gc-sv-coverage-legend-title {
    margin: 0;
    font-size: var(--luma-font-xs);
    font-weight: var(--luma-weight-bold);
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #93c5fd; /* token-oneoff: palette */
}

.gc-sv-sample-key-close {
    width: 22px;
    height: 22px;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: var(--luma-radius-xs);
    background: transparent;
    color: #94a3b8; /* token-oneoff: palette */
    font-size: var(--luma-font-xl);
    line-height: 1;
    cursor: pointer;
    appearance: none;
}

.gc-sv-sample-key-close:hover,
.gc-sv-sample-key-close:focus-visible {
    outline: none;
    color: #e5e7eb; /* token-oneoff: palette */
    background: rgba(148, 163, 184, 0.18); /* token-oneoff: glass */
}

.gc-sv-coverage-legend-list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: var(--luma-space-1);
    font-size: var(--luma-font-sm);
    font-weight: 550; /* token-oneoff: off-scale weight */
    line-height: 1.25; /* token-oneoff: leading */
    color: #cbd5e1; /* token-oneoff: palette */
}

.gc-sv-coverage-legend-list li {
    margin: 0;
}

.gc-sv-legend-static {
    display: flex;
    align-items: center;
    gap: var(--luma-space-2);
    margin: 0;
    padding: 3px 2px 3px 23px; /* token-oneoff: off-scale spacing */
    color: #94a3b8; /* token-oneoff: palette */
    pointer-events: none;
}

.gc-sv-legend-row {
    display: flex;
    align-items: center;
    gap: var(--luma-space-2);
    margin: 0;
    padding: 3px 2px; /* token-oneoff: off-scale spacing */
    border-radius: var(--luma-radius-xs);
    cursor: pointer;
    user-select: none;
}

.gc-sv-legend-row:hover {
    background: rgba(148, 163, 184, 0.12); /* token-oneoff: glass */
}

.gc-sv-legend-row input[type="checkbox"] {
    flex: 0 0 auto;
    width: 13px;
    height: 13px;
    margin: 0;
    accent-color: #00a3e0;
    cursor: pointer;
}

.gc-sv-legend-row span:last-child {
    min-width: 0;
}

.gc-sv-legend-swatch {
    flex: 0 0 auto;
    display: inline-block;
    box-sizing: border-box;
    border: 1.5px solid #fff; /* token-oneoff: palette */
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4); /* token-oneoff: shadow */
}

.gc-sv-legend-swatch--user {
    width: 12px;
    height: 12px;
    border-radius: 3px; /* token-oneoff: off-scale radius */
    background: #e4c65a; /* token-oneoff: palette */
}

.gc-sv-legend-swatch--unknown {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    border-style: dashed;
    border-width: 1.5px;
    background: #94a3b8; /* token-oneoff: palette */
    opacity: 0.85;
}

.gc-sv-legend-swatch--low {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: var(--ame-danger);
}

.gc-sv-legend-swatch--med {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: var(--ame-warning);
}

.gc-sv-legend-swatch--high {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: #22c55e; /* token-oneoff: palette */
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4), 0 0 0 2px rgba(34, 197, 94, 0.35); /* token-oneoff: shadow */
}

.gc-sv-coverage-legend-mode {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px 10px; /* token-oneoff: off-scale spacing */
    margin: 0 0 var(--luma-space-2);
    font-size: var(--luma-font-xs);
    color: #94a3b8; /* token-oneoff: palette */
}

.gc-sv-legend-mode-label {
    font-weight: var(--luma-weight-bold);
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: #93c5fd; /* token-oneoff: palette */
}

.gc-sv-legend-mode-opt {
    display: inline-flex;
    align-items: center;
    gap: var(--luma-space-1);
    cursor: pointer;
    color: #cbd5e1; /* token-oneoff: palette */
    font-size: var(--luma-font-sm);
}

.gc-sv-legend-swatch--date-recent {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: var(--luma-vista-accent);
}

.gc-sv-legend-swatch--date-mid {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: #a78bfa; /* token-oneoff: palette */
}

.gc-sv-legend-swatch--date-old {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: #64748b; /* token-oneoff: palette */
}

.gc-sv-legend-swatch--date-unknown {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    border: 1.5px dashed rgba(255, 255, 255, 0.7); /* token-oneoff: glass */
    background: #475569; /* token-oneoff: palette */
}

.gc-sv-coverage-menu {
    position: fixed;
    z-index: 24; /* token-oneoff: local stacking */
    min-width: 168px;
    padding: var(--luma-space-1);
    border: 1px solid #2a3a4f; /* token-oneoff: palette */
    border-radius: 10px; /* token-oneoff: off-scale radius */
    background: rgba(11, 17, 23, 0.98); /* token-oneoff: glass */
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.45); /* token-oneoff: shadow */
}

.gc-sv-coverage-menu-item {
    display: block;
    width: 100%;
    margin: 0;
    padding: 8px 10px; /* token-oneoff: off-scale spacing */
    border: 0;
    border-radius: 7px; /* token-oneoff: off-scale radius */
    background: transparent;
    color: #e5e7eb; /* token-oneoff: palette */
    font-size: var(--luma-font-md);
    font-weight: var(--luma-weight-semibold);
    text-align: left;
    cursor: pointer;
    appearance: none;
}

.gc-sv-coverage-menu-item:hover,
.gc-sv-coverage-menu-item:focus-visible {
    background: rgba(0, 163, 224, 0.16); /* token-oneoff: glass */
    outline: none;
}

.gc-sv-coverage-menu-item--ghost {
    color: #9ca3af; /* token-oneoff: palette */
    font-weight: var(--luma-weight-medium);
}

.gc-sv-marker {
    position: absolute;
    left: 0;
    top: 0;
    width: 22px;
    height: 22px;
    margin: -11px 0 0 -11px; /* token-oneoff: offset */
    border-radius: 50%;
    border: 2px solid #fff; /* token-oneoff: palette */
    background: var(--ame-accent);
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.45); /* token-oneoff: shadow */
    pointer-events: auto;
    cursor: pointer;
    transform: translate3d(0, 0, 0);
    will-change: transform;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    appearance: none;
    color: var(--ame-heading);
}

.gc-sv-marker-num {
    font-size: var(--luma-font-sm);
    font-weight: var(--luma-weight-bold);
    line-height: 1;
}

.gc-sv-marker-sr {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px; /* token-oneoff: offset */
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.gc-sv-marker.is-selected {
    background: #fbbf24; /* token-oneoff: palette */
    width: 26px;
    height: 26px;
    margin: -13px 0 0 -13px; /* token-oneoff: offset */
}

.gc-sv-marker.is-selected .gc-sv-marker-num {
    font-size: var(--luma-font-md);
}

.gc-btn.is-dirty {
    box-shadow: inset 0 0 0 1px var(--ame-warning);
}

.gc-sv-inspect-thumb-img {
    display: block;
    width: 100%;
    max-width: 240px;
    height: auto;
    margin: 0 auto; /* token-oneoff: off-scale spacing */
    border-radius: 10px; /* token-oneoff: off-scale radius */
    border: 1px solid #2a3a4f; /* token-oneoff: palette */
    background: var(--ame-surface);
    object-fit: cover;
    aspect-ratio: 1;
}

.gc-sv-inspect-thumb-meta {
    margin: 6px 0 0; /* token-oneoff: off-scale spacing */
    text-align: center;
}

.gc-sv-map-thumb {
    position: absolute;
    z-index: 20; /* token-oneoff: local stacking */
    pointer-events: none;
    transform: translate(-50%, calc(-100% - 10px));
    border-radius: var(--luma-radius-sm);
    border: 1px solid #2a3a4f; /* token-oneoff: palette */
    overflow: hidden;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.55); /* token-oneoff: shadow */
    background: var(--ame-surface);
}

.gc-sv-map-thumb[hidden] {
    display: none !important;
}

.gc-sv-map-thumb-img {
    display: block;
    width: 200px;
    height: 200px;
    object-fit: cover;
}

.gc-sv-preview {
    position: absolute;
    inset: 0;
    z-index: 18; /* token-oneoff: local stacking */
    display: flex;
    flex-direction: column;
    border: none;
    border-radius: 0;
    overflow: hidden;
    background: var(--ame-surface);
    box-shadow: none;
}

.gc-sv-preview[hidden] {
    display: none !important;
}

.gc-sv-preview-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px; /* token-oneoff: off-scale spacing */
    flex-wrap: wrap;
    padding: var(--luma-space-2) var(--luma-space-3);
    border-bottom: 1px solid #2a3a4f; /* token-oneoff: palette */
    color: #e5e7eb; /* token-oneoff: palette */
}

.gc-sv-preview-titles {
    min-width: 0;
    flex: 1 1 auto;
}

.gc-sv-preview-titles strong {
    display: block;
    font-size: var(--luma-font-lg);
    font-weight: 650; /* token-oneoff: off-scale weight */
}

.gc-sv-preview-meta {
    display: block;
    margin-top: 2px; /* token-oneoff: off-scale spacing */
    font-size: var(--luma-font-sm);
    font-weight: var(--luma-weight-medium);
    color: #9ca3af; /* token-oneoff: palette */
}

.gc-sv-preview-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 6px; /* token-oneoff: off-scale spacing */
    justify-content: flex-end;
}

#gcSvPreviewStartViewBtn.is-locked {
    color: #86efac; /* token-oneoff: palette */
    border-color: rgba(134, 239, 172, 0.45); /* token-oneoff: glass */
    background: rgba(22, 101, 52, 0.35); /* token-oneoff: glass */
}

.gc-sv-preview-start-view-clear {
    min-width: 32px;
    padding-left: 10px; /* token-oneoff: off-scale spacing */
    padding-right: 10px; /* token-oneoff: off-scale spacing */
    font-size: 18px; /* token-oneoff: off-scale type */
    line-height: 1;
}

#gcSvPreviewSeeStartViewBtn:not([hidden]) {
    color: #bae6fd; /* token-oneoff: palette */
    border-color: rgba(186, 230, 253, 0.35); /* token-oneoff: glass */
}

.gc-sv-preview-start-view-status {
    margin: 0 12px 6px; /* token-oneoff: off-scale spacing */
    font-size: var(--luma-font-sm);
}

.gc-sv-preview-start-view-status[hidden] {
    display: none;
}

.gc-sv-preview-stage {
    position: relative;
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: row;
    align-items: stretch;
}

.gc-sv-preview-viewport {
    position: relative;
    flex: 1 1 auto;
    min-width: 0;
    min-height: 0;
}

.gc-sv-preview-host {
    position: absolute;
    inset: 0;
    background: #111827; /* token-oneoff: palette */
    overflow: hidden;
}

.gc-sv-preview-freeze {
    position: absolute;
    inset: 0;
    z-index: 2; /* token-oneoff: local stacking */
    pointer-events: none;
    opacity: 0;
    background: #111827; /* token-oneoff: palette */
    transition: opacity 0.38s var(--luma-ease-out);
}

.gc-sv-preview-freeze.is-visible {
    opacity: 1;
}

.gc-sv-preview-freeze[hidden] {
    display: none !important;
}

.gc-sv-preview-freeze-img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.gc-sv-preview-stats {
    position: absolute;
    right: 10px;
    left: auto;
    top: 10px;
    bottom: auto;
    z-index: 4; /* token-oneoff: local stacking */
    max-width: min(320px, calc(100% - 20px));
    padding: 8px 10px; /* token-oneoff: off-scale spacing */
    border: 1px solid rgba(148, 163, 184, 0.35); /* token-oneoff: glass */
    border-radius: var(--luma-radius-sm);
    background: rgba(8, 12, 18, 0.82); /* token-oneoff: glass */
    backdrop-filter: blur(6px); /* token-oneoff: blur */
    color: #e5e7eb; /* token-oneoff: palette */
    font: 500 11px/1.35 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    pointer-events: none;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35); /* token-oneoff: shadow */
}

.gc-sv-preview-stats[hidden] {
    display: none !important;
}

.gc-sv-preview-stats-title {
    margin: 0 0 6px; /* token-oneoff: off-scale spacing */
    font-size: var(--luma-font-xs);
    font-weight: var(--luma-weight-bold);
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #93c5fd; /* token-oneoff: palette */
}

.gc-sv-preview-stats-dl {
    margin: 0;
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 2px 10px; /* token-oneoff: off-scale spacing */
}

.gc-sv-preview-stats-dl dt {
    margin: 0;
    color: #94a3b8; /* token-oneoff: palette */
    font-weight: var(--luma-weight-medium);
}

.gc-sv-preview-stats-dl dd {
    margin: 0;
    color: #f8fafc; /* token-oneoff: palette */
    font-weight: var(--luma-weight-semibold);
    overflow-wrap: anywhere;
}

.gc-sv-preview-note {
    margin: 0;
    padding: var(--luma-space-2) var(--luma-space-3);
    border-top: 1px solid #2a3a4f; /* token-oneoff: palette */
}

.gc-sv-preview-history {
    flex: 0 0 auto;
    width: 92px;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 5px; /* token-oneoff: off-scale spacing */
    padding: 8px 5px; /* token-oneoff: off-scale spacing */
    border-right: 1px solid #2a3a4f; /* token-oneoff: palette */
    background: rgba(8, 12, 18, 0.96); /* token-oneoff: glass */
    min-height: 0;
    z-index: 5; /* token-oneoff: local stacking */
}

.gc-sv-preview-history[hidden] {
    display: none !important;
}

.gc-sv-preview-history-label {
    flex: 0 0 auto;
    padding: 0 2px; /* token-oneoff: off-scale spacing */
    font-size: var(--luma-font-xs);
    font-weight: var(--luma-weight-bold);
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #93c5fd; /* token-oneoff: palette */
    text-align: center;
    line-height: 1.2; /* token-oneoff: leading */
}

.gc-sv-preview-history-track {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: var(--luma-space-1);
    overflow-x: hidden;
    overflow-y: auto;
    min-height: 0;
    padding: 0;
}

.gc-sv-preview-history-item {
    position: relative;
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: var(--luma-space-1);
    margin: 0;
    padding: var(--luma-space-1) var(--luma-space-1);
    border: 1px solid transparent; /* token-oneoff: oneoff */
    border-radius: var(--luma-radius-2xs);
    background: transparent;
    color: #94a3b8; /* token-oneoff: palette */
    min-width: 0;
}

.gc-sv-preview-history-item:hover {
    background: rgba(148, 163, 184, 0.08); /* token-oneoff: glass */
    color: #e5e7eb; /* token-oneoff: palette */
}

.gc-sv-preview-history-item.is-active {
    color: #e5e7eb; /* token-oneoff: palette */
    border-color: rgba(134, 239, 172, 0.45); /* token-oneoff: glass */
    background: rgba(34, 197, 94, 0.12); /* token-oneoff: glass */
}

.gc-sv-hist-select {
    flex: 0 0 auto;
    width: 12px;
    height: 12px;
    margin: 0;
    padding: 0;
    accent-color: #22c55e;
    cursor: pointer;
}

.gc-sv-preview-history-pick {
    flex: 1 1 auto;
    min-width: 0;
    margin: 0;
    padding: 1px 0; /* token-oneoff: off-scale spacing */
    border: 0;
    background: transparent;
    color: inherit;
    font: 600 12px/1.2 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    text-align: left;
    white-space: nowrap;
    cursor: pointer;
    appearance: none;
}

.gc-sv-preview-history-pick:focus-visible {
    outline: 1px solid var(--luma-vista-accent-2);
    outline-offset: 1px;
}

.gc-sv-preview-history-date {
    font: 600 12px/1.2 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    white-space: nowrap;
}

.gc-sv-preview-history-line {
    position: relative;
}

.gc-sv-static-wrap {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px; /* token-oneoff: off-scale spacing */
    padding: var(--luma-space-3);
    box-sizing: border-box;
    height: 100%;
}

.gc-sv-static-img {
    max-width: 100%;
    max-height: min(420px, 55vh);
    width: auto;
    height: auto;
    border-radius: var(--luma-radius-sm);
    background: var(--ame-surface);
    object-fit: contain;
}

.gc-sv-static-note {
    margin: 0;
    text-align: center;
    max-width: 36rem;
}

.gc-sv-static-note--err {
    color: #fca5a5; /* token-oneoff: palette */
}

.gc-sv-status-link,
.gc-sv-static-note a.gc-sv-status-link {
    color: var(--luma-vista-accent-2);
    text-decoration: underline;
    word-break: break-all;
}

.gc-sv-status-link:hover,
.gc-sv-static-note a.gc-sv-status-link:hover {
    color: #bae6fd; /* token-oneoff: palette */
}

.gc-sv-pack-progress {
    margin: 10px 0 8px; /* token-oneoff: off-scale spacing */
    padding: 10px 12px; /* token-oneoff: off-scale spacing */
    border: 1px solid #2a3a4f; /* token-oneoff: palette */
    border-radius: 10px; /* token-oneoff: off-scale radius */
    background: rgba(21, 29, 40, 0.92); /* token-oneoff: glass */
}

.gc-sv-pack-progress-label {
    margin: 0 0 var(--luma-space-2);
    font-size: var(--luma-font-md);
    font-weight: 650; /* token-oneoff: off-scale weight */
    line-height: 1.35; /* token-oneoff: leading */
    color: #e5e7eb; /* token-oneoff: palette */
}

.gc-sv-pack-progress-track {
    height: 8px;
    border-radius: var(--luma-radius-pill);
    background: rgba(255, 255, 255, 0.08); /* token-oneoff: glass */
    overflow: hidden;
}

.gc-sv-pack-progress-fill {
    height: 100%;
    width: 0%;
    border-radius: var(--luma-radius-pill);
    background: linear-gradient(90deg, var(--luma-vista-accent), #22c55e);
    transition: width 0.35s var(--luma-ease-out);
}

.gc-sv-pack-progress-note {
    margin: var(--luma-space-2) 0 0;
}

#gcSvStatus a.gc-sv-status-link {
    color: var(--luma-vista-accent-2);
}

.gc-sv-field-row {
    display: flex;
    flex-direction: column;
    gap: var(--luma-space-1);
    margin: 0 0 10px; /* token-oneoff: off-scale spacing */
}

.gc-sv-field-row input[type="number"],
.gc-sv-field-row input[type="text"] {
    width: 100%;
    box-sizing: border-box;
    padding: 7px 9px; /* token-oneoff: off-scale spacing */
    border-radius: var(--luma-radius-sm);
    border: 1px solid #2a3a4f; /* token-oneoff: palette */
    background: #0f1720; /* token-oneoff: palette */
    color: #e5e7eb; /* token-oneoff: palette */
}

.gc-sv-check {
    display: flex;
    align-items: flex-start;
    gap: var(--luma-space-2);
    margin: 0 0 10px; /* token-oneoff: off-scale spacing */
    font-size: var(--luma-font-md);
    color: #d1d5db; /* token-oneoff: palette */
}

.gc-stage-wrap {
    position: relative;
    flex: 1 1 auto;
    min-width: 0;
    min-height: 0;
}

@media (max-width: 900px) {
    .gc-rail-right {
        display: none !important;
    }
}

@media (max-width: 768px) {
    .gc-btn,
    .gc-mode-tab,
    .gc-menu-trigger,
    .gc-menu-item {
        min-height: var(--luma-touch-min, 44px);
        min-width: var(--luma-touch-min, 44px);
    }
    .gc-menubar {
        padding-left: max(8px, env(safe-area-inset-left, 0px)); /* token-oneoff: safe-area */
        padding-right: max(8px, env(safe-area-inset-right, 0px)); /* token-oneoff: safe-area */
        padding-top: max(4px, env(safe-area-inset-top, 0px)); /* token-oneoff: safe-area */
    }
    .gc-rail {
        padding-bottom: env(safe-area-inset-bottom, 0px); /* token-oneoff: safe-area */
    }
}

@media (prefers-reduced-motion: reduce) {
    .gc-btn,
    .gc-mode-tab,
    .gc-harvest-modal-dialog,
    .gc-sv-pack-progress-fill {
        transition: none !important; /* token-oneoff: motion */
        animation: none !important;
    }
}

.gc-chrome-pill {
    display: inline-flex;
    align-items: center;
    gap: var(--luma-space-1);
    padding: 2px 8px; /* token-oneoff: off-scale spacing */
    border-radius: var(--luma-radius-pill);
    border: 1px solid var(--luma-border, #2e3d52);
    background: var(--luma-surface-input, #1f2a38);
    color: var(--luma-text-muted, #8b9bb4);
    font-size: var(--luma-font-xs);
    font-weight: var(--luma-weight-semibold);
    white-space: nowrap;
}
.gc-chrome-pill.is-on {
    border-color: var(--luma-color-success, #2ecc71);
    color: var(--luma-color-success, #2ecc71);
}
.gc-chrome-pill.is-warn {
    border-color: var(--luma-color-warning, #f59e0b);
    color: var(--luma-color-warning, #f59e0b);
}
.gc-chrome-pill.is-off {
    border-color: var(--luma-color-danger, #ef4444);
    color: var(--luma-color-danger, #ef4444);
}
.gc-menubar-working {
    color: var(--luma-text-muted, #8b9bb4);
}
