/* ===== Design Tokens ===== */
:root {
    --font-sans: 'Manrope', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --font-display: 'Space Grotesk', 'Manrope', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

    --background: #0b0d12;
    --foreground: #f3f6fb;
    --card: rgba(15, 18, 24, 0.9);
    --card-hover: rgba(19, 23, 31, 0.96);
    --popover: rgba(12, 15, 20, 0.84);
    --popover-strong: rgba(10, 13, 18, 0.95);
    --muted: rgba(148, 163, 184, 0.14);
    --muted-foreground: #98a2b3;
    --primary: #4f8cff;
    --primary-foreground: #ffffff;
    --secondary-accent: #93c5fd;
    --secondary-accent-foreground: #0f172a;
    --success: #22c55e;
    --warning: #f59e0b;
    --danger: #ef4444;
    --border: rgba(148, 163, 184, 0.16);
    --border-hover: rgba(148, 163, 184, 0.28);
    --input: rgba(148, 163, 184, 0.18);
    --ring: rgba(79, 140, 255, 0.34);

    --bg-primary: var(--background);
    --bg-secondary: #12161d;
    --bg-card: var(--card);
    --bg-card-hover: var(--card-hover);
    --bg-glass: var(--popover);
    --property-modal-surface: var(--popover-strong);
    --property-modal-surface-strong: rgba(12, 15, 21, 0.985);
    --property-modal-surface-soft: rgba(255, 255, 255, 0.065);
    --property-modal-border: rgba(148, 163, 184, 0.16);

    --text-primary: var(--foreground);
    --text-secondary: #c3ccd8;
    --text-muted: var(--muted-foreground);

    --accent: var(--primary);
    --accent-light: var(--secondary-accent);
    --accent-glow: rgba(79, 140, 255, 0.22);
    --accent-gradient: linear-gradient(135deg, #60a5fa 0%, #2563eb 100%);

    --surface-panel:
        linear-gradient(180deg, rgba(255, 255, 255, 0.055), rgba(255, 255, 255, 0.015)),
        rgba(14, 17, 23, 0.78);
    --surface-panel-hover:
        linear-gradient(180deg, rgba(255, 255, 255, 0.085), rgba(255, 255, 255, 0.03)),
        rgba(18, 22, 30, 0.88);
    --surface-overlay:
        radial-gradient(circle at top right, rgba(79, 140, 255, 0.08), transparent 36%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.015)),
        rgba(13, 16, 23, 0.84);
    --surface-overlay-success:
        radial-gradient(circle at top right, rgba(34, 197, 94, 0.1), transparent 36%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.015)),
        rgba(13, 16, 23, 0.84);
    --surface-overlay-warning:
        radial-gradient(circle at top right, rgba(245, 158, 11, 0.1), transparent 36%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.015)),
        rgba(13, 16, 23, 0.84);
    --surface-card-accent:
        radial-gradient(circle at top right, rgba(79, 140, 255, 0.12), transparent 34%),
        radial-gradient(circle at bottom left, rgba(255, 255, 255, 0.04), transparent 30%),
        linear-gradient(160deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.03));
    --chip-bg: rgba(255, 255, 255, 0.06);
    --chip-border: rgba(255, 255, 255, 0.08);
    --field-bg: rgba(10, 13, 19, 0.76);
    --field-bg-elevated: rgba(255, 255, 255, 0.045);
    --field-border: rgba(79, 140, 255, 0.18);
    --field-border-strong: rgba(79, 140, 255, 0.34);
    --button-secondary-bg: rgba(255, 255, 255, 0.08);
    --button-secondary-bg-hover: rgba(255, 255, 255, 0.14);
    --button-ghost-bg: rgba(255, 255, 255, 0.03);
    --button-ghost-bg-hover: rgba(255, 255, 255, 0.08);

    --radius-sm: 10px;
    --radius-md: 14px;
    --radius-lg: 18px;
    --radius-xl: 24px;

    --shadow-sm: 0 10px 24px rgba(1, 10, 22, 0.16);
    --shadow-md: 0 20px 44px rgba(1, 10, 22, 0.26);
    --shadow-lg: 0 30px 72px rgba(1, 10, 22, 0.36);
    --shadow-glow: 0 0 30px var(--accent-glow);
    --map-tool-size: 48px;
    --map-tool-gap: 10px;
    --map-tool-radius: 18px;
    --map-tool-panel-bg: linear-gradient(180deg, rgba(12, 15, 20, 0.9) 0%, rgba(15, 19, 26, 0.82) 100%);
    --map-tool-panel-border: rgba(148, 163, 184, 0.16);
    --map-tool-surface: linear-gradient(180deg, rgba(20, 24, 33, 0.96) 0%, rgba(13, 16, 22, 0.96) 100%);
    --map-tool-surface-hover: linear-gradient(180deg, rgba(25, 30, 41, 0.98) 0%, rgba(16, 20, 27, 0.98) 100%);
    --map-tool-label-bg: rgba(10, 13, 19, 0.92);

    --app-height: 100dvh;
    --app-width: 100vw;
    --safe-top: env(safe-area-inset-top, 0px);
    --safe-right: env(safe-area-inset-right, 0px);
    --safe-bottom: env(safe-area-inset-bottom, 0px);
    --safe-left: env(safe-area-inset-left, 0px);
    --mobile-dock-reserved: 0px;
    --shell-sidebar-space: 0px;
    --shell-main-space: 100vw;

    --sidebar-width: 520px;
    --sidebar-width-min: 380px;
    --sidebar-width-max: 640px;
    --topbar-height: 74px;

    --app-backdrop:
        radial-gradient(circle at top left, rgba(79, 140, 255, 0.08), transparent 28%),
        radial-gradient(circle at top right, rgba(255, 255, 255, 0.035), transparent 22%),
        linear-gradient(180deg, #0b0d12 0%, #090b10 100%);
    --grid-line: rgba(255, 255, 255, 0.03);

    --analysis-shell:
        linear-gradient(180deg, rgba(12, 15, 21, 0.975) 0%, rgba(15, 19, 26, 0.985) 48%, rgba(10, 13, 19, 0.995) 100%);
    --analysis-surface: rgba(16, 20, 28, 0.92);
    --analysis-surface-strong: rgba(20, 24, 33, 0.97);
    --analysis-surface-soft: rgba(255, 255, 255, 0.04);
    --analysis-border: rgba(148, 163, 184, 0.14);
    --analysis-border-strong: rgba(79, 140, 255, 0.22);
    --analysis-text-quiet: #d4dbe6;
    --analysis-shadow: 0 30px 72px rgba(1, 10, 22, 0.34);
    --analysis-inset: inset 0 1px 0 rgba(255, 255, 255, 0.05);

    --transition-fast: 0.18s ease;
    --transition-normal: 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    --transition-slow: 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

body[data-theme="light"] {
    --background: #f5f7fb;
    --foreground: #1f2937;
    --card: rgba(255, 255, 255, 0.96);
    --card-hover: rgba(255, 255, 255, 0.995);
    --popover: rgba(255, 255, 255, 0.92);
    --popover-strong: rgba(255, 255, 255, 0.99);
    --muted: rgba(148, 163, 184, 0.06);
    --muted-foreground: #6b7280;
    --primary: #006aff;
    --primary-foreground: #ffffff;
    --secondary-accent: #4b8eff;
    --secondary-accent-foreground: #0f172a;
    --success: #059669;
    --warning: #d97706;
    --danger: #dc2626;
    --border: rgba(15, 23, 42, 0.08);
    --border-hover: rgba(15, 23, 42, 0.12);
    --input: rgba(15, 23, 42, 0.1);
    --ring: rgba(0, 106, 255, 0.18);

    --bg-primary: var(--background);
    --bg-secondary: #ffffff;
    --bg-card: var(--card);
    --bg-card-hover: var(--card-hover);
    --bg-glass: var(--popover);
    --property-modal-surface: var(--popover-strong);
    --property-modal-surface-strong: rgba(255, 252, 246, 0.992);
    --property-modal-surface-soft: rgba(15, 23, 42, 0.04);
    --property-modal-border: rgba(15, 23, 42, 0.08);

    --text-primary: var(--foreground);
    --text-secondary: #4b5563;
    --text-muted: var(--muted-foreground);

    --accent: var(--primary);
    --accent-light: var(--secondary-accent);
    --accent-glow: rgba(0, 106, 255, 0.12);
    --accent-gradient: linear-gradient(135deg, #1677ff 0%, #006aff 100%);

    --surface-panel:
        linear-gradient(180deg, rgba(255, 255, 255, 0.99), rgba(251, 252, 255, 0.98)),
        rgba(255, 255, 255, 0.96);
    --surface-panel-hover:
        linear-gradient(180deg, rgba(255, 255, 255, 1), rgba(247, 249, 252, 0.99)),
        rgba(255, 255, 255, 0.99);
    --surface-overlay:
        radial-gradient(circle at top right, rgba(0, 106, 255, 0.04), transparent 32%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.995), rgba(248, 250, 252, 0.98)),
        rgba(255, 255, 255, 0.98);
    --surface-overlay-success:
        radial-gradient(circle at top right, rgba(22, 163, 74, 0.08), transparent 36%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.99), rgba(248, 250, 252, 0.95)),
        rgba(255, 255, 255, 0.95);
    --surface-overlay-warning:
        radial-gradient(circle at top right, rgba(217, 119, 6, 0.08), transparent 36%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.99), rgba(248, 250, 252, 0.95)),
        rgba(255, 255, 255, 0.95);
    --surface-card-accent:
        radial-gradient(circle at top right, rgba(0, 106, 255, 0.06), transparent 30%),
        radial-gradient(circle at bottom left, rgba(148, 163, 184, 0.06), transparent 26%),
        linear-gradient(160deg, rgba(255, 255, 255, 0.995), rgba(248, 250, 252, 0.985));
    --chip-bg: rgba(241, 245, 249, 0.95);
    --chip-border: rgba(15, 23, 42, 0.08);
    --field-bg: rgba(255, 255, 255, 0.98);
    --field-bg-elevated: rgba(248, 250, 252, 0.98);
    --field-border: rgba(148, 163, 184, 0.22);
    --field-border-strong: rgba(0, 106, 255, 0.24);
    --button-secondary-bg: rgba(255, 255, 255, 0.98);
    --button-secondary-bg-hover: rgba(248, 250, 252, 0.98);
    --button-ghost-bg: rgba(248, 250, 252, 0.92);
    --button-ghost-bg-hover: rgba(241, 245, 249, 0.98);

    --shadow-sm: 0 4px 14px rgba(15, 23, 42, 0.06);
    --shadow-md: 0 12px 30px rgba(15, 23, 42, 0.08);
    --shadow-lg: 0 22px 54px rgba(15, 23, 42, 0.1);
    --map-tool-panel-bg: linear-gradient(180deg, rgba(255, 255, 255, 0.94) 0%, rgba(248, 250, 252, 0.92) 100%);
    --map-tool-panel-border: rgba(15, 23, 42, 0.09);
    --map-tool-surface: linear-gradient(180deg, rgba(255, 255, 255, 0.99) 0%, rgba(248, 250, 252, 0.99) 100%);
    --map-tool-surface-hover: linear-gradient(180deg, rgba(255, 255, 255, 1) 0%, rgba(243, 246, 250, 1) 100%);
    --map-tool-label-bg: rgba(255, 255, 255, 0.96);

    --app-backdrop:
        linear-gradient(180deg, #f7f9fc 0%, #eef3f8 100%);
    --grid-line: rgba(15, 23, 42, 0.045);

    --analysis-shell:
        linear-gradient(180deg, rgba(255, 255, 255, 0.995) 0%, rgba(248, 250, 252, 0.99) 100%);
    --analysis-surface: rgba(255, 255, 255, 0.98);
    --analysis-surface-strong: rgba(255, 255, 255, 1);
    --analysis-surface-soft: rgba(248, 250, 252, 0.98);
    --analysis-border: rgba(15, 23, 42, 0.08);
    --analysis-border-strong: rgba(0, 106, 255, 0.12);
    --analysis-text-quiet: #6b7280;
    --analysis-shadow: 0 16px 36px rgba(15, 23, 42, 0.08);
    --analysis-inset: inset 0 1px 0 rgba(255, 255, 255, 0.94);
}

/* ===== Reset & Base ===== */
*,
*::before,
*::after {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html,
body {
    min-height: 100%;
    height: 100%;
    overflow: hidden;
    font-family: var(--font-sans);
    background: var(--app-backdrop);
    color: var(--text-primary);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

body {
    position: relative;
    min-height: var(--app-height);
    color-scheme: dark;
}

body[data-theme="light"] {
    color-scheme: light;
}

:where(button,
    [role="button"],
    a,
    input,
    select,
    textarea,
    summary,
    [tabindex]):focus-visible {
    outline: none;
    box-shadow:
        0 0 0 2px rgba(7, 15, 15, 0.92),
        0 0 0 4px var(--ring) !important;
    border-color: var(--field-border-strong) !important;
}

body[data-theme="light"] :where(button,
    [role="button"],
    a,
    input,
    select,
    textarea,
    summary,
    [tabindex]):focus-visible {
    box-shadow:
        0 0 0 2px rgba(255, 255, 255, 0.96),
        0 0 0 4px var(--ring) !important;
}

body.modal-open {
    overflow: hidden;
}

@keyframes shimmer {
    0% {
        background-position: 200% 0;
    }

    100% {
        background-position: -200% 0;
    }
}

body::before {
    content: "";
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: 0;
    background:
        linear-gradient(var(--grid-line) 1px, transparent 1px),
        linear-gradient(90deg, var(--grid-line) 1px, transparent 1px);
    background-size: 32px 32px;
    mask-image: linear-gradient(180deg, rgba(0, 0, 0, 0.18), transparent 72%);
    opacity: 0.4;
}

body.sidebar-open .dashboard-atmosphere,
body.search-open .dashboard-atmosphere {
    opacity: 0.92;
}

body.map-overlay-hidden .dashboard-atmosphere {
    opacity: 0.12;
}

/* ===== Shared UI Primitives ===== */
.ui-panel,
.ui-panel--soft,
.ui-panel--overlay,
.ui-panel--hero {
    border: 1px solid var(--border);
    box-shadow: var(--shadow-md);
    max-width: 100%;
}

.ui-panel--soft {
    background: var(--surface-panel);
}

.ui-panel--overlay,
.ui-panel--hero {
    background: var(--surface-overlay);
    backdrop-filter: blur(22px) saturate(130%);
    -webkit-backdrop-filter: blur(22px) saturate(130%);
}

.ui-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 10px;
    border-radius: 999px;
    background: var(--chip-bg);
    border: 1px solid var(--chip-border);
    color: var(--text-secondary);
    font-size: 0.68rem;
    font-weight: 700;
    line-height: 1.25;
}

.ui-field {
    display: flex;
    align-items: center;
    gap: 10px;
    border-radius: var(--radius-md);
    border: 1px solid var(--field-border);
    background: var(--field-bg);
    box-shadow: var(--analysis-inset);
}

.ui-field > input,
.ui-field > select,
.ui-input {
    background: transparent;
    border: 0;
    color: var(--text-primary);
    font: inherit;
    outline: none;
}

.ui-action-row {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

/* ===== Loading Overlay ===== */
#loading-overlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: var(--bg-primary);
    z-index: 10000;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: opacity 0.6s ease, visibility 0.6s ease;
    min-height: var(--app-height);
}

#loading-overlay.fade-out {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

.loader-content {
    text-align: center;
}

.loader-content h2 {
    font-size: 1.6rem;
    font-weight: 700;
    margin-bottom: 8px;
    background: var(--accent-gradient);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.loader-content p {
    color: var(--text-secondary);
    font-size: 0.9rem;
    margin-bottom: 20px;
}

.spinner {
    width: 48px;
    height: 48px;
    border: 3px solid var(--border);
    border-top-color: var(--accent);
    border-radius: 50%;
    margin: 0 auto 20px;
    animation: spin 0.8s linear infinite;
}

@keyframes spin {
    to {
        transform: rotate(360deg);
    }
}

.progress-bar {
    width: 240px;
    height: 4px;
    background: var(--border);
    border-radius: 4px;
    overflow: hidden;
    margin: 0 auto;
}

.progress-fill {
    height: 100%;
    background: var(--accent-gradient);
    border-radius: 4px;
    width: 0%;
    transition: width 0.3s ease;
}

/* ===== App Layout ===== */
#app {
    height: var(--app-height);
    min-height: var(--app-height);
    width: 100%;
    position: relative;
    overflow: hidden;
    overflow: clip;
    isolation: isolate;
}

/* ===== Top Bar ===== */
#topbar {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    min-height: var(--topbar-height);
    background: var(--surface-overlay);
    backdrop-filter: blur(24px) saturate(130%);
    -webkit-backdrop-filter: blur(24px) saturate(130%);
    border-bottom: 1px solid var(--border);
    display: grid;
    grid-template-columns: minmax(0, max-content) minmax(0, 0.82fr) minmax(0, 1.18fr);
    grid-template-areas: "brand stats tools";
    align-items: center;
    gap: 14px;
    padding:
        max(0px, var(--safe-top))
        calc(20px + var(--safe-right))
        0
        calc(20px + var(--safe-left));
    z-index: 1000;
    box-shadow: 0 18px 38px rgba(2, 6, 23, 0.2);
}

#topbar::after {
    content: "";
    position: absolute;
    left: calc(20px + var(--safe-left));
    right: calc(20px + var(--safe-right));
    bottom: 0;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(79, 140, 255, 0.34), rgba(147, 197, 253, 0.3), transparent);
}

.topbar-left {
    grid-area: brand;
    display: flex;
    align-items: center;
    gap: 14px;
    min-width: 0;
    align-self: center;
}

.logo {
    display: flex;
    align-items: center;
    gap: 14px;
}

.logo-mark {
    width: 42px;
    height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 14px;
    border: 1px solid rgba(79, 140, 255, 0.24);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.09), rgba(255, 255, 255, 0)),
        linear-gradient(135deg, rgba(79, 140, 255, 0.18), rgba(147, 197, 253, 0.2));
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08), 0 14px 24px rgba(2, 6, 23, 0.22);
    flex-shrink: 0;
}

.logo-mark svg {
    width: 22px;
    height: 22px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.9;
    stroke-linecap: round;
    stroke-linejoin: round;
    color: #f5fbf8;
}

.logo-copy {
    display: grid;
    gap: 2px;
    min-width: 0;
}

.logo h1 {
    font-family: var(--font-display);
    font-size: 1.06rem;
    font-weight: 700;
    letter-spacing: -0.045em;
    color: var(--text-primary);
}

.logo-caption {
    font-size: 0.64rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--text-muted);
}

.sidebar-header h2,
.analysis-section-header h3,
.analysis-block-title,
.analysis-digest-title,
.analysis-hero-copy h3,
.comparison-story-title,
.chart-section h3,
.detail-title-group h3,
.property-modal-title-group h3,
.report-modal-title-group h3,
.overview-value,
.comparison-score-value,
.comparison-insight-value,
.chart-analytics-title {
    font-family: var(--font-display);
}

.topbar-center {
    grid-area: stats;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    min-width: 0;
    width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: none;
}

.topbar-center::-webkit-scrollbar {
    display: none;
}

.stats-pills {
    display: flex;
    gap: 8px;
    flex-wrap: nowrap;
    justify-content: flex-start;
    align-items: stretch;
    width: max-content;
    min-width: max-content;
}

.pill {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    min-width: 108px;
    max-width: none;
    flex: 0 0 auto;
    padding: 8px 12px 9px;
    background: var(--surface-panel);
    border: 1px solid var(--border);
    border-radius: 15px;
    transition: var(--transition-fast);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05);
}

.pill:hover {
    background: var(--surface-panel-hover);
    border-color: var(--border-hover);
    transform: translateY(-1px);
}

#pill-total {
    border-color: rgba(79, 140, 255, 0.22);
}

#pill-selected {
    border-color: rgba(16, 185, 129, 0.22);
}

#pill-loaded {
    border-color: rgba(217, 164, 65, 0.22);
}

.pill-label {
    font-size: 0.62rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--text-muted);
}

.pill-value {
    font-family: var(--font-display);
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: -0.04em;
    color: var(--text-primary);
}

.topbar-right {
    grid-area: tools;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: nowrap;
    gap: 8px;
    min-width: 0;
    width: 100%;
    justify-self: stretch;
    align-self: center;
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: none;
}

.topbar-right::-webkit-scrollbar {
    display: none;
}

.toolbar-search-trigger {
    height: 42px;
    display: inline-flex;
    align-items: center;
    gap: 12px;
    padding: 0 14px;
    border-radius: 999px;
    border: 1px solid var(--border);
    background: var(--surface-panel);
    color: var(--text-primary);
    cursor: pointer;
    font: inherit;
    font-size: 0.77rem;
    font-weight: 700;
    transition: transform var(--transition-fast), border-color var(--transition-fast), background var(--transition-fast), box-shadow var(--transition-fast), color var(--transition-fast);
    white-space: nowrap;
    box-shadow: var(--shadow-sm);
    flex: 0 0 auto;
}

.toolbar-graph-trigger {
    padding-right: 16px;
}

.toolbar-search-trigger:hover {
    background: var(--surface-panel-hover);
    border-color: var(--border-hover);
    transform: translateY(-1px);
}

.toolbar-search-trigger.active {
    background:
        linear-gradient(180deg, rgba(79, 140, 255, 0.22), rgba(147, 197, 253, 0.08)),
        rgba(10, 20, 19, 0.52);
    border-color: rgba(79, 140, 255, 0.42);
    color: var(--text-primary);
    box-shadow: 0 14px 28px rgba(79, 140, 255, 0.18);
}

.toolbar-search-icon {
    width: 18px;
    height: 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.toolbar-search-icon svg,
.toolbar-icon svg {
    width: 100%;
    height: 100%;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.85;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.toolbar-search-label {
    letter-spacing: 0.01em;
}

.toolbar-search-shortcut {
    padding: 3px 8px;
    border-radius: 999px;
    border: 1px solid var(--chip-border);
    background: var(--chip-bg);
    color: var(--text-muted);
    font-size: 0.62rem;
    font-weight: 700;
}

.toolbar-select {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 0 14px;
    height: 42px;
    border-radius: 14px;
    border: 1px solid var(--border);
    background: var(--surface-panel);
    color: var(--text-secondary);
    font-size: 0.74rem;
    font-weight: 700;
    box-shadow: var(--shadow-sm);
    flex: 0 0 auto;
}

.toolbar-select span {
    white-space: nowrap;
    letter-spacing: 0.02em;
}

.toolbar-select select {
    border: none;
    background: transparent;
    color: var(--text-primary);
    font: inherit;
    outline: none;
    min-width: 106px;
    cursor: pointer;
}

.icon-btn {
    width: 42px;
    height: 42px;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--surface-panel);
    border: 1px solid var(--border);
    border-radius: 14px;
    cursor: pointer;
    color: var(--text-secondary);
    font-size: 1rem;
    transition: transform var(--transition-fast), border-color var(--transition-fast), background var(--transition-fast), box-shadow var(--transition-fast), color var(--transition-fast);
    box-shadow: var(--shadow-sm);
    flex: 0 0 auto;
}

.toolbar-icon {
    width: 18px;
    height: 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.icon-btn:hover {
    background: var(--surface-panel-hover);
    border-color: var(--border-hover);
    color: var(--text-primary);
    transform: translateY(-1px);
}

.icon-btn.active {
    background:
        linear-gradient(180deg, rgba(79, 140, 255, 0.22), rgba(147, 197, 253, 0.08)),
        rgba(10, 20, 19, 0.52);
    border-color: rgba(79, 140, 255, 0.42);
    color: var(--text-primary);
    box-shadow: 0 14px 28px rgba(79, 140, 255, 0.16);
}

.icon-btn.active::after,
.icon-btn[aria-pressed="true"]::after {
    content: "";
    position: absolute;
    top: 7px;
    right: 7px;
    width: 7px;
    height: 7px;
    border-radius: 999px;
    background: var(--accent-light);
    box-shadow: 0 0 0 3px rgba(147, 197, 253, 0.14);
}

.icon-btn-sm {
    width: 30px;
    height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--button-ghost-bg);
    border: 1px solid transparent;
    cursor: pointer;
    color: var(--text-muted);
    font-size: 0.9rem;
    border-radius: 10px;
    transition: var(--transition-fast);
}

.icon-btn-sm:hover {
    color: var(--text-primary);
    background: var(--button-ghost-bg-hover);
    border-color: var(--border);
}

body[data-theme="light"] #topbar {
    box-shadow: 0 18px 38px rgba(15, 23, 42, 0.08);
}

body[data-theme="light"] .pill {
    background: var(--surface-panel);
}

body[data-theme="light"] .toolbar-search-trigger,
body[data-theme="light"] .toolbar-select,
body[data-theme="light"] .icon-btn {
    background: var(--surface-panel);
}

body[data-theme="light"] .pill:hover {
    background: var(--surface-panel-hover);
}

body[data-theme="light"] .toolbar-search-trigger:hover,
body[data-theme="light"] .icon-btn:hover {
    background: var(--surface-panel-hover);
}

body[data-theme="light"] .toolbar-search-trigger.active,
body[data-theme="light"] .icon-btn.active {
    background: linear-gradient(135deg, rgba(37, 99, 235, 0.92), rgba(96, 165, 250, 0.84));
    border-color: transparent;
    color: #ffffff;
    box-shadow: 0 16px 30px rgba(37, 99, 235, 0.22);
}

body[data-theme="light"] .search-result {
    background: var(--button-ghost-bg);
}

body[data-theme="light"] .search-result:hover,
body[data-theme="light"] .search-result.active {
    background: rgba(37, 99, 235, 0.08);
}

body[data-theme="light"] .search-result.is-place {
    background: rgba(37, 99, 235, 0.08);
}

body[data-theme="light"] .search-result.is-place:hover,
body[data-theme="light"] .search-result.is-place.active {
    background: rgba(37, 99, 235, 0.12);
}

body[data-theme="light"] .search-result-locate,
body[data-theme="light"] .search-badge {
    background: var(--chip-bg);
    border-color: var(--chip-border);
}

body[data-theme="light"] .property-focus-card,
body[data-theme="light"] .search-shell {
    box-shadow: 0 20px 42px rgba(24, 34, 31, 0.12);
}

/* ===== Compact Desktop Shell ===== */
body.desktop-compact #topbar {
    gap: 10px;
    padding-left: calc(14px + var(--safe-left));
    padding-right: calc(14px + var(--safe-right));
    backdrop-filter: blur(16px) saturate(118%);
    -webkit-backdrop-filter: blur(16px) saturate(118%);
}

body.desktop-compact .logo {
    gap: 10px;
}

body.desktop-compact .logo h1 {
    font-size: 0.98rem;
}

body.desktop-compact .logo-caption {
    font-size: 0.59rem;
}

body.desktop-compact .stats-pills,
body.desktop-compact .topbar-right {
    gap: 6px;
}

body.desktop-compact.sidebar-open #topbar {
    grid-template-columns: minmax(0, max-content) minmax(0, 1fr);
    grid-template-areas: "brand tools";
}

body.desktop-compact.sidebar-open .topbar-center {
    display: none;
}

body.desktop-compact .pill {
    min-width: 96px;
    padding: 7px 10px 8px;
}

body.desktop-compact .pill-label {
    font-size: 0.58rem;
}

body.desktop-compact .pill-value {
    font-size: 0.92rem;
}

body.desktop-compact .toolbar-search-trigger,
body.desktop-compact .toolbar-select,
body.desktop-compact .icon-btn {
    height: 40px;
}

body.desktop-compact .toolbar-search-trigger {
    gap: 10px;
    padding: 0 12px;
    font-size: 0.74rem;
}

body.desktop-compact.sidebar-open .toolbar-search-label,
body.desktop-compact.sidebar-open .toolbar-select span {
    display: none;
}

body.desktop-compact.sidebar-open .toolbar-search-trigger,
body.desktop-compact.sidebar-open .toolbar-graph-trigger {
    min-width: 40px;
    padding: 0 10px;
}

body.desktop-compact .toolbar-select {
    padding: 0 12px;
}

body.desktop-compact .toolbar-select select {
    min-width: 92px;
}

body.desktop-compact .icon-btn {
    width: 40px;
}

body.desktop-compact #sidebar,
body.desktop-compact .search-shell,
body.desktop-compact .property-focus-card,
body.desktop-compact .map-command-primary,
body.desktop-compact .map-status-card {
    backdrop-filter: blur(16px) saturate(118%);
    -webkit-backdrop-filter: blur(16px) saturate(118%);
}

body.desktop-compact #sidebar {
    box-shadow: 0 24px 54px rgba(2, 6, 23, 0.22);
}

body.desktop-compact .sidebar-header {
    padding: 12px 14px;
}

body.desktop-compact .sidebar-top-controls {
    padding: 8px 10px;
    border-radius: 16px;
}

body.desktop-compact .sidebar-sticky-controls {
    padding: 8px 8px 0;
}

body.desktop-compact .sidebar-scroll-body {
    padding: 18px 18px 60px;
    gap: 18px;
}

body.desktop-compact .analysis-section {
    padding: 18px;
    border-radius: 22px;
}

body.desktop-compact .analysis-nav {
    gap: 6px;
}

body.desktop-compact .analysis-nav-button {
    min-height: 74px;
    padding: 10px 12px;
}

body.desktop-compact .analysis-nav-button-note {
    font-size: 0.68rem;
}

body.desktop-compact .map-command-center {
    left: calc(72px + var(--safe-left));
    width: min(400px, calc(100vw - var(--shell-sidebar-space) - 116px - var(--safe-left) - var(--safe-right)));
    gap: 10px;
}

body.desktop-compact .map-command-primary {
    padding: 18px;
    border-radius: 24px;
}

body.desktop-compact .map-command-primary h2 {
    max-width: 15ch;
    font-size: clamp(1.18rem, 1.85vw, 1.68rem);
}

body.desktop-compact .map-command-summary {
    font-size: 0.82rem;
    line-height: 1.55;
}

body.desktop-compact .map-command-chip,
body.desktop-compact .instructions-chip {
    font-size: 0.64rem;
}

body.desktop-compact .map-status-card {
    min-height: 104px;
}

body.desktop-compact.sidebar-open .map-command-center {
    width: min(360px, calc(100vw - var(--shell-sidebar-space) - 96px - var(--safe-left) - var(--safe-right)));
}

body.desktop-compact.sidebar-open .map-command-secondary,
body.desktop-compact.sidebar-open .function-terminal-shell {
    display: none;
}

body.desktop-compact.sidebar-open .map-command-primary {
    padding-bottom: 16px;
}

body.desktop-compact.sidebar-open .map-command-summary {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
}

body.desktop-compact.sidebar-open .map-command-actions {
    gap: 8px;
    margin-top: 14px;
}

body.desktop-compact.sidebar-open .map-command-btn {
    flex: 1 1 calc(50% - 4px);
    min-width: 0;
}

/* ===== Map ===== */
#map {
    position: absolute;
    top: var(--topbar-height);
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1;
}

/* Keep the subdued tile treatment off the hybrid satellite layer. */
#map.basemap-dark .leaflet-tile-pane {
    filter: brightness(0.84) contrast(1.04) saturate(0.9);
}

#map.basemap-light .leaflet-tile-pane,
#map.basemap-street .leaflet-tile-pane {
    filter: brightness(1.03) contrast(1.02) saturate(0.92);
}

#map.basemap-satellite .leaflet-tile-pane {
    filter: none;
}

body.map-overlay-hidden #map.basemap-dark .leaflet-tile-pane,
body.map-overlay-hidden #map.basemap-light .leaflet-tile-pane,
body.map-overlay-hidden #map.basemap-street .leaflet-tile-pane {
    filter: none;
}

.dashboard-atmosphere {
    display: none;
}

.dashboard-atmosphere::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(7, 19, 31, 0.28) 0%, rgba(7, 19, 31, 0) 34%, rgba(7, 19, 31, 0.2) 100%);
    opacity: 0.86;
}

.atmosphere-orb {
    position: absolute;
    display: block;
    border-radius: 999px;
    filter: blur(6px);
    opacity: 0.5;
    animation: atmosphere-drift 20s ease-in-out infinite;
}

.orb-primary {
    top: 8%;
    left: 10%;
    width: 280px;
    height: 280px;
    background: radial-gradient(circle, rgba(79, 140, 255, 0.28) 0%, rgba(79, 140, 255, 0.02) 68%, transparent 100%);
}

.orb-secondary {
    right: 12%;
    top: 18%;
    width: 220px;
    height: 220px;
    background: radial-gradient(circle, rgba(17, 168, 168, 0.22) 0%, rgba(17, 168, 168, 0.02) 68%, transparent 100%);
    animation-delay: -6s;
}

.orb-tertiary {
    left: 36%;
    bottom: 12%;
    width: 320px;
    height: 320px;
    background: radial-gradient(circle, rgba(245, 158, 11, 0.16) 0%, rgba(245, 158, 11, 0.01) 72%, transparent 100%);
    animation-delay: -11s;
}

@keyframes atmosphere-drift {

    0%,
    100% {
        transform: translate3d(0, 0, 0) scale(1);
    }

    33% {
        transform: translate3d(18px, -10px, 0) scale(1.04);
    }

    66% {
        transform: translate3d(-12px, 14px, 0) scale(0.96);
    }
}

.leaflet-interactive.selection-boundary {
    filter:
        drop-shadow(0 0 10px rgba(0, 106, 255, 0.2))
        drop-shadow(0 8px 18px rgba(0, 106, 255, 0.12));
    vector-effect: non-scaling-stroke;
}

.leaflet-interactive.selection-boundary.selection-boundary--search {
    filter:
        drop-shadow(0 0 8px rgba(0, 106, 255, 0.14))
        drop-shadow(0 6px 14px rgba(0, 106, 255, 0.08));
}

.leaflet-interactive.selection-boundary.selection-boundary--draft {
    filter:
        drop-shadow(0 0 8px rgba(0, 106, 255, 0.16))
        drop-shadow(0 4px 12px rgba(0, 106, 255, 0.1));
}

.map-trace-clear {
    position: absolute;
    top: calc(var(--topbar-height) + 16px);
    left: 50%;
    z-index: 996;
    display: none;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    min-width: min(372px, calc(100vw - 40px));
    padding: 0 20px 0 28px;
    min-height: 72px;
    border: 2px solid rgba(0, 106, 255, 0.78);
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.98);
    box-shadow:
        0 20px 44px rgba(15, 23, 42, 0.18),
        0 0 0 4px rgba(255, 255, 255, 0.68);
    color: #2f2f39;
    transform: translateX(-50%);
    font-family: var(--font-sans);
    cursor: pointer;
}

.map-trace-clear[hidden] {
    display: none !important;
}

.map-trace-clear-label {
    font-size: 1.1rem;
    font-weight: 800;
    letter-spacing: 0.01em;
}

.map-trace-clear-icon {
    font-size: 1.8rem;
    font-weight: 500;
    line-height: 1;
    color: #3f4254;
}

.map-trace-clear:hover,
.map-trace-clear:focus-visible {
    border-color: #006aff;
    box-shadow:
        0 24px 50px rgba(15, 23, 42, 0.22),
        0 0 0 5px rgba(0, 106, 255, 0.12);
}

body.map-overlay-hidden .map-trace-clear {
    display: inline-flex;
}

.map-command-center {
    position: absolute;
    top: calc(var(--topbar-height) + 18px);
    left: calc(88px + var(--safe-left));
    width: min(470px, calc(100vw - var(--shell-sidebar-space) - 132px - var(--safe-left) - var(--safe-right)));
    max-height: calc(var(--app-height) - var(--topbar-height) - 28px - var(--safe-bottom));
    display: grid;
    align-items: flex-start;
    gap: 12px;
    z-index: 997;
    pointer-events: none;
    transition: transform var(--transition-normal), opacity var(--transition-normal);
    overflow-y: auto;
    overscroll-behavior: contain;
    padding-right: 4px;
    scrollbar-width: thin;
    scrollbar-color: rgba(112, 129, 152, 0.72) transparent;
}

.map-command-center>* {
    pointer-events: auto;
}

body.sidebar-open .map-command-center {
    transform: translateX(-8px);
}

body.search-open .map-command-center {
    transform: translateY(4px);
}

.map-command-center.is-collapsed {
    width: auto;
}

.map-command-center.is-collapsed .map-command-primary,
.map-command-center.is-collapsed .map-command-secondary {
    display: none;
}

.map-command-primary,
.map-status-card,
.map-command-restore {
    backdrop-filter: blur(22px) saturate(130%);
    -webkit-backdrop-filter: blur(22px) saturate(130%);
    max-width: 100%;
}

.map-command-restore {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: max-content;
    max-width: min(220px, calc(100vw - 24px));
    padding: 10px 14px;
    border-radius: 999px;
    border: 1px solid rgba(79, 140, 255, 0.18);
    background: var(--surface-overlay);
    box-shadow: 0 18px 44px rgba(8, 18, 17, 0.22);
    color: var(--text-primary);
    font-size: 0.74rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    cursor: pointer;
    transition: background var(--transition-fast), border-color var(--transition-fast), transform var(--transition-fast);
}

.map-command-restore:hover {
    border-color: rgba(79, 140, 255, 0.3);
    background: var(--surface-panel-hover);
    transform: translateY(-1px);
}

.map-command-primary {
    padding: 22px 22px 20px;
    border-radius: 28px;
    border: 1px solid rgba(79, 140, 255, 0.18);
    background: var(--surface-overlay);
    box-shadow: 0 28px 64px rgba(8, 18, 17, 0.34);
}

.map-command-center[data-state="active"] .map-command-primary {
    border-color: rgba(67, 196, 132, 0.28);
    background: var(--surface-overlay-success);
}

.map-command-center[data-state="loading"] .map-command-primary {
    border-color: rgba(217, 164, 65, 0.26);
}

.map-command-center[data-state="empty"] .map-command-primary {
    border-color: rgba(217, 164, 65, 0.24);
    background: var(--surface-overlay-warning);
}

.map-command-center[data-state="search"] .map-command-primary {
    border-color: rgba(79, 140, 255, 0.26);
    background: var(--surface-overlay);
}

.map-command-eyebrow-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
}

.map-command-utility {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 8px;
}

.map-command-kicker,
.instructions-kicker {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 0.66rem;
    font-weight: 800;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--accent-light);
}

.map-command-kicker::before,
.instructions-kicker::before {
    content: "";
    width: 8px;
    height: 8px;
    border-radius: 999px;
    background: currentColor;
    box-shadow: 0 0 0 6px rgba(79, 140, 255, 0.12);
}

.map-command-theme {
    display: inline-flex;
    align-items: center;
    padding: 6px 10px;
    border-radius: 999px;
    background: var(--chip-bg);
    border: 1px solid var(--chip-border);
    color: var(--text-secondary);
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.04em;
}

.map-command-visibility-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 6px 10px;
    border-radius: 999px;
    border: 1px solid var(--chip-border);
    background: var(--button-ghost-bg);
    color: var(--text-secondary);
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    cursor: pointer;
    transition: background var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast), transform var(--transition-fast);
}

.map-command-visibility-btn:hover {
    border-color: var(--border-hover);
    background: var(--button-ghost-bg-hover);
    color: var(--text-primary);
    transform: translateY(-1px);
}

.map-command-primary h2 {
    font-family: var(--font-display);
    font-size: clamp(1.48rem, 2.6vw, 2rem);
    line-height: 1.04;
    letter-spacing: -0.06em;
    max-width: 13ch;
}

.map-command-summary {
    margin-top: 12px;
    font-size: 0.88rem;
    line-height: 1.65;
    color: var(--text-secondary);
    max-width: 42ch;
}

.map-command-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 14px;
}

.map-command-chip,
.instructions-chip {
    display: inline-flex;
    align-items: center;
    padding: 6px 10px;
    border-radius: 999px;
    background: var(--chip-bg);
    border: 1px solid var(--chip-border);
    color: var(--text-secondary);
    font-size: 0.68rem;
    font-weight: 700;
    line-height: 1.25;
}

.map-command-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 16px;
}

.map-command-btn {
    display: inline-flex;
    align-items: center;
    min-width: 138px;
    justify-content: center;
}

.map-command-btn.is-active {
    box-shadow: 0 16px 30px rgba(79, 140, 255, 0.24);
}

.function-terminal-shell {
    margin-top: 18px;
    padding-top: 16px;
    border-top: 1px solid var(--analysis-border);
    display: grid;
    gap: 10px;
}

.function-terminal-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.function-terminal-kicker {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--accent-light);
}

.function-terminal-kicker::before {
    content: "";
    width: 8px;
    height: 8px;
    border-radius: 999px;
    background: currentColor;
    box-shadow: 0 0 0 6px rgba(147, 197, 253, 0.12);
}

.function-terminal-status {
    font-size: 0.72rem;
    line-height: 1.4;
    color: var(--text-secondary);
    text-align: right;
}

.function-terminal-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
    align-items: center;
}

.function-terminal-input-shell {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 46px;
    padding: 0 14px;
    border-radius: 16px;
    border: 1px solid var(--field-border);
    background: var(--field-bg);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
}

.function-terminal-prompt {
    flex: 0 0 auto;
    font-family: var(--font-display);
    font-size: 0.76rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--accent-light);
}

.function-terminal-input {
    width: 100%;
    min-width: 0;
    border: none;
    outline: none;
    background: transparent;
    color: var(--text-primary);
    font-size: 0.88rem;
    font-family: var(--font-sans);
}

.function-terminal-input::placeholder {
    color: var(--text-muted);
}

.function-terminal-run {
    min-width: 84px;
}

.function-terminal-suggestions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.function-terminal-chip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 32px;
    padding: 0 12px;
    border-radius: 999px;
    border: 1px solid var(--analysis-border);
    background: var(--button-ghost-bg);
    color: var(--text-secondary);
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    cursor: pointer;
    transition: transform var(--transition-fast), border-color var(--transition-fast), background var(--transition-fast), color var(--transition-fast);
}

.function-terminal-chip:hover,
.function-terminal-chip.active {
    transform: translateY(-1px);
    border-color: rgba(79, 140, 255, 0.26);
    background: rgba(79, 140, 255, 0.14);
    color: var(--text-primary);
}

.map-command-secondary {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.map-status-card {
    min-height: 118px;
    padding: 15px 16px;
    border-radius: 22px;
    border: 1px solid var(--analysis-border);
    background: var(--surface-panel);
    box-shadow: 0 18px 44px rgba(8, 18, 17, 0.2);
}

.map-status-label {
    font-size: 0.62rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--text-muted);
}

.map-status-value {
    display: block;
    margin-top: 9px;
    font-family: var(--font-display);
    font-size: 1.02rem;
    line-height: 1.08;
    letter-spacing: -0.045em;
    color: var(--text-primary);
}

.map-status-note {
    margin-top: 8px;
    font-size: 0.75rem;
    line-height: 1.55;
    color: var(--text-secondary);
}

.function-terminal-board {
    grid-column: 1 / -1;
    padding: 16px;
    border-radius: 24px;
    border: 1px solid rgba(173, 188, 204, 0.14);
    background:
        radial-gradient(circle at top right, rgba(147, 197, 253, 0.12), transparent 34%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.015)),
        rgba(7, 18, 31, 0.7);
    box-shadow: 0 18px 44px rgba(2, 6, 23, 0.2);
    display: grid;
    gap: 14px;
}

.function-terminal-board-empty {
    color: var(--text-secondary);
    font-size: 0.82rem;
    line-height: 1.55;
}

.function-terminal-board-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.function-terminal-board-kicker {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 0.66rem;
    font-weight: 800;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--accent-light);
}

.function-terminal-board-kicker::before {
    content: "";
    width: 7px;
    height: 7px;
    border-radius: 999px;
    background: currentColor;
}

.function-terminal-board-title {
    margin-top: 8px;
    font-family: var(--font-display);
    font-size: 1.1rem;
    line-height: 1.08;
    letter-spacing: -0.04em;
}

.function-terminal-board-note {
    margin-top: 8px;
    color: var(--text-secondary);
    font-size: 0.8rem;
    line-height: 1.55;
}

.function-terminal-board-meta {
    display: inline-flex;
    align-items: center;
    padding: 7px 10px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.08);
    color: var(--text-secondary);
    font-size: 0.68rem;
    font-weight: 700;
    white-space: nowrap;
}

.function-terminal-board-grid,
.function-terminal-code-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.function-terminal-card,
.function-terminal-code-card {
    padding: 12px;
    border-radius: 18px;
    border: 1px solid rgba(173, 188, 204, 0.12);
    background: rgba(255, 255, 255, 0.04);
    display: grid;
    gap: 6px;
}

.function-terminal-card-label {
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--text-muted);
}

.function-terminal-card-value {
    font-size: 1rem;
    font-weight: 800;
    line-height: 1.12;
    color: var(--text-primary);
}

.function-terminal-card-note {
    font-size: 0.74rem;
    line-height: 1.5;
    color: var(--text-secondary);
}

.function-terminal-code {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: max-content;
    min-height: 26px;
    padding: 0 10px;
    border-radius: 999px;
    background: rgba(79, 140, 255, 0.16);
    border: 1px solid rgba(79, 140, 255, 0.24);
    color: var(--text-primary);
    font-family: var(--font-display);
    font-size: 0.74rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    appearance: none;
    cursor: pointer;
}

.function-terminal-code-note {
    font-size: 0.74rem;
    line-height: 1.5;
    color: var(--text-secondary);
}

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

.function-terminal-list-row {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 10px;
    align-items: center;
    padding: 10px 12px;
    border-radius: 16px;
    border: 1px solid var(--analysis-border);
    background: var(--button-ghost-bg);
}

.function-terminal-list-rank {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 999px;
    background: rgba(79, 140, 255, 0.16);
    color: var(--text-primary);
    font-size: 0.76rem;
    font-weight: 800;
}

.function-terminal-list-primary {
    font-size: 0.82rem;
    font-weight: 700;
    line-height: 1.4;
    color: var(--text-primary);
}

.function-terminal-list-secondary {
    font-size: 0.72rem;
    line-height: 1.45;
    color: var(--text-secondary);
}

.function-terminal-list-metric {
    text-align: right;
}

.function-terminal-list-metric strong {
    display: block;
    font-size: 0.82rem;
    font-weight: 800;
    color: var(--text-primary);
}

.function-terminal-list-metric span {
    display: block;
    margin-top: 2px;
    font-size: 0.68rem;
    color: var(--text-secondary);
}

.function-terminal-board-tape {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
}

.function-terminal-tape-item {
    padding: 10px 12px;
    border-radius: 16px;
    border: 1px solid rgba(173, 188, 204, 0.12);
    background: rgba(255, 255, 255, 0.04);
}

.function-terminal-tape-year {
    display: block;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--text-muted);
}

.function-terminal-tape-value {
    display: block;
    margin-top: 8px;
    font-size: 0.9rem;
    font-weight: 800;
    color: var(--text-primary);
}

.function-terminal-tape-note {
    display: block;
    margin-top: 4px;
    font-size: 0.7rem;
    line-height: 1.45;
    color: var(--text-secondary);
}

body[data-theme="light"] .dashboard-atmosphere::before {
    background:
        radial-gradient(circle at 16% 16%, rgba(79, 140, 255, 0.14), transparent 28%),
        radial-gradient(circle at 78% 18%, rgba(15, 139, 141, 0.1), transparent 24%),
        linear-gradient(120deg, rgba(255, 255, 255, 0.12) 0%, rgba(255, 255, 255, 0.02) 34%, rgba(255, 255, 255, 0) 48%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.06) 0%, rgba(255, 255, 255, 0.12) 100%);
}

body[data-theme="light"] .dashboard-atmosphere::after {
    background: linear-gradient(90deg, rgba(255, 255, 255, 0.18) 0%, rgba(255, 255, 255, 0) 32%, rgba(255, 255, 255, 0.1) 100%);
}

body[data-theme="light"] .map-command-primary,
body[data-theme="light"] .map-status-card,
body[data-theme="light"] .instructions-card-shell {
    background: var(--surface-overlay);
    box-shadow: 0 22px 48px rgba(24, 34, 31, 0.12);
}

body[data-theme="light"] .map-command-primary {
    border-color: rgba(37, 99, 235, 0.14);
}

body[data-theme="light"] .map-status-card,
body[data-theme="light"] .instructions-card-shell {
    border-color: rgba(24, 34, 31, 0.08);
}

body[data-theme="light"] .map-command-theme,
body[data-theme="light"] .map-command-chip,
body[data-theme="light"] .instructions-chip {
    background: var(--chip-bg);
    border-color: var(--chip-border);
}

body[data-theme="light"] .map-command-restore,
body[data-theme="light"] .map-command-visibility-btn {
    background: var(--surface-panel);
    border-color: rgba(24, 34, 31, 0.08);
    color: var(--text-secondary);
}

body[data-theme="light"] .map-command-restore:hover,
body[data-theme="light"] .map-command-visibility-btn:hover {
    background: var(--surface-panel-hover);
    color: var(--text-primary);
}

body[data-theme="light"] .function-terminal-shell {
    border-top-color: rgba(24, 34, 31, 0.08);
}

body[data-theme="light"] .function-terminal-input-shell {
    border-color: rgba(37, 99, 235, 0.14);
    background: rgba(255, 251, 245, 0.9);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8);
}

body[data-theme="light"] .function-terminal-chip,
body[data-theme="light"] .function-terminal-board,
body[data-theme="light"] .function-terminal-card,
body[data-theme="light"] .function-terminal-code-card,
body[data-theme="light"] .function-terminal-list-row,
body[data-theme="light"] .function-terminal-tape-item {
    border-color: rgba(24, 34, 31, 0.08);
}

body[data-theme="light"] .function-terminal-board {
    background:
        radial-gradient(circle at top right, rgba(79, 140, 255, 0.08), transparent 34%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.86), rgba(255, 255, 255, 0.96)),
        rgba(255, 255, 255, 0.94);
}

/* ===== Global Search ===== */
.search-shell {
    position: absolute;
    top: calc(var(--topbar-height) + 10px);
    right: calc(16px + var(--safe-right));
    width: min(540px, calc(100vw - var(--shell-sidebar-space) - 32px - var(--safe-left) - var(--safe-right)));
    max-height: calc(var(--app-height) - var(--topbar-height) - 24px - var(--safe-bottom));
    padding: 16px;
    border-radius: 20px;
    border: 1px solid rgba(79, 140, 255, 0.18);
    background: var(--surface-overlay);
    backdrop-filter: blur(24px);
    -webkit-backdrop-filter: blur(24px);
    box-shadow: var(--shadow-md);
    z-index: 1002;
    transform-origin: top right;
    transition: opacity var(--transition-fast), transform var(--transition-fast);
    display: flex;
    flex-direction: column;
}

.search-shell.hidden {
    opacity: 0;
    transform: translateY(-10px) scale(0.98);
    pointer-events: none;
}

.search-shell-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}

.search-kicker {
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--accent-light);
    margin-bottom: 4px;
}

.search-shell-actions {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    flex-shrink: 0;
}

.search-shell-header h2 {
    font-size: 0.92rem;
    line-height: 1.3;
    font-weight: 700;
    letter-spacing: -0.02em;
    color: var(--text-primary);
}

.search-input-wrap {
    display: block;
    margin-bottom: 10px;
}

.search-input {
    width: 100%;
    padding: 14px 15px;
    border-radius: 15px;
    border: 1px solid var(--field-border);
    background: var(--field-bg);
    color: var(--text-primary);
    font: inherit;
    font-size: 0.92rem;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05);
    transition: var(--transition-fast);
}

.search-input:focus {
    outline: none;
    border-color: var(--field-border-strong);
    box-shadow: 0 0 0 3px var(--ring);
}

.search-input::placeholder {
    color: var(--text-muted);
}

.search-meta {
    font-size: 0.72rem;
    line-height: 1.45;
    color: var(--text-secondary);
    flex-shrink: 0;
}

.search-results {
    margin-top: 12px;
    min-height: 0;
    flex: 1 1 auto;
    overflow-y: auto;
    display: grid;
    gap: 10px;
    padding-right: 4px;
}

.search-results.hidden {
    display: none;
}

.search-empty {
    padding: 14px;
    border: 1px dashed var(--border);
    border-radius: var(--radius-md);
    background: var(--button-ghost-bg);
    font-size: 0.76rem;
    line-height: 1.5;
    color: var(--text-secondary);
}

.search-result {
    width: 100%;
    text-align: left;
    padding: 14px;
    border: 1px solid var(--border);
    border-radius: 16px;
    background: var(--button-ghost-bg);
    cursor: pointer;
    transition: transform var(--transition-fast), border-color var(--transition-fast), background var(--transition-fast), box-shadow var(--transition-fast);
}

.search-result:hover,
.search-result.active {
    border-color: rgba(79, 140, 255, 0.38);
    background: rgba(79, 140, 255, 0.1);
    box-shadow: 0 14px 32px rgba(8, 18, 17, 0.2);
    transform: translateY(-1px);
}

.search-result.active {
    box-shadow:
        0 0 0 1px rgba(79, 140, 255, 0.34),
        0 16px 34px rgba(8, 18, 17, 0.22);
}

.search-result.is-place {
    border-color: rgba(67, 196, 132, 0.22);
    background: rgba(67, 196, 132, 0.06);
}

.search-result.is-place:hover,
.search-result.is-place.active {
    border-color: rgba(67, 196, 132, 0.42);
    background: rgba(67, 196, 132, 0.12);
}

.search-result-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.search-result-title {
    font-size: 0.86rem;
    font-weight: 700;
    color: var(--text-primary);
    line-height: 1.35;
}

.search-result-subtitle {
    margin-top: 4px;
    font-size: 0.74rem;
    line-height: 1.45;
    color: var(--text-secondary);
}

.search-result-locate {
    padding: 6px 10px;
    border-radius: var(--radius-sm);
    border: 1px solid var(--border);
    background: var(--chip-bg);
    color: var(--text-primary);
    font: inherit;
    font-size: 0.7rem;
    font-weight: 600;
    cursor: pointer;
}

.search-result-locate:hover {
    border-color: var(--border-hover);
    background: var(--button-secondary-bg-hover);
}

.search-result-meta {
    margin-top: 10px;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.search-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 8px;
    border-radius: 999px;
    background: var(--chip-bg);
    border: 1px solid var(--chip-border);
    font-size: 0.68rem;
    font-weight: 600;
    color: var(--text-secondary);
}

.search-badge strong {
    color: var(--text-primary);
    font-weight: 700;
}

.search-result-footer {
    margin-top: 10px;
    font-size: 0.72rem;
    line-height: 1.45;
    color: var(--text-muted);
}

.property-focus-card {
    position: absolute;
    left: calc(20px + var(--safe-left));
    bottom: calc(20px + var(--safe-bottom));
    width: min(380px, calc(100vw - var(--shell-sidebar-space) - 40px - var(--safe-left) - var(--safe-right)));
    max-height: calc(var(--app-height) - var(--topbar-height) - 40px - var(--safe-bottom));
    padding: 16px;
    border-radius: 20px;
    border: 1px solid rgba(79, 140, 255, 0.16);
    background: var(--surface-overlay);
    backdrop-filter: blur(22px);
    -webkit-backdrop-filter: blur(22px);
    box-shadow: var(--shadow-md);
    z-index: 1001;
    transition: opacity var(--transition-fast), transform var(--transition-fast);
    overflow-y: auto;
    overscroll-behavior: contain;
}

.property-focus-card.hidden {
    opacity: 0;
    transform: translateY(12px);
    pointer-events: none;
}

.property-focus-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.property-focus-kicker {
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--accent-light);
}

.property-focus-title {
    margin-top: 8px;
    font-size: 0.98rem;
    font-weight: 700;
    line-height: 1.35;
    color: var(--text-primary);
}

.property-focus-subtitle {
    margin-top: 4px;
    font-size: 0.76rem;
    line-height: 1.45;
    color: var(--text-secondary);
}

.property-focus-meta {
    margin-top: 10px;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.property-focus-note {
    margin-top: 10px;
    font-size: 0.73rem;
    line-height: 1.55;
    color: var(--text-secondary);
}

.property-focus-actions {
    margin-top: 12px;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.property-focus-links {
    margin-top: 12px;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.property-focus-links:empty {
    display: none;
}

/* Leaflet Draw controls styling override */
.leaflet-draw-section {
    position: relative;
    z-index: 1001;
    margin-bottom: 12px;
}

.leaflet-draw-section:last-child {
    margin-bottom: 0;
}

.leaflet-bar {
    border: 1px solid var(--map-tool-panel-border) !important;
    box-shadow: var(--shadow-md) !important;
    background: var(--map-tool-panel-bg) !important;
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
}

.leaflet-control-zoom.leaflet-bar,
.leaflet-draw-toolbar.leaflet-bar,
.leaflet-control-lasso.leaflet-bar {
    padding: 8px !important;
    border-radius: calc(var(--map-tool-radius) + 6px) !important;
}

.leaflet-control-zoom a,
.leaflet-draw-toolbar a {
    width: var(--map-tool-size) !important;
    height: var(--map-tool-size) !important;
    margin: 0 !important;
    border: 1px solid var(--border) !important;
    border-radius: calc(var(--map-tool-radius) - 4px) !important;
    background: var(--map-tool-surface) !important;
    color: var(--text-primary) !important;
    display: flex !important;
    align-items: center;
    justify-content: center;
    line-height: 1 !important;
    text-decoration: none !important;
    text-indent: 0 !important;
    font-size: 0 !important;
    overflow: visible !important;
    transition:
        transform var(--transition-fast),
        border-color var(--transition-fast),
        background var(--transition-fast),
        box-shadow var(--transition-fast),
        color var(--transition-fast) !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.08),
        0 14px 24px rgba(2, 8, 19, 0.12) !important;
}

.leaflet-control-zoom a+a,
.leaflet-draw-toolbar a+a {
    margin-top: var(--map-tool-gap) !important;
}

.leaflet-control-zoom a:hover,
.leaflet-draw-toolbar a:hover {
    background: var(--map-tool-surface-hover) !important;
    border-color: var(--border-hover) !important;
    transform: translateY(-1px);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.12),
        0 18px 30px rgba(2, 8, 19, 0.16),
        0 0 0 6px var(--tool-accent, transparent) !important;
}

.leaflet-draw-toolbar a.leaflet-disabled {
    opacity: 0.42;
    filter: saturate(0.72);
    transform: none !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.04),
        0 10px 18px rgba(2, 8, 19, 0.08) !important;
}

.leaflet-draw-actions {
    background: var(--map-tool-panel-bg) !important;
    border: 1px solid var(--map-tool-panel-border) !important;
    border-radius: calc(var(--map-tool-radius) + 4px) !important;
    padding: 6px !important;
    margin-left: 10px !important;
    box-shadow: var(--shadow-md) !important;
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
}

.leaflet-draw-actions li:first-child a {
    border-radius: 999px 0 0 999px !important;
}

.leaflet-draw-actions li:last-child a {
    border-radius: 0 999px 999px 0 !important;
}

.leaflet-draw-actions a {
    background: transparent !important;
    color: var(--text-primary) !important;
    border: none !important;
    border-right: 1px solid var(--border) !important;
    min-height: 34px !important;
    padding: 0 14px !important;
    font-family: var(--font-sans) !important;
    font-size: 0.72rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.01em !important;
}

.leaflet-draw-actions a:hover {
    background: var(--accent-glow) !important;
}

.leaflet-control-attribution {
    background: rgba(10, 14, 23, 0.7) !important;
    color: var(--text-muted) !important;
    font-size: 0.6rem !important;
}

.leaflet-control-attribution a {
    color: var(--text-secondary) !important;
}

/* ===== Sidebar ===== */
#sidebar {
    position: absolute;
    top: var(--topbar-height);
    right: 0;
    bottom: 0;
    width: var(--sidebar-width);
    min-width: var(--sidebar-width-min);
    max-width: min(var(--sidebar-width-max), calc(100vw - 56px - var(--safe-left) - var(--safe-right)));
    background: var(--analysis-shell);
    backdrop-filter: blur(28px) saturate(135%);
    -webkit-backdrop-filter: blur(28px) saturate(135%);
    border-left: 1px solid var(--analysis-border);
    z-index: 999;
    display: flex;
    flex-direction: column;
    min-height: 0;
    transform: translateX(0);
    transition: transform var(--transition-normal), opacity var(--transition-normal);
    box-shadow: var(--analysis-shadow);
}

body.is-resizing-sidebar,
body.is-resizing-sidebar * {
    cursor: col-resize !important;
    user-select: none !important;
}

#sidebar.hidden {
    transform: translateX(100%);
    opacity: 0;
    pointer-events: none;
}

.sidebar-resizer {
    position: absolute;
    top: 0;
    left: -6px;
    bottom: 0;
    width: 12px;
    cursor: col-resize;
    z-index: 3;
}

.sidebar-resizer::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 4px;
    height: 72px;
    border-radius: 999px;
    background: rgba(148, 163, 184, 0.35);
    transform: translate(-50%, -50%);
    transition: background var(--transition-fast), box-shadow var(--transition-fast);
}

.sidebar-resizer:hover::before {
    background: rgba(96, 165, 250, 0.72);
    box-shadow: 0 0 0 4px rgba(96, 165, 250, 0.12);
}

.sidebar-reopen-btn {
    position: absolute;
    top: calc(var(--topbar-height) + 20px);
    right: calc(20px + var(--safe-right));
    z-index: 998;
    border: 1px solid var(--analysis-border-strong);
    border-radius: 20px;
    background:
        radial-gradient(circle at top right, rgba(147, 197, 253, 0.18), transparent 36%),
        var(--analysis-surface-strong);
    color: var(--text-primary);
    box-shadow: var(--analysis-shadow);
    padding: 13px 15px;
    display: grid;
    gap: 4px;
    cursor: pointer;
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    opacity: 0;
    pointer-events: none;
    transform: translateX(18px);
    transition: transform var(--transition-normal), opacity var(--transition-normal), border-color var(--transition-fast), background var(--transition-fast);
    max-width: calc(100vw - 40px - var(--safe-left) - var(--safe-right));
}

.sidebar-reopen-btn.visible {
    opacity: 1;
    pointer-events: auto;
    transform: translateX(0);
}

.sidebar-reopen-btn:hover {
    border-color: rgba(96, 165, 250, 0.34);
    background:
        radial-gradient(circle at top right, rgba(147, 197, 253, 0.26), transparent 38%),
        var(--analysis-surface-strong);
}

.app-mobile-backdrop {
    display: none;
}

.mobile-dock {
    display: none;
}

.sidebar-reopen-kicker {
    font-size: 0.62rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--accent-light);
}

.sidebar-reopen-label {
    font-size: 0.8rem;
    font-weight: 700;
    line-height: 1.1;
    font-family: var(--font-display);
}

.sidebar-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 14px 16px 12px;
    border-bottom: 1px solid var(--analysis-border);
    background:
        radial-gradient(circle at top right, rgba(147, 197, 253, 0.12), transparent 34%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0));
    flex-shrink: 0;
}

.sidebar-header-copy {
    min-width: 0;
}

.sidebar-header-line {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
}

.sidebar-kicker {
    display: inline-flex;
    align-items: center;
    padding: 4px 8px;
    border-radius: 999px;
    border: 1px solid rgba(79, 140, 255, 0.2);
    background: rgba(147, 197, 253, 0.12);
    font-size: 0.64rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--accent-light);
    white-space: nowrap;
    flex: 0 0 auto;
}

.sidebar-header h2 {
    min-width: 0;
    font-size: 0.94rem;
    font-weight: 800;
    letter-spacing: -0.04em;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.sidebar-header-note {
    display: none;
}

.sidebar-scroll {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    display: grid;
    align-content: start;
    scrollbar-width: thin;
    scrollbar-color: var(--text-muted) transparent;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
}

.sidebar-scroll-body {
    padding: 24px 22px 72px;
    display: grid;
    gap: 26px;
    align-content: start;
}

.sidebar-scroll>*,
.sidebar-scroll-body>* {
    min-width: 0;
}

.sidebar-scroll::-webkit-scrollbar {
    width: 6px;
}

.sidebar-scroll::-webkit-scrollbar-thumb {
    background: var(--text-muted);
    border-radius: 3px;
}

.sidebar-scroll::-webkit-scrollbar-track {
    background: transparent;
}

.sidebar-sticky-controls {
    position: sticky;
    top: 0;
    z-index: 8;
    display: grid;
    gap: 0;
    padding: 10px 10px 0;
    background:
        linear-gradient(180deg, rgba(5, 13, 23, 0.98) 0%, rgba(7, 16, 28, 0.96) 72%, rgba(7, 16, 28, 0.38) 100%);
    backdrop-filter: blur(22px);
    -webkit-backdrop-filter: blur(22px);
}

.sidebar-top-controls {
    padding: 10px 12px;
    background:
        radial-gradient(circle at top right, rgba(147, 197, 253, 0.12), transparent 34%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.015)),
        var(--analysis-surface-strong);
    display: block;
    border: 1px solid var(--analysis-border);
    border-radius: 18px;
    box-shadow: var(--analysis-inset), 0 16px 34px rgba(2, 6, 23, 0.14);
    z-index: 1;
    overflow: visible;
}

.sidebar-date-range-editor {
    display: grid;
    gap: 12px;
}

.workspace-switcher {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
    overflow: visible;
}

.workspace-page-tabs {
    display: flex;
    flex: 1 1 auto;
    flex-wrap: nowrap;
    gap: 6px;
    min-width: 0;
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: none;
    -ms-overflow-style: none;
}

.workspace-page-tabs::-webkit-scrollbar {
    display: none;
}

.workspace-page-tab {
    flex: 0 0 auto;
    min-height: 30px;
    padding: 7px 10px;
    border-radius: 999px;
    border: 1px solid var(--analysis-border);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.022)),
        rgba(15, 23, 42, 0.18);
    color: var(--text-secondary);
    font: inherit;
    font-size: 0.64rem;
    font-weight: 800;
    letter-spacing: 0.01em;
    cursor: pointer;
    transition: transform var(--transition-fast), border-color var(--transition-fast), background var(--transition-fast), color var(--transition-fast), box-shadow var(--transition-fast);
}

.workspace-page-tab:hover {
    transform: translateY(-1px);
    border-color: rgba(96, 165, 250, 0.28);
    color: var(--text-primary);
}

.workspace-page-tab.active {
    border-color: rgba(79, 140, 255, 0.34);
    background:
        linear-gradient(135deg, rgba(79, 140, 255, 0.24), rgba(17, 168, 168, 0.14)),
        rgba(15, 23, 42, 0.3);
    color: #eef6ff;
    box-shadow: 0 10px 24px rgba(79, 140, 255, 0.16);
}

.sidebar-inline-details,
.analysis-hero-details {
    position: relative;
    flex: 0 0 auto;
    min-width: 0;
}

.sidebar-inline-details>summary,
.analysis-hero-details>summary {
    list-style: none;
}

.sidebar-inline-details>summary::-webkit-details-marker,
.analysis-hero-details>summary::-webkit-details-marker {
    display: none;
}

.sidebar-inline-summary,
.workspace-page-summary,
.analysis-hero-disclosure {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 30px;
    padding: 6px 10px;
    border-radius: 999px;
    border: 1px solid var(--analysis-border);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.055), rgba(255, 255, 255, 0.02)),
        rgba(15, 23, 42, 0.16);
    color: var(--text-primary);
    cursor: pointer;
    transition: transform var(--transition-fast), border-color var(--transition-fast), background var(--transition-fast), box-shadow var(--transition-fast), color var(--transition-fast);
    min-width: 0;
}

.sidebar-inline-summary:hover,
.workspace-page-summary:hover,
.analysis-hero-disclosure:hover {
    transform: translateY(-1px);
    border-color: rgba(96, 165, 250, 0.3);
    background:
        linear-gradient(180deg, rgba(79, 140, 255, 0.14), rgba(79, 140, 255, 0.05)),
        rgba(15, 23, 42, 0.2);
    box-shadow: 0 12px 24px rgba(79, 140, 255, 0.12);
}

.sidebar-inline-summary::after,
.workspace-page-summary::after,
.analysis-hero-disclosure::after {
    content: "▾";
    font-size: 0.72rem;
    color: var(--text-muted);
    transition: transform var(--transition-fast);
    flex: 0 0 auto;
}

.sidebar-inline-details[open]>.sidebar-inline-summary::after,
.workspace-page-summary-shell[open]>.workspace-page-summary::after,
.analysis-hero-details[open]>.analysis-hero-disclosure::after {
    transform: rotate(180deg);
}

.sidebar-inline-details[open]>.sidebar-inline-summary,
.workspace-page-summary-shell[open]>.workspace-page-summary,
.analysis-hero-details[open]>.analysis-hero-disclosure {
    background:
        linear-gradient(180deg, rgba(79, 140, 255, 0.18), rgba(79, 140, 255, 0.06)),
        rgba(15, 23, 42, 0.24);
    border-color: rgba(96, 165, 250, 0.34);
    color: #eef6ff;
}

.sidebar-inline-label {
    font-size: 0.56rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--text-muted);
    white-space: nowrap;
    flex: 0 0 auto;
}

.sidebar-inline-value {
    font-size: 0.68rem;
    font-weight: 700;
    color: var(--text-primary);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 180px;
    min-width: 0;
}

.sidebar-inline-panel {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    width: min(420px, calc(100vw - 48px));
    padding: 14px;
    border-radius: 18px;
    border: 1px solid rgba(96, 165, 250, 0.18);
    background:
        radial-gradient(circle at top right, rgba(79, 140, 255, 0.16), transparent 38%),
        linear-gradient(180deg, rgba(11, 20, 34, 0.98), rgba(7, 16, 28, 0.94));
    box-shadow: var(--analysis-inset), 0 26px 52px rgba(2, 6, 23, 0.28);
    display: grid;
    gap: 12px;
    z-index: 12;
}

.workspace-page-summary {
    max-width: 280px;
}

.workspace-page-summary-shell .sidebar-inline-panel {
    left: 0;
    right: auto;
    width: min(460px, calc(100vw - 48px));
}

.sidebar-date-range-shell .sidebar-inline-panel {
    width: min(360px, calc(100vw - 48px));
}

.analysis-quick-actions-shell .sidebar-inline-panel {
    width: min(290px, calc(100vw - 48px));
}

.workspace-page-summary-copy {
    display: grid;
    gap: 8px;
}

.workspace-page-kicker,
.saved-hub-block-kicker {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    padding: 4px 8px;
    border-radius: 999px;
    border: 1px solid rgba(79, 140, 255, 0.24);
    background: rgba(147, 197, 253, 0.14);
    color: var(--accent-light);
    font-size: 0.58rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    white-space: nowrap;
    flex: 0 0 auto;
}

.workspace-page-summary-title {
    font-size: 0.72rem;
    font-weight: 700;
    color: var(--text-primary);
    line-height: 1.2;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    min-width: 0;
    max-width: 190px;
}

.workspace-page-note {
    font-size: 0.76rem;
    line-height: 1.55;
    color: var(--analysis-text-quiet);
    max-width: none;
}

.workspace-page-chip-row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.workspace-page-chip {
    display: inline-flex;
    align-items: center;
    padding: 5px 8px;
    border-radius: 999px;
    border: 1px solid var(--analysis-border);
    background: rgba(255, 255, 255, 0.055);
    color: var(--text-secondary);
    font-size: 0.63rem;
    font-weight: 700;
    line-height: 1.3;
}

.workspace-page-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.workspace-page-actions .btn-sm {
    padding: 7px 10px;
    font-size: 0.69rem;
    box-shadow: none;
}

.sidebar-date-range-shell {
    display: block;
}

.sidebar-date-range-summary-row {
    justify-content: flex-start;
}

.analysis-quick-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.analysis-quick-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 32px;
    padding: 8px 10px;
    border-radius: 999px;
    border: 1px solid var(--analysis-border);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.025)),
        rgba(15, 23, 42, 0.16);
    color: var(--text-primary);
    font: inherit;
    font-size: 0.68rem;
    font-weight: 700;
    cursor: pointer;
    transition: transform var(--transition-fast), border-color var(--transition-fast), background var(--transition-fast), box-shadow var(--transition-fast);
}

.analysis-quick-action:hover {
    transform: translateY(-1px);
    border-color: rgba(96, 165, 250, 0.3);
    background:
        linear-gradient(180deg, rgba(79, 140, 255, 0.16), rgba(79, 140, 255, 0.06)),
        rgba(15, 23, 42, 0.2);
    box-shadow: 0 10px 20px rgba(79, 140, 255, 0.12);
}

.saved-hub-summary-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 12px;
    margin-bottom: 18px;
}

.saved-hub-summary-card,
.saved-hub-block,
.saved-hub-card,
.saved-hub-empty {
    border: 1px solid var(--analysis-border);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.018)),
        rgba(8, 18, 31, 0.36);
    box-shadow: var(--analysis-inset);
}

.saved-hub-summary-card {
    padding: 15px 16px;
    border-radius: 20px;
    display: grid;
    gap: 6px;
}

.saved-hub-summary-label {
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--text-muted);
}

.saved-hub-summary-value {
    font-family: var(--font-display);
    font-size: 1.12rem;
    font-weight: 700;
    letter-spacing: -0.04em;
    color: var(--text-primary);
}

.saved-hub-summary-note {
    font-size: 0.75rem;
    line-height: 1.5;
    color: var(--text-secondary);
}

.saved-hub-grid {
    display: grid;
    gap: 18px;
}

.saved-hub-block {
    padding: 18px;
    border-radius: 24px;
    display: grid;
    gap: 14px;
}

.saved-hub-block-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.saved-hub-block-header h4 {
    margin-top: 10px;
    font-size: 1rem;
    line-height: 1.18;
    letter-spacing: -0.02em;
}

.saved-hub-list {
    display: grid;
    gap: 12px;
}

.saved-hub-card {
    padding: 16px;
    border-radius: 20px;
    display: grid;
    gap: 12px;
}

.saved-hub-card.is-active {
    border-color: rgba(79, 140, 255, 0.26);
    background:
        linear-gradient(180deg, rgba(79, 140, 255, 0.14), rgba(255, 255, 255, 0.018)),
        rgba(8, 18, 31, 0.42);
}

.saved-hub-card-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.saved-hub-card-copy {
    display: grid;
    gap: 6px;
}

.saved-hub-card-title {
    font-size: 0.94rem;
    font-weight: 800;
    line-height: 1.25;
    color: var(--text-primary);
}

.saved-hub-card-subtitle {
    font-size: 0.75rem;
    line-height: 1.5;
    color: var(--text-secondary);
}

.saved-hub-card-note {
    font-size: 0.76rem;
    line-height: 1.55;
    color: var(--analysis-text-quiet);
}

.saved-hub-card-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.saved-hub-empty {
    padding: 18px;
    border-radius: 20px;
    color: var(--text-secondary);
    font-size: 0.78rem;
    line-height: 1.6;
    border-style: dashed;
}

body[data-theme="light"] .sidebar-top-controls,
body[data-theme="light"] .saved-hub-summary-card,
body[data-theme="light"] .saved-hub-block,
body[data-theme="light"] .saved-hub-card,
body[data-theme="light"] .saved-hub-empty {
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.97), rgba(255, 255, 255, 0.9)),
        rgba(255, 255, 255, 0.94);
}

body[data-theme="light"] .workspace-switcher {
    background: none;
}

body[data-theme="light"] .workspace-page-summary,
body[data-theme="light"] .sidebar-inline-summary,
body[data-theme="light"] .analysis-hero-disclosure {
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(255, 255, 255, 0.9)),
        rgba(255, 255, 255, 0.94);
}

body[data-theme="light"] .sidebar-inline-panel,
body[data-theme="light"] .analysis-hero-details-panel {
    background:
        radial-gradient(circle at top right, rgba(79, 140, 255, 0.08), transparent 34%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.99), rgba(245, 248, 252, 0.95)),
        rgba(255, 255, 255, 0.97);
}

body[data-theme="light"] .workspace-page-tab {
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(255, 255, 255, 0.88)),
        rgba(255, 255, 255, 0.94);
}

body[data-theme="light"] .workspace-page-tab.active {
    color: #ffffff;
}

body[data-theme="light"] .sidebar-sticky-controls {
    background:
        linear-gradient(180deg, rgba(245, 248, 252, 0.98) 0%, rgba(245, 248, 252, 0.95) 72%, rgba(245, 248, 252, 0.24) 100%);
}

body[data-theme="light"] .workspace-page-summary-shell[open] > .workspace-page-summary,
body[data-theme="light"] .sidebar-inline-details[open] > .sidebar-inline-summary,
body[data-theme="light"] .analysis-hero-details[open] > .analysis-hero-disclosure {
    color: #0f172a;
}

body[data-theme="light"] .selected-showcase-fullscreen-panel {
    background:
        radial-gradient(circle at top right, rgba(14, 165, 233, 0.1), transparent 34%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(241, 245, 249, 0.94)),
        rgba(255, 255, 255, 0.92);
    border-color: rgba(15, 23, 42, 0.09);
}

body[data-theme="light"] .selected-showcase-fullscreen-head strong,
body[data-theme="light"] .selected-showcase-fullscreen-stat strong {
    color: #0f172a;
}

body[data-theme="light"] .selected-showcase-fullscreen-summary,
body[data-theme="light"] .selected-showcase-fullscreen-stat span:last-child {
    color: #475569;
}

body[data-theme="light"] .selected-showcase-fullscreen-section-note,
body[data-theme="light"] .selected-showcase-fullscreen-panel .cleanup-input,
body[data-theme="light"] .selected-showcase-fullscreen-panel .properties-filter-field {
    color: #475569;
}

body[data-theme="light"] .selected-showcase-fullscreen-date-field {
    color: #334155;
}

body[data-theme="light"] .selected-showcase-fullscreen-date-field input {
    background: rgba(255, 255, 255, 0.92);
    border-color: rgba(15, 23, 42, 0.09);
    color: #0f172a;
    color-scheme: light;
}

body[data-theme="light"] .selected-showcase-fullscreen-section-head strong {
    color: #0f172a;
}

body[data-theme="light"] .selected-showcase-fullscreen-toggle-grid .toggle-chip,
body[data-theme="light"] .selected-showcase-fullscreen-filter-card {
    background: rgba(255, 255, 255, 0.72);
    border-color: rgba(15, 23, 42, 0.08);
    color: #334155;
}

body[data-theme="light"] .selected-showcase-fullscreen-panel .cleanup-range-title {
    color: #475569;
}

body[data-theme="light"] .selected-showcase-fullscreen-panel .cleanup-input input,
body[data-theme="light"] .selected-showcase-fullscreen-panel .properties-filter-field input {
    background: rgba(255, 255, 255, 0.92);
    border-color: rgba(15, 23, 42, 0.09);
    color: #0f172a;
}

body[data-theme="light"] .selected-showcase-fullscreen-stat {
    background: rgba(255, 255, 255, 0.72);
    border-color: rgba(15, 23, 42, 0.08);
}

.analysis-section {
    margin-bottom: 28px;
    scroll-margin-top: 86px;
    position: relative;
    padding: 20px;
    border-radius: 24px;
    border: 1px solid rgba(255, 255, 255, 0.04);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.028), rgba(255, 255, 255, 0.01)),
        rgba(7, 16, 28, 0.32);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
    transition: border-color var(--transition-fast), background var(--transition-fast), transform var(--transition-fast);
}

.analysis-section::before {
    content: "";
    position: absolute;
    top: 0;
    left: 20px;
    right: 20px;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(79, 140, 255, 0.34), transparent);
    opacity: 0.65;
}

.analysis-section:hover {
    border-color: rgba(79, 140, 255, 0.14);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.035), rgba(255, 255, 255, 0.012)),
        rgba(7, 16, 28, 0.38);
}

body[data-theme="light"] .analysis-section {
    border-color: rgba(15, 23, 42, 0.07);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.95), rgba(255, 255, 255, 0.82)),
        rgba(255, 255, 255, 0.92);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.9);
}

body[data-theme="light"] .analysis-section:hover {
    border-color: rgba(79, 140, 255, 0.14);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(255, 255, 255, 0.88)),
        rgba(255, 255, 255, 0.95);
}

.analysis-section-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 16px;
}

.analysis-section-header>*,
.analysis-block-header>*,
.chart-header>*,
.properties-header>*,
.properties-toolbar>*,
.properties-toolbar-left>*,
.properties-toolbar-right>* {
    min-width: 0;
}

.analysis-section-kicker {
    display: inline-flex;
    align-items: center;
    padding: 5px 10px;
    border-radius: 999px;
    background: rgba(147, 197, 253, 0.1);
    border: 1px solid var(--analysis-border-strong);
    color: var(--accent-light);
    font-size: 0.66rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    margin-bottom: 12px;
}

.analysis-section-header h3 {
    font-size: 1.12rem;
    line-height: 1.18;
    letter-spacing: -0.02em;
    margin-bottom: 8px;
}

.analysis-section-header p {
    font-size: 0.84rem;
    line-height: 1.6;
    color: var(--analysis-text-quiet);
    max-width: 44ch;
}

.analysis-section-body {
    display: grid;
    gap: 18px;
}

.analysis-section-toolbar {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    flex-wrap: wrap;
    margin-left: auto;
}

.analysis-section-status {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 7px 11px;
    border-radius: 999px;
    border: 1px solid var(--analysis-border);
    background: rgba(255, 255, 255, 0.04);
    color: var(--text-secondary);
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.01em;
    white-space: nowrap;
}

.analysis-section-status[data-tone="active"] {
    border-color: rgba(96, 165, 250, 0.28);
    background: rgba(79, 140, 255, 0.14);
    color: #dbeafe;
}

.analysis-section-status[data-tone="ready"] {
    border-color: rgba(16, 185, 129, 0.28);
    background: rgba(16, 185, 129, 0.12);
    color: #d1fae5;
}

.analysis-section-status[data-tone="loading"] {
    border-color: rgba(245, 158, 11, 0.3);
    background: rgba(245, 158, 11, 0.12);
    color: #fef3c7;
}

.analysis-section-status[data-tone="attention"] {
    border-color: rgba(244, 114, 182, 0.24);
    background: rgba(244, 114, 182, 0.1);
    color: #fbcfe8;
}

.analysis-section-status[data-tone="waiting"] {
    border-color: rgba(148, 163, 184, 0.2);
    background: rgba(148, 163, 184, 0.08);
    color: #cbd5e1;
}

.analysis-section-toggle {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    border-radius: 999px;
    border: 1px solid var(--analysis-border);
    background: rgba(255, 255, 255, 0.04);
    color: var(--text-primary);
    font: inherit;
    font-size: 0.72rem;
    font-weight: 700;
    cursor: pointer;
    transition: transform var(--transition-fast), border-color var(--transition-fast), background var(--transition-fast), color var(--transition-fast);
}

.analysis-section-toggle:hover {
    border-color: rgba(96, 165, 250, 0.3);
    background: rgba(79, 140, 255, 0.1);
}

.analysis-section-toggle-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.08);
    transition: transform var(--transition-fast), background var(--transition-fast);
}

body[data-theme="light"] .analysis-section-toggle-icon {
    background: rgba(15, 23, 42, 0.05);
}

.analysis-section-toggle[aria-expanded="false"] .analysis-section-toggle-icon {
    transform: rotate(-90deg);
}

.analysis-section.is-collapsed {
    padding-bottom: 18px;
}

.analysis-section.is-collapsed .analysis-section-header {
    margin-bottom: 0;
}

.analysis-section.is-collapsed .analysis-section-toggle {
    color: var(--text-secondary);
}

body.no-selection .analysis-section[data-analysis-tone="waiting"]:not(#analysis-overview-section):not(#analysis-compare-section) {
    padding: 16px 18px;
    opacity: 0.88;
}

body.no-selection .analysis-section[data-analysis-tone="waiting"]:not(#analysis-overview-section):not(#analysis-compare-section) .analysis-section-header {
    margin-bottom: 0;
}

body.no-selection .analysis-section[data-analysis-tone="waiting"]:not(#analysis-overview-section):not(#analysis-compare-section) .analysis-section-header p,
body.no-selection .analysis-section[data-analysis-tone="waiting"]:not(#analysis-overview-section):not(#analysis-compare-section) .analysis-section-toggle,
body.no-selection .analysis-section[data-analysis-tone="waiting"]:not(#analysis-overview-section):not(#analysis-compare-section) .analysis-section-body {
    display: none;
}

body.no-selection #analysis-overview-section .overview-rail,
body.no-selection #analysis-overview-section .analysis-overview-main-grid {
    display: none;
}

.analysis-control-stack {
    display: grid;
    gap: 16px;
}

.analysis-command-center {
    display: block;
}

.analysis-nav-shell {
    position: relative;
    top: auto;
    z-index: 2;
    margin: 0;
    padding: 0;
    background: none;
}

body[data-theme="light"] .analysis-nav-shell {
    background: none;
}

.analysis-nav-shell-header {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
    align-items: end;
    margin-bottom: 10px;
}

.analysis-nav-shell-kicker {
    display: inline-flex;
    align-items: center;
    margin-bottom: 4px;
    font-size: 0.61rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--accent-light);
}

.analysis-nav-shell-header strong {
    display: block;
    font-size: 0.94rem;
    line-height: 1.18;
    letter-spacing: -0.02em;
}

.analysis-nav-shell-header p {
    max-width: 28ch;
    font-size: 0.72rem;
    line-height: 1.45;
    color: var(--analysis-text-quiet);
}

.analysis-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding: 10px;
    border: 1px solid var(--analysis-border);
    border-radius: 20px;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.018)),
        var(--analysis-surface-strong);
    box-shadow: var(--analysis-inset), 0 12px 28px rgba(2, 6, 23, 0.12);
}

.analysis-nav-button {
    border: 1px solid transparent;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.035), rgba(255, 255, 255, 0.014)),
        rgba(8, 18, 31, 0.38);
    color: var(--text-secondary);
    font: inherit;
    font-size: 0.72rem;
    font-weight: 700;
    line-height: 1.2;
    border-radius: 14px;
    padding: 10px 12px;
    cursor: pointer;
    transition: transform var(--transition-fast), border-color var(--transition-fast), background var(--transition-fast), color var(--transition-fast), box-shadow var(--transition-fast);
    white-space: nowrap;
    text-align: left;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 42px;
    overflow-wrap: break-word;
    word-break: normal;
    flex: 0 0 auto;
}

.analysis-nav-button:hover {
    border-color: var(--analysis-border);
    color: var(--text-primary);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.026)),
        rgba(8, 18, 31, 0.52);
    transform: translateY(-1px);
}

.analysis-nav-button-kicker {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 4px 7px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.06);
    font-size: 0.56rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--text-muted);
}

.analysis-nav-button-label {
    font-size: 0.82rem;
    font-weight: 800;
    line-height: 1;
    letter-spacing: -0.01em;
    color: var(--text-primary);
}

.analysis-nav-button-note {
    display: none;
}

.analysis-nav-button.active {
    background:
        radial-gradient(circle at top right, rgba(79, 140, 255, 0.18), transparent 34%),
        var(--accent-gradient);
    color: #fff;
    border-color: transparent;
    box-shadow: 0 12px 24px rgba(79, 140, 255, 0.18);
}

.analysis-nav-button.active .analysis-nav-button-kicker,
.analysis-nav-button.active .analysis-nav-button-note,
.analysis-nav-button.active .analysis-nav-button-label {
    color: #fff;
}

.analysis-block {
    margin-bottom: 20px;
    padding: 19px;
    border-radius: 20px;
    border: 1px solid var(--analysis-border);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.015)),
        var(--analysis-surface);
    box-shadow: var(--analysis-inset), 0 18px 38px rgba(2, 6, 23, 0.16);
}

.analysis-block>*:last-child {
    margin-bottom: 0;
}

.analysis-block-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
}

.analysis-block-title {
    font-size: 1rem;
    font-weight: 800;
    color: var(--text-primary);
    letter-spacing: -0.02em;
}

.analysis-block-copy {
    margin-top: 6px;
    font-size: 0.8rem;
    line-height: 1.6;
    color: var(--analysis-text-quiet);
}

.analysis-duo-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 16px;
    margin-bottom: 20px;
}

.analysis-overview-shell {
    display: grid;
    gap: 16px;
}

.analysis-overview-lead {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(280px, 0.95fr);
    gap: 16px;
    align-items: start;
}

.analysis-overview-main-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.92fr);
    gap: 16px;
}

.analysis-stack-column {
    display: grid;
    gap: 16px;
}

.analysis-stack-column .analysis-block {
    margin-bottom: 0;
}

.overview-rail {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 12px;
}

.overview-card {
    padding: 16px;
    border-radius: 18px;
    border: 1px solid var(--analysis-border);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0.02)),
        var(--analysis-surface-soft);
    display: grid;
    gap: 8px;
    transition: transform var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast);
    box-shadow: var(--analysis-inset), 0 16px 30px rgba(2, 6, 23, 0.1);
}

.overview-card:hover {
    transform: translateY(-1px);
    border-color: var(--analysis-border-strong);
}

.overview-card.tone-accent {
    border-color: rgba(96, 165, 250, 0.28);
    background:
        linear-gradient(180deg, rgba(79, 140, 255, 0.12), rgba(79, 140, 255, 0.05)),
        var(--analysis-surface-soft);
}

.overview-card.tone-success {
    border-color: rgba(16, 185, 129, 0.32);
    background:
        linear-gradient(180deg, rgba(16, 185, 129, 0.12), rgba(16, 185, 129, 0.05)),
        var(--analysis-surface-soft);
}

.overview-card.tone-warning {
    border-color: rgba(245, 158, 11, 0.3);
    background:
        linear-gradient(180deg, rgba(245, 158, 11, 0.14), rgba(245, 158, 11, 0.05)),
        var(--analysis-surface-soft);
}

.overview-label {
    font-size: 0.67rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--text-muted);
}

.overview-value {
    font-size: 1.18rem;
    font-weight: 800;
    color: var(--text-primary);
    letter-spacing: -0.03em;
    line-height: 1.15;
    overflow-wrap: break-word;
    word-break: normal;
}

.overview-note {
    font-size: 0.76rem;
    line-height: 1.55;
    color: var(--analysis-text-quiet);
}

.comparison-lab {
    display: grid;
    gap: 16px;
}

.comparison-workspace {
    display: grid;
    gap: 16px;
}

.comparison-workspace-toggle {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.comparison-lane-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.comparison-lane-card {
    padding: 16px 18px;
    border-radius: 18px;
    border: 1px solid var(--analysis-border);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.02)),
        rgba(15, 23, 42, 0.18);
    display: grid;
    gap: 8px;
    box-shadow: var(--analysis-inset);
}

.comparison-lane-card.tone-accent {
    border-color: rgba(96, 165, 250, 0.28);
    background:
        linear-gradient(180deg, rgba(79, 140, 255, 0.14), rgba(79, 140, 255, 0.05)),
        var(--analysis-surface);
}

.comparison-lane-card.tone-neutral {
    background:
        linear-gradient(180deg, rgba(148, 163, 184, 0.09), rgba(148, 163, 184, 0.02)),
        var(--analysis-surface);
}

.comparison-lane-eyebrow {
    font-size: 0.67rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--text-muted);
}

.comparison-lane-card strong {
    font-size: 1rem;
    line-height: 1.2;
    color: var(--text-primary);
}

.comparison-lane-card p {
    font-size: 0.78rem;
    line-height: 1.6;
    color: var(--analysis-text-quiet);
}

.comparison-workspace-button {
    border: 1px solid var(--analysis-border);
    background: rgba(255, 255, 255, 0.04);
    color: var(--text-secondary);
    font: inherit;
    font-size: 0.78rem;
    font-weight: 700;
    border-radius: 999px;
    padding: 9px 14px;
    cursor: pointer;
    transition: transform var(--transition-fast), border-color var(--transition-fast), background var(--transition-fast), color var(--transition-fast), box-shadow var(--transition-fast);
}

.comparison-workspace-button:hover {
    border-color: rgba(96, 165, 250, 0.3);
    color: var(--text-primary);
    transform: translateY(-1px);
}

.comparison-workspace-button.active {
    background: rgba(147, 197, 253, 0.18);
    border-color: rgba(96, 165, 250, 0.38);
    color: #dbeafe;
    box-shadow: 0 12px 28px rgba(147, 197, 253, 0.14);
}

.comparison-toolbar,
.comparison-story,
.comparison-panel,
.comparison-score-card,
.comparison-insight-card {
    border-radius: 18px;
    border: 1px solid var(--analysis-border);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.02)),
        var(--analysis-surface);
    box-shadow: var(--analysis-inset);
}

.comparison-toolbar {
    padding: 18px;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 14px;
    align-items: end;
}

.comparison-choice-group {
    display: grid;
    gap: 8px;
    align-content: start;
}

.comparison-field,
.comparison-lens-shell {
    display: grid;
    gap: 7px;
}

.comparison-field.hidden {
    display: none;
}

.comparison-hidden-select {
    display: none;
}

.comparison-field span,
.comparison-field-label {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: var(--text-muted);
}

.comparison-field select,
.comparison-field input {
    width: 100%;
    border-radius: 14px;
    border: 1px solid var(--analysis-border);
    background: rgba(255, 255, 255, 0.04);
    color: var(--text-primary);
    font: inherit;
    padding: 11px 12px;
    outline: none;
}

.comparison-field select:focus,
.comparison-field input:focus {
    border-color: rgba(96, 165, 250, 0.36);
    box-shadow: 0 0 0 3px rgba(79, 140, 255, 0.12);
}

.comparison-chip-row,
.comparison-toggle-row {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.comparison-chip {
    border: 1px solid var(--analysis-border);
    background: rgba(255, 255, 255, 0.04);
    color: var(--text-secondary);
    font: inherit;
    font-size: 0.76rem;
    font-weight: 700;
    border-radius: 999px;
    padding: 8px 12px;
    cursor: pointer;
    transition: transform var(--transition-fast), border-color var(--transition-fast), background var(--transition-fast), color var(--transition-fast);
}

.comparison-chip:hover {
    border-color: rgba(96, 165, 250, 0.28);
    color: var(--text-primary);
    transform: translateY(-1px);
}

.comparison-chip.active {
    background: rgba(147, 197, 253, 0.18);
    border-color: rgba(96, 165, 250, 0.34);
    color: #dbeafe;
}

.comparison-story {
    padding: 18px;
    display: grid;
    gap: 12px;
    align-items: start;
    grid-template-columns: minmax(0, 1fr) auto;
}

.comparison-story-stack {
    grid-template-columns: 1fr;
}

.comparison-story-title {
    margin-top: 6px;
    font-size: 1.06rem;
    font-weight: 800;
    letter-spacing: -0.02em;
    color: var(--text-primary);
}

.comparison-story-body {
    margin-top: 8px;
    font-size: 0.82rem;
    line-height: 1.7;
    color: var(--analysis-text-quiet);
}

.comparison-scoreboard {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}

.comparison-score-card {
    padding: 16px;
    display: grid;
    gap: 8px;
}

.comparison-score-card.tone-accent {
    border-color: rgba(96, 165, 250, 0.28);
    background:
        linear-gradient(180deg, rgba(79, 140, 255, 0.13), rgba(79, 140, 255, 0.05)),
        var(--analysis-surface);
}

.comparison-score-card.tone-success {
    border-color: rgba(16, 185, 129, 0.3);
    background:
        linear-gradient(180deg, rgba(16, 185, 129, 0.12), rgba(16, 185, 129, 0.04)),
        var(--analysis-surface);
}

.comparison-score-card.tone-warning {
    border-color: rgba(245, 158, 11, 0.28);
    background:
        linear-gradient(180deg, rgba(245, 158, 11, 0.14), rgba(245, 158, 11, 0.05)),
        var(--analysis-surface);
}

.comparison-score-card.tone-neutral {
    background:
        linear-gradient(180deg, rgba(148, 163, 184, 0.09), rgba(148, 163, 184, 0.02)),
        var(--analysis-surface);
}

.comparison-score-label,
.comparison-insight-label {
    font-size: 0.67rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--text-muted);
}

.comparison-score-value,
.comparison-insight-value {
    font-size: 1.14rem;
    line-height: 1.15;
    letter-spacing: -0.03em;
    color: var(--text-primary);
}

.comparison-score-note,
.comparison-insight-note {
    font-size: 0.76rem;
    line-height: 1.55;
    color: var(--analysis-text-quiet);
}

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

.comparison-guide-card {
    padding: 16px;
    border-radius: 18px;
    border: 1px solid var(--analysis-border);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.02)),
        rgba(15, 23, 42, 0.18);
    display: grid;
    gap: 8px;
    box-shadow: var(--analysis-inset);
}

.comparison-guide-label {
    font-size: 0.67rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--text-muted);
}

.comparison-guide-value {
    font-size: 1rem;
    line-height: 1.2;
    color: var(--text-primary);
}

.comparison-guide-note {
    margin: 0;
    font-size: 0.76rem;
    line-height: 1.55;
    color: var(--analysis-text-quiet);
}

.comparison-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(320px, 0.9fr);
    gap: 16px;
}

.comparison-panel {
    padding: 18px;
    display: grid;
    gap: 14px;
    align-content: start;
}

.comparison-panel-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.comparison-action-row {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.comparison-action-row-inline {
    align-self: end;
}

.comparison-toolbar-tight {
    padding: 0;
    border: none;
    background: transparent;
    box-shadow: none;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}

.comparison-table-wrap {
    border-radius: 16px;
    border: 1px solid var(--analysis-border);
    background: rgba(255, 255, 255, 0.025);
    overflow: auto;
}

.comparison-table {
    width: 100%;
    border-collapse: collapse;
    min-width: 640px;
}

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

.comparison-table th {
    position: sticky;
    top: 0;
    z-index: 1;
    background: rgba(9, 15, 27, 0.96);
    font-size: 0.69rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--text-muted);
}

body[data-theme="light"] .comparison-table th {
    background: rgba(255, 255, 255, 0.98);
}

.comparison-table tr:last-child td {
    border-bottom: none;
}

.comparison-metric-cell {
    display: grid;
    gap: 5px;
}

.comparison-metric-name {
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--text-primary);
}

.comparison-metric-note {
    font-size: 0.74rem;
    line-height: 1.55;
    color: var(--analysis-text-quiet);
}

.comparison-value-strong {
    font-weight: 700;
    color: var(--text-primary);
}

.comparison-index-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 78px;
    border-radius: 999px;
    padding: 7px 11px;
    border: 1px solid var(--analysis-border);
    background: rgba(255, 255, 255, 0.05);
    font-size: 0.75rem;
    font-weight: 700;
    color: var(--text-primary);
}

.comparison-index-badge.is-hot {
    border-color: rgba(16, 185, 129, 0.32);
    background: rgba(16, 185, 129, 0.14);
}

.comparison-index-badge.is-cool {
    border-color: rgba(245, 158, 11, 0.28);
    background: rgba(245, 158, 11, 0.14);
}

.comparison-index-badge.is-flat {
    border-color: rgba(148, 163, 184, 0.18);
    background: rgba(148, 163, 184, 0.08);
}

.comparison-chart-container {
    min-height: 340px;
    height: 340px;
    cursor: default;
}

.comparison-chart-container-short {
    min-height: 260px;
    height: 260px;
}

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

.comparison-insight-card {
    padding: 16px;
    display: grid;
    gap: 8px;
}

.comparison-scoreboard-compact {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.comparison-grid-stacked {
    grid-template-columns: 1fr;
}

.comparison-panel-inner {
    padding: 0;
    border: none;
    background: transparent;
    box-shadow: none;
}

.saved-index-builder {
    margin-bottom: 16px;
    padding: 16px;
    border-radius: 18px;
    border: 1px solid var(--analysis-border);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.018)),
        rgba(15, 23, 42, 0.18);
    display: grid;
    gap: 12px;
}

.saved-index-builder-grid {
    grid-template-columns: minmax(0, 1.2fr) minmax(280px, auto);
    gap: 12px;
    align-items: end;
}

.saved-index-builder-actions {
    justify-content: flex-end;
}

.benchmark-library-toolbar {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(220px, auto);
    gap: 12px;
    align-items: end;
}

.benchmark-library-search {
    min-width: 0;
}

.benchmark-library-filters {
    margin-top: -2px;
}

.benchmark-library-actions {
    justify-content: flex-end;
}

.benchmark-library-active-shell {
    display: grid;
    gap: 12px;
}

.custom-index-inspector-table-wrap {
    max-height: 420px;
}

.custom-index-inspector-table td:last-child,
.custom-index-inspector-table th:last-child {
    white-space: nowrap;
}

.custom-index-inspector-empty {
    font-size: 0.8rem;
    line-height: 1.6;
    color: var(--analysis-text-quiet);
}

.saved-index-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 12px;
}

.saved-index-card,
.saved-index-empty {
    padding: 16px;
    border-radius: 18px;
    border: 1px solid var(--analysis-border);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0.02)),
        var(--analysis-surface);
    box-shadow: var(--analysis-inset);
}

.saved-index-card.is-left {
    border-color: rgba(79, 140, 255, 0.34);
}

.saved-index-card.is-right {
    border-color: rgba(16, 185, 129, 0.34);
}

.saved-index-card-header,
.saved-index-card-meta,
.saved-index-card-tags {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.saved-index-card {
    display: grid;
    gap: 12px;
}

.saved-index-card-actions {
    display: grid;
    gap: 10px;
}

.saved-index-card-title-row {
    display: grid;
    gap: 8px;
    flex: 1 1 auto;
}

.saved-index-card-title {
    font-size: 0.96rem;
    font-weight: 800;
    letter-spacing: -0.02em;
    color: var(--text-primary);
}

.saved-index-rename-row {
    display: grid;
    gap: 10px;
}

.saved-index-rename-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.saved-index-inline-note {
    font-size: 0.72rem;
    line-height: 1.55;
    color: var(--analysis-text-quiet);
}

.saved-index-card-subtitle,
.saved-index-empty {
    font-size: 0.78rem;
    line-height: 1.6;
    color: var(--analysis-text-quiet);
}

.saved-index-card-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 36px;
    padding: 6px 10px;
    border-radius: 999px;
    background: rgba(79, 140, 255, 0.16);
    border: 1px solid rgba(96, 165, 250, 0.26);
    color: var(--text-primary);
    font-size: 0.74rem;
    font-weight: 700;
}

.saved-index-tag {
    display: inline-flex;
    align-items: center;
    padding: 6px 10px;
    border-radius: 999px;
    border: 1px solid var(--analysis-border);
    background: rgba(255, 255, 255, 0.04);
    color: var(--text-secondary);
    font-size: 0.72rem;
    font-weight: 700;
}

.custom-index-control-panel {
    display: grid;
    gap: 10px;
}

.custom-index-control-row {
    display: grid;
    grid-template-columns: minmax(0, 92px) minmax(0, 1fr);
    gap: 10px;
    align-items: center;
}

.custom-index-control-label {
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--text-muted);
}

.custom-index-control-group {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.custom-index-control-group-single {
    grid-template-columns: minmax(0, 1fr);
}

.custom-index-control-btn {
    min-height: 42px;
    padding: 10px 12px;
    border-radius: 14px;
    border: 1px solid var(--analysis-border);
    background: rgba(255, 255, 255, 0.04);
    color: var(--text-secondary);
    font: inherit;
    font-size: 0.76rem;
    font-weight: 700;
    line-height: 1.25;
    text-align: center;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: transform var(--transition-fast), border-color var(--transition-fast), background var(--transition-fast), color var(--transition-fast), box-shadow var(--transition-fast);
}

.custom-index-control-btn:hover:not(:disabled) {
    transform: translateY(-1px);
    border-color: rgba(96, 165, 250, 0.28);
    color: var(--text-primary);
}

.custom-index-control-btn.active {
    color: var(--text-primary);
    border-color: rgba(96, 165, 250, 0.34);
    box-shadow: 0 0 0 1px rgba(96, 165, 250, 0.14) inset;
}

.custom-index-control-btn.is-left.active {
    background: rgba(79, 140, 255, 0.16);
    border-color: rgba(96, 165, 250, 0.44);
    color: #dbeafe;
}

.custom-index-control-btn.is-right.active {
    background: rgba(16, 185, 129, 0.16);
    border-color: rgba(52, 211, 153, 0.38);
    color: #d1fae5;
}

.custom-index-control-btn.is-chart.active {
    background: rgba(245, 158, 11, 0.14);
    border-color: rgba(245, 158, 11, 0.32);
    color: #fef3c7;
}

.custom-index-control-btn.is-chart.is-disabled,
.custom-index-control-btn.is-chart:disabled {
    background: rgba(16, 185, 129, 0.12);
    border-color: rgba(16, 185, 129, 0.3);
    color: #d1fae5;
}

.custom-index-control-btn.is-disabled,
.custom-index-control-btn:disabled {
    cursor: not-allowed;
    opacity: 0.74;
    transform: none;
    box-shadow: none;
}

.newsletter-shell {
    display: grid;
    gap: 16px;
}

.newsletter-hero {
    padding: 20px;
    gap: 18px;
    border-color: rgba(96, 165, 250, 0.26);
    background:
        radial-gradient(circle at top right, rgba(147, 197, 253, 0.16), transparent 30%),
        radial-gradient(circle at bottom left, rgba(16, 185, 129, 0.1), transparent 28%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02)),
        var(--analysis-surface);
}

.newsletter-hero-main {
    display: grid;
    gap: 8px;
}

.newsletter-actions {
    align-self: start;
    justify-content: flex-end;
}

.newsletter-toolbar {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.newsletter-field-search {
    grid-column: span 2;
}

.newsletter-scoreboard {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.newsletter-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
    gap: 16px;
    align-items: start;
}

.newsletter-panel {
    padding: 18px;
    display: grid;
    gap: 14px;
}

.newsletter-brief {
    padding: 16px 18px;
    border-radius: 18px;
    border: 1px solid rgba(96, 165, 250, 0.2);
    background:
        linear-gradient(180deg, rgba(79, 140, 255, 0.13), rgba(79, 140, 255, 0.04)),
        rgba(15, 23, 42, 0.16);
    color: var(--text-primary);
    font-size: 0.84rem;
    line-height: 1.8;
    box-shadow: var(--analysis-inset);
}

.newsletter-brief p {
    margin: 0 0 0.9em;
}

.newsletter-brief p:last-child {
    margin-bottom: 0;
}

.newsletter-bullets {
    display: grid;
    gap: 10px;
}

.newsletter-bullet {
    padding: 13px 14px;
    border-radius: 16px;
    border: 1px solid var(--analysis-border);
    border-left: 3px solid rgba(96, 165, 250, 0.4);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.018)),
        rgba(15, 23, 42, 0.14);
    color: var(--analysis-text-quiet);
    font-size: 0.78rem;
    line-height: 1.65;
    box-shadow: var(--analysis-inset);
}

.newsletter-chart-container {
    height: 262px;
}

.newsletter-table-wrap {
    max-height: 430px;
}

.newsletter-table {
    min-width: 760px;
}

.newsletter-read {
    font-weight: 700;
    color: var(--text-primary);
}

.newsletter-read.is-hot {
    color: #6ee7b7;
}

.newsletter-read.is-cool {
    color: #fbbf24;
}

.raw-feed-shell {
    display: grid;
    gap: 16px;
}

.raw-feed-summary {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 14px;
    align-items: start;
}

.raw-feed-actions {
    align-self: start;
    justify-content: flex-end;
}

.raw-feed-toolbar {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px;
    align-items: end;
}

.raw-feed-window-strip {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
}

.raw-feed-window-chip {
    min-width: 56px;
}

.raw-feed-custom-range {
    display: grid;
    grid-template-columns: repeat(2, minmax(160px, 1fr));
    gap: 12px;
}

.raw-feed-custom-range .comparison-field {
    min-width: 0;
}

.raw-feed-scoreboard {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.raw-feed-grid {
    align-items: start;
}

.raw-feed-table-wrap {
    max-height: 430px;
}

.raw-feed-table {
    min-width: 720px;
}

.raw-feed-table td:last-child,
.raw-feed-table th:last-child {
    white-space: nowrap;
}

.raw-feed-read {
    font-weight: 700;
    color: var(--text-primary);
}

.raw-feed-read.is-hot {
    color: #6ee7b7;
}

.raw-feed-read.is-cool {
    color: #fbbf24;
}

.raw-data-shell {
    display: grid;
    gap: 16px;
}

.raw-data-summary {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 14px;
    align-items: start;
}

.raw-data-actions {
    align-self: start;
    justify-content: flex-end;
}

.raw-data-toolbar {
    grid-template-columns: minmax(240px, 1.6fr) minmax(180px, 0.8fr) minmax(150px, 0.6fr);
}

.raw-data-updates {
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}

.raw-data-table-wrap {
    max-height: 520px;
}

.raw-data-table {
    min-width: 1080px;
}

.analysis-digest-card {
    padding: 20px;
    border-radius: 20px;
    border: 1px solid rgba(96, 165, 250, 0.22);
    background:
        radial-gradient(circle at top right, rgba(147, 197, 253, 0.2), transparent 34%),
        radial-gradient(circle at bottom left, rgba(16, 185, 129, 0.12), transparent 32%),
        linear-gradient(160deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.03));
    box-shadow: var(--analysis-inset), 0 18px 42px rgba(2, 6, 23, 0.22);
}

.analysis-digest-header {
    display: grid;
    gap: 8px;
    margin-bottom: 14px;
}

.analysis-digest-kicker {
    font-size: 0.64rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--accent-light);
}

.analysis-digest-title {
    font-size: 1.16rem;
    line-height: 1.2;
    letter-spacing: -0.02em;
}

.analysis-digest-summary {
    font-size: 0.9rem;
    line-height: 1.65;
    color: var(--text-primary);
    margin-bottom: 14px;
}

.analysis-digest-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 14px;
}

.analysis-digest-chip {
    display: inline-flex;
    align-items: center;
    padding: 7px 10px;
    border-radius: 999px;
    border: 1px solid var(--analysis-border);
    background: rgba(255, 255, 255, 0.06);
    color: var(--analysis-text-quiet);
    font-size: 0.72rem;
    font-weight: 700;
    line-height: 1.2;
}

.analysis-digest-list {
    list-style: none;
    padding-left: 0;
    display: grid;
    gap: 10px;
    color: var(--analysis-text-quiet);
    font-size: 0.78rem;
    line-height: 1.55;
}

.analysis-digest-list li {
    position: relative;
    padding: 11px 12px 11px 14px;
    border-radius: 14px;
    border: 1px solid rgba(255, 255, 255, 0.08);
    background: rgba(255, 255, 255, 0.045);
}

.analysis-digest-list li::before {
    content: '';
    position: absolute;
    top: 12px;
    left: 0;
    bottom: 12px;
    width: 3px;
    border-radius: 999px;
    background: linear-gradient(180deg, rgba(96, 165, 250, 0.95), rgba(16, 185, 129, 0.7));
}

.analysis-stage-stack {
    display: grid;
    gap: 24px;
}

.analysis-stage-shell {
    padding: 20px;
    border-radius: 30px;
    border: 1px solid rgba(173, 188, 204, 0.12);
    background:
        radial-gradient(circle at top right, rgba(147, 197, 253, 0.1), transparent 34%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.035), rgba(255, 255, 255, 0.015)),
        rgba(5, 13, 23, 0.34);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04), 0 24px 48px rgba(1, 10, 22, 0.18);
    display: grid;
    gap: 18px;
}

body[data-theme="light"] .analysis-stage-shell {
    background:
        radial-gradient(circle at top right, rgba(79, 140, 255, 0.06), transparent 34%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.94), rgba(255, 255, 255, 0.86)),
        rgba(255, 255, 255, 0.9);
}

.analysis-stage-shell[data-analysis-tone="ready"] {
    border-color: rgba(16, 185, 129, 0.18);
}

.analysis-stage-shell[data-analysis-tone="active"] {
    border-color: rgba(96, 165, 250, 0.22);
}

.analysis-stage-shell[data-analysis-tone="loading"] {
    border-color: rgba(245, 158, 11, 0.18);
}

.analysis-stage-shell[data-analysis-tone="attention"] {
    border-color: rgba(244, 114, 182, 0.18);
}

.analysis-stage-header {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 16px;
    align-items: start;
}

.analysis-stage-heading {
    display: grid;
    gap: 8px;
}

.analysis-stage-kicker {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    padding: 5px 10px;
    border-radius: 999px;
    border: 1px solid var(--analysis-border-strong);
    background: rgba(147, 197, 253, 0.1);
    color: var(--accent-light);
    font-size: 0.63rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
}

.analysis-stage-title {
    font-size: 1.12rem;
    line-height: 1.16;
    letter-spacing: -0.03em;
}

.analysis-stage-note {
    max-width: 54ch;
    font-size: 0.8rem;
    line-height: 1.65;
    color: var(--analysis-text-quiet);
}

.analysis-stage-meta {
    display: grid;
    gap: 10px;
    align-content: start;
    padding: 16px;
    border-radius: 20px;
    border: 1px solid var(--analysis-border);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0.018)),
        rgba(8, 18, 31, 0.48);
    box-shadow: var(--analysis-inset);
}

body[data-theme="light"] .analysis-stage-meta {
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(248, 250, 252, 0.92)),
        rgba(255, 255, 255, 0.94);
}

.analysis-stage-pill {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    padding: 7px 11px;
    border-radius: 999px;
    border: 1px solid var(--analysis-border);
    background: rgba(255, 255, 255, 0.04);
    color: var(--text-secondary);
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.01em;
}

.analysis-stage-pill[data-tone="active"] {
    border-color: rgba(96, 165, 250, 0.28);
    background: rgba(79, 140, 255, 0.14);
    color: #dbeafe;
}

.analysis-stage-pill[data-tone="ready"] {
    border-color: rgba(16, 185, 129, 0.28);
    background: rgba(16, 185, 129, 0.12);
    color: #d1fae5;
}

.analysis-stage-pill[data-tone="loading"] {
    border-color: rgba(245, 158, 11, 0.3);
    background: rgba(245, 158, 11, 0.12);
    color: #fef3c7;
}

.analysis-stage-pill[data-tone="attention"] {
    border-color: rgba(244, 114, 182, 0.24);
    background: rgba(244, 114, 182, 0.1);
    color: #fbcfe8;
}

.analysis-stage-pill[data-tone="waiting"] {
    border-color: rgba(148, 163, 184, 0.2);
    background: rgba(148, 163, 184, 0.08);
    color: #cbd5e1;
}

.analysis-stage-summary {
    font-size: 0.77rem;
    line-height: 1.6;
    color: var(--analysis-text-quiet);
}

.analysis-stage-body {
    display: grid;
    gap: 18px;
}

.analysis-stage-body .analysis-section {
    margin-bottom: 0;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.026), rgba(255, 255, 255, 0.01)),
        rgba(7, 16, 28, 0.22);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.03);
}

.analysis-stage-body .analysis-section::before {
    opacity: 0.42;
}

#sidebar[data-workspace-page="indexes"] .analysis-stage-shell,
#sidebar[data-workspace-page="output"] .analysis-stage-shell {
    padding: 0;
    border: none;
    background: transparent;
    box-shadow: none;
}

#sidebar[data-workspace-page="indexes"] .analysis-stage-header,
#sidebar[data-workspace-page="output"] .analysis-stage-header {
    display: none;
}

.analysis-hero-card {
    margin-bottom: 0;
    padding: 10px 12px;
    border-radius: 18px;
    border: 1px solid rgba(79, 140, 255, 0.24);
    background: var(--surface-card-accent);
    box-shadow: var(--analysis-inset), 0 16px 34px rgba(8, 18, 17, 0.18);
    overflow: visible;
}

.analysis-hero-inline {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}

.analysis-kicker {
    display: inline-flex;
    align-items: center;
    padding: 4px 8px;
    border-radius: 999px;
    background: rgba(147, 197, 253, 0.16);
    color: var(--accent-light);
    font-size: 0.6rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    white-space: nowrap;
    flex: 0 0 auto;
}

.analysis-hero-title {
    min-width: 0;
    flex: 1 1 180px;
    font-size: 0.88rem;
    line-height: 1.15;
    letter-spacing: -0.03em;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.analysis-controls-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.analysis-controls-grid .filter-section {
    margin-bottom: 0;
    height: 100%;
    display: grid;
    align-content: start;
}

.analysis-badge-row {
    display: flex;
    align-items: center;
    gap: 6px;
    flex: 1 1 auto;
    min-width: 0;
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: none;
    -ms-overflow-style: none;
}

.analysis-badge-row::-webkit-scrollbar {
    display: none;
}

.analysis-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 10px;
    border-radius: 999px;
    border: 1px solid var(--analysis-border);
    background: var(--chip-bg);
    color: var(--text-primary);
    font-size: 0.68rem;
    font-weight: 700;
    line-height: 1.2;
    box-shadow: var(--analysis-inset);
    white-space: nowrap;
    flex: 0 0 auto;
}

.analysis-badge-label {
    font-size: 0.56rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--text-muted);
}

.analysis-hero-details-panel {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    width: min(640px, calc(100vw - 48px));
    padding: 14px;
    border-radius: 18px;
    border: 1px solid rgba(79, 140, 255, 0.18);
    background: var(--surface-overlay);
    box-shadow: var(--analysis-inset), 0 28px 54px rgba(8, 18, 17, 0.28);
    display: grid;
    gap: 12px;
    z-index: 12;
}

.analysis-hero-details-panel #analysis-scope-subtitle {
    color: var(--analysis-text-quiet);
    font-size: 0.8rem;
    line-height: 1.55;
}

.analysis-workflow-shell {
    margin-bottom: 0;
    padding: 14px;
    border-radius: 18px;
    border: 1px solid rgba(79, 140, 255, 0.16);
    background: var(--surface-panel);
    box-shadow: var(--analysis-inset), 0 16px 32px rgba(8, 18, 17, 0.18);
}

.analysis-workflow-shell-top {
    min-height: 0;
}

body[data-theme="light"] .analysis-workflow-shell {
    border-color: rgba(37, 99, 235, 0.12);
    background: var(--surface-panel);
}

.analysis-workflow-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 12px;
}

.analysis-workflow-header strong {
    display: block;
    font-size: 0.92rem;
    line-height: 1.2;
    letter-spacing: -0.02em;
    color: var(--text-primary);
    margin-bottom: 6px;
}

.analysis-workflow-header p {
    max-width: 48ch;
    font-size: 0.76rem;
    line-height: 1.6;
    color: var(--analysis-text-quiet);
}

.analysis-workflow-kicker {
    display: inline-flex;
    align-items: center;
    padding: 5px 10px;
    border-radius: 999px;
    border: 1px solid var(--analysis-border-strong);
    background: rgba(147, 197, 253, 0.1);
    color: var(--accent-light);
    font-size: 0.66rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
}

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

.analysis-workflow-card {
    position: relative;
    overflow: hidden;
    min-height: 0;
    padding: 14px;
    border-radius: 18px;
    border: 1px solid var(--analysis-border);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0.02)),
        rgba(13, 24, 39, 0.82);
    display: grid;
    gap: 14px;
    align-content: start;
    box-shadow: var(--analysis-inset);
    transition: transform var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast), background var(--transition-fast);
}

body[data-theme="light"] .analysis-workflow-card {
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(248, 250, 252, 0.92)),
        rgba(255, 255, 255, 0.94);
}

.analysis-workflow-card::before {
    content: "";
    position: absolute;
    inset: 0 auto auto 0;
    width: 100%;
    height: 3px;
    background: linear-gradient(90deg, rgba(96, 165, 250, 0.88), rgba(16, 185, 129, 0.74));
    opacity: 0.9;
}

.analysis-workflow-card:hover {
    transform: translateY(-2px);
    border-color: rgba(96, 165, 250, 0.26);
    box-shadow: var(--analysis-inset), 0 18px 34px rgba(2, 6, 23, 0.18);
}

.analysis-workflow-card[data-tone="ready"]::before {
    background: linear-gradient(90deg, rgba(16, 185, 129, 0.88), rgba(34, 197, 94, 0.74));
}

.analysis-workflow-card[data-tone="loading"]::before {
    background: linear-gradient(90deg, rgba(245, 158, 11, 0.9), rgba(251, 191, 36, 0.76));
}

.analysis-workflow-card[data-tone="attention"]::before {
    background: linear-gradient(90deg, rgba(244, 114, 182, 0.9), rgba(236, 72, 153, 0.76));
}

.analysis-workflow-card[data-tone="waiting"]::before {
    background: linear-gradient(90deg, rgba(148, 163, 184, 0.74), rgba(100, 116, 139, 0.76));
}

.analysis-workflow-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
}

.analysis-workflow-step {
    display: inline-flex;
    align-items: center;
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--text-muted);
}

.analysis-workflow-status {
    display: inline-flex;
    align-items: center;
    padding: 5px 10px;
    border-radius: 999px;
    border: 1px solid var(--analysis-border);
    background: rgba(255, 255, 255, 0.04);
    font-size: 0.68rem;
    font-weight: 700;
    color: var(--text-secondary);
    white-space: nowrap;
}

.analysis-workflow-status[data-tone="active"] {
    border-color: rgba(96, 165, 250, 0.3);
    background: rgba(79, 140, 255, 0.14);
    color: #dbeafe;
}

.analysis-workflow-status[data-tone="ready"] {
    border-color: rgba(16, 185, 129, 0.28);
    background: rgba(16, 185, 129, 0.12);
    color: #d1fae5;
}

.analysis-workflow-status[data-tone="loading"] {
    border-color: rgba(245, 158, 11, 0.3);
    background: rgba(245, 158, 11, 0.12);
    color: #fef3c7;
}

.analysis-workflow-status[data-tone="attention"] {
    border-color: rgba(244, 114, 182, 0.24);
    background: rgba(244, 114, 182, 0.1);
    color: #fbcfe8;
}

.analysis-workflow-status[data-tone="waiting"] {
    border-color: rgba(148, 163, 184, 0.2);
    background: rgba(148, 163, 184, 0.08);
    color: #cbd5e1;
}

.analysis-workflow-body {
    display: grid;
    gap: 6px;
}

.analysis-workflow-title {
    font-size: 0.92rem;
    font-weight: 800;
    line-height: 1.25;
    letter-spacing: -0.02em;
    color: var(--text-primary);
}

.analysis-workflow-meta {
    font-size: 0.75rem;
    line-height: 1.6;
    color: var(--analysis-text-quiet);
}

.analysis-workflow-foot {
    margin-top: auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    flex-wrap: wrap;
}

.analysis-workflow-hint {
    font-size: 0.72rem;
    line-height: 1.5;
    color: var(--text-muted);
}

.analysis-workflow-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 9px 12px;
    border-radius: 12px;
    border: 1px solid rgba(96, 165, 250, 0.26);
    background: rgba(147, 197, 253, 0.14);
    color: var(--text-primary);
    font: inherit;
    font-size: 0.76rem;
    font-weight: 700;
    cursor: pointer;
    transition: transform var(--transition-fast), border-color var(--transition-fast), background var(--transition-fast);
}

.analysis-workflow-action:hover {
    transform: translateY(-1px);
    border-color: rgba(96, 165, 250, 0.38);
    background: rgba(147, 197, 253, 0.2);
}

.analysis-workflow-action:disabled {
    cursor: not-allowed;
    opacity: 0.55;
}

/* ===== Metric Cards ===== */
.card-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 12px;
    margin-bottom: 0;
}

.card-grid-metrics {
    align-items: stretch;
}

.card-grid-rich .metric-card:nth-child(3n + 1) {
    animation-delay: 0.05s;
}

.card-grid-rich .metric-card:nth-child(3n + 2) {
    animation-delay: 0.1s;
}

.card-grid-rich .metric-card:nth-child(3n + 3) {
    animation-delay: 0.15s;
}

.metric-card {
    min-height: 108px;
    padding: 14px 16px;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0.02)),
        var(--analysis-surface-soft);
    border: 1px solid var(--analysis-border);
    border-radius: 16px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 10px;
    transition: var(--transition-fast);
    animation: cardFadeIn 0.4s ease backwards;
    box-shadow: var(--analysis-inset);
}

.metric-card:nth-child(1) {
    animation-delay: 0.05s;
}

.metric-card:nth-child(2) {
    animation-delay: 0.1s;
}

.metric-card:nth-child(3) {
    animation-delay: 0.15s;
}

.metric-card:nth-child(4) {
    animation-delay: 0.2s;
}

.metric-card:nth-child(5) {
    animation-delay: 0.25s;
}

.metric-card:nth-child(6) {
    animation-delay: 0.3s;
}

@keyframes cardFadeIn {
    from {
        opacity: 0;
        transform: translateY(10px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.metric-card:hover {
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.03)),
        var(--analysis-surface-soft);
    border-color: var(--border-hover);
}

.metric-card.accent {
    border-color: var(--analysis-border-strong);
    background:
        linear-gradient(180deg, rgba(79, 140, 255, 0.12), rgba(79, 140, 255, 0.04)),
        var(--analysis-surface-soft);
}

/* ===== Filter Section ===== */
.filter-section {
    margin-bottom: 20px;
    padding: 16px;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0.02)),
        var(--analysis-surface);
    border: 1px solid var(--analysis-border);
    border-radius: 16px;
    box-shadow: var(--analysis-inset);
}

.analysis-control-stack .filter-section {
    margin-bottom: 0;
}

.filter-label {
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--text-muted);
    display: block;
    margin-bottom: 12px;
}

.year-filter {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 12px;
    flex-wrap: wrap;
}

.year-filter>* {
    min-width: 0;
}

.year-input {
    width: 72px;
    flex: 1 1 88px;
    min-width: 0;
    padding: 9px 11px;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid var(--analysis-border);
    border-radius: var(--radius-sm);
    color: var(--text-primary);
    font-family: var(--font-sans);
    font-size: 0.84rem;
    font-weight: 700;
    text-align: center;
    outline: none;
    transition: var(--transition-fast);
    box-shadow: var(--analysis-inset);
}

.year-input:focus {
    border-color: var(--accent);
    box-shadow: 0 0 0 2px var(--accent-glow);
}

.year-separator {
    color: var(--text-muted);
    font-size: 0.76rem;
    font-weight: 700;
}

.btn-filter {
    padding: 10px 16px;
    background: var(--accent-gradient);
    color: white;
    border: 1px solid rgba(79, 140, 255, 0.28);
    border-radius: 14px;
    font-size: 0.75rem;
    font-weight: 700;
    cursor: pointer;
    transition: transform var(--transition-fast), box-shadow var(--transition-fast), filter var(--transition-fast);
    font-family: inherit;
    white-space: normal;
    line-height: 1.2;
    text-align: center;
    overflow-wrap: break-word;
    word-break: normal;
    box-shadow: 0 14px 28px rgba(79, 140, 255, 0.18);
}

.btn-filter:hover {
    transform: translateY(-1px);
    filter: brightness(1.04);
    box-shadow: 0 18px 34px rgba(79, 140, 255, 0.2);
}

.quick-years {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.year-chip {
    padding: 7px 12px;
    background: var(--button-ghost-bg);
    border: 1px solid var(--analysis-border);
    border-radius: 999px;
    color: var(--analysis-text-quiet);
    font-size: 0.7rem;
    font-weight: 700;
    cursor: pointer;
    transition: transform var(--transition-fast), border-color var(--transition-fast), background var(--transition-fast), color var(--transition-fast);
    font-family: inherit;
    white-space: normal;
    line-height: 1.25;
    text-align: center;
    overflow-wrap: break-word;
    word-break: normal;
}

.year-chip:hover {
    background: var(--button-ghost-bg-hover);
    border-color: var(--border-hover);
    color: var(--text-primary);
    transform: translateY(-1px);
}

.year-chip.active {
    background: rgba(79, 140, 255, 0.16);
    border-color: rgba(79, 140, 255, 0.34);
    color: var(--text-primary);
}

.filter-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 12px;
    flex-wrap: wrap;
}

.filter-actions {
    display: flex;
    align-items: center;
    gap: 8px;
}

.btn-text {
    background: var(--button-ghost-bg);
    border: 1px solid transparent;
    color: var(--accent-light);
    font: inherit;
    font-size: 0.74rem;
    font-weight: 700;
    cursor: pointer;
    white-space: normal;
    line-height: 1.25;
    text-align: left;
    overflow-wrap: break-word;
    word-break: normal;
    border-radius: 999px;
    padding: 8px 12px;
    transition: var(--transition-fast);
}

.btn-text:hover {
    color: var(--text-primary);
    background: var(--button-ghost-bg-hover);
    border-color: var(--border);
}

.btn-text:disabled {
    color: var(--analysis-text-quiet);
    cursor: default;
    opacity: 0.6;
}

.btn-text:disabled:hover {
    color: var(--analysis-text-quiet);
}

.filter-search {
    width: 100%;
    padding: 12px 13px;
    border-radius: 14px;
    border: 1px solid var(--analysis-border);
    background: var(--field-bg-elevated);
    color: var(--text-primary);
    font: inherit;
    margin-bottom: 12px;
    box-shadow: var(--analysis-inset);
}

.filter-search::placeholder {
    color: var(--text-muted);
}

.filter-summary {
    font-size: 0.76rem;
    color: var(--analysis-text-quiet);
    margin-bottom: 12px;
    line-height: 1.55;
}

.filter-summary-inline {
    margin-bottom: 0;
}

.neighborhood-preset-row {
    display: flex;
    align-items: flex-end;
    gap: 10px;
    margin-bottom: 12px;
    flex-wrap: wrap;
}

.filter-select-wrap {
    display: grid;
    gap: 7px;
    flex: 1 1 220px;
    min-width: 0;
}

.filter-select-label {
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--text-muted);
}

.filter-select {
    width: 100%;
    min-height: 42px;
    padding: 10px 12px;
    border-radius: 12px;
    border: 1px solid var(--analysis-border);
    background: rgba(255, 255, 255, 0.04);
    color: var(--text-primary);
    color-scheme: dark;
    font: inherit;
    box-shadow: var(--analysis-inset);
    outline: none;
}

.filter-select:focus {
    border-color: var(--accent);
    box-shadow: 0 0 0 2px var(--accent-glow);
}

body[data-theme="light"] .filter-select {
    color-scheme: light;
}

.neighborhood-preset-actions {
    flex-wrap: wrap;
}

.date-range-filter {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.date-range-input {
    display: grid;
    gap: 7px;
    font-size: 0.74rem;
    color: var(--text-muted);
}

.date-range-input input {
    width: 100%;
    padding: 10px 11px;
    border-radius: var(--radius-sm);
    border: 1px solid var(--analysis-border);
    background: rgba(255, 255, 255, 0.05);
    color: var(--text-primary);
    font: inherit;
    box-shadow: var(--analysis-inset);
    color-scheme: dark;
}

body[data-theme="light"] .date-range-input input {
    color-scheme: light;
}

.quick-dates {
    margin-top: -2px;
}

.neighborhood-options {
    display: grid;
    gap: 8px;
    max-height: 220px;
    overflow-y: auto;
    padding-right: 4px;
}

.neighborhood-options.empty {
    color: var(--text-muted);
    font-size: 0.8rem;
}

.neighborhood-option {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 11px 12px;
    border: 1px solid var(--analysis-border);
    border-radius: var(--radius-sm);
    background: rgba(255, 255, 255, 0.035);
}

.neighborhood-option input {
    margin-top: 2px;
}

.neighborhood-option span {
    display: block;
}

.neighborhood-option-name {
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--text-primary);
    line-height: 1.4;
    overflow-wrap: break-word;
    word-break: normal;
}

.neighborhood-option-count {
    font-size: 0.72rem;
    color: var(--analysis-text-quiet);
    margin-top: 4px;
    line-height: 1.45;
    overflow-wrap: break-word;
    word-break: normal;
}

.cleanup-toggles {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 9px;
    margin-bottom: 14px;
}

.toggle-chip {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 11px 12px;
    border: 1px solid var(--analysis-border);
    border-radius: var(--radius-sm);
    background: rgba(255, 255, 255, 0.04);
    color: var(--analysis-text-quiet);
    font-size: 0.78rem;
    font-weight: 600;
    line-height: 1.45;
    overflow-wrap: break-word;
    word-break: normal;
}

.toggle-chip input {
    margin: 0;
    accent-color: var(--accent);
}

.cleanup-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin-bottom: 14px;
}

.cleanup-input {
    display: grid;
    gap: 7px;
    font-size: 0.74rem;
    color: var(--text-muted);
}

.cleanup-input input {
    width: 100%;
    padding: 10px 11px;
    border-radius: var(--radius-sm);
    border: 1px solid var(--analysis-border);
    background: rgba(255, 255, 255, 0.05);
    color: var(--text-primary);
    font: inherit;
    box-shadow: var(--analysis-inset);
}

.cleanup-input select {
    width: 100%;
    padding: 10px 11px;
    border-radius: var(--radius-sm);
    border: 1px solid var(--analysis-border);
    background: rgba(255, 255, 255, 0.05);
    color: var(--text-primary);
    font: inherit;
    box-shadow: var(--analysis-inset);
}

.filter-note {
    margin: 0 0 14px;
    font-size: 0.76rem;
    line-height: 1.6;
    color: var(--analysis-text-quiet);
}

.cleanup-range-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 14px;
}

.cleanup-range-card {
    padding: 12px;
    border-radius: 16px;
    border: 1px solid var(--analysis-border);
    background: rgba(255, 255, 255, 0.035);
    box-shadow: var(--analysis-inset);
}

.cleanup-range-title {
    margin-bottom: 10px;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--text-muted);
}

.cleanup-grid-pair {
    margin-bottom: 0;
}

/* ===== Section Titles ===== */
.section-title {
    font-size: 0.8rem;
    font-weight: 700;
    color: var(--text-secondary);
    margin-bottom: 10px;
    margin-top: 4px;
}

.chart-controls {
    display: grid;
    gap: 10px;
    margin-bottom: 0;
}

.chart-controls-tight {
    margin-bottom: 0;
}

.chart-controls-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    flex-wrap: wrap;
}

.chart-controls-label {
    margin-bottom: 0;
}

.timeline-control-card {
    padding: 16px;
    border-radius: 16px;
    border: 1px solid var(--analysis-border);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0.02)),
        var(--analysis-surface);
    box-shadow: var(--analysis-inset);
}

.analysis-block .timeline-control-card {
    margin-bottom: 18px;
}

.time-group-toggle {
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 5px;
    border-radius: 999px;
    border: 1px solid var(--analysis-border);
    background: rgba(255, 255, 255, 0.04);
}

.time-group-button {
    flex: 1;
    min-width: 0;
    padding: 8px 12px;
    border: none;
    border-radius: 999px;
    background: transparent;
    color: var(--text-secondary);
    font: inherit;
    font-size: 0.76rem;
    font-weight: 700;
    cursor: pointer;
    transition: var(--transition-fast);
}

.time-group-button:hover {
    color: var(--text-primary);
    background: rgba(255, 255, 255, 0.06);
}

.time-group-button.active {
    background: var(--accent-gradient);
    color: #fff;
    box-shadow: 0 8px 22px rgba(147, 197, 253, 0.22);
}

.time-focus-toggle {
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 5px;
    border-radius: 999px;
    border: 1px solid var(--analysis-border);
    background: rgba(255, 255, 255, 0.04);
    flex-wrap: wrap;
}

.time-focus-button {
    border: none;
    background: transparent;
    color: var(--text-secondary);
    font: inherit;
    font-size: 0.71rem;
    font-weight: 700;
    border-radius: 999px;
    padding: 7px 10px;
    cursor: pointer;
    transition: var(--transition-fast);
}

.time-focus-button:hover {
    background: rgba(255, 255, 255, 0.06);
    color: var(--text-primary);
}

.time-focus-button.active {
    background: rgba(16, 185, 129, 0.18);
    color: #d1fae5;
    box-shadow: inset 0 0 0 1px rgba(16, 185, 129, 0.35);
}

.chart-meta {
    color: var(--text-muted);
    font-size: 0.72rem;
    line-height: 1.55;
}

.chart-meta-pill {
    display: inline-flex;
    align-items: center;
    padding: 5px 10px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid var(--analysis-border);
}

/* ===== Insight Card ===== */
.insight-card {
    margin-bottom: 0;
}

.insight-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 12px;
}

.insight-stat {
    min-height: 108px;
    padding: 14px;
    border-radius: 16px;
    border: 1px solid var(--analysis-border);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0.02)),
        var(--analysis-surface-soft);
    display: grid;
    align-content: space-between;
    gap: 12px;
    box-shadow: var(--analysis-inset);
}

.insight-label {
    font-size: 0.72rem;
    font-weight: 700;
    line-height: 1.45;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--text-muted);
}

.insight-value {
    font-size: 1rem;
    font-weight: 700;
    color: var(--text-primary);
    line-height: 1.35;
    overflow-wrap: break-word;
    word-break: normal;
}

.insight-value.positive {
    color: var(--success);
}

.insight-value.negative {
    color: var(--danger);
}

.metric-label {
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--text-muted);
    line-height: 1.45;
}

.metric-value {
    font-size: 1.34rem;
    font-weight: 800;
    color: var(--text-primary);
    letter-spacing: -0.02em;
    line-height: 1.15;
    overflow-wrap: break-word;
    word-break: normal;
}

.metric-card.accent .metric-value {
    background: var(--accent-gradient);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.intel-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 12px;
    margin-bottom: 0;
}

.intel-card {
    min-height: 120px;
    padding: 14px 15px;
    border-radius: 16px;
    border: 1px solid var(--analysis-border);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0.02)),
        var(--analysis-surface-soft);
    display: grid;
    gap: 8px;
    align-content: start;
    box-shadow: var(--analysis-inset);
}

.intel-label {
    font-size: 0.66rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--text-muted);
}

.intel-value {
    font-size: 1rem;
    line-height: 1.3;
    color: var(--text-primary);
    overflow-wrap: break-word;
    word-break: normal;
}

.intel-note {
    font-size: 0.74rem;
    line-height: 1.55;
    color: var(--analysis-text-quiet);
}

.calculator-card {
    margin-bottom: 0;
    padding: 18px;
    border-radius: 18px;
    border: 1px solid rgba(147, 197, 253, 0.18);
    background:
        radial-gradient(circle at top right, rgba(147, 197, 253, 0.18), transparent 30%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0.02));
    display: grid;
    gap: 16px;
    box-shadow: var(--analysis-inset);
}

.calculator-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}

.calculator-header h3 {
    font-size: 1rem;
    margin-bottom: 6px;
}

.calculator-header p {
    font-size: 0.78rem;
    color: var(--analysis-text-quiet);
    line-height: 1.55;
}

.calc-primary-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
    gap: 10px;
}

.calc-primary-input {
    align-content: start;
}

.calc-primary-input input {
    font-size: 0.98rem;
    font-weight: 700;
}

.calc-input-note {
    font-size: 0.72rem;
    line-height: 1.45;
    color: var(--analysis-text-quiet);
}

.calc-helper-row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.calc-helper-row .btn-sm {
    box-shadow: none;
}

.calc-secondary-grid {
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
    gap: 10px;
    align-items: stretch;
}

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

.calc-status-card {
    min-height: 100%;
    padding: 12px 13px;
    border-radius: var(--radius-sm);
    border: 1px solid var(--analysis-border);
    background: rgba(255, 255, 255, 0.05);
    display: grid;
    gap: 6px;
    grid-column: span 2;
    box-shadow: var(--analysis-inset);
}

.calc-status-card-inline {
    grid-column: auto;
}

.calc-status-label {
    font-size: 0.66rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--text-muted);
}

.calc-status-value {
    font-size: 1rem;
    color: var(--text-primary);
}

.calc-status-note {
    font-size: 0.74rem;
    line-height: 1.55;
    color: var(--analysis-text-quiet);
}

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

.calc-output-card {
    min-height: 92px;
    padding: 14px;
    border-radius: 16px;
    border: 1px solid var(--analysis-border);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0.02)),
        var(--analysis-surface-soft);
    display: grid;
    gap: 8px;
    align-content: space-between;
    box-shadow: var(--analysis-inset);
}

.calc-output-card.accent {
    background:
        linear-gradient(180deg, rgba(79, 140, 255, 0.14), rgba(79, 140, 255, 0.05)),
        var(--analysis-surface-soft);
    border-color: rgba(96, 165, 250, 0.28);
}

.calc-output-label {
    font-size: 0.66rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--text-muted);
}

.calc-output-value {
    font-size: 1.12rem;
    font-weight: 800;
    color: var(--text-primary);
    letter-spacing: -0.03em;
    line-height: 1.2;
    overflow-wrap: break-word;
    word-break: normal;
}

.calc-output-card.accent .calc-output-value {
    background: var(--accent-gradient);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.calc-deal-shell {
    padding: 16px;
    border-radius: 18px;
    border: 1px solid rgba(148, 163, 184, 0.16);
    background:
        radial-gradient(circle at top right, rgba(16, 185, 129, 0.12), transparent 34%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0.02));
    display: grid;
    gap: 14px;
    box-shadow: var(--analysis-inset);
}

.calc-deal-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}

.calc-deal-kicker {
    display: inline-flex;
    align-items: center;
    font-size: 0.66rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--text-muted);
}

.calc-deal-title {
    margin-top: 6px;
    font-size: 1.08rem;
    line-height: 1.25;
    letter-spacing: -0.02em;
    color: var(--text-primary);
}

.calc-deal-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 8px 12px;
    border-radius: 999px;
    border: 1px solid transparent;
    font-size: 0.78rem;
    font-weight: 800;
    line-height: 1.2;
}

.calc-deal-pill.tone-great {
    color: #6ee7b7;
    background: rgba(16, 185, 129, 0.16);
    border-color: rgba(16, 185, 129, 0.34);
}

.calc-deal-pill.tone-good {
    color: #93c5fd;
    background: rgba(79, 140, 255, 0.16);
    border-color: rgba(79, 140, 255, 0.34);
}

.calc-deal-pill.tone-fair {
    color: #fcd34d;
    background: rgba(245, 158, 11, 0.16);
    border-color: rgba(245, 158, 11, 0.34);
}

.calc-deal-pill.tone-horrible {
    color: #fca5a5;
    background: rgba(239, 68, 68, 0.16);
    border-color: rgba(239, 68, 68, 0.34);
}

.calc-deal-pill.tone-neutral {
    color: var(--text-primary);
    background: rgba(148, 163, 184, 0.14);
    border-color: rgba(148, 163, 184, 0.24);
}

.calc-deal-summary,
.calc-deal-support,
.calc-deal-note {
    font-size: 0.78rem;
    line-height: 1.6;
}

.calc-deal-summary {
    color: var(--text-primary);
}

.calc-deal-support,
.calc-deal-note {
    color: var(--analysis-text-quiet);
}

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

.calc-deal-card {
    min-height: 88px;
    padding: 13px 14px;
    border-radius: 16px;
    border: 1px solid var(--analysis-border);
    background: rgba(255, 255, 255, 0.05);
    display: grid;
    gap: 8px;
    align-content: space-between;
    box-shadow: var(--analysis-inset);
}

.calc-deal-card-label {
    font-size: 0.66rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--text-muted);
}

.calc-deal-card-value {
    font-size: 1.02rem;
    font-weight: 800;
    line-height: 1.25;
    letter-spacing: -0.02em;
    color: var(--text-primary);
    overflow-wrap: break-word;
    word-break: normal;
}

/* ===== Chart Sections ===== */
.chart-section {
    margin-bottom: 26px;
    animation: cardFadeIn 0.5s ease backwards;
}

.chart-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 14px;
}

.chart-header-copy {
    display: grid;
    gap: 6px;
    flex: 1 1 220px;
}

.chart-header-fullscreen-controls {
    margin-left: auto;
    display: flex;
    align-items: end;
    gap: 12px;
    flex-wrap: nowrap;
}

.chart-header-inline-control {
    display: grid;
    gap: 6px;
    min-width: 0;
}

.chart-header-inline-control-timeframe {
    min-width: min(720px, 100%);
}

.chart-header-inline-label {
    font-size: 0.68rem;
    line-height: 1.4;
    color: var(--analysis-text-quiet);
    font-weight: 700;
}

.chart-header-inline-chip-row,
.chart-header-inline-date-row {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: nowrap;
}

.chart-header-inline-chip-row .chart-analytics-chip,
.chart-header-inline-date-row .chart-analytics-chip {
    white-space: nowrap;
}

.chart-header-inline-date-row input {
    width: 148px;
    min-width: 0;
    border-radius: 12px;
    border: 1px solid var(--analysis-border);
    background: rgba(255, 255, 255, 0.04);
    color: var(--text-primary);
    font: inherit;
    font-size: 0.76rem;
    padding: 9px 12px;
    outline: none;
}

.chart-header-inline-date-row input:focus {
    border-color: rgba(96, 165, 250, 0.38);
    box-shadow: 0 0 0 3px rgba(79, 140, 255, 0.12);
}

.chart-series-toolbar {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    flex-wrap: wrap;
    width: fit-content;
    max-width: 100%;
    padding: 5px;
    border-radius: 999px;
    border: 1px solid var(--analysis-border);
    background: rgba(255, 255, 255, 0.04);
}

.chart-series-button {
    border: 1px solid transparent;
    background: transparent;
    color: var(--text-secondary);
    font: inherit;
    font-size: 0.72rem;
    font-weight: 700;
    border-radius: 999px;
    padding: 7px 11px;
    cursor: pointer;
    transition: var(--transition-fast);
    white-space: nowrap;
}

.chart-series-button:hover {
    color: var(--text-primary);
    background: rgba(255, 255, 255, 0.06);
}

.chart-series-button.active {
    background: rgba(147, 197, 253, 0.18);
    border-color: rgba(96, 165, 250, 0.34);
    color: #dbeafe;
    box-shadow: inset 0 0 0 1px rgba(96, 165, 250, 0.34);
}

.chart-inline-control-slot {
    margin-bottom: 12px;
}

.chart-control-deck {
    padding: 14px 16px;
    border-radius: 16px;
    border: 1px solid var(--analysis-border);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.018)),
        rgba(15, 23, 42, 0.16);
    display: grid;
    gap: 12px;
}

.chart-control-deck-top {
    display: grid;
    gap: 12px;
}

.chart-control-deck-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}

.chart-control-deck-header-copy {
    display: grid;
    gap: 5px;
}

.chart-control-deck-kicker {
    font-size: 0.66rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--text-muted);
}

.chart-control-deck-title {
    font-size: 0.82rem;
    line-height: 1.35;
    color: var(--text-primary);
}

.chart-control-deck-note,
.chart-control-deck-helper,
.chart-control-empty,
.chart-control-pill-copy span {
    font-size: 0.74rem;
    line-height: 1.5;
    color: var(--analysis-text-quiet);
}

.chart-control-deck-active {
    display: flex;
    align-items: stretch;
    gap: 10px;
    flex-wrap: wrap;
}

.chart-control-pill {
    min-width: 0;
    padding: 10px 12px;
    border-radius: 14px;
    border: 1px solid var(--analysis-border);
    background: rgba(255, 255, 255, 0.04);
    display: inline-flex;
    align-items: center;
    gap: 10px;
}

.chart-control-pill.is-locked {
    border-color: rgba(16, 185, 129, 0.26);
    background: rgba(16, 185, 129, 0.1);
}

.chart-control-pill-copy {
    display: grid;
    gap: 2px;
    min-width: 0;
}

.chart-control-pill-copy strong {
    font-size: 0.78rem;
    line-height: 1.35;
    color: var(--text-primary);
}

.chart-control-pill-badge,
.chart-control-pill-remove {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    font: inherit;
    font-size: 0.7rem;
    font-weight: 700;
    padding: 6px 10px;
    white-space: nowrap;
}

.chart-control-pill-badge {
    border: 1px solid rgba(16, 185, 129, 0.26);
    background: rgba(16, 185, 129, 0.14);
    color: var(--text-primary);
}

.chart-control-pill-remove {
    border: 1px solid var(--analysis-border);
    background: rgba(255, 255, 255, 0.03);
    color: var(--text-primary);
    cursor: pointer;
    transition: var(--transition-fast);
}

.chart-control-pill-remove:hover {
    border-color: rgba(96, 165, 250, 0.34);
    background: rgba(147, 197, 253, 0.16);
}

.chart-control-pill-remove:disabled {
    cursor: not-allowed;
    opacity: 0.55;
}

.chart-control-deck-actions {
    display: flex;
    align-items: end;
    gap: 10px;
    flex-wrap: wrap;
}

.chart-control-quick-wrap {
    flex: 1 1 100%;
    width: 100%;
    display: grid;
    gap: 10px;
}

.chart-control-quick-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 10px;
    align-items: end;
}

.chart-control-quick-actions {
    display: flex;
    align-items: end;
    gap: 10px;
    flex-wrap: wrap;
}

.chart-control-quick-helper {
    font-size: 0.74rem;
    line-height: 1.5;
    color: var(--analysis-text-quiet);
}

.chart-control-select-wrap {
    min-width: min(280px, 100%);
    display: grid;
    gap: 6px;
    color: var(--text-secondary);
    font-size: 0.76rem;
}

.chart-control-select-wrap span {
    font-weight: 700;
}

.chart-control-select-wrap select {
    width: 100%;
    border-radius: 12px;
    border: 1px solid var(--analysis-border);
    background: rgba(255, 255, 255, 0.04);
    color: var(--text-primary);
    font: inherit;
    padding: 10px 12px;
    outline: none;
}

.chart-control-select-wrap select:focus {
    border-color: rgba(96, 165, 250, 0.38);
    box-shadow: 0 0 0 3px rgba(79, 140, 255, 0.12);
}

.chart-control-select-wrap select:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

.chart-control-add-btn,
.chart-control-action-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    border: 1px solid rgba(96, 165, 250, 0.28);
    background: rgba(147, 197, 253, 0.16);
    color: var(--text-primary);
    font: inherit;
    font-size: 0.76rem;
    font-weight: 700;
    padding: 10px 14px;
    cursor: pointer;
    transition: var(--transition-fast);
}

.chart-control-action-btn {
    border-color: var(--analysis-border);
    background: rgba(255, 255, 255, 0.03);
}

.chart-control-add-btn:hover,
.chart-control-action-btn:hover {
    border-color: rgba(96, 165, 250, 0.38);
    background: rgba(147, 197, 253, 0.2);
}

.chart-control-add-btn:disabled,
.chart-control-action-btn:disabled {
    cursor: not-allowed;
    opacity: 0.55;
}

.chart-section h3 {
    font-size: 0.96rem;
    font-weight: 700;
    color: var(--text-primary);
    letter-spacing: -0.01em;
    line-height: 1.3;
    overflow-wrap: break-word;
    word-break: normal;
}

.chart-container {
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.035), rgba(255, 255, 255, 0.015)),
        var(--analysis-surface);
    border: 1px solid var(--analysis-border);
    border-radius: 16px;
    padding: 16px;
    position: relative;
    height: 240px;
    cursor: pointer;
    box-shadow: var(--analysis-inset);
}

.chart-expand-btn {
    border: 1px solid var(--analysis-border);
    background: rgba(255, 255, 255, 0.05);
    color: var(--text-primary);
    font: inherit;
    font-size: 0.72rem;
    font-weight: 700;
    border-radius: 999px;
    padding: 7px 12px;
    cursor: pointer;
    transition: var(--transition-fast);
    white-space: nowrap;
}

.chart-expand-btn:hover {
    border-color: rgba(96, 165, 250, 0.34);
    background: rgba(79, 140, 255, 0.12);
}

.chart-container.chart-sm {
    height: 200px;
}

.chart-container-scroll {
    padding: 0;
    overflow: hidden;
}

.chart-scroll {
    height: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: thin;
    scrollbar-color: var(--text-muted) transparent;
}

.chart-scroll::-webkit-scrollbar {
    height: 6px;
}

.chart-scroll::-webkit-scrollbar-thumb {
    background: var(--text-muted);
    border-radius: 999px;
}

.chart-track {
    min-width: 100%;
    height: 100%;
    padding: 16px;
}

.chart-container canvas {
    width: 100% !important;
    height: 100% !important;
}

.analysis-trend-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.analysis-trend-grid .chart-section {
    margin-bottom: 0;
}

.analysis-trend-grid .chart-section-wide {
    grid-column: 1 / -1;
}

.mini-chart-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 18px;
    margin-bottom: 6px;
}

.chart-section-compact {
    margin-bottom: 0;
}

.chart-section-span {
    grid-column: 1 / -1;
}

.chart-section-span .chart-container.chart-sm {
    height: 232px;
}

.chart-analytics-panel {
    margin-top: 16px;
    padding: 18px;
    border-radius: 18px;
    border: 1px solid var(--analysis-border);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.02)),
        var(--analysis-surface-strong);
    box-shadow: var(--analysis-inset);
    display: grid;
    gap: 14px;
}

.chart-analytics-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}

.chart-analytics-kicker {
    display: inline-flex;
    align-items: center;
    font-size: 0.64rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--accent-light);
    margin-bottom: 6px;
}

.chart-analytics-title {
    display: block;
    font-size: 1rem;
    line-height: 1.2;
    color: var(--text-primary);
}

.chart-analytics-reset {
    border: none;
    background: transparent;
    color: var(--accent-light);
    font: inherit;
    font-size: 0.78rem;
    font-weight: 700;
    cursor: pointer;
}

.chart-analytics-reset:hover {
    color: var(--accent);
}

.chart-analytics-toolbar {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.chart-analytics-chip {
    border: 1px solid var(--analysis-border);
    background: rgba(255, 255, 255, 0.04);
    color: var(--text-secondary);
    font: inherit;
    font-size: 0.76rem;
    font-weight: 700;
    border-radius: 999px;
    padding: 8px 12px;
    cursor: pointer;
    transition: var(--transition-fast);
}

.chart-analytics-chip:hover {
    border-color: rgba(96, 165, 250, 0.28);
    color: var(--text-primary);
}

.chart-analytics-chip.active {
    background: rgba(147, 197, 253, 0.18);
    border-color: rgba(96, 165, 250, 0.34);
    color: #dbeafe;
}

.chart-analytics-select {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 10px;
    border-radius: 999px;
    border: 1px solid var(--analysis-border);
    background: rgba(255, 255, 255, 0.04);
    color: var(--text-secondary);
    font-size: 0.76rem;
    font-weight: 700;
}

.chart-analytics-select select {
    border: none;
    background: transparent;
    color: var(--text-primary);
    font: inherit;
    cursor: pointer;
    outline: none;
}

.chart-analytics-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 12px;
}

.chart-analytics-card {
    min-height: 106px;
    padding: 14px;
    border-radius: 16px;
    border: 1px solid var(--analysis-border);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0.02)),
        var(--analysis-surface);
    display: grid;
    gap: 8px;
    align-content: start;
}

.chart-analytics-card-label {
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--text-muted);
}

.chart-analytics-card-value {
    font-size: 1.1rem;
    line-height: 1.15;
    color: var(--text-primary);
}

.chart-analytics-card-note,
.chart-analytics-note {
    font-size: 0.76rem;
    line-height: 1.55;
    color: var(--analysis-text-quiet);
}

.chart-fullscreen-controls {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 14px;
}

.chart-fullscreen-control-card,
.chart-event-panel,
.chart-drill-panel {
    padding: 16px;
    border-radius: 18px;
    border: 1px solid var(--analysis-border);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0.02)),
        var(--analysis-surface);
    display: grid;
    gap: 14px;
}

.chart-fullscreen-control-card[data-fullscreen-quick-target] {
    scroll-margin-top: 120px;
}

.chart-fullscreen-control-header,
.chart-event-panel-header,
.chart-drill-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}

.chart-fullscreen-control-note,
.chart-drill-subtitle,
.chart-event-meta,
.chart-event-note,
.chart-event-empty,
.chart-fullscreen-helper {
    font-size: 0.78rem;
    line-height: 1.55;
    color: var(--analysis-text-quiet);
}

.chart-fullscreen-chip-row,
.chart-drill-summary,
.chart-event-links,
.chart-drill-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.chart-fullscreen-index-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 12px;
    align-items: end;
}

.chart-fullscreen-index-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.chart-fullscreen-index-summary {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 12px;
}

.chart-fullscreen-index-card {
    padding: 12px;
    border-radius: 14px;
    border: 1px solid var(--analysis-border);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.035), rgba(255, 255, 255, 0.016)),
        rgba(15, 23, 42, 0.14);
    display: grid;
    gap: 6px;
}

.chart-fullscreen-index-label {
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--text-muted);
}

.chart-fullscreen-index-value {
    font-size: 1rem;
    color: var(--text-primary);
}

.chart-fullscreen-index-note {
    font-size: 0.74rem;
    line-height: 1.5;
    color: var(--analysis-text-quiet);
}

.benchmark-fullscreen-blurb {
    padding: 14px 16px;
    border-radius: 16px;
    border: 1px solid rgba(96, 165, 250, 0.2);
    background:
        linear-gradient(180deg, rgba(147, 197, 253, 0.12), rgba(147, 197, 253, 0.04)),
        rgba(15, 23, 42, 0.16);
}

.benchmark-fullscreen-blurb strong {
    display: block;
    margin-bottom: 6px;
    font-size: 0.88rem;
    line-height: 1.45;
    color: var(--text-primary);
}

.benchmark-fullscreen-blurb p {
    margin: 0;
    font-size: 0.8rem;
    line-height: 1.65;
    color: var(--analysis-text-quiet);
}

.benchmark-factor-grid {
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.benchmark-factor-card {
    align-content: start;
}

.benchmark-factor-meta {
    font-size: 0.74rem;
    line-height: 1.5;
    color: var(--text-secondary);
}

.chart-fullscreen-lineup-panel {
    display: grid;
    gap: 12px;
}

.chart-fullscreen-lineup-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}

.chart-fullscreen-lineup-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 10px;
}

.chart-fullscreen-lineup-btn {
    display: grid;
    gap: 4px;
    text-align: left;
    border-radius: 14px;
    border: 1px solid var(--analysis-border);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.03), rgba(255, 255, 255, 0.015)),
        rgba(15, 23, 42, 0.14);
    color: var(--text-primary);
    font: inherit;
    padding: 12px;
    cursor: pointer;
    transition: var(--transition-fast);
}

.chart-fullscreen-lineup-btn:hover {
    border-color: rgba(96, 165, 250, 0.34);
    background:
        linear-gradient(180deg, rgba(79, 140, 255, 0.08), rgba(79, 140, 255, 0.03)),
        rgba(15, 23, 42, 0.18);
}

.chart-fullscreen-lineup-btn.active {
    border-color: rgba(96, 165, 250, 0.42);
    box-shadow: 0 0 0 1px rgba(96, 165, 250, 0.24) inset;
}

.chart-fullscreen-lineup-btn.locked {
    background:
        linear-gradient(180deg, rgba(34, 197, 94, 0.1), rgba(34, 197, 94, 0.03)),
        rgba(15, 23, 42, 0.18);
}

.chart-fullscreen-lineup-btn:disabled {
    cursor: not-allowed;
    opacity: 0.5;
}

.chart-fullscreen-lineup-name {
    font-size: 0.82rem;
    font-weight: 700;
}

.chart-fullscreen-lineup-meta,
.chart-fullscreen-lineup-count,
.chart-fullscreen-lineup-empty {
    font-size: 0.74rem;
    line-height: 1.45;
    color: var(--analysis-text-quiet);
}

.chart-fullscreen-lineup-empty {
    padding: 12px;
    border-radius: 14px;
    border: 1px dashed var(--analysis-border);
    background: rgba(255, 255, 255, 0.03);
}

.chart-fullscreen-date-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr)) auto;
    gap: 10px;
    align-items: end;
}

.chart-fullscreen-date-field {
    display: grid;
    gap: 6px;
    font-size: 0.78rem;
    color: var(--text-secondary);
}

.chart-fullscreen-date-field span {
    font-weight: 700;
}

.chart-fullscreen-date-field input {
    width: 100%;
    border-radius: 12px;
    border: 1px solid var(--analysis-border);
    background: rgba(255, 255, 255, 0.04);
    color: var(--text-primary);
    font: inherit;
    padding: 10px 12px;
    outline: none;
}

.chart-fullscreen-date-field input:focus {
    border-color: rgba(96, 165, 250, 0.38);
    box-shadow: 0 0 0 3px rgba(79, 140, 255, 0.12);
}

.chart-fullscreen-apply,
.chart-drill-page-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    border: 1px solid rgba(96, 165, 250, 0.28);
    background: rgba(147, 197, 253, 0.16);
    color: var(--text-primary);
    font: inherit;
    font-size: 0.78rem;
    font-weight: 700;
    padding: 10px 14px;
    cursor: pointer;
    transition: var(--transition-fast);
}

.chart-fullscreen-apply:hover,
.chart-drill-page-btn:hover {
    border-color: rgba(96, 165, 250, 0.42);
    background: rgba(147, 197, 253, 0.22);
}

.chart-fullscreen-apply:disabled,
.chart-drill-page-btn:disabled {
    cursor: not-allowed;
    opacity: 0.55;
}

.chart-fullscreen-apply-secondary {
    background: rgba(255, 255, 255, 0.03);
    border-color: var(--analysis-border);
}

.chart-fullscreen-controls-benchmark {
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
}

.chart-fullscreen-control-card-wide {
    grid-column: 1 / -1;
}

.chart-fullscreen-apply-compact {
    padding: 8px 11px;
    font-size: 0.74rem;
}

.chart-fullscreen-library-toolbar {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(220px, auto);
    gap: 12px;
    align-items: end;
}

.chart-fullscreen-library-search {
    display: grid;
    gap: 6px;
    font-size: 0.78rem;
    color: var(--text-secondary);
}

.chart-fullscreen-library-search span {
    font-weight: 700;
}

.chart-fullscreen-library-search input {
    width: 100%;
    border-radius: 12px;
    border: 1px solid var(--analysis-border);
    background: rgba(255, 255, 255, 0.04);
    color: var(--text-primary);
    font: inherit;
    padding: 10px 12px;
    outline: none;
}

.chart-fullscreen-library-search input:focus {
    border-color: rgba(96, 165, 250, 0.38);
    box-shadow: 0 0 0 3px rgba(79, 140, 255, 0.12);
}

.chart-fullscreen-library-active {
    display: grid;
    gap: 12px;
}

.chart-fullscreen-active-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 10px;
}

.chart-fullscreen-active-index {
    padding: 12px 14px;
    border-radius: 14px;
    border: 1px solid var(--analysis-border);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.035), rgba(255, 255, 255, 0.016)),
        rgba(15, 23, 42, 0.14);
    display: grid;
    gap: 12px;
    align-content: start;
}

.chart-fullscreen-active-index.pinned {
    border-color: rgba(16, 185, 129, 0.28);
    background:
        linear-gradient(180deg, rgba(16, 185, 129, 0.1), rgba(16, 185, 129, 0.025)),
        rgba(15, 23, 42, 0.18);
}

.chart-fullscreen-active-copy {
    display: grid;
    gap: 4px;
    min-width: 0;
}

.chart-fullscreen-active-copy strong,
.chart-fullscreen-library-copy strong {
    font-size: 0.82rem;
    line-height: 1.35;
    color: var(--text-primary);
}

.chart-fullscreen-active-copy span,
.chart-fullscreen-library-copy span {
    font-size: 0.74rem;
    line-height: 1.5;
    color: var(--analysis-text-quiet);
}

.chart-fullscreen-library-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 12px;
}

.chart-fullscreen-library-card {
    padding: 14px;
    border-radius: 16px;
    border: 1px solid var(--analysis-border);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.018)),
        rgba(15, 23, 42, 0.14);
    display: grid;
    gap: 10px;
}

.chart-fullscreen-library-card.active {
    border-color: rgba(96, 165, 250, 0.34);
    box-shadow: 0 0 0 1px rgba(96, 165, 250, 0.2) inset;
}

.chart-fullscreen-library-card.pinned {
    border-color: rgba(16, 185, 129, 0.3);
    background:
        linear-gradient(180deg, rgba(16, 185, 129, 0.08), rgba(16, 185, 129, 0.02)),
        rgba(15, 23, 42, 0.18);
}

.chart-fullscreen-library-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
}

.chart-fullscreen-library-copy {
    display: grid;
    gap: 4px;
    min-width: 0;
}

.chart-fullscreen-library-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.chart-event-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 12px;
}

.chart-event-card {
    padding: 14px;
    border-radius: 16px;
    border: 1px solid var(--analysis-border);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.03), rgba(255, 255, 255, 0.015)),
        rgba(15, 23, 42, 0.16);
    display: grid;
    gap: 8px;
    align-content: start;
}

.chart-event-card-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
    flex-wrap: wrap;
}

.chart-event-date {
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--accent-light);
}

.chart-event-title {
    font-size: 0.92rem;
    line-height: 1.3;
    color: var(--text-primary);
}

.chart-event-bucket {
    font-size: 0.72rem;
    line-height: 1.45;
    color: var(--accent-light);
}

.chart-event-links a {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    border: 1px solid var(--analysis-border);
    padding: 6px 10px;
    color: var(--text-secondary);
    text-decoration: none;
    transition: var(--transition-fast);
}

.chart-event-links a:hover {
    border-color: rgba(96, 165, 250, 0.32);
    color: var(--text-primary);
}

.chart-drill-panel-empty {
    min-height: 128px;
    align-content: center;
}

.chart-drill-empty-title {
    font-size: 0.92rem;
    font-weight: 700;
    color: var(--text-primary);
}

.chart-drill-empty-copy {
    font-size: 0.8rem;
    line-height: 1.55;
    color: var(--analysis-text-quiet);
}

.chart-drill-pill {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    border: 1px solid var(--analysis-border);
    background: rgba(255, 255, 255, 0.04);
    color: var(--text-secondary);
    font-size: 0.76rem;
    font-weight: 700;
    padding: 7px 11px;
}

.chart-drill-table-wrap {
    overflow: auto;
    border-radius: 16px;
    border: 1px solid var(--analysis-border);
}

.chart-drill-table {
    width: 100%;
    min-width: 860px;
    border-collapse: collapse;
}

.chart-drill-table th,
.chart-drill-table td {
    padding: 11px 12px;
    border-bottom: 1px solid var(--analysis-border);
    font-size: 0.78rem;
    text-align: left;
    vertical-align: top;
}

.chart-drill-table th {
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--text-muted);
    background: rgba(255, 255, 255, 0.04);
}

.chart-drill-table tbody tr:last-child td {
    border-bottom: none;
}

.chart-drill-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    font-size: 0.78rem;
    color: var(--analysis-text-quiet);
}

.chart-section:fullscreen,
.chart-section.is-fullscreen-fallback {
    margin: 0;
    padding: 28px;
    background:
        radial-gradient(circle at top right, rgba(147, 197, 253, 0.18), transparent 28%),
        var(--analysis-shell);
    display: grid;
    align-content: start;
    gap: 14px;
    overflow: auto;
}

.chart-section:fullscreen::backdrop {
    background: rgba(2, 6, 23, 0.9);
    backdrop-filter: blur(10px);
}

.chart-section.is-fullscreen-fallback {
    position: fixed;
    inset: 18px;
    z-index: 2000;
    border-radius: 22px;
    box-shadow: 0 24px 80px rgba(2, 6, 23, 0.48);
}

body.chart-fullscreen-lock {
    overflow: hidden;
}

.chart-section:fullscreen .chart-container,
.chart-section.is-fullscreen-fallback .chart-container {
    height: min(76vh, 860px);
}

.chart-section:fullscreen .chart-container.chart-sm,
.chart-section.is-fullscreen-fallback .chart-container.chart-sm,
.chart-section:fullscreen .chart-section-span .chart-container.chart-sm,
.chart-section.is-fullscreen-fallback .chart-section-span .chart-container.chart-sm {
    height: min(76vh, 860px);
}

.chart-section:fullscreen .chart-hint,
.chart-section.is-fullscreen-fallback .chart-hint {
    font-size: 0.82rem;
}

.leaderboard-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 16px;
    margin-bottom: 0;
}

.leaderboard-card {
    border: 1px solid var(--analysis-border);
    border-radius: 18px;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.02)),
        var(--analysis-surface);
    overflow: hidden;
    box-shadow: var(--analysis-inset);
}

.leaderboard-header {
    padding: 16px 16px 14px;
    border-bottom: 1px solid var(--analysis-border);
}

.leaderboard-header h3 {
    font-size: 0.95rem;
    margin-bottom: 6px;
    color: var(--text-primary);
}

.leaderboard-header p {
    font-size: 0.76rem;
    color: var(--analysis-text-quiet);
    line-height: 1.55;
}

.leaderboard-list {
    display: grid;
}

.leaderboard-empty {
    padding: 18px 16px;
    color: var(--analysis-text-quiet);
    font-size: 0.78rem;
    line-height: 1.55;
}

.leaderboard-item {
    width: 100%;
    border: none;
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
    background: transparent;
    color: inherit;
    font: inherit;
    padding: 14px 16px;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 12px;
    align-items: start;
    cursor: pointer;
    text-align: left;
    transition: var(--transition-fast);
}

.leaderboard-item:last-child {
    border-bottom: none;
}

.leaderboard-item:hover {
    background: rgba(79, 140, 255, 0.08);
}

.leaderboard-rank {
    width: 28px;
    height: 28px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.06);
    color: var(--text-secondary);
    font-size: 0.68rem;
    font-weight: 800;
}

.leaderboard-name {
    display: block;
    font-size: 0.79rem;
    font-weight: 700;
    color: var(--text-primary);
    line-height: 1.45;
    overflow-wrap: break-word;
    word-break: normal;
}

.leaderboard-subline {
    display: block;
    margin-top: 4px;
    font-size: 0.72rem;
    color: var(--analysis-text-quiet);
    line-height: 1.5;
    overflow-wrap: break-word;
    word-break: normal;
}

.leaderboard-metric {
    text-align: right;
    min-width: 88px;
}

.leaderboard-metric strong {
    display: block;
    font-size: 0.78rem;
    color: var(--text-primary);
    line-height: 1.4;
    overflow-wrap: break-word;
    word-break: normal;
}

.leaderboard-metric span {
    display: block;
    margin-top: 3px;
    font-size: 0.7rem;
    color: var(--text-muted);
    line-height: 1.4;
    overflow-wrap: break-word;
    word-break: normal;
}

/* ===== All Properties Table ===== */
.properties-header {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin-bottom: 14px;
    flex-wrap: wrap;
}

.properties-header-copy {
    display: grid;
    gap: 6px;
    flex: 1 1 320px;
}

.properties-header h3 {
    font-size: 0.98rem;
    font-weight: 700;
    color: var(--text-primary);
    margin: 0;
    line-height: 1.3;
    overflow-wrap: break-word;
    word-break: normal;
}

.properties-header-note {
    margin: 0;
    max-width: 62ch;
    font-size: 0.78rem;
    line-height: 1.6;
    color: var(--analysis-text-quiet);
}

.properties-header-status {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.properties-count {
    font-size: 0.72rem;
    color: var(--analysis-text-quiet);
    background: rgba(255, 255, 255, 0.06);
    padding: 4px 9px;
    border-radius: 999px;
    border: 1px solid var(--analysis-border);
    white-space: normal;
    line-height: 1.3;
    overflow-wrap: break-word;
    word-break: normal;
}

.properties-count-secondary {
    background: rgba(79, 140, 255, 0.14);
    color: var(--accent-light);
}

.properties-header-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px 12px;
    margin-left: 0;
    flex-basis: 100%;
}

.properties-header-actions>* {
    min-width: 0;
}

.properties-action-group {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.report-hint {
    font-size: 0.74rem;
    color: var(--analysis-text-quiet);
    margin-bottom: 12px;
    line-height: 1.55;
}

.btn-tiny {
    padding: 6px 10px;
    font-size: 0.68rem;
}

.btn-secondary {
    background: var(--button-secondary-bg);
    color: var(--text-primary);
    border: 1px solid var(--analysis-border);
    box-shadow: none;
}

.btn-secondary:hover {
    background: var(--button-secondary-bg-hover);
    box-shadow: none;
    filter: none;
}

.properties-toolbar {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 10px;
    flex-wrap: wrap;
}

.properties-toolbar-left,
.properties-toolbar-right {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.properties-range,
.properties-page-status {
    font-size: 0.72rem;
    color: var(--analysis-text-quiet);
}

.page-size-control {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.72rem;
    color: var(--analysis-text-quiet);
    flex-wrap: wrap;
}

.page-size-control select {
    min-width: 74px;
    border: 1px solid var(--analysis-border);
    background: rgba(255, 255, 255, 0.04);
    color: var(--text-primary);
    border-radius: var(--radius-sm);
    padding: 6px 9px;
    font: inherit;
    box-shadow: var(--analysis-inset);
}

.properties-workspace {
    display: grid;
    gap: 12px;
    margin-bottom: 12px;
    padding: 14px;
    border-radius: 18px;
    border: 1px solid var(--analysis-border);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.035), rgba(255, 255, 255, 0.015)),
        var(--analysis-surface);
    box-shadow: var(--analysis-inset);
}

.properties-export-strip {
    display: grid;
    gap: 12px;
    padding: 14px;
    border-radius: 16px;
    border: 1px solid rgba(79, 140, 255, 0.2);
    background:
        linear-gradient(135deg, rgba(79, 140, 255, 0.14), rgba(16, 185, 129, 0.08)),
        rgba(8, 16, 32, 0.4);
    box-shadow: var(--analysis-inset);
}

.properties-export-copy {
    display: grid;
    gap: 4px;
}

.properties-export-copy h4 {
    margin: 0;
    font-size: 0.96rem;
    line-height: 1.3;
    color: var(--text-primary);
}

.properties-export-note {
    margin: 0;
    max-width: 72ch;
    font-size: 0.76rem;
    line-height: 1.55;
    color: var(--analysis-text-quiet);
}

.properties-export-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.properties-export-meta {
    font-size: 0.72rem;
    line-height: 1.5;
    color: var(--accent-light);
    padding: 10px 12px;
    border-radius: 14px;
    border: 1px solid rgba(255, 255, 255, 0.08);
    background: rgba(255, 255, 255, 0.05);
}

.properties-table-toolbar {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}

.properties-search-field {
    display: grid;
    gap: 6px;
    flex: 1 1 320px;
}

.properties-search-label,
.properties-inline-kicker {
    font-size: 0.66rem;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    font-weight: 700;
    color: var(--accent-light);
}

.properties-search-input,
.properties-filter-field input,
.properties-filter-field select {
    width: 100%;
    border: 1px solid var(--analysis-border);
    border-radius: 12px;
    padding: 9px 11px;
    font: inherit;
    font-size: 0.78rem;
    color: var(--text-primary);
    background: rgba(255, 255, 255, 0.05);
    box-shadow: var(--analysis-inset);
}

.properties-search-input::placeholder,
.properties-filter-field input::placeholder {
    color: var(--text-muted);
}

.properties-search-input:focus,
.properties-filter-field input:focus,
.properties-filter-field select:focus {
    outline: none;
    border-color: var(--analysis-border-strong);
    box-shadow: 0 0 0 1px var(--analysis-border-strong);
}

.properties-table-actions,
.properties-column-presets,
.properties-column-item-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.properties-toolbar-toggle.active {
    background: rgba(79, 140, 255, 0.16);
    border-color: var(--accent);
    color: var(--accent-light);
}

.properties-active-filters {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.properties-filter-chip {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 30px;
    padding: 5px 10px;
    border-radius: 999px;
    border: 1px solid var(--analysis-border);
    background: rgba(255, 255, 255, 0.05);
    color: var(--analysis-text-quiet);
    font-size: 0.72rem;
    line-height: 1.35;
}

button.properties-filter-chip {
    cursor: pointer;
    font: inherit;
}

button.properties-filter-chip:hover {
    background: rgba(79, 140, 255, 0.11);
    border-color: var(--analysis-border-strong);
    color: var(--text-primary);
}

.properties-filter-chip.is-static {
    cursor: default;
}

.properties-filter-chip.is-accent {
    background: rgba(79, 140, 255, 0.14);
    color: var(--accent-light);
    border-color: rgba(79, 140, 255, 0.26);
}

.properties-filter-chip.is-clear-all {
    background: rgba(239, 68, 68, 0.1);
    border-color: rgba(239, 68, 68, 0.2);
}

.properties-panels {
    display: grid;
    gap: 12px;
}

.properties-inline-panel {
    display: grid;
    gap: 14px;
    padding: 14px;
    border-radius: 16px;
    border: 1px solid var(--analysis-border);
    background: rgba(255, 255, 255, 0.04);
    box-shadow: var(--analysis-inset);
}

.properties-inline-panel-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}

.properties-inline-panel-header h4 {
    margin-top: 4px;
    font-size: 0.92rem;
    line-height: 1.35;
    color: var(--text-primary);
}

.properties-filter-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 10px;
}

.properties-filter-field {
    display: grid;
    gap: 6px;
    font-size: 0.72rem;
    color: var(--analysis-text-quiet);
}

.properties-panel-note {
    font-size: 0.72rem;
    line-height: 1.6;
    color: var(--analysis-text-quiet);
}

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

.properties-column-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 12px;
    border-radius: 14px;
    border: 1px solid var(--analysis-border);
    background: rgba(255, 255, 255, 0.035);
}

.properties-column-item.is-muted {
    opacity: 0.72;
}

.properties-column-toggle {
    display: flex;
    align-items: center;
    gap: 10px;
    flex: 1 1 auto;
    min-width: 0;
}

.properties-column-toggle input {
    width: 15px;
    height: 15px;
    accent-color: var(--accent);
}

.properties-column-order {
    width: 28px;
    height: 28px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: rgba(79, 140, 255, 0.12);
    color: var(--accent-light);
    font-size: 0.72rem;
    font-weight: 700;
    flex: 0 0 auto;
}

.properties-column-copy {
    display: grid;
    gap: 2px;
    min-width: 0;
}

.properties-column-copy strong {
    font-size: 0.78rem;
    color: var(--text-primary);
}

.properties-column-copy small {
    font-size: 0.68rem;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.all-properties-wrapper {
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.03), rgba(255, 255, 255, 0.015)),
        var(--analysis-surface);
    border: 1px solid var(--analysis-border);
    border-radius: 16px;
    overflow: hidden;
    max-height: 620px;
    overflow: auto;
    scrollbar-width: thin;
    scrollbar-color: var(--text-muted) transparent;
    box-shadow: var(--analysis-inset);
}

.all-properties-wrapper::-webkit-scrollbar {
    width: 5px;
}

.all-properties-wrapper::-webkit-scrollbar-thumb {
    background: var(--text-muted);
    border-radius: 3px;
}

.all-properties-wrapper table {
    width: max-content;
    min-width: 100%;
    border-collapse: collapse;
    font-size: 0.76rem;
}

.all-properties-wrapper th {
    padding: 10px 10px;
    text-align: left;
    font-weight: 600;
    color: var(--text-muted);
    text-transform: uppercase;
    font-size: 0.6rem;
    letter-spacing: 0.05em;
    border-bottom: 1px solid var(--analysis-border);
    background: var(--analysis-surface-strong);
    position: sticky;
    top: 0;
    z-index: 1;
    cursor: pointer;
    user-select: none;
    transition: var(--transition-fast);
    box-shadow: inset 0 -1px 0 var(--analysis-border);
}

.all-properties-wrapper th:hover {
    color: var(--accent-light);
}

.all-properties-wrapper th.active {
    color: var(--accent);
}

.all-properties-wrapper td {
    padding: 8px 10px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.04);
    color: var(--analysis-text-quiet);
    white-space: nowrap;
}

.all-properties-wrapper tbody tr:nth-child(even) td {
    background: rgba(255, 255, 255, 0.018);
}

.all-properties-wrapper tr.property-row.is-edited td {
    box-shadow: inset 0 1px 0 rgba(16, 185, 129, 0.14);
}

.analysis-section-header h3,
.analysis-section-header p,
.analysis-block-title,
.analysis-block-copy,
.analysis-digest-title,
.analysis-digest-summary,
.analysis-digest-chip,
.analysis-digest-list li,
.analysis-hero-copy h3,
.analysis-hero-copy p,
.overview-value,
.overview-note,
.insight-label,
.insight-value,
.intel-value,
.intel-note,
.calc-status-note,
.calc-output-value,
.chart-meta,
.chart-hint,
.report-hint,
.filter-summary,
.cleanup-input,
.btn-sm {
    overflow-wrap: break-word;
    word-break: normal;
}

.btn-sm {
    white-space: normal;
    line-height: 1.25;
    text-align: center;
}

.table-select-cell {
    width: 46px;
    text-align: center;
    position: sticky;
    left: 0;
    z-index: 1;
    background: var(--analysis-surface);
    box-shadow: 1px 0 0 rgba(255, 255, 255, 0.05);
}

.table-select-input {
    width: 14px;
    height: 14px;
    accent-color: var(--accent);
    cursor: pointer;
}

.all-properties-wrapper tr:hover td {
    background: rgba(79, 140, 255, 0.05);
    color: var(--text-primary);
}

.all-properties-wrapper tr:hover .table-select-cell {
    background: rgba(79, 140, 255, 0.12);
}

.all-properties-wrapper tr.property-row.is-editing td {
    background: rgba(14, 165, 233, 0.11);
    color: var(--text-primary);
}

.all-properties-wrapper tr.property-row.is-editing .table-select-cell {
    background: rgba(14, 165, 233, 0.18);
}

.all-properties-wrapper tr.property-row.is-selected td,
#detail-table tr.property-row.is-selected td {
    background: rgba(79, 140, 255, 0.12);
    color: var(--text-primary);
}

.all-properties-wrapper tr.property-row.is-selected .table-select-cell {
    background: rgba(79, 140, 255, 0.2);
}

.all-properties-wrapper tr.property-row {
    cursor: pointer;
}

.all-properties-wrapper th.table-action-header {
    cursor: default;
    color: var(--text-muted);
}

.all-properties-wrapper th.table-action-header:hover {
    color: var(--text-muted);
}

.all-properties-wrapper th.table-select-header {
    position: sticky;
    left: 0;
    z-index: 3;
    background: var(--analysis-surface-strong);
    box-shadow: 1px 0 0 rgba(255, 255, 255, 0.06);
}

.property-cell-strong strong,
.property-cell-date {
    color: var(--text-primary);
}

.property-table-editor {
    width: 100%;
    min-width: 120px;
    padding: 7px 9px;
    border-radius: 10px;
    border: 1px solid var(--analysis-border);
    background: var(--analysis-surface-strong);
    color: var(--text-primary);
    font: inherit;
    font-size: 0.74rem;
    box-shadow: var(--analysis-inset);
}

.property-table-editor:focus {
    outline: none;
    border-color: var(--analysis-border-strong);
    box-shadow: 0 0 0 1px var(--analysis-border-strong);
}

.property-row-edit-cell {
    min-width: 144px;
}

.property-row-edit-actions {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
}

.property-row-edit-status {
    font-size: 0.66rem;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.properties-empty-state {
    padding: 18px;
    color: var(--analysis-text-quiet);
    font-size: 0.82rem;
    line-height: 1.6;
}

.properties-pagination {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    margin-top: 10px;
}

.analysis-explorer-shell {
    display: grid;
    gap: 18px;
}

.analysis-explorer-shell>.selected-showcase {
    margin-bottom: 0;
}

.selected-showcase {
    display: grid;
    gap: 14px;
    margin-bottom: 16px;
    padding: 16px;
    border-radius: 22px;
    border: 1px solid var(--analysis-border);
    background:
        radial-gradient(circle at top left, rgba(96, 165, 250, 0.12), transparent 34%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.035), rgba(255, 255, 255, 0.015)),
        var(--analysis-surface-strong);
    box-shadow: var(--analysis-inset);
}

.selected-showcase-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 14px;
    flex-wrap: wrap;
}

.selected-showcase-kicker {
    display: inline-block;
    margin-bottom: 6px;
    font-size: 0.68rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--accent-light);
    font-weight: 700;
}

.selected-showcase-header h4 {
    font-size: 1rem;
    line-height: 1.2;
    margin: 0;
    color: var(--text-primary);
}

.selected-showcase-summary {
    margin-top: 6px;
    max-width: 740px;
    font-size: 0.78rem;
    line-height: 1.6;
    color: var(--analysis-text-quiet);
}

.selected-showcase-actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.selected-showcase-fullscreen-panel {
    display: none;
    position: absolute;
    top: 16px;
    right: 16px;
    z-index: 540;
    width: min(340px, calc(100% - 32px));
    max-height: calc(100% - 32px);
    overflow: auto;
    padding: 16px;
    border-radius: 22px;
    border: 1px solid rgba(147, 197, 253, 0.18);
    background:
        radial-gradient(circle at top right, rgba(56, 189, 248, 0.18), transparent 34%),
        linear-gradient(180deg, rgba(7, 14, 28, 0.92), rgba(8, 15, 29, 0.86)),
        rgba(7, 14, 28, 0.88);
    box-shadow: 0 24px 50px rgba(2, 6, 23, 0.38);
    backdrop-filter: blur(22px);
    -webkit-backdrop-filter: blur(22px);
    pointer-events: auto;
}

.selected-showcase-fullscreen-head {
    display: grid;
    gap: 5px;
}

.selected-showcase-fullscreen-kicker {
    font-size: 0.66rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: #93c5fd;
}

.selected-showcase-fullscreen-head strong {
    font-size: 0.96rem;
    line-height: 1.24;
    color: #f8fafc;
}

.selected-showcase-fullscreen-summary {
    font-size: 0.76rem;
    line-height: 1.55;
    color: rgba(226, 232, 240, 0.92);
}

.selected-showcase-fullscreen-date-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.selected-showcase-fullscreen-date-field {
    display: grid;
    gap: 7px;
    color: rgba(191, 219, 254, 0.9);
    font-size: 0.72rem;
}

.selected-showcase-fullscreen-date-field input {
    width: 100%;
    min-height: 42px;
    padding: 10px 11px;
    border-radius: 12px;
    border: 1px solid rgba(148, 163, 184, 0.2);
    background: rgba(15, 23, 42, 0.56);
    color: #f8fafc;
    font: inherit;
    color-scheme: dark;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
}

.selected-showcase-fullscreen-date-field input:focus {
    outline: none;
    border-color: rgba(96, 165, 250, 0.58);
    box-shadow: 0 0 0 2px rgba(79, 140, 255, 0.18);
}

.selected-showcase-fullscreen-presets {
    gap: 7px;
}

.selected-showcase-fullscreen-chip {
    background: rgba(15, 23, 42, 0.48);
    border-color: rgba(148, 163, 184, 0.18);
    color: #dbeafe;
}

.selected-showcase-fullscreen-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.selected-showcase-fullscreen-actions .btn-sm {
    min-height: 38px;
}

.selected-showcase-fullscreen-section {
    display: grid;
    gap: 10px;
    padding-top: 2px;
}

.selected-showcase-fullscreen-section-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
    flex-wrap: wrap;
}

.selected-showcase-fullscreen-section-kicker {
    display: block;
    margin-bottom: 4px;
    font-size: 0.63rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: rgba(191, 219, 254, 0.76);
}

.selected-showcase-fullscreen-section-head strong {
    font-size: 0.84rem;
    line-height: 1.35;
    color: #f8fafc;
}

.selected-showcase-fullscreen-section-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.selected-showcase-fullscreen-section-actions .btn-sm {
    min-height: 34px;
}

.selected-showcase-fullscreen-section-note {
    margin: 0;
    font-size: 0.72rem;
    line-height: 1.55;
    color: rgba(226, 232, 240, 0.84);
}

.selected-showcase-fullscreen-toggle-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-bottom: 0;
}

.selected-showcase-fullscreen-toggle-grid .toggle-chip {
    min-height: 54px;
    border-color: rgba(148, 163, 184, 0.16);
    background: rgba(15, 23, 42, 0.38);
    color: rgba(226, 232, 240, 0.92);
}

.selected-showcase-fullscreen-filter-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.selected-showcase-fullscreen-filter-card {
    background: rgba(15, 23, 42, 0.34);
    border-color: rgba(148, 163, 184, 0.14);
}

.selected-showcase-fullscreen-panel .cleanup-range-title {
    color: rgba(191, 219, 254, 0.72);
}

.selected-showcase-fullscreen-panel .cleanup-input,
.selected-showcase-fullscreen-panel .properties-filter-field {
    color: rgba(226, 232, 240, 0.86);
}

.selected-showcase-fullscreen-panel .cleanup-input input,
.selected-showcase-fullscreen-panel .properties-filter-field input {
    background: rgba(15, 23, 42, 0.56);
    border-color: rgba(148, 163, 184, 0.18);
    color: #f8fafc;
    box-shadow: none;
}

.selected-showcase-fullscreen-panel .cleanup-input input:focus,
.selected-showcase-fullscreen-panel .properties-filter-field input:focus {
    outline: none;
    border-color: rgba(96, 165, 250, 0.58);
    box-shadow: 0 0 0 2px rgba(79, 140, 255, 0.18);
}

.selected-showcase-fullscreen-stats {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.selected-showcase-fullscreen-stat {
    display: grid;
    gap: 4px;
    padding: 11px 12px;
    border-radius: 16px;
    border: 1px solid rgba(148, 163, 184, 0.14);
    background: rgba(15, 23, 42, 0.42);
}

.selected-showcase-fullscreen-stat-label {
    font-size: 0.63rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: rgba(191, 219, 254, 0.74);
}

.selected-showcase-fullscreen-stat strong {
    font-size: 0.92rem;
    line-height: 1.12;
    color: #f8fafc;
}

.selected-showcase-fullscreen-stat span:last-child {
    font-size: 0.7rem;
    line-height: 1.45;
    color: rgba(226, 232, 240, 0.88);
}

.selected-showcase-map-shell {
    position: relative;
    min-height: 320px;
    border-radius: 20px;
    overflow: hidden;
    border: 1px solid var(--analysis-border-strong);
    background:
        radial-gradient(circle at top left, rgba(96, 165, 250, 0.18), transparent 30%),
        linear-gradient(180deg, rgba(8, 15, 29, 0.68), rgba(8, 15, 29, 0.42));
    box-shadow: 0 16px 34px rgba(2, 6, 23, 0.22);
}

.selected-properties-map {
    width: 100%;
    height: 320px;
    background: #dbeafe;
}

.selected-showcase-map-overlay {
    position: absolute;
    top: 14px;
    left: 14px;
    right: 14px;
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
    pointer-events: none;
    z-index: 500;
}

.selected-showcase-note {
    max-width: min(520px, 100%);
    padding: 8px 12px;
    border-radius: 999px;
    background: rgba(8, 15, 29, 0.74);
    border: 1px solid rgba(255, 255, 255, 0.12);
    color: #f8fafc;
    font-size: 0.72rem;
    line-height: 1.45;
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
}

.selected-showcase:fullscreen,
.selected-showcase.is-fullscreen-fallback {
    margin: 0;
    padding: 18px;
    background:
        radial-gradient(circle at top right, rgba(147, 197, 253, 0.18), transparent 28%),
        linear-gradient(180deg, rgba(4, 10, 19, 0.98), rgba(5, 13, 23, 0.995));
    display: grid;
    align-content: start;
    gap: 14px;
    overflow: auto;
}

.selected-showcase:fullscreen::backdrop {
    background: rgba(2, 6, 23, 0.9);
    backdrop-filter: blur(10px);
}

.selected-showcase.is-fullscreen-fallback {
    position: fixed;
    inset: 18px;
    z-index: 2000;
    border-radius: 24px;
    box-shadow: 0 24px 80px rgba(2, 6, 23, 0.48);
}

body.showcase-fullscreen-lock {
    overflow: hidden;
}

.selected-showcase:fullscreen .selected-showcase-header,
.selected-showcase.is-fullscreen-fallback .selected-showcase-header {
    position: sticky;
    top: 0;
    z-index: 4;
    padding-bottom: 4px;
}

.selected-showcase:fullscreen .selected-showcase-map-shell,
.selected-showcase.is-fullscreen-fallback .selected-showcase-map-shell {
    min-height: min(82vh, 940px);
    height: min(82vh, 940px);
    border-radius: 26px;
}

.selected-showcase:fullscreen .selected-properties-map,
.selected-showcase.is-fullscreen-fallback .selected-properties-map {
    height: 100%;
}

.selected-showcase:fullscreen .selected-showcase-map-overlay,
.selected-showcase.is-fullscreen-fallback .selected-showcase-map-overlay {
    right: min(372px, calc(100% - 32px));
}

.selected-showcase:fullscreen .selected-showcase-note,
.selected-showcase.is-fullscreen-fallback .selected-showcase-note {
    max-width: 320px;
}

.selected-showcase:fullscreen .selected-showcase-fullscreen-panel,
.selected-showcase.is-fullscreen-fallback .selected-showcase-fullscreen-panel {
    display: grid;
    gap: 12px;
}

.selected-showcase:fullscreen .selected-properties-gallery,
.selected-showcase.is-fullscreen-fallback .selected-properties-gallery {
    display: none;
}

.selected-showcase:fullscreen .selected-showcase-summary,
.selected-showcase.is-fullscreen-fallback .selected-showcase-summary {
    max-width: none;
}

.selected-properties-gallery {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 12px;
}

.selected-showcase-empty {
    padding: 16px;
    border-radius: 16px;
    border: 1px dashed var(--analysis-border);
    background: rgba(255, 255, 255, 0.03);
    color: var(--analysis-text-quiet);
    font-size: 0.78rem;
    line-height: 1.55;
}

.selected-showcase-card {
    display: flex;
    flex-direction: column;
    min-height: 100%;
    border-radius: 18px;
    overflow: hidden;
    border: 1px solid var(--analysis-border);
    background: var(--analysis-surface);
    box-shadow: var(--analysis-inset);
    cursor: pointer;
    transition: transform var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast);
}

.selected-showcase-card:hover {
    transform: translateY(-2px);
    border-color: var(--analysis-border-strong);
    box-shadow: 0 18px 28px rgba(2, 6, 23, 0.2);
}

.selected-showcase-card.is-active {
    border-color: rgba(96, 165, 250, 0.58);
    box-shadow: 0 0 0 1px rgba(96, 165, 250, 0.32), 0 20px 32px rgba(2, 6, 23, 0.24);
}

.selected-showcase-card-media {
    position: relative;
    min-height: 182px;
    padding: 14px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    background-size: cover;
    background-position: center;
}

.selected-showcase-card-topline {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 10px;
}

.selected-showcase-card-order,
.selected-showcase-card-price {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 6px 10px;
    border-radius: 999px;
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
}

.selected-showcase-card-order {
    background: rgba(7, 14, 28, 0.54);
    border: 1px solid rgba(255, 255, 255, 0.14);
    color: #f8fafc;
    font-size: 0.72rem;
    font-weight: 700;
}

.selected-showcase-card-price {
    background: rgba(7, 14, 28, 0.82);
    border: 1px solid rgba(255, 255, 255, 0.18);
    color: #ffffff;
    font-size: 0.86rem;
    font-weight: 800;
    letter-spacing: -0.01em;
    text-shadow: 0 2px 14px rgba(2, 6, 23, 0.6);
}

.selected-showcase-card-copy {
    display: grid;
    gap: 4px;
}

.selected-showcase-card-title {
    font-size: 1rem;
    font-weight: 800;
    line-height: 1.24;
    color: #ffffff;
    text-shadow: 0 2px 18px rgba(2, 6, 23, 0.72);
}

.selected-showcase-card-subtitle {
    font-size: 0.76rem;
    color: rgba(241, 245, 249, 0.94);
    text-shadow: 0 1px 12px rgba(2, 6, 23, 0.68);
}

.selected-showcase-card-body {
    display: grid;
    gap: 12px;
    padding: 14px;
}

.selected-showcase-card-facts {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.selected-showcase-card-fact {
    padding: 6px 9px;
    border-radius: 999px;
    border: 1px solid var(--analysis-border);
    background: rgba(255, 255, 255, 0.04);
    color: var(--analysis-text-quiet);
    font-size: 0.72rem;
    line-height: 1.25;
}

.selected-showcase-card-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.selected-showcase-card-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 32px;
    padding: 6px 11px;
    border-radius: 999px;
    border: 1px solid var(--analysis-border);
    background: rgba(255, 255, 255, 0.06);
    color: var(--text-primary);
    font-size: 0.72rem;
    font-weight: 600;
    text-decoration: none;
    transition: var(--transition-fast);
}

.selected-showcase-card-link:hover {
    background: rgba(255, 255, 255, 0.12);
    border-color: var(--analysis-border-strong);
}

.selected-showcase-card-link.is-disabled {
    opacity: 0.52;
    pointer-events: none;
}

.selected-showcase-marker {
    background: transparent;
    border: none;
}

.selected-showcase-pin {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 6px 10px 6px 8px;
    border-radius: 999px 999px 999px 10px;
    border: 1px solid rgba(255, 255, 255, 0.22);
    background: rgba(7, 14, 28, 0.94);
    color: #ffffff;
    box-shadow: 0 14px 24px rgba(2, 6, 23, 0.28);
    transform-origin: center bottom;
    transition: transform var(--transition-fast), box-shadow var(--transition-fast), border-color var(--transition-fast);
}

.selected-showcase-pin.is-active {
    transform: translateY(-2px) scale(1.02);
    border-color: rgba(147, 197, 253, 0.68);
    box-shadow: 0 0 0 1px rgba(96, 165, 250, 0.24), 0 16px 26px rgba(2, 6, 23, 0.34);
}

.selected-showcase-pin-order {
    width: 18px;
    height: 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: linear-gradient(135deg, #f97316, #ef4444);
    color: #ffffff;
    font-size: 0.63rem;
    font-weight: 800;
    box-shadow: 0 4px 10px rgba(249, 115, 22, 0.32);
    flex: 0 0 auto;
}

.selected-showcase-pin-label {
    font-size: 0.74rem;
    font-weight: 800;
    letter-spacing: 0.01em;
    white-space: nowrap;
}

.map-price-marker {
    background: transparent;
    border: none;
}

.map-price-pin {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 72px;
    min-height: 30px;
    padding: 5px 10px;
    border-radius: 999px 999px 999px 10px;
    border: 1px solid rgba(255, 255, 255, 0.26);
    background: rgba(15, 23, 42, 0.92);
    color: #ffffff;
    font-size: 0.74rem;
    font-weight: 800;
    letter-spacing: 0.01em;
    box-shadow: 0 14px 26px rgba(2, 6, 23, 0.28);
    text-shadow: 0 1px 10px rgba(2, 6, 23, 0.55);
}

/* ===== Map Price Label Overlay ===== */
.map-price-marker-overlay {
    background: transparent;
    border: none;
    pointer-events: auto;
}

.map-price-pin-overlay {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    min-width: 62px;
    min-height: 26px;
    padding: 4px 9px 4px 7px;
    border-radius: 999px 999px 999px 8px;
    border: 1.5px solid rgba(255, 255, 255, 0.18);
    background: rgba(15, 23, 42, 0.92);
    color: #ffffff;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.01em;
    box-shadow: 0 8px 18px rgba(2, 6, 23, 0.32);
    text-shadow: 0 1px 8px rgba(2, 6, 23, 0.5);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    white-space: nowrap;
    transition: transform 0.18s ease, box-shadow 0.18s ease;
}

.map-price-pin-overlay:hover {
    transform: translateY(-2px) scale(1.04);
    box-shadow: 0 12px 24px rgba(2, 6, 23, 0.42);
}

.map-price-dot {
    display: inline-block;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    flex: 0 0 auto;
    box-shadow: 0 0 6px currentColor;
}

.map-price-year {
    opacity: 0.52;
    font-size: 0.62rem;
    font-weight: 600;
    letter-spacing: 0.04em;
}

#btn-map-prices.active {
    background: var(--accent-glow);
    border-color: var(--accent);
    color: var(--accent-light);
}

/* ===== Leaflet Layer Control Dark Styling ===== */
.leaflet-control-layers {
    background: var(--map-tool-panel-bg) !important;
    border: 1px solid var(--map-tool-panel-border) !important;
    border-radius: calc(var(--map-tool-radius) + 6px) !important;
    color: var(--text-primary) !important;
    box-shadow: var(--shadow-md) !important;
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
    padding: 8px !important;
}

.leaflet-control-layers-toggle {
    width: var(--map-tool-size) !important;
    height: var(--map-tool-size) !important;
}

.leaflet-control-layers label {
    color: var(--text-primary) !important;
    font-family: var(--font-sans) !important;
    font-size: 0.78rem !important;
    display: block;
    margin-top: 8px;
}

.leaflet-control-layers-separator {
    border-top-color: var(--border) !important;
    margin: 10px 0 !important;
}

.leaflet-top {
    margin-top: calc(var(--topbar-height) + 14px);
}

.leaflet-control-draw {
    box-shadow: none !important;
}

.leaflet-draw-toolbar a,
.leaflet-control-layers-toggle,
.leaflet-control-lasso-button {
    position: relative;
    width: var(--map-tool-size) !important;
    height: var(--map-tool-size) !important;
    margin: 0 !important;
    border: 1px solid var(--border) !important;
    border-radius: calc(var(--map-tool-radius) - 4px) !important;
    background: var(--map-tool-surface) !important;
    color: var(--text-primary) !important;
    background-image: none !important;
    display: flex !important;
    align-items: center;
    justify-content: center;
    line-height: 1 !important;
    text-decoration: none !important;
    text-indent: 0 !important;
    font-size: 0 !important;
    overflow: visible !important;
    transition:
        transform var(--transition-fast),
        border-color var(--transition-fast),
        background var(--transition-fast),
        box-shadow var(--transition-fast),
        color var(--transition-fast) !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.08),
        0 14px 24px rgba(2, 8, 19, 0.12) !important;
}

.leaflet-left .leaflet-draw-toolbar a::after,
.leaflet-left .leaflet-control-zoom a::after,
.leaflet-left .leaflet-control-layers-toggle::after,
.leaflet-left .leaflet-control-lasso-button::after {
    content: attr(data-tool-label);
    position: absolute;
    top: 50%;
    left: calc(100% + 12px);
    transform: translate3d(-6px, -50%, 0);
    background: var(--map-tool-label-bg);
    color: var(--text-primary);
    border: 1px solid var(--map-tool-panel-border);
    border-radius: 999px;
    padding: 7px 11px;
    font-family: var(--font-sans);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.01em;
    white-space: nowrap;
    opacity: 0;
    pointer-events: none;
    box-shadow: var(--shadow-sm);
    transition:
        opacity var(--transition-fast),
        transform var(--transition-fast);
    z-index: 1002;
}

.leaflet-draw-toolbar a::before,
.leaflet-control-layers-toggle::before,
.leaflet-control-lasso-button::before {
    content: "";
    width: 19px;
    height: 19px;
    background: currentColor;
    -webkit-mask: var(--tool-icon) center / contain no-repeat;
    mask: var(--tool-icon) center / contain no-repeat;
}

.leaflet-control-zoom-in::before,
.leaflet-control-zoom-out::before {
    display: block;
    font-size: 1.9rem;
    font-weight: 500;
    line-height: 1;
    color: currentColor;
}

.leaflet-control-zoom-in::before {
    content: "+";
    transform: translateY(-1px);
}

.leaflet-control-zoom-out::before {
    content: "−";
    transform: translateY(-2px);
}

.leaflet-control-zoom a:hover,
.leaflet-control-layers-toggle:hover,
.leaflet-control-lasso-button:hover,
.leaflet-draw-toolbar a:hover,
.leaflet-control-zoom a:focus-visible,
.leaflet-control-layers-toggle:focus-visible,
.leaflet-control-lasso-button:focus-visible,
.leaflet-draw-toolbar a:focus-visible {
    background: var(--map-tool-surface-hover) !important;
    border-color: var(--border-hover) !important;
    transform: translateY(-1px);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.12),
        0 18px 30px rgba(2, 8, 19, 0.16),
        0 0 0 6px var(--tool-accent, transparent) !important;
}

.leaflet-left .leaflet-control-zoom a:hover::after,
.leaflet-left .leaflet-control-layers-toggle:hover::after,
.leaflet-left .leaflet-control-lasso-button:hover::after,
.leaflet-left .leaflet-draw-toolbar a:hover::after,
.leaflet-left .leaflet-control-zoom a:focus-visible::after,
.leaflet-left .leaflet-control-layers-toggle:focus-visible::after,
.leaflet-left .leaflet-control-lasso-button:focus-visible::after,
.leaflet-left .leaflet-draw-toolbar a:focus-visible::after,
.leaflet-left .leaflet-draw-toolbar a.leaflet-draw-toolbar-button-enabled::after,
.leaflet-left .leaflet-control-lasso-button.active::after {
    opacity: 1;
    transform: translate3d(0, -50%, 0);
}

.leaflet-control-zoom-in,
.leaflet-control-zoom-out,
.leaflet-control-layers-toggle {
    --tool-accent: rgba(79, 140, 255, 0.18);
}

.leaflet-draw-draw-polygon {
    --tool-accent: rgba(79, 140, 255, 0.22);
    --tool-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath fill='none' stroke='black' stroke-width='1.8' stroke-linejoin='round' d='M10 2.75 16.75 7.5 14.15 16H5.85L3.25 7.5Z'/%3E%3C/svg%3E");
    color: #44c7a7 !important;
}

.leaflet-draw-draw-rectangle {
    --tool-accent: rgba(147, 197, 253, 0.2);
    --tool-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Crect x='4' y='4.5' width='12' height='11' rx='1.8' fill='none' stroke='black' stroke-width='1.8'/%3E%3C/svg%3E");
    color: #93c5fd !important;
}

.leaflet-draw-draw-circle {
    --tool-accent: rgba(16, 185, 129, 0.2);
    --tool-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Ccircle cx='10' cy='10' r='5.75' fill='none' stroke='black' stroke-width='1.8'/%3E%3C/svg%3E");
    color: #12ba84 !important;
}

.leaflet-draw-edit-edit {
    --tool-accent: rgba(245, 158, 11, 0.18);
    --tool-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round' d='M5 4.75h4.5M4.75 9.75v5.5h10.5v-4.5M9.75 10.25 14.85 5.15a1.6 1.6 0 0 1 2.25 2.25l-5.1 5.1-2.75.5Z'/%3E%3C/svg%3E");
    color: #d39a18 !important;
}

.leaflet-draw-edit-remove {
    --tool-accent: rgba(239, 68, 68, 0.18);
    --tool-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round' d='M5.75 6.5h8.5M8 6.5V5.25h4v1.25M7.25 8.25v5.5M10 8.25v5.5M12.75 8.25v5.5M6.5 6.5l.6 9h5.8l.6-9'/%3E%3C/svg%3E");
    color: #ef5f5f !important;
}

.leaflet-control-layers-toggle {
    --tool-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round' d='m10 3 6 3.25L10 9.5 4 6.25Zm6 6L10 12.25 4 9m12 4.25L10 16.5 4 13.25'/%3E%3C/svg%3E");
}

.leaflet-control-lasso-button {
    --tool-accent: rgba(17, 168, 168, 0.2);
    --tool-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round' d='M3.5 12.25c1.5-4.5 4-6.75 6.75-6.75 2.8 0 4.75 1.9 4.75 4.3 0 3.1-2.95 5.2-5.95 5.2-2.2 0-3.8-1.05-3.8-2.7 0-1.2.95-2.1 2.25-2.1 1.1 0 1.95.75 1.95 1.75 0 .8-.55 1.4-1.35 1.4'/%3E%3C/svg%3E");
    color: #12a9a9 !important;
}

.leaflet-draw-toolbar a.leaflet-draw-toolbar-button-enabled,
.leaflet-control-lasso-button.active {
    background: var(--accent-glow) !important;
    border-color: var(--accent) !important;
    color: var(--text-primary) !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.16),
        0 22px 34px rgba(2, 8, 19, 0.18),
        0 0 0 8px var(--tool-accent, var(--accent-glow)) !important;
}

.leaflet-control-layers-expanded {
    min-width: 190px;
}

.leaflet-control-layers-expanded .leaflet-control-layers-list {
    margin-top: 12px;
}

body[data-theme="light"] .leaflet-draw-draw-polygon {
    color: #1868d8 !important;
}

body[data-theme="light"] .leaflet-draw-draw-rectangle {
    color: #7c3aed !important;
}

body[data-theme="light"] .leaflet-draw-draw-circle {
    color: #0f9a6d !important;
}

body[data-theme="light"] .leaflet-draw-edit-edit {
    color: #b77900 !important;
}

body[data-theme="light"] .leaflet-draw-edit-remove {
    color: #dc3f3f !important;
}

body[data-theme="light"] .leaflet-control-lasso-button {
    color: #0f8b8d !important;
}

#map.lasso-mode,
#map.lasso-mode .leaflet-container,
#map.lasso-mode .leaflet-interactive {
    cursor: crosshair !important;
}

/* Zillow-like map chrome */
.leaflet-control-zoom.leaflet-bar,
.leaflet-draw-toolbar.leaflet-bar,
.leaflet-control-lasso.leaflet-bar,
.leaflet-control-layers {
    border: none !important;
    background: transparent !important;
    box-shadow: none !important;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
}

.leaflet-control-zoom.leaflet-bar,
.leaflet-draw-toolbar.leaflet-bar,
.leaflet-control-lasso.leaflet-bar {
    padding: 0 !important;
}

.leaflet-control-zoom a,
.leaflet-draw-toolbar a,
.leaflet-control-lasso-button,
.leaflet-control-layers-toggle {
    border: 1px solid rgba(15, 23, 42, 0.08) !important;
    background: rgba(255, 255, 255, 0.98) !important;
    box-shadow: 0 12px 24px rgba(15, 23, 42, 0.16) !important;
    color: #2f2f39 !important;
}

.leaflet-control-zoom a {
    width: 72px !important;
    height: 72px !important;
    border-radius: 999px !important;
}

.leaflet-control-zoom a+a {
    margin-top: 14px !important;
}

.leaflet-control-zoom-in::before,
.leaflet-control-zoom-out::before {
    font-size: 2.55rem;
    font-weight: 400;
    color: #2f2f39;
}

.leaflet-control-zoom-in::before {
    transform: translateY(-2px);
}

.leaflet-control-zoom-out::before {
    transform: translateY(-4px);
}

.leaflet-draw-toolbar a,
.leaflet-control-lasso-button {
    width: 54px !important;
    height: 54px !important;
    border-radius: 18px !important;
}

.leaflet-draw-draw-polygon,
.leaflet-draw-draw-rectangle,
.leaflet-draw-draw-circle,
.leaflet-draw-edit-edit,
.leaflet-control-lasso-button {
    color: #334155 !important;
}

.leaflet-draw-edit-remove {
    color: #dc4c3f !important;
}

body[data-theme="light"] .leaflet-draw-draw-polygon,
body[data-theme="light"] .leaflet-draw-draw-rectangle,
body[data-theme="light"] .leaflet-draw-draw-circle,
body[data-theme="light"] .leaflet-draw-edit-edit,
body[data-theme="light"] .leaflet-control-lasso-button {
    color: #334155 !important;
}

body[data-theme="light"] .leaflet-draw-edit-remove {
    color: #dc4c3f !important;
}

.leaflet-control-zoom a:hover,
.leaflet-control-layers-toggle:hover,
.leaflet-control-lasso-button:hover,
.leaflet-draw-toolbar a:hover,
.leaflet-control-zoom a:focus-visible,
.leaflet-control-layers-toggle:focus-visible,
.leaflet-control-lasso-button:focus-visible,
.leaflet-draw-toolbar a:focus-visible {
    border-color: rgba(0, 106, 255, 0.22) !important;
    background: rgba(255, 255, 255, 1) !important;
    box-shadow:
        0 16px 30px rgba(15, 23, 42, 0.18),
        0 0 0 5px rgba(0, 106, 255, 0.12) !important;
}

.leaflet-draw-toolbar a.leaflet-draw-toolbar-button-enabled,
.leaflet-control-lasso-button.active {
    border-color: rgba(0, 106, 255, 0.34) !important;
    background: rgba(0, 106, 255, 0.1) !important;
    color: #006aff !important;
    box-shadow:
        0 16px 30px rgba(15, 23, 42, 0.16),
        0 0 0 6px rgba(0, 106, 255, 0.12) !important;
}

.leaflet-bottom.leaflet-left .leaflet-control-layers-toggle {
    width: auto !important;
    min-width: 132px;
    height: 56px !important;
    padding: 0 18px !important;
    border-radius: 16px !important;
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
}

.leaflet-bottom.leaflet-left .leaflet-control-layers-toggle::before {
    content: "Map";
    width: auto;
    height: auto;
    background: none;
    -webkit-mask: none;
    mask: none;
    color: #2f2f39;
    font-family: var(--font-sans);
    font-size: 1.02rem;
    font-weight: 800;
    letter-spacing: 0.01em;
}

.leaflet-bottom.leaflet-left .leaflet-control-layers-toggle::after {
    content: "▾";
    position: static;
    transform: none;
    opacity: 1;
    background: none;
    border: 0;
    padding: 0;
    box-shadow: none;
    color: #4b5563;
    font-family: var(--font-sans);
    font-size: 1.2rem;
    font-weight: 700;
    line-height: 1;
}

.leaflet-bottom.leaflet-left .leaflet-control-layers-toggle:hover::after,
.leaflet-bottom.leaflet-left .leaflet-control-layers-toggle:focus-visible::after {
    transform: none;
    opacity: 1;
}

.leaflet-control-layers-expanded {
    min-width: 220px;
    padding: 14px;
    border-radius: 18px !important;
    border: 1px solid rgba(15, 23, 42, 0.08) !important;
    background: rgba(255, 255, 255, 0.98) !important;
    box-shadow: 0 24px 48px rgba(15, 23, 42, 0.18) !important;
}

.leaflet-control-layers-expanded .leaflet-control-layers-list {
    margin-top: 0;
}

.leaflet-control-layers label {
    color: #2f2f39;
    font-size: 0.84rem;
    font-weight: 700;
}

.leaflet-control-layers-separator {
    border-top-color: rgba(15, 23, 42, 0.08);
}

.leaflet-bottom.leaflet-left .leaflet-control-layers {
    margin-left: 18px;
    margin-bottom: 18px;
}

.leaflet-bottom.leaflet-right .leaflet-control-zoom {
    margin-right: 18px;
    margin-bottom: 18px;
}


/* ===== Chart Hints ===== */
.chart-hint {
    text-align: center;
    font-size: 0.65rem;
    color: var(--text-muted);
    margin-top: 6px;
    opacity: 0.7;
}


/* ===== Property Detail Panel ===== */
.detail-panel {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    height: min(var(--detail-panel-height, 50vh), 72vh);
    min-height: 240px;
    max-height: 72vh;
    background: var(--bg-glass);
    backdrop-filter: blur(24px);
    -webkit-backdrop-filter: blur(24px);
    border-top: 1px solid var(--border);
    z-index: 2000;
    display: flex;
    flex-direction: column;
    transform: translateY(0);
    transition: transform var(--transition-normal), opacity var(--transition-normal);
    box-shadow: 0 -8px 32px rgba(0, 0, 0, 0.4);
    padding-bottom: var(--safe-bottom);
}

.detail-panel-resizer {
    position: absolute;
    top: 0;
    left: 50%;
    width: 120px;
    height: 18px;
    transform: translateX(-50%) translateY(-50%);
    cursor: row-resize;
    z-index: 2;
}

.detail-panel-resizer::before {
    content: "";
    position: absolute;
    inset: 6px 28px;
    border-radius: 999px;
    background: rgba(148, 163, 184, 0.42);
    transition: background var(--transition-fast), box-shadow var(--transition-fast);
}

.detail-panel-resizer:hover::before {
    background: rgba(96, 165, 250, 0.74);
    box-shadow: 0 0 0 4px rgba(96, 165, 250, 0.12);
}

.detail-panel.hidden {
    transform: translateY(100%);
    opacity: 0;
    pointer-events: none;
}

.detail-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 20px;
    border-bottom: 1px solid var(--border);
    flex-shrink: 0;
}

.detail-title-group {
    display: flex;
    align-items: baseline;
    gap: 10px;
}

.detail-title-group h3 {
    font-size: 0.9rem;
    font-weight: 700;
}

.detail-subtitle {
    font-size: 0.75rem;
    color: var(--text-muted);
}

.detail-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.detail-page-status {
    font-size: 0.72rem;
    color: var(--text-muted);
}

.detail-page-size-control {
    margin-right: 4px;
}

.detail-body {
    flex: 1;
    overflow-y: auto;
    overflow-x: auto;
    scrollbar-width: thin;
    scrollbar-color: var(--text-muted) transparent;
}

.detail-body::-webkit-scrollbar {
    width: 6px;
}

.detail-body::-webkit-scrollbar-thumb {
    background: var(--text-muted);
    border-radius: 3px;
}

.scroll-hint-inline {
    position: relative;
}

.scroll-hint-inline::before,
.scroll-hint-inline::after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    width: 18px;
    pointer-events: none;
    opacity: 0;
    transition: opacity var(--transition-fast);
    z-index: 3;
}

.scroll-hint-inline::before {
    left: 0;
    background: linear-gradient(90deg, rgba(7, 18, 31, 0.82), rgba(7, 18, 31, 0));
}

.scroll-hint-inline::after {
    right: 0;
    background: linear-gradient(270deg, rgba(7, 18, 31, 0.82), rgba(7, 18, 31, 0));
}

body[data-theme="light"] .scroll-hint-inline::before {
    background: linear-gradient(90deg, rgba(248, 250, 252, 0.98), rgba(248, 250, 252, 0));
}

body[data-theme="light"] .scroll-hint-inline::after {
    background: linear-gradient(270deg, rgba(248, 250, 252, 0.98), rgba(248, 250, 252, 0));
}

.scroll-hint-inline.has-inline-overflow:not(.is-inline-start)::before,
.scroll-hint-inline.has-inline-overflow:not(.is-inline-end)::after {
    opacity: 1;
}

#detail-table {
    width: max-content;
    min-width: 100%;
    border-collapse: collapse;
    font-size: 0.78rem;
}

#detail-table th {
    padding: 10px 14px;
    text-align: left;
    font-weight: 600;
    color: var(--text-muted);
    text-transform: uppercase;
    font-size: 0.65rem;
    letter-spacing: 0.05em;
    border-bottom: 1px solid var(--border);
    background: rgba(255, 255, 255, 0.02);
    position: sticky;
    top: 0;
    z-index: 1;
}

#detail-table th.sortable {
    cursor: pointer;
    user-select: none;
    transition: var(--transition-fast);
}

#detail-table th.sortable:hover {
    color: var(--accent-light);
    background: rgba(255, 255, 255, 0.04);
}

#detail-table th.sortable.active {
    color: var(--accent);
}

#detail-table td {
    padding: 8px 14px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.03);
    color: var(--text-secondary);
    white-space: nowrap;
}

#detail-table tr:hover td {
    background: rgba(79, 140, 255, 0.05);
    color: var(--text-primary);
}

#detail-table tr.property-row {
    cursor: pointer;
}

.btn-locate {
    padding: 3px 8px;
    background: rgba(79, 140, 255, 0.15);
    border: 1px solid rgba(79, 140, 255, 0.3);
    border-radius: 4px;
    color: var(--accent-light);
    font-size: 0.7rem;
    cursor: pointer;
    transition: var(--transition-fast);
    font-family: inherit;
}

.btn-locate:hover {
    background: rgba(79, 140, 255, 0.3);
    border-color: var(--accent);
}

.btn-exclude {
    padding: 3px 8px;
    background: rgba(239, 68, 68, 0.12);
    border: 1px solid rgba(239, 68, 68, 0.25);
    border-radius: 4px;
    color: #fda4af;
    font-size: 0.7rem;
    cursor: pointer;
    transition: var(--transition-fast);
    font-family: inherit;
}

.btn-exclude:hover {
    background: rgba(239, 68, 68, 0.2);
    border-color: rgba(239, 68, 68, 0.45);
    color: #fecdd3;
}

.property-modal {
    position: fixed;
    inset: 0;
    z-index: 2200;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
}

.property-modal.hidden {
    opacity: 0;
    pointer-events: none;
}

.property-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(2, 6, 23, 0.72);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
}

.property-modal-card {
    position: relative;
    width: min(760px, calc(100vw - 32px));
    max-height: min(86vh, 860px);
    overflow: auto;
    background:
        radial-gradient(circle at top left, rgba(79, 140, 255, 0.16), transparent 30%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.035), rgba(255, 255, 255, 0)),
        var(--property-modal-surface);
    border: 1px solid var(--property-modal-border);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-lg);
}

.property-modal-header {
    position: sticky;
    top: 0;
    z-index: 1;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    padding: 18px 20px 14px;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.015)),
        var(--property-modal-surface-strong);
    border-bottom: 1px solid var(--property-modal-border);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
}

.property-modal-title-group h3 {
    font-size: 1rem;
    font-weight: 700;
    color: var(--text-primary);
}

.property-modal-subtitle {
    display: block;
    margin-top: 4px;
    font-size: 0.78rem;
    color: var(--text-muted);
}

.property-modal-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.property-modal-body {
    padding: 20px;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.012), rgba(255, 255, 255, 0)),
        transparent;
}

.toast-region {
    position: fixed;
    right: 20px;
    bottom: 20px;
    z-index: 2600;
    display: grid;
    gap: 10px;
    width: min(360px, calc(100vw - 28px));
}

.toast {
    padding: 14px 15px;
    border-radius: 18px;
    border: 1px solid var(--analysis-border);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.07), rgba(255, 255, 255, 0.025)),
        rgba(7, 18, 31, 0.92);
    box-shadow: var(--shadow-md);
    display: grid;
    gap: 6px;
    animation: float-in 0.22s ease;
    transition: opacity 0.18s ease, transform 0.18s ease;
}

.toast.is-exiting {
    opacity: 0;
    transform: translateY(10px);
}

.toast-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.toast-title-spacer {
    min-height: 1px;
}

.toast-title {
    font-size: 0.78rem;
    font-weight: 800;
    color: var(--text-primary);
}

.toast-close {
    width: 28px;
    height: 28px;
    border-radius: 999px;
    border: 1px solid transparent;
    background: rgba(255, 255, 255, 0.06);
    color: var(--text-secondary);
    font: inherit;
    line-height: 1;
    cursor: pointer;
    flex: 0 0 auto;
    transition: background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast), transform var(--transition-fast);
}

.toast-close:hover {
    background: rgba(255, 255, 255, 0.12);
    border-color: var(--analysis-border);
    color: var(--text-primary);
    transform: scale(1.04);
}

.toast-message {
    font-size: 0.74rem;
    line-height: 1.5;
    color: var(--text-secondary);
}

.toast[data-tone="success"] {
    border-color: rgba(16, 185, 129, 0.24);
}

.toast[data-tone="warning"] {
    border-color: rgba(245, 158, 11, 0.24);
}

.toast[data-tone="danger"] {
    border-color: rgba(239, 68, 68, 0.26);
}

body[data-theme="light"] .toast {
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(248, 250, 252, 0.92)),
        rgba(255, 255, 255, 0.96);
}

body[data-theme="light"] .toast-close {
    background: rgba(255, 255, 255, 0.92);
}

.app-dialog {
    position: fixed;
    inset: 0;
    z-index: 2550;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
}

.app-dialog.hidden {
    opacity: 0;
    pointer-events: none;
}

.app-dialog-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(2, 6, 23, 0.74);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}

.app-dialog-card {
    position: relative;
    width: min(440px, calc(100vw - 24px));
    border-radius: 22px;
    border: 1px solid var(--analysis-border-strong);
    background:
        radial-gradient(circle at top right, rgba(79, 140, 255, 0.14), transparent 34%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.055), rgba(255, 255, 255, 0.018)),
        rgba(8, 19, 31, 0.96);
    box-shadow: var(--shadow-lg);
    overflow: hidden;
}

.app-dialog-header,
.app-dialog-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 16px 18px;
}

.app-dialog-header {
    border-bottom: 1px solid var(--analysis-border);
}

.app-dialog-kicker {
    display: inline-flex;
    align-items: center;
    margin-bottom: 6px;
    font-size: 0.64rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--accent-light);
}

.app-dialog-header h3 {
    font-size: 1rem;
    line-height: 1.25;
    color: var(--text-primary);
}

.app-dialog-body {
    display: grid;
    gap: 14px;
    padding: 18px;
}

.app-dialog-message {
    font-size: 0.82rem;
    line-height: 1.6;
    color: var(--text-secondary);
}

.app-dialog-input-wrap {
    display: grid;
    gap: 8px;
    font-size: 0.72rem;
    font-weight: 700;
    color: var(--text-muted);
}

.app-dialog-input-wrap.hidden {
    display: none;
}

.app-dialog-input {
    width: 100%;
    border: 1px solid var(--analysis-border);
    border-radius: 14px;
    padding: 12px 13px;
    font: inherit;
    color: var(--text-primary);
    background: rgba(255, 255, 255, 0.05);
    box-shadow: var(--analysis-inset);
}

.app-dialog-actions {
    justify-content: flex-end;
    border-top: 1px solid var(--analysis-border);
}

body[data-theme="light"] .app-dialog-card {
    background:
        radial-gradient(circle at top right, rgba(79, 140, 255, 0.08), transparent 34%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.99), rgba(248, 250, 252, 0.94)),
        rgba(255, 255, 255, 0.98);
}

body.selection-loading .overview-card,
body.selection-loading .metric-card,
body.selection-loading .insight-stat,
body.selection-loading .intel-card,
body.selection-loading .comparison-score-card,
body.selection-loading .analysis-digest-card {
    position: relative;
    overflow: hidden;
}

body.selection-loading .overview-value,
body.selection-loading .overview-note,
body.selection-loading .metric-value,
body.selection-loading .insight-value,
body.selection-loading .intel-value,
body.selection-loading .comparison-score-value,
body.selection-loading .comparison-score-note,
body.selection-loading .analysis-digest-title,
body.selection-loading .analysis-digest-summary,
body.selection-loading .analysis-digest-chip,
body.selection-loading .analysis-digest-list li {
    color: transparent !important;
    background: linear-gradient(90deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.2), rgba(255, 255, 255, 0.08));
    background-size: 200% 100%;
    animation: shimmer 1.4s linear infinite;
    border-radius: 10px;
}

body.selection-loading .analysis-digest-list li::before {
    opacity: 0;
}

body.selection-loading .all-properties-wrapper,
body.selection-loading .detail-body,
body.selection-loading .comparison-table-wrap {
    position: relative;
}

body.selection-loading .all-properties-wrapper::after,
body.selection-loading .detail-body::after,
body.selection-loading .comparison-table-wrap::after {
    content: "Loading working rows...";
    position: absolute;
    inset: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 16px;
    border: 1px dashed var(--analysis-border);
    background:
        linear-gradient(90deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0.04));
    background-size: 200% 100%;
    animation: shimmer 1.4s linear infinite;
    color: var(--text-secondary);
    font-size: 0.8rem;
    font-weight: 700;
    pointer-events: none;
    z-index: 2;
}

.property-modal-nav {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.property-modal-nav.hidden {
    display: none;
}

.property-modal-nav-status {
    min-width: 74px;
    text-align: center;
    font-size: 0.72rem;
    color: var(--text-muted);
}

.property-modal-hero {
    padding: 18px;
    border: 1px solid var(--property-modal-border);
    border-radius: var(--radius-lg);
    background:
        linear-gradient(135deg, rgba(79, 140, 255, 0.18), rgba(15, 23, 42, 0.08)),
        var(--property-modal-surface-soft);
}

.property-modal-kicker {
    font-size: 0.66rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    font-weight: 700;
    color: var(--accent-light);
}

.property-modal-price {
    margin-top: 10px;
    font-size: clamp(1.5rem, 3vw, 2rem);
    font-weight: 800;
    line-height: 1;
    color: var(--text-primary);
}

.property-modal-summary {
    margin-top: 10px;
    color: var(--text-secondary);
    font-size: 0.86rem;
    line-height: 1.6;
}

.property-modal-chip-row {
    margin-top: 14px;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.property-modal-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 10px;
    border-radius: 999px;
    border: 1px solid var(--property-modal-border);
    background: rgba(255, 255, 255, 0.09);
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--text-secondary);
}

.property-modal-chip strong {
    color: var(--text-primary);
}

.property-modal-overview-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
    gap: 12px;
    margin-top: 16px;
}

.property-modal-deal-card,
.property-modal-preview {
    padding: 14px;
    border: 1px solid var(--property-modal-border);
    border-radius: var(--radius-lg);
    background: rgba(255, 255, 255, 0.07);
}

.property-modal-deal-kicker {
    font-size: 0.66rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    font-weight: 700;
    color: var(--text-muted);
}

.property-modal-deal-header {
    margin-top: 10px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}

.property-modal-deal-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 8px 12px;
    border-radius: 999px;
    font-size: 0.8rem;
    font-weight: 800;
    border: 1px solid transparent;
}

.property-modal-deal-pill.tone-great {
    color: #6ee7b7;
    background: rgba(16, 185, 129, 0.16);
    border-color: rgba(16, 185, 129, 0.34);
}

.property-modal-deal-pill.tone-good {
    color: #93c5fd;
    background: rgba(79, 140, 255, 0.16);
    border-color: rgba(79, 140, 255, 0.34);
}

.property-modal-deal-pill.tone-fair {
    color: #fcd34d;
    background: rgba(245, 158, 11, 0.16);
    border-color: rgba(245, 158, 11, 0.34);
}

.property-modal-deal-pill.tone-horrible {
    color: #fca5a5;
    background: rgba(239, 68, 68, 0.16);
    border-color: rgba(239, 68, 68, 0.34);
}

.property-modal-deal-pill.tone-neutral {
    color: var(--text-primary);
    background: rgba(148, 163, 184, 0.14);
    border-color: rgba(148, 163, 184, 0.24);
}

.property-modal-deal-window {
    font-size: 0.74rem;
    color: var(--text-muted);
}

.property-modal-deal-summary {
    margin: 12px 0 0;
    font-size: 0.84rem;
    line-height: 1.6;
    color: var(--text-primary);
}

.property-modal-deal-meta {
    margin-top: 12px;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.property-modal-deal-chip {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 6px 10px;
    border-radius: 999px;
    border: 1px solid var(--property-modal-border);
    background: rgba(255, 255, 255, 0.08);
    font-size: 0.72rem;
    color: var(--text-secondary);
}

.property-modal-deal-chip strong {
    color: var(--text-primary);
}

.property-modal-deal-note {
    margin-top: 12px;
    font-size: 0.74rem;
    line-height: 1.55;
    color: var(--text-secondary);
}

.property-modal-threshold-list {
    margin-top: 14px;
    display: grid;
    gap: 8px;
}

.property-modal-threshold-row {
    display: grid;
    grid-template-columns: minmax(110px, 132px) minmax(0, 1fr);
    gap: 10px;
    padding: 9px 10px;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(148, 163, 184, 0.12);
}

.property-modal-threshold-label {
    font-size: 0.73rem;
    font-weight: 700;
    color: var(--text-primary);
}

.property-modal-threshold-rule {
    font-size: 0.73rem;
    line-height: 1.5;
    color: var(--text-secondary);
}

.property-modal-preview-shell {
    position: relative;
    overflow: hidden;
    aspect-ratio: 16 / 10;
    border-radius: 14px;
    min-height: 260px;
    border: 1px solid rgba(148, 163, 184, 0.16);
    background: rgba(8, 15, 29, 0.3);
}

.property-modal-preview-frame,
.property-modal-preview-image {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 260px;
    border: 0;
}

.property-modal-preview-image {
    object-fit: cover;
}

.property-modal-preview-target {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 20px;
    height: 20px;
    transform: translate(-50%, -50%);
    border-radius: 999px;
    border: 3px solid rgba(239, 68, 68, 0.92);
    background: rgba(255, 255, 255, 0.92);
    box-shadow: 0 0 0 10px rgba(239, 68, 68, 0.12);
    pointer-events: none;
}

.property-modal-preview-caption {
    margin-top: 12px;
    display: grid;
    gap: 5px;
    font-size: 0.74rem;
    line-height: 1.5;
    color: var(--text-secondary);
}

.property-modal-preview-caption strong {
    color: var(--text-primary);
}

.property-modal-preview-actions {
    margin-top: 12px;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.property-modal-preview-empty {
    min-height: 260px;
    display: grid;
    place-items: center;
    border-radius: 14px;
    border: 1px dashed var(--property-modal-border);
    color: var(--text-muted);
    font-size: 0.8rem;
    text-align: center;
    padding: 16px;
}

.property-modal-stat-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin-top: 16px;
}

.property-modal-stat {
    padding: 12px 14px;
    border: 1px solid var(--property-modal-border);
    border-radius: var(--radius-md);
    background: rgba(255, 255, 255, 0.08);
}

.property-modal-stat-label {
    display: block;
    font-size: 0.66rem;
    font-weight: 600;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--text-muted);
}

.property-modal-stat-value {
    display: block;
    margin-top: 6px;
    font-size: 0.96rem;
    font-weight: 700;
    color: var(--text-primary);
}

.property-modal-section-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin-top: 16px;
}

.property-modal-section {
    padding: 14px;
    background: rgba(255, 255, 255, 0.07);
    border: 1px solid var(--property-modal-border);
    border-radius: var(--radius-lg);
}

.property-modal-section h4 {
    margin: 0 0 12px;
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--text-secondary);
}

.property-modal-grid {
    display: grid;
    gap: 12px;
}

.report-modal {
    position: fixed;
    inset: 0;
    z-index: 2250;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
}

.report-modal.hidden {
    opacity: 0;
    pointer-events: none;
}

.report-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(2, 6, 23, 0.68);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
}

.report-modal-card {
    position: relative;
    width: min(1200px, calc(100vw - 24px));
    max-height: 90vh;
    background: var(--bg-secondary);
    border: 1px solid var(--border);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-lg);
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.report-modal-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 18px 22px;
    border-bottom: 1px solid var(--border);
    background: var(--bg-card);
}

.report-modal-title-group h3 {
    font-size: 1rem;
    font-weight: 700;
    color: var(--text-primary);
}

.report-modal-subtitle {
    display: block;
    margin-top: 4px;
    font-size: 0.75rem;
    color: var(--text-muted);
}

.report-modal-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.report-modal-body {
    overflow: auto;
    padding: 18px;
    background:
        radial-gradient(circle at top left, rgba(79, 140, 255, 0.18), transparent 28%),
        radial-gradient(circle at top right, rgba(16, 185, 129, 0.12), transparent 24%),
        var(--bg-primary);
}

.report-preview {
    min-height: 180px;
}

.report-sheet {
    width: min(1000px, 100%);
    margin: 0 auto;
    background: rgba(15, 23, 42, 0.92);
    border: 1px solid var(--border);
    border-radius: 24px;
    box-shadow: var(--shadow-lg);
    overflow: hidden;
}

body[data-theme="light"] .report-sheet {
    background: rgba(255, 255, 255, 0.94);
}

.report-hero {
    padding: 28px 28px 24px;
    display: flex;
    justify-content: space-between;
    gap: 20px;
    flex-wrap: wrap;
    background:
        linear-gradient(135deg, rgba(79, 140, 255, 0.18), rgba(147, 197, 253, 0.12)),
        linear-gradient(180deg, rgba(255, 255, 255, 0.02), transparent);
    border-bottom: 1px solid var(--border);
}

.report-kicker {
    font-size: 0.72rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--accent-light);
    margin-bottom: 10px;
}

.report-hero h1 {
    font-size: clamp(1.6rem, 2.4vw, 2.3rem);
    line-height: 1.1;
    margin-bottom: 10px;
}

.report-meta {
    color: var(--text-secondary);
    font-size: 0.85rem;
    line-height: 1.5;
}

.report-badge {
    align-self: flex-start;
    padding: 10px 14px;
    border-radius: 999px;
    background: rgba(79, 140, 255, 0.14);
    color: var(--accent-light);
    font-size: 0.78rem;
    font-weight: 700;
    border: 1px solid rgba(79, 140, 255, 0.28);
}

.report-section {
    padding: 24px 28px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.04);
}

.report-section:last-child {
    border-bottom: none;
}

.report-section h2 {
    font-size: 0.95rem;
    font-weight: 700;
    margin-bottom: 14px;
    color: var(--text-primary);
}

.report-section-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
}

.report-section-lead {
    color: var(--text-muted);
    font-size: 0.78rem;
    line-height: 1.65;
    max-width: 760px;
}

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

.report-stat-card,
.report-panel {
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid var(--border);
    border-radius: 18px;
}

.report-stat-card {
    padding: 16px;
}

.report-stat-label {
    display: block;
    font-size: 0.72rem;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 8px;
}

.report-stat-value {
    display: block;
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--text-primary);
}

.report-stat-note {
    display: block;
    margin-top: 6px;
    font-size: 0.74rem;
    color: var(--text-secondary);
}

.report-two-column {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr);
    gap: 16px;
}

.report-panel {
    padding: 18px;
}

.report-panel p {
    color: var(--text-secondary);
    line-height: 1.6;
    font-size: 0.86rem;
}

.report-prose {
    display: grid;
    gap: 12px;
}

.report-prose p {
    margin: 0;
    color: var(--text-secondary);
    line-height: 1.72;
    font-size: 0.86rem;
}

.report-bullets {
    margin: 14px 0 0;
    padding-left: 18px;
    color: var(--text-secondary);
    display: grid;
    gap: 8px;
    font-size: 0.82rem;
}

.report-definition-list {
    display: grid;
    gap: 10px;
}

.report-definition-row {
    display: grid;
    grid-template-columns: 140px minmax(0, 1fr);
    gap: 12px;
    align-items: baseline;
    font-size: 0.8rem;
}

.report-definition-row span {
    color: var(--text-muted);
}

.report-definition-row strong {
    color: var(--text-primary);
    font-weight: 600;
    line-height: 1.45;
}

.report-signal-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}

.report-signal-card {
    border-radius: 18px;
    border: 1px solid var(--border);
    padding: 16px;
    display: grid;
    gap: 10px;
    box-shadow: var(--shadow-sm);
}

.report-signal-card-accent {
    background: linear-gradient(180deg, rgba(79, 140, 255, 0.16), rgba(255, 255, 255, 0.03));
}

.report-signal-card-success {
    background: linear-gradient(180deg, rgba(16, 185, 129, 0.16), rgba(255, 255, 255, 0.03));
}

.report-signal-card-warning {
    background: linear-gradient(180deg, rgba(245, 158, 11, 0.18), rgba(255, 255, 255, 0.03));
}

.report-signal-card-neutral {
    background: linear-gradient(180deg, rgba(148, 163, 184, 0.14), rgba(255, 255, 255, 0.03));
}

.report-signal-label {
    font-size: 0.68rem;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.report-signal-value {
    font-size: 1.35rem;
    line-height: 1.1;
    color: var(--text-primary);
}

.report-signal-note {
    margin: 0;
    font-size: 0.78rem;
    line-height: 1.6;
    color: var(--text-secondary);
}

.report-chart-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.report-chart-card {
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid var(--border);
    border-radius: 18px;
    padding: 14px;
}

.report-chart-card h3 {
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--text-secondary);
    margin-bottom: 10px;
}

.report-chart-card img {
    width: 100%;
    border-radius: 12px;
    display: block;
    background: rgba(255, 255, 255, 0.02);
}

.report-profile-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.report-profile-card {
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid var(--border);
    border-radius: 18px;
    padding: 16px;
    display: grid;
    gap: 12px;
}

.report-adjustment-grid {
    display: grid;
    gap: 16px;
}

.report-adjustment-card {
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid var(--border);
    border-radius: 18px;
    padding: 16px;
    display: grid;
    gap: 12px;
}

.report-adjustment-summary {
    margin: 0;
    color: var(--text-secondary);
    font-size: 0.82rem;
    line-height: 1.72;
}

.report-profile-heading h3 {
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--text-primary);
    margin-bottom: 4px;
}

.report-profile-heading span {
    font-size: 0.76rem;
    color: var(--text-muted);
}

.report-chip-row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.report-chip {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 6px 10px;
    border-radius: 999px;
    border: 1px solid rgba(79, 140, 255, 0.18);
    background: rgba(79, 140, 255, 0.08);
    color: var(--text-secondary);
    font-size: 0.73rem;
}

.report-chip strong {
    color: var(--accent-light);
    font-weight: 700;
}

.report-table-wrap {
    overflow: auto;
    border-radius: 14px;
    border: 1px solid var(--border);
}

.report-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.78rem;
}

.report-table th,
.report-table td {
    padding: 10px 12px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.05);
    text-align: left;
    vertical-align: top;
    white-space: normal;
}

.report-table th {
    font-size: 0.67rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--text-muted);
    background: rgba(255, 255, 255, 0.04);
    white-space: nowrap;
}

.report-table tbody tr:nth-child(even) td {
    background: rgba(255, 255, 255, 0.02);
}

.report-table td {
    color: var(--text-secondary);
}

.report-table td.report-strong {
    color: var(--text-primary);
    font-weight: 700;
}

.report-share-cell {
    display: grid;
    gap: 6px;
    min-width: 120px;
}

.report-inline-bar {
    height: 7px;
    border-radius: 999px;
    background: rgba(148, 163, 184, 0.18);
    overflow: hidden;
}

.report-inline-bar span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, rgba(79, 140, 255, 0.95), rgba(16, 185, 129, 0.75));
}

.report-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 86px;
    padding: 6px 10px;
    border-radius: 999px;
    font-size: 0.7rem;
    font-weight: 700;
    border: 1px solid transparent;
}

.report-pill-high {
    color: #6ee7b7;
    background: rgba(16, 185, 129, 0.14);
    border-color: rgba(16, 185, 129, 0.3);
}

.report-pill-medium {
    color: #93c5fd;
    background: rgba(79, 140, 255, 0.14);
    border-color: rgba(79, 140, 255, 0.3);
}

.report-pill-limited {
    color: #fcd34d;
    background: rgba(245, 158, 11, 0.14);
    border-color: rgba(245, 158, 11, 0.3);
}

.report-pill-low {
    color: #fca5a5;
    background: rgba(239, 68, 68, 0.14);
    border-color: rgba(239, 68, 68, 0.3);
}

.report-note,
.report-footer {
    font-size: 0.76rem;
    color: var(--text-muted);
    line-height: 1.55;
}

.report-footer {
    padding: 22px 28px 26px;
    background: rgba(255, 255, 255, 0.02);
}

.report-empty {
    padding: 14px;
    color: var(--text-muted);
    font-size: 0.8rem;
}

.property-modal-field {
    padding: 12px 14px;
    background: rgba(255, 255, 255, 0.09);
    border: 1px solid var(--property-modal-border);
    border-radius: var(--radius-md);
}

.property-modal-field-label {
    display: block;
    font-size: 0.66rem;
    font-weight: 600;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--text-muted);
    margin-bottom: 6px;
}

.property-modal-field-value {
    font-size: 0.85rem;
    line-height: 1.55;
    color: var(--text-primary);
    word-break: break-word;
}

.property-modal-links {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 18px;
}

.property-modal-history {
    margin-top: 16px;
    padding: 14px;
    background: rgba(255, 255, 255, 0.07);
    border: 1px solid var(--property-modal-border);
    border-radius: var(--radius-lg);
}

.property-modal-history-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}

.property-modal-history-header h4 {
    margin: 0;
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--text-secondary);
}

.property-modal-history-header span {
    font-size: 0.72rem;
    color: var(--text-muted);
}

.property-modal-history-empty {
    padding: 12px;
    border: 1px dashed var(--property-modal-border);
    border-radius: var(--radius-md);
    color: var(--text-muted);
    font-size: 0.82rem;
}

.property-modal-history-table-wrap {
    overflow: auto;
    border-radius: var(--radius-md);
    border: 1px solid var(--property-modal-border);
}

.property-modal-history-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.78rem;
}

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

.property-modal-history-table th {
    font-size: 0.66rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--text-muted);
    background: rgba(255, 255, 255, 0.09);
    white-space: nowrap;
}

.property-modal-history-table td {
    color: var(--text-secondary);
}

.property-modal-history-table tr.is-selected td {
    background: rgba(79, 140, 255, 0.18);
}

.property-modal-history-table td.history-strong {
    color: var(--text-primary);
    font-weight: 700;
}

.property-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 12px;
    border-radius: var(--radius-sm);
    border: 1px solid var(--border);
    background: rgba(255, 255, 255, 0.05);
    color: var(--text-primary);
    text-decoration: none;
    font-size: 0.78rem;
    font-weight: 600;
    transition: var(--transition-fast);
}

.property-link:hover {
    background: rgba(79, 140, 255, 0.1);
    border-color: var(--accent);
    color: var(--accent-light);
}

.property-focus-link {
    padding: 6px 10px;
    font-size: 0.72rem;
}

/* ===== Instructions Card ===== */
.instructions-card {
    position: absolute;
    bottom: calc(20px + var(--safe-bottom));
    left: calc(20px + var(--safe-left));
    max-width: min(560px, calc(100vw - 40px - var(--safe-left) - var(--safe-right)));
    z-index: 998;
    animation: float-in 0.6s ease;
}

.instructions-card-shell {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 18px 20px;
    border-radius: 24px;
    border: 1px solid rgba(79, 140, 255, 0.16);
    background: var(--surface-overlay);
    backdrop-filter: blur(22px) saturate(130%);
    -webkit-backdrop-filter: blur(22px) saturate(130%);
    box-shadow: var(--shadow-lg);
}

.instructions-card.hidden {
    display: none;
}

@keyframes float-in {
    from {
        opacity: 0;
        transform: translateY(20px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@media (prefers-reduced-motion: reduce) {

    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}

.instructions-icon {
    width: 52px;
    height: 52px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 18px;
    background: var(--chip-bg);
    border: 1px solid var(--chip-border);
    color: var(--text-primary);
    font-size: 1.45rem;
    flex-shrink: 0;
}

.instructions-copy {
    min-width: 0;
    display: grid;
    gap: 8px;
}

.instructions-points {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.instructions-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 2px;
}

.instructions-card p {
    font-size: 0.82rem;
    color: var(--text-secondary);
    line-height: 1.6;
}

.btn-sm {
    padding: 8px 16px;
    background: var(--accent-gradient);
    color: white;
    border: 1px solid rgba(79, 140, 255, 0.26);
    border-radius: 14px;
    font-size: 0.78rem;
    font-weight: 700;
    cursor: pointer;
    transition: transform var(--transition-fast), box-shadow var(--transition-fast), filter var(--transition-fast), background var(--transition-fast);
    font-family: inherit;
    white-space: normal;
    line-height: 1.25;
    text-align: center;
    overflow-wrap: break-word;
    word-break: normal;
    box-shadow: 0 12px 24px rgba(79, 140, 255, 0.16);
}

.btn-sm:hover {
    transform: translateY(-1px);
    filter: brightness(1.04);
    box-shadow: 0 16px 30px rgba(79, 140, 255, 0.18);
}

.btn-sm:disabled,
.btn-locate:disabled,
.btn-exclude:disabled {
    opacity: 0.45;
    cursor: not-allowed;
    box-shadow: none;
}

/* ===== Responsive ===== */
@media (max-width: 1100px) {
    .pill {
        min-width: 100px;
    }

    .toolbar-select span {
        display: none;
    }

    .toolbar-select {
        padding-inline: 12px;
    }
}

@media (max-width: 1280px) {
    #topbar {
        gap: 12px;
    }

    .toolbar-search-shortcut {
        display: none;
    }
}

@media (max-width: 768px) {
    :root {
        --sidebar-width: 100vw;
        --topbar-height: 64px;
        --map-tool-size: 44px;
        --map-tool-gap: 8px;
        --mobile-dock-reserved: 94px;
    }

    #sidebar {
        top: calc(var(--topbar-height) + 12px);
        left: calc(12px + var(--safe-left));
        right: calc(12px + var(--safe-right));
        bottom: calc(12px + var(--safe-bottom));
        width: auto;
        min-width: 0;
        max-width: none;
        border-radius: 26px;
        border: 1px solid var(--analysis-border-strong);
        overflow: hidden;
    }

    #sidebar.hidden {
        transform: translateY(14px) scale(0.985);
    }

    #topbar {
        min-height: 0;
        padding:
            calc(10px + var(--safe-top))
            calc(12px + var(--safe-right))
            10px
            calc(12px + var(--safe-left));
        display: grid;
        grid-template-columns: minmax(0, max-content) minmax(0, 1fr);
        grid-template-areas: "brand tools";
        align-items: center;
        gap: 8px;
    }

    #topbar::after {
        left: calc(12px + var(--safe-left));
        right: calc(12px + var(--safe-right));
    }

    .topbar-left {
        min-width: 0;
    }

    .topbar-right {
        display: flex;
        width: 100%;
        gap: 8px;
        flex-wrap: nowrap;
        justify-content: flex-start;
    }

    .topbar-center {
        display: none;
    }

    .logo {
        gap: 10px;
        min-width: 0;
    }

    .logo-mark {
        width: 36px;
        height: 36px;
        border-radius: 12px;
    }

    .logo-mark svg {
        width: 19px;
        height: 19px;
    }

    .logo-caption {
        display: none;
    }

    .logo h1 {
        font-size: 0.94rem;
        line-height: 1.06;
    }

    .dashboard-atmosphere {
        display: none;
    }

    .map-command-center {
        top: calc(var(--topbar-height) + 12px);
        left: calc(12px + var(--safe-left));
        right: calc(12px + var(--safe-right));
        width: auto;
        gap: 10px;
        max-height: calc(var(--app-height) - var(--topbar-height) - 20px - var(--safe-bottom));
    }

    .map-command-primary {
        padding: 16px;
        border-radius: 24px;
    }

    .map-command-primary h2 {
        font-size: clamp(1.05rem, 5vw, 1.26rem);
        max-width: none;
    }

    .map-command-summary {
        font-size: 0.82rem;
        max-width: none;
    }

    .map-command-actions {
        gap: 8px;
    }

    .map-command-btn {
        flex: 1 1 calc(50% - 4px);
        min-width: min(148px, 100%);
    }

    .leaflet-top {
        margin-top: calc(var(--topbar-height) + 12px);
        margin-left: var(--safe-left);
    }

    .leaflet-right {
        margin-right: var(--safe-right);
    }

    .leaflet-draw-toolbar a::after,
    .leaflet-control-zoom a::after,
    .leaflet-control-layers-toggle::after,
    .leaflet-control-lasso-button::after {
        display: none;
    }

    .function-terminal-head,
    .function-terminal-form,
    .function-terminal-board-header {
        grid-template-columns: 1fr;
        flex-direction: column;
        align-items: stretch;
    }

    .function-terminal-status {
        text-align: left;
    }

    .function-terminal-run {
        width: 100%;
    }

    .function-terminal-board-grid,
    .function-terminal-code-grid,
    .function-terminal-board-tape {
        grid-template-columns: 1fr;
    }

    .map-status-card {
        min-height: 0;
        padding: 12px 13px;
        border-radius: 18px;
    }

    .map-status-value {
        font-size: 0.9rem;
    }

    .map-status-note {
        font-size: 0.72rem;
    }

    .instructions-card {
        left: calc(16px + var(--safe-left));
        right: calc(16px + var(--safe-right));
        max-width: none;
        max-height: calc(var(--app-height) - var(--topbar-height) - 28px - var(--safe-bottom));
        overflow-y: auto;
    }

    .instructions-card-shell {
        align-items: flex-start;
        gap: 12px;
        padding: 14px;
    }

    .instructions-icon {
        width: 44px;
        height: 44px;
        border-radius: 14px;
    }

    .toolbar-select span {
        display: none;
    }

    .topbar-right {
        padding-bottom: 2px;
    }

    .toolbar-select {
        padding: 0 10px;
        justify-content: flex-start;
        flex: 0 0 118px;
    }

    .toolbar-search-trigger,
    .toolbar-select,
    .icon-btn {
        height: 40px;
    }

    .icon-btn {
        width: 40px;
        min-width: 40px;
    }

    .toolbar-search-trigger {
        min-width: 40px;
        padding: 0 12px;
        justify-content: flex-start;
        gap: 10px;
    }

    .toolbar-search-shortcut {
        display: none;
    }

    .toolbar-select select {
        min-width: 100px;
        width: auto;
    }

    .search-shell {
        left: calc(12px + var(--safe-left));
        right: calc(12px + var(--safe-right));
        width: auto;
        top: calc(var(--topbar-height) + 12px);
        bottom: calc(12px + var(--safe-bottom));
        padding: 12px;
        transform-origin: top center;
        max-height: none;
    }

    .search-shell-header {
        align-items: flex-start;
    }

    .search-shell-header h2 {
        font-size: 0.82rem;
    }

    .search-input {
        font-size: 0.88rem;
        padding: 12px;
    }

    .search-result-top {
        flex-direction: column;
    }

    .property-focus-card {
        left: calc(12px + var(--safe-left));
        right: calc(12px + var(--safe-right));
        bottom: calc(12px + var(--safe-bottom) + var(--mobile-dock-reserved));
        width: auto;
        max-height: min(40vh, calc(var(--app-height) - var(--topbar-height) - var(--mobile-dock-reserved) - 28px - var(--safe-bottom)));
    }

    .app-mobile-backdrop {
        position: absolute;
        inset:
            calc(var(--topbar-height) + 6px)
            calc(8px + var(--safe-right))
            calc(8px + var(--safe-bottom))
            calc(8px + var(--safe-left));
        z-index: 995;
        display: block;
        border-radius: 28px;
        background: rgba(2, 6, 23, 0.42);
        backdrop-filter: blur(8px);
        -webkit-backdrop-filter: blur(8px);
        opacity: 0;
        pointer-events: none;
        transition: opacity var(--transition-fast);
    }

    .app-mobile-backdrop.is-visible {
        opacity: 1;
        pointer-events: auto;
    }

    .mobile-dock {
        position: absolute;
        left: calc(12px + var(--safe-left));
        right: calc(12px + var(--safe-right));
        bottom: calc(12px + var(--safe-bottom));
        z-index: 997;
        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 8px;
        padding: 8px;
        border-radius: 22px;
        border: 1px solid var(--border);
        background:
            linear-gradient(180deg, rgba(10, 13, 19, 0.96), rgba(15, 18, 25, 0.94)),
            var(--surface-overlay);
        box-shadow: var(--shadow-md);
        backdrop-filter: blur(24px);
        -webkit-backdrop-filter: blur(24px);
        transition:
            transform var(--transition-fast),
            opacity var(--transition-fast),
            border-color var(--transition-fast);
    }

    .mobile-dock-btn {
        display: grid;
        justify-items: center;
        gap: 6px;
        min-height: 62px;
        padding: 10px 8px;
        border-radius: 16px;
        border: 1px solid transparent;
        background: rgba(255, 255, 255, 0.03);
        color: var(--text-secondary);
        font: inherit;
        font-size: 0.72rem;
        font-weight: 700;
        letter-spacing: -0.01em;
        cursor: pointer;
        transition:
            transform var(--transition-fast),
            background var(--transition-fast),
            border-color var(--transition-fast),
            color var(--transition-fast),
            opacity var(--transition-fast);
    }

    .mobile-dock-btn:disabled {
        opacity: 0.45;
        cursor: not-allowed;
    }

    .mobile-dock-icon {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 32px;
        height: 32px;
        border-radius: 12px;
        background: rgba(255, 255, 255, 0.05);
        color: inherit;
    }

    .mobile-dock-icon svg {
        width: 18px;
        height: 18px;
        fill: none;
        stroke: currentColor;
        stroke-width: 1.7;
        stroke-linecap: round;
        stroke-linejoin: round;
    }

    .mobile-dock-label {
        line-height: 1;
        color: inherit;
    }

    body.sidebar-open .mobile-dock,
    body.search-open .mobile-dock,
    body.detail-open .mobile-dock,
    body.modal-open .mobile-dock {
        opacity: 0;
        pointer-events: none;
        transform: translateY(18px);
    }

    .all-properties-wrapper {
        max-height: 360px;
    }

    .sidebar-reopen-btn {
        display: none;
    }

    .sidebar-reopen-label {
        font-size: 0.74rem;
    }

    .sidebar-resizer {
        display: none;
    }

    .sidebar-top-controls {
        padding: 10px;
    }

    .sidebar-sticky-controls {
        padding: 10px 10px 0;
    }

    .sidebar-scroll {
        padding-bottom: calc(20px + var(--safe-bottom));
    }

    .analysis-nav-shell-header,
    .analysis-stage-header {
        grid-template-columns: 1fr;
    }

    .analysis-stage-shell,
    .analysis-stage-meta {
        padding: 14px;
    }

    .workspace-switcher {
        gap: 6px;
    }

    .workspace-page-summary {
        max-width: 190px;
    }

    .workspace-page-summary-title,
    .sidebar-inline-value {
        max-width: 108px;
    }

    .sidebar-inline-panel,
    .workspace-page-summary-shell .sidebar-inline-panel,
    .sidebar-date-range-shell .sidebar-inline-panel,
    .analysis-quick-actions-shell .sidebar-inline-panel,
    .analysis-hero-details-panel {
        left: 0;
        right: 0;
        width: auto;
    }

    .analysis-hero-card,
    .analysis-workflow-shell,
    .calculator-card {
        padding: 14px;
    }

    .analysis-nav {
        gap: 6px;
        padding: 8px;
    }

    .analysis-nav-shell-header p {
        display: none;
    }

    .analysis-nav-button {
        min-height: 0;
        padding: 9px 11px;
    }

    .analysis-workflow-grid,
    .insight-grid {
        grid-template-columns: 1fr;
    }

    .analysis-badge-row {
        overflow-x: auto;
    }

    .analysis-quick-actions {
        grid-template-columns: 1fr;
    }

    .analysis-overview-lead,
    .analysis-overview-main-grid,
    .comparison-grid,
    .analysis-controls-grid,
    .analysis-trend-grid,
    .cleanup-grid,
    .cleanup-range-grid {
        grid-template-columns: 1fr;
    }

    .date-range-filter {
        grid-template-columns: 1fr;
    }

    .analysis-duo-grid,
    .overview-rail,
    .comparison-lane-grid,
    .comparison-guide-grid,
    .comparison-scoreboard,
    .comparison-insights,
    .saved-index-list,
    .raw-feed-scoreboard,
    .raw-data-updates,
    .calc-grid,
    .calc-output-grid,
    .intel-grid,
    .mini-chart-grid,
    .leaderboard-grid {
        grid-template-columns: 1fr;
    }

    .comparison-toolbar,
    .comparison-story {
        grid-template-columns: 1fr;
    }

    .analysis-section {
        padding: 16px;
        border-radius: 20px;
    }

    .analysis-section::before {
        left: 16px;
        right: 16px;
    }

    .analysis-section-header {
        flex-direction: column;
    }

    .analysis-section-toolbar {
        width: 100%;
        justify-content: flex-start;
    }

    .analysis-workflow-header,
    .analysis-workflow-foot,
    .instructions-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .analysis-workflow-action,
    .analysis-section-toggle {
        width: 100%;
        justify-content: center;
    }

    .newsletter-toolbar,
    .newsletter-grid {
        grid-template-columns: 1fr;
    }

    .newsletter-field-search {
        grid-column: auto;
    }

    .raw-feed-summary {
        grid-template-columns: 1fr;
    }

    .raw-feed-toolbar,
    .raw-feed-custom-range {
        grid-template-columns: 1fr;
    }

    .calc-primary-grid,
    .calc-secondary-grid,
    .calc-deal-grid {
        grid-template-columns: 1fr;
    }

    .calc-status-card {
        grid-column: auto;
    }

    .newsletter-actions {
        justify-content: stretch;
    }

    .raw-data-summary,
    .raw-data-toolbar {
        grid-template-columns: 1fr;
    }

    .saved-index-builder-grid {
        grid-template-columns: 1fr;
    }

    .comparison-workspace-toggle,
    .comparison-chip-row,
    .comparison-toggle-row {
        flex-direction: column;
        align-items: stretch;
    }

    .comparison-workspace-button,
    .comparison-chip {
        width: 100%;
    }

    .comparison-action-row,
    .saved-index-card-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .raw-feed-actions {
        justify-content: stretch;
    }

    .raw-data-actions {
        justify-content: stretch;
    }

    .chart-section-span {
        grid-column: auto;
    }

    .chart-section:fullscreen,
    .chart-section.is-fullscreen-fallback {
        padding: 18px 14px;
    }

    .chart-analytics-toolbar {
        align-items: stretch;
    }

    .chart-analytics-chip,
    .chart-analytics-select {
        width: 100%;
        justify-content: center;
    }

    .chart-header-fullscreen-controls {
        width: 100%;
        margin-left: 0;
        flex-wrap: wrap;
    }

    .chart-header-inline-chip-row,
    .chart-header-inline-date-row {
        flex-wrap: wrap;
    }

    .chart-fullscreen-controls,
    .chart-event-grid,
    .chart-fullscreen-date-row,
    .chart-fullscreen-lineup-grid,
    .benchmark-library-toolbar,
    .chart-fullscreen-library-toolbar,
    .chart-fullscreen-active-grid,
    .chart-fullscreen-library-grid {
        grid-template-columns: 1fr;
    }

    .chart-fullscreen-index-grid,
    .chart-fullscreen-index-summary {
        grid-template-columns: 1fr;
    }

    .chart-fullscreen-index-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .chart-fullscreen-library-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .chart-control-quick-grid {
        grid-template-columns: 1fr;
    }

    .chart-control-quick-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .custom-index-control-row {
        grid-template-columns: 1fr;
    }

    .chart-fullscreen-apply,
    .chart-drill-page-btn {
        width: 100%;
    }

    .chart-drill-footer {
        align-items: stretch;
    }

    .properties-header-actions {
        grid-template-columns: 1fr;
        margin-left: 0;
    }

    .properties-header-status,
    .properties-action-group {
        width: 100%;
    }

    .properties-export-strip,
    .properties-workspace,
    .properties-inline-panel {
        padding: 12px;
    }

    .properties-export-actions,
    .properties-table-toolbar,
    .properties-inline-panel-header,
    .properties-column-item {
        flex-direction: column;
        align-items: stretch;
    }

    .properties-export-actions>*,
    .properties-search-field,
    .properties-table-actions,
    .properties-column-item-actions {
        width: 100%;
    }

    .properties-export-actions>*,
    .properties-table-actions>*,
    .properties-column-item-actions>* {
        flex: 1 1 140px;
    }

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

    .selected-showcase {
        padding: 14px;
    }

    .selected-showcase-map-shell,
    .selected-properties-map {
        min-height: 260px;
        height: 260px;
    }

    .selected-showcase-map-overlay {
        flex-direction: column;
        align-items: flex-start;
    }

    .selected-showcase-note {
        border-radius: 16px;
    }

    .selected-showcase-fullscreen-date-row,
    .selected-showcase-fullscreen-filter-grid,
    .selected-showcase-fullscreen-toggle-grid,
    .selected-showcase-fullscreen-stats {
        grid-template-columns: 1fr;
    }

    .selected-showcase-fullscreen-section-actions,
    .selected-showcase-fullscreen-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .selected-showcase-fullscreen-section-actions>*,
    .selected-showcase-fullscreen-actions>* {
        width: 100%;
    }

    .selected-properties-gallery {
        grid-template-columns: 1fr;
    }

    .selected-showcase-card-media {
        min-height: 168px;
    }

    .detail-panel {
        left: 8px;
        right: 8px;
        bottom: 0;
        height: min(max(var(--detail-panel-height, 62vh), 62vh), calc(var(--app-height) - var(--topbar-height) - 16px - var(--safe-bottom)));
        min-height: min(320px, calc(var(--app-height) - var(--topbar-height) - 24px - var(--safe-bottom)));
        max-height: calc(var(--app-height) - var(--topbar-height) - 16px - var(--safe-bottom));
        border-radius: 22px 22px 0 0;
        border: 1px solid var(--border);
        border-bottom: none;
    }

    .detail-panel-resizer {
        width: 96px;
        height: 20px;
    }

    .detail-header {
        flex-direction: column;
        align-items: stretch;
        gap: 10px;
        padding: 14px;
    }

    .detail-title-group {
        flex-direction: column;
        align-items: flex-start;
        gap: 4px;
    }

    .detail-actions {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px;
    }

    .detail-page-status,
    #btn-show-markers {
        grid-column: 1 / -1;
    }

    .detail-page-size-control {
        margin-right: 0;
    }

    .detail-page-size-control,
    .detail-actions > button {
        width: 100%;
    }

    #btn-close-detail {
        justify-self: end;
        width: 40px;
    }

    .property-modal {
        padding: 12px;
        align-items: flex-end;
    }

    .property-modal-card {
        width: 100%;
        max-height: 82vh;
    }

    .property-modal-header {
        flex-direction: column;
        align-items: stretch;
    }

    .property-modal-actions {
        justify-content: space-between;
    }

    .property-modal-overview-grid {
        grid-template-columns: 1fr;
    }

    .property-modal-grid {
        grid-template-columns: 1fr;
    }

    .property-modal-stat-grid,
    .property-modal-section-grid {
        grid-template-columns: 1fr;
    }

    .property-modal-threshold-row {
        grid-template-columns: 1fr;
    }

    .report-modal {
        padding: 10px;
        align-items: flex-end;
    }

    .report-modal-card {
        max-height: 94vh;
    }

    .report-modal-header {
        flex-direction: column;
        align-items: stretch;
    }

    .report-modal-actions {
        justify-content: space-between;
    }

    .report-card-grid,
    .report-signal-grid,
    .report-two-column,
    .report-chart-grid,
    .report-profile-grid,
    .report-adjustment-grid {
        grid-template-columns: 1fr;
    }

    .report-section,
    .report-hero,
    .report-footer {
        padding-left: 18px;
        padding-right: 18px;
    }

    .report-definition-row {
        grid-template-columns: 1fr;
        gap: 4px;
    }

    .instructions-card {
        bottom: calc(16px + var(--safe-bottom) + var(--mobile-dock-reserved));
    }

    .leaflet-bottom {
        margin-bottom: calc(var(--mobile-dock-reserved) + var(--safe-bottom));
    }

}

@media (max-height: 780px) {
    .map-command-center {
        max-height: calc(var(--app-height) - var(--topbar-height) - 16px - var(--safe-bottom));
    }

    .search-shell {
        max-height: calc(var(--app-height) - var(--topbar-height) - 16px - var(--safe-bottom));
    }

    .property-focus-card {
        max-height: min(48vh, calc(var(--app-height) - var(--topbar-height) - 24px - var(--safe-bottom)));
    }
}

@media (max-width: 900px) and (max-height: 520px) {
    :root {
        --topbar-height: 64px;
    }

    #topbar {
        grid-template-columns: minmax(0, 1fr) auto;
        grid-template-areas: "brand tools";
        align-items: center;
        gap: 8px;
    }

    .topbar-center {
        display: none;
    }

    .topbar-right {
        display: flex;
        width: auto;
        flex-wrap: nowrap;
        overflow-x: auto;
        max-width: calc(100vw - 156px - var(--safe-left) - var(--safe-right));
        padding-bottom: 2px;
    }

    .toolbar-search-trigger {
        flex: 0 0 auto;
        min-width: 40px;
        padding: 0 10px;
    }

    .toolbar-graph-trigger {
        flex: 0 0 auto;
        min-width: 40px;
        padding: 0 10px;
    }

    .toolbar-search-label {
        display: none;
    }

    .toolbar-select {
        flex: 0 0 118px;
    }

    .map-command-center {
        top: calc(var(--topbar-height) + 10px);
        left: calc(12px + var(--safe-left));
        right: calc(12px + var(--safe-right));
        width: min(440px, calc(100vw - 24px - var(--safe-left) - var(--safe-right)));
        max-height: calc(var(--app-height) - var(--topbar-height) - 14px - var(--safe-bottom));
    }

    .map-command-primary {
        padding: 14px;
    }

    .map-command-secondary {
        gap: 8px;
    }
}

@media (max-width: 860px) {
    .analysis-quick-actions {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .fair-value-lab-header,
    .timeline-intelligence-header,
    .selected-showcase-intel-header {
        flex-direction: column;
    }

    .fair-value-lab-actions,
    .timeline-intelligence-actions {
        justify-content: flex-start;
    }

    .fair-value-scenarios {
        grid-template-columns: 1fr;
    }

    .selected-showcase:fullscreen .selected-showcase-map-overlay,
    .selected-showcase.is-fullscreen-fallback .selected-showcase-map-overlay {
        right: 16px;
    }

    .selected-showcase:fullscreen .selected-showcase-fullscreen-panel,
    .selected-showcase.is-fullscreen-fallback .selected-showcase-fullscreen-panel {
        top: auto;
        right: 16px;
        bottom: 16px;
        left: 16px;
        width: auto;
    }
}

@media (max-width: 560px) {
    .analysis-quick-actions {
        grid-template-columns: 1fr;
    }

    .fair-value-lab-inputs,
    .fair-value-lab-card-shell,
    .timeline-intelligence-grid,
    .selected-showcase-intel-grid {
        grid-template-columns: 1fr;
    }

    .saved-hub-block-header {
        flex-direction: column;
        align-items: stretch;
    }

    .saved-hub-card-header {
        flex-direction: column;
    }

    .map-command-secondary {
        grid-template-columns: 1fr;
    }

    .map-command-btn {
        flex-basis: 100%;
    }

    .instructions-card {
        left: calc(12px + var(--safe-left));
        right: calc(12px + var(--safe-right));
        bottom: calc(12px + var(--safe-bottom));
    }

    .instructions-card-shell {
        flex-direction: column;
    }

    .function-terminal-list-row {
        grid-template-columns: auto 1fr;
    }

    .function-terminal-list-metric {
        grid-column: 1 / -1;
        text-align: left;
    }
}

@media (max-width: 420px) {
    #btn-clear {
        display: none;
    }
}

@media (min-width: 769px) and (max-width: 1280px) {
    .map-command-center {
        left: 74px;
        width: min(430px, calc(100vw - var(--shell-sidebar-space) - 108px));
    }
}

/* ===== Leaflet popup override ===== */
.leaflet-popup-content-wrapper {
    background: var(--bg-secondary) !important;
    color: var(--text-primary) !important;
    border-radius: var(--radius-md) !important;
    border: 1px solid var(--border) !important;
    box-shadow: var(--shadow-md) !important;
}

.leaflet-popup-tip {
    background: var(--bg-secondary) !important;
}

.leaflet-popup-content {
    margin: 12px 16px !important;
    font-family: var(--font-sans) !important;
    font-size: 0.82rem !important;
    line-height: 1.5 !important;
}

.property-popup {
    min-width: 240px;
}

.property-popup-price {
    font-size: 0.96rem;
    font-weight: 700;
    color: var(--text-primary);
}

.property-popup-meta {
    margin-top: 2px;
    color: var(--text-secondary);
}

.property-popup-line {
    margin-top: 4px;
    color: var(--text-secondary);
}

.property-popup-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 10px;
}

.property-popup-button {
    padding: 0;
    border: none;
    background: transparent;
    color: var(--accent-light);
    font: inherit;
    font-size: 0.74rem;
    font-weight: 600;
    cursor: pointer;
}

.property-popup-button:hover {
    text-decoration: underline;
}

.property-popup-link {
    color: var(--accent-light);
    text-decoration: none;
    font-size: 0.74rem;
    font-weight: 600;
}

.property-popup-link:hover {
    text-decoration: underline;
}

.selected-property-pin {
    position: relative;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: linear-gradient(135deg, #ef4444, #f97316);
    border: 3px solid rgba(255, 255, 255, 0.92);
    box-shadow: 0 0 0 4px rgba(239, 68, 68, 0.18), 0 10px 22px rgba(15, 23, 42, 0.35);
}

.selected-property-marker {
    background: transparent;
    border: none;
}

.selected-property-pin::before {
    content: '';
    position: absolute;
    inset: 4px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.92);
}

.selected-property-pin::after {
    content: '';
    position: absolute;
    inset: -10px;
    border-radius: 999px;
    border: 2px solid rgba(239, 68, 68, 0.28);
    animation: propertyPulse 1.8s ease-out infinite;
}

@keyframes propertyPulse {
    0% {
        transform: scale(0.6);
        opacity: 0.95;
    }

    70% {
        transform: scale(1.35);
        opacity: 0;
    }

    100% {
        transform: scale(1.35);
        opacity: 0;
    }
}

/* ===== Operator Workspace ===== */
.operate-shell {
    display: grid;
    gap: 18px;
}

.operate-hero {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    padding: 20px 22px;
    border-radius: 22px;
    border: 1px solid rgba(79, 140, 255, 0.18);
    background:
        linear-gradient(135deg, rgba(15, 27, 43, 0.96) 0%, rgba(9, 20, 34, 0.92) 65%),
        radial-gradient(circle at top right, rgba(16, 185, 129, 0.14), transparent 32%);
    box-shadow: 0 22px 54px rgba(1, 10, 22, 0.22);
}

body[data-theme="light"] .operate-hero {
    background:
        linear-gradient(135deg, rgba(255, 255, 255, 0.98) 0%, rgba(241, 245, 249, 0.98) 65%),
        radial-gradient(circle at top right, rgba(16, 185, 129, 0.08), transparent 32%);
    border-color: rgba(79, 140, 255, 0.12);
    box-shadow: 0 20px 40px rgba(15, 23, 42, 0.08);
}

.operate-hero-copy {
    display: grid;
    gap: 8px;
    min-width: 0;
}

.operate-hero-kicker,
.operate-block-kicker,
.operate-mini-kicker,
.operate-stage-kicker {
    font-size: 0.7rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--accent-light);
}

.operate-hero-title {
    font-family: var(--font-display);
    font-size: 1.28rem;
    line-height: 1.18;
}

.operate-hero-note {
    max-width: 72ch;
    color: var(--text-secondary);
    line-height: 1.55;
}

.operate-hero-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 10px;
}

.operate-chip-row,
.operate-opportunity-meta,
.operate-watch-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.operate-chip {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    padding: 0 12px;
    border-radius: 999px;
    border: 1px solid rgba(79, 140, 255, 0.18);
    background: rgba(14, 25, 39, 0.74);
    color: var(--analysis-text-quiet);
    font-size: 0.82rem;
    line-height: 1;
}

body[data-theme="light"] .operate-chip {
    background: rgba(255, 255, 255, 0.92);
    border-color: rgba(79, 140, 255, 0.1);
}

.operate-chip-muted {
    color: var(--text-secondary);
    border-style: dashed;
}

.operate-kpi-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
    gap: 14px;
}

.operate-kpi-card,
.operate-block,
.operate-action-card,
.operate-opportunity-card,
.operate-stage-column,
.operate-watch-card {
    border-radius: 20px;
    border: 1px solid var(--analysis-border);
    background: linear-gradient(180deg, rgba(14, 26, 41, 0.94) 0%, rgba(9, 19, 31, 0.94) 100%);
    box-shadow: var(--shadow-sm);
}

body[data-theme="light"] .operate-kpi-card,
body[data-theme="light"] .operate-block,
body[data-theme="light"] .operate-action-card,
body[data-theme="light"] .operate-opportunity-card,
body[data-theme="light"] .operate-stage-column,
body[data-theme="light"] .operate-watch-card {
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(244, 247, 250, 0.98) 100%);
}

.operate-kpi-card {
    display: grid;
    gap: 8px;
    padding: 18px;
}

.operate-kpi-label {
    font-size: 0.76rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--text-muted);
}

.operate-kpi-value {
    font-family: var(--font-display);
    font-size: 1.4rem;
}

.operate-kpi-note {
    color: var(--text-secondary);
    line-height: 1.45;
}

.operate-grid {
    display: grid;
    grid-template-columns: 1.15fr 0.95fr;
    gap: 16px;
}

.operate-block {
    display: grid;
    gap: 14px;
    padding: 18px;
}

.operate-block-opportunities,
.operate-block-pipeline,
.operate-block-watchlist {
    grid-column: 1 / -1;
}

.operate-block-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.operate-block-header h4 {
    font-family: var(--font-display);
    font-size: 1rem;
}

.operate-brief-body {
    display: grid;
    gap: 16px;
}

.operate-brief-section {
    display: grid;
    gap: 10px;
}

.operate-brief-section p,
.operate-action-card p,
.operate-stage-head p {
    color: var(--text-secondary);
    line-height: 1.55;
}

.operate-brief-list {
    padding-left: 18px;
    display: grid;
    gap: 8px;
    color: var(--text-secondary);
}

.operate-actions-list {
    display: grid;
    gap: 12px;
}

.operate-action-card {
    display: grid;
    gap: 10px;
    padding: 16px;
}

.operate-action-card strong {
    font-size: 0.98rem;
}

.operate-action-foot {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.operate-opportunity-list,
.operate-watchlist-list {
    display: grid;
    gap: 12px;
}

.operate-opportunity-card {
    display: grid;
    gap: 12px;
    padding: 16px;
    border-color: rgba(79, 140, 255, 0.12);
}

.operate-opportunity-card[data-tone="prime"] {
    border-color: rgba(16, 185, 129, 0.34);
    box-shadow: 0 18px 36px rgba(16, 185, 129, 0.12);
}

.operate-opportunity-card[data-tone="active"] {
    border-color: rgba(79, 140, 255, 0.24);
}

.operate-opportunity-card[data-tone="watch"] {
    border-color: rgba(245, 158, 11, 0.26);
}

.operate-opportunity-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
}

.operate-opportunity-top h5 {
    font-size: 0.98rem;
    line-height: 1.35;
}

.operate-opportunity-kicker {
    display: inline-block;
    margin-bottom: 6px;
    color: var(--accent-light);
    font-size: 0.74rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.operate-score-shell {
    min-width: 68px;
    padding: 10px 12px;
    border-radius: 16px;
    text-align: center;
    background: rgba(79, 140, 255, 0.12);
}

.operate-score {
    display: block;
    font-family: var(--font-display);
    font-size: 1.2rem;
}

.operate-score-label {
    font-size: 0.72rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--text-muted);
}

.operate-opportunity-summary,
.operate-stage-card-note,
.operate-watch-note {
    color: var(--text-secondary);
    line-height: 1.5;
}

.operate-opportunity-actions,
.operate-stage-card-actions,
.operate-watch-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.operate-empty-state,
.operate-stage-empty {
    padding: 16px;
    border-radius: 16px;
    border: 1px dashed var(--analysis-border-strong);
    color: var(--text-secondary);
    line-height: 1.5;
    background: rgba(255, 255, 255, 0.02);
}

.operate-pipeline-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 12px;
    align-items: start;
}

.operate-stage-column {
    display: grid;
    gap: 12px;
    padding: 14px;
}

.operate-stage-head {
    display: grid;
    gap: 8px;
}

.operate-stage-head strong {
    display: block;
    font-family: var(--font-display);
    font-size: 1.15rem;
}

.operate-stage-list {
    display: grid;
    gap: 10px;
}

.operate-stage-card {
    display: grid;
    gap: 10px;
    padding: 14px;
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.05);
}

body[data-theme="light"] .operate-stage-card {
    background: rgba(15, 23, 42, 0.02);
    border-color: rgba(15, 23, 42, 0.06);
}

.operate-stage-card.is-in-scope,
.operate-watch-card.is-in-scope {
    border-color: rgba(16, 185, 129, 0.22);
}

.operate-stage-card-top,
.operate-watch-card {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.operate-watch-card {
    padding: 14px 16px;
    flex-wrap: wrap;
}

.operate-watch-copy {
    display: grid;
    gap: 4px;
    min-width: 0;
}

.operate-watch-title {
    font-weight: 700;
    line-height: 1.35;
}

.property-focus-actions .is-active {
    background: linear-gradient(135deg, rgba(37, 99, 235, 0.92) 0%, rgba(147, 197, 253, 0.88) 100%);
    border-color: transparent;
    color: #fff;
}

.fair-value-lab,
.timeline-intelligence-shell,
.selected-showcase-intel {
    display: grid;
    gap: 14px;
    margin-top: 18px;
    padding: 18px;
    border-radius: 22px;
    border: 1px solid var(--analysis-border);
    background:
        radial-gradient(circle at top right, rgba(56, 189, 248, 0.08), transparent 34%),
        linear-gradient(180deg, rgba(8, 18, 31, 0.46), rgba(8, 18, 31, 0.28));
    box-shadow: var(--analysis-inset);
}

body[data-theme="light"] .fair-value-lab,
body[data-theme="light"] .timeline-intelligence-shell,
body[data-theme="light"] .selected-showcase-intel {
    background:
        radial-gradient(circle at top right, rgba(56, 189, 248, 0.08), transparent 34%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(248, 250, 252, 0.92));
}

.fair-value-lab-header,
.timeline-intelligence-header,
.selected-showcase-intel-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
}

.fair-value-lab-kicker,
.timeline-intelligence-kicker,
.selected-showcase-intel-kicker {
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--accent-light);
}

.fair-value-lab-header h3,
.timeline-intelligence-header h3,
.selected-showcase-intel-header h5 {
    margin-top: 6px;
    font-family: var(--font-display);
    line-height: 1.14;
}

.fair-value-lab-note,
.timeline-intelligence-summary,
.selected-showcase-intel-summary,
.fair-value-evidence-summary,
.timeline-intelligence-card-note,
.selected-showcase-comp-metrics,
.selected-showcase-intel-card-note {
    color: var(--text-secondary);
    line-height: 1.55;
}

.fair-value-lab-actions,
.timeline-intelligence-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 8px;
}

.fair-value-lab-grid,
.fair-value-evidence-grid {
    display: grid;
    grid-template-columns: 0.92fr 1.08fr;
    gap: 14px;
}

.fair-value-lab-inputs,
.fair-value-lab-card-shell,
.timeline-intelligence-grid,
.selected-showcase-intel-grid,
.selected-showcase-comp-list {
    display: grid;
    gap: 12px;
}

.selected-showcase-comp-list {
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.fair-value-lab-inputs {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.fair-value-input {
    min-height: 100%;
}

.fair-value-lab-card-shell,
.timeline-intelligence-grid,
.selected-showcase-intel-grid {
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
}

.fair-value-lab-card,
.timeline-intelligence-card,
.selected-showcase-intel-card,
.fair-value-evidence-card,
.fair-value-scenario-card,
.selected-showcase-comp-card {
    display: grid;
    gap: 8px;
    padding: 15px;
    border-radius: 18px;
    border: 1px solid var(--analysis-border);
    background: rgba(15, 23, 42, 0.34);
}

body[data-theme="light"] .fair-value-lab-card,
body[data-theme="light"] .timeline-intelligence-card,
body[data-theme="light"] .selected-showcase-intel-card,
body[data-theme="light"] .fair-value-evidence-card,
body[data-theme="light"] .fair-value-scenario-card,
body[data-theme="light"] .selected-showcase-comp-card {
    background: rgba(15, 23, 42, 0.02);
}

.fair-value-lab-card.accent {
    border-color: rgba(16, 185, 129, 0.26);
    box-shadow: 0 16px 30px rgba(16, 185, 129, 0.08);
}

.fair-value-lab-card-label,
.timeline-intelligence-card-label,
.selected-showcase-intel-card-label,
.fair-value-evidence-kicker,
.selected-showcase-comp-rank {
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--text-muted);
}

.fair-value-lab-card-value,
.timeline-intelligence-card-value,
.selected-showcase-intel-card-value {
    font-family: var(--font-display);
    font-size: 1.16rem;
    line-height: 1.06;
}

.fair-value-lab-card-note,
.selected-showcase-intel-card-note {
    font-size: 0.76rem;
    line-height: 1.5;
    color: var(--text-secondary);
}

.fair-value-support,
.fair-value-brief-metrics {
    margin-top: 2px;
}

.fair-value-scenarios {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.fair-value-scenario-card.is-active {
    border-color: rgba(56, 189, 248, 0.28);
    box-shadow: 0 16px 30px rgba(56, 189, 248, 0.08);
}

.fair-value-scenario-label,
.selected-showcase-intel-pill,
.timeline-intelligence-card-layers {
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.fair-value-scenario-value {
    font-family: var(--font-display);
    font-size: 1.02rem;
}

.fair-value-scenario-ceiling {
    color: var(--accent-light);
    font-size: 0.76rem;
}

.fair-value-evidence-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
}

.fair-value-brief-metrics {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.fair-value-brief-metric {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 30px;
    padding: 0 10px;
    border-radius: 999px;
    border: 1px solid rgba(96, 165, 250, 0.16);
    background: rgba(15, 23, 42, 0.32);
    color: var(--analysis-text-quiet);
    font-size: 0.76rem;
}

body[data-theme="light"] .fair-value-brief-metric {
    background: rgba(255, 255, 255, 0.84);
}

.fair-value-comp-table-shell {
    overflow: auto;
    border-radius: 16px;
    border: 1px solid var(--analysis-border);
}

.fair-value-comp-table th,
.fair-value-comp-table td {
    white-space: nowrap;
}

.fair-value-empty,
.selected-showcase-intel-empty {
    padding: 14px;
    border-radius: 16px;
    border: 1px dashed var(--analysis-border-strong);
    color: var(--text-secondary);
    background: rgba(255, 255, 255, 0.02);
}

.timeline-intelligence-card[data-tone="up"] {
    border-color: rgba(16, 185, 129, 0.24);
}

.timeline-intelligence-card[data-tone="down"] {
    border-color: rgba(239, 68, 68, 0.22);
}

.timeline-intelligence-card-top,
.selected-showcase-comp-card-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
}

.timeline-intelligence-card-metrics,
.selected-showcase-comp-metrics {
    display: grid;
    gap: 6px;
}

.timeline-intelligence-card-metrics span,
.selected-showcase-comp-metrics span {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    font-size: 0.77rem;
}

.timeline-intelligence-card-metrics strong,
.selected-showcase-comp-metrics strong {
    color: var(--text-muted);
    font-size: 0.68rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.selected-showcase-intel-pill {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    padding: 0 11px;
    border-radius: 999px;
    border: 1px solid rgba(148, 163, 184, 0.16);
    background: rgba(15, 23, 42, 0.34);
    color: var(--text-secondary);
}

.selected-showcase-intel-pill.tone-good {
    color: #34d399;
    border-color: rgba(52, 211, 153, 0.24);
}

.selected-showcase-intel-pill.tone-accent {
    color: #60a5fa;
    border-color: rgba(96, 165, 250, 0.24);
}

.selected-showcase-intel-pill.tone-warning {
    color: #f59e0b;
    border-color: rgba(245, 158, 11, 0.24);
}

.selected-showcase-comp-fit {
    color: var(--accent-light);
    font-size: 0.74rem;
    font-weight: 700;
}

.selected-showcase-comp-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.map-comparable-marker {
    background: transparent;
    border: none;
}

.map-comparable-pin {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 30px;
    padding: 0 10px;
    border-radius: 999px;
    border: 1px solid var(--comp-color);
    background: rgba(15, 23, 42, 0.94);
    box-shadow: 0 14px 26px rgba(15, 23, 42, 0.22);
    color: #f8fafc;
    font-size: 0.72rem;
    font-weight: 700;
}

.map-comparable-pin-order {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    border-radius: 999px;
    background: var(--comp-color);
    color: #0f172a;
    font-size: 0.66rem;
    font-weight: 800;
}

.map-comparable-pin-value {
    white-space: nowrap;
}

@media (max-width: 1320px) {
    .operate-grid {
        grid-template-columns: 1fr;
    }

    .operate-pipeline-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .fair-value-lab-grid,
    .fair-value-evidence-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 900px) {
    .map-trace-clear {
        top: calc(var(--topbar-height) + 12px);
        left: calc(12px + var(--safe-left));
        right: calc(12px + var(--safe-right));
        min-width: 0;
        min-height: 64px;
        padding: 0 18px 0 22px;
        transform: none;
    }

    .map-trace-clear-label {
        font-size: 1rem;
    }

    .leaflet-control-zoom a {
        width: 68px !important;
        height: 68px !important;
    }

    .leaflet-bottom.leaflet-left .leaflet-control-layers-toggle {
        min-width: 116px;
        height: 54px !important;
    }

    .operate-hero {
        grid-template-columns: 1fr;
        display: grid;
    }

    .operate-hero-actions {
        justify-content: flex-start;
    }

    .operate-pipeline-grid {
        grid-template-columns: 1fr;
    }
}

/* ===== shadcn/ui Adaptation Layer ===== */
body.ui-shadcn {
    --shad-surface: rgba(16, 21, 30, 0.92);
    --shad-surface-elevated: rgba(10, 14, 21, 0.96);
    --shad-surface-muted: rgba(255, 255, 255, 0.045);
    --shad-border: rgba(148, 163, 184, 0.18);
    --shad-border-strong: rgba(148, 163, 184, 0.28);
    --shad-shadow: 0 18px 48px rgba(2, 6, 23, 0.28);
    --shad-shadow-lg: 0 32px 80px rgba(2, 6, 23, 0.34);
    --shad-radius: 16px;
    --shad-radius-lg: 22px;
    --shad-pill-radius: 999px;
}

body.ui-shadcn[data-theme="light"] {
    --shad-surface: rgba(255, 255, 255, 0.99);
    --shad-surface-elevated: rgba(255, 255, 255, 1);
    --shad-surface-muted: rgba(247, 249, 252, 0.98);
    --shad-border: rgba(15, 23, 42, 0.08);
    --shad-border-strong: rgba(15, 23, 42, 0.12);
    --shad-shadow: 0 10px 28px rgba(15, 23, 42, 0.08);
    --shad-shadow-lg: 0 20px 48px rgba(15, 23, 42, 0.1);
}

body.ui-shadcn :is(.shad-card, .ui-panel, .analysis-section, .analysis-block, .analysis-digest-card, .overview-card, .metric-card, .operate-block, .operate-kpi-card, .saved-hub-block, .saved-hub-summary-card, .properties-inline-panel, .properties-export-strip, .properties-table-toolbar, .calc-status-card, .calc-deal-shell, .calculator-card, .insight-card, .property-focus-card, .instructions-card-shell, #detail-panel, .property-modal-card, .report-modal-card, .app-dialog-card, .selected-showcase-shell, .timeline-intelligence-card) {
    border-radius: var(--shad-radius);
    border: 1px solid var(--shad-border);
    background: var(--shad-surface);
    box-shadow: var(--shad-shadow);
}

body.ui-shadcn :is(.shad-input-shell, .ui-field, .command-input-shell, .function-terminal-input-shell, .toolbar-select, .comparison-field, .date-range-input, .properties-filter-field, .cleanup-input) {
    border-radius: 14px;
    border: 1px solid var(--shad-border);
    background: var(--shad-surface-elevated);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.75);
}

body.ui-shadcn :is(.shad-tabs-list, .workspace-page-tabs, .comparison-benchmark-tablist, .comparison-index-tablist, .property-modal-tabs) {
    border-radius: 18px;
    border: 1px solid var(--shad-border);
    background: var(--shad-surface-muted);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.82);
}

body.ui-shadcn :is(.shad-tabs-trigger, .workspace-page-tab, .comparison-benchmark-tab, .comparison-index-tab, .property-modal-tab) {
    border-radius: 14px;
    border: 1px solid transparent;
    background: transparent;
    color: var(--text-secondary);
    box-shadow: none;
}

body.ui-shadcn :is(.shad-badge, .ui-chip, .map-command-chip, .instructions-chip, .search-badge, .comparison-index-meta-pill, .search-result-kind, .analysis-section-status, .sidebar-kicker, .workspace-page-kicker, .comparison-chip, .operate-chip, .saved-index-tag, .comparison-index-badge, .map-command-theme, .function-terminal-chip, .function-terminal-board-meta) {
    border-radius: 999px;
    border: 1px solid var(--shad-border);
    background: var(--shad-surface-muted);
    color: var(--text-secondary);
    box-shadow: none;
}

body.ui-shadcn .ui-kbd,
body.ui-shadcn .toolbar-search-shortcut,
body.ui-shadcn .search-input-kbd {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 28px;
    min-height: 24px;
    padding: 0 8px;
    border-radius: 8px;
    border: 1px solid var(--shad-border);
    background: var(--shad-surface-elevated);
    color: var(--text-muted);
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.01em;
    box-shadow: inset 0 -1px 0 rgba(148, 163, 184, 0.12);
}

body.ui-shadcn #topbar {
    background: rgba(8, 11, 18, 0.78);
    border-bottom: 1px solid var(--shad-border);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    box-shadow: 0 1px 0 rgba(255, 255, 255, 0.03);
}

body.ui-shadcn[data-theme="light"] #topbar {
    background: rgba(255, 255, 255, 0.96);
    box-shadow: 0 1px 0 rgba(15, 23, 42, 0.06), 0 10px 28px rgba(15, 23, 42, 0.06);
}

body.ui-shadcn[data-theme="light"] #topbar::after {
    background: linear-gradient(90deg, transparent, rgba(15, 23, 42, 0.08), transparent);
}

body.ui-shadcn :is(.logo h1, .sidebar-header h2, .analysis-section-header h3, .analysis-block-title, .analysis-digest-title, .comparison-story-title, .detail-title-group h3, .property-modal-title-group h3, .report-modal-title-group h3, .overview-value, .comparison-score-value, .comparison-insight-value, .chart-analytics-title, .map-command-primary h2, .function-terminal-board-title, .map-status-value) {
    font-family: var(--font-sans);
    letter-spacing: -0.03em;
}

body.ui-shadcn .logo-mark {
    border-color: transparent;
    background: linear-gradient(135deg, #1677ff 0%, #006aff 100%);
    box-shadow: 0 12px 24px rgba(0, 106, 255, 0.22);
}

body.ui-shadcn .logo-mark svg {
    color: #ffffff;
}

body.ui-shadcn .stats-pills {
    gap: 10px;
}

body.ui-shadcn .pill {
    min-width: 126px;
    padding: 10px 14px 11px;
    border-radius: 14px;
    border: 1px solid var(--shad-border);
    background: var(--shad-surface);
    box-shadow: var(--shad-shadow);
}

body.ui-shadcn .pill:hover {
    border-color: var(--shad-border-strong);
    background: var(--shad-surface-elevated);
    transform: translateY(-1px);
}

body.ui-shadcn .pill-label {
    font-size: 0.64rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--text-muted);
}

body.ui-shadcn .pill-value {
    margin-top: 6px;
    font-size: 1rem;
    letter-spacing: -0.03em;
}

body.ui-shadcn :is(.btn-sm, .toolbar-search-trigger, .icon-btn, .icon-btn-sm, .analysis-quick-action, .workspace-page-tab, .year-chip, .btn-filter, .search-result-locate, .map-command-visibility-btn, .properties-toolbar-toggle, .btn-exclude, .btn-locate) {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 38px;
    padding: 0 14px;
    border-radius: 12px;
    border: 1px solid var(--shad-border);
    background: var(--shad-surface-elevated);
    color: var(--text-primary);
    box-shadow: var(--shad-shadow);
    transition:
        border-color var(--transition-fast),
        background var(--transition-fast),
        transform var(--transition-fast),
        box-shadow var(--transition-fast);
}

body.ui-shadcn :is(.btn-sm, .toolbar-search-trigger, .icon-btn, .icon-btn-sm, .analysis-quick-action, .workspace-page-tab, .year-chip, .btn-filter, .search-result-locate, .map-command-visibility-btn, .properties-toolbar-toggle, .btn-exclude, .btn-locate):hover {
    border-color: var(--shad-border-strong);
    background: var(--shad-surface-muted);
    transform: translateY(-1px);
}

body.ui-shadcn :is(.icon-btn, .icon-btn-sm) {
    min-width: 38px;
    padding: 0;
}

body.ui-shadcn .icon-btn-sm {
    min-width: 34px;
    min-height: 34px;
}

body.ui-shadcn :is(.btn-sm:not(.btn-secondary), .toolbar-search-trigger[data-state="active"], .workspace-page-tab[data-state="active"], .year-chip[data-state="active"], .analysis-nav-button[data-state="active"], .search-result.active .search-result-locate, .search-shell-footer-chip) {
    border-color: rgba(0, 106, 255, 0.18);
    background: var(--accent-gradient);
    color: var(--primary-foreground);
    box-shadow: 0 12px 24px rgba(0, 106, 255, 0.2);
}

body.ui-shadcn .btn-secondary {
    border-color: var(--shad-border);
    background: var(--shad-surface-elevated);
    color: var(--text-primary);
    box-shadow: var(--shad-shadow);
}

body.ui-shadcn .btn-secondary:hover {
    border-color: var(--shad-border-strong);
    background: var(--shad-surface-muted);
}

body.ui-shadcn .toolbar-search-trigger {
    min-width: 164px;
    justify-content: flex-start;
    gap: 10px;
    padding-inline: 12px 10px;
    background: var(--shad-surface-elevated);
}

body.ui-shadcn .toolbar-search-shortcut {
    margin-left: auto;
}

body.ui-shadcn .toolbar-select {
    gap: 8px;
    padding: 8px 10px;
    border-radius: 14px;
    border: 1px solid var(--shad-border);
    background: var(--shad-surface-elevated);
    box-shadow: var(--shad-shadow);
}

body.ui-shadcn .toolbar-select > span,
body.ui-shadcn .sidebar-inline-label,
body.ui-shadcn .search-kicker,
body.ui-shadcn .analysis-section-kicker,
body.ui-shadcn .analysis-nav-shell-kicker,
body.ui-shadcn .properties-inline-kicker,
body.ui-shadcn .saved-hub-block-kicker,
body.ui-shadcn .operate-block-kicker,
body.ui-shadcn .operate-hero-kicker,
body.ui-shadcn .analysis-kicker {
    font-size: 0.66rem;
    font-weight: 700;
    letter-spacing: 0.11em;
    text-transform: uppercase;
}

body.ui-shadcn :is(.toolbar-select select, input[type="text"], input[type="search"], input[type="number"], input[type="date"], textarea, .app-dialog-input) {
    border-radius: 12px;
    border: 1px solid var(--shad-border);
    background: var(--shad-surface-elevated);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
}

body.ui-shadcn .toolbar-select select {
    min-height: 32px;
    padding: 0 28px 0 4px;
    border: none;
    background: transparent;
    box-shadow: none;
}

body.ui-shadcn :is(input[type="text"], input[type="search"], input[type="number"], input[type="date"], textarea, .app-dialog-input) {
    min-height: 42px;
    padding: 0 12px;
    color: var(--text-primary);
}

body.ui-shadcn textarea {
    min-height: 120px;
    padding-block: 10px;
}

body.ui-shadcn :is(input[type="checkbox"], .table-select-input) {
    accent-color: var(--primary);
}

body.ui-shadcn .map-command-primary,
body.ui-shadcn .map-status-card,
body.ui-shadcn .analysis-hero-card,
body.ui-shadcn .analysis-nav-shell,
body.ui-shadcn .saved-hub-summary-card {
    border-radius: var(--shad-radius-lg);
    border-color: var(--shad-border);
    background: var(--shad-surface);
    box-shadow: var(--shad-shadow);
}

body.ui-shadcn .map-command-primary,
body.ui-shadcn .map-status-card,
body.ui-shadcn .function-terminal-board,
body.ui-shadcn :is(.function-terminal-card, .function-terminal-code-card, .function-terminal-list-row, .function-terminal-tape-item) {
    background: var(--shad-surface);
    border-color: var(--shad-border);
}

body.ui-shadcn .map-command-primary {
    box-shadow: var(--shad-shadow-lg);
}

body.ui-shadcn .map-command-kicker::before,
body.ui-shadcn .function-terminal-kicker::before,
body.ui-shadcn .instructions-kicker::before {
    width: 6px;
    height: 6px;
    box-shadow: none;
}

body.ui-shadcn :is(.map-command-theme, .function-terminal-board-meta, .function-terminal-chip) {
    border: 1px solid var(--shad-border);
    background: var(--shad-surface-muted);
    box-shadow: none;
}

body.ui-shadcn .function-terminal-input-shell {
    border-color: var(--shad-border);
    background: var(--shad-surface-elevated);
    box-shadow: none;
}

body.ui-shadcn #sidebar {
    border-left: 1px solid var(--shad-border);
    background:
        linear-gradient(180deg, rgba(8, 11, 18, 0.99), rgba(13, 17, 25, 0.985)),
        var(--shad-surface);
    box-shadow: -18px 0 48px rgba(2, 6, 23, 0.32);
}

body.ui-shadcn[data-theme="light"] #sidebar {
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.995), rgba(247, 249, 252, 0.99)),
        var(--shad-surface);
    box-shadow: -12px 0 36px rgba(15, 23, 42, 0.08);
}

body.ui-shadcn .sidebar-header,
body.ui-shadcn .detail-header,
body.ui-shadcn .property-modal-header,
body.ui-shadcn .report-modal-header,
body.ui-shadcn .app-dialog-header,
body.ui-shadcn .app-dialog-actions {
    border-bottom: 1px solid var(--shad-border);
    background: rgba(255, 255, 255, 0.02);
}

body.ui-shadcn .app-dialog-actions {
    border-top: 1px solid var(--shad-border);
    border-bottom: none;
}

body.ui-shadcn .detail-header {
    border-top-left-radius: var(--shad-radius-lg);
    border-top-right-radius: var(--shad-radius-lg);
}

body.ui-shadcn .property-modal-card,
body.ui-shadcn .report-modal-card,
body.ui-shadcn .app-dialog-card {
    border-radius: 24px;
    border-color: var(--shad-border-strong);
    background:
        linear-gradient(180deg, rgba(11, 15, 22, 0.985), rgba(15, 20, 29, 0.975)),
        var(--shad-surface-elevated);
    box-shadow: var(--shad-shadow-lg);
}

body.ui-shadcn[data-theme="light"] :is(.property-modal-card, .report-modal-card, .app-dialog-card) {
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.992), rgba(248, 250, 252, 0.985)),
        var(--shad-surface-elevated);
}

body.ui-shadcn :is(.property-modal-backdrop, .report-modal-backdrop, .app-dialog-backdrop) {
    background: rgba(2, 6, 23, 0.56);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}

body.ui-shadcn #detail-panel {
    border-top-left-radius: var(--shad-radius-lg);
    border-top-right-radius: var(--shad-radius-lg);
    border-top: 1px solid var(--shad-border);
    border-inline: none;
    border-bottom: none;
    background:
        linear-gradient(180deg, rgba(10, 13, 19, 0.99), rgba(14, 18, 26, 0.985)),
        var(--shad-surface);
    box-shadow: 0 -18px 48px rgba(2, 6, 23, 0.32);
}

body.ui-shadcn[data-theme="light"] #detail-panel {
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.99), rgba(248, 250, 252, 0.985)),
        var(--shad-surface);
}

body.ui-shadcn .workspace-page-tabs {
    gap: 4px;
    padding: 4px;
    border-radius: 14px;
    border: 1px solid var(--shad-border);
    background: var(--shad-surface-muted);
    scroll-snap-type: x proximity;
    scrollbar-width: none;
}

body.ui-shadcn .workspace-page-tab {
    min-height: 36px;
    border-color: transparent;
    background: transparent;
    color: var(--text-secondary);
    scroll-snap-align: start;
}

body.ui-shadcn .workspace-page-tab[data-state="active"] {
    color: var(--text-primary);
}

body.ui-shadcn .workspace-page-tabs::-webkit-scrollbar {
    display: none;
}

body.ui-shadcn :is(.sidebar-inline-details, .analysis-hero-details) {
    overflow: hidden;
    border: 1px solid var(--shad-border);
    border-radius: 16px;
    background: var(--shad-surface-muted);
    box-shadow: none;
}

body.ui-shadcn :is(.sidebar-inline-summary, .workspace-page-summary, .analysis-hero-disclosure) {
    min-height: 48px;
    padding: 12px 14px;
    background: transparent;
}

body.ui-shadcn :is(.sidebar-inline-details[open] > .sidebar-inline-summary, .workspace-page-summary-shell[open] > .workspace-page-summary, .analysis-hero-details[open] > .analysis-hero-disclosure) {
    border-bottom: 1px solid var(--shad-border);
    background: rgba(255, 255, 255, 0.025);
}

body.ui-shadcn :is(.sidebar-inline-panel, .analysis-hero-details-panel) {
    background: transparent;
}

body.ui-shadcn .analysis-nav {
    gap: 10px;
    flex-wrap: nowrap;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x proximity;
    scrollbar-width: none;
}

body.ui-shadcn .analysis-nav-button {
    min-width: 188px;
    padding: 14px;
    border-radius: 16px;
    border: 1px solid var(--shad-border);
    background: var(--shad-surface-muted);
    box-shadow: none;
    scroll-snap-align: start;
}

body.ui-shadcn .analysis-nav-button[data-state="active"] {
    border-color: rgba(79, 140, 255, 0.26);
    box-shadow: inset 0 0 0 1px rgba(79, 140, 255, 0.12);
}

body.ui-shadcn .analysis-nav::-webkit-scrollbar {
    display: none;
}

body.ui-shadcn .command-input-shell {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 52px;
    margin-bottom: 10px;
    padding: 0 14px;
    border-radius: 16px;
    border: 1px solid var(--shad-border);
    background: var(--shad-surface-elevated);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
}

body.ui-shadcn .search-shell {
    padding: 14px;
    border-radius: 24px;
    border-color: var(--shad-border-strong);
    background:
        linear-gradient(180deg, rgba(10, 14, 21, 0.985), rgba(14, 19, 28, 0.975)),
        var(--shad-surface-elevated);
    box-shadow: var(--shad-shadow-lg);
}

body.ui-shadcn[data-theme="light"] .search-shell {
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.992), rgba(248, 250, 252, 0.985)),
        var(--shad-surface-elevated);
}

body.ui-shadcn[data-theme="light"] .search-group-heading {
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(248, 250, 252, 0.94)),
        var(--shad-surface-elevated);
}

body.ui-shadcn .search-input-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    color: var(--text-muted);
    flex-shrink: 0;
}

body.ui-shadcn .search-input-icon svg {
    width: 100%;
    height: 100%;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.75;
    stroke-linecap: round;
    stroke-linejoin: round;
}

body.ui-shadcn .command-input-shell .search-input {
    min-height: 0;
    padding: 0;
    border: none;
    background: transparent;
    box-shadow: none;
}

body.ui-shadcn .command-input-shell .search-input:focus {
    box-shadow: none;
}

body.ui-shadcn .search-meta {
    padding-inline: 2px;
    color: var(--text-muted);
}

body.ui-shadcn .search-shell-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: 10px;
    padding-inline: 2px;
    color: var(--text-muted);
    font-size: 0.72rem;
}

body.ui-shadcn .search-shell-footer-chip {
    min-height: 26px;
    padding: 0 10px;
    border-radius: var(--shad-pill-radius);
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

body.ui-shadcn .search-results {
    gap: 14px;
    margin-top: 14px;
    padding: 4px 2px 4px 0;
    scroll-padding-top: 52px;
}

body.ui-shadcn .search-group {
    display: grid;
    gap: 8px;
}

body.ui-shadcn .search-group-heading {
    position: sticky;
    top: 0;
    z-index: 1;
    padding: 8px 10px;
    border-radius: 12px;
    border: 1px solid var(--shad-border);
    background:
        linear-gradient(180deg, rgba(10, 14, 21, 0.96), rgba(14, 19, 28, 0.92)),
        var(--shad-surface-elevated);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--text-muted);
}

body.ui-shadcn .search-group-list {
    display: grid;
    gap: 8px;
    padding-inline: 2px;
}

body.ui-shadcn .search-empty {
    display: grid;
    gap: 8px;
    padding: 16px;
    border-style: solid;
    border-color: var(--shad-border);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0.015)),
        var(--shad-surface-muted);
}

body.ui-shadcn .search-empty-kicker {
    font-size: 0.66rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--text-muted);
}

body.ui-shadcn .search-empty p {
    font-size: 0.8rem;
    line-height: 1.5;
    color: var(--text-secondary);
}

body.ui-shadcn .search-result {
    padding: 12px 14px;
    border-radius: 14px;
    border-color: var(--shad-border);
    background: var(--shad-surface-muted);
    box-shadow: none;
}

body.ui-shadcn .search-result:hover,
body.ui-shadcn .search-result.active,
body.ui-shadcn .search-result[data-state="active"] {
    border-color: rgba(79, 140, 255, 0.28);
    background: rgba(79, 140, 255, 0.1);
    box-shadow: inset 0 0 0 1px rgba(79, 140, 255, 0.08);
}

body.ui-shadcn .search-result.is-place {
    border-color: rgba(34, 197, 94, 0.22);
    background:
        linear-gradient(180deg, rgba(34, 197, 94, 0.08), rgba(34, 197, 94, 0.02)),
        var(--shad-surface-muted);
}

body.ui-shadcn .search-result.is-coordinate {
    border-color: rgba(245, 158, 11, 0.2);
    background:
        linear-gradient(180deg, rgba(245, 158, 11, 0.08), rgba(245, 158, 11, 0.02)),
        var(--shad-surface-muted);
}

body.ui-shadcn .search-result-title {
    font-size: 0.92rem;
    font-weight: 700;
    line-height: 1.3;
}

body.ui-shadcn .search-result-subtitle,
body.ui-shadcn .search-result-footer {
    color: var(--text-muted);
}

body.ui-shadcn .search-result-locate {
    min-height: 30px;
    padding: 0 10px;
    font-size: 0.72rem;
}

body.ui-shadcn .search-badge,
body.ui-shadcn .analysis-badge,
body.ui-shadcn .map-command-chip,
body.ui-shadcn .operate-chip,
body.ui-shadcn .workspace-page-chip,
body.ui-shadcn .analysis-digest-chip,
body.ui-shadcn .analysis-stage-pill,
body.ui-shadcn .properties-filter-chip,
body.ui-shadcn .property-modal-chip,
body.ui-shadcn .property-modal-deal-chip,
body.ui-shadcn .report-chip,
body.ui-shadcn .report-page-chip,
body.ui-shadcn .report-map-pill {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 28px;
    padding: 0 10px;
    border-radius: var(--shad-pill-radius);
    border: 1px solid var(--shad-border);
    background: var(--shad-surface-elevated);
    box-shadow: none;
}

body.ui-shadcn :is(.search-badge strong, .analysis-badge-label, .report-chip strong, .report-page-chip strong, .report-map-pill strong, .property-modal-chip strong, .property-modal-deal-chip strong) {
    color: var(--text-muted);
    font-size: 0.66rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

body.ui-shadcn .toast-region {
    gap: 10px;
}

body.ui-shadcn .toast {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 12px;
    min-width: min(380px, calc(100vw - 32px));
    padding: 13px 14px;
    border-radius: 16px;
    border: 1px solid var(--shad-border);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.02)),
        var(--shad-surface-elevated);
    box-shadow: var(--shad-shadow);
}

body.ui-shadcn .toast::before {
    content: "";
    width: 10px;
    height: 10px;
    border-radius: 999px;
    background: var(--primary);
    margin-top: 4px;
}

body.ui-shadcn .toast[data-tone="success"]::before {
    background: var(--success);
}

body.ui-shadcn .toast[data-tone="warning"]::before {
    background: var(--warning);
}

body.ui-shadcn .toast[data-tone="danger"]::before {
    background: var(--danger);
}

body.ui-shadcn .toast-head {
    gap: 12px;
}

body.ui-shadcn .toast-head,
body.ui-shadcn .toast-message {
    grid-column: 2;
}

body.ui-shadcn .toast-title {
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: -0.01em;
}

body.ui-shadcn .toast-title-spacer {
    display: none;
}

body.ui-shadcn .toast-message {
    margin-top: 4px;
    color: var(--text-secondary);
    line-height: 1.45;
}

body.ui-shadcn .toast-close {
    min-width: 28px;
    min-height: 28px;
    border-radius: 10px;
    border: 1px solid transparent;
    background: transparent;
}

body.ui-shadcn .toast-close:hover {
    border-color: var(--shad-border);
    background: var(--shad-surface-muted);
}

body.ui-shadcn .progress-bar {
    height: 10px;
    border-radius: var(--shad-pill-radius);
    border: 1px solid var(--shad-border);
    background: var(--shad-surface-elevated);
    overflow: hidden;
}

body.ui-shadcn .progress-fill {
    border-radius: inherit;
    background: linear-gradient(90deg, #60a5fa 0%, #2563eb 100%);
    box-shadow: 0 0 24px rgba(37, 99, 235, 0.28);
}

body.ui-shadcn :is(#detail-table, .analysis-table, .property-modal-history-table, .report-table, .all-properties-wrapper table) {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
}

body.ui-shadcn :is(#detail-table th, .analysis-table th, .property-modal-history-table th, .report-table th, .all-properties-wrapper th) {
    position: sticky;
    top: 0;
    z-index: 1;
    padding: 12px 14px;
    border-bottom: 1px solid var(--shad-border);
    background: var(--shad-surface-elevated);
    color: var(--text-muted);
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

body.ui-shadcn :is(#detail-table td, .analysis-table td, .property-modal-history-table td, .report-table td, .all-properties-wrapper td) {
    padding: 12px 14px;
    border-bottom: 1px solid rgba(148, 163, 184, 0.12);
    background: transparent;
}

body.ui-shadcn :is(#detail-table tbody tr:nth-child(even) td, .analysis-table tbody tr:nth-child(even) td, .property-modal-history-table tbody tr:nth-child(even) td, .report-table tbody tr:nth-child(even) td, .all-properties-wrapper tbody tr:nth-child(even) td) {
    background: rgba(255, 255, 255, 0.018);
}

body.ui-shadcn[data-theme="light"] :is(#detail-table tbody tr:nth-child(even) td, .analysis-table tbody tr:nth-child(even) td, .property-modal-history-table tbody tr:nth-child(even) td, .report-table tbody tr:nth-child(even) td, .all-properties-wrapper tbody tr:nth-child(even) td) {
    background: rgba(15, 23, 42, 0.018);
}

body.ui-shadcn :is(#detail-table tbody tr:hover td, .analysis-table tbody tr:hover td, .property-modal-history-table tbody tr:hover td, .report-table tbody tr:hover td, .all-properties-wrapper tbody tr:hover td) {
    background: rgba(79, 140, 255, 0.06);
}

body.ui-shadcn .all-properties-wrapper {
    border-radius: 18px;
    border: 1px solid var(--shad-border);
    overflow: auto;
    background: var(--shad-surface);
    box-shadow: var(--shad-shadow);
}

/* ===== shadcn/ui Workspace Components ===== */
body.ui-shadcn :is(.btn-text, .property-link, .property-popup-button, .property-popup-link) {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 34px;
    padding: 0 12px;
    border-radius: 11px;
    border: 1px solid var(--shad-border);
    background: var(--shad-surface-muted);
    color: var(--text-primary);
    text-decoration: none;
    box-shadow: none;
}

body.ui-shadcn :is(.btn-text, .property-link, .property-popup-button, .property-popup-link):hover {
    border-color: var(--shad-border-strong);
    background: rgba(79, 140, 255, 0.1);
    color: var(--text-primary);
}

body.ui-shadcn .btn-text:disabled {
    opacity: 0.5;
    cursor: default;
}

body.ui-shadcn .filter-section {
    display: grid;
    gap: 14px;
    padding: 18px;
    border-radius: 20px;
    border: 1px solid var(--shad-border);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0.015)),
        var(--shad-surface);
    box-shadow: var(--shad-shadow);
}

body.ui-shadcn .filter-header {
    gap: 12px;
    margin-bottom: 0;
}

body.ui-shadcn .filter-note,
body.ui-shadcn .filter-summary {
    margin: 0;
    color: var(--text-secondary);
}

body.ui-shadcn :is(.filter-search, .filter-select, .cleanup-input input) {
    border-radius: 14px;
    border: 1px solid var(--shad-border);
    background: var(--shad-surface-elevated);
    box-shadow: none;
}

body.ui-shadcn :is(.filter-search, .filter-select, .cleanup-input input):focus {
    border-color: rgba(79, 140, 255, 0.28);
    box-shadow: 0 0 0 3px rgba(79, 140, 255, 0.12);
}

body.ui-shadcn .neighborhood-options {
    padding-right: 6px;
    scrollbar-width: thin;
}

body.ui-shadcn .neighborhood-option {
    border-radius: 16px;
    border-color: var(--shad-border);
    background: var(--shad-surface-muted);
    box-shadow: none;
}

body.ui-shadcn .cleanup-alert {
    display: grid;
    gap: 12px;
    padding: 16px;
    border-radius: 18px;
    border: 1px solid rgba(79, 140, 255, 0.24);
    background:
        radial-gradient(circle at top right, rgba(79, 140, 255, 0.12), transparent 30%),
        linear-gradient(180deg, rgba(79, 140, 255, 0.07), rgba(79, 140, 255, 0.02)),
        var(--shad-surface-elevated);
}

body.ui-shadcn .cleanup-alert-copy {
    display: grid;
    gap: 6px;
}

body.ui-shadcn .cleanup-alert-kicker {
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--text-muted);
}

body.ui-shadcn .cleanup-alert-title {
    font-size: 0.98rem;
    font-weight: 800;
    letter-spacing: -0.02em;
    line-height: 1.35;
    color: var(--text-primary);
}

body.ui-shadcn .cleanup-alert-description {
    margin: 0;
    font-size: 0.78rem;
    line-height: 1.6;
    color: var(--text-secondary);
}

body.ui-shadcn .cleanup-alert-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

body.ui-shadcn .cleanup-alert-badge {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 0 10px;
    border-radius: 999px;
    border: 1px solid var(--shad-border);
    background: var(--shad-surface);
    color: var(--text-secondary);
    font-size: 0.72rem;
    font-weight: 700;
}

body.ui-shadcn .cleanup-separator {
    position: relative;
    display: flex;
    align-items: center;
    gap: 10px;
    color: var(--text-muted);
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

body.ui-shadcn .cleanup-separator::before,
body.ui-shadcn .cleanup-separator::after {
    content: "";
    flex: 1 1 auto;
    height: 1px;
    background: var(--shad-border);
}

body.ui-shadcn .cleanup-separator--subtle::before,
body.ui-shadcn .cleanup-separator--subtle::after {
    opacity: 0.8;
}

body.ui-shadcn .cleanup-collapsible {
    border-radius: 18px;
    border: 1px solid var(--shad-border);
    background: var(--shad-surface-muted);
    overflow: hidden;
}

body.ui-shadcn .cleanup-collapsible[data-state="open"] {
    border-color: rgba(79, 140, 255, 0.24);
    background:
        linear-gradient(180deg, rgba(79, 140, 255, 0.08), rgba(79, 140, 255, 0.02)),
        var(--shad-surface-muted);
}

body.ui-shadcn .cleanup-collapsible-trigger {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 14px 16px;
    border: none;
    background: transparent;
    color: inherit;
    text-align: left;
}

body.ui-shadcn .cleanup-collapsible-copy {
    display: grid;
    gap: 4px;
}

body.ui-shadcn .cleanup-collapsible-label {
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--text-primary);
}

body.ui-shadcn .cleanup-collapsible-summary {
    font-size: 0.74rem;
    color: var(--text-secondary);
}

body.ui-shadcn .cleanup-collapsible-icon {
    position: relative;
    width: 18px;
    height: 18px;
    border-radius: 999px;
    border: 1px solid var(--shad-border);
    background: var(--shad-surface-elevated);
    flex: 0 0 auto;
}

body.ui-shadcn .cleanup-collapsible-icon::before,
body.ui-shadcn .cleanup-collapsible-icon::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 8px;
    height: 1.5px;
    border-radius: 999px;
    background: var(--text-secondary);
    transform: translate(-50%, -50%);
    transition: transform var(--transition-fast), opacity var(--transition-fast);
}

body.ui-shadcn .cleanup-collapsible-icon::after {
    transform: translate(-50%, -50%) rotate(90deg);
}

body.ui-shadcn .cleanup-collapsible[data-state="open"] .cleanup-collapsible-icon::after {
    opacity: 0;
}

body.ui-shadcn .cleanup-collapsible-content {
    display: grid;
    gap: 14px;
    padding: 0 16px 16px;
}

body.ui-shadcn .cleanup-collapsible-note {
    margin: 0;
    font-size: 0.76rem;
    line-height: 1.55;
    color: var(--text-secondary);
}

body.ui-shadcn .cleanup-range-card {
    border-radius: 18px;
    border-color: var(--shad-border);
    background: var(--shad-surface-elevated);
    box-shadow: none;
}

body.ui-shadcn .function-terminal-shell {
    padding: 14px;
    border-radius: 18px;
    border: 1px solid var(--shad-border);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.018)),
        var(--shad-surface);
    box-shadow: var(--shad-shadow);
}

body.ui-shadcn .function-terminal-kicker,
body.ui-shadcn .function-terminal-board-kicker {
    font-size: 0.66rem;
    font-weight: 700;
    letter-spacing: 0.11em;
    text-transform: uppercase;
    color: var(--text-muted);
}

body.ui-shadcn .function-terminal-kicker::before,
body.ui-shadcn .function-terminal-board-kicker::before {
    opacity: 0.65;
}

body.ui-shadcn .function-terminal-status,
body.ui-shadcn .function-terminal-board-note,
body.ui-shadcn .function-terminal-board-meta {
    color: var(--text-muted);
}

body.ui-shadcn .function-terminal-input-shell {
    min-height: 46px;
    padding: 0 12px;
    border-radius: 14px;
    border: 1px solid var(--shad-border);
    background: var(--shad-surface-elevated);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
}

body.ui-shadcn .function-terminal-prompt {
    color: var(--text-muted);
}

body.ui-shadcn .function-terminal-input {
    min-height: 0;
    border: none;
    background: transparent;
    box-shadow: none;
}

body.ui-shadcn .function-terminal-suggestions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

body.ui-shadcn .function-terminal-chip {
    min-height: 30px;
    padding: 0 11px;
    border-radius: 999px;
    border: 1px solid var(--shad-border);
    background: var(--shad-surface-muted);
    color: var(--text-secondary);
    font-size: 0.72rem;
    font-weight: 700;
    box-shadow: none;
}

body.ui-shadcn .function-terminal-chip:hover,
body.ui-shadcn .function-terminal-chip.active,
body.ui-shadcn .function-terminal-chip[data-state="active"] {
    border-color: rgba(79, 140, 255, 0.28);
    background: rgba(79, 140, 255, 0.1);
    color: var(--text-primary);
}

body.ui-shadcn .function-terminal-board {
    padding: 16px;
    border-radius: 16px;
    border: 1px solid var(--shad-border);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.035), rgba(255, 255, 255, 0.01)),
        var(--shad-surface-elevated);
    box-shadow: none;
}

body.ui-shadcn .function-terminal-board-empty {
    border-radius: 14px;
    border: 1px dashed var(--shad-border);
    background: var(--shad-surface-muted);
    color: var(--text-muted);
}

body.ui-shadcn .function-terminal-board-header {
    padding-bottom: 14px;
    border-bottom: 1px solid var(--shad-border);
}

body.ui-shadcn :is(.function-terminal-card, .function-terminal-code-card, .function-terminal-list-row, .function-terminal-tape-item) {
    border-radius: 14px;
    border: 1px solid var(--shad-border);
    background: var(--shad-surface-muted);
    box-shadow: none;
}

body.ui-shadcn .comparison-workspace-toggle {
    display: inline-flex;
    gap: 4px;
    align-items: center;
    padding: 4px;
    border-radius: 14px;
    border: 1px solid var(--shad-border);
    background: var(--shad-surface-muted);
}

body.ui-shadcn .comparison-workspace-button {
    min-height: 38px;
    padding: 0 14px;
    border-radius: 11px;
    border: 1px solid transparent;
    background: transparent;
    color: var(--text-secondary);
    font-size: 0.78rem;
    font-weight: 700;
    box-shadow: none;
}

body.ui-shadcn .comparison-workspace-button:hover {
    color: var(--text-primary);
    background: rgba(255, 255, 255, 0.04);
}

body.ui-shadcn .comparison-workspace-button.active,
body.ui-shadcn .comparison-workspace-button[data-state="active"] {
    border-color: rgba(79, 140, 255, 0.24);
    background: var(--accent-gradient);
    color: var(--primary-foreground);
    box-shadow: 0 10px 24px rgba(37, 99, 235, 0.22);
}

body.ui-shadcn .comparison-workspace {
    display: grid;
    gap: 16px;
}

body.ui-shadcn .comparison-benchmark-shell {
    display: grid;
    grid-template-columns: minmax(300px, 360px) minmax(0, 1fr);
    gap: 16px;
    align-items: start;
}

body.ui-shadcn .comparison-benchmark-rail {
    display: grid;
    gap: 16px;
    align-self: start;
    position: sticky;
    top: 12px;
}

body.ui-shadcn .comparison-benchmark-main,
body.ui-shadcn .comparison-index-shell,
body.ui-shadcn .comparison-index-layout,
body.ui-shadcn .comparison-pair-shell,
body.ui-shadcn .comparison-pair-controls,
body.ui-shadcn .comparison-pair-visuals,
body.ui-shadcn .comparison-benchmark-panels {
    display: grid;
    gap: 16px;
    min-width: 0;
}

body.ui-shadcn .comparison-lane-grid,
body.ui-shadcn .comparison-scoreboard,
body.ui-shadcn .comparison-guide-grid,
body.ui-shadcn .comparison-insights {
    gap: 14px;
}

body.ui-shadcn .comparison-guide-shell {
    display: grid;
    gap: 12px;
    padding: 16px;
    border-radius: 20px;
    border: 1px solid var(--shad-border);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.015)),
        var(--shad-surface);
    box-shadow: var(--shad-shadow);
}

body.ui-shadcn .comparison-guide-header {
    display: grid;
    gap: 6px;
}

body.ui-shadcn .comparison-guide-kicker {
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--text-muted);
}

body.ui-shadcn .comparison-guide-title {
    font-size: 0.94rem;
    font-weight: 800;
    letter-spacing: -0.02em;
    line-height: 1.4;
    color: var(--text-primary);
}

body.ui-shadcn .comparison-guide-accordion {
    display: grid;
    gap: 10px;
}

body.ui-shadcn .comparison-guide-item {
    border-radius: 18px;
    border: 1px solid var(--shad-border);
    background: var(--shad-surface-muted);
    overflow: hidden;
}

body.ui-shadcn .comparison-guide-item[data-state="open"] {
    border-color: rgba(79, 140, 255, 0.24);
    background:
        linear-gradient(180deg, rgba(79, 140, 255, 0.08), rgba(79, 140, 255, 0.02)),
        var(--shad-surface-muted);
}

body.ui-shadcn .comparison-guide-trigger {
    width: 100%;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px 12px;
    align-items: center;
    padding: 14px 16px;
    border: none;
    background: transparent;
    color: inherit;
    text-align: left;
}

body.ui-shadcn .comparison-guide-trigger-meta {
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--text-muted);
}

body.ui-shadcn .comparison-guide-trigger-value {
    font-size: 0.92rem;
    font-weight: 700;
    line-height: 1.3;
    color: var(--text-primary);
}

body.ui-shadcn .comparison-guide-trigger-icon {
    position: relative;
    width: 18px;
    height: 18px;
    border-radius: 999px;
    border: 1px solid var(--shad-border);
    background: var(--shad-surface-elevated);
}

body.ui-shadcn .comparison-guide-trigger-icon::before,
body.ui-shadcn .comparison-guide-trigger-icon::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 8px;
    height: 1.5px;
    border-radius: 999px;
    background: var(--text-secondary);
    transform: translate(-50%, -50%);
    transition: transform var(--transition-fast), opacity var(--transition-fast);
}

body.ui-shadcn .comparison-guide-trigger-icon::after {
    transform: translate(-50%, -50%) rotate(90deg);
}

body.ui-shadcn .comparison-guide-item[data-state="open"] .comparison-guide-trigger-icon::after {
    opacity: 0;
}

body.ui-shadcn .comparison-guide-content {
    padding: 0 16px 16px;
}

body.ui-shadcn .comparison-empty-state {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 12px;
    align-items: flex-start;
}

body.ui-shadcn .comparison-empty-state--inline {
    padding: 6px 2px;
}

body.ui-shadcn .comparison-empty-media {
    position: relative;
    width: 40px;
    height: 40px;
    border-radius: 14px;
    border: 1px solid var(--shad-border);
    background:
        radial-gradient(circle at 30% 30%, rgba(79, 140, 255, 0.18), transparent 40%),
        var(--shad-surface-elevated);
}

body.ui-shadcn .comparison-empty-media::before,
body.ui-shadcn .comparison-empty-media::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    border-radius: 999px;
    transform: translate(-50%, -50%);
}

body.ui-shadcn .comparison-empty-media::before {
    width: 14px;
    height: 14px;
    border: 1.5px solid rgba(79, 140, 255, 0.45);
}

body.ui-shadcn .comparison-empty-media::after {
    width: 4px;
    height: 4px;
    background: rgba(79, 140, 255, 0.75);
}

body.ui-shadcn .comparison-empty-copy {
    display: grid;
    gap: 4px;
    min-width: 0;
}

body.ui-shadcn .comparison-empty-kicker {
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--text-muted);
}

body.ui-shadcn .comparison-empty-title {
    font-size: 0.92rem;
    font-weight: 700;
    line-height: 1.3;
    color: var(--text-primary);
}

body.ui-shadcn .comparison-empty-description {
    font-size: 0.78rem;
    line-height: 1.55;
    color: var(--text-secondary);
}

body.ui-shadcn .comparison-insight-card--empty {
    padding: 16px;
}

body.ui-shadcn .comparison-benchmark-tabs-shell {
    display: grid;
    gap: 14px;
    padding: 16px;
    border-radius: 20px;
    border: 1px solid var(--shad-border);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.015)),
        var(--shad-surface);
    box-shadow: var(--shad-shadow);
}

body.ui-shadcn .comparison-benchmark-tabs-kicker {
    display: inline-flex;
    margin-bottom: 6px;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--text-muted);
}

body.ui-shadcn .comparison-benchmark-tabs-title {
    display: block;
    max-width: 32rem;
    font-size: 0.98rem;
    font-weight: 800;
    letter-spacing: -0.02em;
    line-height: 1.35;
    color: var(--text-primary);
}

body.ui-shadcn .comparison-benchmark-tablist {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    padding: 6px;
    border-radius: 18px;
}

body.ui-shadcn .comparison-benchmark-tab {
    display: grid;
    gap: 4px;
    min-height: 72px;
    padding: 12px;
    border-radius: 14px;
    border: 1px solid transparent;
    background: transparent;
    color: var(--text-secondary);
    text-align: left;
    transition:
        background var(--transition-fast),
        border-color var(--transition-fast),
        transform var(--transition-fast),
        color var(--transition-fast),
        box-shadow var(--transition-fast);
    scroll-snap-align: start;
}

body.ui-shadcn .comparison-benchmark-tab:hover {
    background: var(--shad-surface-elevated);
    border-color: var(--shad-border);
    color: var(--text-primary);
    transform: translateY(-1px);
}

body.ui-shadcn .comparison-benchmark-tab.active,
body.ui-shadcn .comparison-benchmark-tab[data-state="active"] {
    border-color: rgba(0, 106, 255, 0.18);
    background: var(--shad-surface-elevated);
    color: var(--text-primary);
    box-shadow: 0 6px 16px rgba(15, 23, 42, 0.08);
}

body.ui-shadcn .comparison-benchmark-tab-label {
    font-size: 0.82rem;
    font-weight: 700;
    line-height: 1.2;
}

body.ui-shadcn .comparison-benchmark-tab-note {
    font-size: 0.69rem;
    line-height: 1.45;
    color: var(--text-muted);
}

body.ui-shadcn .comparison-benchmark-panel[hidden] {
    display: none !important;
}

body.ui-shadcn .comparison-index-tabs-shell {
    display: grid;
    gap: 14px;
    padding: 16px;
    border-radius: 20px;
    border: 1px solid var(--shad-border);
    background: var(--shad-surface);
    box-shadow: var(--shad-shadow);
}

body.ui-shadcn .comparison-index-tabs-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
}

body.ui-shadcn .comparison-index-tabs-kicker {
    display: inline-flex;
    margin-bottom: 6px;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--text-muted);
}

body.ui-shadcn .comparison-index-tabs-title {
    display: block;
    max-width: 34rem;
    font-size: 1rem;
    font-weight: 800;
    letter-spacing: -0.02em;
    line-height: 1.35;
    color: var(--text-primary);
}

body.ui-shadcn .comparison-index-meta {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 8px;
}

body.ui-shadcn .comparison-index-meta-pill {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    max-width: min(100%, 22rem);
    padding: 0 12px;
    border-radius: 999px;
    border: 1px solid var(--shad-border);
    background: var(--shad-surface);
    color: var(--text-secondary);
    font-size: 0.73rem;
    font-weight: 700;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

body.ui-shadcn .comparison-index-tablist {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
    padding: 6px;
    border-radius: 18px;
}

body.ui-shadcn .comparison-index-tab {
    display: grid;
    gap: 4px;
    min-height: 76px;
    padding: 12px;
    border-radius: 14px;
    border: 1px solid transparent;
    background: transparent;
    color: var(--text-secondary);
    text-align: left;
    transition:
        background var(--transition-fast),
        border-color var(--transition-fast),
        transform var(--transition-fast),
        color var(--transition-fast),
        box-shadow var(--transition-fast);
    scroll-snap-align: start;
}

body.ui-shadcn .comparison-index-tab:hover {
    background: var(--shad-surface-elevated);
    border-color: var(--shad-border);
    color: var(--text-primary);
    transform: translateY(-1px);
}

body.ui-shadcn .comparison-index-tab.active,
body.ui-shadcn .comparison-index-tab[data-state="active"] {
    border-color: rgba(0, 106, 255, 0.18);
    background: var(--shad-surface-elevated);
    color: var(--text-primary);
    box-shadow: 0 6px 16px rgba(15, 23, 42, 0.08);
}

body.ui-shadcn .comparison-index-tab-label {
    font-size: 0.82rem;
    font-weight: 700;
    line-height: 1.2;
}

body.ui-shadcn .comparison-index-tab-note {
    font-size: 0.69rem;
    line-height: 1.45;
    color: var(--text-muted);
}

body.ui-shadcn .comparison-index-panel[hidden] {
    display: none !important;
}

body.ui-shadcn :is(.comparison-lane-card, .comparison-story, .comparison-score-card, .comparison-guide-card, .comparison-panel, .comparison-insight-card, .saved-index-builder, .saved-index-card, .saved-index-empty, .comparison-index-card, .comparison-score-card, .comparison-guide-card, .comparison-panel, .comparison-story, .benchmark-fullscreen-blurb) {
    border-radius: 18px;
    border: 1px solid var(--shad-border);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0.015)),
        var(--shad-surface);
    box-shadow: var(--shad-shadow);
}

body.ui-shadcn .comparison-lane-card.tone-accent {
    border-color: rgba(79, 140, 255, 0.24);
    background:
        radial-gradient(circle at top right, rgba(79, 140, 255, 0.18), transparent 34%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0.015)),
        var(--shad-surface);
}

body.ui-shadcn .comparison-lane-card.tone-neutral,
body.ui-shadcn .comparison-score-card.tone-neutral,
body.ui-shadcn .comparison-guide-card {
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.012)),
        var(--shad-surface);
}

body.ui-shadcn .comparison-score-card.tone-success {
    border-color: rgba(34, 197, 94, 0.24);
    background:
        radial-gradient(circle at top right, rgba(34, 197, 94, 0.12), transparent 30%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.012)),
        var(--shad-surface);
}

body.ui-shadcn .comparison-story {
    border-color: var(--shad-border-strong);
}

body.ui-shadcn .comparison-toolbar,
body.ui-shadcn .comparison-toolbar-tight,
body.ui-shadcn .benchmark-library-toolbar,
body.ui-shadcn .saved-index-builder-grid {
    gap: 14px;
}

body.ui-shadcn .comparison-toolbar {
    padding: 16px;
    border-radius: 18px;
    border: 1px solid var(--shad-border);
    background: var(--shad-surface-muted);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.03);
}

body.ui-shadcn :is(.comparison-choice-group, .comparison-field, .comparison-lens-shell, .benchmark-library-search) {
    display: grid;
    gap: 8px;
}

body.ui-shadcn .comparison-field {
    padding: 12px;
    border-radius: 16px;
    border: 1px solid var(--shad-border);
    background: var(--shad-surface-elevated);
}

body.ui-shadcn .comparison-field > span,
body.ui-shadcn .comparison-field-label {
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--text-muted);
}

body.ui-shadcn .comparison-field :is(select, input) {
    width: 100%;
    min-height: 40px;
    border-radius: 12px;
    border: 1px solid var(--shad-border);
    background: var(--shad-surface);
    color: var(--text-primary);
}

body.ui-shadcn .comparison-chip-row {
    gap: 8px;
}

body.ui-shadcn .comparison-chip {
    min-height: 34px;
    padding: 0 12px;
    border-radius: 999px;
    border: 1px solid var(--shad-border);
    background: var(--shad-surface-elevated);
    color: var(--text-secondary);
    box-shadow: none;
}

body.ui-shadcn .comparison-chip:hover {
    border-color: var(--shad-border-strong);
    background: rgba(255, 255, 255, 0.05);
}

body.ui-shadcn .comparison-chip.active,
body.ui-shadcn .comparison-chip[data-state="active"] {
    border-color: rgba(79, 140, 255, 0.24);
    background: rgba(79, 140, 255, 0.12);
    color: var(--text-primary);
}

body.ui-shadcn .comparison-panel--builder,
body.ui-shadcn .comparison-panel--inspector,
body.ui-shadcn .comparison-panel--library,
body.ui-shadcn .comparison-panel--pair {
    gap: 16px;
}

body.ui-shadcn .toggle-chip {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 46px;
    padding: 12px 14px;
    border-radius: 16px;
    border: 1px solid var(--shad-border);
    background: var(--shad-surface-elevated);
    color: var(--text-secondary);
    box-shadow: none;
}

body.ui-shadcn .toggle-chip input {
    appearance: none;
    -webkit-appearance: none;
    position: relative;
    width: 38px;
    height: 22px;
    border-radius: 999px;
    border: 1px solid var(--shad-border-strong);
    background: rgba(148, 163, 184, 0.18);
    margin: 0;
    flex: 0 0 auto;
    cursor: pointer;
    transition: background var(--transition-fast), border-color var(--transition-fast);
}

body.ui-shadcn .toggle-chip input::before {
    content: "";
    position: absolute;
    top: 1px;
    left: 1px;
    width: 18px;
    height: 18px;
    border-radius: 999px;
    background: #fff;
    box-shadow: 0 1px 4px rgba(2, 6, 23, 0.24);
    transition: transform var(--transition-fast);
}

body.ui-shadcn .toggle-chip input:checked {
    border-color: rgba(79, 140, 255, 0.28);
    background: rgba(79, 140, 255, 0.78);
}

body.ui-shadcn .toggle-chip input:checked::before {
    transform: translateX(16px);
}

body.ui-shadcn .toggle-chip span {
    font-size: 0.78rem;
    line-height: 1.45;
}

body.ui-shadcn .comparison-table-wrap {
    border-radius: 18px;
    border-color: var(--shad-border);
    background: var(--shad-surface);
    box-shadow: var(--shad-shadow);
}

body.ui-shadcn .comparison-table {
    border-collapse: separate;
    border-spacing: 0;
}

body.ui-shadcn .comparison-table th {
    background: var(--shad-surface-elevated);
    color: var(--text-muted);
}

body.ui-shadcn .comparison-table tbody tr:hover td {
    background: rgba(79, 140, 255, 0.06);
}

body.ui-shadcn .comparison-index-badge {
    min-width: 84px;
    border-radius: 999px;
    border: 1px solid var(--shad-border);
    background: var(--shad-surface-elevated);
}

body.ui-shadcn .comparison-index-badge.is-hot {
    border-color: rgba(34, 197, 94, 0.26);
    background: rgba(34, 197, 94, 0.12);
}

body.ui-shadcn .comparison-index-badge.is-cool {
    border-color: rgba(245, 158, 11, 0.24);
    background: rgba(245, 158, 11, 0.12);
}

body.ui-shadcn .saved-index-card-count,
body.ui-shadcn .saved-index-tag {
    border-radius: 999px;
    box-shadow: none;
}

body.ui-shadcn .properties-inline-panel-header,
body.ui-shadcn .comparison-panel-header,
body.ui-shadcn .report-section-heading {
    gap: 14px;
}

body.ui-shadcn :is(.analysis-section-header, .analysis-block-header, .comparison-panel-header, .properties-inline-panel-header, .report-section-heading) {
    padding-bottom: 14px;
    border-bottom: 1px solid var(--shad-border);
}

body.ui-shadcn :is(#detail-table th, .analysis-table th, .comparison-table th, .property-modal-history-table th, .report-table th, .all-properties-wrapper th) {
    position: sticky;
    top: 0;
    z-index: 2;
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}

body.ui-shadcn .sidebar-reopen-btn {
    min-width: 0;
    padding: 12px 14px;
    border-radius: 16px;
    border: 1px solid var(--shad-border);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0.015)),
        var(--shad-surface-elevated);
    box-shadow: var(--shad-shadow);
}

body.ui-shadcn .sidebar-reopen-btn:hover {
    border-color: var(--shad-border-strong);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.065), rgba(255, 255, 255, 0.02)),
        var(--shad-surface-elevated);
}

body.ui-shadcn .app-mobile-backdrop {
    background: rgba(2, 6, 23, 0.54);
}

body.ui-shadcn .mobile-dock {
    border-color: var(--shad-border-strong);
    background:
        linear-gradient(180deg, rgba(10, 14, 21, 0.985), rgba(14, 19, 28, 0.97)),
        var(--shad-surface-elevated);
    box-shadow: var(--shad-shadow-lg);
}

body.ui-shadcn[data-theme="light"] .mobile-dock {
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.992), rgba(248, 250, 252, 0.985)),
        var(--shad-surface-elevated);
}

body.ui-shadcn .mobile-dock-btn {
    border-color: transparent;
    background: var(--shad-surface-muted);
    color: var(--text-secondary);
    box-shadow: none;
}

body.ui-shadcn .mobile-dock-btn:hover:not(:disabled) {
    border-color: var(--shad-border-strong);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.065), rgba(255, 255, 255, 0.022)),
        var(--shad-surface-muted);
    color: var(--text-primary);
    transform: translateY(-1px);
}

body.ui-shadcn .mobile-dock-btn[data-state="active"] {
    border-color: rgba(79, 140, 255, 0.24);
    background: var(--accent-gradient);
    color: var(--primary-foreground);
    box-shadow: 0 10px 24px rgba(37, 99, 235, 0.22);
}

body.ui-shadcn .mobile-dock-btn[data-state="active"] .mobile-dock-icon {
    background: rgba(255, 255, 255, 0.16);
}

body.ui-shadcn .instructions-card-shell {
    padding: 14px;
    border-radius: 20px;
    border-color: var(--shad-border-strong);
    background:
        radial-gradient(circle at top right, rgba(79, 140, 255, 0.16), transparent 30%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0.015)),
        var(--shad-surface-elevated);
}

body.ui-shadcn .instructions-points {
    gap: 8px;
}

body.ui-shadcn .instructions-chip {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 0 10px;
    border-radius: 999px;
    border: 1px solid var(--shad-border);
    background: var(--shad-surface);
    color: var(--text-secondary);
}

body.ui-shadcn .detail-actions {
    gap: 10px;
}

body.ui-shadcn .property-modal-body,
body.ui-shadcn .report-modal-body {
    display: grid;
    gap: 16px;
}

body.ui-shadcn .property-modal-tabs-shell {
    display: block;
}

body.ui-shadcn .property-modal-tabs {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 8px;
    padding: 6px;
    border-radius: 18px;
    border: 1px solid var(--shad-border);
    background: var(--shad-surface-muted);
}

body.ui-shadcn .property-modal-tab {
    display: grid;
    gap: 4px;
    min-height: 62px;
    padding: 10px 12px;
    border-radius: 14px;
    border: 1px solid transparent;
    background: transparent;
    text-align: left;
    color: var(--text-secondary);
    transition:
        background var(--transition-fast),
        border-color var(--transition-fast),
        box-shadow var(--transition-fast),
        transform var(--transition-fast);
    scroll-snap-align: start;
}

body.ui-shadcn .property-modal-tab:hover {
    background: var(--shad-surface-elevated);
    border-color: var(--shad-border);
    color: var(--text-primary);
    transform: translateY(-1px);
}

body.ui-shadcn .property-modal-tab.active,
body.ui-shadcn .property-modal-tab[data-state="active"] {
    border-color: rgba(0, 106, 255, 0.18);
    background: var(--shad-surface-elevated);
    color: var(--text-primary);
    box-shadow: 0 6px 16px rgba(15, 23, 42, 0.08);
}

body.ui-shadcn .property-modal-tab-label {
    font-size: 0.8rem;
    font-weight: 700;
    line-height: 1.2;
}

body.ui-shadcn .property-modal-tab-note {
    font-size: 0.68rem;
    line-height: 1.4;
    color: var(--text-muted);
}

body.ui-shadcn .property-modal-tab-panel {
    display: grid;
    gap: 16px;
}

body.ui-shadcn .property-modal-hero {
    border-radius: 20px;
    border-color: var(--shad-border);
    background: var(--shad-shell-muted);
    box-shadow: none;
}

body.ui-shadcn .property-modal-overview-grid,
body.ui-shadcn .property-modal-stat-grid,
body.ui-shadcn .property-modal-section-grid {
    gap: 14px;
}

body.ui-shadcn :is(.property-modal-stat, .property-modal-section, .property-modal-deal-card, .property-modal-preview, .property-modal-history) {
    border-radius: 18px;
    border: 1px solid var(--shad-border);
    background: var(--shad-surface-muted);
    box-shadow: none;
}

body.ui-shadcn .property-modal-deal-pill {
    box-shadow: none;
}

body.ui-shadcn .property-modal-threshold-row {
    border-radius: 14px;
    border-color: var(--shad-border);
    background: rgba(255, 255, 255, 0.03);
}

body.ui-shadcn .property-modal-preview-shell {
    border-radius: 16px;
    border-color: var(--shad-border);
}

body.ui-shadcn .property-modal-links,
body.ui-shadcn .property-popup-actions,
body.ui-shadcn .property-modal-preview-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

body.ui-shadcn .property-modal-links-panel {
    display: grid;
    gap: 14px;
    padding: 16px;
    border-radius: 18px;
    border: 1px solid var(--shad-border);
    background: var(--shad-surface-muted);
}

body.ui-shadcn .property-modal-links-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

body.ui-shadcn .property-modal-links-header h4 {
    font-size: 0.92rem;
    font-weight: 700;
    color: var(--text-primary);
}

body.ui-shadcn .property-modal-links-header p,
body.ui-shadcn .property-modal-links-empty {
    font-size: 0.78rem;
    line-height: 1.55;
    color: var(--text-secondary);
}

body.ui-shadcn .property-modal-link-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 10px;
}

body.ui-shadcn .property-modal-link-card {
    display: grid;
    gap: 5px;
    min-height: 84px;
    padding: 14px;
    border-radius: 16px;
    border: 1px solid var(--shad-border);
    background: var(--shad-surface-elevated);
    text-decoration: none;
    transition:
        border-color var(--transition-fast),
        background var(--transition-fast),
        transform var(--transition-fast);
}

body.ui-shadcn .property-modal-link-card:hover {
    border-color: var(--shad-border-strong);
    background: rgba(79, 140, 255, 0.1);
    transform: translateY(-1px);
}

body.ui-shadcn .property-modal-link-label {
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--text-primary);
}

body.ui-shadcn .property-modal-link-note {
    font-size: 0.7rem;
    color: var(--text-muted);
}

body.ui-shadcn .property-popup {
    display: grid;
    gap: 6px;
    min-width: 240px;
}

body.ui-shadcn .property-popup-line,
body.ui-shadcn .property-popup-meta {
    color: var(--text-secondary);
}

body.ui-shadcn .report-modal-body {
    padding: 20px;
    background:
        radial-gradient(circle at top left, rgba(79, 140, 255, 0.12), transparent 28%),
        radial-gradient(circle at top right, rgba(34, 197, 94, 0.08), transparent 22%),
        var(--bg-primary);
}

body.ui-shadcn .report-sheet {
    border-radius: 28px;
    border: 1px solid var(--shad-border-strong);
    background:
        linear-gradient(180deg, rgba(10, 14, 21, 0.985), rgba(14, 19, 28, 0.975)),
        var(--shad-surface-elevated);
    box-shadow: var(--shad-shadow-lg);
}

body.ui-shadcn[data-theme="light"] .report-sheet {
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.992), rgba(248, 250, 252, 0.985)),
        var(--shad-surface-elevated);
}

body.ui-shadcn .report-hero {
    border-bottom: 1px solid var(--shad-border);
    background:
        radial-gradient(circle at top right, rgba(79, 140, 255, 0.12), transparent 34%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.035), rgba(255, 255, 255, 0.01));
}

body.ui-shadcn .report-section {
    padding: 24px 28px;
    border-top: 1px solid var(--shad-border);
}

body.ui-shadcn .report-section:first-of-type {
    border-top: none;
}

body.ui-shadcn .report-section h2 {
    font-size: 1rem;
    letter-spacing: -0.02em;
}

body.ui-shadcn .report-section-lead {
    color: var(--text-secondary);
}

/* ===== shadcn/ui Shell Refinements ===== */
body.ui-shadcn {
    --shad-shell:
        linear-gradient(180deg, rgba(10, 14, 21, 0.985), rgba(14, 19, 28, 0.972)),
        var(--shad-surface-elevated);
    --shad-shell-muted:
        linear-gradient(180deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.018)),
        var(--shad-surface);
    --shad-accent-soft: rgba(79, 140, 255, 0.1);
    --shad-accent-border: rgba(79, 140, 255, 0.22);
}

body.ui-shadcn[data-theme="light"] {
    --shad-shell:
        linear-gradient(180deg, rgba(255, 255, 255, 1), rgba(251, 252, 255, 0.995)),
        var(--shad-surface-elevated);
    --shad-shell-muted:
        linear-gradient(180deg, rgba(255, 255, 255, 0.995), rgba(247, 249, 252, 0.99)),
        var(--shad-surface);
    --shad-accent-soft: rgba(0, 106, 255, 0.07);
    --shad-accent-border: rgba(0, 106, 255, 0.18);
}

body.ui-shadcn #topbar {
    gap: 14px;
    background: rgba(8, 11, 18, 0.84);
    box-shadow: none;
}

body.ui-shadcn[data-theme="light"] #topbar {
    background: rgba(255, 255, 255, 0.96);
}

body.ui-shadcn #topbar::after {
    display: none;
}

body.ui-shadcn .logo {
    gap: 12px;
}

body.ui-shadcn .logo-copy {
    gap: 1px;
}

body.ui-shadcn .logo-caption {
    letter-spacing: 0.12em;
    color: var(--text-muted);
}

body.ui-shadcn .stats-pills {
    gap: 6px;
    width: max-content;
    max-width: none;
    padding: 4px;
    border-radius: 16px;
    border: 1px solid var(--shad-border);
    background: var(--shad-surface-muted);
    overflow: visible;
    scroll-padding-inline: 4px;
}

body.ui-shadcn .pill {
    min-width: 108px;
    max-width: none;
    flex-basis: auto;
    padding: 8px 12px 9px;
    border-radius: 12px;
    border-color: var(--shad-border);
    background: var(--shad-surface);
}

body.ui-shadcn .pill:hover {
    background: var(--shad-surface-elevated);
    box-shadow: var(--shad-shadow);
}

body.ui-shadcn[data-theme="light"] .pill:hover {
    background: var(--shad-surface-elevated);
}

body.ui-shadcn :is(#pill-total, #pill-selected, #pill-loaded) {
    border-color: var(--shad-border);
}

body.ui-shadcn .pill-value {
    margin-top: 4px;
}

body.ui-shadcn .toolbar-search-trigger {
    min-width: 0;
}

body.ui-shadcn .sidebar-header {
    align-items: flex-start;
    padding: 18px 20px 20px;
    background: var(--shad-surface);
}

body.ui-shadcn .sidebar-header-copy {
    display: grid;
    gap: 10px;
}

body.ui-shadcn .sidebar-header-line {
    align-items: flex-start;
    flex-direction: column;
    gap: 10px;
}

body.ui-shadcn .sidebar-kicker {
    min-height: 36px;
    padding: 0 14px;
    border-color: var(--shad-border);
    background: var(--shad-surface-muted);
    color: var(--text-muted);
    font-size: 0.72rem;
    letter-spacing: 0.08em;
}

body.ui-shadcn .sidebar-header h2 {
    font-size: 1.08rem;
    white-space: normal;
    overflow: visible;
    text-overflow: unset;
    line-height: 1.18;
}

body.ui-shadcn .sidebar-header-note {
    display: block;
    max-width: 52ch;
    font-size: 0.88rem;
    line-height: 1.55;
    color: var(--text-secondary);
}

body.ui-shadcn #btn-close-sidebar {
    align-self: flex-start;
    min-width: 48px;
    min-height: 48px;
    border-radius: 16px;
}

body.ui-shadcn .sidebar-sticky-controls {
    padding: 12px 12px 0;
    background:
        linear-gradient(180deg, rgba(8, 11, 18, 0.98) 0%, rgba(8, 11, 18, 0.92) 78%, rgba(8, 11, 18, 0.2) 100%);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
}

body.ui-shadcn[data-theme="light"] .sidebar-sticky-controls {
    background:
        linear-gradient(180deg, rgba(245, 247, 251, 0.99) 0%, rgba(245, 247, 251, 0.95) 78%, rgba(245, 247, 251, 0.24) 100%);
}

body.ui-shadcn .sidebar-top-controls {
    padding: 16px;
    border-radius: 22px;
    background: var(--shad-shell);
    box-shadow: var(--shad-shadow);
}

body.ui-shadcn .workspace-switcher {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
    overflow: visible;
}

body.ui-shadcn .sidebar-top-controls .sidebar-inline-details {
    width: auto;
    min-width: 0;
    overflow: visible;
    border-radius: 0;
    border: none;
    background: transparent;
    box-shadow: none;
}

body.ui-shadcn #workspace-page-tabs {
    flex: 1 1 420px;
    min-width: 320px;
}

body.ui-shadcn .workspace-page-summary-shell {
    flex: 1 1 320px;
    min-width: 260px;
}

body.ui-shadcn .sidebar-date-range-shell {
    flex: 0 1 320px;
    min-width: 240px;
}

body.ui-shadcn .analysis-quick-actions-shell {
    flex: 0 1 180px;
    min-width: 160px;
}

body.ui-shadcn :is(.workspace-page-summary, .sidebar-inline-summary) {
    width: 100%;
    min-height: 56px;
    padding: 12px 18px;
    border-radius: 20px;
    border: 1px solid var(--shad-border);
    background: var(--shad-surface-muted);
}

body.ui-shadcn .workspace-page-summary {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    max-width: none;
}

body.ui-shadcn .sidebar-inline-summary {
    display: grid;
    grid-template-columns: minmax(84px, auto) minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
}

body.ui-shadcn .workspace-page-summary-title {
    max-width: none;
    font-size: 0.92rem;
    line-height: 1.2;
}

body.ui-shadcn .workspace-page-kicker {
    min-height: 30px;
    padding: 0 12px;
    font-size: 0.7rem;
}

body.ui-shadcn .sidebar-inline-label {
    font-size: 0.72rem;
    letter-spacing: 0.12em;
}

body.ui-shadcn .sidebar-inline-value {
    max-width: none;
    text-align: center;
    font-size: 0.82rem;
    line-height: 1.2;
    white-space: nowrap;
}

body.ui-shadcn .sidebar-top-controls .sidebar-inline-panel {
    position: absolute;
    top: calc(100% + 10px);
    right: 0;
    left: auto;
    width: min(420px, calc(100vw - 48px));
    margin-top: 0;
    padding: 14px;
    border: 1px solid var(--shad-border-strong);
    border-radius: 20px;
    background: var(--shad-shell);
    box-shadow: var(--shad-shadow-lg);
}

body.ui-shadcn .analysis-quick-actions {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 8px;
}

body.ui-shadcn .analysis-quick-action {
    width: 100%;
    justify-content: flex-start;
}

body.ui-shadcn .workspace-page-tabs {
    gap: 6px;
    padding: 6px;
    border-radius: 18px;
}

body.ui-shadcn .workspace-page-tab {
    min-height: 46px;
    padding: 0 18px;
    border-radius: 14px;
    font-size: 0.78rem;
    font-weight: 700;
}

body.ui-shadcn .workspace-page-tab[data-state="active"] {
    box-shadow: 0 6px 14px rgba(15, 23, 42, 0.08);
}

body.ui-shadcn .analysis-section {
    margin-bottom: 22px;
    padding: 18px;
    border-radius: 20px;
    border: 1px solid var(--shad-border);
    background: var(--shad-surface);
    box-shadow: var(--shad-shadow);
}

body.ui-shadcn .analysis-section::before {
    display: none;
}

body.ui-shadcn .analysis-section:hover {
    border-color: var(--shad-accent-border);
    background: var(--shad-surface);
    box-shadow: 0 14px 32px rgba(15, 23, 42, 0.08);
}

body.ui-shadcn .analysis-section-header {
    margin-bottom: 14px;
}

body.ui-shadcn .analysis-section-kicker {
    margin-bottom: 10px;
    border-color: var(--shad-accent-border);
    background: var(--shad-accent-soft);
    color: var(--primary);
}

body.ui-shadcn .analysis-section-header p {
    max-width: 56ch;
}

body.ui-shadcn .analysis-section-status {
    background: var(--shad-surface-muted);
    color: var(--text-secondary);
}

body.ui-shadcn .analysis-section-toggle {
    border: 1px solid var(--shad-border);
    background: var(--shad-surface-elevated);
    color: var(--text-primary);
}

body.ui-shadcn .analysis-section-toggle:hover {
    border-color: var(--shad-accent-border);
    background: var(--shad-accent-soft);
    color: var(--primary);
}

body.ui-shadcn .analysis-section-toggle-icon {
    background: rgba(0, 106, 255, 0.08);
    color: var(--primary);
}

body.ui-shadcn .map-command-center {
    gap: 10px;
    width: min(438px, calc(100vw - var(--shell-sidebar-space) - 132px - var(--safe-left) - var(--safe-right)));
}

body.ui-shadcn .map-command-primary {
    display: grid;
    gap: 12px;
    padding: 16px;
    background: var(--shad-surface);
}

body.ui-shadcn .map-command-eyebrow-row,
body.ui-shadcn .map-command-meta,
body.ui-shadcn .map-command-actions,
body.ui-shadcn .map-command-summary {
    margin-top: 0;
    margin-bottom: 0;
}

body.ui-shadcn .map-command-kicker,
body.ui-shadcn .instructions-kicker {
    color: var(--text-muted);
}

body.ui-shadcn .map-command-theme,
body.ui-shadcn .map-command-visibility-btn {
    min-height: 28px;
    padding: 0 10px;
}

body.ui-shadcn .map-command-primary h2 {
    max-width: none;
    font-size: clamp(1.18rem, 2.1vw, 1.52rem);
    line-height: 1.15;
}

body.ui-shadcn .map-command-summary {
    max-width: none;
    font-size: 0.82rem;
    line-height: 1.55;
}

body.ui-shadcn .map-command-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

body.ui-shadcn .map-command-btn {
    width: 100%;
    min-width: 0;
}

body.ui-shadcn .map-command-secondary {
    gap: 10px;
}

body.ui-shadcn .map-status-card {
    min-height: 0;
    padding: 14px;
    background: var(--shad-surface-muted);
}

body.ui-shadcn .map-status-note {
    font-size: 0.74rem;
    line-height: 1.5;
}

body.ui-shadcn .function-terminal-shell {
    margin-top: 0;
    padding: 14px;
    border-top: none;
    background: var(--shad-shell-muted);
}

body.ui-shadcn .function-terminal-head {
    align-items: flex-start;
}

body.ui-shadcn .function-terminal-form {
    grid-template-columns: minmax(0, 1fr) auto;
}

body.ui-shadcn .function-terminal-run {
    align-self: stretch;
}

body.ui-shadcn .function-terminal-board-grid,
body.ui-shadcn .function-terminal-code-grid,
body.ui-shadcn .function-terminal-board-tape {
    gap: 8px;
}

body.ui-shadcn .function-terminal-list-row {
    align-items: flex-start;
    gap: 12px;
}

body.ui-shadcn .function-terminal-list-rank {
    border: 1px solid var(--shad-border);
    background: var(--shad-surface-elevated);
}

body.ui-shadcn .search-shell {
    padding: 0;
    overflow: hidden;
    background: var(--shad-shell);
}

body.ui-shadcn .search-shell-header {
    margin-bottom: 0;
    padding: 14px 14px 12px;
    border-bottom: 1px solid var(--shad-border);
    background: var(--shad-surface);
}

body.ui-shadcn[data-theme="light"] .search-shell-header {
    background: rgba(255, 255, 255, 0.96);
}

body.ui-shadcn .command-input-shell {
    margin: 12px 14px 0;
}

body.ui-shadcn .search-meta {
    order: 2;
    padding: 10px 16px 0;
}

body.ui-shadcn .search-results {
    order: 3;
    gap: 12px;
    margin-top: 0;
    padding: 14px 14px 0;
    scroll-padding-top: 58px;
}

body.ui-shadcn .search-shell-footer {
    order: 4;
    margin-top: 10px;
    padding: 12px 14px 14px;
    border-top: 1px solid var(--shad-border);
}

body.ui-shadcn .search-empty {
    display: grid;
    gap: 6px;
    padding: 16px;
    border-radius: 16px;
    border: 1px dashed var(--shad-border);
    background: var(--shad-surface-muted);
}

body.ui-shadcn .search-empty p {
    margin: 0;
}

body.ui-shadcn .search-empty-kicker {
    font-size: 0.66rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--text-muted);
}

body.ui-shadcn .search-group-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

body.ui-shadcn .search-group-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 28px;
    min-height: 24px;
    padding: 0 8px;
    border-radius: 999px;
    border: 1px solid var(--shad-border);
    background: var(--shad-surface-muted);
    color: var(--text-muted);
    font-size: 0.68rem;
    font-weight: 700;
}

body.ui-shadcn .search-group-list {
    display: grid;
    gap: 8px;
}

body.ui-shadcn .search-result {
    position: relative;
    display: grid;
    gap: 10px;
    padding: 14px 14px 14px 18px;
    border-radius: 16px;
    border: 1px solid var(--shad-border);
    background: var(--shad-surface);
    box-shadow: var(--shad-shadow);
    overflow: hidden;
}

body.ui-shadcn .search-result::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 3px;
    background: rgba(0, 106, 255, 0.3);
}

body.ui-shadcn .search-result.is-place::before {
    background: rgba(0, 106, 255, 0.72);
}

body.ui-shadcn .search-result.is-coordinate::before {
    background: rgba(100, 116, 139, 0.72);
}

body.ui-shadcn .search-result:hover,
body.ui-shadcn .search-result.active {
    transform: translateY(-1px);
    background: var(--shad-surface-elevated);
    box-shadow:
        0 14px 32px rgba(15, 23, 42, 0.08),
        inset 0 0 0 1px rgba(0, 106, 255, 0.08);
}

body.ui-shadcn .search-result-copy {
    min-width: 0;
    display: grid;
    gap: 5px;
}

body.ui-shadcn .search-result-title-row {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
    flex-wrap: wrap;
}

body.ui-shadcn .search-result-kind {
    display: inline-flex;
    align-items: center;
    min-height: 22px;
    padding: 0 8px;
    border-radius: 999px;
    color: var(--text-muted);
    font-size: 0.64rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    flex: 0 0 auto;
}

body.ui-shadcn .search-result-actions {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
}

body.ui-shadcn .search-result-enter {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 26px;
    padding: 0 8px;
    border-radius: 8px;
    border: 1px solid var(--shad-border);
    background: var(--shad-surface-muted);
    color: var(--text-muted);
    font-size: 0.68rem;
    font-weight: 700;
}

body.ui-shadcn .search-result-locate {
    min-height: 32px;
    padding: 0 10px;
    border-radius: 10px;
}

body.ui-shadcn .search-result-footer {
    margin-top: 0;
    padding-top: 8px;
    border-top: 1px solid rgba(15, 23, 42, 0.08);
}

body.ui-shadcn .detail-header {
    position: sticky;
    top: 0;
    z-index: 3;
    padding: 12px 16px;
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
}

body.ui-shadcn .detail-body {
    scrollbar-gutter: stable both-edges;
}

body.ui-shadcn .detail-title-group {
    flex-wrap: wrap;
    row-gap: 4px;
}

body.ui-shadcn .property-modal-card {
    scrollbar-gutter: stable both-edges;
}

body.ui-shadcn .property-modal-header,
body.ui-shadcn .report-modal-header {
    padding: 16px 18px;
    background: var(--shad-shell);
}

body.ui-shadcn .property-modal-title-group,
body.ui-shadcn .report-modal-title-group {
    display: grid;
    gap: 4px;
}

body.ui-shadcn .property-modal-subtitle,
body.ui-shadcn .report-modal-subtitle {
    color: var(--text-secondary);
}

body.ui-shadcn .property-modal-body {
    gap: 14px;
    padding: 18px;
}

body.ui-shadcn .property-modal-tabs-shell {
    position: sticky;
    top: calc(var(--property-modal-header-offset, 0px) - 1px);
    z-index: 3;
    padding: 12px 0 4px;
    background:
        linear-gradient(180deg, rgba(10, 14, 21, 0.985) 0%, rgba(10, 14, 21, 0.95) 68%, rgba(10, 14, 21, 0) 100%);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
}

body.ui-shadcn[data-theme="light"] .property-modal-tabs-shell {
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.992) 0%, rgba(255, 255, 255, 0.95) 68%, rgba(255, 255, 255, 0) 100%);
}

body.ui-shadcn .property-modal-tabs {
    padding: 4px;
    border-radius: 16px;
}

body.ui-shadcn .property-modal-tab-panel {
    scroll-margin-top: calc(var(--property-modal-header-offset, 0px) + 92px);
}

body.ui-shadcn .property-modal-hero {
    display: grid;
    gap: 14px;
    padding: 16px;
    background: var(--shad-shell-muted);
}

body.ui-shadcn .property-modal-price {
    margin-top: 0;
    font-size: clamp(1.35rem, 3vw, 1.85rem);
    letter-spacing: -0.04em;
}

body.ui-shadcn .property-modal-summary,
body.ui-shadcn .property-modal-chip-row {
    margin-top: 0;
}

body.ui-shadcn .property-modal-grid {
    gap: 10px;
}

body.ui-shadcn .property-modal-field {
    display: grid;
    gap: 6px;
    border-radius: 14px;
    background: var(--shad-surface-elevated);
}

body.ui-shadcn .property-modal-field-label {
    margin-bottom: 0;
}

body.ui-shadcn .property-modal-history-header {
    padding-bottom: 12px;
    border-bottom: 1px solid var(--shad-border);
}

body.ui-shadcn .property-modal-history-table-wrap {
    border-radius: 14px;
    overflow: auto;
    background: var(--shad-surface-elevated);
}

body.ui-shadcn .property-modal-links-panel {
    background: var(--shad-shell-muted);
}

body.ui-shadcn .property-modal-link-card {
    min-height: 92px;
}

body.ui-shadcn .report-sheet {
    overflow: hidden;
    background: var(--shad-shell);
}

body.ui-shadcn .report-hero {
    background:
        radial-gradient(circle at top right, rgba(79, 140, 255, 0.08), transparent 34%),
        rgba(255, 255, 255, 0.015);
}

@media (max-width: 1240px) {
    body.ui-shadcn .comparison-benchmark-shell {
        grid-template-columns: 1fr;
    }

    body.ui-shadcn .comparison-benchmark-rail {
        position: static;
    }

    body.ui-shadcn :is(.comparison-benchmark-tablist, .comparison-index-tablist) {
        grid-template-columns: none;
        grid-auto-flow: column;
        gap: 8px;
        overflow-x: auto;
        overflow-y: hidden;
        scroll-snap-type: x proximity;
        scrollbar-width: none;
    }

    body.ui-shadcn .comparison-benchmark-tablist {
        grid-auto-columns: minmax(208px, 1fr);
    }

    body.ui-shadcn .comparison-index-tablist {
        grid-auto-columns: minmax(216px, 1fr);
    }

    body.ui-shadcn :is(.comparison-benchmark-tablist, .comparison-index-tablist)::-webkit-scrollbar {
        display: none;
    }
}

@media (max-width: 1100px) {
    body.ui-shadcn .comparison-scoreboard,
    body.ui-shadcn .comparison-guide-grid,
    body.ui-shadcn .comparison-insights,
    body.ui-shadcn .property-modal-stat-grid,
    body.ui-shadcn .property-modal-section-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    body.ui-shadcn .comparison-index-tablist {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    body.ui-shadcn .comparison-benchmark-tablist {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 780px) {
    body.ui-shadcn .property-modal-tabs {
        grid-template-columns: none;
        grid-auto-flow: column;
        grid-auto-columns: minmax(170px, 1fr);
        overflow-x: auto;
        overflow-y: hidden;
        scroll-snap-type: x proximity;
        scrollbar-width: none;
    }

    body.ui-shadcn .property-modal-tabs::-webkit-scrollbar {
        display: none;
    }

    body.ui-shadcn .comparison-workspace-toggle {
        width: 100%;
        display: grid;
        grid-template-columns: 1fr 1fr;
    }

    body.ui-shadcn .comparison-grid,
    body.ui-shadcn .comparison-scoreboard,
    body.ui-shadcn .comparison-guide-grid,
    body.ui-shadcn .comparison-insights,
    body.ui-shadcn .property-modal-overview-grid,
    body.ui-shadcn .property-modal-stat-grid,
    body.ui-shadcn .property-modal-section-grid {
        grid-template-columns: 1fr;
    }

    body.ui-shadcn .comparison-index-tabs-header,
    body.ui-shadcn .comparison-index-meta {
        justify-content: flex-start;
    }

    body.ui-shadcn .comparison-index-tabs-header {
        flex-direction: column;
    }

    body.ui-shadcn .report-section,
    body.ui-shadcn .report-hero,
    body.ui-shadcn .report-modal-body {
        padding-inline: 18px;
    }
}

@media (max-width: 768px) {
    body.ui-shadcn #topbar {
        background: rgba(8, 11, 18, 0.9);
        box-shadow:
            0 1px 0 rgba(255, 255, 255, 0.04),
            0 18px 44px rgba(2, 6, 23, 0.2);
    }

    body.ui-shadcn[data-theme="light"] #topbar {
        background: rgba(248, 250, 252, 0.92);
    }

    body.ui-shadcn .stats-pills {
        overflow-x: auto;
        overflow-y: hidden;
        scroll-snap-type: x proximity;
    }

    body.ui-shadcn .pill {
        min-width: 0;
        max-width: none;
        flex-basis: auto;
        scroll-snap-align: start;
    }

    body.ui-shadcn #sidebar {
        border-left: none;
        border-radius: 26px;
        border-color: var(--shad-border-strong);
        box-shadow: var(--shad-shadow-lg);
    }

    body.ui-shadcn .search-shell,
    body.ui-shadcn #sidebar {
        background:
            linear-gradient(180deg, rgba(10, 14, 21, 0.99), rgba(14, 19, 28, 0.985)),
            var(--shad-surface-elevated);
    }

    body.ui-shadcn[data-theme="light"] .search-shell,
    body.ui-shadcn[data-theme="light"] #sidebar {
        background:
            linear-gradient(180deg, rgba(255, 255, 255, 0.994), rgba(248, 250, 252, 0.988)),
            var(--shad-surface-elevated);
    }

    body.ui-shadcn .mobile-dock-btn:disabled {
        background: var(--shad-surface);
    }
}

@media (min-width: 769px) and (max-width: 1100px) {
    body.ui-shadcn .pill {
        min-width: 100px;
        flex-basis: auto;
    }
}

@media (max-width: 620px) {
    body.ui-shadcn .comparison-index-tablist,
    body.ui-shadcn .comparison-benchmark-tablist {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 1100px) {
    body.ui-shadcn .map-command-secondary {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 780px) {
    body.ui-shadcn .map-command-actions {
        grid-template-columns: 1fr;
    }

    body.ui-shadcn .function-terminal-form {
        grid-template-columns: 1fr;
    }

    body.ui-shadcn .function-terminal-run {
        width: 100%;
    }

    body.ui-shadcn .search-result-top {
        flex-direction: column;
    }

    body.ui-shadcn .search-result-actions {
        width: 100%;
        justify-content: space-between;
    }

    body.ui-shadcn .search-result-enter {
        display: none;
    }
}

@media (max-width: 1080px) {
    body.ui-shadcn .workspace-switcher {
        display: grid;
        gap: 12px;
    }

    body.ui-shadcn #workspace-page-tabs,
    body.ui-shadcn .workspace-page-summary-shell,
    body.ui-shadcn .sidebar-date-range-shell,
    body.ui-shadcn .analysis-quick-actions-shell {
        flex: none;
        min-width: 0;
    }

    body.ui-shadcn .sidebar-top-controls .sidebar-inline-details {
        width: 100%;
        overflow: hidden;
        border-radius: 24px;
        border: 1px solid var(--shad-border);
        background: rgba(255, 255, 255, 0.025);
        box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.02);
    }

    body.ui-shadcn[data-theme="light"] .sidebar-top-controls .sidebar-inline-details {
        background: rgba(255, 255, 255, 0.72);
    }

    body.ui-shadcn :is(.workspace-page-summary, .sidebar-inline-summary) {
        min-height: 62px;
        padding: 16px 18px;
    }

    body.ui-shadcn .sidebar-top-controls .sidebar-inline-panel {
        position: static;
        top: auto;
        right: auto;
        left: auto;
        width: auto;
        padding: 0 18px 18px;
        border: none;
        border-radius: 0;
        background: transparent;
        box-shadow: none;
    }
}

@media (max-width: 768px) {
    body.ui-shadcn .stats-pills {
        width: 100%;
    }

    body.ui-shadcn .sidebar-header {
        padding: 16px 18px 18px;
    }

    body.ui-shadcn .property-modal-tabs-shell {
        padding-top: 10px;
    }

    body.ui-shadcn .detail-header {
        padding: 12px 14px;
    }

    body.ui-shadcn .workspace-switcher {
        gap: 12px;
    }

    body.ui-shadcn :is(.workspace-page-summary, .sidebar-inline-summary) {
        min-height: 62px;
        padding: 16px 18px;
    }

    body.ui-shadcn .workspace-page-tab {
        min-height: 48px;
        padding: 0 16px;
    }
}

@media (max-width: 620px) {
    body.ui-shadcn .search-shell-header {
        flex-direction: column;
    }

    body.ui-shadcn .search-shell-actions {
        width: 100%;
        justify-content: space-between;
    }

    body.ui-shadcn .map-command-center {
        width: min(calc(100vw - 16px), 100%);
    }

    body.ui-shadcn .map-command-primary,
    body.ui-shadcn .map-status-card,
    body.ui-shadcn .function-terminal-shell,
    body.ui-shadcn .function-terminal-board {
        border-radius: 18px;
    }
}
