:root {
  --bg: #edf2f5;
  --panel: rgba(255, 255, 255, 0.86);
  --ink: #172222;
  --muted: #5f6d6d;
  --line: #d4e0de;
  --primary: #1a7f6f;
  --primary-strong: #0f6659;
  --accent: #d9921e;
  --danger: #b03a2e;
  --surface-glass: linear-gradient(180deg, rgba(255, 255, 255, 0.94) 0%, rgba(245, 250, 250, 0.82) 100%);
  --surface-glass-strong: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(240, 248, 247, 0.86) 100%);
  --surface-border: rgba(177, 203, 199, 0.62);
  --shadow-soft: 0 10px 26px rgba(20, 45, 54, 0.11);
  --shadow-panel: 0 18px 34px rgba(17, 42, 50, 0.11);
  --focus-ring: 0 0 0 3px rgba(78, 129, 242, 0.18);
  --neg-ink-strong: #17323d;
  --neg-ink: #243e49;
  --neg-muted: #657781;
  --neg-muted-strong: #4d616c;
  --neg-shell: #ffffff;
  --neg-surface: #f5f8fa;
  --neg-surface-strong: #eef4f7;
  --neg-divider: #dbe4e8;
  --neg-divider-strong: #c7d2d8;
  --neg-buyer: #117764;
  --neg-buyer-soft: #eaf6f1;
  --neg-watch: #8a6a27;
  --neg-watch-soft: #f8f1e3;
  --neg-seller: #b95f38;
  --neg-seller-soft: #fff0ea;
  --popup-shell-gap: 12px;
  --popup-shell-actions-gap: 8px;
  --popup-shell-toolbar-gap: 10px;
  --popup-shell-toolbar-actions-gap: 6px;
  --popup-section-gap: 10px;
  --popup-section-actions-gap: 8px;
  --favorite-activity-panel-gap: 8px;
  --favorite-activity-panel-padding: 9px 10px 10px;
  --favorite-activity-panel-dense-gap: 6px;
  --favorite-activity-panel-dense-padding: 8px 9px;
  --favorite-activity-panel-radius: 18px;
  --favorite-activity-panel-border: rgba(198, 211, 196, 0.92);
  --favorite-activity-panel-bg: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(240, 246, 238, 0.95) 100%);
  --favorite-activity-panel-shadow: 0 10px 18px rgba(27, 54, 39, 0.05);
  --favorite-activity-toolbar-gap: 7px;
  --favorite-activity-toolbar-padding: 7px 9px;
  --favorite-activity-toolbar-radius: 16px;
  --favorite-activity-toolbar-border: rgba(201, 214, 197, 0.94);
  --favorite-activity-toolbar-bg: linear-gradient(180deg, rgba(255, 255, 255, 0.96) 0%, rgba(244, 248, 240, 0.94) 100%);
  --favorite-activity-toolbar-shadow: 0 8px 18px rgba(22, 47, 29, 0.05);
  --favorite-activity-dashboard-dialog-radius: 22px;
  --favorite-activity-dashboard-dialog-border: #cfddc3;
  --favorite-activity-dashboard-dialog-bg:
    radial-gradient(circle at top left, rgba(247, 255, 232, 0.88), transparent 34%),
    linear-gradient(180deg, #fcfff7 0%, #f3f7ea 48%, #edf2f6 100%);
  --favorite-activity-dashboard-dialog-shadow:
    0 28px 56px rgba(10, 21, 23, 0.34),
    0 10px 22px rgba(53, 73, 29, 0.12);
  --favorite-activity-dashboard-head-gap: 10px;
  --favorite-activity-dashboard-head-padding: 8px 12px;
  --favorite-activity-dashboard-head-border: rgba(194, 209, 180, 0.9);
  --favorite-activity-dashboard-head-bg: linear-gradient(180deg, rgba(255, 255, 255, 0.96) 0%, rgba(242, 248, 228, 0.92) 100%);
  --favorite-activity-dashboard-head-actions-gap: 6px;
  --favorite-activity-dashboard-mobile-inline-padding: 14px;
  --favorite-activity-dashboard-body-padding: 8px 12px 16px;
  --favorite-activity-dashboard-body-gap: 8px;
  --favorite-activity-dashboard-body-mobile-padding: 8px 10px 14px;
  --favorite-activity-dashboard-refresh-btn-padding: 6px 10px;
  --favorite-activity-dashboard-refresh-btn-border: rgba(130, 157, 79, 0.72);
  --favorite-activity-dashboard-refresh-btn-bg: linear-gradient(180deg, #ffffff 0%, #eef6db 100%);
  --favorite-activity-dashboard-refresh-btn-color: #496b1c;
  --favorite-activity-dashboard-refresh-btn-shadow: 0 4px 10px rgba(71, 103, 25, 0.08);
  --favorite-activity-dashboard-close-btn-border: #9abb63;
  --favorite-activity-dashboard-close-btn-bg: linear-gradient(180deg, #c0dd82 0%, #8fae4e 100%);
  --favorite-activity-dashboard-feed-gap: 10px;
  --favorite-activity-dashboard-feed-margin-top: 14px;
  --favorite-activity-dashboard-feed-item-gap: 10px;
  --favorite-activity-dashboard-feed-item-padding: 12px;
  --favorite-activity-dashboard-feed-item-mobile-padding: 10px;
  --favorite-activity-dashboard-feed-item-radius: 16px;
  --favorite-activity-dashboard-feed-item-border: rgba(140, 158, 178, 0.2);
  --favorite-activity-dashboard-feed-item-bg: linear-gradient(180deg, rgba(250, 252, 253, 0.98) 0%, rgba(244, 247, 250, 0.98) 100%);
  --favorite-activity-dashboard-feed-item-surge-border: rgba(224, 108, 72, 0.26);
  --favorite-activity-dashboard-feed-item-watch-border: rgba(209, 152, 50, 0.26);
  --favorite-activity-card-gap: 7px;
  --favorite-activity-card-surge-border: rgba(224, 107, 67, 0.45);
  --favorite-activity-card-surge-bg: linear-gradient(180deg, rgba(255, 252, 248, 0.98) 0%, rgba(255, 244, 236, 0.96) 100%);
  --favorite-activity-card-lead-border: rgba(186, 120, 34, 0.38);
  --favorite-activity-card-lead-bg: linear-gradient(180deg, rgba(255, 250, 242, 0.98) 0%, rgba(255, 245, 228, 0.96) 100%);
  --favorite-activity-card-confirm-border: rgba(46, 128, 124, 0.36);
  --favorite-activity-card-confirm-bg: linear-gradient(180deg, rgba(247, 255, 254, 0.98) 0%, rgba(236, 249, 247, 0.96) 100%);
  --favorite-activity-card-watch-border: rgba(93, 118, 182, 0.3);
  --favorite-activity-card-watch-bg: linear-gradient(180deg, rgba(249, 251, 255, 0.98) 0%, rgba(239, 244, 253, 0.96) 100%);
  --favorite-activity-card-neutral-bg: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(245, 248, 251, 0.96) 100%);
  --favorite-activity-stat-card-gap: 6px;
  --favorite-activity-stat-card-padding: 14px 15px;
  --favorite-activity-stat-card-bg: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(239, 246, 241, 0.94) 100%);
  --favorite-activity-stat-card-shadow: 0 10px 20px rgba(27, 54, 39, 0.06);
  --favorite-activity-overview-card-gap: 6px;
  --favorite-activity-overview-card-padding: 9px 10px 10px;
  --favorite-activity-overview-card-radius: 17px;
  --favorite-activity-overview-card-border: rgba(195, 207, 198, 0.92);
  --favorite-activity-overview-card-bg: rgba(255, 255, 255, 0.9);
  --favorite-activity-overview-card-shadow: 0 10px 16px rgba(27, 54, 39, 0.06);
  --favorite-activity-compare-summary-gap: 9px;
  --favorite-activity-compare-summary-padding: 12px 13px;
  --favorite-activity-compare-summary-border: rgba(194, 208, 194, 0.92);
  --favorite-activity-compare-summary-bg: linear-gradient(180deg, rgba(255, 255, 255, 0.99) 0%, rgba(244, 248, 242, 0.96) 100%);
  --favorite-activity-compare-summary-shadow: 0 10px 20px rgba(25, 51, 32, 0.07);
  --favorite-activity-compare-wrap-border: rgba(194, 208, 194, 0.92);
  --favorite-activity-compare-wrap-bg: rgba(255, 255, 255, 0.98);
  --favorite-activity-pill-radius: 999px;
  --favorite-activity-chip-padding: 4px 8px;
  --favorite-activity-chip-stage-padding: 4px 9px;
  --favorite-activity-chip-font-size: 11px;
  --favorite-activity-chip-bg: #fbf3dd;
  --favorite-activity-chip-color: #8f6d21;
  --favorite-activity-chip-compact-padding: 3px 7px;
  --favorite-activity-chip-compact-font-size: 10px;
  --favorite-activity-stage-badge-min-height: 24px;
  --favorite-activity-stage-badge-font-size: 0.67rem;
  --favorite-activity-stage-badge-border: rgba(166, 178, 189, 0.88);
  --favorite-activity-stage-badge-bg: rgba(245, 248, 252, 0.94);
  --favorite-activity-stage-badge-color: #2a4557;
  --favorite-activity-stage-badge-surge-border: rgba(224, 107, 67, 0.42);
  --favorite-activity-stage-badge-surge-bg: rgba(255, 236, 228, 0.98);
  --favorite-activity-stage-badge-surge-color: #a34a24;
  --favorite-activity-stage-badge-lead-border: rgba(186, 120, 34, 0.36);
  --favorite-activity-stage-badge-lead-bg: rgba(255, 243, 219, 0.98);
  --favorite-activity-stage-badge-lead-color: #915b0f;
  --favorite-activity-stage-badge-confirm-border: rgba(46, 128, 124, 0.34);
  --favorite-activity-stage-badge-confirm-bg: rgba(229, 247, 244, 0.98);
  --favorite-activity-stage-badge-confirm-color: #19615b;
  --favorite-activity-stage-badge-watch-border: rgba(93, 118, 182, 0.3);
  --favorite-activity-stage-badge-watch-bg: rgba(233, 240, 253, 0.98);
  --favorite-activity-stage-badge-watch-color: #315070;
  --favorite-activity-stage-badge-neutral-border: rgba(179, 189, 198, 0.6);
  --favorite-activity-stage-badge-neutral-bg: rgba(245, 248, 251, 0.98);
  --favorite-activity-stage-badge-neutral-color: #5d707b;
  --favorite-activity-filter-row-gap: 8px;
  --favorite-activity-filter-row-margin-bottom: 10px;
  --favorite-activity-filter-row-mobile-gap: 6px;
  --favorite-activity-filter-row-mobile-margin-bottom: 8px;
  --favorite-activity-filter-row-dense-mobile-margin-bottom: 6px;
  --favorite-activity-filter-chip-gap: 8px;
  --favorite-activity-filter-chip-padding: 8px 12px;
  --favorite-activity-filter-chip-font-size: 12px;
  --favorite-activity-filter-chip-border: rgba(48, 74, 60, 0.12);
  --favorite-activity-filter-chip-bg: linear-gradient(180deg, rgba(255, 255, 255, 0.92) 0%, rgba(247, 250, 247, 0.9) 100%);
  --favorite-activity-filter-chip-color: #42594d;
  --favorite-activity-filter-chip-active-border: rgba(21, 107, 83, 0.32);
  --favorite-activity-filter-chip-active-shadow:
    0 10px 24px rgba(24, 65, 47, 0.12),
    inset 0 1px 0 rgba(255, 255, 255, 0.9);
  --favorite-activity-filter-chip-mobile-gap: 5px;
  --favorite-activity-filter-chip-dense-mobile-gap: 6px;
  --favorite-activity-filter-chip-mobile-padding: 6px 9px;
  --favorite-activity-filter-chip-mobile-font-size: 11px;
  --favorite-activity-sort-row-gap: 8px;
  --favorite-activity-sort-row-mobile-gap: 6px;
  --favorite-activity-sort-chip-min-height: 40px;
  --favorite-activity-sort-chip-border: rgba(39, 65, 50, 0.14);
  --favorite-activity-sort-chip-bg: linear-gradient(180deg, rgba(255, 255, 255, 0.94) 0%, rgba(247, 250, 247, 0.9) 100%);
  --favorite-activity-sort-chip-color: #445b4e;
  --favorite-activity-sort-chip-padding: 8px 11px;
  --favorite-activity-sort-chip-active-border: rgba(22, 122, 92, 0.34);
  --favorite-activity-sort-chip-active-bg: linear-gradient(180deg, rgba(236, 251, 244, 0.98) 0%, rgba(216, 240, 229, 0.96) 100%);
  --favorite-activity-sort-chip-active-color: #143f2f;
  --favorite-activity-sort-chip-active-shadow:
    0 8px 16px rgba(31, 63, 34, 0.08),
    inset 0 1px 0 rgba(255, 255, 255, 0.82);
  --favorite-activity-sort-chip-mobile-min-height: 34px;
  --favorite-activity-sort-chip-mobile-padding: 6px 4px;
  --favorite-activity-sort-chip-mobile-font-size: 0.54rem;
  --favorite-activity-stage-grid-gap: 8px;
  --favorite-activity-stage-grid-mobile-gap: 6px;
  --favorite-activity-stage-filter-gap: 4px;
  --favorite-activity-stage-filter-padding: 11px 10px;
  --favorite-activity-stage-filter-radius: 14px;
  --favorite-activity-stage-filter-border: rgba(194, 206, 197, 0.92);
  --favorite-activity-stage-filter-bg: rgba(255, 255, 255, 0.82);
  --favorite-activity-stage-filter-color: #264131;
  --favorite-activity-stage-filter-shadow: 0 8px 16px rgba(27, 54, 39, 0.06);
  --favorite-activity-stage-filter-active-shadow: 0 14px 24px rgba(27, 54, 39, 0.1);
  --favorite-activity-stage-filter-mobile-gap: 2px;
  --favorite-activity-stage-filter-mobile-padding: 8px 4px;
  --favorite-activity-stage-filter-mobile-radius: 12px;
  --favorite-activity-compare-chip-gap: 8px;
  --favorite-activity-compare-chip-padding: 6px 10px;
  --favorite-activity-compare-chip-border: rgba(191, 204, 191, 0.92);
  --favorite-activity-compare-chip-bg: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(242, 247, 240, 0.96) 100%);
  --favorite-activity-compare-chip-shadow: 0 6px 12px rgba(27, 54, 39, 0.05);
  --favorite-activity-compare-chip-mobile-padding: 6px 8px;
  --favorite-activity-metric-grid-gap: 8px;
  --favorite-activity-metric-gap: 3px;
  --favorite-activity-metric-border: rgba(198, 209, 219, 0.92);
  --favorite-activity-metric-radius: 10px;
  --favorite-activity-metric-padding: 8px 9px;
  --favorite-activity-metric-bg: rgba(255, 255, 255, 0.78);
  --favorite-activity-chip-score-bg: rgba(18, 63, 83, 0.09);
  --favorite-activity-chip-score-color: #173f55;
  --favorite-activity-chip-subdued-bg: rgba(92, 110, 124, 0.08);
  --favorite-activity-chip-subdued-color: #5b6d7c;
  --favorite-activity-metric-permit-border: rgba(202, 173, 116, 0.38);
  --favorite-activity-metric-trade-border: rgba(108, 165, 156, 0.36);
  --favorite-alerts-panel-gap: 6px;
  --favorite-alerts-panel-padding: 8px 10px;
  --favorite-alerts-panel-radius: 12px;
  --favorite-alerts-panel-border: rgba(196, 210, 216, 0.9);
  --favorite-alerts-panel-bg: linear-gradient(180deg, rgba(255, 255, 255, 0.94) 0%, rgba(244, 249, 252, 0.88) 100%);
  --favorite-alerts-panel-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.72);
  --favorite-alerts-head-gap: 8px;
  --favorite-alerts-actions-gap: 8px;
  --favorite-alerts-toggle-min-width: 58px;
  --favorite-alerts-toggle-padding: 5px 10px;
  --favorite-alerts-toggle-border: #bfd1d9;
  --favorite-alerts-toggle-bg: linear-gradient(180deg, #ffffff 0%, #edf5fb 100%);
  --favorite-alerts-toggle-color: #315070;
  --favorite-alerts-toggle-secondary-min-width: 72px;
  --favorite-alerts-toggle-secondary-border: #d7c295;
  --favorite-alerts-toggle-secondary-bg: linear-gradient(180deg, #fffdfa 0%, #f9f0df 100%);
  --favorite-alerts-toggle-secondary-color: #7a5420;
  --favorite-scroll-top-btn-border: #bcc9d5;
  --favorite-scroll-top-btn-bg: linear-gradient(180deg, rgba(247, 251, 255, 0.96) 0%, rgba(232, 238, 245, 0.94) 100%);
  --favorite-scroll-top-btn-shadow:
    0 10px 21px rgba(16, 27, 43, 0.18),
    inset 0 1px 0 rgba(255, 255, 255, 0.85);
  --favorite-scroll-top-btn-color: #162334;
  --favorite-ask-delta-up-color: #c2453f;
  --favorite-ask-delta-up-bg: linear-gradient(180deg, #fff2f1 0%, #ffe5e2 100%);
  --favorite-ask-delta-up-shadow: inset 0 0 0 1px rgba(214, 75, 68, 0.14);
  --favorite-ask-delta-down-color: #2f5fcd;
  --favorite-ask-delta-down-bg: linear-gradient(180deg, #f1f6ff 0%, #e5eeff 100%);
  --favorite-ask-delta-down-shadow: inset 0 0 0 1px rgba(47, 95, 205, 0.14);
  --favorite-ask-delta-fresh-color: #ffffff;
  --favorite-ask-delta-up-fresh-bg: linear-gradient(180deg, #ef6a61 0%, #d64b44 100%);
  --favorite-ask-delta-up-fresh-shadow: inset 0 0 0 1px rgba(171, 32, 26, 0.14);
  --favorite-ask-delta-down-fresh-bg: linear-gradient(180deg, #4a82f1 0%, #2f5fcd 100%);
  --favorite-ask-delta-down-fresh-shadow: inset 0 0 0 1px rgba(32, 77, 176, 0.16);
  --favorite-alerts-head-strong-color: #214745;
  --favorite-alerts-meta-color: #657776;
  --favorite-alerts-toggle-hover-border: #9fbad1;
  --favorite-alerts-toggle-hover-color: #203d5d;
  --favorite-alerts-toggle-secondary-hover-border: #cda769;
  --favorite-alerts-toggle-secondary-hover-color: #623f11;
  --favorite-alert-item-bg: #fff;
  --favorite-alert-item-shadow: 0 3px 8px rgba(27, 51, 74, 0.05);
  --favorite-alert-item-hover-shadow: 0 6px 14px rgba(27, 51, 74, 0.08);
  --favorite-alert-item-focus-outline: rgba(136, 104, 228, 0.55);
  --favorite-alert-item-meta-color: #6c7c7b;
  --favorite-alert-item-title-color: #203848;
  --favorite-activity-board-alert-head-color: #173f55;
  --favorite-activity-market-bar-border: rgba(198, 214, 219, 0.94);
  --favorite-activity-market-bar-bg: linear-gradient(180deg, rgba(255, 255, 255, 0.96) 0%, rgba(240, 246, 245, 0.92) 100%);
  --favorite-activity-market-bar-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.9);
  --favorite-activity-market-bar-kicker-color: #6d7f8b;
  --favorite-activity-market-bar-title-color: #173246;
  --favorite-activity-market-bar-side-border: rgba(205, 217, 222, 0.92);
  --favorite-activity-market-bar-side-bg: rgba(255, 255, 255, 0.9);
  --favorite-activity-market-bar-side-copy-color: #718390;
  --favorite-activity-market-bar-side-title-color: #173246;
  --favorite-activity-market-bar-divider: rgba(217, 226, 231, 0.9);
  --favorite-activity-market-bar-focus-outline: rgba(57, 113, 196, 0.55);
  --favorite-activity-market-bar-mortgage-kicker-color: #6b7f8d;
  --favorite-activity-market-bar-mortgage-title-color: #173246;
  --favorite-activity-market-bar-mortgage-copy-color: #486777;
  --favorite-activity-overview-summary-macro-color: #365e7b;
  --favorite-activity-overview-detail-macro-color: #41627a;
  --favorite-activity-market-chip-border: rgba(187, 201, 211, 0.76);
  --favorite-activity-market-chip-bg: rgba(245, 249, 250, 0.92);
  --favorite-activity-market-chip-color: #4e6574;
  --favorite-activity-market-chip-down-color: #b35443;
  --favorite-activity-market-chip-down-border: rgba(213, 139, 122, 0.48);
  --favorite-activity-market-chip-down-bg: #fff4f1;
  --favorite-activity-market-chip-up-color: #1f7d69;
  --favorite-activity-market-chip-up-border: rgba(113, 176, 159, 0.48);
  --favorite-activity-market-chip-up-bg: #eefaf6;
  --favorite-activity-market-chip-lease-color: #2e63c8;
  --favorite-activity-market-chip-lease-border: rgba(120, 153, 226, 0.48);
  --favorite-activity-market-chip-lease-bg: #eef3ff;
  --favorite-activity-market-chip-policy-color: #946420;
  --favorite-activity-market-chip-policy-border: rgba(210, 169, 101, 0.52);
  --favorite-activity-market-chip-policy-bg: #fff8ea;
  --favorite-activity-market-chip-mixed-color: #5b617e;
  --favorite-activity-market-chip-mixed-border: rgba(158, 167, 202, 0.52);
  --favorite-activity-market-chip-mixed-bg: #f3f4fb;
  --favorite-activity-market-chip-watch-color: #a55c28;
  --favorite-activity-market-chip-watch-border: rgba(214, 152, 112, 0.52);
  --favorite-activity-market-chip-watch-bg: #fff2e8;
  --favorite-activity-market-chip-neutral-color: #5b7180;
  --favorite-activity-market-chip-neutral-border: rgba(181, 196, 204, 0.54);
  --favorite-activity-market-chip-neutral-bg: #f4f7f8;
  --market-overview-today-card-gap: 4px;
  --market-overview-today-card-padding: 14px;
  --market-overview-today-card-radius: 18px;
  --market-overview-today-card-border: rgba(199, 211, 220, 0.95);
  --market-overview-today-card-bg: linear-gradient(180deg, rgba(255, 255, 255, 0.94) 0%, rgba(240, 245, 245, 0.9) 100%);
  --market-overview-today-card-hot-border: rgba(193, 108, 81, 0.34);
  --market-overview-today-card-hot-bg: linear-gradient(180deg, #fff8f4 0%, #f7ebe4 100%);
  --market-overview-today-card-status-border: rgba(103, 147, 183, 0.3);
  --market-overview-today-card-status-bg: linear-gradient(180deg, #f7fbff 0%, #ebf2f8 100%);
  --market-overview-today-card-compact-gap: 6px;
  --market-overview-today-card-compact-padding: 10px 11px;
  --market-overview-today-card-compact-radius: 16px;
  --market-overview-signal-ribbon-gap: 8px;
  --market-overview-signal-ribbon-padding: 12px;
  --market-overview-signal-ribbon-radius: 18px;
  --market-overview-signal-ribbon-border: rgba(145, 165, 186, 0.32);
  --market-overview-signal-ribbon-bg: linear-gradient(180deg, rgba(255, 255, 255, 0.94) 0%, rgba(245, 249, 252, 0.98) 100%);
  --market-overview-signal-ribbon-shadow: 0 14px 32px rgba(38, 62, 88, 0.08);
  --market-overview-signal-ribbon-hot-border: rgba(224, 108, 72, 0.3);
  --market-overview-signal-ribbon-permit-border: rgba(34, 140, 125, 0.28);
  --market-overview-signal-ribbon-confirm-border: rgba(74, 104, 201, 0.28);
  --market-overview-signal-ribbon-neutral-border: rgba(143, 160, 177, 0.28);
  --market-overview-dual-timeline-radius: 18px;
  --market-overview-dual-timeline-padding: 14px;
  --market-overview-dual-timeline-border: rgba(135, 155, 178, 0.2);
  --market-overview-dual-timeline-bg: linear-gradient(180deg, rgba(248, 250, 252, 0.98) 0%, rgba(241, 246, 250, 0.94) 100%);
  --market-overview-dual-timeline-track-gap: 3px;
  --market-overview-dual-timeline-col-gap: 2px;
  --market-overview-dual-timeline-col-bg: linear-gradient(180deg, rgba(228, 234, 241, 0.38) 0%, rgba(228, 234, 241, 0.08) 100%);
  --market-overview-dual-timeline-col-padding: 4px 0;
  --market-overview-dual-timeline-col-low-shadow: inset 0 0 0 1px rgba(214, 156, 72, 0.28);
  --market-overview-grouped-summary-gap: 8px;
  --market-overview-grouped-summary-margin-bottom: 10px;
  --market-overview-grouped-summary-chip-min-height: 24px;
  --market-overview-grouped-summary-chip-padding: 0 9px;
  --market-overview-grouped-summary-chip-bg: rgba(255, 255, 255, 0.88);
  --market-overview-grouped-summary-chip-border: rgba(188, 201, 212, 0.48);
  --market-overview-grouped-summary-chip-color: #506878;
  --market-overview-signal-canvas-gap: 12px;
  --market-overview-signal-canvas-margin-bottom: 14px;
  --market-overview-signal-ribbon-head-gap: 8px;
  --market-overview-signal-ribbon-pulses-gap: 6px;
  --market-overview-signal-ribbon-pulse-row-gap: 8px;
  --market-overview-dual-timeline-head-gap: 8px;
  --market-overview-dual-timeline-head-margin-bottom: 10px;
  --market-overview-strip-stack-gap: 10px;
  --market-overview-ranked-strip-gap: 8px;
  --market-overview-grouped-track-gap: 8px;
  --market-overview-grouped-group-gap: 8px;
  --market-overview-badge-row-gap: 6px;
  --market-overview-badge-row-margin-top: 6px;
  --market-overview-info-pill-min-height: 30px;
  --market-overview-info-pill-padding: 0 11px;
  --market-overview-info-pill-border: rgba(193, 205, 214, 0.96);
  --market-overview-info-pill-bg: linear-gradient(180deg, #ffffff 0%, #eef4f6 100%);
  --market-overview-info-pill-color: #476574;
  --market-overview-status-pill-min-height: 28px;
  --market-overview-status-pill-padding: 0 10px;
  --market-overview-status-pill-border: #c7d6de;
  --market-overview-status-pill-bg: linear-gradient(180deg, #ffffff 0%, #edf4f5 100%);
  --market-overview-status-pill-color: #3f6170;
  --signal-badge-padding: 4px 9px;
  --signal-badge-font-size: 11px;
  --signal-badge-compact-padding: 3px 7px;
  --signal-badge-compact-font-size: 10px;
  --signal-badge-row-gap: 6px;
  --signal-badge-row-compact-gap: 5px;
  --signal-evidence-stable-bg: #e7f5f1;
  --signal-evidence-stable-color: #245f57;
  --signal-evidence-caution-bg: #fbf3dd;
  --signal-evidence-caution-color: #8f6d21;
  --signal-evidence-lag-bg: #f8ead4;
  --signal-evidence-lag-color: #8c5e1d;
  --signal-mode-permit-bg: rgba(231, 247, 243, 0.94);
  --signal-mode-permit-color: #1f7f72;
  --signal-mode-trade-bg: rgba(237, 241, 254, 0.94);
  --signal-mode-trade-color: #4865cd;
  --signal-stage-surge-bg: #fff2eb;
  --signal-stage-surge-color: #b05518;
  --signal-stage-lead-bg: #fff7e7;
  --signal-stage-lead-color: #9a6a13;
  --signal-stage-confirm-bg: #e8f3ff;
  --signal-stage-confirm-color: #426fbb;
  --signal-stage-neutral-bg: #f3f7f4;
  --signal-stage-neutral-color: #506a5a;
  --signal-legend-inline-gap: 8px;
  --signal-legend-inline-compact-gap: 6px;
  --signal-legend-chip-gap: 6px;
  --signal-legend-chip-padding: 4px 8px;
  --signal-legend-chip-bg: rgba(255, 255, 255, 0.9);
  --signal-legend-chip-border: rgba(171, 189, 207, 0.46);
  --signal-legend-chip-color: #52697b;
  --signal-legend-chip-dot-size: 8px;
  --signal-legend-chip-price: #e86b40;
  --signal-legend-chip-permit: #228c7d;
  --signal-legend-chip-trade: #4a68c9;
  --signal-reading-guide-gap: 8px;
  --signal-reading-guide-margin-top: 10px;
  --signal-reading-guide-compact-gap: 6px;
  --signal-reading-guide-compact-margin-top: 8px;
  --signal-reading-guide-list-gap: 4px;
  --market-overview-reliability-badge-padding: 4px 9px;
  --market-overview-reliability-badge-font-size: 11px;
  --market-overview-reliability-clear-bg: #e7f5f1;
  --market-overview-reliability-clear-color: #245f57;
  --market-overview-reliability-watch-bg: #fbf3dd;
  --market-overview-reliability-watch-color: #8f6d21;
  --market-overview-reliability-fog-bg: #f6eee0;
  --market-overview-reliability-fog-color: #6d5a2f;
  --market-overview-breakdown-gap: 4px;
  --market-overview-breakdown-margin-top: 6px;
  --market-overview-breakdown-segment-min-width: 6px;
  --market-overview-breakdown-lead: #228c7d;
  --market-overview-breakdown-confirm: #4a68c9;
  --market-overview-breakdown-risk: #d39a39;
  --market-overview-brief-card-border: rgba(205, 217, 222, 0.92);
  --market-overview-brief-card-bg: rgba(255, 255, 255, 0.9);
  --market-overview-brief-kicker-color: #6d7f8b;
  --market-overview-brief-title-color: #173246;
  --market-overview-brief-copy-color: #5f7382;
  --market-overview-brief-chip-border: rgba(187, 201, 211, 0.76);
  --market-overview-brief-chip-bg: rgba(245, 249, 250, 0.92);
  --market-overview-brief-chip-color: #4e6574;
  --market-overview-brief-chip-down-color: #b35443;
  --market-overview-brief-chip-down-border: rgba(213, 139, 122, 0.48);
  --market-overview-brief-chip-down-bg: #fff4f1;
  --market-overview-brief-chip-up-color: #1f7d69;
  --market-overview-brief-chip-up-border: rgba(113, 176, 159, 0.48);
  --market-overview-brief-chip-up-bg: #eefaf6;
  --market-overview-brief-chip-lease-color: #2e63c8;
  --market-overview-brief-chip-lease-border: rgba(120, 153, 226, 0.48);
  --market-overview-brief-chip-lease-bg: #eef3ff;
  --market-overview-brief-chip-policy-color: #946420;
  --market-overview-brief-chip-policy-border: rgba(210, 169, 101, 0.52);
  --market-overview-brief-chip-policy-bg: #fff8ea;
  --market-overview-brief-chip-mixed-color: #5b617e;
  --market-overview-brief-chip-mixed-border: rgba(158, 167, 202, 0.52);
  --market-overview-brief-chip-mixed-bg: #f3f4fb;
  --market-overview-brief-chip-watch-color: #a55c28;
  --market-overview-brief-chip-watch-border: rgba(214, 152, 112, 0.52);
  --market-overview-brief-chip-watch-bg: #fff2e8;
  --market-overview-brief-chip-neutral-color: #5b7180;
  --market-overview-brief-chip-neutral-border: rgba(181, 196, 204, 0.54);
  --market-overview-brief-chip-neutral-bg: #f4f7f8;
  --market-overview-divergence-border: rgba(190, 205, 212, 0.88);
  --market-overview-divergence-bg: rgba(246, 250, 251, 0.94);
  --market-overview-divergence-title-color: #244356;
  --market-overview-divergence-copy-color: #5c7180;
  --market-overview-divergence-watch-border: rgba(214, 152, 112, 0.5);
  --market-overview-divergence-watch-bg: #fff6ef;
  --market-overview-divergence-down-border: rgba(208, 127, 115, 0.44);
  --market-overview-divergence-down-bg: #fff4f2;
  --market-overview-divergence-mixed-border: rgba(153, 163, 214, 0.4);
  --market-overview-divergence-mixed-bg: #f5f6fe;
  --market-overview-brief-side-label-color: #748693;
  --market-overview-brief-side-title-color: #173246;
  --market-overview-brief-side-copy-color: #70828f;
  --market-overview-district-theme-border: rgba(187, 201, 211, 0.76);
  --market-overview-district-theme-bg: rgba(246, 249, 250, 0.92);
  --market-overview-district-region-color: #173246;
  --market-overview-district-stance-color: #567080;
  --market-overview-sparkline-area: rgba(104, 135, 170, 0.12);
  --market-overview-sparkline-line: #6887aa;
  --market-overview-sparkline-point: #203245;
  --market-overview-sparkline-baseline: rgba(122, 141, 158, 0.34);
  --market-overview-sparkline-ring-fill: rgba(255, 255, 255, 0.94);
  --market-overview-sparkline-negative-zone: #5a68cb;
  --market-overview-sparkline-negative-rebound: #7a8fff;
  --market-overview-sparkline-negative-turn: #4566c7;
  --market-overview-sparkline-trough-ring-fill: rgba(255, 255, 255, 0.96);
  --market-overview-sparkline-trough-ring-stroke: rgba(90, 104, 203, 0.9);
  --market-overview-sparkline-trough-point: #5a68cb;
  --market-overview-sparkline-hot: #e06c48;
  --market-overview-sparkline-permit: #228c7d;
  --market-overview-sparkline-confirm: #4a68c9;
  --market-overview-sparkline-price-area: rgba(232, 107, 64, 0.12);
  --market-overview-sparkline-price: #e86b40;
  --market-overview-sparkline-step: #3c8a83;
  --market-overview-sparkline-step-down: #d06f47;
  --market-overview-sparkline-release: #8aa0ad;
  --market-overview-pulse-gap: 2px;
  --market-overview-pulse-mini-gap: 3px;
  --market-overview-pulse-min-height: 26px;
  --market-overview-pulse-mini-min-height: 34px;
  --market-overview-pulse-bar-bg: rgba(150, 168, 183, 0.16);
  --market-overview-pulse-latest-outline: rgba(32, 50, 69, 0.18);
  --market-overview-pulse-permit-active: linear-gradient(180deg, rgba(34, 140, 125, 0.28) 0%, rgba(34, 140, 125, 0.86) 100%);
  --market-overview-pulse-confirm-active: linear-gradient(180deg, rgba(74, 104, 201, 0.28) 0%, rgba(74, 104, 201, 0.86) 100%);
  --market-overview-signal-head-color: #203245;
  --market-overview-signal-copy-color: #627487;
  --market-overview-signal-pulse-label-color: #5b6b7b;
  --market-overview-signal-meta-color: #425265;
  --market-overview-history-alert-badge-min-height: 22px;
  --market-overview-history-alert-badge-padding: 0 8px;
  --market-overview-history-alert-badge-font-size: 0.58rem;
  --market-overview-history-alert-badge-border: rgba(90, 118, 203, 0.32);
  --market-overview-history-alert-badge-bg: rgba(238, 242, 255, 0.96);
  --market-overview-history-alert-badge-color: #4566c7;
  --market-overview-history-alert-badge-rebound-border: rgba(110, 133, 255, 0.34);
  --market-overview-history-alert-badge-rebound-bg: rgba(237, 241, 255, 0.98);
  --market-overview-history-alert-badge-rebound-color: #586fcf;
  --market-overview-history-alert-badge-warning-border: rgba(214, 160, 114, 0.36);
  --market-overview-history-alert-badge-warning-bg: rgba(255, 246, 235, 0.96);
  --market-overview-history-alert-badge-warning-color: #ad6a35;
  --market-overview-history-pill-min-height: 24px;
  --market-overview-history-pill-padding: 0 8px;
  --market-overview-history-pill-bg: rgba(255, 255, 255, 0.96);
  --market-overview-history-pill-border: rgba(219, 146, 115, 0.34);
  --market-overview-history-pill-shadow: 0 8px 18px rgba(42, 57, 73, 0.08);
  --market-overview-history-pill-color: #b25533;
  --market-overview-history-pill-font-size: 0.62rem;
  --market-overview-history-pill-max-width: 88px;
  --market-overview-history-pill-mid-color: #7c5a29;
  --market-overview-history-pill-mid-border: rgba(212, 173, 102, 0.36);
  --market-overview-history-pill-latest-color: #173246;
  --market-overview-history-pill-latest-border: rgba(118, 136, 157, 0.36);
  --market-overview-history-pill-negative-zone-color: #4566c7;
  --market-overview-history-pill-negative-zone-border: rgba(90, 118, 203, 0.34);
  --market-overview-history-pill-negative-zone-shadow: 0 10px 24px rgba(69, 102, 199, 0.14);
  --market-overview-history-pill-negative-trough-color: #4d58b3;
  --market-overview-history-pill-negative-trough-border: rgba(90, 104, 203, 0.38);
  --market-overview-history-pill-negative-trough-bg: rgba(240, 244, 255, 0.98);
  --market-overview-history-pill-negative-trough-shadow: 0 10px 24px rgba(74, 88, 179, 0.12);
  --market-overview-history-pill-negative-rebound-color: #5e77de;
  --market-overview-history-pill-negative-rebound-border: rgba(122, 143, 255, 0.4);
  --market-overview-history-pill-negative-rebound-bg: rgba(243, 246, 255, 0.98);
  --market-overview-history-pill-negative-rebound-shadow: 0 10px 24px rgba(94, 119, 222, 0.14);
  --market-overview-history-pill-turning-color: #ad6a35;
  --market-overview-history-pill-turning-border: rgba(214, 160, 114, 0.36);
  --market-overview-history-pill-turning-bg: rgba(255, 246, 235, 0.98);
  --market-overview-history-copy-negative-zone: #4566c7;
  --market-overview-history-copy-negative-rebound: #5c73d8;
  --market-overview-history-copy-warning: #ad6a35;
  --market-overview-history-shell-border: rgba(204, 216, 222, 0.96);
  --market-overview-history-shell-bg: rgba(255, 255, 255, 0.8);
  --market-overview-history-title-color: #173246;
  --market-overview-history-copy-color: #70828e;
  --market-overview-history-axis-small-color: #8695a2;
  --market-overview-history-axis-copy-color: #738592;
  --market-overview-history-axis-strong-color: #173246;
  --market-overview-warning-chip-bg: rgba(243, 246, 249, 0.92);
  --market-overview-warning-chip-color: #516978;
  --market-overview-warning-chip-lead-bg: rgba(231, 247, 243, 0.96);
  --market-overview-warning-chip-lead-color: #1e7e72;
  --market-overview-warning-chip-watch-bg: #fbf3dd;
  --market-overview-warning-chip-watch-color: #8f6d21;
  --market-overview-warning-chip-pending-bg: rgba(238, 242, 255, 0.96);
  --market-overview-warning-chip-pending-color: #3f5fc8;
  --market-overview-filter-chip-border: rgba(171, 189, 207, 0.66);
  --market-overview-filter-chip-bg: rgba(255, 255, 255, 0.9);
  --market-overview-filter-chip-color: #516978;
  --market-overview-filter-chip-permit-color: #1f7f72;
  --market-overview-filter-chip-trade-color: #4566cf;
  --market-overview-filter-chip-lag-color: #a56c22;
  --market-overview-filter-chip-active-border: rgba(79, 104, 128, 0.4);
  --market-overview-filter-chip-active-shadow: 0 8px 18px rgba(92, 116, 139, 0.14);
  --market-overview-mortgage-axis-color: #728491;
  --market-overview-district-card-hot-border: rgba(215, 126, 88, 0.36);
  --market-overview-district-card-hot-bg: linear-gradient(180deg, #fff8f2 0%, #faede4 100%);
  --market-overview-district-card-permit-border: rgba(202, 162, 78, 0.34);
  --market-overview-district-card-permit-bg: linear-gradient(180deg, #fffaf0 0%, #f6ecd8 100%);
  --market-overview-district-card-trade-border: rgba(88, 127, 187, 0.28);
  --market-overview-district-card-trade-bg: linear-gradient(180deg, #f7faff 0%, #eaf0fb 100%);
  --market-overview-district-card-selected-shadow: 0 0 0 2px rgba(66, 112, 180, 0.18), 0 12px 28px rgba(30, 48, 63, 0.08);
  --market-overview-district-card-title-color: #173246;
  --market-overview-district-card-label-color: #6d818d;
  --market-overview-dual-timeline-permit-bar: linear-gradient(180deg, rgba(34, 140, 125, 0.24), rgba(34, 140, 125, 0.88));
  --market-overview-dual-timeline-trade-bar: linear-gradient(180deg, rgba(74, 104, 201, 0.24), rgba(74, 104, 201, 0.88));
  --favorite-activity-legend-copy-color: #5f7266;
  --favorite-activity-legend-note: #91a19b;
  --favorite-activity-legend-lead: #d19832;
  --favorite-activity-legend-confirm: #1f8a79;
  --market-overview-grouped-bars-gap: 4px;
  --market-overview-grouped-bars-padding: 8px 6px;
  --market-overview-grouped-bars-mobile-padding: 7px 5px;
  --market-overview-grouped-bars-radius: 14px;
  --market-overview-grouped-bars-bg: linear-gradient(180deg, rgba(231, 237, 243, 0.42) 0%, rgba(244, 247, 251, 0.82) 100%);
  --market-overview-grouped-bars-border: rgba(205, 215, 224, 0.46);
  --market-overview-grouped-bars-low-shadow: inset 0 0 0 1px rgba(214, 156, 72, 0.24);
  --market-overview-grouped-bars-medium-shadow: inset 0 0 0 1px rgba(151, 166, 181, 0.2);
  --signal-reading-guide-title-color: #223345;
  --signal-reading-guide-copy-color: #607284;
  --market-overview-drawer-panel-radius: 18px;
  --market-overview-drawer-panel-padding: 14px;
  --market-overview-drawer-panel-border: rgba(135, 155, 178, 0.2);
  --market-overview-drawer-panel-bg: rgba(248, 250, 252, 0.95);
  --market-overview-dual-timeline-title-color: #1f3143;
  --market-overview-dual-timeline-copy-color: #66788b;
  --market-overview-ranked-item-radius: 14px;
  --market-overview-ranked-item-padding: 10px;
  --market-overview-ranked-item-gap: 4px;
  --market-overview-ranked-item-border: rgba(138, 156, 177, 0.16);
  --market-overview-ranked-item-bg: #f6f9fb;
  --market-overview-lag-gauge-ring-size: 104px;
  --market-overview-lag-gauge-ring-bg: conic-gradient(#d39a39 calc(var(--lag-score, 0) * 1%), rgba(225, 232, 239, 0.52) 0);
  --market-overview-lag-gauge-ring-inner-inset: 10px;
  --market-overview-lag-gauge-ring-inner-bg: #fff;
}

.favorite-negotiation-tile-board-wrap {
  position: relative;
  width: 100%;
}

.favorite-negotiation-tile-board {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.favorite-negotiation-tile-board > li {
  min-width: 0;
}

.favorite-negotiation-tile {
  position: relative;
  overflow: hidden;
  width: 100%;
  min-height: 132px;
  display: grid;
  grid-template-areas:
    "rank band"
    "score score"
    "title title"
    "pyeong pyeong"
    "meta meta";
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 3px 6px;
  align-items: center;
  border: 1px solid rgba(41, 71, 54, 0.12);
  border-radius: 15px;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(246, 250, 247, 0.94)),
    radial-gradient(circle at 14% 0%, rgba(60, 154, 113, 0.12), transparent 48%);
  box-shadow:
    0 12px 26px rgba(26, 47, 35, 0.08),
    inset 0 1px 0 rgba(255, 255, 255, 0.86);
  padding: 9px 10px;
  color: #183025;
  text-align: left;
  cursor: pointer;
  transition: transform 0.16s ease, border-color 0.16s ease, box-shadow 0.16s ease, background 0.16s ease;
}

.favorite-negotiation-tile::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 3px;
  background: linear-gradient(90deg, rgba(26, 132, 93, 0.76), rgba(219, 164, 76, 0.54));
  opacity: 0.44;
}

.favorite-negotiation-tile:hover,
.favorite-negotiation-tile:focus-visible {
  transform: translateY(-1px);
  border-color: rgba(55, 137, 102, 0.56);
  box-shadow:
    0 16px 34px rgba(27, 49, 36, 0.13),
    inset 0 1px 0 rgba(255, 255, 255, 0.9);
  outline: none;
}

.favorite-negotiation-tile.buyer,
.favorite-negotiation-tile.buyer-soft {
  border-color: rgba(70, 157, 121, 0.42);
  background: linear-gradient(180deg, rgba(250, 255, 252, 0.99) 0%, rgba(235, 249, 242, 0.97) 100%);
}

.favorite-negotiation-tile.band-bargain,
.favorite-negotiation-tile.band-good {
  border-color: rgba(70, 157, 121, 0.42);
  background: linear-gradient(180deg, rgba(250, 255, 252, 0.99) 0%, rgba(235, 249, 242, 0.97) 100%);
}

.favorite-negotiation-tile.band-fair {
  border-color: rgba(191, 178, 129, 0.42);
  background: linear-gradient(180deg, rgba(255, 254, 249, 0.99) 0%, rgba(248, 244, 232, 0.97) 100%);
}

.favorite-negotiation-tile.band-watch,
.favorite-negotiation-tile.band-expensive {
  border-color: rgba(222, 142, 59, 0.42);
  background: linear-gradient(180deg, rgba(255, 252, 247, 0.99) 0%, rgba(255, 242, 226, 0.97) 100%);
}

.favorite-negotiation-tile.seller,
.favorite-negotiation-tile.seller-soft {
  border-color: rgba(222, 142, 59, 0.42);
  background: linear-gradient(180deg, rgba(255, 252, 247, 0.99) 0%, rgba(255, 242, 226, 0.97) 100%);
}

.favorite-negotiation-tile.is-review-required {
  border-style: dashed;
}

.favorite-negotiation-tile.is-score-deferred {
  border-color: rgba(181, 160, 111, 0.72);
  background: linear-gradient(180deg, rgba(255, 253, 247, 0.99) 0%, rgba(250, 244, 232, 0.96) 100%);
}

.favorite-negotiation-tile-rank {
  grid-area: rank;
  width: 24px;
  height: 24px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.76);
  border: 1px solid rgba(35, 72, 51, 0.08);
  color: #3d5b48;
  font-size: 0.68rem;
  font-weight: 800;
}

.favorite-negotiation-tile-score {
  grid-area: score;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #16372a;
  line-height: 1;
}

.favorite-type-deal-score-mini {
  width: 74px;
  height: 56px;
}

.favorite-negotiation-tile-score b {
  font-size: clamp(1.85rem, 3vw, 2.5rem);
  font-weight: 900;
  letter-spacing: 0;
}

.favorite-negotiation-tile-score small {
  margin-left: 2px;
  font-size: 0.78rem;
  font-weight: 800;
}

.favorite-negotiation-tile-score.is-deferred {
  gap: 4px;
  color: #80622d;
}

.favorite-negotiation-tile-score.is-deferred b {
  font-size: clamp(1.1rem, 2vw, 1.45rem);
  letter-spacing: 0;
}

.favorite-negotiation-tile-score.is-deferred small {
  margin-left: 0;
  padding: 2px 6px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.82);
  border: 1px solid rgba(191, 168, 116, 0.54);
  color: #8a6c35;
  font-size: 0.62rem;
}

.favorite-negotiation-tile-title {
  grid-area: title;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  text-align: center;
  font-size: 0.82rem;
  font-weight: 850;
}

.favorite-negotiation-tile-pyeong {
  grid-area: pyeong;
  justify-self: center;
  min-width: 0;
  max-width: 100%;
  padding: 3px 8px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.78);
  border: 1px solid rgba(47, 85, 62, 0.12);
  color: #4b6354;
  font-size: 0.68rem;
  font-weight: 800;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.favorite-negotiation-tile-meta {
  grid-area: meta;
  display: grid;
  gap: 2px;
  justify-items: center;
  color: #5d685e;
  font-size: 0.64rem;
  font-weight: 750;
}

.favorite-negotiation-tile-meta b {
  color: #253b2d;
  font-size: 0.76rem;
}

.favorite-negotiation-tile-band {
  grid-area: band;
  justify-self: end;
  max-width: 76px;
  padding: 3px 7px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.74);
  border: 1px solid rgba(47, 85, 62, 0.12);
  color: #4d6355;
  font-size: 0.6rem;
  font-weight: 850;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.favorite-negotiation-tile.is-score-deferred .favorite-negotiation-tile-band {
  border-color: rgba(191, 168, 116, 0.72);
  color: #7e6330;
  background: rgba(255, 249, 236, 0.94);
}

.favorite-negotiation-floating-detail {
  position: fixed;
  inset: 0;
  z-index: 90;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
}

.favorite-negotiation-floating-backdrop {
  position: absolute;
  inset: 0;
  border: 0;
  background: rgba(20, 31, 26, 0.26);
}

.favorite-negotiation-floating-panel {
  position: relative;
  width: min(980px, calc(100vw - 34px));
  max-height: min(86vh, 860px);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid rgba(192, 207, 189, 0.95);
  border-radius: 20px;
  background: rgba(255, 255, 255, 0.985);
  box-shadow: 0 26px 70px rgba(22, 39, 28, 0.22);
}

.favorite-negotiation-floating-head,
.favorite-negotiation-floating-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 10px 12px;
  border-bottom: 1px solid rgba(200, 213, 196, 0.78);
  background: linear-gradient(180deg, rgba(252, 255, 250, 0.99) 0%, rgba(242, 248, 239, 0.96) 100%);
}

.favorite-negotiation-floating-head strong {
  display: block;
  color: #1e392c;
  font-size: 1rem;
}

.favorite-negotiation-floating-head span {
  display: block;
  margin-top: 2px;
  color: #68746b;
  font-size: 0.72rem;
  font-weight: 750;
}

.favorite-negotiation-floating-close,
.favorite-negotiation-floating-nav button,
.favorite-negotiation-floating-open-complex {
  min-height: 32px;
  border: 1px solid rgba(154, 177, 144, 0.78);
  border-radius: 999px;
  background: #fff;
  color: #3f5b42;
  font-size: 0.7rem;
  font-weight: 850;
  padding: 6px 10px;
}

.favorite-negotiation-floating-nav {
  justify-content: flex-end;
}

.favorite-negotiation-floating-nav button:disabled {
  opacity: 0.42;
  cursor: default;
}

.favorite-negotiation-floating-body {
  overflow: auto;
  padding: 12px;
}

.favorite-negotiation-floating-summary {
  display: grid;
  gap: 8px;
  margin-bottom: 10px;
}

@media (max-width: 1100px) {
  .favorite-negotiation-tile-board {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .favorite-negotiation-tile-board {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 7px;
  }

  .favorite-negotiation-tile {
    min-height: 118px;
    border-radius: 14px;
    padding: 8px;
  }

  .favorite-negotiation-tile-score b {
    font-size: 1.7rem;
  }

  .favorite-negotiation-tile-title {
    font-size: 0.75rem;
  }

  .favorite-negotiation-floating-detail {
    align-items: flex-end;
    padding: 0;
  }

  .favorite-negotiation-floating-panel {
    width: 100%;
    max-height: 88vh;
    border-radius: 18px 18px 0 0;
  }

  .favorite-negotiation-floating-head,
  .favorite-negotiation-floating-nav {
    padding: 9px 10px;
  }

  .favorite-negotiation-floating-body {
    padding: 10px;
  }
}

@media (max-width: 1024px) {
  .market-overview-mortgage-today-strip,
  .market-overview-mortgage-history-summary-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 720px) {
  .market-overview-mortgage-hero-figure strong {
    font-size: 1.34rem;
  }

  .market-overview-mortgage-today-strip,
  .market-overview-mortgage-history-summary-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .market-overview-mortgage-daily-svg {
    height: 136px;
  }

  .market-overview-mortgage-bank-chip {
    padding: 6px 10px;
  }
}

/* Map marker rollback: restore legacy unified marker style */
.complex-map-marker-bubble {
  position: relative;
  width: 120px;
  height: auto;
  padding-top: 0;
  display: block;
  box-sizing: border-box;
  border-radius: 11px;
  overflow: visible;
  box-shadow: 0 4px 8px rgba(18, 31, 44, 0.18);
}

.complex-map-marker-bubble::before {
  display: none !important;
}

.complex-map-marker-bubble::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -8px;
  transform: translateX(-50%);
  width: 0;
  height: 0;
  border-left: 7px solid transparent;
  border-right: 7px solid transparent;
  border-top: 8px solid #2457df;
}

.complex-map-marker-name {
  display: block;
  position: relative;
  border: 2px solid #2f65ff;
  border-bottom: 0;
  border-radius: 11px 11px 0 0;
  background: #ffffff;
  color: #131d2a;
  font-size: 0.84rem;
  font-weight: 900;
  letter-spacing: -0.01em;
  text-align: center;
  line-height: 1.12;
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
  padding: 4px 8px 3px;
}

.complex-map-marker-households {
  display: block;
  border: 2px solid #2f65ff;
  border-top: 0;
  border-radius: 0 0 11px 11px;
  background: linear-gradient(180deg, #3a74ff 0%, #2457df 100%);
  color: #ffffff;
  font-size: 0.81rem;
  font-weight: 800;
  text-align: center;
  line-height: 1.12;
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
  padding: 4px 7px 5px;
}

.complex-map-marker-bubble.is-updated {
  width: 122px;
  --complex-marker-border: #157f72;
  --complex-marker-name-bg: #f6fffc;
  --complex-marker-name-text: #0e4e47;
  --complex-marker-info-bg: linear-gradient(180deg, #28b39a 0%, #1a9580 100%);
  --complex-marker-info-text: #ffffff;
  --complex-marker-mid-bg: #f9fffd;
  --complex-marker-mid-text: #4d5a68;
  --complex-marker-tip: #136c5f;
  --complex-marker-badge-text: #0f5f52;
}

@keyframes complex-map-marker-trend-badge-pulse {
  0%,
  100% {
    opacity: 1;
    transform: translateY(0);
  }
  50% {
    opacity: 0.76;
    transform: translateY(-0.5px);
  }
}

.complex-map-marker-bubble.is-updated::after {
  border-top-color: var(--complex-marker-tip);
}

.complex-map-marker-favorite-badge {
  position: absolute;
  top: -8px;
  left: -2px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.88);
  background: rgba(255, 252, 239, 0.98);
  color: #c98917;
  box-shadow: 0 4px 10px rgba(18, 31, 44, 0.14);
  z-index: 3;
}

.complex-map-marker-favorite-badge svg {
  display: block;
  width: 10px;
  height: 10px;
  fill: currentColor;
}

.complex-map-marker-trend-badge {
  position: absolute;
  top: -25px;
  right: -2px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 28px;
  height: 16px;
  padding: 0 6px;
  border-radius: 999px;
  color: #ffffff;
  font-size: 0.5rem;
  font-weight: 900;
  line-height: 1;
  letter-spacing: -0.02em;
  box-shadow: 0 4px 10px rgba(18, 31, 44, 0.14);
  z-index: 4;
  animation: complex-map-marker-trend-badge-pulse 1.35s ease-in-out infinite;
}

.complex-map-marker-trend-badge.is-up {
  background: linear-gradient(180deg, #e76860 0%, #d04b44 100%);
}

.complex-map-marker-trend-badge.is-down {
  background: linear-gradient(180deg, #4b83f2 0%, #2f5fcd 100%);
}

.complex-map-marker-activity-top-badge {
  position: absolute;
  top: -8px;
  right: -2px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 28px;
  height: 18px;
  padding: 0 6px;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.92);
  background: linear-gradient(180deg, #31a58d 0%, #167764 100%);
  color: #ffffff;
  font-size: 0.52rem;
  font-weight: 900;
  line-height: 1;
  letter-spacing: -0.02em;
  box-shadow: 0 4px 10px rgba(18, 31, 44, 0.14);
  z-index: 4;
}

.complex-map-marker-activity-top-badge.is-top3 {
  background: linear-gradient(180deg, #f6b13f 0%, #db7f18 100%);
}

.complex-map-marker-bubble.is-updated .complex-map-marker-name {
  border-color: var(--complex-marker-border);
  background: var(--complex-marker-name-bg);
  color: var(--complex-marker-name-text);
  font-size: 0.72rem;
  padding: 3px 34px 2px 6px;
}

.complex-map-marker-judge {
  position: absolute;
  top: 3px;
  right: 4px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 24px;
  height: 15px;
  padding: 0 5px;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.52);
  background: rgba(255, 255, 255, 0.9);
  color: var(--complex-marker-badge-text);
  font-size: 0.51rem;
  font-weight: 900;
  line-height: 1;
  letter-spacing: -0.02em;
}

.complex-map-marker-info {
  display: block;
  border-left: 2px solid var(--complex-marker-border);
  border-right: 2px solid var(--complex-marker-border);
  background: var(--complex-marker-info-bg);
  color: var(--complex-marker-info-text);
  font-size: 0.72rem;
  font-weight: 900;
  text-align: center;
  line-height: 1.08;
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
  padding: 3px 6px 2px;
}

.complex-map-marker-delta {
  display: block;
  border: 2px solid var(--complex-marker-border);
  border-top: 0;
  border-radius: 0 0 11px 11px;
  background: var(--complex-marker-mid-bg);
  color: var(--complex-marker-mid-text);
  font-size: 0.63rem;
  font-weight: 900;
  text-align: center;
  line-height: 1.08;
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
  padding: 3px 6px 4px;
}

.complex-map-marker-delta.is-up {
  color: #d64545;
}

.complex-map-marker-delta.is-down {
  color: #2660d0;
}

.complex-map-marker-delta.is-neutral {
  color: #677382;
}

.complex-map-marker-bubble.is-updated.review-expensive {
  --complex-marker-border: #ce5d4b;
  --complex-marker-name-bg: #fff3f0;
  --complex-marker-name-text: #7b2419;
  --complex-marker-info-bg: linear-gradient(180deg, #df715e 0%, #c84f3f 100%);
  --complex-marker-info-text: #fff7f4;
  --complex-marker-mid-bg: #fff8f6;
  --complex-marker-mid-text: #6b4f49;
  --complex-marker-tip: #ac3c2f;
  --complex-marker-badge-text: #b34836;
}

.complex-map-marker-bubble.is-updated.review-watch {
  --complex-marker-border: #c48a24;
  --complex-marker-name-bg: #fff8e8;
  --complex-marker-name-text: #745012;
  --complex-marker-info-bg: linear-gradient(180deg, #ddb64d 0%, #c88f24 100%);
  --complex-marker-info-text: #fffaf0;
  --complex-marker-mid-bg: #fffaf1;
  --complex-marker-mid-text: #75624a;
  --complex-marker-tip: #9b6b14;
  --complex-marker-badge-text: #9a6a13;
}

.complex-map-marker-bubble.is-updated.review-fair {
  --complex-marker-border: #90a83a;
  --complex-marker-name-bg: #f8fbec;
  --complex-marker-name-text: #57671d;
  --complex-marker-info-bg: linear-gradient(180deg, #abc957 0%, #88a83a 100%);
  --complex-marker-info-text: #fbfff3;
  --complex-marker-mid-bg: #fbfdf4;
  --complex-marker-mid-text: #657155;
  --complex-marker-tip: #6d8727;
  --complex-marker-badge-text: #6f8627;
}

.complex-map-marker-bubble.is-updated.review-good {
  --complex-marker-border: #268e78;
  --complex-marker-name-bg: #eefcf7;
  --complex-marker-name-text: #11564b;
  --complex-marker-info-bg: linear-gradient(180deg, #34b69c 0%, #238a72 100%);
  --complex-marker-info-text: #ffffff;
  --complex-marker-mid-bg: #f7fffc;
  --complex-marker-mid-text: #4d5a68;
  --complex-marker-tip: #1b7362;
  --complex-marker-badge-text: #176e5b;
}

.complex-map-marker-bubble.is-updated.review-bargain {
  --complex-marker-border: #4b78da;
  --complex-marker-name-bg: #eef4ff;
  --complex-marker-name-text: #173f84;
  --complex-marker-info-bg: linear-gradient(180deg, #5589ef 0%, #355fbc 100%);
  --complex-marker-info-text: #f7fbff;
  --complex-marker-mid-bg: #f5f9ff;
  --complex-marker-mid-text: #506078;
  --complex-marker-tip: #2f539f;
  --complex-marker-badge-text: #3560bc;
}

.complex-map-marker-bubble.is-updated.review-unknown {
  --complex-marker-border: #7587a4;
  --complex-marker-name-bg: #f3f6fb;
  --complex-marker-name-text: #324659;
  --complex-marker-info-bg: linear-gradient(180deg, #8697b6 0%, #647792 100%);
  --complex-marker-info-text: #fbfdff;
  --complex-marker-mid-bg: #f7f9fc;
  --complex-marker-mid-text: #5d6a78;
  --complex-marker-tip: #53667f;
  --complex-marker-badge-text: #576a86;
}

.complex-map-marker-bubble.is-unchecked .complex-map-marker-name {
  border-color: #b7c1cc;
  background: #fbfcfd;
  color: #4a5866;
}

.complex-map-marker-bubble.is-unchecked .complex-map-marker-households {
  border-color: #b7c1cc;
  background: linear-gradient(180deg, #e1e6ec 0%, #ccd5df 100%);
  color: #53606d;
}

.complex-map-marker-bubble.is-unchecked::after {
  border-top-color: #ccd5df;
}

body.market-overview-open {
  overflow: hidden;
}

.title-market-overview-btn {
  border-color: #b9c9e3;
  background: linear-gradient(180deg, #f8fbff 0%, #e8f0fb 100%);
  color: #355f96;
}

.title-market-overview-btn:hover,
.title-market-overview-btn[aria-expanded="true"] {
  border-color: #84a9d8;
  background: linear-gradient(180deg, #eef5ff 0%, #dce7f8 100%);
}

.title-market-overview-icon {
  width: 18px;
  height: 18px;
  display: block;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
}

.market-overview-popup {
  position: fixed;
  inset: 0;
  z-index: 2265;
  display: grid;
  place-items: center;
  padding: 18px;
}

.market-overview-backdrop {
  position: absolute;
  inset: 0;
  border: 0;
  margin: 0;
  padding: 0;
  background: rgba(9, 17, 24, 0.56);
}

.market-overview-dialog {
  position: relative;
  z-index: 1;
  width: min(1220px, 96vw);
  max-height: min(90vh, 900px);
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  border-radius: 24px;
  border: 1px solid rgba(193, 205, 218, 0.92);
  background: linear-gradient(180deg, #fffefb 0%, #f4f8f7 100%);
  box-shadow:
    0 28px 64px rgba(10, 25, 34, 0.32),
    0 8px 22px rgba(43, 79, 92, 0.16);
  overflow: hidden;
}

.popup-shell-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--popup-shell-gap);
}

.popup-shell-copy {
  min-width: 0;
}

.popup-shell-copy h2 {
  margin: 0;
}

.popup-shell-actions {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--popup-shell-actions-gap);
  flex-wrap: wrap;
}

.popup-shell-toolbar {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--popup-shell-toolbar-gap);
}

.popup-shell-toolbar-summary {
  min-width: 0;
}

.popup-shell-toolbar-actions {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--popup-shell-toolbar-actions-gap);
  flex-wrap: wrap;
}

.popup-section-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--popup-section-gap);
}

.popup-section-copy {
  min-width: 0;
}

.popup-section-actions {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--popup-section-actions-gap);
  flex-wrap: wrap;
}

.popup-shell-action-btn,
.popup-shell-close-btn {
  flex: 0 0 auto;
}

.popup-shell-close-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.market-overview-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  padding: 18px 20px 16px;
  border-bottom: 1px solid rgba(211, 220, 225, 0.9);
  background: linear-gradient(180deg, #fffdfa 0%, #f3f7f6 100%);
}

.market-overview-head-copy h2 {
  margin: 0;
  color: #173246;
  font-size: 1.08rem;
  letter-spacing: -0.03em;
}

.market-overview-copy {
  margin: 6px 0 0;
  color: #597082;
  font-size: 0.82rem;
  font-weight: 700;
  line-height: 1.5;
}

.market-overview-head-actions {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.market-overview-refresh-btn,
.market-overview-close-btn {
  width: 36px;
  height: 36px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.98rem;
  font-weight: 900;
  line-height: 1;
  padding: 0;
}

.market-overview-refresh-btn {
  border: 1px solid #c7d9e6;
  background: linear-gradient(180deg, #fbfdff 0%, #edf3fb 100%);
  color: #3b6287;
}

.market-overview-close-btn {
  border: 1px solid #d2b59d;
  background: linear-gradient(180deg, #f4a062 0%, #df7b35 100%);
  color: #fff;
}

.market-overview-body {
  overflow-y: auto;
  padding: 16px;
  background:
    radial-gradient(circle at top left, rgba(231, 243, 239, 0.82), transparent 28%),
    linear-gradient(180deg, #f8fbfa 0%, #eef4f3 100%);
}

.market-overview-banner {
  margin-bottom: 14px;
  padding: 14px 16px;
  border-radius: 18px;
  border: 1px solid rgba(198, 214, 219, 0.9);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.94) 0%, rgba(240, 246, 245, 0.9) 100%);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.82);
}

.market-overview-banner-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.market-overview-banner-chip {
  display: grid;
  gap: 4px;
  padding: 10px 11px;
  border-radius: 14px;
  border: 1px solid rgba(212, 220, 226, 0.95);
  background: rgba(255, 255, 255, 0.88);
}

.market-overview-banner-chip span {
  color: #6c8090;
  font-size: 0.72rem;
  font-weight: 800;
}

.market-overview-banner-chip strong {
  color: #173246;
  font-size: 0.92rem;
  font-weight: 900;
}

.market-overview-banner-chip small {
  color: #7f909b;
  font-size: 0.67rem;
  font-weight: 700;
  line-height: 1.35;
}

.market-overview-banner-note {
  margin: 10px 0 0;
  color: #68808c;
  font-size: 0.72rem;
  font-weight: 700;
  line-height: 1.45;
}

.market-overview-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}

.market-overview-preset-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.market-overview-chip-btn {
  border: 1px solid #c8d8e0;
  background: linear-gradient(180deg, #ffffff 0%, #edf4f6 100%);
  color: #365669;
  border-radius: 999px;
  padding: 7px 12px;
  font-size: 0.77rem;
  font-weight: 900;
  line-height: 1.1;
}

.market-overview-chip-btn.active {
  border-color: #6f9bc0;
  background: linear-gradient(180deg, #eef6ff 0%, #dce8f6 100%);
  color: #234f7d;
}

.market-overview-chip-btn.secondary {
  border-color: #d6d8d2;
  background: linear-gradient(180deg, #fffefc 0%, #f2f2ea 100%);
  color: #5d6158;
}

.market-overview-summary {
  margin: 0;
  color: #4e6a7b;
  font-size: 0.8rem;
  font-weight: 800;
  text-align: right;
}

.market-overview-summary.error {
  color: #ad4a42;
}

.market-overview-section {
  margin-top: 14px;
}

.market-overview-section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 10px;
}

.market-overview-section-head-compare {
  align-items: flex-start;
}

.market-overview-section-title {
  min-width: 0;
  display: grid;
  gap: 4px;
}

.market-overview-section-tools {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 6px;
  flex-wrap: wrap;
}

.market-overview-sort-buttons {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px;
  width: min(320px, 100%);
}

.market-overview-sort-btn {
  width: 100%;
  min-height: 36px;
  padding: 7px 10px 8px;
  border-radius: 14px;
  border: 1px solid rgba(193, 205, 214, 0.96);
  background: linear-gradient(180deg, #ffffff 0%, #eef4f6 100%);
  color: #5f7b8b;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  font-weight: 900;
  line-height: 1;
}

.market-overview-sort-btn.active {
  border-color: rgba(86, 121, 172, 0.34);
  background: linear-gradient(180deg, #f4f8ff 0%, #e2ebfb 100%);
  color: #2f5a92;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.86);
}

.market-overview-sort-btn-label {
  display: block;
  font-size: 0.72rem;
  line-height: 1;
  text-align: left;
}

.market-overview-sort-btn-arrow {
  display: block;
  font-size: 0.54rem;
  line-height: 1;
  color: #8aa0af;
}

.market-overview-sort-btn.active .market-overview-sort-btn-arrow {
  color: #547ab1;
}

.market-overview-sort-btn.active.is-asc .market-overview-sort-btn-arrow {
  color: #2c6e59;
}

.market-overview-section-head h3 {
  margin: 0;
  color: #173246;
  font-size: 0.95rem;
  letter-spacing: -0.03em;
}

.market-overview-section-meta {
  color: #66808f;
  font-size: 0.74rem;
  font-weight: 800;
  line-height: 1.45;
}

.market-overview-info-chip {
  flex: 0 0 auto;
  min-height: var(--market-overview-info-pill-min-height);
  padding: var(--market-overview-info-pill-padding);
  border-radius: var(--favorite-activity-pill-radius);
  border: 1px solid var(--market-overview-info-pill-border);
  background: var(--market-overview-info-pill-bg);
  color: var(--market-overview-info-pill-color);
  font-size: 0.72rem;
  font-weight: 900;
}

.market-overview-status-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: var(--market-overview-status-pill-min-height);
  padding: var(--market-overview-status-pill-padding);
  border-radius: var(--favorite-activity-pill-radius);
  border: 1px solid var(--market-overview-status-pill-border);
  background: var(--market-overview-status-pill-bg);
  color: var(--market-overview-status-pill-color);
  font-size: 0.73rem;
  font-weight: 900;
}

.market-overview-today-cards {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.market-overview-today-card {
  display: grid;
  gap: var(--market-overview-today-card-gap);
  min-height: 104px;
  padding: var(--market-overview-today-card-padding);
  border-radius: var(--market-overview-today-card-radius);
  border: 1px solid var(--market-overview-today-card-border);
  background: var(--market-overview-today-card-bg);
}

.market-overview-today-card-title {
  color: #607785;
  font-size: 0.72rem;
  font-weight: 800;
}

.market-overview-today-card strong {
  color: #173246;
  font-size: 1.18rem;
  font-weight: 900;
  line-height: 1.15;
}

.market-overview-today-card-sub,
.market-overview-today-card-note {
  color: #607785;
  font-size: 0.73rem;
  font-weight: 700;
  line-height: 1.45;
}

.market-overview-today-card.tone-hot {
  border-color: var(--market-overview-today-card-hot-border);
  background: var(--market-overview-today-card-hot-bg);
}

.market-overview-today-card.tone-status {
  border-color: var(--market-overview-today-card-status-border);
  background: var(--market-overview-today-card-status-bg);
}

.market-overview-today-card.is-compact {
  gap: var(--market-overview-today-card-compact-gap);
  min-height: 0;
  padding: var(--market-overview-today-card-compact-padding);
  border-radius: var(--market-overview-today-card-compact-radius);
}

.market-overview-today-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
}

.market-overview-today-card.is-compact .market-overview-today-card-title {
  flex: 1 1 auto;
  font-size: 0.68rem;
  line-height: 1.35;
}

.market-overview-today-card.is-compact strong {
  flex: 0 0 auto;
  font-size: 0.94rem;
  line-height: 1.1;
  text-align: right;
}

.market-overview-today-card-meta {
  color: #5f7482;
  font-size: 0.67rem;
  font-weight: 800;
  line-height: 1.45;
}

.market-overview-grid-shell {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(320px, 0.86fr);
  gap: 14px;
  align-items: start;
  margin-top: 14px;
}

.market-overview-main {
  min-width: 0;
}

.market-overview-table-wrap {
  border: 1px solid rgba(199, 211, 220, 0.95);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.9);
  overflow: auto;
}

.market-overview-table {
  width: 100%;
  min-width: 1020px;
  border-collapse: collapse;
}

.market-overview-table th,
.market-overview-table td {
  padding: 12px 12px 11px;
  border-bottom: 1px solid rgba(227, 233, 237, 0.96);
  text-align: left;
  vertical-align: top;
}

.market-overview-table thead th {
  position: sticky;
  top: 0;
  z-index: 1;
  background: linear-gradient(180deg, #f8fbfd 0%, #eef4f6 100%);
  color: #5d7482;
  font-size: 0.73rem;
  font-weight: 900;
}

.market-overview-table tbody tr:last-child td {
  border-bottom: 0;
}

.market-overview-table tbody tr.is-selected {
  background: rgba(236, 244, 248, 0.76);
}

.market-overview-row-btn {
  width: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  text-align: left;
  font: inherit;
}

.market-overview-row-btn-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
}

.market-overview-row-btn strong {
  display: block;
  color: #173246;
  font-size: 0.84rem;
}

.market-overview-row-date,
.market-overview-inline-date {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 22px;
  padding: 0 8px;
  border-radius: 999px;
  border: 1px solid rgba(196, 208, 215, 0.95);
  background: rgba(247, 250, 252, 0.96);
  color: #617886;
  font-size: 0.66rem;
  font-weight: 900;
  line-height: 1;
  white-space: nowrap;
  flex-shrink: 0;
}

.market-overview-inline-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 24px;
  padding: 0 9px;
  border-radius: 999px;
  border: 1px solid rgba(201, 212, 220, 0.95);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(240, 245, 247, 0.95) 100%);
  color: #607a88;
  font-size: 0.68rem;
  font-weight: 900;
  line-height: 1.15;
}

.market-overview-row-btn span,
.market-overview-table td small {
  color: #68808d;
  font-size: 0.72rem;
  font-weight: 700;
  line-height: 1.45;
}

.market-overview-table td strong {
  color: #173246;
  font-size: 0.83rem;
}

.market-overview-primary-block {
  display: grid;
  gap: 4px;
}

.market-overview-primary-block span {
  color: #68808d;
  font-size: 0.7rem;
  font-weight: 800;
  line-height: 1.4;
}

.market-overview-delta-value {
  font-variant-numeric: tabular-nums;
}

.market-overview-delta-value.is-up-strong {
  color: #b54237;
}

.market-overview-delta-value.is-up-soft {
  color: #cf6558;
}

.market-overview-delta-value.is-down-strong {
  color: #2459c5;
}

.market-overview-delta-value.is-down-soft {
  color: #5c82d9;
}

.market-overview-delta-value.is-flat {
  color: #617785;
}

.market-overview-signal-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 24px;
  padding: 0 9px;
  border-radius: 999px;
  border: 1px solid #cad8df;
  background: linear-gradient(180deg, #ffffff 0%, #eef4f6 100%);
  color: #4c6979;
  font-size: 0.71rem;
  font-weight: 900;
}

.market-overview-signal-pill.is-hot,
.district-market-badge-row.is-hot {
  border-color: rgba(196, 110, 84, 0.34);
  background: linear-gradient(180deg, #fff7f1 0%, #faece4 100%);
  color: #934733;
}

.market-overview-signal-pill.is-trade,
.district-market-badge-row.is-trade {
  border-color: rgba(82, 122, 186, 0.3);
  background: linear-gradient(180deg, #f4f8ff 0%, #e7eefb 100%);
  color: #365f95;
}

.market-overview-signal-pill.is-permit,
.district-market-badge-row.is-permit {
  border-color: rgba(186, 141, 66, 0.32);
  background: linear-gradient(180deg, #fff9ef 0%, #f6ead2 100%);
  color: #8a5d1c;
}

.market-overview-signal-pill.is-cool,
.district-market-badge-row.is-cool {
  border-color: rgba(147, 160, 176, 0.32);
  background: linear-gradient(180deg, #f7fafc 0%, #edf1f5 100%);
  color: #5e7282;
}

.market-overview-signal-pill.is-pending,
.district-market-badge-row.is-pending {
  border-color: rgba(184, 148, 103, 0.28);
  background: linear-gradient(180deg, #fbf7ef 0%, #f4ecdf 100%);
  color: #7f6541;
}

.market-overview-signal-pill.is-flat,
.district-market-badge-row.is-flat {
  border-color: rgba(132, 157, 168, 0.28);
  background: linear-gradient(180deg, #f8fbfc 0%, #eef3f5 100%);
  color: #4f6774;
}

.market-overview-stance-block {
  display: grid;
  gap: 4px;
}

.market-overview-stance-title {
  color: #173246;
  font-size: 0.74rem;
  font-weight: 900;
  line-height: 1.25;
}

.market-overview-stance-text {
  display: -webkit-box;
  overflow: hidden;
  color: #68808d;
  font-size: 0.72rem;
  font-weight: 700;
  line-height: 1.45;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}

.market-overview-support-block {
  display: grid;
  gap: 4px;
}

.market-overview-support-block strong {
  color: #173246;
  font-size: 0.73rem;
  line-height: 1.35;
}

.market-overview-support-block span:not(.market-overview-signal-pill) {
  color: #68808d;
  font-size: 0.68rem;
  font-weight: 800;
  line-height: 1.4;
}

.market-overview-support-block .market-overview-signal-pill {
  justify-self: start;
}

.market-overview-card-list {
  display: none;
  min-width: 0;
}

.market-overview-mobile-card {
  width: 100%;
  border: 1px solid rgba(199, 211, 220, 0.95);
  border-radius: 18px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.96) 0%, rgba(241, 246, 246, 0.92) 100%);
  padding: 14px;
  text-align: left;
  display: grid;
  gap: 10px;
  min-width: 0;
  overflow: hidden;
  box-sizing: border-box;
  align-content: start;
}

.market-overview-mobile-card-head {
  display: grid;
  gap: 5px;
  min-width: 0;
}

.market-overview-mobile-card-title {
  min-width: 0;
  display: grid;
  gap: 5px;
}

.market-overview-mobile-card-name-row {
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 6px;
}

.market-overview-mobile-card-head strong {
  color: #173246;
  font-size: 0.98rem;
  line-height: 1.22;
  min-width: 0;
  overflow-wrap: anywhere;
  flex: 1 1 auto;
}

.market-overview-mobile-card-chip-row {
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  gap: 6px;
  min-width: 0;
  flex-wrap: wrap;
}

.market-overview-mobile-card-chip-row .market-overview-signal-pill,
.market-overview-mobile-card-chip-row .market-overview-inline-chip,
.market-overview-mobile-card-chip-row .signal-evidence-badge,
.market-overview-mobile-card-chip-row .signal-stage-badge,
.market-overview-mobile-card-chip-row .signal-badge-row {
  max-width: 100%;
  white-space: normal;
  line-height: 1.2;
  padding-top: 4px;
  padding-bottom: 4px;
  min-height: auto;
}

.market-overview-mobile-card-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 6px 10px;
}

.market-overview-mobile-card-grid span {
  color: #687f8c;
  font-size: 0.72rem;
  font-weight: 700;
}

.market-overview-mobile-card-grid strong {
  color: #173246;
  font-size: 0.8rem;
  text-align: right;
}

.market-overview-mobile-hero {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  min-width: 0;
}

.market-overview-mobile-hero-card {
  display: grid;
  gap: 4px;
  padding: 10px 11px;
  border-radius: 14px;
  border: 1px solid rgba(202, 214, 221, 0.94);
  background: linear-gradient(180deg, rgba(251, 253, 253, 0.98) 0%, rgba(240, 245, 247, 0.94) 100%);
  min-width: 0;
  width: 100%;
  overflow: hidden;
  box-sizing: border-box;
}

.market-overview-mobile-hero-card span {
  color: #6a808e;
  font-size: 0.65rem;
  font-weight: 900;
}

.market-overview-mobile-hero-card strong {
  color: #173246;
  font-size: 0.82rem;
  line-height: 1.2;
  overflow-wrap: anywhere;
}

.market-overview-mobile-hero-card small {
  color: #68808d;
  font-size: 0.64rem;
  font-weight: 800;
  line-height: 1.35;
  overflow-wrap: anywhere;
  display: -webkit-box;
  overflow: hidden;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}

.market-overview-mobile-card-action {
  display: grid;
  gap: 5px;
  padding: 10px 11px;
  border-radius: 14px;
  border: 1px solid rgba(196, 208, 216, 0.92);
  background: linear-gradient(180deg, rgba(250, 252, 253, 0.98) 0%, rgba(240, 245, 247, 0.94) 100%);
  min-width: 0;
  width: 100%;
  overflow: hidden;
  box-sizing: border-box;
}

.market-overview-mobile-card-action.is-hot {
  border-color: rgba(196, 110, 84, 0.26);
  background: linear-gradient(180deg, #fff7f1 0%, #faece4 100%);
}

.market-overview-mobile-card-action.is-trade {
  border-color: rgba(82, 122, 186, 0.26);
  background: linear-gradient(180deg, #f4f8ff 0%, #e7eefb 100%);
}

.market-overview-mobile-card-action.is-permit {
  border-color: rgba(186, 141, 66, 0.26);
  background: linear-gradient(180deg, #fff9ef 0%, #f6ead2 100%);
}

.market-overview-mobile-card-action.is-cool,
.market-overview-mobile-card-action.is-flat,
.market-overview-mobile-card-action.is-pending {
  border-color: rgba(132, 157, 168, 0.24);
  background: linear-gradient(180deg, #f8fbfc 0%, #eef3f5 100%);
}

.market-overview-mobile-card-action-label {
  color: #6a808e;
  font-size: 0.63rem;
  font-weight: 900;
  letter-spacing: 0.02em;
}

.market-overview-mobile-card-action-title {
  color: #173246;
  font-size: 0.78rem;
  font-weight: 900;
  line-height: 1.25;
  overflow-wrap: anywhere;
}

.market-overview-mobile-card-copy {
  margin: 0;
  color: #4f6978;
  font-size: 0.72rem;
  font-weight: 800;
  line-height: 1.38;
  overflow-wrap: anywhere;
  display: -webkit-box;
  overflow: hidden;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  min-height: calc(1.38em * 2);
}

.market-overview-mobile-card-subcopy {
  margin: 0;
  color: #758995;
  font-size: 0.67rem;
  font-weight: 800;
  line-height: 1.45;
  min-width: 0;
  overflow-wrap: anywhere;
}

.market-overview-mobile-support-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 8px;
  min-width: 0;
}

.market-overview-mobile-support-chip {
  display: grid;
  gap: 4px;
  min-width: 0;
  padding: 9px 10px;
  border-radius: 12px;
  border: 1px solid rgba(202, 214, 221, 0.9);
  background: linear-gradient(180deg, rgba(249, 252, 253, 0.97) 0%, rgba(239, 245, 247, 0.93) 100%);
  color: #617988;
  width: 100%;
  overflow: hidden;
  box-sizing: border-box;
}

.market-overview-mobile-support-chip strong {
  color: #173246;
  font-size: 0.79rem;
  line-height: 1.2;
  overflow-wrap: anywhere;
}

.market-overview-mobile-support-chip span {
  color: #69808e;
  font-size: 0.63rem;
  font-weight: 800;
  line-height: 1.35;
}

.market-overview-mobile-support-meta {
  display: grid;
  gap: 2px;
  color: #68808d;
  min-width: 0;
}

.market-overview-mobile-support-meta span {
  font-size: 0.65rem;
  font-weight: 800;
  line-height: 1.35;
  overflow-wrap: anywhere;
}

.market-overview-drawer-headline {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
}

.market-overview-drawer {
  position: fixed;
  inset: clamp(14px, 2vw, 24px);
  z-index: 2267;
  display: grid;
  gap: 14px;
  padding: clamp(18px, 2vw, 24px);
  border-radius: 24px;
  border: 1px solid rgba(199, 211, 220, 0.95);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.97) 0%, rgba(242, 247, 246, 0.94) 100%);
  box-shadow:
    0 28px 56px rgba(10, 25, 34, 0.26),
    0 10px 24px rgba(24, 47, 59, 0.14),
    inset 0 1px 0 rgba(255, 255, 255, 0.8);
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}

.market-overview-drawer-backdrop {
  position: fixed;
  inset: 0;
  z-index: 2266;
  display: block;
  border: 0;
  margin: 0;
  padding: 0;
  background: rgba(10, 18, 25, 0.48);
}

.market-overview-drawer-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
}

.market-overview-drawer-head h4 {
  margin: 0;
  color: #173246;
  font-size: 0.96rem;
}

.market-overview-drawer-head p {
  margin: 6px 0 0;
  color: #68808d;
  font-size: 0.73rem;
  font-weight: 700;
  line-height: 1.45;
}

.market-overview-drawer-head-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 8px;
  margin-top: 4px;
  color: #68808d;
  font-size: 0.73rem;
  font-weight: 700;
  line-height: 1.45;
}

.market-overview-drawer-close {
  width: 32px;
  height: 32px;
  border-radius: 999px;
  border: 1px solid #c9d6dd;
  background: linear-gradient(180deg, #ffffff 0%, #eef4f5 100%);
  color: #466373;
  font-size: 0.95rem;
  font-weight: 900;
  line-height: 1;
  padding: 0;
}

.market-overview-drawer-metrics {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.market-overview-drawer-metric {
  display: grid;
  gap: 4px;
  padding: 11px 12px;
  border-radius: 14px;
  border: 1px solid rgba(209, 219, 225, 0.95);
  background: rgba(255, 255, 255, 0.88);
}

.market-overview-drawer-metric span {
  color: #69808e;
  font-size: 0.71rem;
  font-weight: 800;
}

.market-overview-drawer-metric strong {
  color: #173246;
  font-size: 0.88rem;
}

.market-overview-drawer-section {
  display: grid;
  gap: 8px;
}

.market-overview-drawer-section h4,
.market-overview-drawer-section h5 {
  margin: 0;
  color: #173246;
  font-size: 0.81rem;
}

.market-overview-drawer-copy,
.market-overview-drawer-empty p,
.market-overview-drawer-signal {
  margin: 0;
  color: #4f6978;
  font-size: 0.76rem;
  font-weight: 800;
  line-height: 1.55;
}

.market-overview-top-complex-list {
  display: grid;
  gap: 8px;
}

.market-overview-top-complex-card {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 8px 10px;
  align-items: start;
  padding: 10px 11px;
  border-radius: 14px;
  border: 1px solid rgba(210, 220, 225, 0.96);
  background: rgba(255, 255, 255, 0.86);
}

.market-overview-top-complex-rank {
  color: #7a8e9a;
  font-size: 0.74rem;
  font-weight: 900;
}

.market-overview-top-complex-card strong {
  color: #173246;
  font-size: 0.8rem;
}

.market-overview-top-complex-card span,
.market-overview-top-complex-meta {
  color: #67808d;
  font-size: 0.71rem;
  font-weight: 700;
  line-height: 1.45;
}

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

.market-overview-drawer-action-card {
  display: grid;
  gap: 4px;
  min-height: 62px;
  padding: 11px 12px;
  border-radius: 14px;
  border: 1px solid #c9d8e0;
  background: linear-gradient(180deg, #ffffff 0%, #eef4f5 100%);
  color: #355567;
  text-align: left;
}

.market-overview-drawer-action-card strong {
  color: inherit;
  font-size: 0.8rem;
  line-height: 1.25;
}

.market-overview-drawer-action-card span {
  color: #6d8593;
  font-size: 0.7rem;
  font-weight: 800;
  line-height: 1.45;
}

.market-overview-drawer-action-card.trade {
  border-color: rgba(97, 132, 184, 0.32);
  color: #345d93;
}

.market-overview-drawer-action-card.permit {
  border-color: rgba(180, 137, 70, 0.32);
  color: #8a5d1c;
}

.market-overview-drawer-action-card.map {
  border-color: rgba(66, 143, 122, 0.3);
  color: #206a5e;
}

.market-overview-drawer-action-card.ranking {
  border-color: rgba(179, 142, 70, 0.28);
  color: #8a6225;
}

.market-overview-action-btn {
  min-height: 42px;
  border-radius: 14px;
  border: 1px solid #c9d8e0;
  background: linear-gradient(180deg, #ffffff 0%, #eef4f5 100%);
  color: #355567;
  font-size: 0.79rem;
  font-weight: 900;
  line-height: 1.25;
  padding: 10px 12px;
}

.market-overview-action-btn.trade {
  border-color: rgba(97, 132, 184, 0.32);
  color: #345d93;
}

.market-overview-action-btn.permit {
  border-color: rgba(180, 137, 70, 0.32);
  color: #8a5d1c;
}

.market-overview-action-btn.map {
  border-color: rgba(66, 143, 122, 0.3);
  color: #206a5e;
}

.market-overview-action-btn.ranking {
  border-color: rgba(179, 142, 70, 0.28);
  color: #8a6225;
}

.market-overview-strategy-card {
  border-radius: 20px;
  border: 1px solid rgba(196, 210, 217, 0.94);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.95) 0%, rgba(240, 246, 244, 0.92) 100%);
}

.market-overview-strategy-card-inner {
  display: grid;
  gap: 12px;
  padding: 16px;
}

.market-overview-strategy-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
}

.market-overview-strategy-head strong {
  color: #173246;
  font-size: 0.9rem;
}

.market-overview-strategy-head span,
.market-overview-strategy-copy {
  color: #5f7684;
  font-size: 0.76rem;
  font-weight: 800;
  line-height: 1.55;
}

.market-overview-strategy-metrics {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.market-overview-strategy-metrics .market-overview-banner-chip {
  min-height: 82px;
}

.market-overview-empty {
  padding: 22px 18px;
  border-radius: 16px;
  border: 1px dashed rgba(189, 202, 209, 0.98);
  background: rgba(255, 255, 255, 0.84);
  color: #607784;
  font-size: 0.8rem;
  font-weight: 800;
  text-align: center;
}

.market-overview-empty.compact {
  padding: 14px 12px;
  font-size: 0.73rem;
}

.market-overview-info-popup {
  position: fixed;
  inset: 0;
  z-index: 2500;
  display: grid;
  place-items: center;
  padding: 18px;
}

.market-overview-info-backdrop {
  position: absolute;
  inset: 0;
  border: 0;
  margin: 0;
  padding: 0;
  background: rgba(12, 20, 28, 0.48);
}

.market-overview-info-dialog {
  position: relative;
  z-index: 1;
  width: min(100%, 720px);
  max-height: min(82vh, 760px);
  overflow-y: auto;
  display: grid;
  gap: 14px;
  padding: 18px;
  border-radius: 22px;
  border: 1px solid rgba(201, 213, 221, 0.95);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(242, 247, 247, 0.96) 100%);
  box-shadow: 0 24px 48px rgba(12, 28, 36, 0.22);
}

.market-overview-info-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
}

.market-overview-info-head h4 {
  margin: 0;
  color: #173246;
  font-size: 0.98rem;
}

.market-overview-info-head p {
  margin: 6px 0 0;
  color: #587180;
  font-size: 0.77rem;
  font-weight: 800;
  line-height: 1.55;
}

.market-overview-info-close-btn {
  flex: 0 0 auto;
  width: 34px;
  height: 34px;
  padding: 0;
  border-radius: 999px;
  border: 1px solid rgba(198, 209, 216, 0.96);
  background: linear-gradient(180deg, #ffffff 0%, #eef4f5 100%);
  color: #4a6474;
  font-size: 1rem;
  font-weight: 900;
  line-height: 1;
}

.market-overview-info-body {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.market-overview-info-section {
  display: grid;
  gap: 10px;
}

.market-overview-info-section h5 {
  margin: 0;
  color: #173246;
  font-size: 0.78rem;
  font-weight: 900;
}

.market-overview-price-guide-dialog {
  width: min(100%, 760px);
}

.market-overview-price-guide-figure {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(220px, 0.9fr);
  gap: 12px;
}

.market-overview-price-guide-chart,
.market-overview-price-guide-copy {
  padding: 12px 13px;
  border-radius: 16px;
  border: 1px solid rgba(205, 217, 222, 0.92);
  background: rgba(255, 255, 255, 0.9);
}

.market-overview-price-guide-svg {
  width: 100%;
  height: 170px;
  display: block;
}

.market-overview-price-guide-line {
  fill: none;
  stroke: #d06f47;
  stroke-width: 3;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.market-overview-price-guide-bars rect {
  rx: 3;
}

.market-overview-price-guide-bars.permit rect {
  fill: rgba(56, 146, 132, 0.78);
}

.market-overview-price-guide-bars.confirm rect {
  fill: rgba(86, 116, 205, 0.74);
}

.market-overview-price-guide-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 8px;
}

.market-overview-price-guide-legend span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #5c7281;
  font-size: 0.71rem;
  font-weight: 800;
}

.market-overview-price-guide-legend i {
  display: inline-block;
  width: 14px;
  height: 8px;
  border-radius: 999px;
  background: #c9d4dc;
}

.market-overview-price-guide-legend i.line {
  height: 3px;
  background: #d06f47;
}

.market-overview-price-guide-legend i.permit {
  background: rgba(56, 146, 132, 0.78);
}

.market-overview-price-guide-legend i.confirm {
  background: rgba(86, 116, 205, 0.74);
}

.market-overview-price-guide-copy {
  display: grid;
  align-content: start;
  gap: 8px;
}

.market-overview-price-guide-examples {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.market-overview-price-guide-example-card {
  display: grid;
  gap: 4px;
  padding: 9px 10px;
  border-radius: 14px;
  border: 1px solid rgba(205, 217, 222, 0.92);
  background: rgba(247, 250, 252, 0.96);
}

.market-overview-price-guide-example-card.tone-negative {
  border-color: rgba(88, 111, 208, 0.26);
  background: rgba(239, 243, 255, 0.96);
}

.market-overview-price-guide-example-card.tone-positive {
  border-color: rgba(223, 168, 115, 0.28);
  background: rgba(255, 246, 237, 0.96);
}

.market-overview-price-guide-example-card strong {
  color: #173246;
  font-size: 0.73rem;
  font-weight: 900;
  line-height: 1.35;
}

.market-overview-price-guide-example-card p {
  margin: 0;
  color: #5f7380;
  font-size: 0.68rem;
  line-height: 1.5;
  font-weight: 800;
}

.market-overview-price-guide-copy strong {
  color: #173246;
  font-size: 0.84rem;
  line-height: 1.45;
}

.market-overview-price-guide-copy p {
  margin: 0;
  color: #597080;
  font-size: 0.74rem;
  line-height: 1.55;
  font-weight: 800;
}

.market-overview-price-guide-body {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.market-overview-info-state-card {
  display: grid;
  gap: 6px;
  padding: 13px 14px;
  border-radius: 16px;
  border: 1px solid rgba(201, 213, 221, 0.95);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.95) 0%, rgba(241, 246, 246, 0.92) 100%);
}

.market-overview-info-state-card strong {
  color: #173246;
  font-size: 0.8rem;
}

.market-overview-info-state-card p {
  margin: 0;
  color: #55707f;
  font-size: 0.73rem;
  font-weight: 800;
  line-height: 1.5;
}

.market-overview-info-state-card.is-hot {
  border-color: rgba(196, 110, 84, 0.28);
  background: linear-gradient(180deg, #fff7f1 0%, #faece4 100%);
}

.market-overview-info-state-card.is-trade {
  border-color: rgba(82, 122, 186, 0.28);
  background: linear-gradient(180deg, #f4f8ff 0%, #e7eefb 100%);
}

.market-overview-info-state-card.is-permit {
  border-color: rgba(186, 141, 66, 0.28);
  background: linear-gradient(180deg, #fff9ef 0%, #f6ead2 100%);
}

.market-overview-info-state-card.is-flat,
.market-overview-info-state-card.is-cool,
.market-overview-info-state-card.is-pending {
  border-color: rgba(132, 157, 168, 0.24);
  background: linear-gradient(180deg, #f8fbfc 0%, #eef3f5 100%);
}

.district-market-badge-row {
  width: 100%;
  display: grid;
  grid-template-columns: auto auto 1fr auto;
  align-items: center;
  gap: 8px;
  margin: 10px 0 0;
  padding: 9px 11px;
  border-radius: 14px;
  border: 1px solid #cbd8df;
  background: linear-gradient(180deg, #fbfcfd 0%, #eef3f4 100%);
  color: #486373;
  font-size: 0.74rem;
  font-weight: 900;
  text-align: left;
}

.district-market-badge-row.is-compact {
  grid-template-columns: auto auto auto 1fr;
  gap: 7px;
  padding: 8px 10px;
}

.district-market-badge-region {
  color: #173246;
}

.district-market-badge-delta {
  min-width: 54px;
}

.district-market-badge-permit,
.district-market-badge-stance {
  color: inherit;
  font-size: 0.72rem;
  font-weight: 800;
}

.district-market-badge-stance {
  justify-self: end;
}

.detail-district-market-strip {
  margin-top: 10px;
}

@media (max-width: 1080px) {
  .market-overview-dialog {
    width: min(100vw, 980px);
  }

  .market-overview-banner-grid,
  .market-overview-today-cards,
  .market-overview-strategy-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .market-overview-grid-shell {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 760px) {
  .market-overview-popup {
    padding: 0;
    place-items: stretch;
  }

  .market-overview-dialog {
    width: 100vw;
    height: 100dvh;
    max-height: 100dvh;
    border-radius: 0;
    border-left: 0;
    border-right: 0;
  }

  .market-overview-head {
    padding: calc(env(safe-area-inset-top, 0px) + 12px) 14px 12px;
  }

  .market-overview-body {
    padding: 10px;
  }

  .market-overview-banner {
    padding: 12px 13px;
  }

  .market-overview-banner-grid,
  .market-overview-today-cards,
  .market-overview-strategy-metrics,
  .market-overview-drawer-actions,
  .market-overview-quick-actions,
  .market-overview-strategy-actions,
  .market-overview-card-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .market-overview-toolbar,
  .market-overview-strategy-head {
    flex-direction: column;
    align-items: flex-start;
  }

  .market-overview-section-head {
    align-items: flex-start;
  }

  .market-overview-section-head-compare {
    flex-direction: row;
    align-items: flex-start;
  }

  .market-overview-section-title {
    flex: 1 1 auto;
  }

  .market-overview-section-tools {
    justify-content: flex-end;
  }

  .market-overview-sort-btn {
    width: 26px;
    height: 26px;
    border-radius: 9px;
    font-size: 0.63rem;
  }

  .market-overview-info-chip {
    min-height: 26px;
    padding: 0 9px;
    font-size: 0.66rem;
  }

  .market-overview-summary {
    text-align: left;
  }

  .market-overview-banner-chip {
    padding: 8px 9px;
    border-radius: 12px;
  }

  .market-overview-banner-chip span {
    font-size: 0.67rem;
  }

  .market-overview-banner-chip strong {
    font-size: 0.82rem;
    line-height: 1.25;
  }

  .market-overview-chip-btn {
    padding: 6px 10px;
    font-size: 0.72rem;
  }

  .market-overview-status-pill,
  .market-overview-signal-pill {
    min-height: 22px;
    padding: 0 7px;
    font-size: 0.66rem;
  }

  .market-overview-today-card {
    min-height: 88px;
    padding: 11px 10px;
    border-radius: 14px;
  }

  .market-overview-today-card-title,
  .market-overview-today-card-sub,
  .market-overview-today-card-note {
    font-size: 0.66rem;
    line-height: 1.35;
  }

  .market-overview-today-card strong {
    font-size: 0.96rem;
  }

  .market-overview-table-wrap {
    display: none;
  }

  .market-overview-card-list {
    display: grid;
    gap: 8px;
  }

  .market-overview-drawer-backdrop {
    z-index: 2266;
  }

  .market-overview-drawer {
    inset: 0;
    z-index: 2267;
    max-height: none;
    border-radius: 0;
    border-left: 0;
    border-right: 0;
    border-bottom: 0;
    padding: calc(env(safe-area-inset-top, 0px) + 16px) 14px calc(env(safe-area-inset-bottom, 0px) + 18px);
    box-shadow:
      0 0 0 rgba(0, 0, 0, 0),
      inset 0 1px 0 rgba(255, 255, 255, 0.85);
  }

  .market-overview-drawer-metrics {
    grid-template-columns: 1fr 1fr;
  }

  .market-overview-drawer-metric {
    padding: 9px 10px;
  }

  .market-overview-drawer-metric span {
    font-size: 0.66rem;
  }

  .market-overview-drawer-metric strong {
    font-size: 0.8rem;
  }

  .market-overview-drawer-action-card {
    min-height: 54px;
    padding: 9px 10px;
  }

  .market-overview-drawer-action-card strong {
    font-size: 0.73rem;
  }

  .market-overview-drawer-action-card span {
    font-size: 0.64rem;
    line-height: 1.35;
  }

  .market-overview-mobile-card {
    min-height: 100%;
    padding: 12px 11px;
    border-radius: 16px;
  }

  .market-overview-mobile-card-head {
    gap: 5px;
  }

  .market-overview-mobile-card-title {
    gap: 4px;
  }

  .market-overview-mobile-card-name-row {
    align-items: flex-start;
    gap: 6px;
  }

  .market-overview-mobile-card-head strong {
    font-size: 0.83rem;
    line-height: 1.3;
  }

  .market-overview-mobile-card-chip-row {
    gap: 4px;
  }

  .market-overview-mobile-hero {
    grid-template-columns: 1fr;
    gap: 7px;
  }

  .market-overview-mobile-card-grid {
    gap: 5px 8px;
  }

  .market-overview-mobile-card-grid span {
    font-size: 0.66rem;
  }

  .market-overview-mobile-card-grid strong {
    font-size: 0.74rem;
  }

  .market-overview-mobile-hero-card {
    padding: 9px 10px;
    gap: 3px;
  }

  .market-overview-mobile-hero-card span,
  .market-overview-mobile-hero-card small {
    font-size: 0.61rem;
  }

  .market-overview-mobile-hero-card strong {
    font-size: 0.74rem;
  }

  .market-overview-mobile-card-copy {
    font-size: 0.64rem;
    line-height: 1.34;
    min-height: calc(1.34em * 2);
  }

  .market-overview-mobile-card-subcopy {
    font-size: 0.62rem;
  }

  .market-overview-mobile-card-action {
    padding: 9px 10px;
    gap: 4px;
  }

  .market-overview-mobile-card-action-label {
    font-size: 0.6rem;
  }

  .market-overview-mobile-card-action-title {
    font-size: 0.72rem;
  }

  .market-overview-row-date,
  .market-overview-inline-date,
  .market-overview-inline-chip {
    min-height: 20px;
    padding: 0 7px;
    font-size: 0.61rem;
  }

  .market-overview-mobile-support-grid {
    gap: 6px;
  }

  .market-overview-mobile-support-chip {
    padding: 8px 9px;
  }

  .market-overview-mobile-support-chip strong {
    font-size: 0.72rem;
  }

  .market-overview-mobile-support-chip span,
  .market-overview-mobile-support-meta span {
    font-size: 0.6rem;
  }

  .market-overview-info-popup {
    padding: 12px;
    place-items: end stretch;
  }

  .market-overview-info-dialog {
    width: 100%;
    max-height: min(78vh, 720px);
    border-radius: 22px 22px 14px 14px;
    padding: 16px 14px calc(env(safe-area-inset-bottom, 0px) + 16px);
  }

  .market-overview-info-head {
    gap: 10px;
  }

  .market-overview-info-body {
    grid-template-columns: 1fr;
  }

  .market-overview-price-guide-figure,
  .market-overview-price-guide-body {
    grid-template-columns: 1fr;
  }

  .market-overview-price-guide-examples {
    grid-template-columns: 1fr;
  }

  .market-overview-price-guide-chart,
  .market-overview-price-guide-copy {
    padding: 10px 11px;
  }

  .market-overview-price-guide-svg {
    height: 148px;
  }

  .district-market-badge-row.is-compact {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 4px 10px;
    align-items: start;
  }

  .district-market-badge-row.is-compact .district-market-badge-region,
  .district-market-badge-row.is-compact .district-market-badge-delta {
    justify-self: start;
  }

  .district-market-badge-row.is-compact .district-market-badge-permit,
  .district-market-badge-row.is-compact .district-market-badge-stance {
    justify-self: end;
    text-align: right;
  }
}

@media (max-width: 420px) {
  .market-overview-banner-grid,
  .market-overview-today-cards,
  .market-overview-card-list,
  .market-overview-strategy-actions,
  .market-overview-quick-actions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .market-overview-strategy-metrics {
    grid-template-columns: 1fr;
  }

  .market-overview-drawer-actions {
    grid-template-columns: 1fr;
  }

  .market-overview-section-head-compare {
    flex-direction: column;
    align-items: flex-start;
  }

  .market-overview-section-tools {
    width: 100%;
    justify-content: flex-end;
  }

  .district-market-badge-row.is-compact {
    grid-template-columns: 1fr;
    gap: 4px;
  }

  .district-market-badge-row.is-compact .district-market-badge-permit,
  .district-market-badge-row.is-compact .district-market-badge-stance {
    justify-self: start;
    text-align: left;
  }
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  font-family: "Pretendard Variable", "SUIT Variable", "Noto Sans KR", "Apple SD Gothic Neo", sans-serif;
  line-height: 1.4;
  color: var(--ink);
  background:
    radial-gradient(circle at 10% 14%, rgba(255, 233, 190, 0.44) 0%, transparent 34%),
    radial-gradient(circle at 84% 18%, rgba(183, 216, 255, 0.36) 0%, transparent 32%),
    radial-gradient(circle at 86% 84%, rgba(185, 233, 215, 0.46) 0%, transparent 42%),
    linear-gradient(165deg, #f8fbfe 0%, #edf3f6 52%, #eaf1f4 100%),
    var(--bg);
}

.app-header {
  padding: 22px 20px 14px;
  border-bottom: 1px solid rgba(170, 196, 200, 0.5);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.8) 0%, rgba(243, 249, 250, 0.68) 100%);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  box-shadow: 0 5px 16px rgba(20, 46, 55, 0.08);
}

.main-header {
  padding-bottom: 18px;
}

.header-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  max-width: 1680px;
  margin: 0 auto;
}

.header-left {
  flex: 1 1 auto;
  min-width: 0;
  max-width: 440px;
}

.header-right {
  flex: 1 1 auto;
  min-width: 0;
  display: grid;
  gap: 10px;
  justify-self: stretch;
}

.main-header .header-top {
  display: grid;
  grid-template-columns: minmax(196px, 0.52fr) minmax(640px, 2.36fr);
  align-items: start;
  gap: 14px;
}

.main-header .header-left {
  max-width: none;
}

.header-tools {
  display: grid;
  grid-template-columns: minmax(360px, 1fr);
  grid-template-areas: "search";
  gap: 11px;
  align-items: start;
  width: 100%;
  min-width: 0;
}

.header-tools > .panel {
  width: 100%;
  min-width: 0;
}

.app-header h1 {
  margin: 0;
  font-size: clamp(1.45rem, 2.1vw, 1.88rem);
  letter-spacing: -0.05em;
  font-weight: 900;
  color: #152f2a;
}

.header-title-row {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  min-width: 0;
}

.title-settings-btn {
  width: 34px;
  height: 34px;
  border-radius: 999px;
  border: 1px solid #b9d2cc;
  background: linear-gradient(180deg, #ffffff 0%, #edf5f3 100%);
  color: #1b5e52;
  font-size: 1.02rem;
  font-weight: 900;
  line-height: 1;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow:
    0 5px 12px rgba(16, 52, 44, 0.12),
    inset 0 1px 0 rgba(255, 255, 255, 0.82);
}

.title-ranking-btn {
  border-color: #dcc58c;
  background: linear-gradient(180deg, #fff9eb 0%, #f5ead0 100%);
  color: #8c6421;
}

.title-ranking-btn:hover {
  background: linear-gradient(180deg, #fff7e3 0%, #f1e2bd 100%);
  border-color: #cfae66;
}

.title-ranking-btn[aria-expanded="true"] {
  border-color: #c59a4e;
  background: linear-gradient(180deg, #f8edd1 0%, #eed9aa 100%);
  box-shadow:
    0 5px 12px rgba(112, 78, 21, 0.18),
    inset 0 1px 0 rgba(255, 255, 255, 0.7);
}

.title-ranking-icon {
  width: 18px;
  height: 18px;
  display: block;
  fill: currentColor;
}

.title-bell-btn {
  position: relative;
  border-color: #d8c0d7;
  background: linear-gradient(180deg, #fff8ff 0%, #f3eaf7 100%);
  color: #80468c;
}

.title-bell-btn:hover {
  background: linear-gradient(180deg, #fff4ff 0%, #eedff4 100%);
  border-color: #caabd0;
}

.title-bell-btn[aria-expanded="true"] {
  border-color: #b484c1;
  background: linear-gradient(180deg, #f9edf9 0%, #ebd9ef 100%);
  box-shadow:
    0 5px 12px rgba(101, 55, 116, 0.18),
    inset 0 1px 0 rgba(255, 255, 255, 0.76);
}

.title-bell-icon {
  width: 18px;
  height: 18px;
  display: block;
  fill: currentColor;
}

.title-market-alert-btn {
  position: relative;
  border-color: #d9c6ab;
  background: linear-gradient(180deg, #fffaf3 0%, #f5ecde 100%);
  color: #8b5c24;
}

.title-market-alert-btn:hover {
  background: linear-gradient(180deg, #fff7ed 0%, #f1e3cd 100%);
  border-color: #d0af7a;
}

.title-market-alert-btn[aria-expanded="true"] {
  border-color: #c58e4b;
  background: linear-gradient(180deg, #faefd9 0%, #efd7b1 100%);
  box-shadow:
    0 5px 12px rgba(114, 76, 28, 0.18),
    inset 0 1px 0 rgba(255, 255, 255, 0.76);
}

.title-market-monthly-btn {
  flex: 0 0 auto;
}

.title-market-monthly-btn.trade {
  border-color: #afc8e3;
  background: linear-gradient(180deg, #f7fbff 0%, #e6f0fb 100%);
  color: #365e95;
}

.title-market-monthly-btn.trade:hover,
.title-market-monthly-btn.trade[aria-expanded="true"] {
  border-color: #7ea6d5;
  background: linear-gradient(180deg, #eef6ff 0%, #dce9f9 100%);
}

.title-market-monthly-btn.permit {
  border-color: #dcc799;
  background: linear-gradient(180deg, #fffaf0 0%, #f6ebd2 100%);
  color: #8a6120;
}

.title-market-monthly-btn.permit:hover,
.title-market-monthly-btn.permit[aria-expanded="true"] {
  border-color: #c9a25d;
  background: linear-gradient(180deg, #fff5e5 0%, #f2e1bb 100%);
}

.title-market-alert-icon {
  width: 18px;
  height: 18px;
  display: block;
  fill: none;
  stroke: currentColor;
}

.title-market-monthly-icon {
  width: 18px;
  height: 18px;
  display: block;
  fill: currentColor;
  stroke: currentColor;
}

.title-activity-btn {
  position: relative;
  border-color: #c7d8af;
  background: linear-gradient(180deg, #fbfff5 0%, #edf5da 100%);
  color: #496f1a;
}

.title-activity-btn:hover {
  background: linear-gradient(180deg, #f7ffec 0%, #e6f1cb 100%);
  border-color: #aeca72;
}

.title-activity-btn[aria-expanded="true"] {
  border-color: #83a548;
  background: linear-gradient(180deg, #eef8d7 0%, #d9eba6 100%);
  box-shadow:
    0 5px 12px rgba(71, 96, 25, 0.18),
    inset 0 1px 0 rgba(255, 255, 255, 0.76);
}

.title-activity-icon {
  width: 18px;
  height: 18px;
  display: block;
  fill: none;
  stroke: currentColor;
}

.title-icon-badge {
  position: absolute;
  top: -5px;
  right: -4px;
  min-width: 16px;
  height: 16px;
  padding: 0 4px;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.92);
  background: linear-gradient(180deg, #fb6a5d 0%, #df3e34 100%);
  color: #fff;
  font-size: 0.58rem;
  font-weight: 900;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 10px rgba(147, 41, 36, 0.24);
}

.title-settings-btn:hover {
  background: linear-gradient(180deg, #f7fbfa 0%, #e7f1ef 100%);
  border-color: #9fc5bc;
}

.title-settings-btn:active {
  transform: translateY(1px);
}

.header-quick-access {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  justify-content: stretch;
  align-items: stretch;
  gap: 8px;
  margin-left: auto;
  width: min(100%, 580px);
  padding: 4px;
  border-radius: 18px;
  border: 1px solid rgba(171, 198, 205, 0.52);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.76) 0%, rgba(236, 245, 246, 0.62) 100%);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.86),
    0 6px 15px rgba(20, 49, 60, 0.08);
  backdrop-filter: blur(3.5px);
  -webkit-backdrop-filter: blur(3.5px);
}

.header-quick-btn {
  --quick-accent: #4f7ff4;
  --quick-accent-soft: rgba(79, 127, 244, 0.12);
  --quick-border: rgba(129, 157, 198, 0.44);
  --quick-shadow: rgba(32, 58, 92, 0.1);
  width: 100%;
  min-width: 0;
  max-width: none;
  min-height: 40px;
  border: 1px solid var(--quick-border);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(241, 247, 247, 0.96) 100%);
  color: #24424d;
  border-radius: 999px;
  padding: 0 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-size: 0.84rem;
  font-weight: 860;
  line-height: 1;
  letter-spacing: -0.01em;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  box-shadow:
    0 6px 14px var(--quick-shadow),
    inset 0 1px 0 rgba(255, 255, 255, 0.94);
  transition: transform 0.16s ease, border-color 0.16s ease, box-shadow 0.16s ease, background-color 0.16s ease;
}

.header-quick-btn::before {
  content: "";
  position: absolute;
  inset: 1px;
  border-radius: 999px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.42) 0%, rgba(255, 255, 255, 0) 58%);
  z-index: 0;
}

.header-quick-btn::after {
  content: "";
  position: absolute;
  top: -12px;
  right: -10px;
  width: 48px;
  height: 48px;
  border-radius: 999px;
  background: radial-gradient(circle, rgba(255, 255, 255, 0.54) 0%, rgba(255, 255, 255, 0) 70%);
  z-index: 0;
}

.header-quick-btn > span {
  position: relative;
  z-index: 1;
}

.header-quick-btn.favorites {
  --quick-accent: #24a68e;
  --quick-accent-soft: rgba(36, 166, 142, 0.14);
  --quick-border: rgba(112, 186, 169, 0.58);
  --quick-shadow: rgba(15, 102, 84, 0.1);
}

.header-quick-btn.today {
  --quick-accent: #4d7bef;
  --quick-accent-soft: rgba(77, 123, 239, 0.14);
  --quick-border: rgba(114, 148, 223, 0.58);
  --quick-shadow: rgba(29, 68, 169, 0.1);
}

.header-quick-btn.bulk {
  --quick-bg-start: #7f8fef;
  --quick-bg-end: #6376de;
  --quick-border: #5d6fd0;
  --quick-shadow: rgba(62, 71, 158, 0.24);
  min-width: 204px;
}

.header-quick-btn.experiment {
  --quick-bg-start: #6f8f96;
  --quick-bg-end: #516f77;
  --quick-border: #587079;
  --quick-shadow: rgba(40, 59, 64, 0.24);
  min-width: 204px;
}

.header-quick-btn.compare {
  --quick-accent: #d18a38;
  --quick-accent-soft: rgba(209, 138, 56, 0.16);
  --quick-border: rgba(214, 170, 106, 0.58);
  --quick-shadow: rgba(116, 62, 8, 0.1);
}

.header-quick-btn.analysis {
  --quick-accent: #8c69d1;
  --quick-accent-soft: rgba(140, 105, 209, 0.15);
  --quick-border: rgba(177, 157, 215, 0.58);
  --quick-shadow: rgba(91, 67, 142, 0.1);
}

.header-recycler-group {
  grid-column: 1 / -1;
  flex: 1 1 100%;
  width: 100%;
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: stretch;
  gap: 10px;
}

.header-recycler-status {
  --recycler-accent: #5f88ff;
  --recycler-accent-soft: rgba(95, 136, 255, 0.18);
  width: 100%;
  min-height: 88px;
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(181, 198, 243, 0.88);
  border-radius: 22px;
  background:
    radial-gradient(circle at top right, rgba(124, 168, 255, 0.18) 0%, rgba(124, 168, 255, 0) 34%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(240, 246, 255, 0.98) 100%);
  color: #203553;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 16px;
  padding: 14px 18px;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.86),
    0 14px 30px rgba(71, 103, 162, 0.12);
  transition: transform 0.18s ease, box-shadow 0.18s ease, filter 0.18s ease;
}

.header-recycler-status::before {
  content: "";
  position: absolute;
  inset: 1px;
  border-radius: 21px;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.42) 0%, rgba(255, 255, 255, 0.06) 38%, rgba(255, 255, 255, 0) 100%);
  pointer-events: none;
}

.header-recycler-status > * {
  position: relative;
  z-index: 1;
}

.header-recycler-status:hover {
  transform: translateY(-1px);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.9),
    0 18px 34px rgba(71, 103, 162, 0.16);
}

.header-recycler-status.is-running {
  --recycler-accent: #497bff;
  --recycler-accent-soft: rgba(73, 123, 255, 0.2);
}

.header-recycler-status.is-busy {
  --recycler-accent: #6d78d9;
  --recycler-accent-soft: rgba(109, 120, 217, 0.2);
}

.header-recycler-status.is-sleeping {
  --recycler-accent: #8ba0c2;
  --recycler-accent-soft: rgba(139, 160, 194, 0.16);
}

.header-recycler-status.is-cycle-complete {
  --recycler-accent: #7a72e8;
  --recycler-accent-soft: rgba(122, 114, 232, 0.18);
}

.header-recycler-status.is-paused {
  --recycler-accent: #9a77ee;
  --recycler-accent-soft: rgba(154, 119, 238, 0.18);
}

.header-recycler-status.is-error {
  --recycler-accent: #db6b63;
  --recycler-accent-soft: rgba(219, 107, 99, 0.18);
}

.recycler-card-ring {
  width: 58px;
  height: 58px;
  display: inline-grid;
  place-items: center;
  position: relative;
  flex: 0 0 58px;
}

.recycler-card-copy {
  min-width: 0;
  display: grid;
  gap: 7px;
}

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

.recycler-card-title {
  color: #18314f;
  font-size: 1rem;
  font-weight: 900;
  letter-spacing: -0.02em;
}

.recycler-card-timestamp {
  color: #5c7294;
  font-size: 0.7rem;
  font-weight: 800;
  white-space: nowrap;
}

.recycler-card-meta {
  color: #35506f;
  font-size: 0.84rem;
  font-weight: 800;
  letter-spacing: -0.01em;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.recycler-card-progress {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
}

.recycler-card-progress-bar {
  height: 12px;
  border-radius: 999px;
  overflow: hidden;
  background: rgba(200, 213, 235, 0.55);
  box-shadow: inset 0 1px 2px rgba(78, 97, 126, 0.14);
}

.recycler-card-progress-fill {
  display: block;
  width: 0%;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, color-mix(in srgb, var(--recycler-accent) 82%, white 18%) 0%, var(--recycler-accent) 100%);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.35),
    0 0 0 1px rgba(255, 255, 255, 0.08);
  transition: width 0.22s ease;
}

.recycler-card-progress-count {
  color: #1f3657;
  font-size: 0.88rem;
  font-weight: 900;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.header-quick-btn .quick-copy {
  display: inline-flex;
  flex: 1 1 auto;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
}

.header-quick-btn .quick-copy-head {
  width: 100%;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.header-quick-btn .quick-sub {
  max-width: 100%;
  overflow: hidden;
  color: rgba(255, 255, 255, 0.92);
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 0.72rem;
  font-weight: 820;
  letter-spacing: -0.01em;
}

.header-quick-btn .quick-timestamp {
  flex: 0 0 auto;
  color: rgba(255, 255, 255, 0.8);
  font-size: 0.63rem;
  font-weight: 820;
  letter-spacing: -0.01em;
}

.recycler-ring-svg {
  width: 58px;
  height: 58px;
  display: block;
  transform: rotate(-90deg);
}

.recycler-ring-track,
.recycler-ring-progress {
  fill: none;
  stroke-width: 4;
}

.recycler-ring-track {
  stroke: rgba(207, 217, 233, 0.92);
}

.recycler-ring-progress {
  stroke: var(--recycler-accent);
  stroke-linecap: round;
  stroke-dasharray: 87.965 87.965;
  stroke-dashoffset: 87.965;
  transition: stroke-dashoffset 0.22s ease;
}

.recycler-ring-label {
  position: absolute;
  inset: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #27476f;
  font-size: 0.68rem;
  font-weight: 900;
  line-height: 1;
  letter-spacing: -0.01em;
}

.header-recycler-toggle {
  width: 66px;
  min-width: 66px;
  min-height: 88px;
  border-radius: 22px;
  border: 1px solid rgba(188, 202, 238, 0.9);
  background:
    radial-gradient(circle at top left, rgba(157, 188, 255, 0.18) 0%, rgba(157, 188, 255, 0) 38%),
    linear-gradient(180deg, #ffffff 0%, #eef4ff 100%);
  color: #f27daa;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.9),
    0 14px 28px rgba(71, 103, 162, 0.1);
  transition: transform 0.18s ease, box-shadow 0.18s ease, filter 0.18s ease;
}

.header-recycler-toggle:hover {
  transform: translateY(-1px);
  filter: saturate(1.03) brightness(1.02);
}

.header-recycler-toggle:disabled {
  cursor: wait;
  opacity: 0.75;
}

.header-recycler-toggle.is-resume {
  color: #59a6f3;
}

.header-recycler-toggle.is-pause {
  color: #f27daa;
}

.header-recycler-toggle.is-busy {
  color: #92a0ba;
}

.recycler-toggle-icon {
  width: 32px;
  height: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.recycler-toggle-svg {
  width: 28px;
  height: 28px;
  display: block;
}

.recycler-toggle-svg rect {
  fill: currentColor;
  stroke: none;
}

.recycler-toggle-svg path {
  fill: none;
  stroke: currentColor;
}

.recycler-detail-panel {
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  right: 0;
  z-index: 14;
  border: 1px solid rgba(191, 204, 233, 0.92);
  border-radius: 20px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(244, 247, 255, 0.98) 100%);
  box-shadow:
    0 18px 36px rgba(36, 61, 111, 0.16),
    inset 0 1px 0 rgba(255, 255, 255, 0.88);
  padding: 13px 14px 12px;
  display: grid;
  gap: 10px;
}

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

.recycler-detail-head strong {
  color: #203754;
  font-size: 0.86rem;
  font-weight: 900;
}

.recycler-detail-phase {
  color: #4f6c95;
  font-size: 0.72rem;
  font-weight: 800;
}

.recycler-detail-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.recycler-detail-cell {
  border: 1px solid rgba(201, 212, 235, 0.82);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.74);
  padding: 8px 9px;
  display: grid;
  gap: 4px;
}

.recycler-detail-label {
  color: #667d9f;
  font-size: 0.67rem;
  font-weight: 800;
}

.recycler-detail-cell strong,
.recycler-detail-current {
  color: #1d3553;
  font-size: 0.77rem;
  font-weight: 900;
}

.recycler-detail-current {
  border-radius: 14px;
  background: rgba(91, 131, 220, 0.1);
  padding: 9px 10px;
}

.recycler-detail-error {
  border-radius: 14px;
  background: rgba(219, 107, 99, 0.12);
  color: #9f453d;
  padding: 9px 10px;
  font-size: 0.75rem;
  font-weight: 800;
}

.header-quick-btn:hover {
  transform: translateY(-1px);
  border-color: color-mix(in srgb, var(--quick-accent) 40%, #ffffff 60%);
  box-shadow:
    0 8px 18px var(--quick-shadow),
    inset 0 1px 0 rgba(255, 255, 255, 0.96);
}

.header-quick-btn:active {
  transform: translateY(0);
}

.header-quick-btn.active {
  border-color: color-mix(in srgb, var(--quick-accent) 48%, #ffffff 52%);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.99) 0%, color-mix(in srgb, var(--quick-accent-soft) 70%, #f3f7f7 30%) 100%);
  box-shadow:
    0 9px 18px var(--quick-shadow),
    inset 0 1px 0 rgba(255, 255, 255, 0.98);
}

.header-quick-btn .quick-icon {
  width: 22px;
  height: 22px;
  flex: 0 0 22px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  border: 1px solid color-mix(in srgb, var(--quick-accent) 24%, #ffffff 76%);
  background: var(--quick-accent-soft);
  color: var(--quick-accent);
  opacity: 1;
}

.header-quick-btn .quick-icon svg {
  width: 13px;
  height: 13px;
  display: block;
  fill: currentColor;
}

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

.header-quick-btn .quick-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 3ch;
  height: auto;
  padding: 0;
  border-radius: 0;
  border: 0;
  background: transparent;
  color: #29434c;
  font-size: 0.86rem;
  font-weight: 900;
  line-height: 1;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.02em;
  text-align: center;
}

.header-quick-btn:disabled {
  cursor: not-allowed;
  opacity: 0.78;
  border-color: rgba(189, 191, 207, 0.62);
  background: linear-gradient(180deg, rgba(252, 252, 255, 0.98) 0%, rgba(241, 242, 247, 0.96) 100%);
  box-shadow:
    0 4px 10px rgba(80, 88, 110, 0.08),
    inset 0 1px 0 rgba(255, 255, 255, 0.92);
}

.header-quick-btn:disabled:hover,
.header-quick-btn:disabled:active {
  transform: none;
  border-color: rgba(189, 191, 207, 0.62);
  box-shadow:
    0 4px 10px rgba(80, 88, 110, 0.08),
    inset 0 1px 0 rgba(255, 255, 255, 0.92);
}

.header-quick-btn:disabled .quick-icon {
  border-color: rgba(175, 174, 199, 0.45);
  background: rgba(140, 105, 209, 0.1);
  color: #7c6b99;
}

.header-quick-btn:disabled .quick-count {
  color: #65707d;
}

@media (max-width: 1260px) {
  .header-quick-access {
    width: min(100%, 500px);
  }

  .header-quick-btn {
    width: 100%;
    min-width: 0;
    max-width: none;
    min-height: 36px;
    padding: 0 10px;
    font-size: 0.8rem;
  }

  .header-quick-btn .quick-count {
    font-size: 0.82rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .header-quick-btn {
    transition: none;
  }

  .header-quick-btn:hover,
  .header-quick-btn:active {
    transform: none;
    filter: none;
  }
}

.complex-map-fab {
  position: fixed;
  bottom: calc(env(safe-area-inset-bottom, 0px) + 18px);
  right: 18px;
  z-index: 2140;
  width: 54px;
  height: 54px;
  border-radius: 999px;
  border: 1px solid #bcc5cc;
  background: linear-gradient(180deg, #f6f8fa 0%, #e7ebef 100%);
  color: #111820;
  box-shadow:
    0 10px 22px rgba(13, 24, 36, 0.24),
    inset 0 1px 0 rgba(255, 255, 255, 0.8);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
}

.complex-map-fab:hover {
  transform: translateY(-1px);
  filter: brightness(1.03);
}

.complex-map-fab:active {
  transform: translateY(0);
}

.complex-map-fab-icon {
  display: inline-flex;
  width: 27px;
  height: 27px;
}

.complex-map-fab-icon svg {
  width: 100%;
  height: 100%;
  display: block;
}

.scroll-top-fab {
  position: fixed;
  left: 18px;
  z-index: 2138;
  width: 50px;
  height: 50px;
  border-radius: 999px;
  border: 1px solid #bcc9d5;
  background: linear-gradient(180deg, #f7fbff 0%, #e8eef5 100%);
  color: #162334;
  box-shadow:
    0 10px 21px rgba(16, 27, 43, 0.2),
    inset 0 1px 0 rgba(255, 255, 255, 0.85);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  transition: transform 0.12s ease, filter 0.12s ease, opacity 0.18s ease;
}

.scroll-top-fab:hover {
  transform: translateY(-1px);
  filter: brightness(1.04);
}

.scroll-top-fab:active {
  transform: translateY(0);
}

.scroll-top-fab-icon {
  width: 24px;
  height: 24px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.scroll-top-fab-icon svg {
  width: 100%;
  height: 100%;
  display: block;
  fill: none;
  stroke: currentColor;
  stroke-width: 3.1;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.presence-hud {
  position: fixed;
  left: 78px;
  bottom: calc(env(safe-area-inset-bottom, 0px) + 18px);
  z-index: 2405;
  display: flex;
  flex-direction: column-reverse;
  align-items: flex-start;
  gap: 8px;
  width: fit-content;
  max-width: min(280px, calc(100vw - 112px));
  pointer-events: none;
}

.index-admin-title-row,
.admin-title-row {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}

.index-admin-presence-badge {
  min-height: 24px;
  padding: 4px 9px;
  border-radius: 999px;
  border: 1px solid rgba(168, 191, 183, 0.82);
  background: linear-gradient(180deg, rgba(247, 251, 248, 0.98) 0%, rgba(231, 241, 236, 0.96) 100%);
  color: #35554d;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.9),
    0 6px 14px rgba(23, 52, 43, 0.08);
  font-size: 0.7rem;
  font-weight: 900;
  line-height: 1;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}

.presence-indicator {
  min-height: 32px;
  padding: 6px 11px;
  border-radius: 999px;
  border: 1px solid rgba(149, 174, 205, 0.42);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.95) 0%, rgba(237, 243, 249, 0.92) 100%);
  color: #365372;
  box-shadow:
    0 10px 22px rgba(19, 31, 49, 0.14),
    inset 0 1px 0 rgba(255, 255, 255, 0.88);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  max-width: 100%;
  font-size: 0.82rem;
  font-weight: 900;
  letter-spacing: -0.01em;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}

.presence-indicator-dot {
  display: none;
}

.presence-toast-stack {
  width: min(280px, calc(100vw - 112px));
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
}

.presence-toast {
  max-width: 100%;
  padding: 8px 12px;
  border-radius: 14px;
  border: 1px solid rgba(30, 58, 111, 0.12);
  background: linear-gradient(180deg, rgba(23, 32, 53, 0.92) 0%, rgba(28, 41, 68, 0.9) 100%);
  color: #f7fbff;
  box-shadow: 0 14px 28px rgba(13, 22, 38, 0.2);
  font-size: 0.86rem;
  font-weight: 720;
  line-height: 1.35;
  letter-spacing: -0.01em;
  opacity: 1;
  transform: translateY(0);
  transition: opacity 0.2s ease, transform 0.2s ease;
}

.presence-toast.is-leaving {
  opacity: 0;
  transform: translateY(-4px);
}

.favorite-notification-hud {
  position: fixed;
  top: calc(env(safe-area-inset-top, 0px) + 12px);
  right: 14px;
  z-index: 2406;
  width: min(312px, calc(100vw - 28px));
  pointer-events: none;
}

.favorite-notification-stack {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 6px;
}

.favorite-notification-toast {
  pointer-events: auto;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: flex-start;
  gap: 8px;
  max-width: 100%;
  padding: 9px 12px 9px 10px;
  border-radius: 16px;
  border: 1px solid rgba(29, 48, 84, 0.14);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(244, 248, 255, 0.95) 100%);
  box-shadow: 0 16px 32px rgba(13, 22, 38, 0.16);
}

.favorite-notification-toast.drop {
  border-color: rgba(86, 124, 220, 0.36);
  background: linear-gradient(180deg, rgba(247, 251, 255, 0.98) 0%, rgba(236, 243, 255, 0.95) 100%);
}

.favorite-notification-toast.rise {
  border-color: rgba(217, 107, 107, 0.36);
  background: linear-gradient(180deg, rgba(255, 249, 249, 0.98) 0%, rgba(255, 240, 240, 0.95) 100%);
}

.favorite-notification-toast.market-trade {
  border-color: rgba(69, 126, 212, 0.34);
  background: linear-gradient(180deg, rgba(247, 251, 255, 0.98) 0%, rgba(238, 245, 255, 0.95) 100%);
}

.favorite-notification-toast.market-permit {
  border-color: rgba(198, 148, 70, 0.36);
  background: linear-gradient(180deg, rgba(255, 250, 244, 0.98) 0%, rgba(250, 241, 227, 0.95) 100%);
}

.favorite-notification-toast-close {
  width: 24px;
  height: 24px;
  border-radius: 999px;
  border: 1px solid rgba(173, 185, 208, 0.8);
  background: rgba(255, 255, 255, 0.88);
  color: #4d6584;
  font-size: 0.8rem;
  font-weight: 900;
  line-height: 1;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.85);
}

.favorite-notification-toast-copy {
  min-width: 0;
  display: grid;
  gap: 2px;
}

.favorite-notification-toast-title {
  color: #203748;
  font-size: 0.8rem;
  font-weight: 900;
  line-height: 1.25;
}

.favorite-notification-toast-meta {
  color: #4f6374;
  font-size: 0.72rem;
  font-weight: 800;
  line-height: 1.32;
}

.favorite-notification-toast.rise .favorite-notification-toast-meta .delta {
  color: #cc4046;
}

.favorite-notification-toast.drop .favorite-notification-toast-meta .delta {
  color: #285dca;
}

@media (max-width: 900px) {
  .presence-hud {
    left: 70px;
    bottom: calc(env(safe-area-inset-bottom, 0px) + 18px);
    width: fit-content;
    max-width: min(220px, calc(100vw - 88px));
  }

  .presence-indicator {
    min-height: 30px;
    padding: 5px 10px;
    font-size: 0.76rem;
  }

  .presence-toast {
    font-size: 0.8rem;
    padding: 7px 10px;
  }

  .presence-toast-stack {
    width: min(232px, calc(100vw - 88px));
  }

  .favorite-notification-hud {
    top: calc(env(safe-area-inset-top, 0px) + 10px);
    right: 10px;
    width: min(246px, calc(100vw - 20px));
  }

  .favorite-notification-toast {
    padding: 8px 10px 8px 9px;
    gap: 7px;
  }

  .favorite-notification-toast-title {
    font-size: 0.75rem;
  }

  .favorite-notification-toast-meta {
    font-size: 0.68rem;
  }
}

.main-scroll-top-fab {
  bottom: 18px;
}

.detail-back-fab {
  bottom: 78px;
  opacity: 0;
  pointer-events: none;
}

.detail-back-fab.is-visible {
  opacity: 1;
  pointer-events: auto;
}

.side-scroll-top-fab {
  bottom: 78px;
  opacity: 0;
  pointer-events: none;
}

.side-scroll-top-fab.is-visible {
  opacity: 1;
  pointer-events: auto;
}

.app-header p {
  margin: 6px 0 0;
  color: var(--muted);
  font-size: 0.95rem;
}

.header-nav {
  display: flex;
  align-items: center;
  gap: 8px;
  justify-content: flex-end;
}

.header-search-panel {
  grid-area: search;
  margin: 0;
  position: relative;
  overflow: hidden;
  border-color: rgba(120, 197, 176, 0.52);
  background: linear-gradient(180deg, rgba(241, 252, 248, 0.95) 0%, rgba(233, 247, 242, 0.86) 100%);
}

.header-search-panel h2 {
  margin-bottom: 8px;
}

.header-search-panel::before {
  content: "";
  position: absolute;
  left: 14px;
  right: 14px;
  top: 0;
  height: 3px;
  border-radius: 0 0 999px 999px;
  background: linear-gradient(90deg, rgba(37, 171, 138, 0.92) 0%, rgba(21, 145, 117, 0.88) 100%);
}

.header-search-panel .row-inline {
  align-items: center;
  gap: 10px;
}

.header-search-panel .row-inline label {
  margin: 0;
  white-space: nowrap;
}

.header-search-panel .compact-search-row-main {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
}

.header-search-panel .compact-search-row-main > * {
  min-width: 0;
}

.header-search-panel .compact-search-row-actions {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  margin-top: 6px;
  gap: 8px;
}

.header-search-panel .compact-search-row-actions button {
  flex: 0 0 auto;
}

.header-search-panel .compact-search-row-actions button[disabled] {
  opacity: 0.5;
  filter: grayscale(0.15);
}

.header-search-panel .small-input {
  max-width: 86px;
}

.summary-gauge-trigger {
  width: 100%;
  margin-top: 8px;
  border: 1px solid rgba(132, 190, 167, 0.62);
  border-radius: 12px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.96) 0%, rgba(238, 248, 244, 0.86) 100%);
  padding: 10px 12px;
  display: grid;
  gap: 7px;
  text-align: left;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.76);
  transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}

.summary-gauge-trigger:hover {
  border-color: rgba(98, 171, 143, 0.72);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.76),
    0 8px 18px rgba(24, 62, 49, 0.12);
  transform: translateY(-1px);
}

.summary-gauge-trigger:active {
  transform: translateY(0);
}

.summary-gauge-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  min-width: 0;
}

.summary-gauge-head strong {
  color: #1d3c33;
  font-size: 0.9rem;
  font-weight: 900;
}

.summary-gauge-label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 56px;
  padding: 2px 9px;
  border-radius: 999px;
  border: 1px solid #c3d2ce;
  background: #f7faf9;
  color: #3f5f58;
  font-size: 0.76rem;
  font-weight: 900;
}

.summary-gauge-bar-wrap {
  display: block;
}

.summary-gauge-bar {
  position: relative;
  display: block;
  width: 100%;
  height: 9px;
  border-radius: 999px;
  border: 1px solid rgba(162, 189, 180, 0.56);
  background: linear-gradient(90deg, #f2d8d4 0%, #f6e6c8 45%, #d7efdb 70%, #c5e8d3 100%);
  overflow: hidden;
}

.summary-gauge-bar > span {
  position: absolute;
  inset: 0 auto 0 0;
  width: 0;
  border-radius: inherit;
  background: linear-gradient(90deg, #1a815f 0%, #157a56 100%);
  transition: width 0.2s ease;
}

.summary-gauge-meta-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  min-width: 0;
}

.summary-gauge-meta {
  color: #425e57;
  font-size: 0.75rem;
  font-weight: 800;
  overflow-wrap: anywhere;
}

.summary-gauge-hint {
  color: #2f7560;
  font-size: 0.72rem;
  font-weight: 900;
  white-space: nowrap;
}

.summary-gauge-trigger.is-stable {
  border-color: rgba(112, 186, 148, 0.68);
}

.summary-gauge-trigger.is-stable .summary-gauge-label {
  border-color: #99cdb0;
  background: #eaf7ef;
  color: #1f744f;
}

.summary-gauge-trigger.is-warn {
  border-color: rgba(206, 174, 102, 0.68);
  background: linear-gradient(180deg, rgba(255, 255, 252, 0.98) 0%, rgba(250, 244, 230, 0.9) 100%);
}

.summary-gauge-trigger.is-warn .summary-gauge-label {
  border-color: #dec284;
  background: #fbf3df;
  color: #7a5d20;
}

.summary-gauge-trigger.is-risk {
  border-color: rgba(208, 133, 126, 0.68);
  background: linear-gradient(180deg, rgba(255, 254, 254, 0.98) 0%, rgba(253, 243, 241, 0.92) 100%);
}

.summary-gauge-trigger.is-risk .summary-gauge-label {
  border-color: #e1aca3;
  background: #fceceb;
  color: #9b3b35;
}

.search-experiment-panel {
  margin-top: 10px;
  padding: 10px 11px 11px;
  border: 1px solid #d3dbdf;
  border-radius: 13px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.96) 0%, rgba(241, 247, 251, 0.92) 100%);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.76);
  display: grid;
  gap: 8px;
}

.full-coverage-dialog {
  width: min(560px, 96vw);
}

.full-coverage-body {
  gap: 12px;
}

.full-coverage-current-status {
  margin: 0;
  padding: 10px 12px;
  border: 1px solid #d9e3ea;
  border-radius: 14px;
  background: linear-gradient(180deg, #ffffff 0%, #eef4f8 100%);
  color: #28414f;
  font-size: 0.84rem;
  font-weight: 900;
}

.full-coverage-actions {
  display: flex;
  justify-content: flex-end;
}

body.full-coverage-popup-open {
  overflow: hidden;
}

.search-experiment-toggle {
  margin: 0;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 0.83rem;
  font-weight: 900;
  color: #314a63;
}

.search-experiment-toggle input {
  width: 16px;
  height: 16px;
  margin: 0;
}

.search-experiment-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px;
}

.search-experiment-field {
  margin: 0;
  display: grid;
  gap: 4px;
}

.search-experiment-field span {
  font-size: 0.73rem;
  font-weight: 900;
  color: #607281;
}

.search-experiment-field select,
.search-experiment-field input {
  width: 100%;
  min-width: 0;
  border: 1px solid #bfd5d1;
  border-radius: 10px;
  padding: 8px 10px;
  font-size: 0.88rem;
  background: linear-gradient(180deg, #ffffff 0%, #f6fbfa 100%);
  color: #1a2a2b;
}

.search-experiment-help {
  margin: 0;
  font-size: 0.71rem;
  font-weight: 700;
  line-height: 1.35;
  color: #667783;
}

.header-ranking-panel {
  grid-area: ranking;
  margin-top: 0;
  position: relative;
  overflow: hidden;
  border-color: rgba(204, 182, 126, 0.5);
  background: linear-gradient(180deg, rgba(255, 250, 242, 0.96) 0%, rgba(251, 245, 233, 0.88) 100%);
}

.header-ranking-panel h2 {
  margin: 0;
}

.header-ranking-panel::before {
  content: "";
  position: absolute;
  left: 14px;
  right: 14px;
  top: 0;
  height: 3px;
  border-radius: 0 0 999px 999px;
  background: linear-gradient(90deg, rgba(217, 154, 52, 0.9) 0%, rgba(193, 126, 31, 0.86) 100%);
}

.ranking-head-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 8px;
}

.ranking-toggle-btn {
  padding: 5px 10px;
  font-size: 0.78rem;
  line-height: 1.1;
  border-radius: 999px;
}

.ranking-mode-row {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 8px;
  align-items: center;
  margin-bottom: 8px;
}

.ranking-mode-row label {
  margin: 0;
  white-space: nowrap;
}

.ranking-mode-row select {
  width: 100%;
  min-width: 0;
  max-width: none;
}

.ranking-region-row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr)) auto;
  gap: 8px;
  align-items: center;
}

.ranking-region-row select {
  width: 100%;
  min-width: 0;
  max-width: none;
}

.ranking-region-row button {
  white-space: nowrap;
}

.ranking-results {
  margin-top: 6px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fff;
  padding: 8px;
}

.ranking-results.empty {
  color: var(--muted);
  font-size: 0.84rem;
}

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

.ranking-item {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 6px 8px;
  align-items: start;
  border-bottom: 1px dashed #e5dccd;
  padding-bottom: 6px;
}

.ranking-item:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

.ranking-rank {
  font-size: 0.72rem;
  font-weight: 800;
  color: var(--primary);
  border: 1px solid #c5ddcf;
  border-radius: 999px;
  background: #edf7f1;
  padding: 2px 8px;
}

.ranking-name-btn {
  border: 0;
  background: transparent;
  color: var(--ink);
  font-size: 0.86rem;
  font-weight: 800;
  text-align: left;
  padding: 0;
  cursor: pointer;
}

.ranking-name-btn:hover {
  color: var(--primary);
  text-decoration: underline;
}

.ranking-meta {
  grid-column: 2;
  display: grid;
  gap: 6px;
  line-height: 1.32;
}

.ranking-meta-region {
  font-size: 0.81rem;
  color: #5f5a4d;
  font-weight: 700;
}

.ranking-meta-primary,
.ranking-meta-secondary {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
}

.ranking-meta-summary {
  font-size: 0.76rem;
  font-weight: 800;
  color: #59695d;
  line-height: 1.45;
}

.ranking-meta-summary.subtle {
  font-size: 0.72rem;
  font-weight: 700;
  color: #7b887f;
}

.ranking-meta-badge {
  display: inline-flex;
  align-items: center;
  border: 1px solid #ded3c2;
  border-radius: 999px;
  background: #fbf6ee;
  color: #52493a;
  font-size: 0.78rem;
  font-weight: 800;
  padding: 2px 8px;
}

.ranking-meta-badge.households {
  background: #f2f8f3;
  border-color: #cde2d3;
  color: #285e45;
}

.ranking-meta-badge.approval {
  background: #f8f4ed;
  border-color: #dfd2bf;
  color: #72573d;
}

.ranking-meta-badge.approval-age {
  background: #f8f4ed;
  border-color: #dfd2bf;
  color: #72573d;
}

.ranking-meta-badge.dynamic {
  transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.ranking-item.activity-hot {
  gap: 8px 10px;
}

.ranking-meta-badge.stage.surge {
  background: #fff2eb;
  border-color: #f0b596;
  color: #b05518;
}

.ranking-meta-badge.stage.lead {
  background: #fff7e7;
  border-color: #e3be71;
  color: #9a6a13;
}

.ranking-meta-badge.stage.pending,
.ranking-meta-badge.stage.calm {
  background: #f3f7f4;
  border-color: #cfdad2;
  color: #506a5a;
}

.ranking-meta-badge.hot {
  background: #eef7f0;
  border-color: #bfd6c5;
  color: #1f603f;
}

.ranking-meta-badge.count {
  padding-inline: 10px;
}

.ranking-meta-badge.permit {
  background: #fff7eb;
  border-color: #ebd6a3;
  color: #8f6114;
}

.ranking-meta-badge.trade {
  background: #edf9f6;
  border-color: #b8dfd5;
  color: #17695c;
}

.ranking-meta-badge.latest,
.ranking-meta-badge.lag {
  background: #f7faf8;
  border-color: #d6e1da;
  color: #5a6b61;
}

.ranking-index-card {
  display: inline-grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 1px;
  min-width: 92px;
  padding: 7px 11px 6px;
  border-radius: 15px;
  background: linear-gradient(180deg, rgba(245, 252, 247, 0.98) 0%, rgba(233, 244, 238, 0.98) 100%);
  box-shadow: inset 0 0 0 1px rgba(188, 211, 197, 0.94);
  color: #184338;
}

.ranking-index-card-label {
  color: #5a7d66;
  font-size: 0.55rem;
  font-weight: 900;
  letter-spacing: 0.01em;
  line-height: 1.05;
}

.ranking-index-card strong {
  color: #0d4536;
  font-size: 1.08rem;
  font-weight: 950;
  letter-spacing: -0.04em;
  line-height: 1;
}

.activity-spec-chip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 4px 8px;
  border-radius: 999px;
  border: 1px solid rgba(199, 212, 205, 0.92);
  background: rgba(247, 251, 248, 0.98);
  color: #50655b;
  font-size: 0.68rem;
  font-weight: 800;
  line-height: 1;
  white-space: nowrap;
}

.activity-spec-chip .label {
  color: #7a8d84;
}

.activity-spec-chip strong {
  color: #234136;
  font-weight: 900;
}

.activity-spec-chip.households,
.activity-spec-chip.approval-age,
.activity-spec-chip.far {
  font-variant-numeric: tabular-nums;
}

.activity-spec-chip.ranking {
  background: rgba(246, 251, 247, 0.98);
}

.ranking-activity-track {
  grid-column: 2;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  align-items: center;
}

.ranking-activity-track-bar {
  width: 100%;
  height: 12px;
  border-radius: 999px;
  background: rgba(209, 219, 213, 0.58);
  overflow: hidden;
  box-shadow: inset 0 0 0 1px rgba(186, 196, 190, 0.34);
}

.ranking-activity-track-fill {
  display: flex;
  min-width: 10px;
  height: 100%;
  border-radius: inherit;
  overflow: hidden;
}

.ranking-activity-segment {
  height: 100%;
  display: block;
}

.ranking-activity-segment.lead {
  background: linear-gradient(90deg, #d59a33 0%, #e5b45b 100%);
}

.ranking-activity-segment.confirm {
  background: linear-gradient(90deg, #2d8a79 0%, #57afa0 100%);
}

.ranking-activity-track-label {
  color: #5a695e;
  font-size: 0.68rem;
  font-weight: 800;
  white-space: normal;
  text-align: right;
}

.ranking-pagination {
  margin-top: 6px;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.ranking-pagination button {
  min-width: 36px;
  padding: 6px 10px;
}

.ranking-pagination button.active {
  color: #fff;
  background: var(--primary);
  border-color: var(--primary);
}

.header-summary-panel {
  grid-area: summary;
  margin: 0;
  position: relative;
  overflow: hidden;
  border-color: rgba(123, 163, 215, 0.52);
  background: linear-gradient(180deg, rgba(245, 250, 255, 0.96) 0%, rgba(237, 246, 252, 0.9) 100%);
  min-width: 0;
}

.header-summary-panel::before {
  content: "";
  position: absolute;
  left: 14px;
  right: 14px;
  top: 0;
  height: 3px;
  border-radius: 0 0 999px 999px;
  background: linear-gradient(90deg, rgba(76, 128, 235, 0.9) 0%, rgba(55, 98, 206, 0.86) 100%);
}

.live-summary-inline {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 8px;
  margin: 7px 0 8px;
  padding: 9px 10px;
  border: 1px solid rgba(168, 193, 217, 0.5);
  border-radius: 12px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.84) 0%, rgba(243, 249, 254, 0.76) 100%);
  width: 100%;
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
}

.live-summary-top {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
  min-width: 0;
}

.live-summary-messages {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 6px;
  min-width: 0;
}

.live-inline-item {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 4px 9px;
  border: 1px solid rgba(179, 193, 210, 0.56);
  border-radius: 999px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.95) 0%, rgba(244, 249, 252, 0.85) 100%);
  color: #38434e;
  font-size: 0.77rem;
  font-weight: 700;
  min-width: 0;
}

.live-inline-label {
  color: #617081;
  font-size: 0.74rem;
  font-weight: 700;
}

.live-inline-value {
  color: #1b2f3f;
  font-size: 0.82rem;
  font-weight: 900;
  letter-spacing: 0.01em;
  overflow-wrap: anywhere;
}

.live-summary-inline .live-inline-status,
.live-summary-inline .live-inline-progress {
  margin: 0;
  display: block;
  width: 100%;
  min-width: 0;
  padding: 7px 10px;
  border-radius: 9px;
  border: 1px solid rgba(183, 201, 218, 0.58);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(245, 250, 253, 0.9) 100%);
  color: #425467;
  font-size: 0.76rem;
  font-weight: 800;
  line-height: 1.35;
  white-space: normal;
  word-break: break-word;
  overflow-wrap: anywhere;
}

.live-summary-inline .live-inline-status {
  border-color: rgba(176, 194, 210, 0.58);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(248, 252, 255, 0.92) 100%);
  color: #33475a;
}

.live-summary-inline .live-inline-progress {
  border-color: rgba(150, 196, 173, 0.58);
  background: linear-gradient(180deg, rgba(247, 253, 250, 0.98) 0%, rgba(238, 249, 244, 0.92) 100%);
  color: #2f6450;
}

.live-summary-inline .live-inline-status.error,
.live-summary-inline .live-inline-progress.error {
  border-color: #e3b9b0;
  background: #fdeceb;
  color: #a03832;
}

.status-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 74px;
  border-radius: 999px;
  padding: 4px 12px;
  border: 1px solid rgba(171, 189, 204, 0.56);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(243, 248, 252, 0.9) 100%);
  color: #4a5d72;
  font-size: 0.8rem;
  font-weight: 900;
}

.status-pill.is-ok {
  border-color: #9ec6b5;
  background: #eaf6ef;
  color: #176341;
}

.status-pill.is-running {
  border-color: #8ec3de;
  background: #eaf4fb;
  color: #135c86;
}

.status-pill.is-stale {
  border-color: #dec792;
  background: #fbf4e3;
  color: #815f1d;
}

.status-pill.is-error {
  border-color: #e2b2ab;
  background: #fbecea;
  color: #a03832;
}

.status-pill.is-idle {
  border-color: #d6d0c2;
  background: #f6f3eb;
  color: #5a5549;
}

.header-detail-summary {
  margin-top: 8px;
  min-width: 0;
}

.header-detail-summary:empty {
  display: none;
}

.header-detail-summary .detail-reliability,
.header-detail-summary .incremental-summary {
  margin-bottom: 0;
  min-width: 0;
  overflow: hidden;
}

.header-detail-summary .detail-reliability-grid {
  grid-template-columns: minmax(82px, 96px) minmax(0, 1fr);
}

.header-detail-summary .incremental-summary-list {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.header-detail-summary .incremental-summary-foot {
  overflow-wrap: anywhere;
  word-break: break-word;
}

.header-detail-placeholder {
  margin: 0;
  border: 1px dashed #d8cdbb;
  border-radius: 10px;
  background: #fffdf8;
  color: #7b7468;
  font-size: 0.76rem;
  font-weight: 700;
  padding: 8px 10px;
}

.header-nav a {
  text-decoration: none;
  border: 1px solid #cfe0dd;
  border-radius: 999px;
  padding: 8px 14px;
  color: var(--ink);
  background: linear-gradient(180deg, #fffefb 0%, #f2f7f6 100%);
  font-size: 0.85rem;
  font-weight: 800;
}

.header-nav a:hover {
  background: linear-gradient(180deg, #f7fbfa 0%, #e7f2f0 100%);
}

.header-nav a.active {
  color: #fff;
  border-color: var(--primary);
  background: var(--primary);
}

.layout {
  display: grid;
  gap: 14px;
  grid-template-columns: 1.1fr 2fr 1fr;
  padding: 16px 20px 24px;
  max-width: 1680px;
  margin: 0 auto;
  width: 100%;
}

.layout.main-layout {
  grid-template-columns: minmax(0, 2.95fr) minmax(200px, 0.72fr);
  align-items: start;
}

.layout.admin-layout {
  grid-template-columns: minmax(0, 1fr);
  max-width: 980px;
  margin: 0 auto;
}

.panel {
  background: var(--surface-glass);
  border: 1px solid var(--surface-border);
  border-radius: 16px;
  box-shadow:
    var(--shadow-soft),
    inset 0 1px 0 rgba(255, 255, 255, 0.78);
  padding: 14px;
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}

.panel h2 {
  margin: 0 0 10px;
  font-size: 1.02rem;
  font-weight: 880;
  color: #1a3534;
  letter-spacing: -0.01em;
}

label {
  display: block;
  margin: 8px 0 6px;
  font-size: 0.86rem;
  color: var(--muted);
}

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

.backend-row {
  flex-wrap: wrap;
}

.backend-row input[type="text"] {
  flex: 1 1 300px;
}

.row.compact {
  justify-content: flex-start;
  margin-top: 8px;
}

input[type="text"],
input[type="number"] {
  width: 100%;
  min-width: 0;
  border: 1px solid #bfd5d1;
  border-radius: 10px;
  padding: 10px 12px;
  font-size: 0.95rem;
  background: linear-gradient(180deg, #ffffff 0%, #f6fbfa 100%);
  color: #1a2a2b;
  transition: border-color 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
}

.hidden {
  display: none !important;
}

body.search-loading-active {
  overflow: hidden;
}

body.search-loading-active > *:not(.search-loading-overlay) {
  pointer-events: none;
  user-select: none;
}

body.detail-navigation-loading-active > *:not(.detail-navigation-overlay) {
  pointer-events: none;
  user-select: none;
}

body.map-popup-refresh-active {
  overflow: hidden;
}

body.map-popup-refresh-active > *:not(.complex-map-popup) {
  pointer-events: none;
  user-select: none;
}

body.map-popup-refresh-active .complex-map-popup .complex-map-backdrop,
body.map-popup-refresh-active .complex-map-popup .complex-map-head,
body.map-popup-refresh-active .complex-map-popup .complex-map-filter-panel,
body.map-popup-refresh-active .complex-map-popup .complex-map-status,
body.map-popup-refresh-active .complex-map-popup .leaflet-control-container,
body.map-popup-refresh-active .complex-map-popup .leaflet-overlay-pane,
body.map-popup-refresh-active .complex-map-popup .leaflet-shadow-pane,
body.map-popup-refresh-active .complex-map-popup .leaflet-tile-pane,
body.map-popup-refresh-active .complex-map-popup .leaflet-tooltip-pane {
  pointer-events: none !important;
  user-select: none;
}

body.map-popup-refresh-active .complex-map-popup .leaflet-popup-pane,
body.map-popup-refresh-active .complex-map-popup .leaflet-popup-pane * {
  pointer-events: auto !important;
}

body.map-popup-refresh-active .complex-map-canvas .leaflet-marker-pane,
body.map-popup-refresh-active .complex-map-canvas .leaflet-marker-icon,
body.map-popup-refresh-active .complex-map-canvas .leaflet-marker-shadow,
body.map-popup-refresh-active .complex-map-canvas .leaflet-interactive {
  pointer-events: auto !important;
}

body.map-popup-refresh-active .complex-map-canvas .leaflet-tile-pane,
body.map-popup-refresh-active .complex-map-canvas .leaflet-overlay-pane,
body.map-popup-refresh-active .complex-map-canvas .leaflet-marker-pane,
body.map-popup-refresh-active .complex-map-canvas .leaflet-shadow-pane,
body.map-popup-refresh-active .complex-map-canvas .leaflet-tooltip-pane {
  filter: grayscale(0.24) blur(1.3px) brightness(0.9);
  opacity: 0.72;
}

body.map-popup-refresh-active .complex-map-canvas .leaflet-popup-pane,
body.map-popup-refresh-active .complex-map-canvas .leaflet-popup-pane * {
  pointer-events: auto !important;
}

body.map-popup-refresh-active .complex-map-canvas .leaflet-popup-pane {
  filter: none !important;
  opacity: 1 !important;
}

.search-loading-overlay {
  position: fixed;
  inset: 0;
  z-index: 2300;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 18px;
  background:
    radial-gradient(circle at 18% 18%, rgba(255, 250, 231, 0.44) 0%, transparent 42%),
    radial-gradient(circle at 84% 82%, rgba(211, 236, 225, 0.35) 0%, transparent 45%),
    rgba(14, 18, 24, 0.46);
  backdrop-filter: blur(2px);
}

.search-loading-card {
  width: min(680px, 96vw);
  border-radius: 20px;
  border: 1px solid #d7cdbf;
  background: linear-gradient(180deg, #fffefb 0%, #f8f3ea 100%);
  color: var(--ink);
  padding: 20px 20px 16px;
  box-shadow:
    0 18px 40px rgba(8, 18, 26, 0.28),
    0 4px 12px rgba(18, 44, 31, 0.14);
}

.search-loading-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 8px;
}

.search-loading-head h2 {
  margin: 0;
  font-size: clamp(1.15rem, 2.4vw, 1.38rem);
}

.search-loading-elapsed {
  margin: 0;
  color: #6f695b;
  font-size: 0.9rem;
  font-weight: 700;
}

.search-loading-phase {
  margin: 2px 0 4px;
  color: #1f6f54;
  font-size: 1.02rem;
  font-weight: 900;
}

.search-loading-message {
  margin: 0 0 12px;
  color: #5f5a4f;
  font-size: 0.92rem;
  line-height: 1.45;
}

.search-loading-progress-wrap {
  border: 1px solid #ddd3c5;
  background: #fffdf9;
  border-radius: 12px;
  padding: 10px 12px;
}

.search-loading-progress-bar {
  width: 100%;
  height: 14px;
  border-radius: 999px;
  background: #d8e3fb;
  overflow: hidden;
}

.search-loading-progress-bar span {
  display: block;
  width: 0%;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #2c6cff 0%, #2f4ce2 55%, #3344c7 100%);
  transition: width 0.28s ease;
}

.search-loading-progress-meta {
  margin-top: 8px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
}

.search-loading-progress-meta strong {
  color: #2459da;
  font-size: 1.05rem;
  letter-spacing: 0.01em;
}

.search-loading-progress-meta span {
  color: #595446;
  font-size: 0.9rem;
  font-weight: 700;
}

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

.search-loading-eta {
  color: #474236;
  font-size: 0.92rem;
  font-weight: 800;
}

.search-loading-cancel-btn {
  border: 1px solid #c58b7a;
  color: #8f351e;
  background: #fff3ef;
  font-weight: 800;
}

.search-loading-cancel-btn:hover {
  background: #fde6df;
}

.search-loading-help {
  margin: 10px 2px 0;
  font-size: 0.82rem;
  color: #726c5f;
}

@media (max-width: 700px) {
  .search-loading-overlay {
    padding: 12px;
  }

  .search-loading-card {
    width: min(96vw, 560px);
    border-radius: 16px;
    padding: 16px 14px 12px;
  }

  .search-loading-head {
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
  }

  .search-loading-footer {
    flex-direction: column;
    align-items: stretch;
    gap: 8px;
  }

  .search-loading-cancel-btn {
    width: 100%;
  }
}

.bulk-popup-boot-overlay {
  position: fixed;
  inset: 0;
  z-index: 2360;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 18px;
  background: rgba(15, 19, 26, 0.38);
  backdrop-filter: blur(2px);
}

.detail-navigation-overlay {
  position: fixed;
  inset: 0;
  z-index: 2330;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 18px;
  background: rgba(15, 19, 26, 0.28);
  backdrop-filter: blur(1.8px);
}

.detail-navigation-card {
  width: min(280px, 80vw);
  min-height: 176px;
  border-radius: 22px;
  border: 1px solid rgba(210, 226, 241, 0.92);
  background:
    radial-gradient(circle at 18% 18%, rgba(255, 255, 255, 0.42) 0%, transparent 42%),
    linear-gradient(180deg, rgba(250, 253, 255, 0.98) 0%, rgba(238, 245, 250, 0.98) 100%);
  box-shadow:
    0 22px 56px rgba(10, 22, 36, 0.24),
    inset 0 1px 0 rgba(255, 255, 255, 0.55);
  display: grid;
  justify-items: center;
  align-content: center;
  gap: 12px;
  padding: 20px 18px 16px;
  text-align: center;
}

.detail-navigation-ring {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  border: 6px solid rgba(117, 139, 214, 0.18);
  border-top-color: #5f75db;
  border-right-color: #7f92ec;
  box-shadow:
    inset 0 0 0 1px rgba(255, 255, 255, 0.75),
    0 6px 18px rgba(78, 96, 170, 0.18);
  animation: bulk-popup-boot-spin 0.92s linear infinite;
}

.detail-navigation-card h2 {
  margin: 0;
  color: #20324d;
  font-size: 1.06rem;
  font-weight: 900;
  letter-spacing: -0.02em;
}

.detail-navigation-card p {
  margin: 0;
  color: #5a6678;
  font-size: 0.89rem;
  line-height: 1.45;
  font-weight: 700;
}

.bulk-popup-boot-card {
  width: min(320px, 88vw);
  min-height: 196px;
  border-radius: 24px;
  border: 1px solid rgba(210, 226, 241, 0.9);
  background:
    radial-gradient(circle at 18% 18%, rgba(255, 255, 255, 0.42) 0%, transparent 42%),
    linear-gradient(180deg, rgba(250, 253, 255, 0.98) 0%, rgba(238, 245, 250, 0.98) 100%);
  box-shadow:
    0 22px 56px rgba(10, 22, 36, 0.28),
    inset 0 1px 0 rgba(255, 255, 255, 0.55);
  display: grid;
  justify-items: center;
  align-content: center;
  gap: 12px;
  padding: 22px 20px 18px;
  text-align: center;
}

.bulk-popup-boot-spinner {
  width: 78px;
  height: 78px;
  border-radius: 50%;
  border: 6px solid rgba(117, 139, 214, 0.18);
  border-top-color: #5f75db;
  border-right-color: #7f92ec;
  box-shadow:
    inset 0 0 0 1px rgba(255, 255, 255, 0.75),
    0 6px 18px rgba(78, 96, 170, 0.18);
  animation: bulk-popup-boot-spin 0.92s linear infinite;
}

.bulk-popup-boot-card h2 {
  margin: 0;
  color: #20324d;
  font-size: 1.08rem;
  font-weight: 900;
  letter-spacing: -0.02em;
}

.bulk-popup-boot-card p {
  margin: 0;
  color: #5a6678;
  font-size: 0.9rem;
  line-height: 1.45;
  font-weight: 700;
}

@keyframes bulk-popup-boot-spin {
  to {
    transform: rotate(360deg);
  }
}

@media (max-width: 700px) {
  .detail-navigation-overlay {
    padding: 14px;
  }

  .detail-navigation-card {
    width: min(272px, 84vw);
    min-height: 164px;
    border-radius: 20px;
    gap: 10px;
    padding: 18px 14px 14px;
  }

  .detail-navigation-ring {
    width: 64px;
    height: 64px;
    border-width: 5px;
  }

  .detail-navigation-card h2 {
    font-size: 0.98rem;
  }

  .detail-navigation-card p {
    font-size: 0.82rem;
  }

  .bulk-popup-boot-overlay {
    padding: 14px;
  }

  .bulk-popup-boot-card {
    width: min(300px, 90vw);
    min-height: 182px;
    border-radius: 22px;
    gap: 10px;
    padding: 20px 16px 16px;
  }

  .bulk-popup-boot-spinner {
    width: 68px;
    height: 68px;
    border-width: 5px;
  }

  .bulk-popup-boot-card h2 {
    font-size: 1rem;
  }

  .bulk-popup-boot-card p {
    font-size: 0.84rem;
  }
}

.small-input {
  max-width: 110px;
}

button {
  border: 0;
  background: linear-gradient(180deg, var(--primary) 0%, var(--primary-strong) 100%);
  color: #fff;
  border-radius: 12px;
  padding: 10px 12px;
  font-size: 0.9rem;
  font-weight: 700;
  letter-spacing: -0.01em;
  cursor: pointer;
  white-space: nowrap;
  box-shadow:
    0 8px 16px rgba(17, 80, 71, 0.18),
    inset 0 1px 0 rgba(255, 255, 255, 0.24);
  transition: transform 0.14s ease, filter 0.14s ease, background 0.14s ease, box-shadow 0.14s ease;
}

button:hover {
  filter: brightness(1.03);
  transform: translateY(-1px);
  box-shadow:
    0 10px 20px rgba(14, 70, 63, 0.22),
    inset 0 1px 0 rgba(255, 255, 255, 0.28);
}

button:disabled {
  opacity: 0.55;
  cursor: not-allowed;
  box-shadow: none;
}

button.secondary {
  background: linear-gradient(180deg, #ffffff 0%, #eef4f2 100%);
  color: #324648;
  border: 1px solid #c6d8d4;
  box-shadow:
    0 5px 12px rgba(20, 45, 50, 0.08),
    inset 0 1px 0 rgba(255, 255, 255, 0.85);
}

button.secondary:hover {
  background: linear-gradient(180deg, #fafdfc 0%, #e8f1ee 100%);
  color: #243738;
}

button.favorite {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: linear-gradient(180deg, #fdfcf8 0%, #f4efe5 100%);
  color: #3d3528;
  border: 1px solid #d7ccb9;
  padding: 9px 14px;
  border-radius: 999px;
  font-size: 0.92rem;
  font-weight: 900;
  box-shadow: 0 3px 10px rgba(62, 49, 30, 0.08);
}

button.favorite.active {
  color: #fffdf8;
  background: linear-gradient(180deg, #e3a42d 0%, #c17e13 100%);
  border-color: #be7d12;
  box-shadow: 0 6px 14px rgba(146, 92, 13, 0.2);
}

@media (min-width: 901px) {
  button.favorite {
    padding: 10px 16px;
    font-size: 0.95rem;
  }
}

.status {
  margin: 8px 0 2px;
  font-size: 0.85rem;
  color: var(--muted);
}

.status.error {
  color: var(--danger);
}

.status-sub {
  margin: 4px 0 8px;
  font-size: 0.8rem;
  color: var(--muted);
}

.index-build-card {
  margin: 10px 0 14px;
  padding: 14px 16px;
  border-radius: 18px;
  border: 1px solid #d9e6e3;
  background:
    radial-gradient(circle at top right, rgba(61, 113, 219, 0.08), transparent 32%),
    linear-gradient(180deg, #ffffff 0%, #f7fbfb 100%);
  box-shadow: 0 14px 28px rgba(19, 57, 48, 0.06);
}

.index-build-card-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
}

.index-build-card-title-wrap {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.index-build-card-title {
  font-size: 1rem;
  font-weight: 900;
  color: #173b36;
}

.index-build-card-scope {
  font-size: 0.83rem;
  color: #5f6f6b;
  font-weight: 700;
}

.index-build-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 62px;
  padding: 6px 10px;
  border-radius: 999px;
  font-size: 0.78rem;
  font-weight: 900;
  letter-spacing: -0.01em;
  border: 1px solid transparent;
}

.index-build-badge.is-idle {
  color: #5f6f6b;
  background: #eef3f2;
  border-color: #d9e5e2;
}

.index-build-badge.is-running {
  color: #1953b8;
  background: #e7f0ff;
  border-color: #bcd2ff;
}

.index-build-badge.is-done {
  color: #12755b;
  background: #e5f8f0;
  border-color: #bfead8;
}

.index-build-badge.is-failed {
  color: #b83a2f;
  background: #fdeceb;
  border-color: #efc4bf;
}

.index-build-progress-bar {
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 12px;
  margin-bottom: 10px;
  border-radius: 999px;
  background: #e8efef;
}

.index-build-progress-fill {
  display: block;
  height: 100%;
  width: 0%;
  border-radius: inherit;
  transition: width 0.35s ease;
}

.index-build-progress-fill.is-idle {
  background: linear-gradient(90deg, #b9c7c4 0%, #cfdbd9 100%);
}

.index-build-progress-fill.is-running {
  background: linear-gradient(90deg, #1d8c73 0%, #4f76e8 100%);
}

.index-build-progress-fill.is-done {
  background: linear-gradient(90deg, #1a8d6f 0%, #49b884 100%);
}

.index-build-progress-fill.is-failed {
  background: linear-gradient(90deg, #d76755 0%, #e18a7a 100%);
}

.index-build-progress-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 14px;
  margin-bottom: 12px;
  color: #5b6a67;
  font-size: 0.82rem;
  font-weight: 700;
}

.index-build-progress-meta strong {
  font-size: 1.05rem;
  color: #183c36;
  font-weight: 900;
}

.index-build-stage-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 12px;
}

.index-build-stage-block {
  padding: 10px 12px;
  border-radius: 14px;
  background: rgba(245, 249, 249, 0.92);
  border: 1px solid #dde8e5;
  min-width: 0;
}

.index-build-stage-label {
  display: block;
  margin-bottom: 5px;
  font-size: 0.72rem;
  color: #74827f;
  font-weight: 800;
}

.index-build-stage-value {
  display: block;
  font-size: 0.86rem;
  line-height: 1.42;
  color: #183c36;
  font-weight: 800;
  white-space: normal;
  overflow-wrap: anywhere;
}

.index-build-log-wrap {
  padding: 10px 12px;
  border-radius: 14px;
  background: #f9fbfb;
  border: 1px solid #dde8e5;
}

.index-build-log-list {
  margin: 8px 0 0;
  padding-left: 16px;
  color: #50615d;
  font-size: 0.8rem;
  line-height: 1.45;
}

.index-build-log-list li + li {
  margin-top: 4px;
}

.live-status {
  margin: 0 0 8px;
  border: 1px solid #d8d2c5;
  border-radius: 10px;
  padding: 9px 11px;
  background: linear-gradient(180deg, #fffefb 0%, #f8f4ea 100%);
  font-size: 0.9rem;
  color: #2f2b24;
  font-weight: 800;
  line-height: 1.45;
}

.live-status.error {
  border-color: #e3b9b0;
  background: #fdeceb;
}

.live-progress {
  margin: 0;
  border: 1px solid #cfe0d9;
  border-left: 4px solid #8eb9aa;
  border-radius: 9px;
  padding: 8px 10px;
  background: #f6fbf9;
  font-size: 0.84rem;
  color: #4f5f58;
  line-height: 1.45;
}

.status-sub.error {
  color: var(--danger);
}

.backup-row {
  flex-wrap: wrap;
  align-items: center;
}

.backup-row label {
  margin: 0;
  min-width: 60px;
}

@media (max-width: 900px) {
  .index-build-card {
    padding: 12px 12px 13px;
  }

  .index-build-card-top {
    align-items: flex-start;
  }

  .index-build-stage-grid {
    grid-template-columns: 1fr;
  }

  .index-build-progress-meta {
    gap: 6px 10px;
  }

  .index-build-progress-meta strong {
    font-size: 0.98rem;
  }
}

select {
  border: 1px solid #bfd5d1;
  border-radius: 10px;
  padding: 9px 11px;
  background: linear-gradient(180deg, #ffffff 0%, #f6fbfa 100%);
  color: #1a2a2b;
  min-width: 180px;
  max-width: 360px;
  transition: border-color 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
}

input[type="text"]:focus-visible,
input[type="number"]:focus-visible,
select:focus-visible,
button:focus-visible {
  outline: none;
  border-color: #4e81f2;
  box-shadow: var(--focus-ring);
}

.index-stats {
  margin-top: 10px;
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 8px;
  background: #fffcf8;
}

.index-stats-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px;
}

.admin-ops-cards {
  margin-top: 8px;
}

.admin-ops-grid {
  margin-top: 10px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.admin-ops-block {
  border: 1px solid #d5dfef;
  border-radius: 12px;
  background: linear-gradient(180deg, #ffffff 0%, #f5f8ff 100%);
  padding: 10px;
  display: grid;
  gap: 8px;
}

.admin-ops-block h3 {
  margin: 0;
  color: #284067;
  font-size: 0.86rem;
}

.admin-ops-card {
  border: 1px solid #d4dfef;
  border-radius: 10px;
  padding: 8px 9px;
  background: #fff;
  display: grid;
  gap: 4px;
}

.admin-ops-card span {
  color: #6a7d95;
  font-size: 0.7rem;
  font-weight: 800;
}

.admin-ops-card strong {
  color: #213756;
  font-size: 0.88rem;
}

.admin-ops-card.warn strong {
  color: #9a651d;
}

.admin-ops-card.error strong {
  color: #a3473e;
}

.admin-ops-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 6px;
}

.admin-ops-list li {
  border: 1px solid #d8e0ee;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.86);
  padding: 8px 9px;
  display: grid;
  gap: 4px;
}

.admin-ops-list strong {
  color: #22395b;
  font-size: 0.8rem;
}

.admin-ops-list span,
.admin-ops-preview {
  color: #5f748f;
  font-size: 0.74rem;
  font-weight: 700;
  line-height: 1.4;
}

.stat-cell {
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 6px 8px;
  background: #fff;
}

.stat-label {
  font-size: 0.75rem;
  color: var(--muted);
}

.stat-value {
  font-size: 0.9rem;
  font-weight: 700;
}

.coverage-line {
  margin-top: 8px;
  font-size: 0.8rem;
  color: var(--muted);
}

.search-row {
  align-items: flex-start;
}

.autocomplete-wrap {
  position: relative;
  flex: 1;
}

.autocomplete {
  position: absolute;
  z-index: 20;
  top: calc(100% + 4px);
  left: 0;
  right: 0;
  margin: 0;
  padding: 4px;
  list-style: none;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 10px;
  max-height: 300px;
  overflow-y: auto;
}

.autocomplete.hidden {
  display: none;
}

.autocomplete button {
  width: 100%;
  text-align: left;
  background: transparent;
  color: var(--ink);
  padding: 8px 10px;
  border-radius: 8px;
}

.autocomplete button:hover {
  background: #f3efe6;
}

.result-count {
  margin-bottom: 10px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 10px;
  border: 1px solid #c8dddb;
  border-radius: 999px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.96) 0%, rgba(241, 249, 247, 0.88) 100%);
  box-shadow: 0 4px 10px rgba(17, 45, 49, 0.08);
  font-size: 0.83rem;
  font-weight: 800;
  color: #45605f;
}

.result-panel > h2 {
  padding-bottom: 8px;
  margin-bottom: 10px;
  border-bottom: 1px dashed #d3e3df;
}

.compare-toolbar {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 7px;
  margin-bottom: 10px;
  padding: 8px 10px;
  border: 1px solid #cde0dc;
  border-radius: 12px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.96) 0%, rgba(240, 248, 246, 0.84) 100%);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.86),
    0 4px 12px rgba(17, 44, 49, 0.07);
  font-size: 0.82rem;
  color: #516867;
}

#compareCountText {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 0 10px;
  border-radius: 999px;
  border: 1px solid #c4dbd6;
  background: #ffffff;
  color: #3e5a59;
  font-weight: 900;
}

.compare-results {
  margin-bottom: 10px;
  border: 1px solid #c8ddd8;
  border-radius: 12px;
  padding: 9px;
  background: linear-gradient(180deg, #ffffff 0%, #f7fbfa 100%);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.86),
    0 4px 12px rgba(16, 45, 48, 0.07);
}

.compare-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.84rem;
}

.compare-table th,
.compare-table td {
  border-bottom: 1px solid var(--line);
  padding: 6px;
  text-align: left;
  white-space: nowrap;
}

.results.empty {
  color: var(--muted);
  font-size: 0.92rem;
}

.result-card {
  border: 1px solid #c7dbd6;
  border-radius: 16px;
  padding: 15px;
  margin-bottom: 11px;
  background: var(--surface-glass-strong);
  box-shadow:
    0 9px 20px rgba(16, 52, 50, 0.09),
    inset 0 1px 0 rgba(255, 255, 255, 0.9);
  position: relative;
  overflow: visible;
}

.result-card::before {
  content: "";
  position: absolute;
  left: 14px;
  right: 14px;
  top: 0;
  height: 3px;
  border-radius: 0 0 999px 999px;
  background: linear-gradient(90deg, rgba(26, 127, 111, 0.85) 0%, rgba(78, 129, 242, 0.74) 100%);
  pointer-events: none;
}

.result-card:last-child {
  margin-bottom: 0;
}

.card-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 11px;
  padding-bottom: 6px;
}

.card-title-row {
  flex: 0 1 auto;
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 6px;
  max-width: min(100%, 920px);
}

.card-title-row h3 {
  min-width: 0;
  flex: 0 1 auto;
}

.card-title-links {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  flex: 0 0 auto;
  margin-top: 0;
}

.detail-favorite-toggle {
  width: 24px;
  height: 24px;
  border-radius: 7px;
  border: 1px solid #cdd8d6;
  background: linear-gradient(180deg, #ffffff 0%, #eef3f1 100%);
  color: #a7b0ae;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  margin: 0;
  font-size: 0.9rem;
  font-weight: 900;
  line-height: 1;
  box-shadow:
    0 3px 8px rgba(14, 40, 45, 0.13),
    inset 0 1px 0 rgba(255, 255, 255, 0.84);
  transition: transform 0.14s ease, filter 0.14s ease, border-color 0.14s ease, color 0.14s ease, box-shadow 0.14s ease;
}

.detail-favorite-toggle:hover {
  transform: translateY(-1px);
  filter: brightness(1.03);
}

.detail-favorite-toggle.active {
  color: #f3b311;
  border-color: #e8bb58;
  background: linear-gradient(180deg, #fff7df 0%, #ffefbe 100%);
  box-shadow:
    0 4px 10px rgba(141, 101, 23, 0.2),
    inset 0 1px 0 rgba(255, 255, 255, 0.9);
}

.card-source-link {
  width: 24px;
  height: 24px;
  border-radius: 7px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #ffffff;
  text-decoration: none;
  box-shadow:
    0 4px 10px rgba(17, 47, 54, 0.16),
    inset 0 1px 0 rgba(255, 255, 255, 0.26);
  transition: transform 0.14s ease, filter 0.14s ease, box-shadow 0.14s ease;
}

.card-source-link:hover {
  transform: translateY(-1px);
  filter: brightness(1.04);
  box-shadow:
    0 6px 12px rgba(15, 42, 47, 0.18),
    inset 0 1px 0 rgba(255, 255, 255, 0.28);
}

.card-source-link.naver {
  background: linear-gradient(180deg, #35de74 0%, #1fc864 100%);
  border: 1px solid #1bbd5f;
}

.card-source-link.asil {
  background: linear-gradient(180deg, #3346f5 0%, #1f33e0 100%);
  border: 1px solid #1c2fd3;
}

.card-source-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}

.card-source-icon.naver {
  font-size: 0.9rem;
  font-weight: 900;
  letter-spacing: -0.01em;
}

.card-source-icon.asil svg {
  display: block;
  width: 14px;
  height: 14px;
}

.card-head h3 {
  margin: 0;
  font-size: clamp(1.18rem, 1.78vw, 1.38rem);
  letter-spacing: -0.012em;
  line-height: 1.25;
  color: #173232;
}

.card-head-side {
  min-width: 272px;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 7px;
}

.card-head-actions {
  margin-top: 0 !important;
  gap: 7px;
  flex-wrap: wrap;
}

.card-collect-times {
  display: grid;
  gap: 3px;
  font-size: 0.74rem;
  color: #5f716f;
  text-align: right;
  padding: 5px 8px;
  border: 1px solid #cfe1de;
  border-radius: 10px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.95) 0%, rgba(243, 250, 248, 0.88) 100%);
  font-variant-numeric: tabular-nums;
}

.card-collect-line {
  display: flex;
  align-items: baseline;
  justify-content: flex-end;
  gap: 7px;
}

.card-collect-line strong {
  color: var(--ink);
  font-weight: 700;
  font-size: 0.78rem;
}

@media (min-width: 901px) {
  .card-collect-times {
    display: none;
  }
}

@media (max-width: 900px) {
  .card-title-row {
    max-width: 100%;
  }

  .detail-favorite-toggle {
    width: 22px;
    height: 22px;
    border-radius: 6px;
    font-size: 0.84rem;
  }

  .card-source-link {
    width: 22px;
    height: 22px;
    border-radius: 6px;
  }

  .card-source-icon.asil svg {
    width: 13px;
    height: 13px;
  }
}

.meta {
  margin: 8px 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 4px;
  font-size: 0.9rem;
}

.meta li {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}

.meta strong {
  color: var(--muted);
  margin-right: 0;
}

.detail-meta {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-wrap: nowrap;
  gap: 0;
  overflow: hidden;
  padding: 8px 10px;
  border: 1px solid #d0e2de;
  border-radius: 12px;
  background: linear-gradient(180deg, #ffffff 0%, #f5fbf9 100%);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.86);
}

.detail-meta li {
  flex: 0 0 auto;
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: nowrap;
  padding: 3px 13px 3px 0;
  margin-right: 13px;
  border-right: 1px solid #d4e5e0;
}

.detail-meta li:first-child {
  max-width: min(44%, 560px);
}

.detail-meta li:last-child {
  padding-right: 0;
  margin-right: 0;
  border-right: 0;
}

.detail-meta li.detail-meta-collected {
  display: none;
  margin-left: auto;
  margin-right: 0;
  padding-right: 0;
  padding-left: 14px;
  border-right: 0;
  border-left: 1px solid #d4e5e0;
}

.detail-meta strong {
  min-width: 84px;
  color: #5c6f71;
  font-weight: 800;
}

.detail-meta-value {
  color: #1d2a2c;
  font-weight: 700;
  display: inline-block;
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.detail-meta-collected-value {
  font-variant-numeric: tabular-nums;
}

.detail-meta-collected-wrap {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-width: 0;
}

.detail-meta-collected-item {
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  border-radius: 999px;
  border: 1px solid #cfddda;
  background: linear-gradient(180deg, #ffffff 0%, #f2f7f6 100%);
  color: #365152;
  font-size: 0.73rem;
  font-weight: 800;
  line-height: 1.2;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}

.detail-meta-collected-item.naver {
  border-color: #b8ddc8;
  background: linear-gradient(180deg, #f3fcf7 0%, #e8f6ef 100%);
  color: #1b6f50;
}

.detail-meta-collected-item.molit {
  border-color: #b9d2ec;
  background: linear-gradient(180deg, #f4f9ff 0%, #eaf2ff 100%);
  color: #31537d;
}

@media (min-width: 901px) {
  .detail-meta li.detail-meta-collected {
    display: flex;
    align-items: center;
  }
}

.detail-meta-badge {
  font-size: 0.8rem;
  font-weight: 900;
  padding: 3px 11px;
  border-width: 1px;
}

.detail-meta-badge.households {
  font-variant-numeric: tabular-nums;
}

.detail-identity-history {
  margin: 10px 0 14px;
  padding: 12px 14px;
  border: 1px solid #d7e6f2;
  border-radius: 14px;
  background: linear-gradient(180deg, #fbfdff 0%, #f1f7ff 100%);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.92);
}

.detail-identity-history-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.detail-identity-history-head strong {
  color: #23495f;
  font-size: 0.95rem;
  font-weight: 900;
}

.detail-identity-history-head span {
  color: #5d7a90;
  font-size: 0.78rem;
  font-weight: 800;
}

.detail-identity-history-list {
  list-style: none;
  margin: 10px 0 0;
  padding: 0;
  display: grid;
  gap: 9px;
}

.detail-identity-history-item {
  padding: 10px 12px;
  border: 1px solid #d5e2ee;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.88);
}

.detail-identity-history-item-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 7px;
}

.detail-identity-history-kind-wrap {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 6px;
}

.detail-identity-history-kind {
  display: inline-flex;
  align-items: center;
  padding: 3px 9px;
  border-radius: 999px;
  border: 1px solid #c8d7e5;
  background: #eef4fb;
  color: #36556f;
  font-size: 0.74rem;
  font-weight: 900;
  line-height: 1.1;
}

.detail-identity-history-kind.is-name {
  border-color: #cde3d3;
  background: #eef8f1;
  color: #2e6a46;
}

.detail-identity-history-kind.is-type {
  border-color: #c6d8ef;
  background: #edf4ff;
  color: #315c97;
}

.detail-identity-history-time {
  color: #667e92;
  font-size: 0.76rem;
  font-weight: 800;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}

.detail-identity-history-body {
  display: grid;
  gap: 6px;
}

.detail-identity-history-line {
  display: flex;
  align-items: center;
  gap: 7px;
  flex-wrap: wrap;
  line-height: 1.35;
}

.detail-identity-history-label {
  min-width: 44px;
  color: #61717f;
  font-size: 0.78rem;
  font-weight: 900;
}

.detail-identity-history-prev {
  color: #6d7f8f;
  font-size: 0.84rem;
  font-weight: 700;
}

.detail-identity-history-arrow {
  color: #88a0b6;
  font-size: 0.82rem;
  font-weight: 900;
}

.detail-identity-history-next {
  color: #1f3345;
  font-size: 0.86rem;
  font-weight: 900;
}

.link-row {
  display: flex;
  gap: 7px;
  margin: 9px 0 10px;
  flex-wrap: wrap;
}

.link-row a {
  color: #0f6558;
  text-decoration: none;
  font-size: 0.84rem;
  font-weight: 800;
  padding: 6px 10px;
  border: 1px solid #b6d5cb;
  background: linear-gradient(180deg, #f3fbf7 0%, #e7f5ef 100%);
  border-radius: 999px;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.8),
    0 2px 8px rgba(17, 64, 51, 0.08);
}

.link-row a:hover {
  color: #0a5248;
  border-color: #9cc6ba;
  background: linear-gradient(180deg, #f7fcfa 0%, #e3f2ec 100%);
  text-decoration: underline;
}

.detail-reliability {
  border: 1px solid #d8ccba;
  border-radius: 10px;
  background: #fffdf8;
  padding: 8px 10px;
  margin-bottom: 8px;
}

.detail-reliability-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 6px;
}

.detail-reliability-head strong {
  font-size: 0.84rem;
  color: #3f3a31;
}

.detail-reliability-head span {
  font-size: 0.78rem;
  font-weight: 900;
}

.detail-reliability-bar-wrap {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  align-items: center;
  margin-bottom: 6px;
}

.detail-reliability-bar {
  height: 8px;
  border-radius: 999px;
  background: #efe6d7;
  overflow: hidden;
  border: 1px solid #dccfb9;
}

.detail-reliability-bar span {
  display: block;
  height: 100%;
  width: 0;
  border-radius: 999px;
  transition: width 0.25s ease;
}

.detail-reliability-bar-wrap em {
  color: #7a7264;
  font-size: 0.68rem;
  font-style: normal;
  font-weight: 700;
  white-space: nowrap;
}

.detail-reliability-grid {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 3px 8px;
  font-size: 0.72rem;
}

.detail-reliability-grid span {
  color: #837b6c;
  font-weight: 700;
}

.detail-reliability-grid strong {
  color: #28251f;
  font-weight: 800;
  min-width: 0;
  word-break: break-word;
}

.detail-reliability-grid strong.error {
  color: #9f3a2a;
}

.detail-reliability.stable .detail-reliability-head span {
  color: #1f6e4f;
}

.detail-reliability.stable .detail-reliability-bar span {
  background: linear-gradient(90deg, #6dc39a, #1f7a56);
}

.detail-reliability.warn .detail-reliability-head span {
  color: #9a6b13;
}

.detail-reliability.warn .detail-reliability-bar span {
  background: linear-gradient(90deg, #d9ba6c, #ba7b14);
}

.detail-reliability.risk .detail-reliability-head span {
  color: #ba2f30;
}

.detail-reliability.risk .detail-reliability-bar span {
  background: linear-gradient(90deg, #f1978f, #ba2f30);
}

.incremental-summary {
  border: 1px solid #ddd0bb;
  border-radius: 10px;
  background: #fffdfa;
  padding: 8px 10px;
  margin-bottom: 8px;
}

.incremental-summary-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 6px;
}

.incremental-summary-head strong {
  font-size: 0.82rem;
  color: #3f3a31;
}

.incremental-summary-head span {
  font-size: 0.69rem;
  color: #8a8376;
  font-weight: 800;
}

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

.incremental-summary-list li {
  border: 1px solid #e2d7c4;
  border-radius: 8px;
  padding: 4px 5px;
  display: grid;
  gap: 1px;
  background: #fff;
}

.incremental-summary-list li span {
  font-size: 0.62rem;
  color: #8a8376;
  font-weight: 700;
}

.incremental-summary-list li strong {
  font-size: 0.74rem;
  color: #2a2620;
}

.incremental-summary-list li.add strong {
  color: #1f7a56;
}

.incremental-summary-list li.update strong {
  color: #3b6c9f;
}

.incremental-summary-list li.remove strong {
  color: #9d3b30;
}

.incremental-summary-list li.up strong {
  color: #b83a2f;
}

.incremental-summary-list li.down strong {
  color: #1252c3;
}

.incremental-summary-list li.new-low strong {
  color: #0b53bb;
  animation: price-drop-blink 1.2s ease-in-out infinite;
}

.incremental-summary-foot {
  margin: 6px 0 0;
  color: #8a8376;
  font-size: 0.68rem;
  font-weight: 700;
}

.table-wrap {
  overflow-x: auto;
  margin-top: 8px;
  border: 1px solid #d3e3df;
  border-radius: 12px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(245, 251, 249, 0.9) 100%);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.84),
    0 4px 11px rgba(16, 45, 50, 0.06);
}

.type-table,
.listing-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.81rem;
}

.type-table th,
.type-table td,
.listing-table th,
.listing-table td {
  border-bottom: 1px solid var(--line);
  padding: 7px 6px;
  text-align: left;
  white-space: nowrap;
}

.type-table th,
.listing-table th {
  color: #546766;
  font-weight: 700;
  background: rgba(236, 246, 243, 0.82);
  position: relative;
  z-index: 1;
}

.listing-table th {
  vertical-align: middle;
  color: #233536;
  font-weight: 800;
}

.listing-table th .sort-btn {
  color: #1a1612;
  font-weight: 800;
}

.listing-table tbody tr.listing-row-clickable {
  cursor: pointer;
}

.listing-table tbody tr.listing-row-clickable:focus-within {
  outline: 2px solid rgba(18, 135, 116, 0.24);
  outline-offset: -2px;
}

.listing-table .price-cell.has-link {
  padding: 0;
}

.listing-table .price-cell.has-link .price-link {
  display: flex;
  align-items: center;
  min-height: 35px;
  width: 100%;
  padding: 7px 6px;
  box-sizing: border-box;
}

.listing-table .judge-group-row th {
  text-align: center;
}

.listing-table .judge-group-row th[rowspan] {
  text-align: left;
}

.listing-table .judge-group-head {
  color: #1f3031;
  font-weight: 800;
  border-bottom: 1px solid #d0e0dc;
  background: #e9f3f0;
}

.listing-table .judge-sub-row th {
  text-align: center;
  background: #f2f8f6;
}

.listing-table .judge-sub-row .sort-btn {
  font-size: 0.78rem;
}

.type-table tr:last-child td,
.listing-table tr:last-child td {
  border-bottom: 0;
}

.listing-table tbody tr:nth-child(odd) td {
  background: rgba(250, 253, 252, 0.9);
}

.listing-table tbody tr:hover td {
  background: rgba(234, 245, 242, 0.85);
}

.type-table tfoot .type-total-row td {
  border-top: 2px solid #bfb39d;
  border-bottom: 0;
  background: #f7f1e3;
  font-weight: 800;
  color: #4a4438;
}

.gap-cell {
  font-weight: 700;
}

.gap-cell.cheap {
  color: #1e7a53;
}

.gap-cell.expensive {
  color: #a13c27;
}

.gap-cell.neutral {
  color: var(--ink);
}

.hotdeal-cell {
  font-weight: 800;
  font-size: 0.78rem;
}

.hotdeal-cell.hot {
  color: #0f4bd3;
  animation: price-drop-blink 1.15s ease-in-out infinite;
}

.hotdeal-cell.warm {
  color: #1d6f4f;
}

.hotdeal-cell.mid {
  color: #776f61;
}

.hotdeal-cell.cold {
  color: #a33d2b;
}

.hotdeal-cell.na {
  color: #918a7d;
  font-weight: 700;
}

.judge-badge {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: 2px 8px;
  font-size: 0.74rem;
  font-weight: 800;
  border: 1px solid var(--line);
  background: #f5f2ea;
  color: var(--muted);
}

.judge-badge.bargain {
  color: #fff;
  border-color: #1f7a56;
  background: #1f7a56;
}

.judge-badge.cheap {
  color: #1f7a56;
  border-color: #98cdb6;
  background: #ecf8f2;
}

.judge-badge.fair {
  color: #715f39;
  border-color: #d9cbab;
  background: #fff8e8;
}

.judge-badge.high {
  color: #985226;
  border-color: #efc7ad;
  background: #fff1e8;
}

.judge-badge.overpriced {
  color: #fff;
  border-color: #a13c27;
  background: #a13c27;
}

.judge-badge.na {
  color: var(--muted);
  border-color: var(--line);
  background: #f5f2ea;
}

.type-group-row td {
  background: #fffcf8;
}

.type-child-row td {
  background: #fff;
}

.type-cell,
.type-child-cell {
  display: flex;
  align-items: center;
  gap: 6px;
}

.tree-toggle {
  border: 1px solid var(--line);
  background: #fff;
  color: var(--ink);
  border-radius: 6px;
  width: 24px;
  height: 24px;
  padding: 0;
  font-size: 0.78rem;
  line-height: 1;
}

.tree-toggle:disabled {
  opacity: 0.45;
  cursor: default;
}

.tree-toggle:hover {
  background: #f3efe6;
  color: var(--ink);
}

.type-label-link {
  border: 0;
  background: transparent;
  color: var(--ink);
  padding: 0;
  font-size: 0.86rem;
  font-weight: 700;
  text-align: left;
}

.type-label-link:hover {
  background: transparent;
  color: var(--primary-strong);
  text-decoration: underline;
}

.type-label-link.active {
  color: var(--primary-strong);
  text-decoration: underline;
}

.type-label-link.child {
  font-size: 0.82rem;
  font-weight: 600;
}

.type-meta {
  color: var(--muted);
  font-size: 0.75rem;
}

.child-branch {
  color: var(--muted);
  font-size: 0.8rem;
}

.count-link {
  border: 1px solid var(--line);
  background: #fff;
  color: var(--ink);
  border-radius: 6px;
  padding: 2px 8px;
  font-size: 0.82rem;
  font-weight: 600;
}

.count-link:hover {
  background: #f3efe6;
}

.count-link.active {
  background: var(--primary);
  border-color: var(--primary);
  color: #fff;
}

.count-zero {
  color: var(--muted);
}

.table-tools {
  margin-top: 9px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  flex-wrap: wrap;
  padding: 6px 9px;
  border: 1px solid #d2e3df;
  border-radius: 10px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.94) 0%, rgba(242, 249, 247, 0.86) 100%);
  font-size: 0.8rem;
  color: #546968;
}

.table-tools .action-row {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}

.filter-text strong {
  color: var(--ink);
}

.listing-render-hint {
  margin: 8px 0 0;
  font-size: 0.79rem;
  color: var(--muted);
}

.listing-gap-note {
  margin: 6px 0 8px;
  font-size: 0.8rem;
  color: #8a5c18;
  font-weight: 700;
}

.listing-loadmore-row {
  margin-top: 6px;
  flex-wrap: wrap;
}

.listing-loadmore-row .inline-btn {
  min-width: 122px;
}

.detail-filters {
  margin-top: 6px;
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 6px;
}

.detail-filters-extra {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.detail-change-window-row {
  margin-top: 6px;
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.detail-change-window-label {
  font-size: 0.76rem;
  font-weight: 800;
  color: #335451;
}

.detail-change-window-toggle {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  flex-wrap: wrap;
}

.detail-change-window-btn {
  min-width: 76px;
}

.detail-change-window-btn.active,
.detail-change-window-btn[aria-pressed="true"] {
  border-color: #7eb6a8;
  background: linear-gradient(180deg, rgba(245, 251, 248, 0.98) 0%, rgba(232, 245, 239, 0.96) 100%);
  color: #24524d;
  box-shadow: inset 0 0 0 1px rgba(113, 171, 155, 0.18);
}

.detail-change-window-note {
  font-size: 0.72rem;
  color: #5f7571;
}

.detail-filters input,
.detail-filters select {
  width: 100%;
  min-width: 0;
  padding: 7px 8px;
  font-size: 0.8rem;
}

.sort-btn {
  border: 0;
  background: transparent;
  color: var(--muted);
  padding: 0;
  font-size: 0.82rem;
  font-weight: 600;
}

.sort-btn:hover {
  background: transparent;
  color: var(--primary-strong);
  text-decoration: underline;
}

.sort-btn.active {
  color: var(--primary-strong);
}

.listing-table .sort-btn.active {
  color: #1a1612;
}

.sort-btn.sort-btn-multiline {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1px;
  text-align: center;
  white-space: normal;
  line-height: 1.1;
  width: 100%;
}

.sort-btn.sort-btn-multiline .line-1 {
  font-size: 0.73rem;
  font-weight: 800;
}

.sort-btn.sort-btn-multiline .line-2 {
  font-size: 0.69rem;
  font-weight: 700;
  color: #7f796d;
}

.sort-btn.sort-btn-multiline .line-3 {
  font-size: 0.65rem;
  font-weight: 700;
  color: #8b8577;
}

.sort-btn.sort-btn-multiline.active .line-2,
.sort-btn.sort-btn-multiline.active .line-3 {
  color: var(--primary-strong);
}

.listing-table th.judge-col-head,
.listing-table td.judge-col-cell {
  width: 78px;
  min-width: 78px;
  max-width: 82px;
  text-align: center;
  white-space: normal;
}

.listing-table td.judge-col-cell {
  padding: 5px 4px;
}

.listing-table td.judge-col-cell .judge-badge {
  max-width: 100%;
  justify-content: center;
  padding: 2px 5px;
  font-size: 0.68rem;
}

.listing-table th.change-col-head,
.listing-table td.change-cell {
  min-width: 54px;
  width: 54px;
  max-width: 62px;
  text-align: center;
}

.listing-table td.change-cell {
  padding: 5px 4px;
  white-space: normal;
}

.listing-table .col-type {
  min-width: 104px;
  width: 104px;
}

.listing-table .col-trade {
  min-width: 58px;
  width: 58px;
}

.listing-table .col-price {
  min-width: 96px;
  width: 96px;
}

.listing-table .col-location {
  min-width: 112px;
  width: 112px;
}

.listing-table .col-occupancy {
  min-width: 148px;
  width: 148px;
  text-align: left;
}

.listing-table .col-gap,
.listing-table .col-gap-real {
  min-width: 84px;
  width: 84px;
  text-align: center;
}

.listing-table .col-confirm {
  min-width: 86px;
  width: 86px;
}

.listing-table .price-cell .price-link {
  color: #1a4fcd;
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.listing-table .location-cell {
  white-space: normal;
}

.listing-table .location-main {
  display: block;
  font-weight: 700;
  color: #2f2a22;
}

.listing-table .location-sub {
  display: block;
  font-size: 0.74rem;
  color: #7a7366;
  margin-top: 1px;
}

.listing-occupancy-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 64px;
  max-width: 148px;
  padding: 3px 8px;
  border-radius: 999px;
  border: 1px solid transparent;
  font-size: 0.69rem;
  font-weight: 900;
  line-height: 1.1;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.listing-occupancy-empty {
  color: #9a9285;
  font-size: 0.72rem;
  font-weight: 800;
}

.listing-occupancy-chip.tone-tenant {
  background: rgba(255, 248, 236, 0.92);
  border-color: #e3b35e;
  color: #a24f12;
}

.listing-occupancy-chip.tone-owner {
  background: rgba(252, 235, 229, 0.92);
  border-color: #e0a088;
  color: #963f21;
}

.listing-occupancy-chip.tone-consult {
  background: rgba(232, 242, 252, 0.92);
  border-color: #a8c6eb;
  color: #285b88;
}

.listing-occupancy-chip.tone-immediate {
  background: rgba(229, 246, 237, 0.95);
  border-color: #9dcdb0;
  color: #14603f;
}

.listing-occupancy-chip.tone-dated {
  background: rgba(243, 239, 254, 0.92);
  border-color: #c5b8f0;
  color: #5b448f;
}

.listing-occupancy-chip.tone-check,
.listing-occupancy-chip.tone-none {
  background: rgba(243, 241, 236, 0.86);
  border-color: #d8d0c3;
  color: #746b5d;
}

.change-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 1px 4px;
  border-radius: 999px;
  font-size: 0.6rem;
  font-weight: 800;
  line-height: 1;
  margin: 1px 1px;
  white-space: nowrap;
  border: 1px solid transparent;
}

.change-badge.new {
  color: #005bb5;
  background: #e7f0ff;
  border-color: #b2ccf8;
}

.change-badge.down {
  color: #0e6a45;
  background: #e6f5ed;
  border-color: #b4ddc8;
}

.change-badge.newlow {
  color: #0e6a45;
  background: #dff3e9;
  border-color: #8ec9ab;
}

.change-badge.up {
  color: #a12a2a;
  background: #fde8e8;
  border-color: #efb8b8;
}

.section-title {
  margin: 12px 0 6px;
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.86rem;
  font-weight: 900;
  color: #32514f;
  letter-spacing: -0.01em;
}

.section-title::before {
  content: "";
  width: 9px;
  height: 9px;
  border-radius: 999px;
  border: 1px solid rgba(26, 127, 111, 0.34);
  background: linear-gradient(180deg, rgba(60, 181, 157, 0.92) 0%, rgba(48, 146, 223, 0.86) 100%);
  box-shadow: 0 0 0 3px rgba(99, 167, 191, 0.14);
}

.section-title::after {
  content: "";
  flex: 1;
  height: 1px;
  background: linear-gradient(90deg, rgba(164, 201, 194, 0.54) 0%, rgba(164, 201, 194, 0) 100%);
}

.chart-control-row {
  margin: 4px 0;
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  font-size: 0.76rem;
  color: #5a6e6d;
}

.chart-control-row-main {
  padding: 8px 10px;
  border: 1px solid #ccded9;
  border-radius: 12px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.96) 0%, rgba(242, 250, 247, 0.88) 100%);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.84),
    0 4px 10px rgba(16, 45, 49, 0.07);
}

.chart-control-row label {
  font-weight: 700;
  color: #274342;
  margin: 0;
  white-space: nowrap;
}

.chart-control-row input {
  width: 154px;
  min-width: 154px;
  padding: 5px 8px;
  font-size: 0.79rem;
}

.chart-control-row .analysis-policy {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  border: 1px solid #abd1bf;
  background: linear-gradient(180deg, #f4fbf7 0%, #e9f5ef 100%);
  color: #1f6e4f;
  padding: 3px 9px;
  font-weight: 800;
  white-space: nowrap;
}

.chart-control-row .analysis-policy.provisional {
  border-color: #efc39c;
  background: linear-gradient(180deg, #fff8f0 0%, #fff0de 100%);
  color: #9a4d17;
}

.chart-control-row .analysis-policy.partial {
  border-color: #f0d39f;
  background: linear-gradient(180deg, #fffaf0 0%, #fff4e0 100%);
  color: #8f5716;
}

.chart-control-row .analysis-counts {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  border: 1px solid #c6d9d4;
  background: #ffffff;
  color: #2f4450;
  padding: 3px 9px;
  font-weight: 800;
  white-space: nowrap;
}

.chart-control-meta {
  margin: 6px 0 7px;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 6px;
}

.chart-control-chip {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  min-width: 0;
  border: 1px solid #d1e1dd;
  border-radius: 9px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.97) 0%, rgba(246, 251, 250, 0.9) 100%);
  color: #556a69;
  padding: 5px 8px;
  font-size: 0.72rem;
  font-weight: 700;
  line-height: 1.35;
  overflow-wrap: anywhere;
}

.chart-control-chip strong {
  color: #22383a;
  font-weight: 900;
}

.chart-control-chip.primary {
  border-color: #bdd8cf;
  color: #335553;
  background: linear-gradient(180deg, #f6fbf9 0%, #eaf6f2 100%);
}

.chart-control-chip.soft {
  border-color: #d6dcd9;
  color: #60716c;
  background: linear-gradient(180deg, #fbfdfc 0%, #f3f6f4 100%);
}

.chart-db-info-anchor {
  position: relative;
  display: inline-flex;
  align-items: center;
}

.detail-card-db-info-anchor {
  flex: 0 0 auto;
}

.chart-db-info-toggle {
  appearance: none;
  -webkit-appearance: none;
  font-family: inherit;
  line-height: 1.25;
  cursor: pointer;
  white-space: nowrap;
}

.chart-db-info-toggle[aria-expanded="true"] {
  border-color: #9fbeb4;
  background: linear-gradient(180deg, #eef7f3 0%, #e1f1ea 100%);
  color: #1f4d48;
}

.chart-db-info-popover {
  top: calc(100% + 6px);
  right: 0;
  left: auto;
  width: min(92vw, 540px);
  max-width: 540px;
  padding: 9px;
}

.chart-db-info-popover-body {
  display: grid;
  gap: 6px;
}

.chart-db-info-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 6px;
}

.chart-db-info-popover .chart-control-chip {
  width: 100%;
}

.ask-mode-inline {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}

.chart-help {
  margin: 5px 0 7px;
  padding: 6px 9px;
  border: 1px solid #d4e3df;
  border-left: 4px solid #77b8a5;
  border-radius: 9px;
  background: linear-gradient(180deg, rgba(249, 253, 251, 0.96) 0%, rgba(241, 249, 245, 0.9) 100%);
  font-size: 0.74rem;
  line-height: 1.42;
  color: #516665;
}

.real-trade-basis-note {
  margin: 4px 0 7px;
  padding: 7px 10px;
  border: 1px solid #d7e6e1;
  border-left: 4px solid #7eb6a8;
  border-radius: 10px;
  background: linear-gradient(180deg, rgba(250, 253, 252, 0.98) 0%, rgba(241, 248, 245, 0.94) 100%);
  font-size: 0.76rem;
  line-height: 1.38;
  color: #2f5350;
}

.real-trade-basis-note strong {
  font-weight: 800;
}

.real-trade-basis-note-sub {
  display: block;
  margin-top: 3px;
  font-size: 0.68rem;
  line-height: 1.42;
  color: #5a7470;
}

.chart-help strong {
  color: #2a5351;
}

.chart-legend {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin: 4px 0 2px;
}

.legend-chip {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: #fff;
  padding: 2px 8px;
  font-size: 0.73rem;
  font-weight: 700;
}

.legend-chip.ask {
  color: #1f6e4f;
  border-color: #b9cfbf;
  background: #eef7f2;
}

.legend-chip.real {
  color: #b76015;
  border-color: #f3c8a8;
  background: #fff4e8;
}

.legend-note {
  font-size: 0.74rem;
  color: var(--muted);
}

.type-market-flow30d-section-title {
  margin-top: 6px;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

.type-market-flow30d-info-anchor {
  flex: 0 0 auto;
}

.type-market-flow30d-info-toggle {
  min-height: 24px;
  padding: 0 8px;
  border: 1px solid rgba(141, 181, 185, 0.42);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.92);
  color: #4a6463;
  font-size: 0.62rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  box-shadow: 0 4px 10px rgba(57, 88, 88, 0.06);
}

.type-market-flow30d-info-popover {
  width: min(92vw, 420px);
  max-width: 420px;
}

.type-market-flow30d-info-popover-body {
  gap: 7px;
}

.type-market-flow30d-section {
  margin-bottom: 22px;
}

.type-market-flow30d-panel {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 16px 18px 18px;
  border: 1px solid rgba(132, 187, 182, 0.35);
  border-radius: 24px;
  background: linear-gradient(180deg, rgba(245, 252, 251, 0.98), rgba(239, 248, 249, 0.94));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.82);
  overflow: hidden;
}

.type-market-flow30d-panel.is-loading {
  min-height: 120px;
  justify-content: center;
}

.type-market-flow30d-controls {
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-width: 0;
}

.type-market-flow30d-chip-row {
  display: flex;
  align-items: center;
  gap: 8px;
  overflow-x: auto;
  padding-bottom: 2px;
  scrollbar-width: none;
}

.type-market-flow30d-chip-row::-webkit-scrollbar {
  display: none;
}

.type-market-flow30d-group-chip {
  flex: 0 0 auto;
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 2px;
  min-height: 42px;
  padding: 8px 12px;
  border-radius: 16px;
  border: 1px solid rgba(144, 183, 185, 0.34);
  background: rgba(255, 255, 255, 0.84);
  color: #315654;
  box-shadow: 0 4px 12px rgba(39, 75, 75, 0.05);
  text-align: left;
}

.type-market-flow30d-group-chip strong {
  font-size: 0.88rem;
  font-weight: 900;
  letter-spacing: -0.02em;
  line-height: 1.1;
}

.type-market-flow30d-group-chip span {
  font-size: 0.74rem;
  font-weight: 700;
  color: #66807e;
  line-height: 1.15;
}

.type-market-flow30d-group-chip.is-active {
  border-color: rgba(66, 136, 150, 0.52);
  background: linear-gradient(180deg, rgba(236, 247, 250, 0.98), rgba(225, 241, 245, 0.94));
  color: #21424d;
  box-shadow: 0 10px 22px rgba(61, 103, 117, 0.12);
}

.type-market-flow30d-meta-row {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  min-width: 0;
}

.type-market-flow30d-legend-chip,
.type-market-flow30d-coverage {
  display: inline-flex;
  align-items: center;
  min-height: 29px;
  padding: 0 10px;
  border-radius: 999px;
  border: 1px solid rgba(144, 183, 185, 0.34);
  background: rgba(255, 255, 255, 0.86);
  font-size: 0.74rem;
  font-weight: 800;
  color: #486464;
  white-space: nowrap;
}

.type-market-flow30d-legend-chip.lowest {
  color: #1f6e4f;
  border-color: #b9cfbf;
  background: #eef7f2;
}

.type-market-flow30d-legend-chip.trade {
  color: #b76015;
  border-color: #f3c8a8;
  background: #fff4e8;
}

.type-market-flow30d-legend-chip.listing {
  color: #275a95;
  border-color: rgba(111, 147, 199, 0.34);
  background: rgba(236, 243, 253, 0.95);
}

.type-market-flow30d-coverage {
  color: #6a6d74;
  background: rgba(246, 248, 250, 0.94);
}

.type-market-flow30d-chart-shell {
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-width: 0;
  overflow: hidden;
}

.type-market-flow30d-chart-wrap {
  width: 100%;
  min-width: 0;
  overflow: hidden;
}

.type-market-flow30d-chart {
  display: block;
  width: 100%;
  height: auto;
}

.type-market-flow30d-bg {
  fill: rgba(255, 255, 255, 0.9);
  stroke: rgba(146, 183, 182, 0.28);
  stroke-width: 1;
}

.type-market-flow30d-bg.listing {
  fill: rgba(248, 252, 255, 0.92);
}

.type-market-flow30d-grid-line {
  stroke: rgba(114, 146, 151, 0.18);
  stroke-width: 1;
}

.type-market-flow30d-grid-line.subtle {
  stroke: rgba(122, 149, 186, 0.15);
}

.type-market-flow30d-lowest-ask-line {
  fill: none;
  stroke: #1f6e4f;
  stroke-width: 3.2;
  stroke-linecap: round;
  stroke-linejoin: round;
  filter: drop-shadow(0 2px 8px rgba(31, 110, 79, 0.12));
}

.type-market-flow30d-lowest-ask-marker {
  fill: #1f6e4f;
  stroke: rgba(255, 255, 255, 0.96);
  stroke-width: 2;
}

.type-market-flow30d-lowest-ask-marker.is-active {
  fill: #165b40;
  stroke-width: 2.3;
}

.type-market-flow30d-listing-bar {
  fill: rgba(67, 126, 214, 0.28);
  transition: fill 140ms ease, opacity 140ms ease;
}

.type-market-flow30d-listing-bar.is-carried {
  fill: rgba(117, 139, 173, 0.18);
}

.type-market-flow30d-listing-bar.is-active {
  fill: rgba(52, 112, 209, 0.54);
}

.type-market-flow30d-trade-point {
  fill: #dd7e45;
  stroke: rgba(255, 255, 255, 0.94);
  stroke-width: 1.8;
  transition: transform 140ms ease, fill 140ms ease;
}

.type-market-flow30d-trade-point.is-active {
  fill: #c34c1b;
  transform: scale(1.06);
}

.type-market-flow30d-realtrade-avg180d-line {
  fill: none;
  stroke: rgba(111, 126, 145, 0.9);
  stroke-width: 2;
  stroke-linecap: round;
  stroke-dasharray: 7 5;
}

.type-market-flow30d-realtrade-avg180d-axis-label {
  fill: #5a6977;
  font-size: 0.67rem;
  font-weight: 860;
  letter-spacing: -0.01em;
  paint-order: normal;
  stroke: none;
}

.type-market-flow30d-realtrade-avg180d-axis-label-eyebrow {
  fill: #768795;
  font-size: 0.57rem;
  font-weight: 820;
  letter-spacing: -0.005em;
}

.type-market-flow30d-realtrade-avg180d-axis-label-value {
  fill: #465a6c;
  font-size: 0.73rem;
  font-weight: 900;
}

.type-market-flow30d-avg-delta-connector {
  stroke-width: 1.6;
  stroke-dasharray: 2 4;
  stroke-linecap: round;
}

.type-market-flow30d-avg-delta-connector.is-premium {
  stroke: rgba(198, 107, 58, 0.78);
}

.type-market-flow30d-avg-delta-connector.is-discount {
  stroke: rgba(43, 121, 128, 0.76);
}

.type-market-flow30d-avg-delta-connector.is-neutral {
  stroke: rgba(107, 121, 141, 0.72);
}

.type-market-flow30d-avg-delta-label {
  pointer-events: none;
}

.type-market-flow30d-avg-delta-leader {
  stroke-width: 1.6;
  stroke-linecap: round;
}

.type-market-flow30d-avg-delta-label.is-premium .type-market-flow30d-avg-delta-leader {
  stroke: rgba(198, 107, 58, 0.64);
}

.type-market-flow30d-avg-delta-label.is-discount .type-market-flow30d-avg-delta-leader {
  stroke: rgba(43, 121, 128, 0.6);
}

.type-market-flow30d-avg-delta-label.is-neutral .type-market-flow30d-avg-delta-leader {
  stroke: rgba(107, 121, 141, 0.58);
}

.type-market-flow30d-avg-delta-label-text {
  font-size: 0.68rem;
  font-weight: 880;
  letter-spacing: -0.01em;
  paint-order: normal;
  stroke: none;
  font-variant-numeric: tabular-nums;
}

.type-market-flow30d-avg-delta-label.is-premium .type-market-flow30d-avg-delta-label-text {
  fill: #8d4720;
}

.type-market-flow30d-avg-delta-label.is-discount .type-market-flow30d-avg-delta-label-text {
  fill: #225f64;
}

.type-market-flow30d-avg-delta-label.is-neutral .type-market-flow30d-avg-delta-label-text {
  fill: #5a687b;
}

.type-market-flow30d-avg-delta-label-amount {
  font-weight: 900;
}

.type-market-flow30d-avg-delta-label-pct {
  font-size: 0.58rem;
  font-weight: 820;
}

.type-market-flow30d-price-label,
.type-market-flow30d-trade-label,
.type-market-flow30d-listing-label,
.type-market-flow30d-listing-axis-label {
  paint-order: normal;
  stroke: none;
  filter: none;
  text-rendering: geometricPrecision;
  font-variant-numeric: tabular-nums;
}

.type-market-flow30d-label-group {
  pointer-events: none;
}

.type-market-flow30d-price-label-bg,
.type-market-flow30d-trade-label-bg,
.type-market-flow30d-listing-label-bg {
  display: none;
}

.type-market-flow30d-price-label-bg {
  stroke: none;
}

.type-market-flow30d-trade-label-bg {
  stroke: none;
}

.type-market-flow30d-trade-label-bg.is-active {
  fill: transparent;
  stroke: none;
}

.type-market-flow30d-listing-label-bg {
  stroke: none;
}

.type-market-flow30d-listing-label-bg.is-active {
  fill: transparent;
  stroke: none;
}

.type-market-flow30d-price-label {
  fill: #173f33;
  font-size: 0.74rem;
  font-weight: 860;
  letter-spacing: -0.02em;
}

.type-market-flow30d-price-label-main {
  font-weight: 900;
}

.type-market-flow30d-price-label-sub {
  font-size: 0.63rem;
  font-weight: 760;
  fill: #566c65;
}

.type-market-flow30d-trade-point-group {
  pointer-events: none;
}

.type-market-flow30d-trade-label {
  fill: #8b451f;
  font-size: 0.63rem;
  font-weight: 860;
  letter-spacing: -0.01em;
}

.type-market-flow30d-trade-label-sub {
  fill: #a86a46;
  font-size: 0.56rem;
  font-weight: 780;
}

.type-market-flow30d-trade-label.is-active {
  fill: #73310c;
}

.type-market-flow30d-listing-label {
  fill: #234671;
  font-size: 0.66rem;
  font-weight: 860;
  letter-spacing: -0.01em;
}

.type-market-flow30d-listing-label.is-active {
  fill: #12365f;
}

.type-market-flow30d-listing-axis-label {
  fill: #55697a;
  font-size: 0.66rem;
  font-weight: 760;
  letter-spacing: -0.01em;
}

.type-market-flow30d-hit {
  fill: transparent;
  cursor: pointer;
}

.type-market-flow30d-hit.is-active {
  fill: rgba(74, 133, 221, 0.06);
}

.type-market-flow30d-x-label {
  fill: #58706f;
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: -0.01em;
}

.type-market-flow30d-active-guide {
  stroke: rgba(53, 101, 165, 0.36);
  stroke-width: 1.3;
  stroke-dasharray: 4 5;
}

.type-market-flow30d-tooltip {
  min-width: 0;
}

.type-market-flow30d-tooltip-card {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 13px 14px;
  border-radius: 18px;
  border: 1px solid rgba(144, 183, 185, 0.28);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(243, 249, 248, 0.94));
  box-shadow: 0 8px 22px rgba(37, 73, 74, 0.08);
  min-width: 0;
}

.type-market-flow30d-tooltip-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  min-width: 0;
}

.type-market-flow30d-tooltip-head strong {
  font-size: 0.92rem;
  font-weight: 900;
  color: #234746;
}

.type-market-flow30d-tooltip-badge {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 0 8px;
  border-radius: 999px;
  background: rgba(239, 245, 247, 0.96);
  color: #617171;
  font-size: 0.68rem;
  font-weight: 800;
}

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

.type-market-flow30d-tooltip-metric {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
  padding: 10px 10px;
  border-radius: 14px;
  background: rgba(249, 252, 252, 0.9);
  border: 1px solid rgba(144, 183, 185, 0.22);
}

.type-market-flow30d-tooltip-metric > span {
  font-size: 0.72rem;
  font-weight: 800;
  color: #6a7f7d;
}

.type-market-flow30d-tooltip-metric strong {
  font-size: 0.92rem;
  font-weight: 900;
  color: #203f3d;
  line-height: 1.15;
}

.type-market-flow30d-tooltip-metric small,
.type-market-flow30d-tooltip-metric-lines span {
  font-size: 0.64rem;
  font-weight: 800;
  color: #70817f;
  line-height: 1.28;
}

.type-market-flow30d-tooltip-metric.is-trade {
  background: rgba(252, 246, 240, 0.9);
  border-color: rgba(240, 197, 158, 0.38);
}

.type-market-flow30d-tooltip-metric-lines {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.type-market-flow30d-tooltip-comparison {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 4px 8px;
  padding-top: 10px;
  border-top: 1px solid rgba(141, 181, 185, 0.26);
  font-size: 0.72rem;
  line-height: 1.4;
  color: #4f666d;
}

.type-market-flow30d-tooltip-comparison.is-premium {
  border-top-color: rgba(229, 181, 148, 0.52);
}

.type-market-flow30d-tooltip-comparison.is-discount {
  border-top-color: rgba(125, 188, 188, 0.52);
}

.type-market-flow30d-tooltip-comparison.is-neutral {
  border-top-color: rgba(151, 168, 187, 0.34);
}

.type-market-flow30d-tooltip-comparison-eyebrow {
  font-size: 0.66rem;
  font-weight: 760;
  color: #718388;
}

.type-market-flow30d-tooltip-comparison-avg {
  font-size: 0.82rem;
  font-weight: 900;
  color: #24454b;
  letter-spacing: -0.01em;
}

.type-market-flow30d-tooltip-comparison-delta {
  font-weight: 860;
  letter-spacing: -0.01em;
}

.type-market-flow30d-tooltip-comparison-meta {
  font-size: 0.67rem;
  font-weight: 760;
  color: #72838a;
}

.type-market-flow30d-tooltip-comparison-meta.is-empty {
  color: #5e6d74;
}

.type-market-flow30d-tooltip-comparison.is-premium .type-market-flow30d-tooltip-comparison-delta {
  color: #8a532f;
}

.type-market-flow30d-tooltip-comparison.is-discount .type-market-flow30d-tooltip-comparison-delta {
  color: #2d6668;
}

.type-market-flow30d-tooltip-comparison.is-neutral .type-market-flow30d-tooltip-comparison-delta {
  color: #5d6d7d;
}

.type-market-flow30d-empty,
.type-market-flow30d-tooltip-empty {
  margin: 0;
  padding: 18px 14px;
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.82);
  color: #667b79;
  font-weight: 700;
}

.type-market-flow30d-note {
  margin: 0;
  font-size: 0.78rem;
  line-height: 1.45;
  color: #5d7674;
}

.lowest-ask-flow-section {
  margin-bottom: 22px;
}

.lowest-ask-flow-section-title {
  flex-wrap: wrap;
  align-items: center;
}

.lowest-ask-flow-info-anchor {
  flex: 0 0 auto;
}

.lowest-ask-flow-info-toggle {
  min-height: 28px;
  padding: 0 11px;
  border-radius: 999px;
  border: 1px solid rgba(104, 170, 188, 0.52);
  background: linear-gradient(180deg, rgba(239, 249, 252, 0.98) 0%, rgba(225, 241, 246, 0.96) 100%);
  color: #294b57;
  font-size: 0.68rem;
  font-weight: 900;
  letter-spacing: 0.01em;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.72);
}

.lowest-ask-flow-info-toggle[aria-expanded="true"] {
  border-color: rgba(96, 159, 178, 0.68);
  background: linear-gradient(180deg, rgba(229, 244, 249, 0.99) 0%, rgba(213, 233, 240, 0.97) 100%);
  color: #1f434f;
}

.lowest-ask-flow-info-popover {
  width: min(92vw, 520px);
  max-width: 520px;
}

.lowest-ask-flow-info-popover-body {
  display: grid;
  gap: 6px;
}

.lowest-ask-flow-panel {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 16px 18px 18px;
  border: 1px solid rgba(132, 187, 182, 0.35);
  border-radius: 24px;
  background: linear-gradient(180deg, rgba(245, 252, 251, 0.96), rgba(240, 248, 250, 0.92));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.75);
}

.lowest-ask-flow-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.lowest-ask-flow-meta-collapsed {
  display: flex;
  align-items: center;
}

.lowest-ask-flow-chip {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 0 12px;
  border-radius: 999px;
  border: 1px solid rgba(132, 187, 182, 0.55);
  background: rgba(255, 255, 255, 0.84);
  color: #365a58;
  font-size: 0.9rem;
  font-weight: 700;
}

.lowest-ask-flow-chip.subtle {
  color: #587573;
  background: rgba(248, 251, 251, 0.82);
}

.lowest-ask-flow-meta-toggle {
  min-height: 34px;
  padding: 0 14px;
  border-radius: 999px;
}

.lowest-ask-flow-meta-popover {
  width: min(88vw, 420px);
}

.lowest-ask-flow-meta-popover-body {
  display: grid;
  gap: 6px;
}

.lowest-ask-flow-meta-popover-body .lowest-ask-flow-chip {
  width: 100%;
  justify-content: flex-start;
  min-height: 34px;
  padding: 0 12px;
  white-space: normal;
  text-align: left;
}

.lowest-ask-flow-chart-wrap {
  width: 100%;
}

.lowest-ask-flow-chart {
  display: block;
  width: 100%;
  height: auto;
}

.lowest-ask-flow-bg {
  fill: rgba(255, 255, 255, 0.86);
  stroke: rgba(146, 183, 182, 0.32);
  stroke-width: 1;
}

.lowest-ask-flow-grid-row line {
  stroke: rgba(114, 146, 151, 0.18);
  stroke-width: 1;
}

.lowest-ask-flow-grid-row text,
.lowest-ask-flow-x-label {
  fill: #4c6665;
  font-size: 1.12rem;
  font-weight: 800;
  letter-spacing: -0.01em;
}

.lowest-ask-flow-x-label {
  text-anchor: middle;
}

.lowest-ask-flow-axis {
  stroke: rgba(90, 126, 130, 0.38);
  stroke-width: 1.2;
}

.lowest-ask-flow-line {
  fill: none;
  stroke-width: 3.2;
  stroke-linecap: round;
  stroke-linejoin: round;
  transition: opacity 140ms ease, stroke-width 140ms ease, filter 140ms ease;
}

.lowest-ask-flow-line.mobile {
  stroke-width: 4.2;
}

.lowest-ask-flow-point {
  stroke: rgba(255, 255, 255, 0.94);
  stroke-width: 2;
  transition: opacity 140ms ease, transform 140ms ease;
}

.lowest-ask-flow-point.mobile {
  stroke-width: 2.4;
}

.lowest-ask-flow-rebound-marker {
  fill: rgba(255, 255, 255, 0.12);
  stroke-width: 1.9;
  stroke-dasharray: 3 3;
  opacity: 0.78;
}

.lowest-ask-flow-rebound-drop-line {
  stroke-width: 1.8;
  stroke-dasharray: 4 4;
  opacity: 0.78;
}

.lowest-ask-flow-rebound-low-point {
  fill: rgba(255, 255, 255, 0.96);
  stroke-width: 2.1;
}

.lowest-ask-flow-rebound-low-label {
  font-size: 0.78rem;
  font-weight: 900;
  paint-order: stroke;
  stroke: rgba(255, 255, 255, 0.96);
  stroke-width: 4px;
  stroke-linejoin: round;
  letter-spacing: -0.01em;
}

.lowest-ask-flow-rebound-low-label.mobile {
  font-size: 0.84rem;
  stroke-width: 4.4px;
}

.lowest-ask-flow-focus-guide {
  stroke-width: 1.4;
  stroke-linecap: round;
  stroke-dasharray: 4 5;
  opacity: 0;
  transition: opacity 140ms ease;
}

.lowest-ask-flow-point-label {
  font-size: 0.92rem;
  font-weight: 900;
  paint-order: stroke;
  stroke: rgba(255, 255, 255, 0.96);
  stroke-width: 4px;
  stroke-linejoin: round;
  letter-spacing: -0.01em;
  transition: opacity 140ms ease;
}

.lowest-ask-flow-point-label-date {
  opacity: 0;
  font-size: 0.82em;
}

.lowest-ask-flow-point-label-extra {
  opacity: 0;
  font-size: 0.72em;
}

.lowest-ask-flow-point-label-extra.is-visible {
  opacity: 0.96;
}

.lowest-ask-flow-point-label.mobile {
  font-size: 0.98rem;
  stroke-width: 4.6px;
}

.lowest-ask-flow-panel.has-focus [data-lowest-ask-flow-group].is-muted,
.lowest-ask-flow-panel.has-focus [data-lowest-ask-flow-legend-toggle].is-muted {
  opacity: 0.18;
}

.lowest-ask-flow-panel.has-focus [data-lowest-ask-flow-group].is-active,
.lowest-ask-flow-panel.has-focus [data-lowest-ask-flow-legend-toggle].is-active {
  opacity: 1;
}

.lowest-ask-flow-panel.has-focus .lowest-ask-flow-series.is-active .lowest-ask-flow-line {
  stroke-width: 4.6;
  filter: drop-shadow(0 3px 8px rgba(40, 71, 72, 0.16));
}

.lowest-ask-flow-panel.has-focus .lowest-ask-flow-point-label-wrap.is-active .lowest-ask-flow-focus-guide {
  opacity: 0.5;
}

.lowest-ask-flow-panel.has-focus .lowest-ask-flow-point-label-wrap.is-active .lowest-ask-flow-point-label-date {
  opacity: 1;
}

.lowest-ask-flow-panel.has-focus .lowest-ask-flow-point-label-wrap.is-active .lowest-ask-flow-point-label-extra {
  opacity: 1;
}

.lowest-ask-flow-panel.has-focus .lowest-ask-flow-series.is-active .lowest-ask-flow-point {
  transform: scale(1.08);
}

.lowest-ask-flow-stale-trace {
  opacity: 0;
  transition: opacity 140ms ease;
  pointer-events: none;
}

.lowest-ask-flow-panel.has-focus .lowest-ask-flow-stale-trace.is-active {
  opacity: 0.92;
}

.lowest-ask-flow-stale-line {
  stroke-width: 1.4;
  stroke-linecap: round;
  stroke-dasharray: 5 5;
  opacity: 0.38;
}

.lowest-ask-flow-stale-label {
  font-size: 0.74rem;
  font-weight: 800;
  paint-order: stroke;
  stroke: rgba(255, 255, 255, 0.94);
  stroke-width: 3.2px;
  stroke-linejoin: round;
  opacity: 0.9;
}

.lowest-ask-flow-stale-label.mobile {
  font-size: 0.8rem;
  stroke-width: 3.8px;
}

.lowest-ask-flow-legend {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 10px 12px;
}

.lowest-ask-flow-legend-item {
  display: grid;
  grid-template-columns: 14px minmax(0, 1fr) auto auto auto;
  align-items: center;
  gap: 8px;
  min-height: 38px;
  padding: 8px 10px;
  border-radius: 16px;
  border: 1px solid rgba(144, 183, 185, 0.28);
  background: rgba(255, 255, 255, 0.82);
  text-align: left;
  cursor: pointer;
  appearance: none;
  font: inherit;
  color: inherit;
  transition: transform 140ms ease, box-shadow 140ms ease, border-color 140ms ease, opacity 140ms ease;
}

.lowest-ask-flow-legend-item:hover {
  transform: translateY(-1px);
  box-shadow: 0 10px 20px rgba(66, 102, 104, 0.08);
}

.lowest-ask-flow-legend-item:focus-visible {
  outline: 2px solid rgba(73, 135, 214, 0.55);
  outline-offset: 2px;
}

.lowest-ask-flow-legend-item.is-active {
  border-color: rgba(99, 145, 148, 0.54);
  box-shadow: 0 12px 24px rgba(66, 102, 104, 0.12);
}

.lowest-ask-flow-legend-dot {
  width: 10px;
  height: 10px;
  border-radius: 999px;
  background: var(--flow-color, #1f77b4);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--flow-color, #1f77b4) 18%, white);
}

.lowest-ask-flow-legend-label {
  min-width: 0;
  color: #203a39;
  font-size: 0.96rem;
  font-weight: 800;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  letter-spacing: -0.02em;
}

.lowest-ask-flow-legend-price,
.lowest-ask-flow-legend-date,
.lowest-ask-flow-legend-delta {
  color: #466261;
  font-size: 0.9rem;
  font-weight: 700;
  white-space: nowrap;
}

.lowest-ask-flow-legend-price {
  color: #16635f;
}

.lowest-ask-flow-legend-delta.rise {
  color: #cb4f4f;
}

.lowest-ask-flow-legend-delta.drop {
  color: #2d66c6;
}

.lowest-ask-flow-legend-delta.same {
  color: #64706f;
}

.lowest-ask-flow-legend-extra {
  grid-column: 2 / -1;
  margin-top: -2px;
  color: #9a3412;
  font-size: 0.82rem;
  font-weight: 800;
  white-space: nowrap;
}

.lowest-ask-flow-legend-stale {
  display: none;
  grid-column: 2 / -1;
  margin-top: -2px;
  color: #6f655b;
  font-size: 0.76rem;
  font-weight: 800;
  white-space: normal;
}

.lowest-ask-flow-panel.has-focus [data-lowest-ask-flow-legend-toggle].is-active .lowest-ask-flow-legend-stale {
  display: block;
}

.lowest-ask-flow-empty {
  margin: 0;
  padding: 18px 14px;
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.82);
  color: #667b79;
  font-weight: 700;
}

.land-permit-section {
  margin-top: 8px;
  border: 1px solid #d0e0df;
  border-radius: 18px;
  padding: 14px 15px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(244, 250, 248, 0.92) 100%);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.88),
    0 6px 18px rgba(28, 54, 53, 0.06);
}

.land-permit-chip-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 8px;
}

.land-permit-summary-stack {
  display: grid;
  gap: 8px;
  margin-bottom: 10px;
}

.land-permit-summary-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.land-permit-summary-card {
  display: grid;
  gap: 7px;
  min-width: 0;
  padding: 10px 11px;
  border: 1px solid rgba(198, 217, 214, 0.9);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.82);
}

.land-permit-summary-card.compact {
  padding: 9px 10px;
}

.land-permit-summary-label {
  color: #58706e;
  font-size: 0.68rem;
  font-weight: 900;
  letter-spacing: 0.01em;
}

.land-permit-summary-inline,
.land-permit-summary-stats,
.land-permit-summary-facts {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  min-width: 0;
}

.land-permit-summary-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 5px 9px;
  border-radius: 999px;
  background: rgba(238, 247, 245, 0.96);
  color: #2f5e5b;
  font-size: 0.76rem;
  font-weight: 800;
  line-height: 1.2;
}

.land-permit-summary-fact {
  display: grid;
  gap: 3px;
  flex: 1 1 88px;
  min-width: 0;
  padding: 7px 8px;
  border-radius: 11px;
  background: rgba(244, 249, 248, 0.96);
}

.land-permit-summary-fact span {
  color: #617573;
  font-size: 0.64rem;
  font-weight: 800;
  line-height: 1.15;
}

.land-permit-summary-fact strong {
  color: #274f4c;
  font-size: 0.84rem;
  font-weight: 900;
  line-height: 1.1;
  word-break: keep-all;
}

.land-permit-summary-fact.tone-stale {
  background: rgba(255, 243, 239, 0.98);
}

.land-permit-summary-fact.tone-stale strong {
  color: #8e493e;
}

.land-permit-summary-stat {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  min-width: 0;
  padding: 5px 9px;
  border-radius: 999px;
  border: 1px solid #d2dfde;
  background: rgba(245, 249, 249, 0.96);
  color: #4c6260;
  font-size: 0.72rem;
  font-weight: 800;
  line-height: 1.2;
}

.land-permit-summary-stat strong {
  color: inherit;
  font-weight: 900;
}

.land-permit-summary-stat.tone-matched {
  border-color: rgba(102, 170, 135, 0.34);
  background: rgba(240, 251, 244, 0.96);
  color: #2b6f44;
}

.land-permit-summary-stat.tone-awaiting {
  border-color: rgba(79, 140, 219, 0.26);
  background: rgba(238, 246, 255, 0.96);
  color: #295d9a;
}

.land-permit-summary-stat.tone-lag {
  border-color: rgba(215, 164, 67, 0.28);
  background: rgba(255, 249, 234, 0.96);
  color: #8b6414;
}

.land-permit-summary-stat.tone-ambiguous {
  border-color: rgba(171, 126, 196, 0.3);
  background: rgba(249, 241, 255, 0.96);
  color: #6f4392;
}

.land-permit-summary-stat.tone-stale {
  border-color: rgba(195, 116, 98, 0.3);
  background: rgba(255, 241, 236, 0.96);
  color: #974636;
}

.land-permit-summary-note {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  padding: 7px 10px;
  border-radius: 12px;
  background: rgba(255, 248, 235, 0.92);
  color: #7a5a27;
}

.land-permit-summary-note-label {
  font-size: 0.66rem;
  font-weight: 900;
}

.land-permit-summary-note-text {
  font-size: 0.72rem;
  font-weight: 800;
  line-height: 1.35;
}

.land-permit-chip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 4px 10px;
  border-radius: 999px;
  border: 1px solid #c8dcdb;
  background: #edf8f6;
  color: #1f4d4a;
  font-size: 0.78rem;
  font-weight: 800;
  line-height: 1.2;
  white-space: nowrap;
}

.land-permit-chip.subtle {
  border-color: #d5dddd;
  background: #f7faf9;
  color: #4b5d5b;
}

.land-permit-chip.debug {
  border-color: #d9cfb6;
  background: #fff7e8;
  color: #80561c;
}

.land-permit-chip.recent {
  border-color: #b9caf5;
  background: #edf3ff;
  color: #24478f;
}

.land-permit-chip.status-matched {
  border-color: rgba(102, 170, 135, 0.42);
  background: rgba(240, 251, 244, 0.96);
  color: #2b6f44;
}

.land-permit-chip.status-awaiting {
  border-color: rgba(79, 140, 219, 0.28);
  background: rgba(238, 246, 255, 0.96);
  color: #295d9a;
}

.land-permit-chip.status-lag {
  border-color: rgba(215, 164, 67, 0.34);
  background: rgba(255, 249, 234, 0.96);
  color: #8b6414;
}

.land-permit-chip.status-ambiguous {
  border-color: rgba(171, 126, 196, 0.34);
  background: rgba(249, 241, 255, 0.96);
  color: #6f4392;
}

.land-permit-chip.status-stale {
  border-color: rgba(195, 116, 98, 0.34);
  background: rgba(255, 241, 236, 0.96);
  color: #974636;
}

.land-permit-note {
  margin: 0 0 10px;
  color: #5c7070;
  font-size: 0.8rem;
  font-weight: 700;
  line-height: 1.45;
}

.land-permit-match-controls {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 10px;
  margin: 0 0 10px;
}

.land-permit-match-control {
  display: grid;
  gap: 5px;
  min-width: 0;
}

.land-permit-match-label {
  color: #456160;
  font-size: 0.74rem;
  font-weight: 800;
}

.land-permit-match-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 4px;
}

.land-permit-match-summary {
  color: #47657e;
  font-size: 0.72rem;
  font-weight: 800;
}

.land-permit-match-control input[type="range"] {
  width: 100%;
  margin: 0;
  accent-color: #4968c6;
}

.land-permit-dual-range {
  margin-top: 2px;
}

.land-permit-chart-wrap {
  width: 100%;
  overflow: hidden;
  padding-bottom: 0;
}

.land-permit-chart {
  display: block;
  width: 100%;
}

.land-permit-bg {
  fill: rgba(255, 255, 255, 0.92);
  stroke: rgba(192, 215, 212, 0.9);
  stroke-width: 1.1;
}

.land-permit-grid-row line {
  stroke: rgba(196, 214, 210, 0.68);
  stroke-width: 1;
}

.land-permit-grid-row text,
.land-permit-x-label {
  fill: #6a7e7c;
  font-size: 0.76rem;
  font-weight: 800;
}

.land-permit-x-label.mobile {
  font-size: 0.66rem;
}

.land-permit-axis {
  stroke: rgba(116, 142, 140, 0.62);
  stroke-width: 1.2;
}

.land-permit-month-divider {
  stroke: rgba(143, 173, 171, 0.55);
  stroke-width: 1;
  stroke-dasharray: 3 4;
}

.land-permit-bar {
  fill: rgba(62, 137, 129, 0.16);
  stroke: rgba(49, 112, 106, 0.34);
  stroke-width: 1;
}

.land-permit-bar.has-value {
  fill: #3f9f97;
  stroke: #2d7e77;
}

.land-permit-bar.has-value.recent-14 {
  fill: #5a78dc;
  stroke: #3552b2;
}

.land-permit-bar.today {
  fill: #e07a2f;
  stroke: #bf6320;
}

.land-permit-bar.is-active {
  stroke-width: 1.6;
  filter: drop-shadow(0 1px 3px rgba(44, 71, 143, 0.22));
}

.land-permit-bar.is-muted {
  opacity: 0.22;
}

.land-permit-trade-marker {
  fill: #d1b56a;
  stroke: #8a6f2a;
  stroke-width: 1.1;
  cursor: pointer;
  transition: transform 0.16s ease, opacity 0.16s ease, fill 0.16s ease;
}

.land-permit-trade-marker.recent-14 {
  fill: #7a88d8;
  stroke: #4557a5;
}

.land-permit-trade-marker.is-linked {
  fill: #e08b3e;
  stroke: #9f5a12;
}

.land-permit-trade-marker.is-active {
  fill: #d94949;
  stroke: #9f2222;
  transform-box: fill-box;
  transform-origin: center;
  transform: scale(1.12);
}

.land-permit-trade-marker.is-muted {
  opacity: 0.58;
}

.land-permit-empty {
  margin: 0;
  padding: 20px 14px;
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.78);
  color: #677a78;
  font-weight: 700;
}

.land-permit-event-list {
  margin: 12px 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.land-permit-event-item {
  display: grid;
  grid-template-columns: 1fr;
  gap: 4px;
  align-content: start;
  min-width: 0;
  min-height: 108px;
  padding: 9px 8px;
  border: 1px solid #d7e4e2;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.9);
  text-align: left;
  cursor: pointer;
  transition: transform 0.14s ease, box-shadow 0.14s ease, border-color 0.14s ease;
}

.land-permit-event-item:hover,
.land-permit-event-item:focus-visible {
  border-color: #b7c9ec;
  box-shadow: 0 4px 12px rgba(52, 78, 147, 0.12);
  transform: translateY(-1px);
}

.land-permit-event-item.is-recent {
  border-color: #b9caf5;
  background: linear-gradient(180deg, rgba(239, 244, 255, 0.98) 0%, rgba(228, 237, 255, 0.92) 100%);
}

.land-permit-event-item.has-match {
  border-color: rgba(102, 170, 135, 0.42);
  background: linear-gradient(180deg, rgba(244, 252, 247, 0.98) 0%, rgba(234, 247, 239, 0.92) 100%);
}

.land-permit-event-item.status-awaiting {
  border-color: rgba(122, 166, 219, 0.34);
  background: linear-gradient(180deg, rgba(244, 249, 255, 0.98) 0%, rgba(234, 243, 255, 0.92) 100%);
}

.land-permit-event-item.status-lag {
  border-color: rgba(220, 176, 93, 0.34);
  background: linear-gradient(180deg, rgba(255, 251, 241, 0.98) 0%, rgba(255, 246, 225, 0.92) 100%);
}

.land-permit-event-item.status-ambiguous {
  border-color: rgba(176, 138, 201, 0.34);
  background: linear-gradient(180deg, rgba(251, 245, 255, 0.98) 0%, rgba(244, 235, 252, 0.92) 100%);
}

.land-permit-event-item.status-stale {
  border-color: rgba(198, 128, 112, 0.34);
  background: linear-gradient(180deg, rgba(255, 246, 244, 0.98) 0%, rgba(252, 235, 232, 0.92) 100%);
}

.land-permit-event-item.is-active {
  border-color: #4b67bf;
  box-shadow: 0 6px 16px rgba(53, 82, 178, 0.18);
}

.land-permit-event-item.empty {
  grid-template-columns: 1fr;
  color: #667977;
  font-weight: 700;
  cursor: default;
  grid-column: 1 / -1;
  min-height: 0;
}

.land-permit-event-date,
.land-permit-event-count,
.land-permit-event-match {
  font-size: 0.72rem;
  font-weight: 800;
}

.land-permit-event-date,
.land-permit-event-count,
.land-permit-event-match,
.land-permit-event-status {
  min-width: 0;
  word-break: keep-all;
  overflow-wrap: anywhere;
}

.land-permit-event-date {
  color: #315959;
  line-height: 1.1;
}

.land-permit-event-count {
  color: #1f6d68;
}

.land-permit-event-match {
  color: #55606d;
  font-size: 0.65rem;
  line-height: 1.15;
  min-height: 1.15em;
}

.land-permit-event-status {
  color: #6f7f88;
  font-size: 0.6rem;
  font-weight: 800;
  line-height: 1.2;
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.land-permit-focus-card {
  display: grid;
  gap: 8px;
  margin: 0 0 10px;
  padding: 10px 11px;
  min-width: 0;
  border: 1px solid #eccda7;
  border-radius: 16px;
  background: linear-gradient(180deg, rgba(255, 251, 244, 0.98) 0%, rgba(255, 243, 225, 0.9) 100%);
}

.land-permit-focus-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 10px;
}

.land-permit-focus-grid.is-single-column {
  gap: 8px;
}

.land-permit-focus-panel {
  display: grid;
  gap: 7px;
  min-width: 0;
  padding: 9px 10px;
  border-radius: 14px;
  border: 1px solid rgba(224, 170, 108, 0.42);
  background: rgba(255, 255, 255, 0.82);
}

.land-permit-focus-panel.trade {
  border-color: rgba(225, 194, 146, 0.5);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.94) 0%, rgba(255, 251, 244, 0.9) 100%);
}

.land-permit-focus-panel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
}

.land-permit-focus-panel-head strong {
  color: #88503a;
  font-size: 0.78rem;
  font-weight: 900;
  line-height: 1.2;
}

.land-permit-focus-summary-line {
  color: #7a614f;
  font-size: 0.68rem;
  font-weight: 800;
  line-height: 1.35;
}

.land-permit-focus-summary-line.subtle {
  color: #8a735f;
  font-size: 0.64rem;
}

.land-permit-focus-badge {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 2px 8px;
  border-radius: 999px;
  border: 1px solid rgba(198, 150, 89, 0.45);
  background: rgba(255, 244, 221, 0.9);
  color: #9a5d1d;
  font-size: 0.6rem;
  font-weight: 900;
}

.land-permit-focus-badge.recent {
  border-color: rgba(60, 103, 203, 0.32);
  background: rgba(234, 242, 255, 0.92);
  color: #2d58b2;
}

.land-permit-focus-badge.subtle {
  border-color: rgba(179, 151, 122, 0.26);
  background: rgba(255, 255, 255, 0.88);
  color: #7c6554;
}

.land-permit-focus-trade-list {
  display: grid;
  gap: 6px;
  min-width: 0;
}

.land-permit-focus-trade-item {
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  display: grid;
  gap: 2px;
  min-width: 0;
  overflow: hidden;
  padding: 8px 9px;
  border-radius: 12px;
  border: 1px solid #d8e2ef;
  background: #ffffff;
  text-align: left;
  box-shadow: 0 3px 10px rgba(36, 57, 79, 0.06);
}

.land-permit-focus-trade-item.is-active {
  border-color: #4b70da;
  background: linear-gradient(180deg, rgba(242, 247, 255, 0.96) 0%, rgba(230, 239, 255, 0.9) 100%);
  box-shadow: 0 4px 12px rgba(68, 102, 196, 0.16);
}

.land-permit-focus-trade-item.is-recent {
  border-color: rgba(71, 120, 213, 0.28);
}

.land-permit-focus-trade-dates {
  color: #5c6f89;
  font-size: 0.64rem;
  font-weight: 900;
  line-height: 1.25;
  min-width: 0;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.land-permit-focus-trade-main {
  color: #294963;
  font-size: 0.72rem;
  font-weight: 900;
  line-height: 1.3;
  min-width: 0;
  overflow-wrap: anywhere;
  word-break: keep-all;
}

.land-permit-focus-trade-meta {
  color: #6f7b85;
  font-size: 0.62rem;
  font-weight: 800;
  min-width: 0;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.land-permit-focus-trade-empty {
  display: grid;
  place-items: center;
  min-height: 82px;
  border: 1px dashed #dbc6a7;
  border-radius: 12px;
  color: #8b755e;
  font-size: 0.68rem;
  font-weight: 800;
  background: rgba(255, 255, 255, 0.72);
}

.land-permit-older-card,
.land-permit-audit-card {
  display: grid;
  gap: 8px;
  margin-top: 12px;
  padding: 10px 11px;
  border-radius: 14px;
  border: 1px solid rgba(210, 221, 220, 0.92);
  background: rgba(255, 255, 255, 0.9);
}

.land-permit-older-head,
.land-permit-audit-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
  flex-wrap: wrap;
}

.land-permit-older-head strong,
.land-permit-audit-head strong {
  color: #375b5a;
  font-size: 0.76rem;
  font-weight: 900;
}

.land-permit-older-head span,
.land-permit-audit-head span {
  color: #697d7c;
  font-size: 0.63rem;
  font-weight: 800;
}

.land-permit-older-list {
  display: grid;
  gap: 6px;
}

.land-permit-older-item {
  display: grid;
  gap: 2px;
  padding: 8px 9px;
  border-radius: 11px;
  border: 1px solid rgba(222, 230, 229, 0.92);
  background: rgba(248, 251, 251, 0.9);
}

.land-permit-older-item strong {
  color: #405d5b;
  font-size: 0.68rem;
  font-weight: 900;
}

.land-permit-older-item span {
  color: #677877;
  font-size: 0.62rem;
  font-weight: 800;
  line-height: 1.3;
}

.land-permit-older-item.empty {
  color: #6b7b7a;
}

.land-permit-action-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 12px;
}

.land-permit-audit-chip {
  cursor: pointer;
}

.land-permit-audit-dialog {
  width: min(960px, calc(100vw - 32px));
  max-width: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  overflow: visible;
}

.land-permit-audit-dialog::backdrop {
  background: rgba(24, 36, 45, 0.28);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}

.land-permit-audit-card.popup {
  margin-top: 0;
  max-height: min(78vh, 760px);
  border-radius: 18px;
  box-shadow: 0 18px 48px rgba(27, 45, 57, 0.2);
}

.land-permit-audit-title-group {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.land-permit-audit-close {
  flex: 0 0 auto;
  min-height: 31px;
  padding: 0 11px;
  border: 1px solid rgba(198, 214, 213, 0.96);
  border-radius: 999px;
  background: rgba(247, 250, 249, 0.96);
  color: #486261;
  font-size: 0.68rem;
  font-weight: 900;
  cursor: pointer;
}

.land-permit-audit-close:hover,
.land-permit-audit-close:focus-visible {
  border-color: #b8cae9;
  background: rgba(239, 244, 255, 0.98);
  color: #3552b2;
}

.land-permit-audit-table-wrap {
  overflow-x: auto;
  max-height: min(62vh, 560px);
}

.land-permit-audit-table {
  width: 100%;
  border-collapse: collapse;
  min-width: 620px;
}

.land-permit-audit-table th,
.land-permit-audit-table td {
  padding: 7px 8px;
  border-top: 1px solid rgba(222, 230, 229, 0.92);
  text-align: left;
  vertical-align: top;
  font-size: 0.62rem;
  line-height: 1.3;
}

.land-permit-audit-table th {
  color: #536868;
  font-weight: 900;
  background: rgba(247, 250, 249, 0.94);
}

.land-permit-audit-table td {
  color: #5b6d6c;
  font-weight: 800;
}

body.land-permit-audit-popup-open {
  overflow: hidden;
}

.sale-chart-panel {
  margin-top: 8px;
  border: 1px solid #d3e3df;
  border-radius: 12px;
  padding: 10px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(247, 251, 249, 0.91) 100%);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.84),
    0 4px 11px rgba(16, 45, 50, 0.06);
}

.sale-chart-panel.real-price-panel {
  background: #fff8f1;
}

.sale-chart-axis {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 6px;
  padding: 0 2px 6px;
  color: #4b4335;
  font-size: 0.82rem;
  font-weight: 900;
}

.sale-chart-axis span {
  text-align: center;
}

.sale-chart-axis.row-axis {
  padding: 0 2px 4px;
  font-size: 0.86rem;
  border-bottom: 1px solid #ded2bf;
  margin-bottom: 2px;
}

.sale-chart-axis-wrap.merged {
  display: grid;
  grid-template-columns: minmax(122px, 154px) minmax(420px, 1.16fr) minmax(356px, 0.84fr);
  align-items: end;
  gap: 8px;
  padding-bottom: 6px;
}

.sale-axis-spacer {
  min-height: 1px;
}

.sale-chart-list {
  display: grid;
  gap: 7px;
}

.sale-chart-list .sale-chart-row.merged-row {
  border-top: 1px solid #c5b9a3;
  padding-top: 8px;
}

.sale-chart-list .sale-chart-row.merged-row:first-child {
  border-top: 0;
  padding-top: 0;
}

.sale-chart-row {
  display: grid;
  grid-template-columns: minmax(126px, 164px) minmax(170px, 0.86fr) minmax(280px, 1fr);
  align-items: center;
  gap: 8px;
}

.sale-chart-row.merged-row {
  grid-template-columns: minmax(122px, 154px) minmax(420px, 1.16fr) minmax(356px, 0.84fr);
  align-items: start;
}

.sale-chart-label {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 5px;
  border: 1px solid #c7d8d0;
  border-radius: 10px;
  background: linear-gradient(180deg, #ffffff 0%, #edf6f3 100%);
  color: #173533;
  text-align: left;
  font-size: 0.84rem;
  font-weight: 800;
  padding: 7px 10px;
  box-shadow: 0 6px 14px rgba(18, 41, 35, 0.08);
}

.sale-chart-label-main {
  font-size: 1rem;
  font-weight: 900;
  line-height: 1.2;
  color: #18322f;
}

.sale-chart-label-meta {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 4px;
  flex-wrap: wrap;
}

.sale-chart-label-pyeong {
  color: #21455e;
  font-size: 0.78rem;
  font-weight: 900;
  line-height: 1.15;
  border: 1px solid #c0d2e8;
  border-radius: 999px;
  background: #eaf3ff;
  padding: 2px 7px;
}

.sale-chart-label-sub {
  color: #735718;
  font-size: 0.7rem;
  font-weight: 800;
  line-height: 1.15;
  border: 1px solid #dcc791;
  border-radius: 999px;
  padding: 2px 7px;
  background: #f5ebc9;
}

.sale-chart-label.active .sale-chart-label-sub {
  color: rgba(255, 255, 255, 0.92);
  border-color: rgba(255, 255, 255, 0.42);
  background: rgba(255, 255, 255, 0.14);
}

.sale-chart-label.active .sale-chart-label-pyeong {
  color: rgba(255, 255, 255, 0.9);
}

.sale-chart-label:hover {
  background: linear-gradient(180deg, #f7fcfa 0%, #e5f2ee 100%);
}

.sale-chart-label.active {
  background: var(--primary);
  border-color: var(--primary);
  color: #fff;
}

.sale-chart-track {
  width: 100%;
  min-width: 0;
  position: relative;
  height: 20px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background:
    linear-gradient(90deg, #fbf8f1 0%, #f7f3ea 100%);
  overflow: hidden;
}

.merged-track-stack {
  display: grid;
  gap: 6px;
  align-content: start;
  align-self: start;
}

/* P0-1: 타입별 결론 카드(핵심 KPI) */
.merged-kpi-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 6px;
}

.merged-kpi-card {
  border: 1px solid #ddd2bf;
  border-radius: 8px;
  background: #fffdfa;
  padding: 5px 7px 6px;
  min-width: 0;
}

.merged-kpi-card.ask {
  border-color: #b7d3c3;
}

.merged-kpi-card.real {
  border-color: #ecd2b7;
}

.merged-kpi-card.gap {
  border-color: #d8c8b2;
}

.merged-kpi-card.fresh {
  border-color: #d7cfbf;
}

.merged-kpi-label {
  display: block;
  color: #7d7568;
  font-size: 0.63rem;
  font-weight: 800;
  line-height: 1.2;
}

.merged-kpi-value {
  display: block;
  margin-top: 1px;
  color: #1e1a14;
  font-size: 0.77rem;
  font-weight: 900;
  line-height: 1.25;
}

.merged-kpi-value.down {
  color: #1e4ec7;
}

.merged-kpi-value.up {
  color: #bd3a32;
}

.merged-kpi-value.same {
  color: #6d6659;
}

.merged-kpi-sub {
  display: block;
  margin-top: 1px;
  color: #8b8376;
  font-size: 0.62rem;
  font-weight: 700;
  line-height: 1.2;
}

.deal-score-overview-panel {
  margin: 8px 0 10px;
  border: 1px solid #d7d0c1;
  border-radius: 10px;
  background: linear-gradient(180deg, #fffdf8 0%, #f8f4eb 100%);
  padding: 8px;
  display: grid;
  gap: 7px;
}

.deal-score-overview-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
}

.deal-score-overview-head strong {
  color: #3f3628;
  font-size: 0.79rem;
  font-weight: 900;
}

.deal-score-overview-head span {
  color: #6b6255;
  font-size: 0.67rem;
  font-weight: 800;
}

.deal-score-overview-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(116px, 1fr));
  gap: 8px;
}

.deal-score-overview-item {
  appearance: none;
  -webkit-appearance: none;
  border: 1px solid #d8cfbf;
  border-radius: 10px;
  background: #ffffff;
  padding: 10px 10px 11px;
  display: grid;
  place-items: center;
  text-align: center;
  cursor: pointer;
  min-width: 0;
  transition: border-color 0.14s ease, box-shadow 0.14s ease, transform 0.14s ease;
}

.deal-score-overview-content {
  width: min(100%, 92px);
  max-width: 92px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  text-align: center;
  margin: 0 auto;
  padding-inline: 4px;
  box-sizing: border-box;
}

.deal-score-overview-item:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 10px rgba(42, 32, 19, 0.12);
}

.deal-score-overview-item:focus-visible {
  outline: 2px solid #2c5ed8;
  outline-offset: 1px;
}

.deal-score-overview-item.active {
  border-width: 2px;
  box-shadow: 0 0 0 2px rgba(43, 93, 216, 0.16);
}

.deal-score-overview-price {
  display: block;
  width: 92px;
  max-width: 100%;
  margin: 0 auto;
  color: #3d3428;
  font-size: 1rem;
  font-weight: 900;
  line-height: 1.05;
  text-align: center;
  font-variant-numeric: tabular-nums;
}

.deal-score-overview-type {
  display: block;
  width: 92px;
  max-width: 100%;
  margin: 0 auto;
  color: #5d5448;
  font-size: 0.78rem;
  font-weight: 900;
  line-height: 1.15;
  white-space: normal;
  overflow: hidden;
  text-overflow: ellipsis;
  word-break: keep-all;
  text-align: center;
}

.deal-score-overview-stale {
  display: block;
  width: 100%;
  color: #7b6f63;
  font-size: 0.62rem;
  font-weight: 800;
  line-height: 1.25;
  text-align: center;
  white-space: normal;
}

.deal-score-overview-mini {
  --mini-accent: #8a7c4f;
  position: relative;
  width: 86px;
  height: 64px;
  display: block;
  flex: 0 0 auto;
  margin-inline: auto;
}

.deal-score-overview-mini svg {
  display: block;
  width: 100%;
  height: 100%;
}

.deal-score-overview-mini-track {
  fill: none;
  stroke: #d9dde6;
  stroke-width: 6;
  stroke-linecap: round;
}

.deal-score-overview-mini-progress {
  fill: none;
  stroke: var(--mini-accent);
  stroke-width: 6;
  stroke-linecap: round;
  transition: stroke-dasharray 0.2s ease, stroke 0.2s ease;
}

.deal-score-overview-mini-stack {
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  display: grid;
  gap: 3px;
  justify-items: center;
  min-width: 0;
  width: max-content;
  max-width: 100%;
  text-align: center;
}

.deal-score-overview-mini-value {
  color: #2d333e;
  font-size: 1.45rem;
  font-weight: 900;
  line-height: 1;
  letter-spacing: -0.03em;
  font-variant-numeric: tabular-nums;
}

.deal-score-overview-mini-grade {
  color: #494235;
  font-size: 0.76rem;
  font-weight: 900;
  line-height: 1;
}

.deal-score-overview-guard {
  margin-top: -2px;
}

.deal-score-overview-mini.band-expensive {
  --mini-accent: #b94b42;
}

.deal-score-overview-mini.band-watch {
  --mini-accent: #a4742f;
}

.deal-score-overview-mini.band-fair {
  --mini-accent: #847043;
}

.deal-score-overview-mini.band-good {
  --mini-accent: #2a855a;
}

.deal-score-overview-mini.band-bargain {
  --mini-accent: #1c7664;
}

.deal-score-overview-item.band-expensive {
  border-color: #e5c6c3;
  background: #fff6f5;
}

.deal-score-overview-item.band-expensive .deal-score-overview-price,
.deal-score-overview-item.band-expensive .deal-score-overview-type,
.deal-score-overview-item.band-expensive .deal-score-overview-mini-value,
.deal-score-overview-item.band-expensive .deal-score-overview-mini-grade {
  color: #b94b42;
}

.deal-score-overview-item.band-watch {
  border-color: #e6d5b9;
  background: #fff8ec;
}

.deal-score-overview-item.band-watch .deal-score-overview-price,
.deal-score-overview-item.band-watch .deal-score-overview-type,
.deal-score-overview-item.band-watch .deal-score-overview-mini-value,
.deal-score-overview-item.band-watch .deal-score-overview-mini-grade {
  color: #a4742f;
}

.deal-score-overview-item.band-fair {
  border-color: #dfd5b8;
  background: #fbf8ec;
}

.deal-score-overview-item.band-fair .deal-score-overview-price,
.deal-score-overview-item.band-fair .deal-score-overview-type,
.deal-score-overview-item.band-fair .deal-score-overview-mini-value,
.deal-score-overview-item.band-fair .deal-score-overview-mini-grade {
  color: #847043;
}

.deal-score-overview-item.band-good {
  border-color: #c7decf;
  background: #f3fbf5;
}

.deal-score-overview-item.band-good .deal-score-overview-price,
.deal-score-overview-item.band-good .deal-score-overview-type,
.deal-score-overview-item.band-good .deal-score-overview-mini-value,
.deal-score-overview-item.band-good .deal-score-overview-mini-grade {
  color: #2a855a;
}

.deal-score-overview-item.band-bargain {
  border-color: #bfe0d6;
  background: #eef9f5;
}

.deal-score-overview-item.band-bargain .deal-score-overview-price,
.deal-score-overview-item.band-bargain .deal-score-overview-type,
.deal-score-overview-item.band-bargain .deal-score-overview-mini-value,
.deal-score-overview-item.band-bargain .deal-score-overview-mini-grade {
  color: #1c7664;
}

.sale-chart-row.merged-row.deal-row-focus {
  border-color: #9dc8bd;
  box-shadow: 0 0 0 2px rgba(63, 145, 127, 0.2);
}

.deal-summary {
  border: 1px solid #d8ceb9;
  border-radius: 9px;
  background: #fffdfa;
  padding: 8px 9px;
  display: grid;
  gap: 5px;
}

.deal-summary-layout {
  display: grid;
  grid-template-columns: 166px minmax(0, 1fr);
  align-items: start;
  gap: 9px;
}

.deal-summary-main-pane {
  display: grid;
  gap: 5px;
  min-width: 0;
}

.deal-score-intuitive {
  --accent: #7c60e3;
  border: 1px solid #d9d4eb;
  border-radius: 12px;
  background: linear-gradient(180deg, #ffffff 0%, #f7f5ff 100%);
  padding: 10px 7px 9px;
  display: grid;
  gap: 5px;
  align-content: start;
  justify-items: center;
  min-height: 118px;
}

.deal-score-intuitive-gauge {
  position: relative;
  width: 128px;
  height: 74px;
}

.deal-score-intuitive-gauge svg {
  display: block;
  width: 100%;
  height: 100%;
}

.deal-score-intuitive-track {
  fill: none;
  stroke: #e4e7ee;
  stroke-width: 11;
  stroke-linecap: round;
}

.deal-score-intuitive-progress {
  fill: none;
  stroke: var(--accent);
  stroke-width: 11;
  stroke-linecap: round;
  transition: stroke-dasharray 0.18s ease, stroke 0.18s ease;
}

.deal-score-intuitive-band {
  margin: 0;
  color: #5f5969;
  font-size: 0.8rem;
  font-weight: 900;
  line-height: 1.15;
}

.deal-score-intuitive-score {
  margin: -2px 0 0;
  color: #2f3340;
  font-size: 1.38rem;
  font-weight: 900;
  letter-spacing: -0.02em;
  line-height: 1;
}

.deal-score-intuitive.band-expensive .deal-score-intuitive-score,
.deal-score-intuitive.band-expensive .deal-score-intuitive-band {
  color: #b94d45;
}

.deal-score-intuitive.band-watch .deal-score-intuitive-score,
.deal-score-intuitive.band-watch .deal-score-intuitive-band {
  color: #9c712f;
}

.deal-score-intuitive.band-fair .deal-score-intuitive-score,
.deal-score-intuitive.band-fair .deal-score-intuitive-band {
  color: #7c6c42;
}

.deal-score-intuitive.band-good .deal-score-intuitive-score,
.deal-score-intuitive.band-good .deal-score-intuitive-band {
  color: #2b865a;
}

.deal-score-intuitive.band-bargain .deal-score-intuitive-score,
.deal-score-intuitive.band-bargain .deal-score-intuitive-band {
  color: #1d7766;
}

.deal-score-intuitive.band-expensive {
  --accent: #c94f4f;
}

.deal-score-intuitive.band-watch {
  --accent: #b9843f;
}

.deal-score-intuitive.band-fair {
  --accent: #8e7f53;
}

.deal-score-intuitive.band-good {
  --accent: #2f8d60;
}

.deal-score-intuitive.band-bargain {
  --accent: #1f7e6d;
}

.deal-score-intuitive-progress.band-expensive {
  stroke: #c94f4f;
}

.deal-score-intuitive-progress.band-watch {
  stroke: #b9843f;
}

.deal-score-intuitive-progress.band-fair {
  stroke: #8e7f53;
}

.deal-score-intuitive-progress.band-good {
  stroke: #2f8d60;
}

.deal-score-intuitive-progress.band-bargain {
  stroke: #1f7e6d;
}

.deal-summary-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
  flex-wrap: wrap;
}

.market-signal-chip-strip {
  display: flex;
  align-items: center;
  gap: 4px;
  flex-wrap: wrap;
}

.market-signal-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 22px;
  padding: 3px 8px;
  border-radius: 999px;
  border: 1px solid rgba(194, 205, 200, 0.92);
  background: rgba(248, 250, 247, 0.96);
  color: #55665e;
  font-size: 0.63rem;
  font-weight: 900;
  line-height: 1;
  letter-spacing: -0.01em;
  white-space: nowrap;
}

.market-signal-chip.is-up {
  border-color: rgba(236, 173, 173, 0.94);
  background: rgba(255, 241, 241, 0.98);
  color: #b45454;
}

.market-signal-chip.is-down {
  border-color: rgba(157, 191, 241, 0.96);
  background: rgba(237, 244, 255, 0.98);
  color: #2a61b4;
}

.market-signal-chip.is-flat {
  border-color: rgba(207, 199, 173, 0.92);
  background: rgba(250, 246, 234, 0.98);
  color: #7d6a3c;
}

.market-signal-chip.is-hold {
  border-color: rgba(203, 211, 219, 0.96);
  background: rgba(244, 247, 250, 0.98);
  color: #6e7d89;
}

.market-signal-chip.is-cheap {
  border-color: rgba(149, 204, 179, 0.94);
  background: rgba(237, 249, 243, 0.98);
  color: #1f7a5b;
}

.market-signal-chip.is-expensive {
  border-color: rgba(236, 194, 158, 0.94);
  background: rgba(255, 244, 236, 0.98);
  color: #a8612a;
}

.market-signal-chip.is-same {
  border-color: rgba(205, 212, 186, 0.94);
  background: rgba(246, 249, 238, 0.98);
  color: #67754e;
}

.deal-summary-signal-strip {
  margin-top: -1px;
}

.deal-summary-signal-chip {
  font-size: 0.66rem;
}

.deal-score-help-anchor {
  position: relative;
  display: inline-flex;
  align-items: center;
  margin-left: 2px;
}

.deal-score-meaning-line {
  margin: 0;
  color: #4f493f;
  font-size: 0.67rem;
  font-weight: 800;
  line-height: 1.24;
}

.deal-score-help {
  border: 1px solid #d5cab5;
  border-radius: 999px;
  background: #fff;
  color: #645d50;
  font-size: 0.62rem;
  font-weight: 800;
  padding: 2px 8px;
  line-height: 1.2;
  white-space: nowrap;
}

.deal-score-help-anchor .deal-score-popover {
  top: calc(100% + 4px);
  right: 0;
  left: auto;
}

.deal-score-help[aria-expanded="true"] {
  border-color: #c2b39b;
  background: #f8f2e9;
}

.deal-score-gauge-wrap {
  display: grid;
  gap: 6px;
}

.deal-score-gauge {
  position: relative;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  height: 14px;
  border: 1px solid #d6ccb8;
  border-radius: 999px;
  overflow: hidden;
  background: #f6f1e7;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.78);
}

.deal-score-seg {
  position: relative;
  background: #f4eee1;
  border-right: 1px solid #ddd2bf;
  transition: filter 0.15s ease, box-shadow 0.15s ease, opacity 0.15s ease;
}

.deal-score-seg:last-child {
  border-right: 0;
}

.deal-score-seg.band-expensive {
  background: linear-gradient(180deg, #f9d6d6 0%, #f3bcbc 100%);
}

.deal-score-seg.band-watch {
  background: linear-gradient(180deg, #f8e7cc 0%, #f2d8ad 100%);
}

.deal-score-seg.band-fair {
  background: linear-gradient(180deg, #f5efd6 0%, #ece1bf 100%);
}

.deal-score-seg.band-good {
  background: linear-gradient(180deg, #dff1db 0%, #c8e6c2 100%);
}

.deal-score-seg.band-bargain {
  background: linear-gradient(180deg, #cdebd8 0%, #b5dfc7 100%);
}

.deal-score-seg.is-active {
  filter: saturate(1.2) brightness(0.96);
  z-index: 2;
}

.deal-score-seg.is-active::after {
  content: "";
  position: absolute;
  inset: 1px;
  border: 1px solid rgba(45, 38, 27, 0.35);
  border-radius: 999px;
}

.deal-score-marker-line {
  position: absolute;
  top: -6px;
  bottom: -6px;
  width: 2px;
  border-radius: 2px;
  background: #3c6551;
  transform: translateX(-50%);
  pointer-events: none;
  z-index: 4;
  opacity: 0.95;
}

.deal-score-marker {
  position: absolute;
  top: 50%;
  width: 14px;
  height: 14px;
  border-radius: 999px;
  border: 2px solid #ffffff;
  background: #3c6551;
  box-shadow: 0 0 0 1px rgba(43, 37, 27, 0.24), 0 4px 8px rgba(31, 22, 13, 0.24);
  transform: translate(-50%, -50%);
  pointer-events: none;
  z-index: 5;
}

.deal-score-marker-line.band-expensive,
.deal-score-marker.band-expensive,
.deal-score-marker-badge.band-expensive {
  background: #c64d4d;
}

.deal-score-marker-line.band-watch,
.deal-score-marker.band-watch,
.deal-score-marker-badge.band-watch {
  background: #b7853f;
}

.deal-score-marker-line.band-fair,
.deal-score-marker.band-fair,
.deal-score-marker-badge.band-fair {
  background: #8a7c4f;
}

.deal-score-marker-line.band-good,
.deal-score-marker.band-good,
.deal-score-marker-badge.band-good {
  background: #2d8b5f;
}

.deal-score-marker-line.band-bargain,
.deal-score-marker.band-bargain,
.deal-score-marker-badge.band-bargain {
  background: #1b7766;
}

.deal-score-marker-meta {
  position: relative;
  height: 18px;
}

.deal-score-marker-badge {
  position: absolute;
  top: 0;
  transform: translateX(-50%);
  color: #ffffff;
  font-size: 0.58rem;
  font-weight: 900;
  letter-spacing: 0;
  line-height: 1;
  padding: 4px 7px 3px;
  border-radius: 999px;
  box-shadow: 0 4px 10px rgba(34, 24, 15, 0.22);
  white-space: nowrap;
  pointer-events: none;
}

.deal-score-seg-labels {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  color: #837a6a;
  font-size: 0.61rem;
  font-weight: 800;
  line-height: 1.1;
  text-align: center;
}

.deal-score-ticks {
  position: relative;
  height: 13px;
}

.deal-score-tick {
  position: absolute;
  top: 0;
  transform: translateX(-50%);
  color: #8e826f;
  font-size: 0.58rem;
  font-weight: 800;
  line-height: 1;
}

.deal-score-tick::before {
  content: "";
  position: absolute;
  top: -5px;
  left: 50%;
  width: 1px;
  height: 4px;
  transform: translateX(-50%);
  background: #cfc4af;
}

.deal-score-popover {
  position: absolute;
  top: calc(100% + 4px);
  right: 0;
  z-index: 90;
  width: min(92vw, 360px);
  max-width: 360px;
  max-height: min(72vh, 460px);
  border: 1px solid #d8ccb7;
  border-radius: 10px;
  background: #fffdf9;
  box-shadow: 0 8px 24px rgba(35, 25, 12, 0.18);
  padding: 8px;
  overflow: auto;
  overscroll-behavior: contain;
}

.deal-score-popover.is-hidden {
  display: none;
}

.deal-score-popover-body {
  display: grid;
  gap: 6px;
}

.deal-score-popover-desc {
  margin: 0;
  color: #4f493e;
  font-size: 0.62rem;
  font-weight: 700;
  line-height: 1.3;
}

.deal-score-popover table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
  font-size: 0.6rem;
}

.deal-score-popover th,
.deal-score-popover td {
  border-bottom: 1px solid #ece2d2;
  padding: 4px 5px;
  color: #564f42;
  text-align: left;
  vertical-align: top;
  word-break: keep-all;
}

.deal-score-popover th:nth-child(1),
.deal-score-popover td:nth-child(1) {
  width: 28%;
}

.deal-score-popover th:nth-child(2),
.deal-score-popover td:nth-child(2) {
  width: 36%;
}

.deal-score-popover th {
  color: #6b6255;
  font-weight: 800;
  background: #fbf6ee;
}

.deal-score-popover tbody tr:last-child td {
  border-bottom: 0;
}

.deal-score-popover .is-active-row td {
  background: #f4ecde;
  color: #3f3a31;
  font-weight: 800;
}

.deal-summary-main {
  display: flex;
  align-items: baseline;
  gap: 6px;
  flex-wrap: wrap;
  min-width: 0;
}

.deal-score-label {
  color: #7f786d;
  font-size: 0.64rem;
  font-weight: 800;
}

.deal-score {
  color: #18140f;
  font-size: 1.27rem;
  font-weight: 900;
  line-height: 1;
}

.deal-grade {
  color: #2a261f;
  font-size: 0.85rem;
  font-weight: 900;
}

.deal-review-guard-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #d6cec0;
  border-radius: 999px;
  background: #fffaf2;
  color: #655d50;
  font-size: 0.61rem;
  font-weight: 900;
  line-height: 1;
  padding: 3px 7px 2px;
  white-space: nowrap;
}

.deal-review-guard-badge.is-weak {
  border-color: #e0d2a8;
  background: #fff6dd;
  color: #8e6b19;
}

.deal-review-guard-badge.is-hold {
  border-color: #e3c4bc;
  background: #fff1ed;
  color: #a04b3f;
}

.deal-review-guard-badge.is-compact,
.deal-review-guard-badge.is-inline-compact {
  font-size: 0.54rem;
  padding: 2px 5px 1px;
}

.deal-review-guard-badge.is-placeholder {
  visibility: hidden;
  pointer-events: none;
}

.deal-review-guard-note {
  margin: 0;
  padding: 4px 7px;
  border: 1px dashed #d8cec0;
  border-radius: 7px;
  background: #fff9f1;
  color: #6a6153;
  font-size: 0.64rem;
  font-weight: 900;
  line-height: 1.28;
}

.deal-review-guard-note.is-weak {
  border-color: #e1d0a2;
  background: #fff6df;
  color: #8c6618;
}

.deal-review-guard-note.is-hold {
  border-color: #e2c5be;
  background: #fff0eb;
  color: #9a493d;
}

.deal-confidence {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border: 1px solid #dbd1bf;
  border-radius: 999px;
  padding: 3px 8px;
  background: #fff;
  min-height: 28px;
}

.deal-confidence-label {
  color: #686154;
  font-size: 0.67rem;
  font-weight: 800;
  white-space: nowrap;
}

.confidence-bars {
  display: inline-flex;
  align-items: center;
  gap: 2px;
}

.confidence-bars .bar {
  width: 10px;
  height: 5px;
  border-radius: 999px;
  background: #d9d3c8;
}

.confidence-bars .bar.on {
  background: #859c8e;
}

.deal-confidence.high .confidence-bars .bar.on {
  background: #2f7a4f;
}

.deal-confidence.mid .confidence-bars .bar.on {
  background: #9b7330;
}

.deal-confidence.low .confidence-bars .bar.on {
  background: #b75a47;
}

.deal-quick-summary {
  display: grid;
  gap: 4px;
}

.deal-interpretation {
  margin: 0;
  padding: 6px 8px;
  border: 1px solid #cddceb;
  border-radius: 7px;
  background: #eef6ff;
  color: #233f5e;
  font-size: 0.69rem;
  font-weight: 900;
  line-height: 1.34;
}

.deal-conclusion {
  margin: 0;
  padding: 5px 7px;
  border: 1px solid #e2d6c2;
  border-radius: 7px;
  background: #fbf7ee;
  color: #3f3728;
  font-size: 0.7rem;
  font-weight: 900;
  line-height: 1.3;
}

.deal-reasons-short {
  margin: 0;
  padding-left: 0;
  list-style: none;
  display: grid;
  gap: 3px;
  color: #5f594d;
  font-size: 0.68rem;
  font-weight: 800;
  line-height: 1.28;
}

.deal-reasons-short li {
  margin: 0;
}

.deal-key-reasons li {
  color: #5f584c;
}

.deal-transitions {
  display: grid;
  gap: 3px;
}

.deal-transition {
  color: #5e584d;
  font-size: 0.68rem;
  font-weight: 800;
  line-height: 1.22;
}

.deal-transition.up {
  color: #225d3d;
}

.deal-transition.down {
  color: #914726;
}

.deal-transition.disabled {
  color: #928a7d;
}

.deal-whatif {
  display: grid;
  gap: 3px;
}

.deal-whatif label {
  color: #6a6358;
  font-size: 0.66rem;
  font-weight: 800;
}

.deal-whatif-controls {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  grid-template-areas: "slider input reset";
  align-items: center;
  gap: 6px;
}

.deal-whatif-controls input[type="range"] {
  grid-area: slider;
  width: 100%;
  margin: 0;
}

.deal-whatif-direct {
  grid-area: input;
  display: inline-flex;
  align-items: center;
  gap: 3px;
  padding: 3px 6px;
  border: 1px solid #c7d7d0;
  border-radius: 9px;
  background: #f8fcfa;
}

.deal-whatif-direct-label {
  color: #5b655f;
  font-size: 0.58rem;
  font-weight: 800;
}

.deal-whatif-direct input.deal-whatif-input {
  width: 54px;
  min-width: 54px;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: #1e2b26;
  font-size: 0.7rem;
  font-weight: 900;
  text-align: right;
  line-height: 1.1;
  padding: 0;
  margin: 0;
  box-shadow: none;
}

.deal-whatif-direct input.deal-whatif-input:focus,
.deal-whatif-direct input.deal-whatif-input:focus-visible {
  outline: none;
  box-shadow: none;
  border-color: transparent;
  background: transparent;
}

.deal-whatif-input-unit {
  color: #5b655f;
  font-size: 0.63rem;
  font-weight: 800;
}

.deal-whatif-reset.inline-btn.secondary {
  grid-area: reset;
  padding: 4px 8px;
  font-size: 0.69rem;
}

.deal-more-toggle {
  justify-self: start;
  border: 1px solid #d0c4ae;
  border-radius: 999px;
  background: #fff;
  color: #615a4f;
  font-size: 0.67rem;
  font-weight: 800;
  line-height: 1;
  padding: 4px 9px;
}

.deal-more {
  border-top: 1px dashed #e2d7c6;
  padding-top: 5px;
}

.deal-more.is-hidden {
  display: none;
}

.deal-more .deal-reasons-short {
  margin-bottom: 4px;
}

.deal-transitions-detail {
  margin-bottom: 4px;
}

.deal-detail-list {
  margin: 0;
  padding-left: 16px;
  color: #685f53;
  font-size: 0.66rem;
  font-weight: 700;
  line-height: 1.25;
  display: grid;
  gap: 3px;
}

.deal-detail-list-extra {
  margin-top: 4px;
  border-top: 1px dashed #e2d7c6;
  padding-top: 4px;
  color: #6f6759;
}

.deal-summary.bargain .deal-score,
.deal-summary.bargain .deal-grade {
  color: #1b4fc3;
}

.deal-summary.cheap .deal-score,
.deal-summary.cheap .deal-grade {
  color: #2f67c5;
}

.deal-summary.fair .deal-score,
.deal-summary.fair .deal-grade {
  color: #2f6f3e;
}

.deal-summary.watch .deal-score,
.deal-summary.watch .deal-grade {
  color: #8a6210;
}

.deal-summary.expensive .deal-score,
.deal-summary.expensive .deal-grade {
  color: #b24a25;
}

.deal-summary.insufficient .deal-score,
.deal-summary.insufficient .deal-grade {
  color: #756f62;
}

.deal-summary.bargain .deal-conclusion,
.deal-summary.cheap .deal-conclusion {
  border-color: #c7dfd0;
  background: #eef7f1;
}

.deal-summary.watch .deal-conclusion,
.deal-summary.expensive .deal-conclusion {
  border-color: #e5ceb9;
  background: #fff3e9;
}

.merged-track-line {
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr);
  gap: 6px;
  align-items: center;
}

.merged-track-tag {
  font-size: 0.71rem;
  font-weight: 800;
  color: var(--muted);
}

.merged-track-tag.ask {
  color: #1f6e4f;
}

.merged-track-tag.real {
  color: #b76015;
}

.sale-chart-track.merged {
  height: 16px;
  overflow: visible;
}

.sale-chart-track.merged .sale-chart-range {
  top: 5px;
  height: 5px;
}

.sale-chart-track.merged .sale-chart-iqr {
  top: 3px;
  height: 10px;
}

.sale-chart-track.merged .sale-chart-median {
  top: 0;
  height: 16px;
}

.sale-chart-latest {
  position: absolute;
  top: 4px;
  width: 7px;
  height: 7px;
  margin-left: -3px;
  border-radius: 999px;
  border: 1px solid #fff;
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.08);
}

.sale-chart-latest.ask-track {
  background: #1e7a53;
}

.sale-chart-latest.real-track {
  background: #d8722a;
}

.sale-chart-track.empty-track {
  display: flex;
  align-items: center;
  justify-content: center;
}

.sale-track-empty {
  font-size: 0.7rem;
  color: #9a9383;
}

.sale-chart-range {
  position: absolute;
  top: 7px;
  height: 6px;
  border-radius: 999px;
  background: #c9d8ce;
}

.sale-chart-iqr {
  position: absolute;
  top: 4px;
  height: 12px;
  border-radius: 999px;
  background: #4f8a6f;
}

.sale-chart-median {
  position: absolute;
  top: 1px;
  width: 2px;
  height: 18px;
  margin-left: -1px;
  border-radius: 999px;
  background: #163f2f;
}

.sale-chart-track.real-track {
  background:
    linear-gradient(90deg, #fff6eb 0%, #fff2df 100%);
}

.sale-chart-range.real-range {
  background: #f2c9aa;
}

.sale-chart-iqr.real-iqr {
  background: #d8722a;
}

.sale-chart-median.real-median {
  background: #8a4515;
}

.sale-chart-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  font-size: 0.75rem;
  color: var(--muted);
}

.sale-chart-meta.merged-meta {
  align-content: flex-start;
  display: grid;
  gap: 4px;
}

.merged-side-head {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

.merged-side-head span {
  color: #9b9484;
  font-size: 0.7rem;
  font-weight: 800;
  border-bottom: 1px solid #d8ccba;
  padding-bottom: 3px;
}

.merged-side-ask-head {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 5px;
}

.side-mode-btn {
  border: 1px solid #d9cfbe;
  background: #fff;
  color: #7f7769;
  border-radius: 999px;
  padding: 2px 8px;
  font-size: 0.67rem;
  font-weight: 800;
  line-height: 1.2;
  cursor: pointer;
}

.side-mode-btn:hover {
  background: #f6f0e3;
}

.side-mode-btn.active {
  color: #174f3a;
  border-color: #91b39d;
  background: #e8f4ec;
}

.merged-meta-v2 {
  display: grid;
  grid-template-columns: minmax(146px, 0.52fr) minmax(276px, 1.08fr);
  gap: 8px;
}

.merged-meta-col {
  border: 1px solid #d9cfbe;
  border-radius: 8px;
  background: #fffdfa;
  padding: 6px 7px;
  min-width: 0;
}

.merged-meta-col.ask {
  padding-top: 1px;
}

.merged-meta-col-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 6px;
  margin-bottom: 4px;
  font-size: 0.71rem;
}

.merged-meta-col-head.ask-head {
  align-items: flex-start;
  gap: 4px;
  flex-wrap: nowrap;
  margin-bottom: 0;
}

.merged-meta-col-head.ask-head strong {
  white-space: nowrap;
  flex: 0 0 auto;
}

.merged-ask-controls {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 3px;
  flex-wrap: nowrap;
  margin-top: -1px;
  margin-left: auto;
  min-width: 0;
}

.merged-ask-controls em {
  color: #7a7264;
  font-size: 0.68rem;
  font-style: normal;
  font-weight: 800;
}

.ask-total-count-btn {
  appearance: none;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: #7a7264;
  font-size: 0.68rem;
  font-weight: 900;
  line-height: 1.2;
  padding: 2px 3px;
  cursor: pointer;
}

.ask-total-count-btn:hover {
  color: #174f3a;
  background: rgba(232, 244, 236, 0.82);
}

.ask-total-count-btn:focus-visible {
  outline: 2px solid rgba(23, 79, 58, 0.26);
  outline-offset: 2px;
}

.ask-limit-field {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  border: 1px solid #d9cfbe;
  border-radius: 999px;
  padding: 1px 6px;
  background: #fff;
  color: #7a7264;
  font-size: 0.63rem;
  font-weight: 800;
}

.ask-limit-field input {
  width: 44px;
  min-width: 44px;
  border: 0;
  outline: 0;
  background: transparent;
  color: #1f1b14;
  font-size: 0.68rem;
  font-weight: 900;
  text-align: right;
  padding: 0;
}

.merged-meta-col-head strong {
  color: var(--ink);
  font-weight: 900;
}

.merged-meta-col.real .merged-meta-col-head strong {
  color: #b76015;
}

.merged-meta-col.ask .merged-meta-col-head strong {
  color: #1f6e4f;
}

.merged-meta-col-head span {
  color: #8c8578;
  font-weight: 700;
}

.merged-meta-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 4px;
}

.merged-meta-col.real,
.merged-meta-col.ask {
  display: flex;
  flex-direction: column;
}

.merged-meta-col.real .merged-meta-list,
.merged-meta-col.ask .merged-meta-list {
  flex: 1 1 auto;
  min-height: 118px;
  height: clamp(118px, var(--meta-list-height, 208px), 236px);
  max-height: clamp(118px, var(--meta-list-height, 208px), 236px);
  overflow-y: auto;
  overflow-x: hidden;
  align-content: start;
  padding-right: 3px;
  scrollbar-gutter: stable;
}

.merged-ask-minihead {
  display: grid;
  grid-template-columns: minmax(0, 1.16fr) minmax(76px, 0.58fr) minmax(62px, 0.44fr) minmax(44px, 0.3fr);
  gap: 2px 3px;
  align-items: baseline;
  margin-bottom: 1px;
  color: #8c8578;
  font-size: 0.66rem;
  font-weight: 800;
  line-height: 1.15;
}

.merged-ask-minihead span:nth-child(3),
.merged-ask-minihead span:nth-child(4) {
  text-align: right;
}

.merged-real-minihead {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(64px, 0.5fr) minmax(44px, 0.34fr);
  gap: 2px 3px;
  align-items: baseline;
  margin-bottom: 1px;
  color: #8c8578;
  font-size: 0.66rem;
  font-weight: 800;
  line-height: 1.15;
}

.merged-real-minihead span:nth-child(2),
.merged-real-minihead span:nth-child(3) {
  text-align: right;
}

.merged-real-item {
  font-size: 0.69rem;
  line-height: 1.18;
}

.merged-real-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(64px, 0.5fr) minmax(44px, 0.34fr);
  gap: 2px 3px;
  align-items: center;
}

.merged-real-col {
  min-width: 0;
}

.merged-real-col.price {
  color: #2d2a23;
  font-weight: 800;
}

.merged-real-col.date,
.merged-real-col.floor {
  color: #7d7669;
  font-weight: 700;
  font-size: 0.67rem;
  text-align: right;
}

.merged-ask-item {
  font-size: 0.72rem;
  line-height: 1.18;
}

.merged-ask-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.02fr) minmax(90px, 0.7fr) minmax(62px, 0.42fr) minmax(44px, 0.28fr);
  gap: 2px 3px;
  align-items: baseline;
}

.merged-ask-col {
  min-width: 0;
}

.merged-ask-line {
  display: flex;
  align-items: baseline;
  flex-wrap: nowrap;
  gap: 1px;
  width: 100%;
  min-width: 0;
  overflow: hidden;
}

.merged-ask-col.price {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1px;
  min-width: 0;
  overflow: hidden;
}

.merged-ask-col.occupancy {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  min-height: 100%;
}

.merged-ask-col.regdate,
.merged-ask-col.floor {
  display: flex;
  align-items: baseline;
  justify-content: flex-end;
  font-size: 0.69rem;
  font-weight: 900;
  color: #1e1a14;
  white-space: nowrap;
}

.merged-ask-occupancy-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  max-width: 100%;
  padding: 2px 7px;
  border-radius: 999px;
  border: 1px solid transparent;
  font-size: 0.62rem;
  font-weight: 900;
  line-height: 1.05;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.merged-ask-occupancy-chip.tone-tenant {
  background: rgba(255, 248, 236, 0.92);
  border-color: #e3b35e;
  color: #a24f12;
}

.merged-ask-occupancy-chip.tone-owner {
  background: rgba(252, 235, 229, 0.94);
  border-color: #e0a088;
  color: #963f21;
}

.merged-ask-occupancy-chip.tone-consult {
  background: rgba(232, 242, 252, 0.96);
  border-color: #a8c6eb;
  color: #2a5e8d;
}

.merged-ask-occupancy-chip.tone-immediate {
  background: rgba(229, 246, 237, 0.95);
  border-color: #9dcdb0;
  color: #14603f;
}

.merged-ask-occupancy-chip.tone-dated {
  background: rgba(243, 239, 254, 0.94);
  border-color: #c5b8f0;
  color: #5b448f;
}

.merged-ask-occupancy-chip.tone-check,
.merged-ask-occupancy-chip.tone-none {
  background: rgba(243, 241, 236, 0.88);
  border-color: #d8d0c3;
  color: #746b5d;
}

.merged-ask-occupancy-empty {
  color: #8a8376;
  font-size: 0.66rem;
  font-weight: 700;
}

.merged-ask-date-main {
  color: #1e1a14;
  font-weight: 900;
  white-space: nowrap;
}

.merged-ask-floor-main {
  color: #1e1a14;
  font-weight: 900;
  white-space: nowrap;
}

.merged-ask-price {
  color: #1e1a14;
  font-weight: 900;
  text-decoration: none;
  white-space: nowrap;
  flex: 0 0 auto;
}

.merged-ask-price:hover {
  text-decoration: underline;
}

.merged-ask-price.no-link {
  color: #6f695c;
}

.merged-ask-line .price-delta {
  margin-left: 0;
  font-size: 0.61rem;
  font-weight: 900;
  line-height: 1.05;
  white-space: nowrap;
  flex: 0 1 auto;
  min-width: 0;
  overflow: visible;
  text-overflow: clip;
}

.merged-ask-line .price-delta.delta-none {
  color: #8a8376;
  font-weight: 700;
}

.merged-empty-item {
  color: #9a9383;
  font-size: 0.71rem;
  font-weight: 600;
}

.merged-meta-col-foot {
  margin-top: 5px;
  color: #8e8779;
  font-size: 0.68rem;
  font-weight: 700;
}

.merged-meta-col.real .merged-meta-col-foot {
  color: #b76015;
  font-weight: 900;
}

.merged-meta-head,
.merged-meta-row {
  display: grid;
  grid-template-columns: 34px 52px minmax(70px, 0.92fr) minmax(96px, 1.08fr) minmax(112px, 1.28fr);
  gap: 6px;
  align-items: center;
}

.merged-meta-head {
  color: #9b9484;
  font-size: 0.68rem;
  font-weight: 700;
}

.merged-meta-table {
  display: grid;
  gap: 1px;
}

.merged-meta-row {
  color: var(--muted);
  font-size: 0.76rem;
}

.merged-meta-row span {
  min-width: 0;
  white-space: nowrap;
  overflow: visible;
  text-overflow: clip;
}

.merged-meta-row span:nth-child(4),
.merged-meta-row span:nth-child(5) {
  white-space: normal;
  line-height: 1.12;
  word-break: keep-all;
}

.merged-meta-head span:nth-child(n + 2),
.merged-meta-row span:nth-child(n + 2) {
  text-align: right;
}

.merged-meta-row .kind {
  font-weight: 800;
  color: var(--ink);
}

.merged-meta-row .kind.ask {
  color: #1f6e4f;
}

.merged-meta-row .kind.real {
  color: #b76015;
}

.merged-price-main {
  color: var(--ink);
  font-weight: 700;
}

.price-delta {
  margin-left: 3px;
  font-size: 0.66rem;
  font-weight: 900;
  letter-spacing: -0.01em;
}

.price-delta.chart-tip[data-tip] {
  display: inline-flex;
  position: relative;
  cursor: help;
}

.price-delta.delta-up {
  color: #c1272d;
}

.price-delta.delta-down {
  color: #0f4bd3;
  animation: price-drop-blink 1.15s ease-in-out infinite;
}

.price-delta.delta-same {
  color: #666057;
  font-weight: 800;
}

.merged-meta-sub {
  color: #8f887a;
  font-size: 0.71rem;
}

.merged-meta-sub.placeholder {
  visibility: hidden;
}

.sale-chart-meta strong {
  color: var(--ink);
}

.chart-tip[data-tip] {
  cursor: help;
}

.chart-tip[data-tip]:hover::after,
.chart-tip[data-tip]:focus-visible::after {
  content: attr(data-tip);
  position: absolute;
  left: 50%;
  bottom: calc(100% + 8px);
  transform: translateX(-50%);
  white-space: nowrap;
  padding: 4px 7px;
  border-radius: 6px;
  background: #1f2a22;
  color: #fff;
  font-size: 0.69rem;
  font-weight: 600;
  z-index: 12;
}

.chart-tip[data-tip]:hover::before,
.chart-tip[data-tip]:focus-visible::before {
  content: "";
  position: absolute;
  left: 50%;
  bottom: calc(100% + 3px);
  width: 7px;
  height: 7px;
  margin-left: -4px;
  transform: rotate(45deg);
  background: #1f2a22;
  z-index: 11;
}

.sale-chart-discount.vs-real-lower {
  color: #1f4fbf;
  font-weight: 800;
  animation: price-drop-blink 1.15s ease-in-out infinite;
}

.sale-chart-discount.vs-real-higher {
  color: #c1272d;
  font-weight: 800;
}

.sale-chart-discount.vs-real-same {
  color: #6f6a5f;
  font-weight: 800;
}

.sale-chart-discount.vs-fallback {
  color: #8f887a;
  font-weight: 700;
}

.sale-chart-discount.placeholder {
  visibility: hidden;
}

.sale-chart-daychange {
  font-size: 0.72rem;
  line-height: 1.25;
  color: #8f887a;
  font-weight: 700;
  white-space: normal;
  word-break: keep-all;
}

.sale-chart-daychange.none {
  color: #8f887a;
  font-weight: 600;
}

.sale-chart-daychange.same {
  color: #64605a;
  font-weight: 800;
}

.sale-chart-daychange.rise {
  color: #c1272d;
  font-weight: 900;
}

.sale-chart-daychange.drop {
  color: #0f4bd3;
  font-weight: 900;
  animation: price-drop-blink 1.15s ease-in-out infinite;
}

.sale-chart-daychange.placeholder {
  visibility: hidden;
}

@keyframes price-drop-blink {
  0%,
  100% {
    opacity: 1;
  }
  50% {
    opacity: 0.35;
  }
}

@media (prefers-reduced-motion: reduce) {
  .sale-chart-daychange.drop,
  .price-delta.delta-down,
  .sale-chart-discount.vs-real-lower,
  .incremental-summary-list li.new-low strong,
  .hotdeal-cell.hot {
    animation: none;
  }
}

.merged-trend-dual {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin-top: 1px;
}

.merged-trend-panel {
  border: 1px solid #d7e3df;
  border-radius: 10px;
  background: linear-gradient(180deg, #fffefb 0%, #f8fbfa 100%);
  padding: 8px 9px 8px;
  margin-top: 0;
}

.merged-trend-panel.empty {
  background: #fffdf8;
}

.merged-trend-empty {
  margin-top: 2px;
  min-height: 120px;
  border-radius: 6px;
  border: 1px dashed #ddd1bd;
  display: grid;
  place-items: center;
  font-size: 0.78rem;
  color: #8d8577;
  font-weight: 700;
  background: linear-gradient(180deg, #fffefb 0%, #fbf6ec 100%);
}

.merged-trend-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 6px;
}

.merged-trend-head strong {
  color: #274440;
  font-size: 0.83rem;
  font-weight: 900;
}

.merged-trend-head span {
  color: #5f7873;
  font-size: 0.72rem;
  font-weight: 800;
}

.merged-trend-svg {
  width: 100%;
  height: 132px;
  display: block;
  background: linear-gradient(180deg, #fffefb 0%, #f8fbfa 100%);
  border-radius: 6px;
}

.merged-trend-svg.compare {
  width: min(100%, 760px);
  height: auto;
  aspect-ratio: 560 / 212;
}

.merged-trend-svg .grid {
  stroke: #e8dcc8;
  stroke-width: 1;
  shape-rendering: crispEdges;
}

.merged-trend-svg .grid.x {
  stroke-dasharray: 2 3;
}

.merged-trend-svg .axis-line {
  stroke: #c6b9a4;
  stroke-width: 1.2;
}

.merged-trend-svg .axis {
  fill: #63736f;
  font-size: 11.6px;
  font-weight: 800;
}

.merged-trend-svg.compare .axis.x {
  fill: #1c2523;
  font-size: 12.8px;
  font-weight: 900;
}

.merged-trend-svg .axis.y {
  text-anchor: end;
}

.merged-trend-svg .axis.x {
  text-anchor: middle;
}

.merged-trend-svg .axis.lane {
  text-anchor: end;
  font-size: 13.8px;
  font-weight: 900;
}

.merged-trend-svg .axis.lane.ask {
  fill: #1f7a53;
}

.merged-trend-svg .axis.lane.real {
  fill: #b76015;
}

.merged-trend-svg polyline {
  fill: none;
  stroke-width: 2.25;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.merged-trend-svg .ask-line {
  stroke: #1f7a53;
}

.merged-trend-svg .real-line {
  stroke: #d8722a;
}

.merged-trend-svg .trend-point {
  cursor: pointer;
  stroke: #fff;
  stroke-width: 1.2;
}

.merged-trend-svg .trend-point:focus {
  outline: none;
}

.merged-trend-svg .trend-point:focus-visible {
  stroke: #1f1b14;
  stroke-width: 1.4;
}

.merged-trend-svg .ask-dot {
  fill: #1f7a53;
}

.merged-trend-svg .real-dot {
  fill: #d8722a;
}

.merged-trend-svg .compare-lane {
  stroke-width: 1.5;
}

.merged-trend-svg .compare-lane.ask {
  stroke: #b8d6c6;
}

.merged-trend-svg .compare-lane.real {
  stroke: #efd8c0;
}

.merged-trend-svg .compare-ask-hist {
  fill: rgba(31, 122, 83, 0.16);
  stroke: rgba(31, 122, 83, 0.24);
  stroke-width: 0.6;
}

.merged-trend-svg .compare-real-iqr {
  fill: rgba(216, 134, 63, 0.1);
  stroke: rgba(187, 113, 45, 0.2);
  stroke-width: 0.8;
}

.merged-trend-svg .compare-ref-line {
  stroke-width: 1.85;
  stroke-dasharray: 5 3;
  opacity: 1;
  filter: drop-shadow(0 0 0.4px rgba(24, 18, 11, 0.24));
}

.merged-trend-svg .compare-ref-line.ask {
  stroke: #2d8661;
}

.merged-trend-svg .compare-ref-line.real {
  stroke: #bb6f2d;
}

.merged-trend-svg .compare-ref-line.min {
  stroke-width: 2.25;
}

.merged-trend-svg .compare-ref-line.median {
  stroke-dasharray: 2 3;
}

.merged-trend-svg .compare-ref-line.avg {
  stroke-dasharray: 7 5;
}

.merged-trend-svg .compare-offer-line {
  stroke: #2b5fd9;
  stroke-width: 2.2;
  stroke-dasharray: 5 3;
  opacity: 0.96;
  filter: drop-shadow(0 0 0.5px rgba(20, 34, 74, 0.24));
}

.merged-trend-svg .compare-offer-label {
  fill: #2b5fd9;
  font-size: 9.2px;
  font-weight: 900;
  paint-order: stroke;
  stroke: rgba(255, 255, 255, 0.96);
  stroke-width: 2.1px;
  dominant-baseline: middle;
}

.merged-trend-svg .compare-offer-label.is-shifted {
  font-size: 9px;
  letter-spacing: -0.01em;
}

.merged-trend-svg .compare-ref-label {
  font-size: 9.6px;
  font-weight: 900;
  dominant-baseline: middle;
  paint-order: stroke;
  stroke: rgba(255, 255, 255, 0.92);
  stroke-width: 2.3px;
  letter-spacing: -0.01em;
}

.merged-trend-svg .compare-ref-label.ask {
  fill: #1f6e4f;
}

.merged-trend-svg .compare-ref-label.real {
  fill: #a95712;
}

.merged-trend-svg .compare-point.ask {
  stroke: #ffffff;
}

.merged-trend-svg .compare-point.real {
  stroke: #ffffff;
}

.merged-trend-svg .compare-point.recent-7 {
  stroke: #1e1a14;
  stroke-width: 1.4;
}

.merged-trend-svg .compare-point.recent-top {
  stroke-width: 1.8;
}

.merged-trend-svg .compare-latest-line {
  stroke-width: 2.2;
  opacity: 0.9;
}

.merged-trend-svg .compare-latest-line.ask {
  stroke: #1f6e4f;
}

.merged-trend-svg .compare-latest-line.real {
  stroke: #a95712;
}

.merged-trend-svg .compare-latest-ring {
  fill: #ffffff;
  stroke-width: 2.6;
}

.merged-trend-svg .compare-latest-ring.ask {
  stroke: #1f6e4f;
}

.merged-trend-svg .compare-latest-ring.real {
  stroke: #a95712;
}

.merged-trend-svg .compare-latest-label {
  font-size: 10px;
  font-weight: 900;
  letter-spacing: -0.01em;
  paint-order: stroke;
  stroke: rgba(255, 255, 255, 0.94);
  stroke-width: 2.2px;
}

.merged-trend-svg .compare-latest-label.ask {
  fill: #145e43;
}

.merged-trend-svg .compare-latest-label.real {
  fill: #9f5519;
}

.merged-trend-static-labels {
  margin-top: 6px;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.merged-trend-static-labels .latest-static {
  display: inline-flex;
  align-items: center;
  border: 1px solid #d4e0de;
  border-radius: 999px;
  padding: 3px 9px;
  font-size: 0.73rem;
  font-weight: 800;
  background: #ffffff;
}

.merged-trend-static-labels .latest-static.real {
  color: #a95712;
  border-color: #e8cdb3;
  background: #fff7ef;
}

.merged-trend-static-labels .latest-static.ask {
  color: #1f6e4f;
  border-color: #bfdccf;
  background: #f2fbf5;
}

.merged-trend-hover {
  margin-top: 6px;
  min-height: 1.45em;
  color: #7b7366;
  font-size: 0.71rem;
  font-weight: 700;
  line-height: 1.34;
}

.merged-trend-hover.ask {
  color: #1f6e4f;
  font-weight: 800;
}

.merged-trend-hover.real {
  color: #b76015;
  font-weight: 800;
}

.merged-trend-legend {
  margin-top: 5px;
  display: grid;
  gap: 2px;
  font-size: 0.66rem;
  line-height: 1.25;
}

.merged-trend-legend .ask {
  color: #1f6e4f;
  font-weight: 800;
}

.merged-trend-legend .real {
  color: #b76015;
  font-weight: 800;
}

.merged-trend-legend .gap {
  color: #6e675a;
  font-weight: 700;
}

.merged-trend-legend .recency {
  color: #7c7568;
  font-weight: 700;
}

/* P1-4: 그래프 점 ↔ 우측 리스트 상호 강조 */
.merged-trend-svg .trend-point.is-highlight {
  stroke: #181511;
  stroke-width: 2.1;
  filter: drop-shadow(0 0 1px rgba(24, 21, 17, 0.34));
}

.merged-ask-item.is-highlight,
.merged-real-item.is-highlight {
  background: #f3eddf;
  border-radius: 6px;
  outline: 1px solid #cfbfa7;
  outline-offset: 0;
}

.sale-chart-empty {
  margin: 0;
  color: var(--muted);
  font-size: 0.84rem;
}

.sale-chart-note {
  margin: 6px 0 0;
  font-size: 0.77rem;
  color: var(--muted);
}

.inline-btn {
  padding: 6px 9px;
  font-size: 0.82rem;
}

.favorites-panel {
  --fav-accent-start: #3ab69a;
  --fav-accent-end: #2e9b83;
  --fav-accent-border: #278772;
  --fav-accent-soft-start: #eefaf5;
  --fav-accent-soft-end: #e3f3ed;
  --fav-accent-text: #1f5b4e;
  --view-accent-start: #5b94e4;
  --view-accent-end: #5a79d2;
  --view-accent-border: #4f6ac0;
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.favorites-panel-head {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 6px;
}

.favorites-panel-head-top {
  display: flex;
  align-items: center;
  gap: 10px;
}

.favorites-panel-head-actions {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-left: auto;
  flex: 0 0 auto;
}

.favorites-panel-head h2 {
  margin: 0;
  padding-bottom: 8px;
  border-bottom: 1px dashed #cfe2de;
  flex: 1 1 auto;
  min-width: 0;
}

.side-panel-filter-toggle {
  flex: 0 0 auto;
  min-width: 78px;
  border: 1px solid #bfd1d9;
  border-radius: 999px;
  background: linear-gradient(180deg, #ffffff 0%, #edf5fb 100%);
  color: #315070;
  font-size: 0.72rem;
  font-weight: 900;
  padding: 6px 11px;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.85);
}

.side-panel-filter-toggle:hover {
  border-color: #9fbad1;
  color: #203d5d;
}

.side-board-controls {
  margin: 4px 0 2px;
  border: 1px solid #ccddd9;
  border-radius: 13px;
  background: var(--surface-glass-strong);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.84),
    0 5px 12px rgba(18, 41, 43, 0.07);
  padding: 9px;
}

.side-board-controls.is-collapsed {
  display: none;
}

.side-board-row {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 8px;
  align-items: center;
}

.side-board-sort-controls {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 32px 32px;
  gap: 6px;
  align-items: center;
}

.side-board-sort-controls select {
  width: 100%;
  min-width: 0;
}

.side-board-row label {
  margin: 0;
  color: #546564;
  font-size: 0.74rem;
  font-weight: 800;
  white-space: nowrap;
}

.side-board-row select,
.side-board-row input {
  margin: 0;
  width: 100%;
  min-width: 0;
  border: 1px solid #bfd5d1;
  border-radius: 8px;
  background: linear-gradient(180deg, #ffffff 0%, #f6fbfa 100%);
  color: #203232;
  padding: 6px 8px;
  font-size: 0.78rem;
  line-height: 1.35;
}

.side-board-row select:disabled {
  background: #edf3f2;
  color: #8a9a98;
  border-color: #cfdddb;
  cursor: not-allowed;
}

.side-board-row-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px;
  margin-top: 6px;
}

.side-board-row-grid button {
  padding: 6px 8px;
  font-size: 0.76rem;
}

.side-sort-dir-btn {
  width: 32px;
  height: 32px;
  border: 1px solid #bfd5d1;
  border-radius: 9px;
  background: linear-gradient(180deg, #ffffff 0%, #f3f9f8 100%);
  color: #4b6160;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  cursor: pointer;
}

.side-sort-dir-btn svg {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2.1;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.side-sort-dir-btn:hover {
  border-color: #96bab4;
  color: #284d49;
}

.side-sort-dir-btn.active {
  border-color: #4f78d2;
  background: linear-gradient(180deg, #6b9cf0 0%, #4f78d2 100%);
  color: #ffffff;
  box-shadow: 0 4px 10px rgba(58, 88, 162, 0.24);
}

.side-tab-btn {
  color: #ffffff;
  opacity: 0.72;
  border-radius: 999px;
  padding: 7px 10px;
  font-size: 0.77rem;
  font-weight: 900;
  letter-spacing: -0.01em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.side-tab-btn[data-side-tab-btn="favorites"] {
  border: 1px solid var(--fav-accent-border, #278772);
  background: linear-gradient(180deg, var(--fav-accent-start, #3ab69a) 0%, var(--fav-accent-end, #2e9b83) 100%);
}

.side-tab-btn[data-side-tab-btn="todayViewed"] {
  border: 1px solid var(--view-accent-border, #4f6ac0);
  background: linear-gradient(180deg, var(--view-accent-start, #5b94e4) 0%, var(--view-accent-end, #5a79d2) 100%);
}

.side-tab-btn:hover {
  opacity: 0.88;
}

.side-tab-btn.active {
  opacity: 1;
}

.side-panel-section {
  margin-top: 8px;
  min-height: 0;
}

.side-panel-section.active {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-height: 0;
}

.favorites-list {
  list-style: none;
  margin: 0;
  padding: 8px 6px 16px;
  display: grid;
  gap: 8px;
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable both-edges;
  scroll-snap-type: y proximity;
  padding-right: 6px;
  padding-bottom: 14px;
  -webkit-overflow-scrolling: touch;
  border: 1px solid rgba(205, 220, 223, 0.92);
  border-radius: 14px;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.97) 0%, rgba(247, 252, 251, 0.9) 100%);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.92),
    0 8px 18px rgba(14, 45, 47, 0.05);
  scrollbar-width: thin;
  scroll-padding-top: 10px;
}

.favorites-list > li {
  scroll-snap-align: start;
}

.favorite-item {
  border: 1px solid rgba(204, 219, 214, 0.92);
  border-radius: 12px;
  padding: 6px;
  background: #fffcf8;
  box-shadow: 0 4px 10px rgba(20, 44, 45, 0.05);
}

.favorite-open-btn {
  width: 100%;
  display: block;
  border-radius: 14px;
  padding: 10px 12px;
  text-align: left;
  box-shadow:
    0 8px 16px rgba(15, 59, 45, 0.24),
    inset 0 1px 0 rgba(255, 255, 255, 0.18);
}

#favoritesList .favorite-open-btn {
  background: linear-gradient(180deg, var(--fav-accent-start, #3ab69a) 0%, var(--fav-accent-end, #2e9b83) 100%);
  border: 1px solid var(--fav-accent-border, #278772);
}

#todayViewedList .favorite-open-btn {
  background: linear-gradient(180deg, var(--view-accent-start, #5b94e4) 0%, var(--view-accent-end, #5a79d2) 100%);
  border: 1px solid var(--view-accent-border, #4f6ac0);
}

#favoritesList .favorite-open-btn:hover {
  background: linear-gradient(180deg, #38b394 0%, #2f967e 100%);
}

#todayViewedList .favorite-open-btn:hover {
  background: linear-gradient(180deg, #6aa3ea 0%, #6686db 100%);
}

.favorite-main {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
}

.favorite-main-left {
  min-width: 0;
  display: grid;
  gap: 2px;
  justify-items: start;
}

.favorite-main-right {
  display: grid;
  gap: 2px;
  justify-self: end;
  justify-items: end;
  align-content: start;
  margin-left: auto;
  min-width: 0;
  max-width: min(48vw, 220px);
}

.favorite-name {
  display: block;
  font-weight: 800;
  color: #ffffff;
  font-size: 1.04rem;
  letter-spacing: -0.01em;
  line-height: 1.2;
}

.favorite-region {
  display: block;
  color: rgba(255, 255, 255, 0.92);
  font-weight: 700;
  font-size: 0.82rem;
  line-height: 1.2;
}

.favorite-submeta {
  display: block;
  color: rgba(255, 255, 255, 0.84);
  font-weight: 800;
  font-size: 0.74rem;
  line-height: 1.2;
}

.favorite-updated {
  display: inline-grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 2px;
  justify-items: end;
  align-items: start;
  width: max-content;
  max-width: 100%;
  border: 1px solid rgba(255, 255, 255, 0.52);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.2);
  color: #ffffff;
  font-weight: 900;
  font-size: 0.74rem;
  line-height: 1.2;
  padding: 4px 8px;
  text-align: right;
}

.favorite-updated-line {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 5px;
  max-width: 100%;
  min-width: 0;
}

.favorite-updated-line-1,
.favorite-updated-line-2 {
  white-space: nowrap;
}

.favorite-updated-time {
  font-weight: 900;
}

.favorite-updated-age {
  font-weight: 900;
  opacity: 0.95;
}

.favorite-updated.is-fresh {
  border-color: rgba(128, 182, 255, 0.88);
  background: rgba(48, 95, 187, 0.34);
  color: #e9f1ff;
}

.favorite-updated.is-stale {
  border-color: rgba(255, 168, 168, 0.88);
  background: rgba(180, 52, 63, 0.3);
  color: #ffe4e7;
}

.favorite-updated-label {
  color: rgba(255, 255, 255, 0.9);
  font-weight: 700;
  font-size: 0.66rem;
  letter-spacing: 0.01em;
}

.favorite-updated-need {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  border: 1px solid rgba(255, 199, 199, 0.95);
  background: rgba(132, 28, 36, 0.42);
  color: #ffe6ea;
  font-size: 0.63rem;
  font-weight: 900;
  padding: 1px 6px;
}

.favorite-ask-wrap {
  margin-top: 6px;
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 6px 7px;
  background: #fff;
}

.favorite-ask-wrap.is-scrollable {
  max-height: 142px;
  overflow-y: auto;
  padding-right: 4px;
}

.favorite-ask-wrap.is-scrollable .favorite-ask-table th {
  position: sticky;
  top: 0;
  z-index: 1;
  background: #fff;
}

.favorite-ask-table {
  --favorite-ask-delta-pill-width: 4.92rem;
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
  font-size: 0.82rem;
}

.favorite-ask-table col.favorite-ask-col-pyeong {
  width: 17%;
}

.favorite-ask-table col.favorite-ask-col-floor {
  width: 10.5%;
}

.favorite-ask-table col.favorite-ask-col-score {
  width: 8.5%;
}

.favorite-ask-table col.favorite-ask-col-review {
  width: 9.5%;
}

.favorite-ask-table col.favorite-ask-col-lowest {
  width: 28%;
}

.favorite-ask-table col.favorite-ask-col-latest {
  width: 26.5%;
}

.favorite-ask-table th {
  text-align: left;
  color: var(--muted);
  font-weight: 700;
  padding: 2px 0 5px;
  border-bottom: 1px solid #efe7da;
}

.favorite-ask-table th.favorite-ask-col-review {
  text-align: center;
}

.favorite-ask-table th.favorite-ask-col-score {
  text-align: center;
}

.favorite-ask-table th.favorite-ask-col-lowest,
.favorite-ask-table th.favorite-ask-col-latest {
  text-align: right;
}

.favorite-ask-table td {
  padding: 6px 0 2px;
  vertical-align: top;
  white-space: nowrap;
}

.favorite-ask-table td.favorite-ask-col-lowest,
.favorite-ask-table td.favorite-ask-col-latest {
  text-align: right;
}

.favorite-ask-table td.favorite-ask-col-score {
  text-align: center;
  font-weight: 900;
  color: #415569;
}

.favorite-ask-table td.favorite-ask-col-pyeong,
.favorite-ask-table td.favorite-ask-col-floor {
  overflow: hidden;
  text-overflow: ellipsis;
}

.favorite-ask-review {
  text-align: center;
  font-weight: 900;
  font-size: 0.76rem;
  line-height: 1.02;
  letter-spacing: -0.01em;
  overflow: hidden;
  text-overflow: ellipsis;
}

.favorite-ask-col-review {
  text-align: center;
}

.favorite-ask-review-stack,
.complex-map-popup-review-stack,
.compare-review-stack {
  display: grid;
  justify-items: center;
  align-content: start;
  min-width: 0;
  gap: 1px;
}

.favorite-ask-review.bargain {
  color: #1b4fc3;
}

.favorite-ask-review.good {
  color: #1e6a45;
}

.favorite-ask-review.fair {
  color: #7d6f59;
}

.favorite-ask-review.watch {
  color: #8a5f2a;
}

.favorite-ask-review.expensive {
  color: #a84e2e;
}

.favorite-ask-review.unknown {
  color: #8b8375;
}

.favorite-ask-price {
  color: var(--ink);
  font-weight: 800;
}

.favorite-ask-price.latest {
  color: #185e9f;
}

.favorite-ask-price-link {
  color: #0f6358;
  text-decoration: none;
  border-bottom: 1px dotted rgba(15, 99, 88, 0.45);
}

.favorite-ask-price-link:hover {
  color: #0a4d46;
  text-decoration: underline;
  border-bottom-color: rgba(10, 77, 70, 0.66);
}

.favorite-ask-price-wrap,
.favorite-ask-price-stack {
  display: inline-grid;
  justify-items: end;
  align-items: start;
  gap: 2px;
}

.favorite-ask-price-stack {
  min-width: max(60px, calc(var(--favorite-ask-delta-pill-width) + 0.01rem));
}

.favorite-ask-price-stack.favorite-ask-price-stack-latest {
  min-width: 0;
}

.favorite-ask-price-line {
  display: inline-flex;
  justify-content: flex-end;
  width: 100%;
}

.favorite-ask-delta-slot {
  display: inline-flex;
  justify-content: flex-end;
  min-height: 22px;
  width: 100%;
  overflow: hidden;
}

.favorite-ask-delta-slot-placeholder {
  visibility: hidden;
}

.favorite-ask-delta-placeholder {
  visibility: hidden;
  width: var(--favorite-ask-delta-pill-width);
  min-width: var(--favorite-ask-delta-pill-width);
  max-width: var(--favorite-ask-delta-pill-width);
  min-height: 22px;
}

.favorite-ask-delta-pill {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.06rem;
  width: var(--favorite-ask-delta-pill-width);
  min-width: var(--favorite-ask-delta-pill-width);
  max-width: var(--favorite-ask-delta-pill-width);
  flex: 0 0 var(--favorite-ask-delta-pill-width);
  justify-self: end;
  padding: 2px 5px;
  font-size: 0.58rem;
  font-weight: 900;
  line-height: 1;
  white-space: nowrap;
  border-radius: 999px;
  box-sizing: border-box;
  font-variant-numeric: tabular-nums;
}

.favorite-ask-delta-pill-price {
  display: inline-grid;
  grid-template-columns: 0.48rem minmax(0, 1fr);
  align-items: center;
  column-gap: 0.02rem;
  width: 2.48rem;
  min-width: 2.48rem;
}

.favorite-ask-delta-pill-arrow {
  display: inline-block;
  justify-self: start;
  text-align: left;
  margin-right: 0;
}

.favorite-ask-delta-pill-price-text {
  justify-self: end;
  text-align: right;
}

.favorite-ask-delta-pill-price-text,
.favorite-ask-delta-pill-age,
.favorite-ask-delta-pill-sep {
  display: inline-block;
  line-height: 1;
}

.favorite-ask-delta-pill-age {
  min-width: 1.08rem;
  text-align: right;
}

.favorite-ask-delta-pill-sep {
  flex: 0 0 auto;
  opacity: 0.86;
}

.favorite-ask-delta-pill.is-up {
  color: var(--favorite-ask-delta-up-color);
  background: var(--favorite-ask-delta-up-bg);
  box-shadow: var(--favorite-ask-delta-up-shadow);
}

.favorite-ask-delta-pill.is-down {
  color: var(--favorite-ask-delta-down-color);
  background: var(--favorite-ask-delta-down-bg);
  box-shadow: var(--favorite-ask-delta-down-shadow);
}

.favorite-ask-delta-pill.is-up.is-fresh {
  color: var(--favorite-ask-delta-fresh-color);
  background: var(--favorite-ask-delta-up-fresh-bg);
  box-shadow: var(--favorite-ask-delta-up-fresh-shadow);
}

.favorite-ask-delta-pill.is-down.is-fresh {
  color: var(--favorite-ask-delta-fresh-color);
  background: var(--favorite-ask-delta-down-fresh-bg);
  box-shadow: var(--favorite-ask-delta-down-fresh-shadow);
}

.favorite-ask-empty {
  text-align: center !important;
  color: var(--muted);
  font-size: 0.8rem;
}

.favorite-empty {
  color: var(--muted);
  font-size: 0.9rem;
}

.favorites-bulk-refresh-row {
  margin: 6px 0 8px;
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}

.favorites-bulk-refresh-actions {
  display: flex;
  gap: 6px;
  align-items: center;
  flex: 0 0 auto;
}

#refreshFavoritesAllBtn {
  border-color: #7cbfb1;
  background: linear-gradient(180deg, #e6f7f2 0%, #d2efe8 100%);
  color: #1f5e52;
  font-weight: 900;
  font-size: 0.79rem;
  padding: 7px 10px;
}

.side-panel-refresh-btn {
  min-width: 92px;
  padding: 6px 10px;
  font-size: 0.72rem;
  line-height: 1.1;
  white-space: nowrap;
}

#refreshFavoritesAllBtn:disabled {
  opacity: 0.68;
}

#stopFavoritesAllRefreshBtn {
  border-color: #d9bbb2;
  background: linear-gradient(180deg, #fff5f1 0%, #ffe8e1 100%);
  color: #9d4f3d;
  font-weight: 800;
  font-size: 0.77rem;
  padding: 7px 10px;
}

.favorites-bulk-refresh-status {
  margin: 0;
  color: #5d6d6b;
  font-size: 0.72rem;
  font-weight: 700;
  line-height: 1.35;
  flex: 1 1 auto;
  min-width: 0;
}

.favorites-bulk-refresh-status.is-running {
  color: #2d5ca8;
}

.favorites-bulk-refresh-status.is-error {
  color: #b4513f;
}

.favorite-alerts-panel {
  margin: 8px 0 12px;
  position: relative;
  display: grid;
  gap: var(--favorite-alerts-panel-gap);
  border: 1px solid var(--favorite-alerts-panel-border);
  border-radius: var(--favorite-alerts-panel-radius);
  background: var(--favorite-alerts-panel-bg);
  padding: var(--favorite-alerts-panel-padding);
  box-shadow: var(--favorite-alerts-panel-shadow);
}

.favorite-alerts-head {
  display: flex;
  align-items: center;
  gap: var(--favorite-alerts-head-gap);
}

.favorite-alerts-head strong {
  min-width: 0;
  color: var(--favorite-alerts-head-strong-color);
  font-size: 0.82rem;
  font-weight: 900;
}

.favorite-alerts-head-actions {
  display: inline-flex;
  align-items: center;
  gap: var(--favorite-alerts-actions-gap);
  margin-left: auto;
}

.favorite-alerts-meta {
  color: var(--favorite-alerts-meta-color);
  font-size: 0.7rem;
  font-weight: 800;
}

.favorite-alerts-toggle {
  min-width: var(--favorite-alerts-toggle-min-width);
  border: 1px solid var(--favorite-alerts-toggle-border);
  border-radius: var(--favorite-activity-pill-radius);
  background: var(--favorite-alerts-toggle-bg);
  color: var(--favorite-alerts-toggle-color);
  font-size: 0.71rem;
  font-weight: 900;
  padding: var(--favorite-alerts-toggle-padding);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.85);
}

.favorite-alerts-toggle:hover {
  border-color: var(--favorite-alerts-toggle-hover-border);
  color: var(--favorite-alerts-toggle-hover-color);
}

.favorite-alerts-toggle-secondary {
  min-width: var(--favorite-alerts-toggle-secondary-min-width);
  border-color: var(--favorite-alerts-toggle-secondary-border);
  background: var(--favorite-alerts-toggle-secondary-bg);
  color: var(--favorite-alerts-toggle-secondary-color);
}

.favorite-alerts-toggle-secondary:hover {
  border-color: var(--favorite-alerts-toggle-secondary-hover-border);
  color: var(--favorite-alerts-toggle-secondary-hover-color);
}

.favorite-alerts {
  list-style: none;
  margin: 4px 0 2px;
  padding: 0;
  display: grid;
  gap: 6px;
  max-height: min(28vh, 220px);
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable both-edges;
  padding-right: 2px;
  -webkit-overflow-scrolling: touch;
}

.favorite-alerts.collapsed {
  display: none;
}

.favorite-alerts-panel.is-collapsed {
  margin-bottom: 6px;
}

.favorite-notification-scroll-top-btn {
  position: absolute;
  left: 10px;
  bottom: 10px;
  z-index: 2;
  width: 44px;
  height: 44px;
  border-radius: var(--favorite-activity-pill-radius);
  border: 1px solid var(--favorite-scroll-top-btn-border);
  background: var(--favorite-scroll-top-btn-bg);
  color: var(--favorite-scroll-top-btn-color);
  box-shadow: var(--favorite-scroll-top-btn-shadow);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  opacity: 0;
  pointer-events: none;
  transform: translateY(6px);
  transition: transform 0.12s ease, filter 0.12s ease, opacity 0.18s ease;
}

.favorite-notification-scroll-top-btn:hover {
  transform: translateY(5px);
  filter: brightness(1.04);
}

.favorite-notification-scroll-top-btn:active {
  transform: translateY(6px);
}

.favorite-notification-scroll-top-btn.is-visible {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}

.alert-item {
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 8px 9px;
  background: var(--favorite-alert-item-bg);
  font-size: 0.8rem;
  box-shadow: var(--favorite-alert-item-shadow);
}

.alert-item[role="button"] {
  cursor: pointer;
  transition:
    transform 0.14s ease,
    box-shadow 0.14s ease,
    border-color 0.14s ease;
}

.alert-item[role="button"]:hover {
  transform: translateY(-1px);
  box-shadow: var(--favorite-alert-item-hover-shadow);
}

.alert-item[role="button"]:focus-visible {
  outline: 2px solid var(--favorite-alert-item-focus-outline);
  outline-offset: 2px;
}

.alert-item-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 3px;
}

.alert-item-head span {
  color: var(--favorite-alert-item-meta-color);
  font-size: 0.68rem;
  font-weight: 800;
  white-space: nowrap;
}

.alert-item-title {
  color: var(--favorite-alert-item-title-color);
  font-weight: 900;
  line-height: 1.25;
}

.favorite-activity-board-panel .favorite-alerts-head strong {
  color: var(--favorite-activity-board-alert-head-color);
}

.favorite-activity-board-list {
  max-height: min(34vh, 280px);
}

.favorite-activity-item,
.favorite-activity-dashboard-card {
  display: grid;
  gap: var(--favorite-activity-card-gap);
}

.favorite-activity-item.surge,
.favorite-activity-dashboard-card.surge {
  border-color: var(--favorite-activity-card-surge-border);
  background: var(--favorite-activity-card-surge-bg);
}

.favorite-activity-item.lead,
.favorite-activity-dashboard-card.lead {
  border-color: var(--favorite-activity-card-lead-border);
  background: var(--favorite-activity-card-lead-bg);
}

.favorite-activity-item.confirm,
.favorite-activity-dashboard-card.confirm {
  border-color: var(--favorite-activity-card-confirm-border);
  background: var(--favorite-activity-card-confirm-bg);
}

.favorite-activity-item.watch,
.favorite-activity-dashboard-card.watch {
  border-color: var(--favorite-activity-card-watch-border);
  background: var(--favorite-activity-card-watch-bg);
}

.favorite-activity-item.pending,
.favorite-activity-item.calm,
.favorite-activity-dashboard-card.pending,
.favorite-activity-dashboard-card.calm {
  background: var(--favorite-activity-card-neutral-bg);
}

.favorite-activity-chip-row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.favorite-activity-stage-badge,
.favorite-activity-chip {
  display: inline-flex;
  align-items: center;
  min-height: var(--favorite-activity-stage-badge-min-height);
  border-radius: var(--favorite-activity-pill-radius);
  padding: var(--favorite-activity-chip-stage-padding);
  font-size: var(--favorite-activity-stage-badge-font-size);
  font-weight: 900;
  line-height: 1;
}

.favorite-activity-stage-badge {
  border: 1px solid var(--favorite-activity-stage-badge-border);
  background: var(--favorite-activity-stage-badge-bg);
  color: var(--favorite-activity-stage-badge-color);
}

.favorite-activity-stage-badge.surge {
  border-color: var(--favorite-activity-stage-badge-surge-border);
  background: var(--favorite-activity-stage-badge-surge-bg);
  color: var(--favorite-activity-stage-badge-surge-color);
}

.favorite-activity-stage-badge.lead {
  border-color: var(--favorite-activity-stage-badge-lead-border);
  background: var(--favorite-activity-stage-badge-lead-bg);
  color: var(--favorite-activity-stage-badge-lead-color);
}

.favorite-activity-stage-badge.confirm {
  border-color: var(--favorite-activity-stage-badge-confirm-border);
  background: var(--favorite-activity-stage-badge-confirm-bg);
  color: var(--favorite-activity-stage-badge-confirm-color);
}

.favorite-activity-stage-badge.watch {
  border-color: var(--favorite-activity-stage-badge-watch-border);
  background: var(--favorite-activity-stage-badge-watch-bg);
  color: var(--favorite-activity-stage-badge-watch-color);
}

.favorite-activity-stage-badge.pending,
.favorite-activity-stage-badge.calm {
  border-color: var(--favorite-activity-stage-badge-neutral-border);
  background: var(--favorite-activity-stage-badge-neutral-bg);
  color: var(--favorite-activity-stage-badge-neutral-color);
}

.favorite-activity-chip.score {
  background: var(--favorite-activity-chip-score-bg);
  color: var(--favorite-activity-chip-score-color);
}

.favorite-activity-chip.subdued {
  background: var(--favorite-activity-chip-subdued-bg);
  color: var(--favorite-activity-chip-subdued-color);
}

.favorite-activity-metric-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--favorite-activity-metric-grid-gap);
}

.favorite-activity-metric {
  display: grid;
  gap: var(--favorite-activity-metric-gap);
  border: 1px solid var(--favorite-activity-metric-border);
  border-radius: var(--favorite-activity-metric-radius);
  padding: var(--favorite-activity-metric-padding);
  background: var(--favorite-activity-metric-bg);
}

.favorite-activity-metric .label {
  color: #617281;
  font-size: 0.62rem;
  font-weight: 900;
}

.favorite-activity-metric strong {
  color: #203848;
  font-size: 0.74rem;
  font-weight: 900;
}

.favorite-activity-metric .meta {
  color: #6b7c8a;
  font-size: 0.65rem;
  font-weight: 800;
}

.favorite-activity-metric.permit {
  border-color: var(--favorite-activity-metric-permit-border);
}

.favorite-activity-metric.trade {
  border-color: var(--favorite-activity-metric-trade-border);
}

.favorite-activity-meta-row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 12px;
  color: #5d707b;
  font-size: 0.67rem;
  font-weight: 800;
}

body.favorite-activity-dashboard-open {
  overflow: hidden;
}

.favorite-activity-dashboard-popup {
  position: fixed;
  inset: 0;
  z-index: 2265;
  display: grid;
  place-items: center;
  padding: 14px;
}

.favorite-activity-dashboard-backdrop {
  position: absolute;
  inset: 0;
  border: 0;
  margin: 0;
  padding: 0;
  background: rgba(9, 20, 18, 0.52);
}

.favorite-activity-dashboard-dialog {
  position: relative;
  z-index: 1;
  width: min(1180px, 97vw);
  max-height: min(88vh, 920px);
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  border-radius: var(--favorite-activity-dashboard-dialog-radius);
  border: 1px solid var(--favorite-activity-dashboard-dialog-border);
  background: var(--favorite-activity-dashboard-dialog-bg);
  box-shadow: var(--favorite-activity-dashboard-dialog-shadow);
  overflow: hidden;
}

.favorite-activity-dashboard-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--favorite-activity-dashboard-head-gap);
  padding: var(--favorite-activity-dashboard-head-padding);
  border-bottom: 1px solid var(--favorite-activity-dashboard-head-border);
  background: var(--favorite-activity-dashboard-head-bg);
}

.favorite-activity-dashboard-head h2 {
  margin: 0;
  color: #1f3721;
  font-size: 0.94rem;
  line-height: 1.18;
}

.favorite-activity-dashboard-copy {
  margin: 3px 0 0;
  color: #56705a;
  font-size: 0.66rem;
  font-weight: 760;
  line-height: 1.3;
}

.favorite-activity-dashboard-head-actions {
  display: inline-flex;
  align-items: center;
  gap: var(--favorite-activity-dashboard-head-actions-gap);
}

.favorite-activity-dashboard-refresh-btn {
  border: 1px solid var(--favorite-activity-dashboard-refresh-btn-border);
  border-radius: var(--favorite-activity-pill-radius);
  background: var(--favorite-activity-dashboard-refresh-btn-bg);
  color: var(--favorite-activity-dashboard-refresh-btn-color);
  font-size: 0.64rem;
  font-weight: 900;
  padding: var(--favorite-activity-dashboard-refresh-btn-padding);
  box-shadow: var(--favorite-activity-dashboard-refresh-btn-shadow);
}

.favorite-activity-dashboard-close-btn {
  width: 32px;
  height: 32px;
  border-radius: var(--favorite-activity-pill-radius);
  border: 1px solid var(--favorite-activity-dashboard-close-btn-border);
  background: var(--favorite-activity-dashboard-close-btn-bg);
  color: #fff;
  font-size: 0.94rem;
  font-weight: 900;
  line-height: 1;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.favorite-activity-dashboard-body {
  overflow-y: auto;
  padding: var(--favorite-activity-dashboard-body-padding);
  display: grid;
  gap: var(--favorite-activity-dashboard-body-gap);
  scroll-padding-top: 8px;
}

.favorite-activity-dashboard-toolbar {
  display: grid;
  gap: var(--favorite-activity-toolbar-gap);
  padding: var(--favorite-activity-toolbar-padding);
  border: 1px solid var(--favorite-activity-toolbar-border);
  border-radius: var(--favorite-activity-toolbar-radius);
  background: var(--favorite-activity-toolbar-bg);
  box-shadow: var(--favorite-activity-toolbar-shadow);
  position: static;
}

.favorite-activity-dashboard-toolbar-main {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 7px;
  align-items: start;
}

.favorite-activity-dashboard-summary {
  display: block;
  color: #1e3a23;
  font-size: 0.74rem;
  font-weight: 900;
  line-height: 1.22;
}

.favorite-activity-dashboard-meta {
  margin: 2px 0 0;
  color: #617365;
  font-size: 0.59rem;
  font-weight: 800;
  line-height: 1.35;
}

.favorite-activity-dashboard-controls {
  display: flex;
  flex-wrap: nowrap;
  gap: 8px;
  overflow-x: auto;
  padding-bottom: 2px;
}

.favorite-activity-dashboard-filter-groups {
  display: grid;
  gap: 7px;
}

.favorite-activity-dashboard-toolbar.is-dense-mobile .favorite-activity-dashboard-panel {
  gap: var(--favorite-activity-panel-dense-gap);
  padding: var(--favorite-activity-panel-dense-padding);
}

.favorite-activity-dashboard-toolbar.is-dense-mobile .favorite-activity-dashboard-filter-head span {
  display: none;
}

.favorite-activity-dashboard-filter-group {
  display: grid;
  gap: 6px;
}

.favorite-activity-dashboard-filter-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--favorite-activity-filter-chip-gap);
}

.favorite-activity-dashboard-filter-head strong {
  color: #26402a;
  font-size: 0.68rem;
  font-weight: 900;
  letter-spacing: -0.01em;
}

.favorite-activity-dashboard-filter-head span {
  color: #6a7d6d;
  font-size: 0.58rem;
  font-weight: 800;
  white-space: nowrap;
}

.favorite-activity-dashboard-stats {
  display: flex;
  flex-wrap: nowrap;
  gap: 6px;
  overflow-x: auto;
  padding-bottom: 2px;
}

.favorite-activity-stat-card {
  display: grid;
  gap: var(--favorite-activity-stat-card-gap);
  padding: var(--favorite-activity-stat-card-padding);
  border: 1px solid var(--favorite-activity-panel-border);
  border-radius: var(--favorite-activity-panel-radius);
  background: var(--favorite-activity-stat-card-bg);
  box-shadow: var(--favorite-activity-stat-card-shadow);
}

.favorite-activity-stat-card.compact {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  flex: 0 0 auto;
  min-height: 0;
  min-width: 94px;
  padding: 7px 10px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.9);
  box-shadow: none;
}

.favorite-activity-stat-card .label {
  color: #607463;
  font-size: 0.56rem;
  font-weight: 900;
  line-height: 1.15;
}

.favorite-activity-stat-card strong {
  color: #173b29;
  font-size: 1.22rem;
  font-weight: 900;
  letter-spacing: -0.03em;
}

.favorite-activity-stat-card.compact .label {
  font-size: 0.55rem;
  line-height: 1;
  white-space: nowrap;
}

.favorite-activity-stat-card.compact .label::before {
  content: attr(data-short-label);
  display: none;
}

.favorite-activity-stat-card.compact strong {
  font-size: 0.82rem;
  letter-spacing: -0.01em;
  line-height: 1;
}

.favorite-activity-stat-card.compact.buyer,
.favorite-activity-stat-card.compact.buyer-soft {
  border-color: rgba(112, 183, 156, 0.36);
  background: linear-gradient(180deg, rgba(245, 253, 248, 0.99) 0%, rgba(233, 247, 240, 0.97) 100%);
}

.favorite-activity-stat-card.compact.band-bargain,
.favorite-activity-stat-card.compact.band-good {
  border-color: rgba(112, 183, 156, 0.36);
  background: linear-gradient(180deg, rgba(245, 253, 248, 0.99) 0%, rgba(233, 247, 240, 0.97) 100%);
}

.favorite-activity-stat-card.compact.band-fair {
  border-color: rgba(190, 178, 130, 0.48);
  background: linear-gradient(180deg, rgba(255, 254, 249, 0.99) 0%, rgba(249, 245, 232, 0.97) 100%);
}

.favorite-activity-stat-card.compact.band-watch,
.favorite-activity-stat-card.compact.band-expensive {
  border-color: rgba(224, 156, 126, 0.36);
  background: linear-gradient(180deg, rgba(255, 249, 244, 0.99) 0%, rgba(250, 239, 233, 0.97) 100%);
}

.favorite-activity-stat-card.compact.seller,
.favorite-activity-stat-card.compact.seller-soft {
  border-color: rgba(224, 156, 126, 0.36);
  background: linear-gradient(180deg, rgba(255, 249, 244, 0.99) 0%, rgba(250, 239, 233, 0.97) 100%);
}

.favorite-activity-stat-card.compact.balanced {
  border-color: rgba(186, 197, 205, 0.56);
}

.favorite-activity-stat-card small {
  color: #6b7d70;
  font-size: 0.7rem;
  font-weight: 700;
  line-height: 1.45;
}

.favorite-activity-stat-card.compact small {
  display: none;
}

.favorite-activity-dashboard-visual-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 14px;
  align-items: start;
}

.favorite-activity-dashboard-panel {
  display: grid;
  gap: var(--favorite-activity-panel-gap);
  padding: var(--favorite-activity-panel-padding);
  border: 1px solid var(--favorite-activity-panel-border);
  border-radius: var(--favorite-activity-panel-radius);
  background: var(--favorite-activity-panel-bg);
  box-shadow: var(--favorite-activity-panel-shadow);
}

.favorite-activity-dashboard-panel-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--favorite-activity-filter-chip-gap);
  flex-wrap: wrap;
}

.favorite-activity-dashboard-panel-head strong {
  color: #1e3928;
  font-size: 0.76rem;
  font-weight: 900;
}

.favorite-activity-dashboard-panel-head span {
  color: #66786b;
  font-size: 0.58rem;
  font-weight: 800;
  line-height: 1.35;
}

.favorite-activity-dashboard-scatter {
  min-height: 360px;
}

.favorite-activity-compare-panel {
  display: grid;
  gap: 12px;
}

.favorite-activity-compare-toolbar {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
}

.favorite-activity-compare-selection {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.favorite-activity-compare-chip {
  display: inline-flex;
  align-items: center;
  gap: var(--favorite-activity-compare-chip-gap);
  min-height: 34px;
  padding: var(--favorite-activity-compare-chip-padding);
  border: 1px solid var(--favorite-activity-compare-chip-border);
  border-radius: var(--favorite-activity-pill-radius);
  background: var(--favorite-activity-compare-chip-bg);
  box-shadow: var(--favorite-activity-compare-chip-shadow);
}

.favorite-activity-compare-chip .swatch {
  width: 10px;
  height: 10px;
  border-radius: 999px;
  flex: 0 0 auto;
}

.favorite-activity-compare-chip .name {
  color: #214132;
  font-size: 0.74rem;
  font-weight: 900;
}

.favorite-activity-compare-chip .meta {
  color: #6a7b6d;
  font-size: 0.67rem;
  font-weight: 800;
}

.favorite-activity-compare-chip-remove,
.favorite-activity-compare-clear-btn {
  border: 1px solid rgba(167, 181, 167, 0.88);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.88);
  color: #456150;
  font-size: 0.7rem;
  font-weight: 900;
  line-height: 1;
  padding: 6px 10px;
}

.favorite-activity-compare-chip-remove {
  width: 24px;
  height: 24px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
}

.favorite-activity-compare-summary-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(176px, 1fr));
  gap: 10px;
}

.favorite-activity-compare-summary-card {
  display: grid;
  gap: var(--favorite-activity-compare-summary-gap);
  padding: var(--favorite-activity-compare-summary-padding);
  border: 1px solid var(--favorite-activity-compare-summary-border);
  border-radius: var(--favorite-activity-panel-radius);
  background: var(--favorite-activity-compare-summary-bg);
  box-shadow: var(--favorite-activity-compare-summary-shadow);
}

.favorite-activity-compare-summary-card-head {
  display: flex;
  align-items: flex-start;
  gap: 9px;
}

.favorite-activity-compare-summary-card-head .swatch {
  width: 12px;
  height: 12px;
  margin-top: 4px;
  border-radius: 999px;
  background: var(--compare-accent, #1f7a62);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--compare-accent, #1f7a62) 18%, white);
  flex: 0 0 auto;
}

.favorite-activity-compare-summary-card-copy {
  min-width: 0;
  display: grid;
  gap: 3px;
}

.favorite-activity-compare-summary-card-copy strong {
  color: #1d3a2d;
  font-size: 0.82rem;
  font-weight: 900;
  line-height: 1.25;
}

.favorite-activity-compare-summary-card-copy span {
  color: #607366;
  font-size: 0.67rem;
  font-weight: 800;
  line-height: 1.35;
}

.favorite-activity-compare-summary-bar {
  height: 10px;
  border-radius: 999px;
  background: rgba(219, 229, 220, 0.8);
  overflow: hidden;
}

.favorite-activity-compare-summary-bar .fill {
  display: block;
  width: calc(var(--compare-total-ratio, 0) * 100%);
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, color-mix(in srgb, var(--compare-accent, #1f7a62) 70%, white) 0%, var(--compare-accent, #1f7a62) 100%);
}

.favorite-activity-compare-summary-stats {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px 10px;
}

.favorite-activity-compare-summary-stats span {
  color: #556a5b;
  font-size: 0.66rem;
  font-weight: 800;
  line-height: 1.35;
}

.favorite-activity-compare-summary-stats b {
  color: #254534;
  font-weight: 900;
}

.favorite-activity-compare-matrix-wrap {
  border: 1px solid var(--favorite-activity-compare-wrap-border);
  border-radius: var(--favorite-activity-panel-radius);
  overflow: auto;
  background: var(--favorite-activity-compare-wrap-bg);
  min-height: 0;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.82);
}

.favorite-activity-compare-matrix {
  width: 100%;
  min-width: 860px;
  border-collapse: collapse;
  table-layout: fixed;
}

.favorite-activity-compare-matrix thead th {
  position: sticky;
  top: 0;
  z-index: 2;
  padding: 8px 9px;
  border-bottom: 1px solid rgba(210, 222, 211, 0.9);
  background: linear-gradient(180deg, rgba(252, 255, 251, 0.98) 0%, rgba(241, 247, 240, 0.96) 100%);
  color: #486352;
  font-size: 0.72rem;
  font-weight: 900;
  text-align: center;
}

.favorite-activity-compare-matrix thead th:first-child {
  position: sticky;
  left: 0;
  z-index: 4;
  text-align: left;
}

.favorite-activity-compare-matrix th,
.favorite-activity-compare-matrix td {
  border-right: 1px solid rgba(236, 241, 236, 0.96);
  border-bottom: 1px solid rgba(236, 241, 236, 0.96);
  padding: 7px 8px;
  vertical-align: middle;
}

.favorite-activity-compare-matrix th:last-child,
.favorite-activity-compare-matrix td:last-child {
  border-right: 0;
}

.favorite-activity-compare-matrix tbody th {
  position: sticky;
  left: 0;
  z-index: 1;
  width: 176px;
  background: linear-gradient(180deg, rgba(251, 253, 251, 0.98) 0%, rgba(245, 249, 246, 0.96) 100%);
}

.favorite-activity-compare-row-head {
  display: grid;
  gap: 3px;
}

.favorite-activity-compare-row-head strong {
  color: #1a3729;
  font-size: 0.78rem;
  font-weight: 900;
  line-height: 1.24;
}

.favorite-activity-compare-row-head small {
  color: #64786a;
  font-size: 0.66rem;
  font-weight: 800;
  line-height: 1.25;
}

.favorite-activity-compare-row-head span {
  color: #78897d;
  font-size: 0.64rem;
  font-weight: 800;
  line-height: 1.25;
}

.favorite-activity-compare-month-cell {
  position: relative;
  min-width: 0;
  text-align: center;
  background: rgba(248, 251, 249, 0.86);
  overflow: hidden;
}

.favorite-activity-compare-month-cell::before {
  content: "";
  position: absolute;
  inset: 4px;
  border-radius: 11px;
  background: var(--compare-accent, #1f7a62);
  opacity: calc(var(--compare-level, 0) * 0.92);
}

.favorite-activity-compare-month-cell.is-peak::after {
  content: "";
  position: absolute;
  inset: 3px;
  border-radius: 12px;
  border: 1px solid rgba(138, 103, 42, 0.74);
}

.favorite-activity-compare-month-cell span {
  position: relative;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 24px;
  min-height: 20px;
  padding: 0 5px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.92);
  color: #1f3128;
  font-size: 0.69rem;
  font-weight: 900;
  line-height: 1;
  font-variant-numeric: tabular-nums;
  box-shadow: 0 3px 6px rgba(29, 48, 36, 0.08);
}

.favorite-activity-compare-month-cell:not(.is-active) span {
  background: transparent;
  color: #8a9991;
  box-shadow: none;
}

.favorite-activity-compare-total-cell {
  min-width: 0;
  text-align: center;
  background: linear-gradient(180deg, rgba(248, 251, 247, 0.98) 0%, rgba(241, 246, 242, 0.96) 100%);
}

.favorite-activity-compare-total-cell strong {
  display: block;
  color: #1e3d2c;
  font-size: 0.76rem;
  font-weight: 900;
}

.favorite-activity-compare-total-cell small {
  display: block;
  margin-top: 2px;
  color: #66796c;
  font-size: 0.64rem;
  font-weight: 800;
}

.favorite-activity-compare-caption {
  color: #667b6d;
  font-size: 0.71rem;
  font-weight: 800;
  line-height: 1.45;
}

.favorite-activity-dashboard-overview {
  min-height: 0;
}

.favorite-activity-dashboard-sort-row {
  display: grid;
  grid-template-columns: repeat(4, minmax(104px, 1fr));
  gap: var(--favorite-activity-sort-row-gap);
}

.favorite-activity-sort-chip {
  position: relative;
  overflow: hidden;
  min-width: 0;
  min-height: var(--favorite-activity-sort-chip-min-height);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  border: 1px solid var(--favorite-activity-sort-chip-border);
  border-radius: var(--favorite-activity-pill-radius);
  background: var(--favorite-activity-sort-chip-bg);
  color: var(--favorite-activity-sort-chip-color);
  font-size: 0.68rem;
  font-weight: 900;
  padding: var(--favorite-activity-sort-chip-padding);
  box-shadow:
    0 6px 16px rgba(31, 49, 39, 0.05),
    inset 0 1px 0 rgba(255, 255, 255, 0.86);
  white-space: nowrap;
  cursor: pointer;
  transition: transform 0.14s ease, border-color 0.14s ease, box-shadow 0.14s ease, background 0.14s ease;
}

.favorite-activity-sort-chip::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(120deg, rgba(255, 255, 255, 0.72), transparent 42%);
  opacity: 0.55;
  pointer-events: none;
}

.favorite-activity-sort-chip:hover,
.favorite-activity-sort-chip:focus-visible {
  transform: translateY(-1px);
  border-color: rgba(24, 111, 85, 0.28);
  box-shadow:
    0 10px 22px rgba(31, 49, 39, 0.09),
    inset 0 1px 0 rgba(255, 255, 255, 0.92);
  outline: none;
}

.favorite-activity-sort-chip.is-active {
  border-color: var(--favorite-activity-sort-chip-active-border);
  background: var(--favorite-activity-sort-chip-active-bg);
  color: var(--favorite-activity-sort-chip-active-color);
  box-shadow: var(--favorite-activity-sort-chip-active-shadow);
}

.favorite-activity-sort-chip-label,
.favorite-activity-sort-chip-direction,
.favorite-activity-sort-chip span {
  position: relative;
  z-index: 1;
}

.favorite-activity-sort-chip-direction {
  width: 22px;
  height: 22px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: rgba(23, 56, 41, 0.07);
  color: #42604f;
  font-size: 0.72rem;
  font-weight: 950;
  font-variant-numeric: tabular-nums;
}

.favorite-activity-sort-chip.is-active .favorite-activity-sort-chip-direction {
  background: rgba(20, 92, 69, 0.16);
  color: #123f2e;
}

.favorite-activity-dashboard-price-row {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  overflow: visible;
}

.favorite-activity-dashboard-price-row .favorite-activity-sort-chip {
  min-height: 34px;
  padding: 7px 10px;
  font-size: 0.63rem;
}

.favorite-activity-dashboard-price-row .favorite-activity-sort-chip span {
  min-width: 20px;
  padding: 2px 6px;
  border-radius: 999px;
  background: rgba(26, 60, 44, 0.07);
  color: #425f4e;
}

.favorite-activity-dashboard-price-row .favorite-activity-sort-chip.is-active span {
  background: rgba(20, 92, 69, 0.16);
  color: #123f2e;
}

.favorite-activity-bar-chart {
  display: grid;
  gap: 12px;
}

.favorite-activity-bar-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 10px;
}

.favorite-activity-bar-item {
  width: 100%;
  display: grid;
  gap: 8px;
  text-align: left;
  border: 1px solid rgba(194, 206, 197, 0.92);
  border-radius: 16px;
  padding: 12px 13px;
  background: rgba(255, 255, 255, 0.88);
  box-shadow: 0 10px 18px rgba(27, 54, 39, 0.06);
}

.favorite-activity-bar-item-head {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
}

.favorite-activity-bar-rank {
  width: 28px;
  height: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: rgba(23, 59, 41, 0.08);
  color: #264131;
  font-size: 0.76rem;
  font-weight: 900;
}

.favorite-activity-bar-title {
  min-width: 0;
  display: grid;
  gap: 3px;
}

.favorite-activity-bar-title strong {
  color: #193241;
  font-size: 0.88rem;
  font-weight: 900;
}

.favorite-activity-bar-title span {
  color: #687985;
  font-size: 0.68rem;
  font-weight: 800;
  line-height: 1.45;
}

.favorite-activity-bar-badges {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.favorite-activity-bar-track {
  width: 100%;
  height: 16px;
  border-radius: 999px;
  background: rgba(204, 216, 210, 0.54);
  overflow: hidden;
  box-shadow: inset 0 0 0 1px rgba(171, 186, 179, 0.26);
}

.favorite-activity-bar-fill {
  height: 100%;
  min-width: 8px;
  display: flex;
  border-radius: inherit;
  overflow: hidden;
}

.favorite-activity-bar-segment {
  display: block;
  height: 100%;
}

.favorite-activity-bar-segment.lead {
  background: linear-gradient(90deg, #efcd85 0%, #d19832 100%);
}

.favorite-activity-bar-segment.confirm {
  background: linear-gradient(90deg, #8fd8ca 0%, #1f8a79 100%);
}

.favorite-activity-bar-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 12px;
  color: #5f7166;
  font-size: 0.68rem;
  font-weight: 800;
}

.favorite-activity-bar-legend {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  color: #5f7266;
  font-size: 0.71rem;
  font-weight: 800;
}

.favorite-activity-bar-legend .tone {
  width: 10px;
  height: 10px;
  display: inline-block;
  border-radius: 999px;
  margin-right: 5px;
}

.favorite-activity-bar-legend .tone.lead { background: var(--favorite-activity-legend-lead); }
.favorite-activity-bar-legend .tone.confirm { background: var(--favorite-activity-legend-confirm); }
.favorite-activity-bar-legend .tone.note {
  width: 8px;
  height: 8px;
  background: var(--favorite-activity-legend-note);
}

.favorite-activity-overview-chart {
  --activity-matrix-label-width: 16px;
  --activity-matrix-gap: 3px;
  display: grid;
  gap: 10px;
}

.favorite-activity-overview-legend {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  color: var(--favorite-activity-legend-copy-color);
  font-size: 0.69rem;
  font-weight: 800;
}

.favorite-activity-overview-legend .tone {
  width: 10px;
  height: 10px;
  display: inline-block;
  border-radius: 999px;
  margin-right: 5px;
}

.favorite-activity-overview-legend .tone.lead { background: var(--favorite-activity-legend-lead); }
.favorite-activity-overview-legend .tone.confirm { background: var(--favorite-activity-legend-confirm); }
.favorite-activity-overview-legend .tone.note {
  width: 8px;
  height: 8px;
  background: var(--favorite-activity-legend-note);
}

.favorite-activity-overview-header {
  display: grid;
  grid-template-columns: 28px minmax(148px, 192px) minmax(240px, 1fr);
  gap: 10px;
  align-items: start;
  color: #5d7165;
  font-size: 0.64rem;
  font-weight: 900;
}

.favorite-activity-overview-header-rank,
.favorite-activity-overview-header-name {
  display: inline-flex;
  align-items: center;
}

.favorite-activity-overview-signal-header {
  min-width: 0;
  display: grid;
  gap: 5px;
}

.favorite-activity-overview-header-score {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  color: #6a7f74;
  font-size: 0.58rem;
  font-weight: 900;
  letter-spacing: 0.01em;
}

.favorite-activity-overview-ruler {
  position: relative;
  min-width: 0;
  display: flex;
  justify-content: space-between;
  gap: 8px;
  padding-left: calc(var(--activity-matrix-label-width) + 6px);
}

.favorite-activity-overview-ruler::before {
  content: "";
  position: absolute;
  left: calc(var(--activity-matrix-label-width) + 6px);
  right: 0;
  top: 50%;
  height: 1px;
  background: rgba(168, 184, 174, 0.65);
  transform: translateY(-50%);
}

.favorite-activity-overview-ruler span {
  position: relative;
  z-index: 1;
  padding-inline: 4px;
  background: rgba(249, 251, 246, 0.94);
}

.favorite-activity-overview-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 8px;
  max-height: none;
  overflow: visible;
}

.favorite-activity-overview-list.favorite-activity-overview-list-condensed {
  gap: 8px;
}

.favorite-activity-overview-item {
  display: grid;
}

.favorite-activity-overview-card {
  display: grid;
  gap: var(--favorite-activity-overview-card-gap);
  padding: var(--favorite-activity-overview-card-padding);
  border: 1px solid var(--favorite-activity-overview-card-border);
  border-radius: var(--favorite-activity-overview-card-radius);
  background: var(--favorite-activity-overview-card-bg);
  box-shadow: var(--favorite-activity-overview-card-shadow);
}

.favorite-activity-overview-card.negotiation-buyer {
  border-color: rgba(86, 172, 142, 0.44);
  background: linear-gradient(180deg, rgba(251, 255, 252, 0.98) 0%, rgba(238, 249, 242, 0.98) 100%);
}

.favorite-activity-overview-card.negotiation-balanced {
  border-color: rgba(191, 201, 206, 0.92);
}

.favorite-activity-overview-card.negotiation-seller {
  border-color: rgba(222, 150, 117, 0.42);
  background: linear-gradient(180deg, rgba(255, 252, 249, 0.98) 0%, rgba(252, 241, 235, 0.98) 100%);
}

.favorite-activity-overview-card.is-compared {
  position: relative;
  border-color: rgba(59, 126, 102, 0.52);
  background: linear-gradient(180deg, rgba(252, 255, 252, 0.98) 0%, rgba(236, 246, 239, 0.98) 100%);
  box-shadow:
    0 16px 26px rgba(22, 77, 58, 0.11),
    0 0 0 1px rgba(88, 154, 129, 0.14);
}

.favorite-activity-overview-card.is-compared::before {
  content: "비교중";
  position: absolute;
  top: 10px;
  right: 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 22px;
  padding: 0 9px;
  border-radius: 999px;
  border: 1px solid rgba(84, 146, 122, 0.38);
  background: linear-gradient(180deg, rgba(243, 251, 247, 0.98) 0%, rgba(226, 242, 233, 0.96) 100%);
  color: #1f664e;
  font-size: 0.62rem;
  font-weight: 900;
  letter-spacing: -0.02em;
  box-shadow: 0 5px 12px rgba(22, 77, 58, 0.1);
}

.favorite-activity-overview-card.surge {
  border-color: rgba(238, 142, 106, 0.42);
}

.favorite-activity-overview-card.lead {
  border-color: rgba(209, 152, 50, 0.38);
}

.favorite-activity-overview-card.pending {
  border-color: rgba(101, 121, 185, 0.28);
}

.favorite-activity-overview-row {
  min-width: 0;
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr) minmax(236px, 272px);
  grid-template-areas: "rank main signal";
  gap: 8px;
  align-items: start;
  text-align: left;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.favorite-activity-overview-row.is-focused {
  box-shadow: none;
}

.favorite-activity-overview-row.is-muted {
  opacity: 0.76;
}

.favorite-activity-overview-row.surge {
  border-color: rgba(238, 142, 106, 0.4);
}

.favorite-activity-overview-row.lead {
  border-color: rgba(209, 152, 50, 0.34);
}

.favorite-activity-overview-row.pending {
  border-color: rgba(101, 121, 185, 0.28);
}

.favorite-activity-overview-rank {
  grid-area: rank;
  width: 28px;
  height: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: rgba(23, 59, 41, 0.08);
  color: #264131;
  font-size: 0.74rem;
  font-weight: 900;
}

.favorite-activity-overview-main {
  grid-area: main;
  min-width: 0;
  display: grid;
  gap: 3px;
}

.favorite-activity-overview-top {
  min-width: 0;
  display: block;
}

.favorite-activity-overview-top strong {
  min-width: 0;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  color: #1f3545;
  font-size: 0.93rem;
  font-weight: 900;
  line-height: 1.24;
}

.favorite-activity-overview-region {
  color: #56706b;
  font-size: 0.74rem;
  font-weight: 800;
  line-height: 1.24;
}

.favorite-activity-overview-meta-row {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 6px;
}

.favorite-activity-negotiation-pill {
  display: inline-grid;
  gap: 2px;
  min-width: 0;
  padding: 7px 11px;
  border-radius: 14px;
  border: 1px solid rgba(190, 202, 206, 0.88);
  background: rgba(247, 250, 251, 0.96);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.84);
}

.favorite-activity-negotiation-pill em {
  color: #70808a;
  font-size: 0.56rem;
  font-weight: 900;
  font-style: normal;
  line-height: 1.05;
  letter-spacing: 0.02em;
}

.favorite-activity-negotiation-pill strong {
  color: #21374a;
  font-size: 0.8rem;
  font-weight: 950;
  line-height: 1.08;
}

.favorite-activity-negotiation-pill span {
  color: #5a6e7b;
  font-size: 0.62rem;
  font-weight: 800;
  line-height: 1.2;
}

.favorite-activity-negotiation-pill.compact {
  padding: 6px 10px;
  gap: 1px;
}

.favorite-activity-negotiation-pill.compact em {
  font-size: 0.52rem;
}

.favorite-activity-negotiation-pill.compact strong {
  font-size: 0.72rem;
}

.favorite-activity-negotiation-pill.compact span {
  font-size: 0.58rem;
}

.favorite-activity-negotiation-pill.buyer {
  border-color: rgba(103, 177, 150, 0.44);
  background: linear-gradient(180deg, rgba(242, 252, 247, 0.98) 0%, rgba(229, 247, 238, 0.96) 100%);
}

.favorite-activity-negotiation-pill.buyer em,
.favorite-activity-negotiation-pill.buyer span {
  color: #4b7f6d;
}

.favorite-activity-negotiation-pill.buyer strong {
  color: #17614d;
}

.favorite-activity-negotiation-pill.balanced {
  border-color: rgba(182, 194, 202, 0.56);
  background: linear-gradient(180deg, rgba(249, 251, 252, 0.98) 0%, rgba(239, 244, 246, 0.96) 100%);
}

.favorite-activity-negotiation-pill.balanced em,
.favorite-activity-negotiation-pill.balanced span {
  color: #687a87;
}

.favorite-activity-negotiation-pill.balanced strong {
  color: #365062;
}

.favorite-activity-negotiation-pill.seller {
  border-color: rgba(222, 151, 120, 0.46);
  background: linear-gradient(180deg, rgba(255, 247, 242, 0.99) 0%, rgba(252, 237, 228, 0.96) 100%);
}

.favorite-activity-negotiation-pill.seller em,
.favorite-activity-negotiation-pill.seller span {
  color: #976447;
}

.favorite-activity-negotiation-pill.seller strong {
  color: #934f2f;
}

.favorite-activity-driver-strip {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.favorite-activity-driver-strip.compact {
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 5px;
}

.favorite-activity-driver {
  min-width: 0;
  display: grid;
  gap: 2px;
  padding: 7px 8px;
  border-radius: 13px;
  border: 1px solid rgba(191, 202, 207, 0.76);
  background: rgba(248, 250, 251, 0.96);
}

.favorite-activity-driver .driver-label {
  color: #6e7f89;
  font-size: 0.56rem;
  font-weight: 900;
  line-height: 1.05;
}

.favorite-activity-driver strong {
  color: #21394d;
  font-size: 0.72rem;
  font-weight: 900;
  line-height: 1.1;
}

.favorite-activity-driver small {
  color: #5f7380;
  font-size: 0.59rem;
  font-weight: 800;
  line-height: 1.24;
}

.favorite-activity-driver small.detail {
  color: #748693;
}

.favorite-activity-driver.compact {
  padding: 6px 7px;
}

.favorite-activity-driver.compact .driver-label {
  font-size: 0.54rem;
}

.favorite-activity-driver.compact strong {
  font-size: 0.68rem;
}

.favorite-activity-driver.compact small {
  font-size: 0.56rem;
}

.favorite-activity-driver.buyer {
  border-color: rgba(106, 176, 151, 0.42);
  background: rgba(239, 251, 245, 0.98);
}

.favorite-activity-driver.buyer .driver-label,
.favorite-activity-driver.buyer small {
  color: #4f7f6d;
}

.favorite-activity-driver.buyer strong {
  color: #17614d;
}

.favorite-activity-driver.seller {
  border-color: rgba(224, 158, 128, 0.42);
  background: rgba(255, 246, 241, 0.98);
}

.favorite-activity-driver.seller .driver-label,
.favorite-activity-driver.seller small {
  color: #98664b;
}

.favorite-activity-driver.seller strong {
  color: #934f2f;
}

.favorite-activity-driver.neutral {
  background: rgba(247, 250, 251, 0.98);
}

.favorite-activity-overview-meta-chip {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  gap: 8px;
  min-height: 30px;
  padding: 5px 9px;
  border-radius: 999px;
  background: rgba(241, 246, 241, 0.96);
  box-shadow: inset 0 0 0 1px rgba(193, 205, 197, 0.76);
  color: #52685d;
  font-size: 0.64rem;
  font-weight: 800;
  line-height: 1;
  white-space: nowrap;
}

.favorite-activity-overview-meta-chip .label {
  color: #708277;
}

.favorite-activity-overview-meta-chip strong {
  color: #183a33;
  font-size: 0.74rem;
  font-weight: 900;
}

.favorite-activity-overview-meta-chip.permit {
  background: rgba(255, 247, 232, 0.98);
  box-shadow: inset 0 0 0 1px rgba(226, 190, 111, 0.78);
  color: #8e6317;
}

.favorite-activity-overview-meta-chip.permit .label {
  color: #a07a2f;
}

.favorite-activity-overview-meta-chip.permit strong {
  color: #8e6317;
}

.favorite-activity-overview-meta-chip.trade {
  background: rgba(236, 249, 245, 0.98);
  box-shadow: inset 0 0 0 1px rgba(150, 214, 196, 0.82);
  color: #11695a;
}

.favorite-activity-overview-meta-chip.trade .label {
  color: #448a7e;
}

.favorite-activity-overview-meta-chip.trade strong {
  color: #11695a;
}

.favorite-activity-overview-stage-chip {
  width: 100%;
  min-height: 30px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 6px 9px;
  border-radius: 999px;
  border: 1px solid rgba(194, 206, 197, 0.92);
  background: rgba(255, 255, 255, 0.9);
  color: #445e53;
  font-size: 0.7rem;
  font-weight: 900;
  line-height: 1;
  white-space: nowrap;
}

.favorite-activity-overview-stage-chip.surge {
  border-color: rgba(238, 142, 106, 0.64);
  background: rgba(255, 242, 237, 0.98);
  color: #c65b2d;
}

.favorite-activity-overview-stage-chip.lead {
  border-color: rgba(209, 152, 50, 0.52);
  background: rgba(255, 248, 232, 0.98);
  color: #9c6a12;
}

.favorite-activity-overview-stage-chip.calm,
.favorite-activity-overview-stage-chip.pending {
  color: #61766a;
}

.favorite-activity-overview-summary-line {
  color: #4f6272;
  font-size: 0.7rem;
  font-weight: 800;
  line-height: 1.36;
}

.favorite-activity-overview-summary-line.subtle {
  color: #6b7f8f;
  font-size: 0.68rem;
}

.favorite-activity-overview-matrix {
  min-width: 0;
  display: grid;
  gap: 5px;
  padding-top: 0;
}

.favorite-activity-overview-signal-panel {
  grid-area: signal;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 6px;
  align-content: start;
}

.favorite-activity-overview-matrix-lane {
  min-width: 0;
  display: grid;
  grid-template-columns: var(--activity-matrix-label-width) minmax(0, 1fr);
  align-items: center;
  gap: 6px;
}

.favorite-activity-overview-matrix-label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #64786b;
  font-size: 0.6rem;
  font-weight: 900;
}

.favorite-activity-overview-matrix-lane.lead .favorite-activity-overview-matrix-label {
  color: #9c6a12;
}

.favorite-activity-overview-matrix-lane.confirm .favorite-activity-overview-matrix-label {
  color: #176c60;
}

.favorite-activity-overview-matrix-lane.trade .favorite-activity-overview-matrix-label {
  color: #4a68c9;
}

.favorite-activity-overview-matrix-cells {
  min-width: 0;
  display: grid;
  grid-template-columns: repeat(14, minmax(0, 1fr));
  gap: var(--activity-matrix-gap);
}

.favorite-activity-overview-cell {
  aspect-ratio: 1 / 1;
  min-width: 0;
  border-radius: 5px;
  background: rgba(205, 216, 210, 0.42);
  box-shadow: inset 0 0 0 1px rgba(173, 187, 180, 0.36);
}

.favorite-activity-overview-cell.is-active.lead {
  background: #d19832;
}

.favorite-activity-overview-cell.is-active.confirm {
  background: #1f8a79;
}

.favorite-activity-overview-cell.is-today {
  box-shadow:
    inset 0 0 0 1px rgba(27, 54, 39, 0.42),
    0 0 0 1px rgba(27, 54, 39, 0.06);
}

.favorite-activity-overview-score {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-areas:
    "label value"
    "meta value";
  align-items: center;
  justify-content: stretch;
  gap: 2px 10px;
  min-width: 0;
  width: 100%;
  padding: 8px 10px;
  border-radius: 16px;
  background: linear-gradient(180deg, rgba(246, 251, 248, 0.99) 0%, rgba(229, 241, 234, 0.99) 100%);
  box-shadow:
    inset 0 0 0 1px rgba(185, 204, 192, 0.92),
    0 8px 14px rgba(24, 63, 47, 0.05);
  color: #183d3c;
  text-align: left;
  font-variant-numeric: tabular-nums;
}

.favorite-activity-overview-score.buyer {
  background: linear-gradient(180deg, rgba(242, 252, 247, 0.99) 0%, rgba(225, 245, 236, 0.99) 100%);
  box-shadow:
    inset 0 0 0 1px rgba(157, 207, 187, 0.92),
    0 8px 14px rgba(24, 82, 61, 0.06);
}

.favorite-activity-overview-score.buyer .score-label,
.favorite-activity-overview-score.buyer .score-meta {
  color: #4e7b69;
}

.favorite-activity-overview-score.buyer strong {
  color: #155f4c;
}

.favorite-activity-overview-score.balanced {
  background: linear-gradient(180deg, rgba(247, 250, 252, 0.99) 0%, rgba(235, 241, 245, 0.99) 100%);
}

.favorite-activity-overview-score.seller {
  background: linear-gradient(180deg, rgba(255, 247, 242, 0.99) 0%, rgba(249, 234, 226, 0.99) 100%);
  box-shadow:
    inset 0 0 0 1px rgba(229, 185, 162, 0.92),
    0 8px 14px rgba(105, 63, 38, 0.06);
}

.favorite-activity-overview-score.seller .score-label,
.favorite-activity-overview-score.seller .score-meta {
  color: #94644a;
}

.favorite-activity-overview-score.seller strong {
  color: #914f2f;
}

.favorite-activity-overview-score .score-label {
  grid-area: label;
  color: #698176;
  font-size: 0.6rem;
  font-weight: 900;
  letter-spacing: 0.01em;
  line-height: 1.05;
}

.favorite-activity-overview-score strong {
  grid-area: value;
  justify-self: end;
  color: #17393a;
  font-size: 1.5rem;
  font-weight: 950;
  letter-spacing: -0.035em;
  line-height: 1;
}

.favorite-activity-overview-score .score-meta {
  grid-area: meta;
  color: #61796f;
  font-size: 0.6rem;
  font-weight: 800;
  line-height: 1.25;
}

.favorite-activity-overview-spec-row {
  display: flex;
  flex-wrap: wrap;
  gap: 5px 6px;
}

.activity-spec-chip.favorite {
  padding: 4px 8px;
  font-size: 0.62rem;
  background: linear-gradient(180deg, rgba(249, 252, 250, 0.98) 0%, rgba(239, 246, 242, 0.98) 100%);
}

.activity-spec-chip.favorite strong {
  font-size: 0.68rem;
}

.favorite-activity-overview-detail {
  display: grid;
  gap: 8px;
  padding: 0;
  --complex-map-popup-lowest-gap: 4px;
  --complex-map-popup-delta-price-col-width: 2.28rem;
  --complex-map-popup-delta-pct-col-width: 1.18rem;
  --complex-map-popup-delta-age-col-width: 1.24rem;
  --complex-map-popup-delta-sep-col-width: 0.22rem;
  --complex-map-popup-delta-pill-width: calc(
    var(--complex-map-popup-delta-price-col-width)
    + var(--complex-map-popup-delta-pct-col-width)
    + var(--complex-map-popup-delta-age-col-width)
    + (var(--complex-map-popup-delta-sep-col-width) * 2)
    + 0.56rem
  );
}

.favorite-activity-overview-driver-panel {
  padding: 0 8px 2px;
}

.favorite-activity-detail-summary {
  display: grid;
  gap: 8px;
  padding: 11px 12px;
  border: 1px solid rgba(191, 202, 207, 0.86);
  border-radius: 16px;
  background: rgba(247, 250, 251, 0.97);
}

.favorite-activity-detail-summary.buyer {
  border-color: rgba(112, 183, 156, 0.44);
  background: linear-gradient(180deg, rgba(245, 253, 248, 0.99) 0%, rgba(235, 248, 240, 0.97) 100%);
}

.favorite-activity-detail-summary.seller {
  border-color: rgba(224, 156, 126, 0.44);
  background: linear-gradient(180deg, rgba(255, 249, 244, 0.99) 0%, rgba(250, 239, 233, 0.97) 100%);
}

.favorite-activity-detail-summary-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.favorite-activity-detail-summary-head strong {
  color: #1c3648;
  font-size: 0.8rem;
  font-weight: 950;
}

.favorite-activity-detail-summary-copy {
  display: grid;
  gap: 4px;
}

.favorite-activity-detail-summary-copy p {
  margin: 0;
  color: #395466;
  font-size: 0.72rem;
  font-weight: 850;
  line-height: 1.45;
}

.favorite-activity-detail-summary-copy p.detail {
  color: #637887;
  font-size: 0.68rem;
}

.favorite-activity-overview-detail-strip {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
  gap: 8px;
  padding: 0 8px 2px;
}

.favorite-activity-overview-detail-flow {
  padding: 0 8px 2px;
}

.favorite-activity-overview-detail-meta {
  min-width: 0;
  display: grid;
  gap: 3px;
}

.favorite-activity-overview-detail-explain,
.favorite-activity-overview-detail-note {
  margin: 0;
  color: #425c6f;
  font-size: 0.68rem;
  font-weight: 800;
  line-height: 1.45;
}

.favorite-activity-overview-detail-note {
  color: #667a87;
}

.favorite-activity-overview-detail-region {
  color: #4c6574;
  font-size: 0.69rem;
  font-weight: 800;
  line-height: 1.35;
}

.favorite-activity-overview-detail-submeta {
  color: #6a7d73;
  font-size: 0.66rem;
  font-weight: 800;
  line-height: 1.35;
}

.favorite-activity-overview-detail .complex-map-popup-updated {
  align-self: flex-start;
  justify-self: end;
  width: fit-content;
  max-width: 100%;
  gap: 1px;
  padding: 2px 6px 3px;
  border-radius: 7px;
  font-size: 0.6rem;
  line-height: 1.1;
  margin-top: -3px;
}

.favorite-activity-overview-detail .complex-map-popup-updated.is-inline {
  justify-self: end;
  align-self: start;
  width: auto;
  max-width: min(100%, 10.8rem);
  margin-top: 0;
  padding: 0;
  font-size: 0.62rem;
  justify-items: end;
  text-align: right;
}

.favorite-activity-overview-detail .complex-map-popup-updated-line {
  gap: 3px;
}

.favorite-activity-overview-detail .complex-map-popup-updated.is-inline .complex-map-popup-updated-line {
  justify-content: flex-end;
}

.favorite-activity-overview-detail .complex-map-popup-sale-summary {
  padding-top: 2px;
}

.favorite-activity-overview-monthly-chart-wrap {
  padding: 0 8px 2px;
}

.trade-monthly-chart {
  display: grid;
  gap: 8px;
  padding: 10px 12px;
  border: 1px solid rgba(197, 209, 199, 0.92);
  border-radius: 16px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(241, 247, 242, 0.96) 100%);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8);
}

.trade-monthly-chart.compact {
  padding: 8px 10px;
  gap: 7px;
}

.trade-monthly-chart-head {
  display: grid;
  gap: 3px;
}

.trade-monthly-chart-head strong {
  color: #1c3d2a;
  font-size: 0.78rem;
  font-weight: 900;
}

.trade-monthly-chart-head span {
  color: #687c6c;
  font-size: 0.67rem;
  font-weight: 800;
  line-height: 1.4;
}

.trade-monthly-chart-bars {
  display: grid;
  grid-template-columns: repeat(var(--trade-monthly-columns, 16), minmax(0, 1fr));
  gap: var(--trade-monthly-gap, 4px);
  align-items: end;
  min-height: 110px;
  padding-top: 18px;
}

.trade-monthly-bar-col {
  min-width: 0;
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
  gap: 6px;
  align-items: end;
}

.trade-monthly-bar-col.is-selectable {
  cursor: pointer;
  touch-action: pan-y;
  user-select: none;
  -webkit-user-select: none;
}

.trade-monthly-bar-col.is-selectable:focus-visible {
  outline: 2px solid rgba(73, 118, 212, 0.9);
  outline-offset: 3px;
  border-radius: 12px;
}

.trade-monthly-bar-col.is-selectable:hover .trade-monthly-bar-track {
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.52),
    0 0 0 2px rgba(61, 124, 101, 0.12);
}

.trade-monthly-bar-track-wrap {
  position: relative;
  width: 100%;
  height: 84px;
}

.trade-monthly-bar-track {
  height: 84px;
  border-radius: 999px;
  background: linear-gradient(180deg, rgba(222, 232, 225, 0.52) 0%, rgba(207, 219, 211, 0.68) 100%);
  overflow: hidden;
  display: flex;
  align-items: flex-end;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.52);
}

.trade-monthly-bar-fill {
  width: 100%;
  height: 0;
  border-radius: 999px;
  background: linear-gradient(180deg, rgba(156, 187, 165, 0.38) 0%, rgba(111, 147, 121, 0.5) 100%);
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: height 160ms ease;
}

.trade-monthly-bar-fill.is-active {
  background: linear-gradient(180deg, #3a9d74 0%, #1e6f56 100%);
}

.trade-monthly-bar-fill.is-highlighted {
  background: linear-gradient(180deg, #dcb55a 0%, #a76c1d 100%);
}

.trade-monthly-bar-value {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  max-width: calc(100% - 4px);
  padding: 1px 3px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.96);
  color: #1e2722;
  font-size: 0.47rem;
  font-weight: 900;
  line-height: 1;
  letter-spacing: -0.03em;
  white-space: nowrap;
  pointer-events: none;
  font-variant-numeric: tabular-nums;
  box-shadow: 0 3px 6px rgba(30, 52, 39, 0.08);
  text-shadow: none;
}

.trade-monthly-bar-value.is-outside {
  top: auto;
  transform: translateX(-50%);
}

.trade-monthly-bar-col.is-highlighted .trade-monthly-bar-track {
  background: linear-gradient(180deg, rgba(234, 219, 191, 0.72) 0%, rgba(227, 208, 171, 0.78) 100%);
}

.trade-monthly-bar-col.is-highlighted .trade-monthly-bar-label {
  color: #8b6423;
}

.trade-monthly-bar-label {
  min-height: 14px;
  color: #7a8d7d;
  font-size: 0.57rem;
  font-weight: 800;
  text-align: center;
  letter-spacing: -0.02em;
}

.trade-monthly-chart-empty {
  min-height: 72px;
  border: 1px dashed rgba(186, 198, 187, 0.94);
  border-radius: 12px;
  display: grid;
  place-items: center;
  color: #6a7c6c;
  font-size: 0.74rem;
  font-weight: 800;
  text-align: center;
  background: rgba(255, 255, 255, 0.64);
}

.favorite-activity-compare-toggle-btn {
  min-width: 92px;
}

.favorite-activity-compare-toggle-btn.is-active {
  border-color: rgba(68, 129, 105, 0.42);
  background: linear-gradient(180deg, rgba(245, 251, 248, 0.98) 0%, rgba(224, 240, 231, 0.96) 100%);
  color: #1f5d46;
}

.favorite-activity-overview-grid-wrap {
  padding: 0 8px 6px;
}

.favorite-activity-overview-actions {
  padding: 2px 8px 8px;
}

.favorite-activity-dashboard-movers {
  display: grid;
  gap: 10px;
}

.favorite-activity-stage-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: var(--favorite-activity-stage-grid-gap);
}

.favorite-activity-stage-filter-btn {
  min-width: 0;
  display: grid;
  gap: var(--favorite-activity-stage-filter-gap);
  padding: var(--favorite-activity-stage-filter-padding);
  border: 1px solid var(--favorite-activity-stage-filter-border);
  border-radius: var(--favorite-activity-stage-filter-radius);
  background: var(--favorite-activity-stage-filter-bg);
  color: var(--favorite-activity-stage-filter-color);
  text-align: left;
  box-shadow: var(--favorite-activity-stage-filter-shadow);
}

.favorite-activity-stage-filter-btn strong {
  font-size: 0.76rem;
  font-weight: 900;
}

.favorite-activity-stage-filter-btn span {
  color: #6a7c70;
  font-size: 0.66rem;
  font-weight: 800;
}

.favorite-activity-stage-filter-btn.is-active {
  transform: translateY(-1px);
  box-shadow: var(--favorite-activity-stage-filter-active-shadow);
}

.favorite-activity-stage-filter-btn.score.is-active {
  border-color: rgba(78, 104, 98, 0.44);
  background: linear-gradient(180deg, rgba(247, 250, 247, 0.98) 0%, rgba(230, 239, 233, 0.94) 100%);
}

.favorite-activity-stage-filter-btn.surge.is-active {
  border-color: rgba(224, 107, 67, 0.46);
  background: linear-gradient(180deg, rgba(255, 250, 247, 0.98) 0%, rgba(255, 238, 228, 0.96) 100%);
}

.favorite-activity-stage-filter-btn.lead.is-active {
  border-color: rgba(186, 120, 34, 0.42);
  background: linear-gradient(180deg, rgba(255, 251, 243, 0.98) 0%, rgba(255, 242, 220, 0.96) 100%);
}

.favorite-activity-stage-filter-btn.calm.is-active,
.favorite-activity-stage-filter-btn.pending.is-active {
  border-color: rgba(120, 138, 150, 0.36);
  background: linear-gradient(180deg, rgba(249, 251, 253, 0.98) 0%, rgba(237, 242, 246, 0.96) 100%);
}

.favorite-activity-movers-lane {
  display: grid;
  gap: 8px;
}

.favorite-activity-movers-lane h3 {
  margin: 0;
  color: #264131;
  font-size: 0.78rem;
}

.favorite-activity-movers-copy {
  margin: -2px 0 2px;
  color: #697a6c;
  font-size: 0.69rem;
  font-weight: 800;
  line-height: 1.45;
}

.favorite-activity-movers-lane ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 6px;
}

.favorite-activity-mover-item {
  width: 100%;
  border: 1px solid rgba(194, 206, 197, 0.9);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.85);
  padding: 10px 11px;
  display: grid;
  gap: 4px;
  text-align: left;
  box-shadow: 0 8px 16px rgba(27, 54, 39, 0.06);
}

.favorite-activity-mover-item strong {
  color: #1f3545;
  font-size: 0.79rem;
  font-weight: 900;
}

.favorite-activity-mover-item span {
  color: #5f6f7c;
  font-size: 0.68rem;
  font-weight: 800;
  line-height: 1.45;
}

.favorite-activity-mover-empty {
  color: #6d7f74;
  font-size: 0.74rem;
  font-weight: 700;
}

.favorite-activity-dashboard-list-panel {
  gap: 14px;
}

.favorite-activity-dashboard-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 12px;
}

.favorite-activity-dashboard-list-actions {
  display: flex;
  justify-content: center;
}

.favorite-activity-dashboard-list-toggle-btn {
  min-height: 40px;
  border: 1px solid rgba(151, 171, 142, 0.88);
  border-radius: 999px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(239, 246, 233, 0.98) 100%);
  color: #2f4a31;
  font-size: 0.74rem;
  font-weight: 900;
  padding: 9px 18px;
  box-shadow: 0 10px 18px rgba(27, 54, 39, 0.06);
}

.favorite-activity-dashboard-list-toggle-btn.hidden {
  display: none;
}

.favorite-activity-dashboard-dialog > .favorite-notification-scroll-top-btn {
  left: 16px;
  bottom: 16px;
  z-index: 3;
}

.favorite-activity-dashboard-card {
  border: 1px solid rgba(196, 208, 201, 0.92);
  border-radius: 20px;
  box-shadow: 0 14px 26px rgba(22, 44, 32, 0.08);
  overflow: hidden;
  background: rgba(255, 255, 255, 0.92);
}

.favorite-activity-dashboard-card[open] {
  box-shadow: 0 18px 30px rgba(22, 44, 32, 0.11);
}

.favorite-activity-dashboard-card.negotiation-buyer {
  border-color: rgba(86, 172, 142, 0.44);
  background: linear-gradient(180deg, rgba(251, 255, 252, 0.98) 0%, rgba(238, 249, 242, 0.98) 100%);
}

.favorite-activity-dashboard-card.negotiation-balanced {
  border-color: rgba(191, 201, 206, 0.92);
}

.favorite-activity-dashboard-card.negotiation-seller {
  border-color: rgba(222, 150, 117, 0.42);
  background: linear-gradient(180deg, rgba(255, 252, 249, 0.98) 0%, rgba(252, 241, 235, 0.98) 100%);
}

.favorite-activity-dashboard-card.is-compared {
  position: relative;
  border-color: rgba(59, 126, 102, 0.52);
  box-shadow:
    0 16px 26px rgba(22, 77, 58, 0.11),
    0 0 0 1px rgba(88, 154, 129, 0.14);
}

.favorite-activity-dashboard-card.is-compared::before {
  content: "비교중";
  position: absolute;
  top: 8px;
  right: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 20px;
  padding: 0 8px;
  border-radius: 999px;
  border: 1px solid rgba(84, 146, 122, 0.38);
  background: linear-gradient(180deg, rgba(243, 251, 247, 0.98) 0%, rgba(226, 242, 233, 0.96) 100%);
  color: #1f664e;
  font-size: 0.6rem;
  font-weight: 900;
  letter-spacing: -0.02em;
  box-shadow: 0 5px 12px rgba(22, 77, 58, 0.1);
}

.favorite-activity-dashboard-card:focus-visible {
  outline: 2px solid rgba(116, 160, 76, 0.48);
  outline-offset: 2px;
}

.favorite-activity-dashboard-card-summary {
  list-style: none;
  cursor: pointer;
  padding: 11px 12px;
  display: grid;
  gap: 8px;
}

.favorite-activity-dashboard-card-summary.is-static {
  cursor: default;
}

.favorite-activity-dashboard-card-summary::-webkit-details-marker {
  display: none;
}

.favorite-activity-dashboard-card-summary::marker {
  content: "";
}

.favorite-activity-dashboard-card-summary-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 5px 8px;
  color: #617281;
  font-size: 0.64rem;
  font-weight: 800;
  line-height: 1.35;
}

.favorite-activity-dashboard-card-body {
  display: grid;
  gap: 9px;
  padding: 0 12px 12px;
}

.favorite-activity-dashboard-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
}

.favorite-activity-dashboard-card-title {
  min-width: 0;
  display: flex;
  align-items: flex-start;
  gap: 8px;
}

.favorite-activity-dashboard-card-title-copy {
  min-width: 0;
  display: grid;
  gap: 2px;
}

.favorite-activity-dashboard-card-title strong {
  color: #1d3441;
  font-size: 0.88rem;
  font-weight: 900;
}

.favorite-activity-dashboard-card-title span {
  color: #697a83;
  font-size: 0.65rem;
  font-weight: 800;
}

.favorite-activity-dashboard-rank {
  width: 24px;
  height: 24px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: rgba(23, 59, 41, 0.08);
  color: #264131;
  font-size: 0.68rem;
  font-weight: 950;
  flex: 0 0 auto;
}

.favorite-activity-dashboard-card-badges {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.favorite-activity-dashboard-card-badges .favorite-activity-negotiation-pill {
  width: auto;
}

.favorite-activity-dashboard-card-copy {
  color: #264231;
  font-size: 0.72rem;
  font-weight: 800;
  line-height: 1.42;
  margin: 0;
}

.favorite-activity-overview-inline-matrix {
  display: grid;
  gap: 6px;
  padding: 0 12px 4px;
}

.favorite-activity-overview-inline-matrix-label {
  color: #62776a;
  font-size: 0.63rem;
  font-weight: 900;
}

.favorite-activity-driver-pill-row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.favorite-activity-driver-pill {
  min-width: 0;
  display: inline-flex;
  align-items: baseline;
  gap: 5px;
  padding: 5px 8px;
  border-radius: 999px;
  border: 1px solid rgba(191, 202, 207, 0.76);
  background: rgba(248, 250, 251, 0.96);
}

.favorite-activity-driver-pill .label {
  color: #6e7f89;
  font-size: 0.56rem;
  font-weight: 900;
}

.favorite-activity-driver-pill strong {
  color: #21394d;
  font-size: 0.66rem;
  font-weight: 900;
  line-height: 1.05;
}

.favorite-activity-driver-pill small {
  color: #5f7380;
  font-size: 0.55rem;
  font-weight: 800;
  line-height: 1.05;
}

.favorite-activity-driver-pill.buyer {
  border-color: rgba(106, 176, 151, 0.42);
  background: rgba(239, 251, 245, 0.98);
}

.favorite-activity-driver-pill.buyer .label,
.favorite-activity-driver-pill.buyer small {
  color: #4f7f6d;
}

.favorite-activity-driver-pill.buyer strong {
  color: #17614d;
}

.favorite-activity-driver-pill.seller {
  border-color: rgba(224, 158, 128, 0.42);
  background: rgba(255, 246, 241, 0.98);
}

.favorite-activity-driver-pill.seller .label,
.favorite-activity-driver-pill.seller small {
  color: #98664b;
}

.favorite-activity-driver-pill.seller strong {
  color: #934f2f;
}

.favorite-negotiation-list-wrap {
  display: grid;
}

.favorite-negotiation-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 11px;
}

.favorite-negotiation-list-item {
  display: grid;
  scroll-margin-top: 10px;
}

.favorite-negotiation-card {
  display: grid;
  gap: 10px;
  padding: 12px;
  border: 1px solid rgba(193, 205, 197, 0.92);
  border-radius: 20px;
  background: rgba(255, 255, 255, 0.92);
  box-shadow: 0 14px 24px rgba(21, 45, 30, 0.07);
}

.favorite-negotiation-card.buyer,
.favorite-negotiation-card.buyer-soft {
  border-color: rgba(109, 176, 151, 0.42);
  background: linear-gradient(180deg, rgba(252, 255, 253, 0.98) 0%, rgba(239, 249, 243, 0.97) 100%);
}

.favorite-negotiation-card.band-bargain,
.favorite-negotiation-card.band-good {
  border-color: rgba(109, 176, 151, 0.42);
  background: linear-gradient(180deg, rgba(252, 255, 253, 0.98) 0%, rgba(239, 249, 243, 0.97) 100%);
}

.favorite-negotiation-card.band-fair {
  border-color: rgba(190, 178, 130, 0.44);
  background: linear-gradient(180deg, rgba(255, 254, 249, 0.98) 0%, rgba(249, 245, 232, 0.97) 100%);
}

.favorite-negotiation-card.band-watch,
.favorite-negotiation-card.band-expensive {
  border-color: rgba(222, 154, 121, 0.42);
  background: linear-gradient(180deg, rgba(255, 252, 249, 0.98) 0%, rgba(252, 241, 235, 0.97) 100%);
}

.favorite-negotiation-card.seller,
.favorite-negotiation-card.seller-soft {
  border-color: rgba(222, 154, 121, 0.42);
  background: linear-gradient(180deg, rgba(255, 252, 249, 0.98) 0%, rgba(252, 241, 235, 0.97) 100%);
}

.favorite-negotiation-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
}

.favorite-negotiation-card-head-main {
  min-width: 0;
  display: flex;
  align-items: flex-start;
  gap: 10px;
}

.favorite-negotiation-rank {
  width: 28px;
  height: 28px;
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: rgba(31, 58, 35, 0.08);
  color: #24422f;
  font-size: 0.76rem;
  font-weight: 950;
}

.favorite-negotiation-title-block {
  min-width: 0;
  display: grid;
  gap: 3px;
}

.favorite-negotiation-title-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
}

.favorite-negotiation-title-row strong {
  color: #1d3441;
  font-size: 0.92rem;
  font-weight: 950;
  line-height: 1.2;
}

.favorite-negotiation-title-block > span {
  color: #667983;
  font-size: 0.68rem;
  font-weight: 800;
  line-height: 1.3;
}

.favorite-negotiation-title-block small {
  color: #778991;
  font-size: 0.62rem;
  font-weight: 800;
  line-height: 1.3;
}

.favorite-negotiation-context-chip {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding: 0 8px;
  border-radius: 999px;
  border: 1px solid rgba(176, 191, 206, 0.58);
  background: rgba(247, 250, 252, 0.94);
  color: #4d6576;
  font-size: 0.61rem;
  font-weight: 900;
}

.favorite-negotiation-context-chip.family {
  border-color: rgba(162, 178, 222, 0.62);
  background: rgba(244, 247, 255, 0.96);
  color: #536ea7;
}

.favorite-negotiation-context-chip.loading {
  border-color: rgba(179, 191, 130, 0.62);
  background: rgba(249, 251, 238, 0.96);
  color: #677431;
}

.favorite-negotiation-context-chip.guide {
  border-color: rgba(210, 177, 109, 0.62);
  background: rgba(255, 249, 234, 0.98);
  color: #8b6113;
}

.favorite-negotiation-context-chip.guide.verify_low_ask {
  border-color: rgba(118, 170, 145, 0.62);
  background: rgba(241, 251, 246, 0.98);
  color: #1f6b56;
}

.favorite-negotiation-context-chip.guide.chase_caution,
.favorite-negotiation-context-chip.guide.aggressive_low_probability {
  border-color: rgba(223, 145, 104, 0.62);
  background: rgba(255, 245, 239, 0.98);
  color: #9d5531;
}

.favorite-negotiation-score-block {
  display: grid;
  gap: 6px;
  justify-items: end;
}

.favorite-negotiation-score-pill {
  display: grid;
  gap: 2px;
  min-width: 88px;
  padding: 8px 11px;
  border-radius: 16px;
  border: 1px solid rgba(181, 194, 203, 0.88);
  background: rgba(248, 251, 252, 0.96);
  text-align: right;
}

.favorite-negotiation-score-guard {
  display: inline-flex;
  justify-content: flex-end;
  color: #7a6741;
  font-size: 0.54rem;
  font-weight: 950;
}

.favorite-negotiation-score-pill .label {
  color: #70808a;
  font-size: 0.55rem;
  font-weight: 900;
}

.favorite-negotiation-score-pill strong {
  color: #23394a;
  font-size: 1.08rem;
  font-weight: 950;
  line-height: 1;
}

.favorite-negotiation-score-pill .meta {
  color: #5b6f7c;
  font-size: 0.62rem;
  font-weight: 900;
}

.favorite-negotiation-score-pill.buyer,
.favorite-negotiation-score-pill.buyer-soft {
  border-color: rgba(109, 176, 151, 0.46);
  background: rgba(241, 251, 246, 0.97);
}

.favorite-negotiation-score-pill.buyer strong {
  color: #18614d;
}

.favorite-negotiation-score-pill.buyer-soft strong {
  color: #2e6d59;
}

.favorite-negotiation-score-pill.seller,
.favorite-negotiation-score-pill.seller-soft {
  border-color: rgba(222, 154, 121, 0.46);
  background: rgba(255, 247, 242, 0.98);
}

.favorite-negotiation-score-pill.seller strong {
  color: #934f2f;
}

.favorite-negotiation-score-pill.seller-soft strong {
  color: #9a613f;
}

.favorite-negotiation-score-factors {
  display: grid;
  gap: 4px;
  justify-items: end;
  max-width: 220px;
}

.favorite-negotiation-score-factor {
  color: #60737f;
  font-size: 0.6rem;
  font-weight: 820;
  line-height: 1.35;
  text-align: right;
}

.favorite-negotiation-score-factor.buyer {
  color: #1f6b56;
}

.favorite-negotiation-score-factor.seller {
  color: #9a613f;
}

.favorite-negotiation-conclusion {
  display: grid;
  gap: 4px;
  padding: 10px 11px;
  border-radius: 16px;
  border: 1px solid rgba(189, 201, 207, 0.76);
  background: rgba(248, 251, 252, 0.9);
}

.favorite-negotiation-conclusion.buyer,
.favorite-negotiation-conclusion.buyer-soft {
  border-color: rgba(115, 181, 156, 0.38);
  background: rgba(242, 252, 247, 0.98);
}

.favorite-negotiation-conclusion.seller,
.favorite-negotiation-conclusion.seller-soft {
  border-color: rgba(224, 160, 128, 0.38);
  background: rgba(255, 247, 242, 0.98);
}

.favorite-negotiation-conclusion-line,
.favorite-negotiation-conclusion-detail {
  margin: 0;
  color: #274131;
  font-size: 0.74rem;
  font-weight: 850;
  line-height: 1.48;
}

.favorite-negotiation-conclusion-detail {
  color: #5f7380;
  font-size: 0.67rem;
}

.favorite-negotiation-pyeong-picker {
  display: flex;
  flex-wrap: nowrap;
  gap: 6px;
  overflow-x: auto;
  padding-bottom: 2px;
}

.favorite-negotiation-pyeong-chip {
  min-width: 0;
  display: grid;
  gap: 2px;
  padding: 8px 10px;
  border-radius: 14px;
  border: 1px solid rgba(190, 202, 207, 0.88);
  background: rgba(250, 252, 253, 0.96);
  color: #4e6575;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.86);
}

.favorite-negotiation-pyeong-chip.is-active {
  border-color: rgba(92, 147, 118, 0.56);
  background: rgba(242, 250, 245, 0.98);
  color: #1d614d;
}

.favorite-negotiation-pyeong-chip strong {
  font-size: 0.7rem;
  font-weight: 900;
}

.favorite-negotiation-pyeong-chip span {
  font-size: 0.6rem;
  font-weight: 800;
  white-space: nowrap;
}

.favorite-negotiation-pyeong-meta-strip {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px;
}

.favorite-negotiation-pyeong-meta-item {
  display: grid;
  gap: 2px;
  padding: 8px 10px;
  border-radius: 14px;
  border: 1px solid rgba(191, 202, 207, 0.76);
  background: rgba(248, 251, 252, 0.92);
}

.favorite-negotiation-pyeong-meta-item b {
  color: #6e808a;
  font-size: 0.58rem;
  font-weight: 900;
}

.favorite-negotiation-pyeong-meta-item strong {
  color: #213846;
  font-size: 0.72rem;
  font-weight: 920;
}

.favorite-negotiation-card-body {
  display: grid;
  gap: 10px;
}

.favorite-negotiation-data-pending {
  display: grid;
  gap: 4px;
  padding: 12px;
  border-radius: 16px;
  border: 1px dashed rgba(182, 197, 185, 0.92);
  background: rgba(255, 255, 255, 0.7);
}

.favorite-negotiation-data-pending strong {
  color: #264031;
  font-size: 0.74rem;
  font-weight: 900;
}

.favorite-negotiation-data-pending span {
  color: #66796d;
  font-size: 0.67rem;
  font-weight: 800;
  line-height: 1.4;
}

.favorite-negotiation-detail-loading {
  padding: 12px;
  border-radius: 16px;
  border: 1px dashed rgba(183, 196, 186, 0.92);
  background: rgba(255, 255, 255, 0.72);
  color: #66796d;
  font-size: 0.68rem;
  font-weight: 800;
}

.favorite-negotiation-offer-wrap,
.favorite-negotiation-offer-state {
  display: grid;
  gap: 8px;
}

.favorite-negotiation-offer-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  flex-wrap: wrap;
}

.favorite-negotiation-offer-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.favorite-negotiation-offer-status {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 0 9px;
  border-radius: 999px;
  border: 1px solid rgba(165, 183, 191, 0.86);
  background: rgba(246, 250, 252, 0.98);
  color: #5f7582;
  font-size: 0.6rem;
  font-weight: 950;
}

.favorite-negotiation-offer-status.ready {
  border-color: rgba(112, 183, 158, 0.42);
  color: #1f6b56;
  background: rgba(239, 251, 245, 0.98);
}

.favorite-negotiation-offer-status.provisional {
  border-color: rgba(212, 176, 93, 0.42);
  color: #8b6113;
  background: rgba(255, 249, 234, 0.98);
}

.favorite-negotiation-offer-status.reference {
  border-color: rgba(203, 176, 113, 0.46);
  color: #7d6534;
  background: rgba(255, 250, 239, 0.98);
}

.favorite-negotiation-offer-status.withheld {
  border-color: rgba(201, 171, 122, 0.42);
  color: #7d6534;
  background: rgba(255, 251, 242, 0.98);
}

.favorite-negotiation-offer-basis {
  color: #677b86;
  font-size: 0.61rem;
  font-weight: 850;
}

.favorite-negotiation-confidence-badge {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 0 9px;
  border-radius: 999px;
  border: 1px solid rgba(181, 194, 203, 0.88);
  background: rgba(247, 250, 252, 0.98);
  color: #5f7582;
  font-size: 0.6rem;
  font-style: normal;
  font-weight: 950;
}

.favorite-negotiation-confidence-badge.high {
  border-color: rgba(108, 180, 153, 0.46);
  color: #1f6b56;
  background: rgba(240, 251, 245, 0.98);
}

.favorite-negotiation-confidence-badge.medium {
  border-color: rgba(210, 177, 109, 0.46);
  color: #8b6113;
  background: rgba(255, 249, 234, 0.98);
}

.favorite-negotiation-confidence-badge.low {
  border-color: rgba(223, 145, 104, 0.46);
  color: #9a613f;
  background: rgba(255, 245, 239, 0.98);
}

.favorite-negotiation-warning-chip {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 0 9px;
  border-radius: 999px;
  border: 1px solid rgba(210, 177, 109, 0.46);
  background: rgba(255, 249, 234, 0.98);
  color: #8b6113;
  font-size: 0.6rem;
  font-weight: 950;
}

.favorite-negotiation-warning-chip.verify_low_ask {
  border-color: rgba(108, 180, 153, 0.46);
  background: rgba(240, 251, 245, 0.98);
  color: #1f6b56;
}

.favorite-negotiation-warning-chip.chase_caution,
.favorite-negotiation-warning-chip.aggressive_low_probability {
  border-color: rgba(223, 145, 104, 0.46);
  background: rgba(255, 245, 239, 0.98);
  color: #9a613f;
}

.favorite-negotiation-offer-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.favorite-negotiation-offer-card {
  display: grid;
  gap: 4px;
  padding: 10px 11px;
  border-radius: 16px;
  border: 1px solid rgba(190, 202, 207, 0.8);
  background: rgba(249, 252, 253, 0.98);
}

.favorite-negotiation-offer-card span {
  color: #70808a;
  font-size: 0.6rem;
  font-weight: 900;
}

.favorite-negotiation-offer-card strong {
  color: #183746;
  font-size: 0.86rem;
  font-weight: 950;
}

.favorite-negotiation-offer-note {
  margin: 0;
  color: #627682;
  font-size: 0.64rem;
  font-weight: 800;
  line-height: 1.45;
}

.favorite-negotiation-offer-warning {
  margin: 0;
  color: #9a613f;
  font-size: 0.64rem;
  font-weight: 900;
  line-height: 1.45;
}

.favorite-negotiation-offer-state {
  padding: 11px 12px;
  border-radius: 18px;
  border: 1px dashed rgba(199, 182, 140, 0.88);
  background: rgba(255, 252, 245, 0.96);
}

.favorite-negotiation-offer-state p {
  margin: 0;
  color: #6b624e;
  font-size: 0.66rem;
  font-weight: 850;
  line-height: 1.5;
}

.favorite-negotiation-band-scale {
  display: grid;
  gap: 9px;
  padding: 11px 12px 14px;
  border-radius: 18px;
  border: 1px solid rgba(190, 202, 207, 0.82);
  background: rgba(255, 255, 255, 0.94);
}

.favorite-negotiation-band-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
}

.favorite-negotiation-band-head strong {
  color: #203848;
  font-size: 0.77rem;
  font-weight: 950;
}

.favorite-negotiation-band-head span {
  color: #697b86;
  font-size: 0.63rem;
  font-weight: 800;
}

.favorite-negotiation-band-head-meta {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 6px;
  flex-wrap: wrap;
}

.favorite-negotiation-band-badge {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding: 0 8px;
  border-radius: 999px;
  border: 1px solid rgba(206, 174, 108, 0.44);
  background: rgba(255, 248, 232, 0.98);
  color: #8f6a1d;
  font-size: 0.58rem;
  font-style: normal;
  font-weight: 950;
}

.favorite-negotiation-band-track {
  position: relative;
  min-height: 132px;
  padding: 6px 2px 0;
}

.favorite-negotiation-band-track::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 66px;
  height: 3px;
  border-radius: 999px;
  background: rgba(204, 216, 221, 0.92);
}

.favorite-negotiation-band-range {
  position: absolute;
  top: 61px;
  height: 11px;
  border-radius: 999px;
  background: linear-gradient(90deg, rgba(234, 208, 144, 0.55) 0%, rgba(223, 174, 93, 0.85) 100%);
}

.favorite-negotiation-band-marker {
  position: absolute;
  top: 66px;
  transform: translateX(-50%);
  min-width: 0;
}

.favorite-negotiation-band-marker i {
  width: 10px;
  height: 10px;
  border-radius: 999px;
  background: #95a4ad;
  box-shadow: 0 0 0 4px rgba(149, 164, 173, 0.16);
}

.favorite-negotiation-band-marker.is-ask i {
  background: #d96a46;
  box-shadow: 0 0 0 4px rgba(217, 106, 70, 0.16);
}

.favorite-negotiation-band-marker.is-target i {
  background: #2d83b0;
  box-shadow: 0 0 0 4px rgba(45, 131, 176, 0.16);
}

.favorite-negotiation-band-marker.is-no_chase i {
  background: #8f6a1d;
  box-shadow: 0 0 0 4px rgba(143, 106, 29, 0.16);
}

.favorite-negotiation-band-marker-label {
  position: absolute;
  left: 50%;
  bottom: 18px;
  transform: translateX(-50%) translateY(calc(var(--lane, 0) * -28px));
  display: grid;
  justify-items: center;
  gap: 3px;
  min-width: 44px;
  text-align: center;
}

.favorite-negotiation-band-marker b,
.favorite-negotiation-band-cluster-label b {
  color: #5a6f7c;
  font-size: 0.56rem;
  font-weight: 900;
  line-height: 1.05;
}

.favorite-negotiation-band-marker small,
.favorite-negotiation-band-cluster-label small {
  color: #1f3744;
  font-size: 0.61rem;
  font-weight: 900;
  line-height: 1.1;
  white-space: nowrap;
}

.favorite-negotiation-band-cluster {
  position: absolute;
  top: 66px;
  transform: translateX(-50%);
  min-width: 0;
}

.favorite-negotiation-band-cluster i {
  display: block;
  width: 10px;
  height: 10px;
  border-radius: 999px;
  background: #95a4ad;
  box-shadow: 0 0 0 4px rgba(149, 164, 173, 0.16);
}

.favorite-negotiation-band-cluster i.is-ask {
  background: #d96a46;
  box-shadow: 0 0 0 4px rgba(217, 106, 70, 0.16);
}

.favorite-negotiation-band-cluster i.is-target {
  background: #2d83b0;
  box-shadow: 0 0 0 4px rgba(45, 131, 176, 0.16);
}

.favorite-negotiation-band-cluster i.is-no_chase {
  background: #8f6a1d;
  box-shadow: 0 0 0 4px rgba(143, 106, 29, 0.16);
}

.favorite-negotiation-band-cluster-label {
  position: absolute;
  left: 50%;
  bottom: 18px;
  transform: translateX(-50%);
  display: grid;
  justify-items: center;
  gap: 3px;
  min-width: 74px;
  padding: 6px 8px;
  border-radius: 12px;
  border: 1px solid rgba(184, 198, 204, 0.82);
  background: rgba(255, 255, 255, 0.97);
  box-shadow: 0 10px 18px rgba(24, 52, 70, 0.08);
  text-align: center;
}

.favorite-negotiation-band-empty {
  padding: 12px;
  border: 1px dashed rgba(185, 197, 185, 0.92);
  border-radius: 16px;
  color: #6a7c6c;
  font-size: 0.69rem;
  font-weight: 800;
  background: rgba(255, 255, 255, 0.72);
}

.favorite-negotiation-band-interpretation {
  margin: 0;
  color: #5f7380;
  font-size: 0.66rem;
  font-weight: 820;
  line-height: 1.48;
}

.favorite-negotiation-section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  flex-wrap: wrap;
}

.favorite-negotiation-section-head strong {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #203848;
  font-size: 0.78rem;
  font-weight: 950;
}

.favorite-negotiation-section-head span {
  color: #6b7d87;
  font-size: 0.63rem;
  font-weight: 800;
}

.favorite-negotiation-info {
  width: 18px;
  height: 18px;
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border-radius: 999px;
  border: 1px solid rgba(179, 191, 202, 0.86);
  background: rgba(250, 252, 253, 0.98);
  color: #62788a;
  font-size: 0.58rem;
  font-weight: 950;
  line-height: 1;
}

.favorite-negotiation-reason-group {
  display: grid;
  gap: 8px;
}

.favorite-negotiation-reason-list {
  display: grid;
  gap: 8px;
}

.favorite-negotiation-reason-card {
  display: grid;
  gap: 4px;
  padding: 10px 11px;
  border-radius: 16px;
  border: 1px solid rgba(191, 202, 207, 0.76);
  background: rgba(248, 251, 252, 0.96);
}

.favorite-negotiation-reason-card.evidence {
  border-color: rgba(115, 181, 156, 0.34);
  background: rgba(242, 252, 247, 0.98);
}

.favorite-negotiation-reason-card.risk {
  border-color: rgba(224, 160, 128, 0.34);
  background: rgba(255, 247, 242, 0.98);
}

.favorite-negotiation-reason-card strong {
  color: #213846;
  font-size: 0.71rem;
  font-weight: 950;
}

.favorite-negotiation-reason-card p {
  margin: 0;
  color: #5f7380;
  font-size: 0.66rem;
  font-weight: 800;
  line-height: 1.45;
}

.favorite-negotiation-card-meta {
  display: grid;
  gap: 7px;
}

.favorite-negotiation-spec-row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.favorite-negotiation-card-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  flex-wrap: wrap;
}

.favorite-negotiation-detail-toggle,
.favorite-negotiation-open-btn {
  min-height: 34px;
  padding: 7px 12px;
  border-radius: 999px;
  border: 1px solid rgba(157, 177, 167, 0.86);
  background: rgba(255, 255, 255, 0.94);
  color: #365244;
  font-size: 0.67rem;
  font-weight: 900;
}

.favorite-negotiation-open-btn {
  border-color: rgba(130, 157, 79, 0.72);
  background: linear-gradient(180deg, #ffffff 0%, #eef6db 100%);
  color: #496b1c;
}

.favorite-negotiation-card-detail {
  display: grid;
  gap: 10px;
  padding-top: 2px;
}

.favorite-negotiation-detail {
  display: grid;
  gap: 10px;
}

.favorite-negotiation-detail-card,
.favorite-negotiation-disclosure-block {
  display: grid;
  gap: 8px;
  padding: 11px 12px;
  border-radius: 18px;
  border: 1px solid rgba(191, 202, 207, 0.82);
  background: rgba(255, 255, 255, 0.92);
}

.favorite-negotiation-detail-stats {
  display: grid;
  gap: 5px;
}

.favorite-negotiation-detail-stats span {
  color: #556b78;
  font-size: 0.67rem;
  font-weight: 800;
  line-height: 1.42;
}

.favorite-negotiation-timeline-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 8px;
}

.favorite-negotiation-timeline-item {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr);
  gap: 8px;
  align-items: start;
}

.favorite-negotiation-timeline-item .date {
  color: #7a8d7d;
  font-size: 0.63rem;
  font-weight: 900;
  line-height: 1.4;
}

.favorite-negotiation-timeline-item .copy {
  display: grid;
  gap: 2px;
}

.favorite-negotiation-timeline-item .copy strong {
  color: #213846;
  font-size: 0.7rem;
  font-weight: 900;
}

.favorite-negotiation-timeline-item .copy span {
  color: #617581;
  font-size: 0.65rem;
  font-weight: 800;
  line-height: 1.38;
}

.favorite-negotiation-timeline-note {
  margin: 0;
  color: #5d7380;
  font-size: 0.67rem;
  font-weight: 800;
  line-height: 1.45;
}

.favorite-negotiation-breakdown-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 6px;
}

.favorite-negotiation-breakdown-list li {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
  color: #617581;
  font-size: 0.66rem;
  font-weight: 800;
}

.favorite-negotiation-breakdown-list li strong {
  color: #213846;
  font-size: 0.68rem;
  font-weight: 900;
  text-align: right;
}

.favorite-negotiation-source-footer {
  color: #70838e;
  font-size: 0.62rem;
  font-weight: 800;
  line-height: 1.45;
}

/* Negotiation dashboard redesign v3: service-dashboard hierarchy */
.favorite-negotiation-card {
  --neg-tone: var(--neg-watch);
  --neg-tone-soft: var(--neg-watch-soft);
  position: relative;
  gap: 12px;
  padding: 16px;
  border: 1px solid var(--neg-divider);
  border-radius: 22px;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(248, 251, 252, 0.96) 100%);
  box-shadow:
    0 20px 40px rgba(17, 42, 50, 0.08),
    inset 0 1px 0 rgba(255, 255, 255, 0.92);
  overflow: hidden;
}

.favorite-negotiation-card::before {
  content: "";
  position: absolute;
  left: 15px;
  right: 15px;
  top: 0;
  height: 3px;
  border-radius: 0 0 999px 999px;
  background: linear-gradient(90deg, var(--neg-tone) 0%, rgba(255, 255, 255, 0) 100%);
  opacity: 0.96;
}

.favorite-negotiation-card.buyer,
.favorite-negotiation-card.buyer-soft {
  --neg-tone: var(--neg-buyer);
  --neg-tone-soft: var(--neg-buyer-soft);
}

.favorite-negotiation-card.band-bargain,
.favorite-negotiation-card.band-good {
  --neg-tone: var(--neg-buyer);
  --neg-tone-soft: var(--neg-buyer-soft);
}

.favorite-negotiation-card.band-fair {
  --neg-tone: #8e7f53;
  --neg-tone-soft: rgba(249, 245, 232, 0.97);
}

.favorite-negotiation-card.band-watch,
.favorite-negotiation-card.band-expensive {
  --neg-tone: var(--neg-seller);
  --neg-tone-soft: var(--neg-seller-soft);
}

.favorite-negotiation-card.seller,
.favorite-negotiation-card.seller-soft {
  --neg-tone: var(--neg-seller);
  --neg-tone-soft: var(--neg-seller-soft);
}

.favorite-negotiation-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 196px;
  gap: 12px;
  align-items: start;
}

.favorite-negotiation-hero-main {
  display: grid;
  gap: 8px;
  min-width: 0;
}

.favorite-negotiation-card-head-main {
  align-items: center;
  gap: 10px;
}

.favorite-negotiation-hero-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.favorite-negotiation-rank {
  width: 36px;
  height: 36px;
  border: 1px solid rgba(195, 205, 212, 0.76);
  background: linear-gradient(180deg, #ffffff 0%, #f1f5f7 100%);
  color: var(--neg-muted-strong);
  font-size: 0.74rem;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.94);
}

.favorite-negotiation-title-block {
  gap: 4px;
}

.favorite-negotiation-title-row strong {
  color: var(--neg-ink-strong);
  font-size: 1rem;
  line-height: 1.15;
  letter-spacing: -0.02em;
}

.favorite-negotiation-title-block > span {
  color: var(--neg-muted-strong);
  font-size: 0.68rem;
}

.favorite-negotiation-title-block small {
  color: var(--neg-muted);
  font-size: 0.61rem;
}

.favorite-negotiation-context-chip {
  min-height: 22px;
  padding: 0 8px;
  border-color: var(--neg-divider-strong);
  background: rgba(247, 250, 252, 0.96);
  color: var(--neg-muted-strong);
  font-size: 0.56rem;
  letter-spacing: -0.01em;
}

.favorite-negotiation-context-chip.family {
  border-color: rgba(185, 194, 224, 0.38);
  background: rgba(247, 249, 255, 0.86);
  color: #65748b;
}

.favorite-negotiation-context-chip.loading {
  border-color: rgba(183, 190, 129, 0.48);
  background: rgba(250, 251, 241, 0.94);
}

.favorite-negotiation-context-chip.guide {
  border-color: rgba(206, 171, 102, 0.58);
  background: rgba(255, 248, 231, 0.98);
  color: #835f1d;
}

.favorite-negotiation-context-chip.guide.verify_low_ask {
  border-color: rgba(90, 154, 126, 0.56);
  background: rgba(235, 248, 242, 0.98);
  color: #1a6a56;
}

.favorite-negotiation-context-chip.guide.chase_caution,
.favorite-negotiation-context-chip.guide.aggressive_low_probability {
  border-color: rgba(220, 140, 103, 0.58);
  background: rgba(255, 242, 235, 0.98);
  color: #9c5331;
}

.favorite-negotiation-score-panel {
  min-width: 196px;
  display: grid;
  gap: 8px;
  padding: 14px 14px 13px;
  border-radius: 18px;
  border: 1px solid var(--neg-divider);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(243, 247, 249, 0.96) 100%);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.92);
}

.favorite-negotiation-score-panel.buyer,
.favorite-negotiation-score-panel.buyer-soft {
  border-color: rgba(95, 165, 137, 0.42);
  background: linear-gradient(180deg, #ffffff 0%, var(--neg-buyer-soft) 100%);
}

.favorite-negotiation-score-panel.band-bargain,
.favorite-negotiation-score-panel.band-good {
  border-color: rgba(95, 165, 137, 0.42);
  background: linear-gradient(180deg, #ffffff 0%, var(--neg-buyer-soft) 100%);
}

.favorite-negotiation-score-panel.band-fair {
  border-color: rgba(190, 178, 130, 0.44);
  background: linear-gradient(180deg, #ffffff 0%, rgba(249, 245, 232, 0.98) 100%);
}

.favorite-negotiation-score-panel.band-watch,
.favorite-negotiation-score-panel.band-expensive {
  border-color: rgba(220, 146, 108, 0.42);
  background: linear-gradient(180deg, #ffffff 0%, var(--neg-seller-soft) 100%);
}

.favorite-negotiation-score-panel.seller,
.favorite-negotiation-score-panel.seller-soft {
  border-color: rgba(220, 146, 108, 0.42);
  background: linear-gradient(180deg, #ffffff 0%, var(--neg-seller-soft) 100%);
}

.favorite-negotiation-score-panel.is-withheld {
  border-style: dashed;
  border-color: rgba(123, 138, 151, 0.44);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(242, 246, 248, 0.98) 100%);
}

.favorite-negotiation-score-eyebrow {
  color: var(--neg-muted);
  font-size: 0.55rem;
  font-weight: 950;
  letter-spacing: 0.04em;
}

.favorite-negotiation-score-value-row {
  display: flex;
  align-items: flex-end;
  gap: 3px;
}

.favorite-type-deal-score-gauge {
  width: 128px;
  height: 74px;
}

.favorite-type-deal-score-gauge-stack {
  position: absolute;
  left: 50%;
  bottom: 2px;
  transform: translateX(-50%);
  display: inline-flex;
  align-items: baseline;
  justify-content: center;
  gap: 2px;
  color: var(--neg-ink-strong);
  font-variant-numeric: tabular-nums;
}

.favorite-type-deal-score-gauge-stack strong {
  color: inherit;
  font-size: 1.7rem;
  font-weight: 950;
  line-height: 1;
  letter-spacing: 0;
}

.favorite-type-deal-score-gauge-stack small {
  color: var(--neg-muted);
  font-size: 0.68rem;
  font-weight: 900;
}

.favorite-negotiation-score-panel.band-bargain .favorite-type-deal-score-gauge-stack,
.favorite-negotiation-score-panel.band-good .favorite-type-deal-score-gauge-stack {
  color: var(--neg-buyer);
}

.favorite-negotiation-score-panel.band-fair .favorite-type-deal-score-gauge-stack {
  color: #7c6c42;
}

.favorite-negotiation-score-panel.band-watch .favorite-type-deal-score-gauge-stack,
.favorite-negotiation-score-panel.band-expensive .favorite-type-deal-score-gauge-stack {
  color: var(--neg-seller);
}

.favorite-negotiation-score-value-row.is-withheld {
  align-items: center;
  gap: 0;
}

.favorite-negotiation-score-value-row strong {
  color: var(--neg-ink-strong);
  font-size: 1.82rem;
  font-weight: 980;
  line-height: 0.92;
  letter-spacing: -0.05em;
}

.favorite-negotiation-score-value-row .favorite-type-deal-score-gauge-stack strong {
  color: inherit;
  font-size: 1.7rem;
  font-weight: 950;
  line-height: 1;
  letter-spacing: 0;
}

.favorite-negotiation-score-panel.buyer .favorite-negotiation-score-value-row strong,
.favorite-negotiation-score-panel.buyer-soft .favorite-negotiation-score-value-row strong {
  color: var(--neg-buyer);
}

.favorite-negotiation-score-panel.seller .favorite-negotiation-score-value-row strong,
.favorite-negotiation-score-panel.seller-soft .favorite-negotiation-score-value-row strong {
  color: var(--neg-seller);
}

.favorite-negotiation-score-panel.is-withheld .favorite-negotiation-score-value-row strong {
  color: #627281;
  font-size: 1.34rem;
  letter-spacing: -0.03em;
}

.favorite-negotiation-score-unit {
  color: var(--neg-muted);
  font-size: 0.76rem;
  font-weight: 900;
  line-height: 1.1;
}

.favorite-negotiation-score-state-row {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}

.favorite-negotiation-score-state {
  color: var(--neg-ink);
  font-size: 0.68rem;
  font-weight: 950;
}

.favorite-negotiation-score-guard {
  justify-content: flex-start;
  min-height: 20px;
  padding: 0 7px;
  border-radius: 999px;
  background: rgba(255, 248, 232, 0.88);
  color: #7f6221;
  font-size: 0.53rem;
}

.favorite-negotiation-score-panel.is-withheld .favorite-negotiation-score-guard {
  background: rgba(241, 245, 248, 0.92);
  color: #596876;
}

.favorite-negotiation-score-caption {
  margin: -1px 0 0;
  color: var(--neg-muted-strong);
  font-size: 0.58rem;
  line-height: 1.36;
}

.favorite-type-deal-score-meta {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
  color: var(--neg-muted-strong);
  font-size: 0.62rem;
  font-weight: 850;
}

.favorite-type-deal-score-meta strong {
  color: var(--neg-ink);
  font-size: 0.78rem;
  font-weight: 950;
}

.favorite-negotiation-score-factors {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 5px;
}

.favorite-negotiation-score-factor {
  position: relative;
  padding-left: 10px;
  color: var(--neg-muted-strong);
  font-size: 0.58rem;
  line-height: 1.34;
  text-align: left;
}

.favorite-negotiation-score-factor::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.48em;
  width: 5px;
  height: 5px;
  border-radius: 999px;
  background: rgba(127, 142, 151, 0.6);
}

.favorite-negotiation-score-factor.buyer {
  color: var(--neg-buyer);
}

.favorite-negotiation-score-factor.buyer::before {
  background: rgba(17, 119, 100, 0.72);
}

.favorite-negotiation-score-factor.seller {
  color: var(--neg-seller);
}

.favorite-negotiation-score-factor.seller::before {
  background: rgba(185, 95, 56, 0.72);
}

.favorite-negotiation-action-card {
  display: grid;
  gap: 5px;
  padding: 12px 14px;
  border-radius: 16px;
  border: 1px solid rgba(199, 208, 214, 0.76);
  background: linear-gradient(180deg, rgba(248, 250, 252, 0.95) 0%, rgba(243, 248, 250, 0.92) 100%);
}

.favorite-negotiation-action-card.buyer,
.favorite-negotiation-action-card.buyer-soft {
  border-color: rgba(95, 165, 137, 0.34);
  background: linear-gradient(180deg, rgba(245, 251, 248, 0.98) 0%, rgba(235, 247, 241, 0.98) 100%);
}

.favorite-negotiation-action-card.seller,
.favorite-negotiation-action-card.seller-soft {
  border-color: rgba(220, 146, 108, 0.34);
  background: linear-gradient(180deg, rgba(255, 248, 245, 0.98) 0%, rgba(255, 241, 235, 0.98) 100%);
}

.favorite-negotiation-action-kicker {
  color: var(--neg-muted);
  font-size: 0.55rem;
  font-weight: 950;
  letter-spacing: 0.04em;
}

.favorite-negotiation-action-line,
.favorite-negotiation-action-detail {
  margin: 0;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.favorite-negotiation-action-line {
  color: var(--neg-ink-strong);
  font-size: 0.8rem;
  font-weight: 900;
  line-height: 1.36;
  -webkit-line-clamp: 2;
}

.favorite-negotiation-action-detail {
  color: var(--neg-muted);
  font-size: 0.63rem;
  font-weight: 820;
  line-height: 1.42;
  -webkit-line-clamp: 2;
}

.favorite-negotiation-pyeong-section {
  display: grid;
  gap: 7px;
}

.favorite-negotiation-pyeong-picker {
  gap: 2px;
  padding-bottom: 0;
  border-bottom: 1px solid var(--neg-divider);
}

.favorite-negotiation-pyeong-chip {
  padding: 8px 9px 7px;
  border-radius: 12px 12px 0 0;
  border: 0;
  border-bottom: 2px solid transparent;
  background: transparent;
  color: var(--neg-muted);
  box-shadow: none;
}

.favorite-negotiation-pyeong-chip.is-active {
  color: var(--neg-tone);
  border-bottom-color: var(--neg-tone);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.72) 0%, rgba(248, 251, 252, 0.98) 100%);
}

.favorite-negotiation-pyeong-chip strong {
  font-size: 0.7rem;
}

.favorite-negotiation-pyeong-meta-strip {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
  border: 1px solid var(--neg-divider);
  border-radius: 14px;
  background: var(--neg-surface);
  overflow: hidden;
}

.favorite-negotiation-pyeong-meta-item {
  gap: 3px;
  min-width: 0;
  padding: 8px 10px;
  border-left: 1px solid var(--neg-divider);
  background: transparent;
}

.favorite-negotiation-pyeong-meta-item:first-child {
  border-left: 0;
}

.favorite-negotiation-pyeong-meta-item b {
  color: var(--neg-muted);
  font-size: 0.53rem;
}

.favorite-negotiation-pyeong-meta-item strong {
  color: var(--neg-ink-strong);
  font-size: 0.7rem;
  letter-spacing: -0.01em;
}

.favorite-negotiation-card-body {
  gap: 12px;
}

.favorite-negotiation-offer-panel {
  display: grid;
  gap: 9px;
  padding: 13px 14px 14px;
  border-radius: 18px;
  border: 1px solid var(--neg-divider);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(244, 248, 250, 0.96) 100%);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.94);
}

.favorite-negotiation-offer-panel.is-reference {
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(250, 247, 240, 0.96) 100%);
}

.favorite-negotiation-offer-panel.is-withheld {
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(251, 247, 239, 0.96) 100%);
}

.favorite-negotiation-offer-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
  flex-wrap: wrap;
}

.favorite-negotiation-offer-basis {
  color: var(--neg-muted);
  font-size: 0.58rem;
}

.favorite-negotiation-offer-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 9px;
}

.favorite-negotiation-offer-card {
  gap: 4px;
  min-height: 74px;
  padding: 10px 11px;
  border-color: var(--neg-divider);
  background: rgba(255, 255, 255, 0.96);
}

.favorite-negotiation-offer-card.is-target {
  grid-column: 1 / -1;
  min-height: 92px;
  padding: 13px 14px;
  border-color: rgba(197, 207, 214, 0.86);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, var(--neg-tone-soft) 100%);
}

.favorite-negotiation-offer-card span {
  color: var(--neg-muted);
  font-size: 0.54rem;
  letter-spacing: 0.04em;
}

.favorite-negotiation-offer-card strong {
  color: var(--neg-ink-strong);
  font-size: 0.98rem;
  letter-spacing: -0.03em;
}

.favorite-negotiation-offer-card.is-target strong {
  color: var(--neg-tone);
  font-size: 1.28rem;
  line-height: 1.02;
}

.favorite-negotiation-offer-card small {
  color: var(--neg-muted);
  font-size: 0.58rem;
  font-weight: 820;
  line-height: 1.35;
}

.favorite-negotiation-offer-note {
  color: var(--neg-muted);
}

.favorite-negotiation-offer-warning {
  color: var(--neg-seller);
}

.favorite-negotiation-offer-empty {
  display: grid;
  gap: 4px;
  padding: 2px 0 1px;
}

.favorite-negotiation-offer-empty strong {
  color: var(--neg-ink-strong);
  font-size: 0.74rem;
  font-weight: 940;
}

.favorite-negotiation-offer-empty p {
  margin: 0;
  color: var(--neg-muted);
  font-size: 0.62rem;
  font-weight: 850;
  line-height: 1.42;
}

.favorite-negotiation-band-panel {
  display: grid;
  gap: 8px;
  padding: 13px 14px 14px;
  border-radius: 16px;
  border: 1px solid var(--neg-divider);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(244, 248, 250, 0.96) 100%);
}

.favorite-negotiation-band-panel.is-single-point,
.favorite-negotiation-band-panel.is-reference {
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(248, 249, 244, 0.96) 100%);
}

.favorite-negotiation-band-head {
  align-items: flex-start;
}

.favorite-negotiation-band-head-copy {
  display: grid;
  gap: 3px;
}

.favorite-negotiation-band-head strong {
  color: var(--neg-ink-strong);
  font-size: 0.76rem;
}

.favorite-negotiation-band-head-copy span {
  color: var(--neg-muted);
  font-size: 0.58rem;
  font-weight: 800;
}

.favorite-negotiation-band-track {
  min-height: 160px;
  padding: 8px 4px 12px;
}

.favorite-negotiation-band-track::before {
  top: 76px;
  height: 3px;
}

.favorite-negotiation-band-range {
  top: 69px;
  height: 14px;
  background: linear-gradient(90deg, rgba(238, 214, 155, 0.45) 0%, rgba(224, 177, 95, 0.88) 100%);
  box-shadow: 0 10px 22px rgba(143, 106, 29, 0.12);
}

.favorite-negotiation-band-marker {
  top: 77px;
}

.favorite-negotiation-band-marker i,
.favorite-negotiation-band-cluster i {
  width: 10px;
  height: 10px;
  box-shadow: 0 0 0 4px rgba(149, 164, 173, 0.14);
}

.favorite-negotiation-band-marker-label {
  display: grid;
  justify-items: center;
  gap: 3px;
  min-width: 48px;
  text-align: center;
}

.favorite-negotiation-band-marker[data-rail="top"] .favorite-negotiation-band-marker-label {
  top: auto;
  bottom: 18px;
  transform: translateX(-50%) translateY(calc(var(--lane, 0) * -31px));
}

.favorite-negotiation-band-marker[data-rail="bottom"] .favorite-negotiation-band-marker-label {
  top: 18px;
  bottom: auto;
  transform: translateX(-50%) translateY(calc(var(--lane, 0) * 28px));
}

.favorite-negotiation-band-marker b,
.favorite-negotiation-band-cluster-label b {
  color: var(--neg-muted);
}

.favorite-negotiation-band-marker small,
.favorite-negotiation-band-cluster-label small {
  color: var(--neg-ink-strong);
  font-size: 0.61rem;
  font-weight: 950;
  line-height: 1.06;
}

.favorite-negotiation-band-marker.is-ask small {
  color: #bf5a36;
}

.favorite-negotiation-band-marker.is-target small {
  color: #296b8c;
}

.favorite-negotiation-band-marker.is-no_chase small {
  color: #8b6113;
}

.favorite-negotiation-band-cluster {
  top: 77px;
}

.favorite-negotiation-band-cluster-label {
  bottom: 18px;
  padding: 6px 8px;
  border-color: var(--neg-divider);
}

.favorite-negotiation-band-interpretation {
  color: var(--neg-ink);
  font-size: 0.64rem;
  line-height: 1.5;
}

.favorite-negotiation-band-reference-summary {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.favorite-negotiation-band-reference-summary span {
  display: inline-grid;
  gap: 2px;
  min-width: 72px;
}

.favorite-negotiation-band-reference-summary b {
  color: var(--neg-muted);
  font-size: 0.53rem;
  font-weight: 900;
}

.favorite-negotiation-band-reference-summary strong {
  color: var(--neg-ink-strong);
  font-size: 0.78rem;
  font-weight: 950;
  letter-spacing: -0.02em;
}

.favorite-negotiation-band-reference-summary strong.ask {
  color: var(--neg-seller);
}

.favorite-negotiation-band-track.is-compact {
  min-height: 92px;
  padding: 8px 4px 10px;
}

.favorite-negotiation-band-track.is-compact::before {
  top: 46px;
}

.favorite-negotiation-band-track.is-compact .favorite-negotiation-band-marker {
  top: 47px;
}

.favorite-negotiation-band-track.is-compact .favorite-negotiation-band-marker i {
  width: 10px;
  height: 10px;
}

.favorite-negotiation-band-track.is-compact .favorite-negotiation-band-marker-label {
  min-width: 44px;
}

.favorite-negotiation-band-track.is-compact .favorite-negotiation-band-marker[data-rail="top"] .favorite-negotiation-band-marker-label {
  bottom: 16px;
  transform: translateX(-50%);
}

.favorite-negotiation-band-track.is-compact .favorite-negotiation-band-marker[data-rail="bottom"] .favorite-negotiation-band-marker-label {
  top: 16px;
  transform: translateX(-50%);
}

.favorite-negotiation-band-track.is-reference-only .favorite-negotiation-band-marker.is-no_chase {
  opacity: 0.72;
}

.favorite-negotiation-band-reference-line {
  position: absolute;
  top: 24px;
  bottom: 18px;
  width: 2px;
  border-radius: 999px;
  background: linear-gradient(180deg, rgba(232, 180, 78, 0.16) 0%, rgba(191, 136, 28, 0.95) 50%, rgba(232, 180, 78, 0.16) 100%);
}

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

.favorite-negotiation-detail-reason-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.favorite-negotiation-reason-group {
  gap: 7px;
}

.favorite-negotiation-reason-list {
  gap: 8px;
}

.favorite-negotiation-reason-card {
  gap: 4px;
  border-color: var(--neg-divider);
  border-left-width: 3px;
  background: rgba(250, 252, 253, 0.96);
  padding: 10px 11px;
}

.favorite-negotiation-reason-card.evidence {
  border-left-color: var(--neg-buyer);
}

.favorite-negotiation-reason-card.risk {
  border-left-color: var(--neg-seller);
}

.favorite-negotiation-reason-kicker {
  color: var(--neg-muted);
  font-size: 0.54rem;
  font-weight: 950;
  letter-spacing: 0.05em;
}

.favorite-negotiation-reason-card strong {
  color: var(--neg-ink-strong);
  font-size: 0.68rem;
}

.favorite-negotiation-reason-card p {
  color: var(--neg-muted);
  font-size: 0.61rem;
  line-height: 1.42;
}

.favorite-negotiation-card-meta {
  gap: 6px;
  padding-top: 2px;
  border-top: 1px solid rgba(219, 228, 232, 0.82);
}

.favorite-negotiation-source-footer {
  color: var(--neg-muted);
  font-size: 0.58rem;
  line-height: 1.42;
}

.favorite-negotiation-card-actions {
  padding-top: 2px;
  border-top: 1px solid rgba(219, 228, 232, 0.82);
}

.favorite-negotiation-detail-toggle,
.favorite-negotiation-open-btn {
  min-height: 34px;
  padding: 7px 12px;
  border-color: var(--neg-divider-strong);
  color: var(--neg-muted-strong);
}

.favorite-negotiation-open-btn {
  border-color: rgba(131, 160, 79, 0.52);
  background: linear-gradient(180deg, #ffffff 0%, #eef6db 100%);
  color: #496b1c;
}

.favorite-negotiation-type-summary-block {
  gap: 10px;
}

.favorite-negotiation-type-summary-block--map {
  --complex-map-popup-lowest-gap: 4px;
  --complex-map-popup-delta-price-col-width: 2.28rem;
  --complex-map-popup-delta-pct-col-width: 1.18rem;
  --complex-map-popup-delta-age-col-width: 1.24rem;
  --complex-map-popup-delta-sep-col-width: 0.22rem;
  --complex-map-popup-delta-pill-width: calc(
    var(--complex-map-popup-delta-price-col-width)
    + var(--complex-map-popup-delta-pct-col-width)
    + var(--complex-map-popup-delta-age-col-width)
    + (var(--complex-map-popup-delta-sep-col-width) * 2)
    + 0.56rem
  );
  gap: 0;
  padding: 0;
  overflow: hidden;
}

.favorite-negotiation-map-summary-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 6px 8px;
  padding: 10px 12px 0;
}

.favorite-negotiation-map-summary-meta .favorite-negotiation-source-footer {
  flex: 1 1 180px;
  min-width: 0;
}

.favorite-negotiation-map-summary-secondary {
  padding-top: 8px;
}

.favorite-negotiation-detail-card--supplemental {
  gap: 10px;
}

.favorite-negotiation-aux-heat {
  display: grid;
  gap: 6px;
}

.favorite-negotiation-aux-heat > span {
  color: #6c7e87;
  font-size: 0.61rem;
  font-weight: 900;
}

.favorite-negotiation-context-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.favorite-negotiation-context-tag {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 0 9px;
  border-radius: 999px;
  border: 1px solid rgba(190, 202, 207, 0.76);
  background: rgba(248, 251, 252, 0.96);
  color: #5d7380;
  font-size: 0.61rem;
  font-weight: 900;
}

.favorite-negotiation-context-tag.surge {
  border-color: rgba(224, 107, 67, 0.42);
  color: #ae5428;
}

.favorite-negotiation-context-tag.lead {
  border-color: rgba(186, 120, 34, 0.42);
  color: #946114;
}

.favorite-negotiation-context-tag.calm,
.favorite-negotiation-context-tag.pending {
  color: #60756a;
}

.favorite-activity-summary-heat {
  display: grid;
  gap: 4px;
}

.favorite-activity-summary-heat-label {
  color: #6c7e87;
  font-size: 0.58rem;
  font-weight: 900;
}

.favorite-activity-summary-heat .favorite-activity-heat-strip {
  min-height: 18px;
}

.favorite-activity-summary-heat .favorite-activity-heat-cell {
  border-radius: 4px;
}

.favorite-activity-heatbar {
  width: 100%;
  height: 10px;
  border-radius: 999px;
  background: rgba(208, 220, 212, 0.56);
  overflow: hidden;
}

.favorite-activity-heatbar span {
  display: block;
  height: 100%;
  border-radius: inherit;
}

.favorite-activity-heatbar span.surge {
  background: linear-gradient(90deg, #f0b27c 0%, #e86b40 100%);
}

.favorite-activity-heatbar span.lead {
  background: linear-gradient(90deg, #f0d18b 0%, #d19832 100%);
}

.favorite-activity-heatbar span.confirm {
  background: linear-gradient(90deg, #82d2c1 0%, #1f8a79 100%);
}

.favorite-activity-heatbar span.watch {
  background: linear-gradient(90deg, #9cb4ef 0%, #4a68c9 100%);
}

.favorite-activity-heatbar span.pending,
.favorite-activity-heatbar span.calm {
  background: linear-gradient(90deg, #c8d4dd 0%, #7d8f9a 100%);
}

.favorite-activity-card-actions {
  display: flex;
  justify-content: flex-end;
}

.favorite-activity-card-open-btn {
  border: 1px solid rgba(120, 154, 77, 0.72);
  border-radius: 999px;
  background: linear-gradient(180deg, #ffffff 0%, #eef6dc 100%);
  color: #47681f;
  font-size: 0.7rem;
  font-weight: 900;
  padding: 8px 12px;
}

.favorite-activity-timeline-wrap {
  display: grid;
  gap: 6px;
  padding: 10px 11px;
  border: 1px solid rgba(198, 209, 218, 0.72);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.78);
}

.favorite-activity-timeline-lane {
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr);
  gap: 8px;
  align-items: center;
}

.favorite-activity-timeline-label {
  color: #627281;
  font-size: 0.64rem;
  font-weight: 900;
}

.favorite-activity-timeline-track {
  display: grid;
  grid-template-columns: repeat(30, minmax(0, 1fr));
  gap: 3px;
}

.favorite-activity-timeline-cell {
  display: block;
  height: 14px;
  border-radius: 4px;
  background: rgba(199, 208, 216, 0.24);
  box-shadow: inset 0 0 0 1px rgba(188, 201, 210, 0.22);
}

.favorite-activity-timeline-cell.is-active.lead {
  background: rgba(209, 152, 50, var(--activity-level));
}

.favorite-activity-timeline-cell.is-active.confirm {
  background: rgba(31, 138, 121, var(--activity-level));
}

.favorite-activity-dashboard-empty {
  padding: 22px 16px;
  border: 1px dashed rgba(179, 193, 185, 0.94);
  border-radius: 16px;
  color: #65766b;
  font-size: 0.82rem;
  font-weight: 800;
  text-align: center;
  background: rgba(255, 255, 255, 0.78);
}

@media (max-width: 980px) {
  .favorite-activity-dashboard-toolbar-main {
    grid-template-columns: minmax(0, 1fr);
    gap: 8px;
  }

  .favorite-activity-dashboard-dialog {
    width: min(100vw - 20px, 980px);
    max-height: min(92vh, 920px);
  }

  .favorite-activity-dashboard-visual-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .favorite-market-monthly-top-dialog {
    width: min(100vw - 20px, 920px);
  }

  .favorite-market-monthly-top-grid {
    grid-template-columns: repeat(5, minmax(102px, 1fr));
  }

  .favorite-activity-stage-grid {
    grid-template-columns: repeat(5, minmax(108px, 1fr));
    overflow-x: auto;
    padding-bottom: 2px;
  }

  .favorite-activity-dashboard-stats {
    grid-template-columns: repeat(5, minmax(104px, 1fr));
    overflow-x: auto;
  }

  .favorite-activity-driver-strip.compact {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .favorite-activity-dashboard-sort-row {
    grid-template-columns: repeat(5, minmax(126px, 1fr));
  }

  .favorite-activity-overview-list {
    max-height: none;
  }
}

@media (max-width: 720px) {
  .ranking-meta-badge,
  .activity-spec-chip.ranking {
    font-size: 0.72rem;
    padding: 4px 8px;
  }

  .ranking-index-card {
    min-width: 82px;
    padding: 6px 9px;
  }

  .ranking-index-card-label {
    font-size: 0.5rem;
  }

  .ranking-index-card strong {
    font-size: 0.98rem;
  }

  .ranking-activity-track {
    grid-template-columns: minmax(0, 1fr);
    gap: 6px;
  }

  .ranking-activity-track-label {
    text-align: left;
  }

  .favorite-activity-dashboard-popup {
    padding: 0;
  }

  .favorite-activity-dashboard-dialog {
    width: 100vw;
    max-height: 100vh;
    height: 100vh;
    border-radius: 0;
    border-left: 0;
    border-right: 0;
  }

  .favorite-activity-dashboard-head,
  .favorite-activity-dashboard-toolbar {
    padding-inline: var(--favorite-activity-dashboard-mobile-inline-padding);
  }

  .favorite-activity-dashboard-head {
    position: sticky;
    top: 0;
    z-index: 2;
    align-items: center;
  }

  .favorite-activity-dashboard-head-actions {
    flex-shrink: 0;
  }

  .favorite-activity-dashboard-body {
    padding: var(--favorite-activity-dashboard-body-mobile-padding);
  }

  .favorite-activity-dashboard-summary {
    font-size: 0.72rem;
  }

  .favorite-activity-dashboard-meta {
    font-size: 0.58rem;
  }

  .favorite-activity-dashboard-copy {
    display: none;
  }

  .favorite-activity-dashboard-stats {
    display: flex;
    flex-wrap: nowrap;
    grid-template-columns: none;
    gap: 6px;
    overflow-x: auto;
    padding-bottom: 2px;
  }

  .favorite-activity-stat-card.compact {
    flex: 0 0 86px;
    padding: 6px 7px;
    border-radius: 12px;
  }

  .favorite-activity-stat-card.compact .label {
    font-size: 0.5rem;
    line-height: 1.18;
  }

  .favorite-activity-stat-card.compact strong {
    font-size: 0.86rem;
  }

  .favorite-activity-dashboard-filter-groups {
    gap: 6px;
  }

  .favorite-activity-dashboard-filter-head strong {
    font-size: 0.64rem;
  }

  .favorite-activity-dashboard-filter-head span {
    font-size: 0.54rem;
  }

  .favorite-activity-filter-row {
    flex-wrap: nowrap;
    gap: var(--favorite-activity-filter-row-mobile-gap);
    margin-bottom: var(--favorite-activity-filter-row-dense-mobile-margin-bottom);
    overflow-x: auto;
    padding-bottom: 2px;
  }

  .favorite-activity-filter-chip {
    flex: 0 0 auto;
    gap: var(--favorite-activity-filter-chip-dense-mobile-gap);
    padding: 7px 10px;
    font-size: var(--favorite-activity-filter-chip-mobile-font-size);
  }

  .favorite-activity-dashboard-sort-row {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--favorite-activity-sort-row-mobile-gap);
    overflow: hidden;
  }

  .favorite-activity-sort-chip {
    min-height: var(--favorite-activity-sort-chip-mobile-min-height);
    font-size: var(--favorite-activity-sort-chip-mobile-font-size);
    padding: var(--favorite-activity-sort-chip-mobile-padding);
    gap: 3px;
  }

  .favorite-activity-sort-chip-direction {
    width: 18px;
    height: 18px;
    font-size: 0.58rem;
  }

  .favorite-activity-dashboard-price-row {
    flex-wrap: nowrap;
    overflow-x: auto;
    padding-bottom: 2px;
  }

  .favorite-activity-bar-item-head {
    grid-template-columns: 24px minmax(0, 1fr);
  }

  .favorite-activity-bar-badges {
    grid-column: 1 / -1;
    justify-content: flex-start;
  }

  .favorite-activity-stage-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: var(--favorite-activity-stage-grid-mobile-gap);
    overflow: hidden;
  }

  .favorite-activity-stage-filter-btn {
    padding: var(--favorite-activity-stage-filter-mobile-padding);
    border-radius: var(--favorite-activity-stage-filter-mobile-radius);
    gap: var(--favorite-activity-stage-filter-mobile-gap);
  }

  .favorite-activity-stage-filter-btn strong {
    font-size: 0.63rem;
  }

  .favorite-activity-stage-filter-btn span {
    font-size: 0.55rem;
  }

  .favorite-activity-overview-list {
    grid-template-columns: minmax(0, 1fr);
    max-height: none;
  }

  .favorite-activity-dashboard-card {
    border-radius: 16px;
  }

  .favorite-activity-dashboard-card-summary {
    padding: 10px;
    gap: 7px;
  }

  .favorite-activity-dashboard-card-body {
    padding: 0 10px 10px;
  }

  .favorite-activity-dashboard-card-head {
    gap: 8px;
  }

  .favorite-activity-dashboard-card-title {
    gap: 6px;
  }

  .favorite-activity-dashboard-rank {
    width: 22px;
    height: 22px;
    font-size: 0.63rem;
  }

  .favorite-activity-dashboard-card-title strong {
    font-size: 0.8rem;
  }

  .favorite-negotiation-card {
    padding: 10px;
    gap: 8px;
  }

  .favorite-negotiation-card-head {
    align-items: stretch;
  }

  .favorite-negotiation-score-pill {
    min-width: 80px;
    padding: 7px 9px;
  }

  .favorite-negotiation-score-factors {
    max-width: none;
    justify-items: stretch;
  }

  .favorite-negotiation-score-factor {
    text-align: left;
  }

  .favorite-negotiation-title-row strong {
    font-size: 0.86rem;
  }

  .favorite-negotiation-pyeong-meta-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .favorite-negotiation-pyeong-meta-item {
    padding: 7px 9px;
  }

  .favorite-negotiation-band-marker-label {
    min-width: 38px;
  }

  .favorite-negotiation-band-marker b,
  .favorite-negotiation-band-cluster-label b {
    font-size: 0.52rem;
  }

  .favorite-negotiation-band-marker small,
  .favorite-negotiation-band-cluster-label small {
    font-size: 0.56rem;
  }

  .favorite-negotiation-detail-card,
  .favorite-negotiation-disclosure-block {
    padding: 10px 11px;
  }

  .favorite-negotiation-band-track {
    min-height: 124px;
  }

  .favorite-negotiation-band-track.is-compact {
    min-height: 86px;
  }

  .favorite-activity-dashboard-card-title span {
    font-size: 0.61rem;
  }

  .favorite-activity-dashboard-card-copy {
    font-size: 0.68rem;
  }

  .favorite-activity-dashboard-card-summary-meta {
    gap: 4px 6px;
    font-size: 0.6rem;
  }

  .favorite-activity-driver-pill-row {
    gap: 5px;
  }

  .favorite-activity-driver-pill {
    padding: 4px 7px;
  }

  .favorite-activity-driver-pill .label {
    font-size: 0.53rem;
  }

  .favorite-activity-driver-pill strong {
    font-size: 0.61rem;
  }

  .favorite-activity-driver-pill small {
    font-size: 0.52rem;
  }

  .favorite-activity-summary-heat-label {
    font-size: 0.55rem;
  }

  .favorite-activity-overview-chart {
    --activity-matrix-label-width: 14px;
    --activity-matrix-gap: 2px;
  }

  .favorite-activity-overview-header {
    grid-template-columns: 24px minmax(104px, 134px) minmax(172px, 1fr);
    gap: 8px;
    font-size: 0.57rem;
  }

  .favorite-activity-overview-signal-header {
    gap: 4px;
  }

  .favorite-activity-overview-header-score {
    font-size: 0.51rem;
  }

  .favorite-activity-overview-ruler {
    padding-left: calc(var(--activity-matrix-label-width) + 4px);
    font-size: 0.52rem;
    gap: 4px;
  }

  .favorite-activity-overview-ruler::before {
    left: calc(var(--activity-matrix-label-width) + 4px);
  }

  .favorite-activity-overview-row {
    grid-template-columns: 24px minmax(0, 1fr);
    grid-template-areas:
      "rank main"
      "rank signal";
    gap: 6px;
    padding: 0;
  }

  .favorite-activity-overview-rank {
    width: 24px;
    height: 24px;
    font-size: 0.67rem;
  }

  .favorite-activity-overview-top strong {
    font-size: 0.8rem;
  }

  .favorite-activity-overview-region {
    font-size: 0.64rem;
  }

  .favorite-activity-overview-meta-row {
    gap: 4px;
  }

  .favorite-activity-negotiation-pill {
    width: 100%;
    padding: 6px 9px;
  }

  .favorite-activity-dashboard-card-badges .favorite-activity-negotiation-pill {
    width: auto;
  }

  .favorite-activity-negotiation-pill strong {
    font-size: 0.72rem;
  }

  .favorite-activity-negotiation-pill span {
    font-size: 0.58rem;
  }

  .favorite-activity-driver {
    padding: 6px 7px;
  }

  .favorite-activity-driver strong {
    font-size: 0.66rem;
  }

  .favorite-activity-driver small {
    font-size: 0.54rem;
  }

  .favorite-activity-overview-meta-chip {
    min-height: 26px;
    padding: 4px 7px;
    font-size: 0.54rem;
  }

  .favorite-activity-overview-meta-chip strong {
    font-size: 0.63rem;
  }

  .favorite-activity-overview-stage-chip {
    min-height: 26px;
    padding: 4px 7px;
    font-size: 0.61rem;
  }

  .favorite-activity-overview-signal-panel {
    gap: 6px;
    margin-top: 1px;
  }

  .favorite-activity-overview-score {
    min-width: 0;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas:
      "label value"
      "meta value";
    gap: 2px 8px;
    padding: 7px 8px 7px;
  }

  .favorite-activity-overview-score .score-label {
    font-size: 0.48rem;
  }

  .favorite-activity-overview-score strong {
    font-size: 1.16rem;
  }

  .favorite-activity-overview-score .score-meta {
    font-size: 0.49rem;
  }

  .favorite-activity-overview-spec-row {
    gap: 4px;
  }

  .activity-spec-chip.favorite {
    padding: 3px 7px;
    font-size: 0.53rem;
  }

  .activity-spec-chip.favorite strong {
    font-size: 0.58rem;
  }

  .favorite-negotiation-map-summary-meta {
    padding: 9px 10px 0;
  }

  .favorite-negotiation-type-summary-block--map {
    --complex-map-popup-lowest-gap: 2px;
    --complex-map-popup-delta-price-col-width: 2.08rem;
    --complex-map-popup-delta-pct-col-width: 1.06rem;
    --complex-map-popup-delta-age-col-width: 1.12rem;
    --complex-map-popup-delta-sep-col-width: 0.18rem;
    --complex-map-popup-delta-pill-width: calc(
      var(--complex-map-popup-delta-price-col-width)
      + var(--complex-map-popup-delta-pct-col-width)
      + var(--complex-map-popup-delta-age-col-width)
      + (var(--complex-map-popup-delta-sep-col-width) * 2)
      + 0.56rem
    );
  }

  .favorite-activity-detail-summary {
    padding: 10px 10px;
    gap: 7px;
  }

  .favorite-activity-detail-summary-head {
    align-items: flex-start;
  }

  .favorite-activity-detail-summary-copy p {
    font-size: 0.68rem;
  }

  .favorite-activity-detail-summary-copy p.detail {
    font-size: 0.64rem;
  }

  .favorite-activity-overview-detail-strip {
    grid-template-columns: minmax(0, 1fr);
    gap: 4px;
    padding: 0 6px 2px;
  }

  .favorite-activity-overview-driver-panel {
    padding: 0 6px 2px;
  }

  .favorite-activity-overview-detail-flow {
    padding: 0 6px 2px;
  }

  .favorite-activity-overview-detail .complex-map-popup-updated {
    align-self: flex-end;
    margin-top: -3px;
    padding: 2px 5px;
    font-size: 0.58rem;
  }

  .favorite-activity-overview-detail .complex-map-popup-updated.is-inline {
    justify-self: start;
    align-self: start;
    margin-top: 0;
    padding: 0;
    max-width: 100%;
    justify-items: start;
    text-align: left;
  }

  .favorite-activity-overview-card.is-compared::before {
    top: 9px;
    right: 10px;
  }

  .favorite-activity-compare-selection {
    gap: 6px;
  }

  .favorite-activity-compare-chip {
    padding: var(--favorite-activity-compare-chip-mobile-padding);
  }

  .favorite-activity-compare-chip .name {
    font-size: 0.7rem;
  }

  .favorite-activity-compare-chip .meta {
    font-size: 0.62rem;
  }

  .trade-monthly-chart-bars {
    gap: var(--trade-monthly-gap, 4px);
    min-height: 96px;
  }

  .trade-monthly-bar-track {
    height: 74px;
  }

  .trade-monthly-bar-label {
    font-size: 0.53rem;
  }

  .favorite-activity-overview-actions {
    padding: 2px 6px 7px;
  }

  .favorite-activity-overview-matrix-lane {
    gap: 6px;
  }

  .favorite-activity-overview-matrix-label {
    font-size: 0.58rem;
  }

  .favorite-activity-timeline-lane {
    grid-template-columns: 40px minmax(0, 1fr);
  }

  .favorite-activity-timeline-track {
    gap: 2px;
  }

  .favorite-activity-timeline-cell {
    height: 12px;
  }
}

@media (max-width: 720px) {
  .favorite-activity-metric-grid {
    grid-template-columns: 1fr;
  }

  .favorite-activity-meta-row {
    font-size: 0.64rem;
  }
}

.alert-item-detail {
  color: #5d707b;
  font-size: 0.74rem;
  font-weight: 800;
  line-height: 1.25;
  margin-top: 2px;
}

.alert-item-table-wrap {
  margin-top: 6px;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.alert-item-table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
  font-size: 0.72rem;
}

.alert-item-table th {
  text-align: left;
  color: #6a7a88;
  font-size: 0.64rem;
  font-weight: 900;
  padding: 0 0 5px;
  border-bottom: 1px solid rgba(206, 217, 224, 0.9);
}

.alert-item-table td {
  padding: 6px 0 2px;
  vertical-align: top;
  border-bottom: 1px dashed rgba(213, 221, 226, 0.9);
}

.alert-item-table tbody tr:last-child td {
  border-bottom: 0;
}

.alert-item-table-type {
  color: #203848;
  font-weight: 900;
  white-space: nowrap;
}

.alert-item-table-delta {
  font-weight: 900;
  white-space: nowrap;
}

.alert-item-table-row.drop .alert-item-table-delta {
  color: #2b59c3;
}

.alert-item-table-row.rise .alert-item-table-delta {
  color: #c7363d;
}

.alert-item-table-row.is-fresh-24h td {
  background: rgba(242, 235, 255, 0.9);
}

.alert-item-table-price-main,
.alert-item-table-date {
  color: #445867;
  font-weight: 800;
}

.alert-item-table-date {
  white-space: nowrap;
  font-size: 0.66rem;
}

.alert-item-table-date.is-fresh {
  font-weight: 900;
  color: #7b4dd0;
}

.alert-item-table-price-main,
.alert-item-table-price-link {
  display: block;
}

.alert-item-table-price-link {
  color: #274fba;
  font-weight: 900;
  text-decoration: none;
}

.alert-item-table-price-link:hover {
  color: #1c3f9d;
  text-decoration: underline;
}

.alert-item-table-price-link.latest {
  margin-top: 1px;
  color: #6a7a88;
  font-size: 0.63rem;
  font-weight: 800;
}

.alert-item-table-price-sub {
  display: block;
  margin-top: 1px;
  color: #6a7a88;
  font-size: 0.63rem;
  font-weight: 800;
}

.selected-complex-placeholder {
  display: grid;
  gap: 8px;
}

.selected-complex-placeholder-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.selected-complex-placeholder-head strong {
  color: #183638;
  font-size: 1.05rem;
  font-weight: 900;
}

.selected-complex-placeholder-head span {
  color: #426270;
  font-size: 0.76rem;
  font-weight: 900;
}

.selected-complex-placeholder-sub {
  color: #58706f;
  font-size: 0.85rem;
  font-weight: 800;
}

.selected-complex-placeholder-body {
  margin: 0;
  color: #687c7a;
  font-size: 0.9rem;
  line-height: 1.45;
}

.alert-item.high {
  border-color: #f0b4a9;
  background: #fff6f4;
}

.alert-item.warn {
  border-color: #ead9ab;
  background: #fffdf4;
}

.alert-item.info {
  border-color: #b8d1c4;
  background: #f7fffb;
}

.alert-item.drop {
  border-color: rgba(89, 121, 209, 0.35);
  background: linear-gradient(180deg, #f7faff 0%, #eef4ff 100%);
}

.alert-item.rise {
  border-color: rgba(216, 104, 104, 0.35);
  background: linear-gradient(180deg, #fff8f8 0%, #fff0f0 100%);
}

.alert-item.stable {
  border-color: rgba(192, 205, 215, 0.82);
  background: linear-gradient(180deg, #fcfefe 0%, #f4f8fb 100%);
}

.alert-item.has-fresh-change {
  box-shadow:
    0 6px 14px rgba(128, 92, 214, 0.12),
    inset 0 0 0 1px rgba(255, 255, 255, 0.82);
}

.alert-item.has-fresh-change.drop,
.alert-item.has-fresh-change.rise,
.alert-item.has-fresh-change.stable {
  border-color: rgba(161, 134, 232, 0.78);
  background: linear-gradient(180deg, #fcf9ff 0%, #f4ecff 100%);
}

.alert-item.has-fresh-change.drop .alert-item-head span,
.alert-item.has-fresh-change.rise .alert-item-head span,
.alert-item.has-fresh-change.stable .alert-item-head span {
  color: #7b4dd0;
  font-weight: 900;
}

.mobile-favorites-fab,
.mobile-today-fab,
.mobile-favorites-backdrop,
.mobile-favorites-close {
  display: none;
}

@media (min-width: 901px) {
  body.favorites-desktop-popup .layout.main-layout {
    grid-template-columns: minmax(0, 1fr);
  }

  body.favorites-desktop-popup.favorites-mobile-open {
    overflow: hidden;
  }

  body.favorites-desktop-popup .mobile-favorites-backdrop {
    display: block;
    position: fixed;
    inset: 0;
    z-index: 1120;
    border: 0;
    background: rgba(14, 19, 25, 0.36);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.18s ease;
  }

  body.favorites-desktop-popup.favorites-mobile-open .mobile-favorites-backdrop {
    opacity: 1;
    pointer-events: auto;
  }

  body.favorites-desktop-popup .mobile-favorites-fab,
  body.favorites-desktop-popup .mobile-today-fab {
    display: none;
    position: fixed;
    right: 18px;
    z-index: 1150;
    color: #fff;
    border-radius: 999px;
    padding: 10px 15px;
    font-size: 0.86rem;
    font-weight: 900;
    letter-spacing: 0.01em;
    box-shadow:
      0 12px 24px rgba(17, 35, 27, 0.22),
      inset 0 1px 0 rgba(255, 255, 255, 0.18);
  }

  body.favorites-desktop-popup .mobile-favorites-fab {
    bottom: 20px;
    border: 1px solid var(--fav-accent-border, #278772);
    background: linear-gradient(180deg, var(--fav-accent-start, #3ab69a) 0%, var(--fav-accent-end, #2e9b83) 100%);
  }

  body.favorites-desktop-popup .mobile-today-fab {
    bottom: 66px;
    border: 1px solid var(--view-accent-border, #4f6ac0);
    background: linear-gradient(180deg, var(--view-accent-start, #5b94e4) 0%, var(--view-accent-end, #5a79d2) 100%);
  }

  body.favorites-desktop-popup.favorites-mobile-open .mobile-favorites-fab,
  body.favorites-desktop-popup.favorites-mobile-open .mobile-today-fab {
    opacity: 0;
    pointer-events: none;
  }

  body.favorites-desktop-popup .favorites-panel {
    position: fixed;
    top: 14px;
    right: 14px;
    width: min(430px, 94vw);
    max-height: calc(100vh - 28px);
    overflow: hidden;
    z-index: 1130;
    transform: translateX(calc(100% + 24px));
    transition: transform 0.22s ease;
    box-shadow: 0 14px 36px rgba(0, 0, 0, 0.26);
  }

  body.favorites-desktop-popup.favorites-mobile-open .favorites-panel {
    transform: translateX(0);
  }

  body.favorites-desktop-popup .mobile-favorites-close {
    display: inline-flex;
    position: absolute;
    top: 6px;
    right: 6px;
    z-index: 2;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 999px;
    border: 1px solid #9a3f14;
    background: linear-gradient(180deg, #f5883f 0%, #e46a20 100%);
    color: #fff;
    font-size: 1.05rem;
    font-weight: 900;
    padding: 0;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
  }

  body.favorites-desktop-popup .favorites-panel h2 {
    padding-right: 34px;
  }

  body.favorites-desktop-popup .favorites-panel-head-top {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 6px;
    padding-right: 42px;
  }

  body.favorites-desktop-popup .favorites-panel-head-actions {
    margin-left: 0;
  }

  body.favorites-desktop-popup .favorites-panel .side-panel-filter-toggle {
    justify-self: flex-start;
  }

  body.favorites-desktop-popup .favorites-panel .favorite-alerts {
    max-height: min(24vh, 210px);
    margin-bottom: 0;
  }

  body.favorites-desktop-popup .favorites-panel .favorites-list {
    max-height: none;
    padding-right: 4px;
  }
}

.price-insight-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.84rem;
}

.price-insight-table th,
.price-insight-table td {
  border-bottom: 1px solid var(--line);
  padding: 6px;
  text-align: left;
  white-space: nowrap;
}

body.index-admin-open {
  overflow: hidden;
}

body.complex-map-open {
  overflow: hidden;
}

body.compare-popup-open {
  overflow: hidden;
}

.compare-popup {
  position: fixed;
  inset: 0;
  z-index: 2270;
  display: grid;
  place-items: center;
  padding: 14px;
}

.compare-backdrop {
  position: absolute;
  inset: 0;
  border: 0;
  margin: 0;
  padding: 0;
  background: rgba(12, 20, 26, 0.48);
}

.compare-dialog {
  position: relative;
  z-index: 1;
  width: min(1380px, 98vw);
  height: min(90vh, 900px);
  border-radius: 18px;
  border: 1px solid #cfdadb;
  background: #f6fbfa;
  box-shadow:
    0 24px 54px rgba(10, 24, 35, 0.36),
    0 6px 16px rgba(13, 39, 32, 0.2);
  overflow: hidden;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
}

.compare-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 12px;
  border-bottom: 1px solid #d6e0e1;
  background: linear-gradient(180deg, #ffffff 0%, #edf4f3 100%);
}

.compare-head h2 {
  margin: 0;
  color: #173533;
  font-size: 1rem;
}

.compare-head-actions {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.compare-panel-toggle-btn {
  display: none;
}

.compare-close-btn {
  width: 31px;
  height: 31px;
  border-radius: 999px;
  border: 1px solid #cb8e70;
  background: linear-gradient(180deg, #f59a58 0%, #e2732c 100%);
  color: #fff;
  font-size: 0.95rem;
  font-weight: 900;
  line-height: 1;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.compare-body {
  min-height: 0;
  display: grid;
  grid-template-columns: minmax(290px, 340px) minmax(0, 1fr);
  gap: 10px;
  padding: 10px;
}

.compare-body.is-side-collapsed {
  grid-template-columns: minmax(0, 1fr);
}

.compare-body.is-side-collapsed .compare-side-panel {
  display: none;
}

.compare-side-panel {
  min-height: 0;
  border: 1px solid #d5e1df;
  border-radius: 14px;
  background: linear-gradient(180deg, #ffffff 0%, #f4f9f8 100%);
  padding: 9px;
  display: grid;
  grid-template-rows: auto minmax(170px, 1fr) auto;
  gap: 8px;
  align-content: start;
}

.compare-search-section,
.compare-source-section,
.compare-selected-section {
  min-height: 0;
  display: grid;
  gap: 6px;
}

.compare-search-section {
  grid-template-rows: auto auto;
}

.compare-search-section.has-results {
  grid-template-rows: auto auto minmax(112px, 1fr);
}

.compare-source-section {
  grid-template-rows: auto auto minmax(0, 1fr);
  align-content: start;
}

.compare-selected-section {
  grid-template-rows: auto auto auto;
  align-content: start;
}

.compare-side-panel h3 {
  margin: 0 0 6px;
  color: #274645;
  font-size: 0.83rem;
}

.compare-search-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 6px;
}

.compare-search-row input {
  min-width: 0;
}

.compare-search-row button {
  min-width: 62px;
}

.compare-source-tabs {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px;
  margin-bottom: 6px;
}

.compare-source-status {
  margin: -1px 2px 2px;
  color: #5c6f7e;
  font-size: 0.72rem;
  font-weight: 800;
}

.compare-source-tab {
  border: 1px solid #cad5ea;
  border-radius: 999px;
  background: #f5f8ff;
  color: #3d4f7a;
  font-size: 0.72rem;
  font-weight: 900;
  padding: 7px 9px;
}

.compare-source-tab.active {
  border-color: #5576d8;
  background: linear-gradient(180deg, #6f8ff2 0%, #5b74d9 100%);
  color: #ffffff;
}

.compare-pick-list {
  margin: 0;
  padding: 0;
  list-style: none;
  border: 1px solid #d8e4e1;
  border-radius: 10px;
  background: #ffffff;
  overflow-y: auto;
}

.compare-search-results {
  max-height: 160px;
}

.compare-source-list {
  max-height: none;
  min-height: 0;
  height: 100%;
}

.compare-selected-list {
  max-height: none;
  margin: 0;
  padding: 0;
  list-style: none;
  border: 1px solid #d8e4e1;
  border-radius: 10px;
  background: #ffffff;
  overflow: visible;
}

.compare-empty-row {
  padding: 10px 11px;
  color: #627271;
  font-size: 0.74rem;
  font-weight: 700;
}

.compare-pick-item,
.compare-selected-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 7px;
  padding: 8px;
  border-bottom: 1px solid #edf2f1;
}

.compare-pick-item:last-child,
.compare-selected-item:last-child {
  border-bottom: 0;
}

.compare-pick-item.is-selected {
  background: linear-gradient(180deg, #f1f7ff 0%, #e8f1ff 100%);
}

.compare-pick-main,
.compare-selected-main {
  min-width: 0;
  display: grid;
  gap: 2px;
}

.compare-pick-main strong,
.compare-selected-main strong {
  color: #203938;
  font-size: 0.78rem;
  font-weight: 900;
  line-height: 1.2;
}

.compare-pick-main small,
.compare-selected-main small {
  color: #5a6e70;
  font-size: 0.67rem;
  font-weight: 700;
  line-height: 1.2;
}

.compare-pick-updated,
.compare-selected-updated {
  color: #6b7f85;
}

.compare-pick-toggle,
.compare-selected-remove {
  border: 1px solid #c9d7ec;
  border-radius: 999px;
  background: #f2f6ff;
  color: #31539e;
  font-size: 0.68rem;
  font-weight: 900;
  padding: 5px 9px;
  white-space: nowrap;
}

.compare-pick-toggle:disabled {
  border-color: #d8dee9;
  background: #f4f6fa;
  color: #8a95a8;
}

.compare-selected-remove {
  border-color: #dec8c2;
  background: #fff4f2;
  color: #9a4c42;
}

.compare-selected-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 6px;
}

.compare-selected-head span {
  color: #485f66;
  font-size: 0.72rem;
  font-weight: 900;
}

.compare-refresh-status {
  margin: 7px 0 0;
  color: #5f7170;
  font-size: 0.7rem;
  font-weight: 800;
  line-height: 1.3;
}

.compare-refresh-status.is-running {
  color: #2757ad;
}

.compare-refresh-status.is-error {
  color: #a03f38;
}

.compare-result-panel {
  min-height: 0;
  border: 1px solid #d5e1df;
  border-radius: 14px;
  background: linear-gradient(180deg, #ffffff 0%, #f3f8f7 100%);
  padding: 9px;
  overflow: hidden;
  display: grid;
}

.compare-popup-results {
  min-height: 0;
  overflow: auto;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  gap: 8px;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}

.compare-popup-summary {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  padding: 7px 9px;
  border: 1px solid #d5dfef;
  border-radius: 10px;
  background: linear-gradient(180deg, #f6f9ff 0%, #edf3ff 100%);
  color: #3b4f79;
  font-size: 0.74rem;
  font-weight: 800;
}

.compare-popup-summary strong {
  color: #2a4485;
  font-size: 0.78rem;
}

.compare-summary-chip {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  border: 1px solid rgba(168, 187, 232, 0.88);
  background: linear-gradient(180deg, #ffffff 0%, #f3f7ff 100%);
  color: #36527a;
  padding: 5px 10px;
  font-size: 0.72rem;
  font-weight: 800;
}

.compare-summary-chip.warn,
.compare-freshness.warn {
  color: #a26418;
}

.compare-summary-chip.risk,
.compare-freshness.risk {
  color: #a54a3f;
}

.compare-summary-chip.stable,
.compare-freshness.stable {
  color: #2f5f8c;
}

.compare-freshness {
  font-weight: 900;
}

.compare-empty {
  margin: 0;
  padding: 14px 12px;
  border: 1px dashed #cedada;
  border-radius: 12px;
  color: #5f7472;
  font-size: 0.8rem;
  font-weight: 800;
  text-align: center;
}

.compare-matrix-wrap {
  border: 1px solid #d4dfde;
  border-radius: 12px;
  overflow: auto;
  background: #ffffff;
  min-height: 0;
  max-height: 100%;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  touch-action: pan-x pan-y;
  scrollbar-gutter: stable both-edges;
}

.compare-matrix {
  width: 100%;
  min-width: 820px;
  border-collapse: collapse;
  table-layout: fixed;
  color: #233a3d;
}

.compare-matrix thead th {
  position: sticky;
  top: 0;
  z-index: 2;
  border-bottom: 1px solid #d8e0e0;
  background: linear-gradient(180deg, #fbfffe 0%, #f2f8f7 100%);
  color: #36535a;
  font-size: 0.73rem;
  font-weight: 900;
  text-align: left;
  padding: 8px 9px;
}

.compare-matrix thead th:first-child {
  position: sticky;
  left: 0;
  z-index: 5;
}

.compare-matrix th,
.compare-matrix td {
  border-bottom: 1px solid #edf2f1;
  border-right: 1px solid #edf2f1;
  padding: 7px 9px;
  vertical-align: middle;
  font-size: 0.75rem;
}

.compare-matrix th:last-child,
.compare-matrix td:last-child {
  border-right: 0;
}

.compare-matrix tbody tr:not(.compare-matrix-group) > th {
  position: sticky;
  left: 0;
  z-index: 1;
  width: 188px;
  color: #4f6267;
  font-weight: 900;
  background: #fbfcfc;
}

.compare-col-head {
  display: grid;
  gap: 2px;
}

.compare-col-head strong {
  color: #173634;
  font-size: 0.82rem;
  font-weight: 900;
  line-height: 1.2;
}

.compare-col-head small {
  color: #607174;
  font-size: 0.68rem;
  font-weight: 700;
}

.compare-matrix-group th {
  background: #eef4f3 !important;
  color: #2d4b4f !important;
  font-size: 0.72rem !important;
  font-weight: 900 !important;
  letter-spacing: 0.01em;
}

.compare-gap,
.compare-change {
  font-weight: 900;
}

.compare-gap.is-up,
.compare-change.is-up {
  color: #b6403d;
}

.compare-gap.is-down,
.compare-change.is-down {
  color: #2f61ca;
}

.compare-gap.is-same,
.compare-change.is-same {
  color: #6d7480;
}

.compare-gap.is-none,
.compare-change.is-none {
  color: #6a7982;
}

.compare-open-detail-btn {
  border: 1px solid #b9cbf2;
  border-radius: 999px;
  background: linear-gradient(180deg, #f2f7ff 0%, #e2ecff 100%);
  color: #284b98;
  font-size: 0.7rem;
  font-weight: 900;
  padding: 5px 10px;
  white-space: nowrap;
}

.compare-open-detail-btn:hover {
  border-color: #7ea2ee;
  color: #1d3f90;
}

.compare-mobile-list,
.compare-mobile-table-wrap {
  display: none;
}

.compare-mobile-table-wrap {
  border: 1px solid #d6e0df;
  border-radius: 12px;
  overflow: auto;
  background: #fff;
  scrollbar-gutter: stable both-edges;
  -webkit-overflow-scrolling: touch;
}

.compare-mobile-table {
  width: 100%;
  min-width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
  color: #233a3d;
}

.compare-mobile-table thead th {
  position: sticky;
  top: 0;
  z-index: 2;
  padding: 8px 9px;
  text-align: center;
  font-size: 0.72rem;
  font-weight: 900;
  color: #36535a;
  border-bottom: 1px solid #d8e0e0;
  background: linear-gradient(180deg, #fbfffe 0%, #f2f8f7 100%);
}

.compare-mobile-table thead th:first-child {
  position: sticky;
  left: 0;
  z-index: 4;
}

.compare-mobile-table th,
.compare-mobile-table td {
  padding: 7px 9px;
  border-bottom: 1px solid #edf2f1;
  border-right: 1px solid #edf2f1;
  vertical-align: middle;
  font-size: 0.72rem;
  text-align: center;
}

.compare-mobile-table th:last-child,
.compare-mobile-table td:last-child {
  border-right: 0;
}

.compare-mobile-table tbody tr:not(.compare-mobile-table-group) > th {
  position: sticky;
  left: 0;
  z-index: 1;
  width: 66px;
  color: #4f6267;
  font-weight: 900;
  background: #fbfcfc;
}

.compare-mobile-table-group th {
  background: #eef4f3 !important;
  color: #2d4b4f !important;
  font-size: 0.7rem !important;
  font-weight: 900 !important;
  letter-spacing: 0.01em;
}

.compare-mobile-col-head {
  display: grid;
  gap: 2px;
  justify-items: center;
}

.compare-mobile-col-head strong {
  color: #153433;
  font-size: 0.8rem;
  font-weight: 900;
  line-height: 1.2;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  word-break: keep-all;
}

.compare-mobile-col-head small {
  color: #597073;
  font-size: 0.66rem;
  font-weight: 800;
}

.compare-mobile-table-row-actions td {
  text-align: center;
}

.compare-mobile-table td {
  word-break: keep-all;
  overflow-wrap: anywhere;
  line-height: 1.2;
}

.compare-mobile-row-label {
  display: grid;
  justify-items: center;
  gap: 2px;
  line-height: 1.05;
}

.compare-mobile-row-no {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  border-radius: 999px;
  background: linear-gradient(180deg, #eef2ff 0%, #dfe7ff 100%);
  color: #334d93;
  font-size: 0.62rem;
  font-weight: 900;
}

.compare-mobile-row-text {
  color: #4b6167;
  font-size: 0.63rem;
  font-weight: 900;
  letter-spacing: -0.01em;
}

.compare-mobile-row-preference {
  font-size: 0.56rem;
  font-weight: 900;
  line-height: 1;
}

.compare-mobile-row-preference.is-up {
  color: #2a69c7;
}

.compare-mobile-row-preference.is-down {
  color: #b35e2c;
}

.compare-mobile-cell {
  display: grid;
  justify-items: center;
  align-content: center;
  gap: 4px;
  min-height: 54px;
}

.compare-mobile-cell-main {
  display: grid;
  justify-items: center;
  gap: 3px;
  width: 100%;
}

.compare-mobile-cell-main small {
  display: block;
  color: #61767f;
  font-size: 0.58rem;
  font-weight: 800;
}

.compare-mobile-rank-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 28px;
  height: 18px;
  padding: 0 6px;
  border-radius: 999px;
  background: linear-gradient(180deg, #eef3ff 0%, #dce7ff 100%);
  color: #35529d;
  font-size: 0.56rem;
  font-weight: 900;
}

.compare-mobile-rank-badge.rank-1 {
  background: linear-gradient(180deg, #fff7d2 0%, #ffe79c 100%);
  color: #8d6112;
}

.compare-mobile-rank-badge.rank-2 {
  background: linear-gradient(180deg, #f3f5fa 0%, #e0e5ef 100%);
  color: #586170;
}

.compare-mobile-rank-badge.rank-3 {
  background: linear-gradient(180deg, #fbe8de 0%, #f3caa9 100%);
  color: #8b5a2b;
}

.compare-mobile-rank-badge.is-empty {
  opacity: 0;
}

.compare-mobile-review-stack,
.compare-mobile-trade-stack {
  display: grid;
  justify-items: center;
  gap: 2px;
}

.compare-mobile-review-stack strong {
  color: #193b45;
  font-size: 0.67rem;
  font-weight: 900;
}

.compare-mobile-review-stack .favorite-ask-review {
  font-size: 0.63rem;
  font-weight: 900;
}

.compare-review-stack strong {
  display: block;
  color: #193b45;
  font-size: 0.7rem;
  font-weight: 900;
}

.compare-mobile-trade-stack span,
.compare-mobile-trade-stack small {
  white-space: nowrap;
}

.compare-mobile-trade-stack span {
  color: #27414a;
  font-size: 0.62rem;
  font-weight: 800;
}

.compare-mobile-trade-stack b {
  color: #5a6a77;
  font-weight: 900;
}

.compare-mobile-trade-stack small {
  color: #6a7b86;
  font-size: 0.56rem;
  font-weight: 800;
}

.compare-mobile-card {
  border: 1px solid #d6e0df;
  border-radius: 12px;
  background: linear-gradient(180deg, #ffffff 0%, #f6fbfa 100%);
  overflow: hidden;
}

.compare-mobile-card-head {
  padding: 10px 12px 8px;
  border-bottom: 1px solid #e3ecea;
  display: grid;
  gap: 2px;
}

.compare-mobile-card-head strong {
  color: #153433;
  font-size: 0.9rem;
  font-weight: 900;
  line-height: 1.25;
}

.compare-mobile-card-head small {
  color: #597073;
  font-size: 0.73rem;
  font-weight: 800;
}

.compare-mobile-section {
  padding: 8px 12px;
  border-bottom: 1px solid #edf2f1;
}

.compare-mobile-section:last-child {
  border-bottom: 0;
}

.compare-mobile-section h4 {
  margin: 0 0 6px;
  color: #2a4a4c;
  font-size: 0.72rem;
  font-weight: 900;
}

.compare-mobile-metrics {
  display: grid;
  gap: 5px;
}

.compare-mobile-metric {
  display: grid;
  grid-template-columns: minmax(92px, 116px) minmax(0, 1fr);
  align-items: start;
  gap: 8px;
}

.compare-mobile-metric-label {
  color: #5a6e73;
  font-size: 0.67rem;
  font-weight: 800;
  line-height: 1.3;
}

.compare-mobile-metric-value {
  min-width: 0;
  color: #1d3638;
  font-size: 0.72rem;
  font-weight: 900;
  line-height: 1.3;
}

.compare-mobile-metric-action .compare-mobile-metric-value {
  display: inline-flex;
}

.complex-map-popup {
  position: fixed;
  inset: 0;
  z-index: 2240;
  display: grid;
  place-items: center;
  padding: 14px;
}

.complex-map-backdrop {
  position: absolute;
  inset: 0;
  border: 0;
  margin: 0;
  padding: 0;
  background: rgba(12, 20, 26, 0.46);
}

.complex-map-dialog {
  position: relative;
  z-index: 1;
  width: min(1260px, 98vw);
  height: min(88vh, 860px);
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  border-radius: 16px;
  border: 1px solid #cedad5;
  background: #f7fbfa;
  box-shadow:
    0 22px 48px rgba(8, 19, 25, 0.34),
    0 6px 16px rgba(14, 42, 32, 0.18);
  overflow: hidden;
}

.complex-map-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 12px;
  border-bottom: 1px solid #d6dfdc;
  background: linear-gradient(180deg, #ffffff 0%, #eef5f3 100%);
}

.complex-map-head h2 {
  margin: 0;
  font-size: 0.98rem;
  color: #1c3330;
}

.complex-map-head-actions {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.complex-map-scope-select {
  min-width: 92px;
  max-width: 108px;
  border: 1px solid #cad6e8;
  border-radius: 999px;
  background: linear-gradient(180deg, #ffffff 0%, #f4f8ff 100%);
  color: #25415d;
  font-size: 0.72rem;
  font-weight: 800;
  line-height: 1.1;
  padding: 8px 26px 8px 10px;
}

.complex-map-favorites-toggle {
  width: 37px;
  height: 37px;
  min-width: 37px;
  padding: 0;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  line-height: 1;
}

.complex-map-favorites-toggle.is-active {
  border-color: #d6ac3a;
  background: linear-gradient(180deg, #fff4b8 0%, #f8dd72 100%);
  color: #765600;
  box-shadow: inset 0 0 0 1px rgba(214, 172, 58, 0.2);
}

.complex-map-mixed-use-toggle {
  min-width: 46px;
  padding-left: 9px;
  padding-right: 9px;
}

.complex-map-locate-btn {
  width: 37px;
  height: 37px;
  min-width: 37px;
  padding: 0;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.complex-map-locate-icon {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.complex-map-mixed-use-toggle.is-active {
  border-color: #7ca0f8;
  background: linear-gradient(180deg, #eff5ff 0%, #dce8ff 100%);
  color: #234a9f;
  box-shadow: inset 0 0 0 1px rgba(124, 160, 248, 0.18);
}

.complex-map-close-btn {
  width: 31px;
  height: 31px;
  border-radius: 999px;
  border: 1px solid #cb8e70;
  background: linear-gradient(180deg, #f59a58 0%, #e2732c 100%);
  color: #fff;
  font-size: 0.95rem;
  font-weight: 900;
  line-height: 1;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.complex-map-body {
  position: relative;
  min-height: 0;
  background: #ecf3f0;
}

.complex-map-filter-panel {
  position: absolute;
  left: 56px;
  right: 10px;
  top: 10px;
  z-index: 420;
  width: auto;
  border: 1px solid #d6deee;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.93);
  box-shadow: 0 8px 20px rgba(16, 29, 48, 0.16);
  padding: 8px 10px;
  backdrop-filter: blur(2px);
}

.complex-map-filter-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.complex-map-filter-summary {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  min-height: 26px;
}

.complex-map-bulk-panel {
  min-width: min(100%, 360px);
  display: grid;
  gap: 6px;
  justify-items: end;
}

.complex-map-bulk-fields,
.complex-map-bulk-actions {
  width: 100%;
  display: flex;
  justify-content: flex-end;
  gap: 6px;
  flex-wrap: wrap;
}

.complex-map-bulk-select {
  min-width: 122px;
  border: 1px solid #cad6e8;
  border-radius: 10px;
  background: linear-gradient(180deg, #ffffff 0%, #f4f8ff 100%);
  color: #25415d;
  font-size: 0.7rem;
  font-weight: 800;
  padding: 6px 10px;
}

.complex-map-bulk-start-btn,
.complex-map-bulk-stop-btn {
  font-size: 0.68rem;
  font-weight: 900;
  padding: 6px 11px;
}

.complex-map-bulk-status {
  width: 100%;
  margin: 0;
  color: #49627a;
  font-size: 0.66rem;
  font-weight: 800;
  line-height: 1.35;
  text-align: right;
}

.complex-map-bulk-status.is-running {
  color: #1d5e52;
}

.complex-map-bulk-status.is-error {
  color: #a03832;
}

.complex-map-filter-summary-chip {
  display: inline-flex;
  align-items: center;
  border: 1px solid #cfd8ea;
  border-radius: 999px;
  background: #f8fbff;
  color: #34485f;
  font-size: 0.64rem;
  font-weight: 800;
  line-height: 1;
  padding: 5px 10px;
  cursor: pointer;
  transition: background 0.18s ease, border-color 0.18s ease, color 0.18s ease;
}

.complex-map-filter-summary-chip:hover {
  border-color: #93a6cf;
  background: #eef4ff;
}

.complex-map-filter-summary-chip.is-active {
  border-color: #2f64f0;
  background: linear-gradient(180deg, #3a72ff 0%, #2757d6 100%);
  color: #ffffff;
}

.complex-map-filter-summary-chip.is-static {
  cursor: default;
  border-color: #cad7d4;
  background: #f3f7f5;
  color: #3a5754;
}

.complex-map-filter-content {
  margin-top: 7px;
}

.complex-map-filter-row {
  display: flex;
  align-items: flex-start;
  gap: 8px;
}

.complex-map-filter-row + .complex-map-filter-row {
  margin-top: 6px;
}

.complex-map-filter-title {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 54px;
  min-height: 24px;
  border-radius: 999px;
  background: #eef3ff;
  color: #2d4faa;
  font-size: 0.67rem;
  font-weight: 900;
}

.complex-map-filter-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.complex-map-range-tools {
  display: grid;
  gap: 8px;
  width: min(100%, 380px);
  padding: 8px 10px 2px;
  border-radius: 12px;
  background: linear-gradient(180deg, rgba(242, 247, 255, 0.96) 0%, rgba(234, 242, 252, 0.92) 100%);
  border: 1px solid #d8e1ef;
}

.complex-map-range-summary-text {
  color: #42566f;
  font-size: 0.66rem;
  font-weight: 800;
  line-height: 1.3;
}

.complex-map-dual-range {
  --range-start: 0%;
  --range-end: 100%;
  position: relative;
  padding: 6px 0 20px;
}

.complex-map-dual-range-track,
.complex-map-dual-range-fill {
  position: absolute;
  left: 0;
  right: 0;
  top: 15px;
  height: 7px;
  border-radius: 999px;
}

.complex-map-dual-range-track {
  background: #cfd7e4;
  box-shadow: inset 0 1px 2px rgba(15, 26, 42, 0.12);
}

.complex-map-dual-range-fill {
  left: var(--range-start);
  right: auto;
  width: calc(var(--range-end) - var(--range-start));
  background: linear-gradient(90deg, #2f64f0 0%, #4d87ff 100%);
  box-shadow: 0 1px 4px rgba(47, 100, 240, 0.24);
}

.complex-map-dual-range-input {
  -webkit-appearance: none;
  appearance: none;
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 36px;
  margin: 0;
  background: transparent;
  pointer-events: none;
}

.complex-map-dual-range-input::-webkit-slider-runnable-track {
  height: 7px;
  background: transparent;
  border: 0;
}

.complex-map-dual-range-input::-moz-range-track {
  height: 7px;
  background: transparent;
  border: 0;
}

.complex-map-dual-range-input::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: linear-gradient(180deg, #4f83ff 0%, #2f64f0 100%);
  border: 2px solid #ffffff;
  box-shadow: 0 2px 8px rgba(28, 63, 143, 0.24);
  pointer-events: auto;
  cursor: pointer;
  margin-top: -9px;
}

.complex-map-dual-range-input::-moz-range-thumb {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: linear-gradient(180deg, #4f83ff 0%, #2f64f0 100%);
  border: 2px solid #ffffff;
  box-shadow: 0 2px 8px rgba(28, 63, 143, 0.24);
  pointer-events: auto;
  cursor: pointer;
}

.complex-map-dual-range-input.is-min {
  z-index: 2;
}

.complex-map-dual-range-input.is-max {
  z-index: 3;
}

.complex-map-dual-range-values {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  margin-top: 28px;
}

.complex-map-dual-range-value {
  min-width: 58px;
  color: #203551;
  font-size: 0.65rem;
  font-weight: 900;
}

.complex-map-dual-range-value:last-child {
  text-align: right;
}

.complex-map-filter-chip {
  border: 1px solid #cfd7e9;
  border-radius: 999px;
  background: #ffffff;
  color: #314458;
  font-size: 0.67rem;
  font-weight: 800;
  line-height: 1;
  padding: 6px 10px;
}

.complex-map-filter-chip.is-active {
  border-color: #2f64f0;
  background: linear-gradient(180deg, #3a72ff 0%, #2757d6 100%);
  color: #ffffff;
}

.complex-map-filter-actions {
  display: flex;
  justify-content: flex-end;
  margin-top: 6px;
  gap: 6px;
}

.complex-map-filter-reset-btn {
  border: 1px solid #c8d1e2;
  border-radius: 999px;
  background: #f4f7fb;
  color: #34465a;
  font-size: 0.66rem;
  font-weight: 900;
  padding: 5px 10px;
}

.complex-map-canvas {
  width: 100%;
  height: 100%;
  min-height: 420px;
  position: relative;
}

.complex-map-status {
  position: absolute;
  left: 12px;
  bottom: 10px;
  max-width: min(92%, 720px);
  margin: 0;
  border: 1px solid #cadad5;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.92);
  color: #355654;
  font-size: 0.74rem;
  font-weight: 800;
  padding: 4px 10px;
  box-shadow: 0 4px 12px rgba(24, 45, 39, 0.15);
}

.complex-map-status.error {
  border-color: #e2b2ab;
  background: rgba(253, 236, 235, 0.95);
  color: #a03832;
}

.complex-map-label-marker.leaflet-div-icon {
  background: transparent;
  border: 0;
  box-shadow: none;
}

.complex-map-marker-bubble {
  position: relative;
  width: 100%;
  height: 100%;
  padding-top: 16px;
  box-sizing: border-box;
  overflow: visible;
  --complex-marker-accent: #268e78;
  --complex-marker-soft: #eefcf7;
  --complex-marker-soft-strong: #e1f7f1;
  --complex-marker-border: #d8e3ee;
  --complex-marker-badge-bg: #f3f7ff;
  --complex-marker-badge-text: #3153d8;
  --complex-marker-text: #101828;
  --complex-marker-meta: #667085;
  --complex-marker-card-bg: #ffffff;
  --complex-marker-shadow: 0 8px 18px rgba(16, 24, 40, 0.13);
  --complex-marker-pointer: #ffffff;
  --complex-marker-alert-text: #cb1f28;
  --complex-marker-shell: #e8eef8;
  display: flex;
  align-items: stretch;
}

.complex-map-marker-bubble.is-updated {
  --complex-marker-pointer: #ffffff;
}

.complex-map-marker-bubble::before {
  content: "";
  position: absolute;
  left: 2px;
  right: 2px;
  top: 18px;
  bottom: 8px;
  border-radius: 20px;
  background: var(--complex-marker-shell);
  opacity: 1;
  z-index: 0;
}

.complex-map-marker-card {
  position: relative;
  width: 100%;
  height: calc(100% - 20px);
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  gap: 6px;
  padding: 11px 11px 10px 15px;
  border: 1px solid var(--complex-marker-border);
  border-radius: 18px;
  background: var(--complex-marker-card-bg);
  box-shadow: var(--complex-marker-shadow);
  overflow: hidden;
  box-sizing: border-box;
  z-index: 1;
}

.complex-map-marker-tone-bar {
  position: absolute;
  left: 0;
  top: 16px;
  bottom: 8px;
  width: 5px;
  background: var(--complex-marker-accent);
  border-radius: 18px;
  z-index: 2;
}

.complex-map-marker-score-chip {
  position: absolute;
  left: 12px;
  top: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  max-width: 84px;
  min-height: 24px;
  padding: 0 8px;
  border-radius: 999px;
  background: var(--complex-marker-badge-bg);
  color: var(--complex-marker-badge-text);
  font-size: 0.66rem;
  font-weight: 900;
  line-height: 1;
  letter-spacing: -0.02em;
  white-space: nowrap;
  box-shadow: 0 6px 12px rgba(16, 24, 40, 0.10);
  z-index: 3;
}

.complex-map-marker-pyeong-chip {
  position: absolute;
  top: 0;
  right: 10px;
  max-width: 70px;
  min-height: 24px;
  padding: 0 8px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.92);
  border: 1px solid rgba(209, 213, 219, 0.82);
  color: #475467;
  font-size: 0.62rem;
  font-weight: 900;
  line-height: 1;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  box-shadow: 0 5px 10px rgba(16, 24, 40, 0.08);
  z-index: 3;
}

.complex-map-marker-price-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
  min-width: 0;
}

.complex-map-marker-price-stack {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 3px;
  min-width: 0;
}

.complex-map-marker-price {
  display: block;
  min-width: 0;
  color: var(--complex-marker-text);
  font-size: 0.98rem;
  font-weight: 900;
  line-height: 1;
  letter-spacing: -0.05em;
  white-space: nowrap;
}

.complex-map-marker-delta-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  flex-shrink: 0;
  min-width: 60px;
  min-height: 28px;
  padding: 0 8px;
  border-radius: 999px;
  background: #f2f4f7;
  color: #667085;
  font-weight: 800;
  line-height: 1;
  white-space: nowrap;
  gap: 2px;
}

.complex-map-marker-delta-pill.is-up {
  background: #fef3f2;
  color: #d92d20;
}

.complex-map-marker-delta-pill.is-down {
  background: #eff8ff;
  color: #175cd3;
}

.complex-map-marker-delta-pill.is-neutral {
  background: #f2f4f7;
  color: #667085;
}

.complex-map-marker-delta-main {
  display: block;
  font-size: 0.61rem;
  font-weight: 900;
  line-height: 1;
}

.complex-map-marker-delta-sub {
  display: block;
  font-size: 0.47rem;
  font-weight: 800;
  line-height: 1;
  opacity: 0.88;
  white-space: nowrap;
}

.complex-map-marker-meta-row {
  display: flex;
  align-items: center;
  gap: 0;
  min-width: 0;
  color: var(--complex-marker-meta);
  font-size: 0.69rem;
  font-weight: 700;
  line-height: 1.05;
}

.complex-map-marker-meta-row.is-standard,
.complex-map-marker-meta-row.is-selected {
  align-items: center;
}

.complex-map-marker-pyeong {
  flex-shrink: 0;
  color: #344054;
  font-weight: 800;
}

.complex-map-marker-complex-row {
  display: -webkit-box;
  min-width: 0;
  color: #344054;
  font-size: 0.76rem;
  font-weight: 850;
  line-height: 1.1;
  white-space: normal;
  overflow: hidden;
  text-overflow: ellipsis;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.complex-map-marker-complex-row.is-unchecked {
  color: #344054;
  font-size: 0.74rem;
}

.complex-map-marker-households.is-inline {
  color: #98a2b3;
  font-size: 0.52rem;
  font-weight: 800;
  line-height: 1;
}

.complex-map-marker-complex-row.is-marquee {
  display: block;
  white-space: nowrap;
  text-overflow: clip;
  -webkit-line-clamp: unset;
}

.complex-map-marker-complex-row.is-marquee .complex-map-marker-complex-text {
  display: inline-block;
  min-width: 100%;
  width: max-content;
  padding-right: 24px;
  animation: complex-map-marker-complex-marquee 6.2s linear infinite;
}

.complex-map-marker-bubble.is-updated.is-compact .complex-map-marker-card {
  height: calc(100% - 22px);
  justify-content: center;
  align-items: center;
  gap: 0;
  padding: 12px 8px 10px;
  border: 1px solid color-mix(in srgb, var(--complex-marker-accent) 20%, rgba(255,255,255,0.8) 80%);
  border-radius: 12px;
  background: color-mix(in srgb, var(--complex-marker-accent) 88%, #ffffff 12%);
  box-shadow: 0 6px 12px rgba(16, 24, 40, 0.10);
}

.complex-map-marker-bubble.is-updated.is-compact::before {
  display: none;
}

.complex-map-marker-bubble.is-updated.is-compact .complex-map-marker-tone-bar {
  display: none;
}

.complex-map-marker-bubble.is-updated.is-compact .complex-map-marker-score-chip {
  display: none;
}

.complex-map-marker-bubble.is-updated.is-compact .complex-map-marker-pyeong-chip {
  display: none;
}

.complex-map-marker-bubble.is-updated.is-compact::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 0;
  transform: translateX(-50%);
  width: 0;
  height: 0;
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  border-top: 6px solid color-mix(in srgb, var(--complex-marker-accent) 88%, #ffffff 12%);
  z-index: 1;
}

.complex-map-marker-compact-pyeong-chip {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 14px;
  padding: 0 5px;
  border-radius: 999px;
  background: #ffffff;
  color: #1f2937;
  font-size: 0.43rem;
  font-weight: 800;
  line-height: 1;
  letter-spacing: -0.02em;
  z-index: 3;
  box-shadow: 0 4px 8px rgba(15, 23, 42, 0.14);
}

.complex-map-marker-compact-pyeong-chip.band-upto20 {
  background: #d9f2e6;
  color: #0f6b4a;
}

.complex-map-marker-compact-pyeong-chip.band-21to30 {
  background: #dbeafe;
  color: #1d4ed8;
}

.complex-map-marker-compact-pyeong-chip.band-31to40 {
  background: #ede9fe;
  color: #6d28d9;
}

.complex-map-marker-compact-pyeong-chip.band-41plus {
  background: #ffedd5;
  color: #c2410c;
}

.complex-map-marker-compact-price {
  display: block;
  color: #ffffff;
  font-size: 0.8rem;
  font-weight: 900;
  line-height: 1;
  letter-spacing: -0.04em;
}

.complex-map-marker-compact-delta {
  position: absolute;
  left: 50%;
  bottom: 8px;
  transform: translateX(-50%);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  min-width: 60px;
  min-height: 18px;
  padding: 0 6px;
  border-radius: 999px;
  background: #667085;
  color: #ffffff;
  box-shadow: 0 6px 12px rgba(15, 23, 42, 0.16);
  white-space: nowrap;
  z-index: 3;
}

.complex-map-marker-compact-delta.is-up {
  background: #d92d20;
}

.complex-map-marker-compact-delta.is-down {
  background: #175cd3;
}

.complex-map-marker-compact-delta.is-neutral {
  background: #667085;
}

.complex-map-marker-compact-delta-text {
  display: block;
  font-size: 0.45rem;
  font-weight: 900;
  line-height: 1;
}

.complex-map-marker-compact-delta-pct {
  display: block;
  font-size: 0.43rem;
  font-weight: 900;
  line-height: 1;
  opacity: 0.92;
}

.complex-map-marker-bubble.is-updated.is-selected .complex-map-marker-card {
  padding: 12px 12px 11px 17px;
  gap: 8px;
  border-color: var(--complex-marker-accent);
  box-shadow: 0 14px 28px rgba(16, 24, 40, 0.18);
}

.complex-map-marker-bubble.is-updated.is-selected .complex-map-marker-price {
  font-size: 1.08rem;
}

.complex-map-marker-bubble.is-updated.is-selected .complex-map-marker-delta-pill {
  min-height: 30px;
  padding: 0 8px;
  gap: 2px;
}

.complex-map-marker-bubble.is-updated.is-selected .complex-map-marker-delta-main {
  font-size: 0.63rem;
}

.complex-map-marker-bubble.is-updated.is-selected .complex-map-marker-delta-sub {
  font-size: 0.49rem;
}

.complex-map-marker-bubble.is-updated.is-selected .complex-map-marker-meta-row {
  font-size: 0.71rem;
}

.complex-map-marker-bubble.is-updated.is-selected .complex-map-marker-complex-row {
  font-size: 0.8rem;
}

.complex-map-marker-bubble.is-unchecked {
  --complex-marker-border: #d0d5dd;
  --complex-marker-card-bg: #f5f7fa;
  --complex-marker-accent: #d0d5dd;
  --complex-marker-pointer: #f5f7fa;
  --complex-marker-shell: #e7ebf0;
  --complex-marker-badge-bg: #eef2f6;
  --complex-marker-badge-text: #52606d;
}

.complex-map-marker-bubble.is-unchecked .complex-map-marker-card {
  justify-content: center;
  gap: 5px;
  padding: 10px 10px 9px 14px;
  border-radius: 16px;
  background: #f5f7fa;
  box-shadow: 0 6px 14px rgba(15, 23, 42, 0.10);
}

.complex-map-marker-households {
  display: block;
  color: #667085;
  font-size: 0.62rem;
  font-weight: 700;
  line-height: 1.05;
}

@keyframes complex-map-marker-complex-marquee {
  0%,
  12% {
    transform: translateX(0);
  }
  82% {
    transform: translateX(calc(-100% + 120px));
  }
  100% {
    transform: translateX(0);
  }
}

.complex-map-marker-bubble.is-updated.review-expensive {
  --complex-marker-accent: #d4442f;
  --complex-marker-soft: #fff4f1;
  --complex-marker-soft-strong: #ffe8e2;
  --complex-marker-badge-bg: #fff0eb;
  --complex-marker-badge-text: #b93815;
  --complex-marker-shell: #f7d9d2;
}

.complex-map-marker-bubble.is-updated.review-watch {
  --complex-marker-accent: #c68419;
  --complex-marker-soft: #fffaeb;
  --complex-marker-soft-strong: #fff1cf;
  --complex-marker-badge-bg: #fff4d5;
  --complex-marker-badge-text: #9a6700;
  --complex-marker-shell: #f8e8ba;
}

.complex-map-marker-bubble.is-updated.review-fair {
  --complex-marker-accent: #7a9a2d;
  --complex-marker-soft: #f7fbe8;
  --complex-marker-soft-strong: #edf6ce;
  --complex-marker-badge-bg: #eff7d6;
  --complex-marker-badge-text: #4f6b18;
  --complex-marker-shell: #dce9af;
}

.complex-map-marker-bubble.is-updated.review-good {
  --complex-marker-accent: #1f8f78;
  --complex-marker-soft: #eefcf7;
  --complex-marker-soft-strong: #dff7ef;
  --complex-marker-badge-bg: #e3faf2;
  --complex-marker-badge-text: #146356;
  --complex-marker-shell: #cbece1;
}

.complex-map-marker-bubble.is-updated.review-bargain {
  --complex-marker-accent: #466be4;
  --complex-marker-soft: #eef3ff;
  --complex-marker-soft-strong: #e1eaff;
  --complex-marker-badge-bg: #e8eeff;
  --complex-marker-badge-text: #3153d8;
  --complex-marker-shell: #d7e3ff;
}

.complex-map-marker-bubble.is-updated.review-unknown {
  --complex-marker-accent: #7b8794;
  --complex-marker-soft: #f4f6f8;
  --complex-marker-soft-strong: #e7ebef;
  --complex-marker-badge-bg: #eef2f6;
  --complex-marker-badge-text: #52606d;
  --complex-marker-shell: #e1e6eb;
}

.complex-map-marker-bubble::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 0;
  transform: translateX(-50%);
  width: 0;
  height: 0;
  border-left: 7px solid transparent;
  border-right: 7px solid transparent;
  border-top: 9px solid var(--complex-marker-pointer);
  z-index: 1;
}

@media (prefers-reduced-motion: reduce) {
  .complex-map-marker-date-text.is-alert {
    animation: none;
  }

  .complex-map-marker-trend-badge {
    animation: none;
  }
}

.complex-map-leaflet-popup .leaflet-popup-content-wrapper {
  border-radius: 12px;
  padding: 0;
  border: 1px solid #bed1f6;
  box-shadow: 0 9px 22px rgba(20, 35, 60, 0.22);
  overflow: hidden;
}

.complex-map-leaflet-popup .leaflet-popup-content {
  margin: 0;
  width: min(460px, calc(100vw - 44px));
  max-width: calc(100vw - 44px);
  min-width: 0;
  overflow: hidden;
  box-sizing: border-box;
}

.complex-map-popup-card {
  display: grid;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  gap: 0;
  background: #ffffff;
  overflow: hidden;
  box-sizing: border-box;
  isolation: isolate;
  --complex-map-popup-grid-max-height: 184px;
  --complex-map-popup-lowest-gap: 4px;
  --complex-map-popup-delta-price-col-width: 2.28rem;
  --complex-map-popup-delta-pct-col-width: 1.18rem;
  --complex-map-popup-delta-age-col-width: 1.24rem;
  --complex-map-popup-delta-sep-col-width: 0.22rem;
  --complex-map-popup-delta-pill-width: calc(
    var(--complex-map-popup-delta-price-col-width)
    + var(--complex-map-popup-delta-pct-col-width)
    + var(--complex-map-popup-delta-age-col-width)
    + (var(--complex-map-popup-delta-sep-col-width) * 2)
    + 0.56rem
  );
}

.complex-map-popup-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 6px;
  align-items: start;
  min-width: 0;
  padding: 9px 9px 2px;
  background: linear-gradient(180deg, #ffffff 0%, #f3f7ff 100%);
}

.complex-map-popup-head-secondary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  align-items: end;
  min-width: 0;
  padding: 0 9px 6px;
  border-bottom: 1px solid #dde6f8;
  background: linear-gradient(180deg, #ffffff 0%, #f3f7ff 100%);
}

.complex-map-popup-head-main {
  min-width: 0;
  display: grid;
  gap: 2px;
}

.complex-map-popup-head-top {
  min-width: 0;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
}

.complex-map-popup-title {
  min-width: 0;
  color: #173433;
  font-size: 0.89rem;
  font-weight: 900;
  line-height: 1.2;
}

.complex-map-popup-coverage {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  border: 1px solid #d4e0f6;
  background: rgba(255, 255, 255, 0.9);
  color: #2d548c;
  font-size: 0.68rem;
  font-weight: 900;
  line-height: 1.1;
  padding: 3px 8px;
  white-space: nowrap;
}

.complex-map-popup-coverage.is-partial {
  border-color: rgba(221, 136, 136, 0.82);
  background: rgba(204, 84, 92, 0.12);
  color: #9b4248;
}

.complex-map-popup-coverage.is-complete {
  border-color: rgba(126, 176, 245, 0.85);
  background: rgba(70, 122, 221, 0.16);
  color: #1f4f95;
}

.complex-map-popup-meta {
  display: grid;
  gap: 4px;
  color: #5a6968;
  font-size: 0.72rem;
  font-weight: 700;
  line-height: 1.25;
}

.complex-map-popup-meta-region {
  display: block;
}

.complex-map-popup-submeta {
  display: block;
  color: #6a7775;
  font-weight: 800;
  font-size: 0.69rem;
}

.complex-map-popup-meta-badges {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 5px 6px;
}

.complex-map-popup-meta-badge {
  font-size: 0.67rem;
  font-weight: 900;
  padding: 2px 8px;
  border-width: 1px;
}

.complex-map-popup-updated {
  display: inline-grid;
  gap: 2px;
  justify-items: end;
  align-items: start;
  min-width: 0;
  max-width: 100%;
  border: 1px solid #d5deef;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.72);
  color: #35536f;
  font-size: 0.67rem;
  font-weight: 900;
  line-height: 1.18;
  padding: 4px 7px;
  text-align: right;
  white-space: nowrap;
}

.complex-map-popup-updated.is-inline {
  justify-items: start;
  align-items: center;
  justify-self: start;
  width: 100%;
  border: none;
  border-radius: 0;
  background: transparent;
  padding: 0;
  text-align: left;
  white-space: normal;
  color: #546d82;
}

.complex-map-popup-updated.is-fresh {
  border-color: rgba(128, 182, 255, 0.84);
  background: rgba(61, 112, 205, 0.2);
  color: #1f4f95;
}

.complex-map-popup-updated.is-stale {
  border-color: rgba(255, 164, 164, 0.86);
  background: rgba(205, 75, 84, 0.16);
  color: #9c3f44;
}

.complex-map-popup-updated.is-inline.is-fresh,
.complex-map-popup-updated.is-inline.is-stale {
  border: none;
  background: transparent;
}

.complex-map-popup-updated.is-inline.is-fresh {
  color: #4e6f89;
}

.complex-map-popup-updated.is-inline.is-stale {
  color: #975056;
}

.complex-map-popup-updated-line {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 4px;
}

.complex-map-popup-updated.is-inline .complex-map-popup-updated-line {
  justify-content: flex-start;
  flex-wrap: wrap;
}

.complex-map-popup-updated-need {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  border: 1px solid rgba(216, 123, 123, 0.8);
  background: rgba(199, 77, 86, 0.14);
  color: #a13f46;
  font-size: 0.6rem;
  font-weight: 900;
  padding: 1px 5px;
}

.complex-mini-flow {
  --complex-mini-flow-row-height: 34px;
  min-width: 0;
  width: min(228px, 100%);
  display: grid;
  gap: 0;
  padding: 6px 7px;
  border: 1px solid rgba(174, 196, 224, 0.92);
  border-radius: 12px;
  background: linear-gradient(180deg, rgba(248, 251, 255, 0.96) 0%, rgba(237, 244, 251, 0.96) 100%);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.82);
  overflow: hidden;
}

.complex-mini-flow-body {
  min-width: 0;
  display: grid;
  gap: 4px;
}

.complex-mini-flow-body.is-scrollable {
  max-height: calc((var(--complex-mini-flow-visible-rows, 4) * var(--complex-mini-flow-row-height, 34px)) + ((var(--complex-mini-flow-visible-rows, 4) - 1) * 4px));
  padding-right: 3px;
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: rgba(123, 147, 182, 0.42) transparent;
}

.complex-mini-flow-body.is-scrollable::-webkit-scrollbar {
  width: 6px;
}

.complex-mini-flow-body.is-scrollable::-webkit-scrollbar-thumb {
  border-radius: 999px;
  background: rgba(123, 147, 182, 0.32);
}

.complex-mini-flow.is-empty {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 58px;
}

.complex-mini-flow-empty {
  color: #7a8ca1;
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: -0.01em;
}

.complex-mini-flow-row {
  display: grid;
  grid-template-columns: minmax(0, 5.55rem) minmax(0, 1fr) auto;
  align-items: center;
  gap: 6px;
  min-width: 0;
  min-height: var(--complex-mini-flow-row-height, 34px);
}

.complex-mini-flow-row + .complex-mini-flow-row {
  padding-top: 3px;
  border-top: 1px solid rgba(188, 205, 230, 0.3);
}

.complex-mini-flow-row-label-wrap {
  min-width: 0;
  display: grid;
  justify-items: start;
  gap: 2px;
}

.complex-mini-flow-row-label-line {
  min-width: 0;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

.complex-mini-flow-row-label {
  min-width: 0;
  color: #60748d;
  font-size: 0.52rem;
  font-weight: 900;
  letter-spacing: -0.02em;
  line-height: 1;
  white-space: nowrap;
}

.complex-mini-flow-row-score-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2rem;
  max-width: 100%;
  padding: 1px 5px;
  border-radius: 999px;
  border: 1px solid rgba(194, 207, 223, 0.9);
  background: linear-gradient(180deg, #f5f8fc 0%, #edf2f7 100%);
  color: #5e6f80;
  font-size: 0.52rem;
  font-weight: 900;
  letter-spacing: -0.02em;
  line-height: 1.05;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8);
}

.complex-mini-flow-row-signal-strip {
  gap: 3px;
}

.complex-mini-flow-row-chip {
  min-height: 16px;
  padding: 2px 5px;
  font-size: 0.45rem;
  line-height: 1;
}

.complex-mini-flow-row-score-badge.is-bargain {
  background: linear-gradient(180deg, #edf8f3 0%, #dff2e8 100%);
  border-color: rgba(130, 197, 165, 0.88);
  color: #0b6d4f;
}

.complex-mini-flow-row-score-badge.is-good {
  background: linear-gradient(180deg, #edf4ff 0%, #deebff 100%);
  border-color: rgba(150, 188, 242, 0.92);
  color: #2069b7;
}

.complex-mini-flow-row-score-badge.is-fair {
  background: linear-gradient(180deg, #f7fbe8 0%, #edf6ce 100%);
  border-color: rgba(206, 222, 155, 0.92);
  color: #4f6b18;
}

.complex-mini-flow-row-score-badge.is-watch {
  background: linear-gradient(180deg, #fcf2e6 0%, #f8e4c8 100%);
  border-color: rgba(231, 197, 137, 0.92);
  color: #8d6422;
}

.complex-mini-flow-row-score-badge.is-expensive {
  background: linear-gradient(180deg, #fff1ec 0%, #ffe0d4 100%);
  border-color: rgba(241, 184, 164, 0.92);
  color: #b34e2f;
}

.complex-mini-flow-row-score-badge.is-unknown {
  background: linear-gradient(180deg, #f4f6f9 0%, #e7ebf0 100%);
  border-color: rgba(209, 216, 226, 0.95);
  color: #687786;
}

.complex-mini-flow-row-chart {
  display: block;
  min-width: 0;
  height: 16px;
}

.complex-mini-flow-row-svg {
  display: block;
  width: 100%;
  height: 16px;
  overflow: visible;
}

.complex-mini-flow-row-guide {
  stroke: rgba(179, 198, 221, 0.34);
  stroke-width: 0.7;
  stroke-dasharray: 2.5 3.5;
}

.complex-mini-flow-row-line {
  fill: none;
  stroke-width: 1.15;
  stroke-linecap: round;
  stroke-linejoin: round;
  opacity: 0.9;
}

.complex-mini-flow-row-start-dot {
  fill: rgba(255, 255, 255, 0.96);
  stroke-width: 0.95;
  opacity: 0.72;
}

.complex-mini-flow-row-end-dot {
  filter: drop-shadow(0 0 0.55px rgba(255, 255, 255, 0.82));
}

.complex-mini-flow-row-values {
  min-width: 3.8rem;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 1px;
  text-align: right;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}

.complex-mini-flow-row-price {
  color: #425874;
  font-size: 0.5rem;
  font-weight: 900;
  letter-spacing: -0.02em;
  line-height: 1;
}

.complex-mini-flow-row-delta {
  font-size: 0.43rem;
  font-weight: 800;
  letter-spacing: -0.02em;
  line-height: 1;
}

.complex-mini-flow-row-delta.is-up {
  color: #d75b5b;
}

.complex-mini-flow-row-delta.is-down {
  color: #2f6fed;
}

.complex-mini-flow-row-delta.is-neutral {
  color: #8b97a6;
}

.complex-map-popup-sale-summary {
  min-width: 0;
  max-width: 100%;
  padding: 6px 8px 2px;
  overflow: hidden;
  box-sizing: border-box;
}

.complex-map-popup-sale-summary-scroll {
  display: block;
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
  scrollbar-color: rgba(122, 145, 180, 0.45) transparent;
  overscroll-behavior-x: contain;
  box-sizing: border-box;
}

.complex-map-popup-sale-summary-table {
  width: max-content;
  min-width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  border: 1px solid #d9e3f4;
  border-radius: 10px;
  overflow: hidden;
  background: linear-gradient(180deg, #fbfdff 0%, #f4f8ff 100%);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.82);
}

.complex-map-popup-sale-summary-table th,
.complex-map-popup-sale-summary-table td {
  min-width: 44px;
  padding: 4px 8px;
  text-align: center;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  font-variant-numeric: tabular-nums;
}

.complex-map-popup-sale-summary-table th {
  color: #56718c;
  font-size: 0.61rem;
  font-weight: 900;
  letter-spacing: -0.03em;
  line-height: 1.05;
  background: rgba(255, 255, 255, 0.46);
}

.complex-map-popup-sale-summary-table td {
  color: #1f3f68;
  font-size: 0.72rem;
  font-weight: 900;
  line-height: 1.05;
}

.complex-map-popup-sale-summary-table td.is-bargain {
  background: linear-gradient(180deg, #edf8f3 0%, #dff2e8 100%);
  color: #0b6d4f;
}

.complex-map-popup-sale-summary-table td.is-good {
  background: linear-gradient(180deg, #edf4ff 0%, #deebff 100%);
  color: #2069b7;
}

.complex-map-popup-sale-summary-table td.is-fair {
  background: linear-gradient(180deg, #f7fbe8 0%, #edf6ce 100%);
  color: #4f6b18;
}

.complex-map-popup-sale-summary-table td.is-watch {
  background: linear-gradient(180deg, #fcf2e6 0%, #f8e4c8 100%);
  color: #8d6422;
}

.complex-map-popup-sale-summary-table td.is-expensive {
  background: linear-gradient(180deg, #fff1ec 0%, #ffe0d4 100%);
  color: #b34e2f;
}

.complex-map-popup-sale-summary-table td.is-unknown {
  background: linear-gradient(180deg, #f4f6f9 0%, #e7ebf0 100%);
  color: #687786;
}

.complex-map-popup-sale-summary-table tr + tr th,
.complex-map-popup-sale-summary-table tr + tr td {
  border-top: 1px solid rgba(188, 204, 228, 0.72);
}

.complex-map-popup-sale-summary-table th + th,
.complex-map-popup-sale-summary-table td + td {
  border-left: 1px solid rgba(194, 208, 230, 0.68);
}

.complex-map-popup-sale-summary-scroll::-webkit-scrollbar {
  height: 6px;
}

.complex-map-popup-sale-summary-scroll::-webkit-scrollbar-thumb {
  border-radius: 999px;
  background: rgba(122, 145, 180, 0.34);
}

.complex-map-popup-sale-summary-scroll::-webkit-scrollbar-track {
  background: transparent;
}

.complex-map-popup-grid-wrap {
  max-width: 100%;
  padding: 6px 8px 7px;
  overflow-x: hidden;
  box-sizing: border-box;
}

.complex-map-popup-grid-wrap.is-scrollable {
  max-height: var(--complex-map-popup-grid-max-height, 136px);
  overflow-y: auto;
  padding-right: 6px;
}

.complex-map-popup-grid-wrap.is-scrollable .complex-map-popup-grid th {
  position: sticky;
  top: 0;
  z-index: 1;
  background: #ffffff;
}

.complex-map-popup-grid {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
  font-size: 0.69rem;
  color: #374e5d;
}

.complex-map-popup-grid th {
  text-align: left;
  font-size: 0.62rem;
  font-weight: 900;
  color: #60707f;
  border-bottom: 1px solid #d9e2f1;
  padding: 0 2px 4px;
}

.complex-map-popup-grid th:nth-child(5),
.complex-map-popup-grid th:nth-child(6) {
  text-align: right;
}

.complex-map-popup-grid td {
  border-bottom: 1px solid #edf2fb;
  padding: 3px 2px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  vertical-align: top;
}

.complex-map-popup-grid tbody tr:last-child td {
  border-bottom: 0;
}

.complex-map-popup-col-pyeong {
  width: 16%;
  color: #1f3b4f;
  font-weight: 900;
}

.complex-map-popup-col-floor {
  width: 12%;
  color: #556675;
  font-weight: 800;
}

.complex-map-popup-col-score {
  width: 11%;
  text-align: center;
  color: #3f5469;
  font-weight: 900;
}

.complex-map-popup-grid th.complex-map-popup-col-score,
.complex-map-popup-grid td.complex-map-popup-col-score {
  text-align: center;
  padding-left: 0;
  padding-right: 0;
}

.complex-map-popup-col-review {
  width: 6%;
  text-align: left;
}

.complex-map-popup-col-lowest {
  width: 39%;
  text-align: right;
}

.complex-map-popup-col-latest {
  width: 13%;
  text-align: right;
}

.complex-map-popup-grid td.complex-map-popup-col-review {
  overflow: visible;
  text-overflow: clip;
}

.complex-map-popup-grid td.complex-map-popup-col-score {
  overflow: hidden;
  text-overflow: clip;
}

.complex-map-popup-sale-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  font-size: 0.66rem;
  font-weight: 900;
  line-height: 1.05;
  letter-spacing: -0.04em;
  font-variant-numeric: tabular-nums;
  color: #355b78;
}

.complex-map-popup-grid td.complex-map-popup-col-lowest,
.complex-map-popup-grid td.complex-map-popup-col-latest {
  overflow: hidden;
}

.complex-map-popup-review {
  display: inline-block;
  font-weight: 900;
  line-height: 1.02;
}

.complex-map-popup-review-stack {
  justify-items: start;
  align-items: start;
}

.complex-map-popup-grid th.complex-map-popup-col-review,
.complex-map-popup-grid td.complex-map-popup-col-review {
  text-align: left;
}

.complex-map-popup-grid td.complex-map-popup-col-review {
  padding-left: 3px;
}

.complex-map-popup-review-stack .deal-review-guard-badge {
  max-width: 100%;
}

.complex-map-popup-review.bargain {
  color: #0b6d4f;
}

.complex-map-popup-review.good {
  color: #2069b7;
}

.complex-map-popup-review.fair {
  color: #7b6a3b;
}

.complex-map-popup-review.watch {
  color: #8d6422;
}

.complex-map-popup-review.expensive {
  color: #b34e2f;
}

.complex-map-popup-review.unknown {
  color: #687786;
}

.complex-map-popup-price-main,
.complex-map-popup-price-link {
  color: #0f6b5f;
  font-size: 0.7rem;
  font-weight: 900;
  line-height: 1.1;
  letter-spacing: -0.04em;
}

.complex-map-popup-price-main.latest,
.complex-map-popup-price-link.latest {
  color: #1d609e;
}

.complex-map-popup-price-link {
  text-decoration: none;
  border-bottom: 1px dotted rgba(15, 107, 95, 0.45);
}

.complex-map-popup-price-with-arrow {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  flex: 0 0 auto;
  gap: 0;
  max-width: none;
  min-width: 0;
}

.complex-map-popup-lowest-inline {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--complex-map-popup-lowest-gap);
  width: 100%;
  max-width: 100%;
  min-width: 0;
  white-space: nowrap;
}

.complex-map-popup-price-arrow {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.72rem;
  font-weight: 900;
  line-height: 1;
}

.complex-map-popup-price-arrow.is-up,
.complex-map-popup-price-with-arrow.is-up .complex-map-popup-price-main,
.complex-map-popup-price-with-arrow.is-up .complex-map-popup-price-link {
  color: #c2453f;
}

.complex-map-popup-price-arrow.is-down,
.complex-map-popup-price-with-arrow.is-down .complex-map-popup-price-main,
.complex-map-popup-price-with-arrow.is-down .complex-map-popup-price-link {
  color: #2f5fcd;
}

.complex-map-popup-delta-chip {
  display: grid;
  align-items: center;
  grid-template-columns:
    var(--complex-map-popup-delta-price-col-width)
    var(--complex-map-popup-delta-sep-col-width)
    var(--complex-map-popup-delta-pct-col-width)
    var(--complex-map-popup-delta-sep-col-width)
    var(--complex-map-popup-delta-age-col-width);
  width: var(--complex-map-popup-delta-pill-width);
  min-width: 0;
  max-width: var(--complex-map-popup-delta-pill-width);
  flex: 0 1 var(--complex-map-popup-delta-pill-width);
  gap: 0;
  padding: 2px 4px 2px 5px;
  border-radius: 999px;
  font-size: 0.47rem;
  font-weight: 900;
  line-height: 1.05;
  white-space: nowrap;
  letter-spacing: -0.02em;
  box-sizing: border-box;
  font-variant-numeric: tabular-nums;
}

.complex-map-popup-delta-chip-price,
.complex-map-popup-delta-chip-pct,
.complex-map-popup-delta-chip-age,
.complex-map-popup-delta-chip-sep {
  display: block;
  line-height: 1.05;
}

.complex-map-popup-delta-chip-price {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  column-gap: 0;
  min-width: 0;
}

.complex-map-popup-delta-chip-arrow {
  display: block;
  text-align: left;
  letter-spacing: -0.08em;
}

.complex-map-popup-delta-chip-price-text {
  display: block;
  text-align: right;
  overflow: hidden;
  text-overflow: clip;
  margin-left: -0.05rem;
}

.complex-map-popup-delta-chip-pct,
.complex-map-popup-delta-chip-age {
  text-align: right;
}

.complex-map-popup-delta-chip-sep {
  text-align: center;
  opacity: 0.86;
}

.complex-map-popup-delta-chip-age {
  opacity: 0.9;
  padding-right: 2px;
}

.complex-map-popup-delta-chip.is-up {
  color: #c2453f;
  background: linear-gradient(180deg, #fff2f1 0%, #ffe5e2 100%);
  box-shadow: inset 0 0 0 1px rgba(214, 75, 68, 0.14);
}

.complex-map-popup-delta-chip.is-down {
  color: #2f5fcd;
  background: linear-gradient(180deg, #f1f6ff 0%, #e5eeff 100%);
  box-shadow: inset 0 0 0 1px rgba(47, 95, 205, 0.14);
}

.complex-map-popup-delta-chip.is-up.is-fresh {
  color: #ffffff;
  background: linear-gradient(180deg, #ef6a61 0%, #d64b44 100%);
  box-shadow: inset 0 0 0 1px rgba(171, 32, 26, 0.14);
}

.complex-map-popup-delta-chip.is-down.is-fresh {
  color: #ffffff;
  background: linear-gradient(180deg, #4a82f1 0%, #2f5fcd 100%);
  box-shadow: inset 0 0 0 1px rgba(32, 77, 176, 0.16);
}

.complex-map-popup-delta-chip.is-neutral {
  color: #ffffff;
  background: linear-gradient(180deg, #97a3b8 0%, #7b869a 100%);
  box-shadow: inset 0 0 0 1px rgba(76, 88, 108, 0.14);
}

.complex-map-popup-price-delta {
  margin-left: 5px;
  font-size: 0.7rem;
  font-weight: 800;
}

.complex-map-popup-price-delta.up {
  color: #c2453f;
}

.complex-map-popup-price-delta.down {
  color: #2f5fcd;
}

.complex-map-popup-price-delta.same {
  color: #7a7a7a;
}

.complex-map-popup-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px;
  padding: 2px 9px 9px;
}

.complex-map-popup-refresh-btn,
.complex-map-popup-open-btn {
  border-radius: 10px;
  font-size: 0.75rem;
  font-weight: 900;
  text-align: center;
  padding: 8px 10px;
  transition: border-color 0.16s ease, color 0.16s ease, background-color 0.16s ease, transform 0.16s ease;
}

.complex-map-popup-refresh-btn {
  border: 1px solid #9ecfc0;
  background: linear-gradient(180deg, #e8faf4 0%, #d7f2ea 100%);
  color: #176353;
}

.complex-map-popup-open-btn {
  border: 1px solid #b9cbf2;
  background: linear-gradient(180deg, #f2f7ff 0%, #e2ecff 100%);
  color: #284b98;
}

.complex-map-popup-refresh-btn:disabled,
.complex-map-popup-open-btn:disabled {
  border-color: #d4dceb;
  background: #f3f6fb;
  color: #8392a6;
  cursor: not-allowed;
}

.complex-map-popup-refresh-btn:not(:disabled):hover,
.complex-map-popup-open-btn:not(:disabled):hover {
  transform: translateY(-1px);
}

.complex-map-popup-refresh-btn:not(:disabled):hover {
  border-color: #62b69f;
  color: #0f5648;
}

.complex-map-popup-open-btn:not(:disabled):hover {
  border-color: #7ea2ee;
  color: #1d3f90;
}

.complex-map-popup-refresh-slot {
  margin: 0 9px 3px;
}

.complex-map-popup-refresh-slot.is-empty {
  display: none;
}

.complex-map-popup-refresh-panel {
  border: 1px solid #c9d8f3;
  border-radius: 10px;
  background: linear-gradient(180deg, #f7faff 0%, #eef4ff 100%);
  padding: 6px 8px;
  display: grid;
  grid-template-columns: 50px minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
}

.complex-map-popup-refresh-panel.is-stopping {
  border-color: #e0c8c4;
  background: linear-gradient(180deg, #fff8f7 0%, #fff0ef 100%);
}

.complex-map-popup-refresh-ring {
  --map-refresh-pct: 0;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background:
    radial-gradient(circle at center, #ffffff 62%, transparent 63% 100%),
    conic-gradient(from -90deg, #6584b9 calc(var(--map-refresh-pct) * 1%), #d8dde3 0);
}

.complex-map-popup-refresh-ring strong {
  font-size: 0.72rem;
  font-weight: 900;
  color: #364556;
}

.complex-map-popup-refresh-meta {
  min-width: 0;
  display: grid;
  gap: 1px;
}

.complex-map-popup-refresh-meta p {
  margin: 0;
}

.complex-map-popup-refresh-phase {
  font-size: 0.68rem;
  font-weight: 900;
  color: #2f4262;
}

.complex-map-popup-refresh-count {
  font-size: 0.66rem;
  font-weight: 800;
  color: #435774;
}

.complex-map-popup-refresh-eta {
  font-size: 0.64rem;
  font-weight: 700;
  color: #62738e;
}

.complex-map-popup-refresh-stop-btn {
  border: 1px solid #d2b7b2;
  border-radius: 999px;
  background: #fff3f1;
  color: #8f3f38;
  font-size: 0.62rem;
  font-weight: 900;
  padding: 3px 7px;
  justify-self: end;
}

.header-quick-btn .quick-count.quick-count-placeholder {
  visibility: hidden;
}

.complex-map-popup-refresh-stop-btn:disabled {
  border-color: #dfc9c6;
  color: #ad6f68;
  background: #fff8f7;
}

.complex-map-popup-loading,
.complex-map-popup-error {
  font-size: 0.72rem;
  font-weight: 800;
  color: #546563;
}

.complex-map-popup-card-loading {
  min-width: 0;
}

.complex-map-popup-loading-card {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  padding: 12px 10px;
}

.complex-map-popup-loading-spinner {
  width: 18px;
  height: 18px;
  border-radius: 999px;
  border: 2px solid rgba(97, 127, 155, 0.22);
  border-top-color: #2c658c;
  animation: complex-map-popup-loading-spin 0.8s linear infinite;
}

.complex-map-popup-loading-spinner.is-error {
  border-color: rgba(180, 96, 89, 0.18);
  border-top-color: #a34b43;
  animation: none;
}

.complex-map-popup-loading-copy {
  min-width: 0;
  display: grid;
  gap: 3px;
}

.complex-map-popup-loading-copy strong {
  color: #173433;
  font-size: 0.83rem;
  font-weight: 900;
  line-height: 1.18;
}

.complex-map-popup-loading-copy span {
  color: #466172;
  font-size: 0.68rem;
  font-weight: 900;
  line-height: 1.2;
}

.complex-map-popup-loading-copy small {
  color: #667784;
  font-size: 0.62rem;
  font-weight: 700;
  line-height: 1.25;
}

.complex-map-popup-card-loading.is-error .complex-map-popup-loading-copy span,
.complex-map-popup-card-loading.is-error .complex-map-popup-loading-copy small {
  color: #93463f;
}

.complex-map-popup-empty {
  text-align: center;
  color: #5c6c78;
  padding: 10px 6px;
}

.complex-map-popup-error {
  color: #9a3b34;
  text-align: center;
  padding: 10px 6px;
}

@keyframes complex-map-popup-loading-spin {
  to {
    transform: rotate(360deg);
  }
}

.complex-map-popup-sync-warning {
  margin: 0 9px 6px;
  border: 1px solid #ecd3ce;
  border-radius: 8px;
  background: #fff6f4;
  color: #9c4b43;
  font-size: 0.67rem;
  font-weight: 800;
  line-height: 1.25;
  padding: 5px 7px;
}

.index-admin-popup {
  position: fixed;
  inset: 0;
  z-index: 2200;
  display: grid;
  place-items: center;
  padding: 16px;
}

.index-admin-backdrop {
  position: absolute;
  inset: 0;
  border: 0;
  margin: 0;
  padding: 0;
  background: rgba(12, 20, 26, 0.46);
}

.index-admin-dialog {
  position: relative;
  z-index: 1;
  width: min(980px, 96vw);
  height: min(88vh, 760px);
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  border-radius: 16px;
  border: 1px solid #d5dbd8;
  background: #f7fbfa;
  box-shadow:
    0 20px 46px rgba(8, 19, 25, 0.34),
    0 6px 16px rgba(14, 42, 32, 0.18);
  overflow: hidden;
}

.index-admin-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 12px;
  border-bottom: 1px solid #d6dfdc;
  background: linear-gradient(180deg, #ffffff 0%, #eef5f3 100%);
}

.index-admin-head h2 {
  margin: 0;
  font-size: 0.96rem;
  color: #1c3330;
}

.index-admin-head .index-admin-presence-badge {
  margin-left: 2px;
}

.index-admin-close-btn {
  width: 31px;
  height: 31px;
  border-radius: 999px;
  border: 1px solid #cb8e70;
  background: linear-gradient(180deg, #f59a58 0%, #e2732c 100%);
  color: #fff;
  font-size: 0.95rem;
  font-weight: 900;
  line-height: 1;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.index-admin-frame {
  width: 100%;
  height: 100%;
  border: 0;
  background: #ffffff;
}

body.complex-map-bulk-popup-open {
  overflow: hidden;
}

.complex-map-bulk-popup {
  position: fixed;
  inset: 0;
  z-index: 2230;
  display: grid;
  place-items: center;
  padding: 16px;
}

.complex-map-bulk-backdrop {
  position: absolute;
  inset: 0;
  border: 0;
  margin: 0;
  padding: 0;
  background: rgba(12, 20, 26, 0.46);
}

.complex-map-bulk-dialog {
  position: relative;
  z-index: 1;
  width: min(620px, 96vw);
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  border-radius: 18px;
  border: 1px solid #d5dbd8;
  background: linear-gradient(180deg, #fdfefe 0%, #f2f7fb 100%);
  box-shadow:
    0 20px 46px rgba(8, 19, 25, 0.34),
    0 6px 16px rgba(14, 42, 32, 0.18);
  overflow: hidden;
}

.complex-map-bulk-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 16px 12px;
  border-bottom: 1px solid #dce5ea;
  background: linear-gradient(180deg, #ffffff 0%, #eef5fb 100%);
}

.complex-map-bulk-head h2 {
  margin: 0;
  font-size: 1rem;
  color: #1f3248;
}

.complex-map-bulk-head-copy {
  margin: 6px 0 0;
  color: #596c83;
  font-size: 0.78rem;
  font-weight: 700;
  line-height: 1.45;
}

.complex-map-bulk-close-btn {
  width: 34px;
  height: 34px;
  border-radius: 999px;
  border: 1px solid #cb8e70;
  background: linear-gradient(180deg, #f59a58 0%, #e2732c 100%);
  color: #fff;
  font-size: 1rem;
  font-weight: 900;
  line-height: 1;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.complex-map-bulk-body {
  display: grid;
  gap: 10px;
  padding: 16px;
}

.complex-map-bulk-body .complex-map-bulk-fields,
.complex-map-bulk-body .complex-map-bulk-actions {
  justify-content: flex-start;
  gap: 8px;
}

.complex-map-bulk-scheduler-panel {
  display: grid;
  gap: 12px;
  padding: 14px;
  border: 1px solid #d9e5ed;
  border-radius: 16px;
  background: linear-gradient(180deg, #ffffff 0%, #edf6fb 100%);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8);
}

.complex-map-bulk-scheduler-head,
.complex-map-bulk-scheduler-chip-actions {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
}

.complex-map-bulk-scheduler-head h3 {
  margin: 0;
  font-size: 0.9rem;
  color: #1d3348;
}

.complex-map-bulk-scheduler-copy {
  margin: 5px 0 0;
  color: #5a7086;
  font-size: 0.74rem;
  font-weight: 700;
  line-height: 1.45;
}

.complex-map-bulk-scheduler-toggle {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  white-space: nowrap;
  color: #244865;
  font-size: 0.74rem;
  font-weight: 900;
}

.complex-map-bulk-scheduler-toggle input {
  width: 16px;
  height: 16px;
  accent-color: #2d6cdf;
}

.complex-map-bulk-scheduler-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.complex-map-bulk-scheduler-field {
  display: grid;
  gap: 6px;
}

.complex-map-bulk-scheduler-field span,
.complex-map-bulk-scheduler-chip-actions strong {
  color: #31506d;
  font-size: 0.72rem;
  font-weight: 900;
}

.complex-map-bulk-time-input {
  min-width: 0;
}

.complex-map-bulk-scheduler-chip-actions {
  align-items: center;
}

.complex-map-bulk-scheduler-chip-buttons {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}

.complex-map-bulk-scheduler-chip-buttons button {
  font-size: 0.67rem;
  font-weight: 800;
  padding: 5px 10px;
}

.complex-map-bulk-scheduler-chips {
  min-height: 40px;
}

.complex-map-bulk-scheduler-status {
  margin: 0;
  color: #4b657d;
  font-size: 0.71rem;
  font-weight: 800;
  line-height: 1.45;
}

.complex-map-bulk-scheduler-status.is-running {
  color: #1f6557;
}

.complex-map-bulk-scheduler-empty {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  color: #6a7f94;
  font-size: 0.72rem;
  font-weight: 700;
}

body.live-summary-open {
  overflow: hidden;
}

.live-summary-popup {
  position: fixed;
  inset: 0;
  z-index: 2260;
  display: grid;
  place-items: center;
  padding: 16px;
}

.live-summary-backdrop {
  position: absolute;
  inset: 0;
  border: 0;
  margin: 0;
  padding: 0;
  background: rgba(12, 20, 26, 0.46);
}

.live-summary-dialog {
  position: relative;
  z-index: 1;
  width: min(980px, 96vw);
  max-height: min(86vh, 780px);
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  border-radius: 16px;
  border: 1px solid #d5dbd8;
  background: #f7fbfa;
  box-shadow:
    0 20px 46px rgba(8, 19, 25, 0.34),
    0 6px 16px rgba(14, 42, 32, 0.18);
  overflow: hidden;
}

.live-summary-popup.is-anchored .live-summary-backdrop {
  background: rgba(12, 20, 26, 0.18);
}

.live-summary-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 12px;
  border-bottom: 1px solid #d6dfdc;
  background: linear-gradient(180deg, #ffffff 0%, #eef5f3 100%);
}

.live-summary-head h2 {
  margin: 0;
  font-size: 0.96rem;
  color: #1c3330;
}

.live-summary-close-btn {
  width: 31px;
  height: 31px;
  border-radius: 999px;
  border: 1px solid #cb8e70;
  background: linear-gradient(180deg, #f59a58 0%, #e2732c 100%);
  color: #fff;
  font-size: 0.95rem;
  font-weight: 900;
  line-height: 1;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.live-summary-body {
  overflow-y: auto;
  padding: 10px;
  background: #f7fbfa;
}

.live-summary-panel-modal {
  margin: 0;
}

body.ranking-popup-open {
  overflow: hidden;
}

body.favorite-notification-popup-open {
  overflow: hidden;
}

.ranking-popup {
  position: fixed;
  inset: 0;
  z-index: 2250;
  display: grid;
  place-items: center;
  padding: 16px;
}

.ranking-backdrop {
  position: absolute;
  inset: 0;
  border: 0;
  margin: 0;
  padding: 0;
  background: rgba(12, 20, 26, 0.46);
}

.ranking-dialog {
  position: relative;
  z-index: 1;
  width: min(940px, 96vw);
  max-height: min(86vh, 760px);
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  border-radius: 18px;
  border: 1px solid #d8dacd;
  background: linear-gradient(180deg, #fffdf8 0%, #f7f3e7 100%);
  box-shadow:
    0 20px 46px rgba(8, 19, 25, 0.34),
    0 6px 16px rgba(75, 59, 24, 0.18);
  overflow: hidden;
}

.ranking-popup-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 16px 12px;
  border-bottom: 1px solid #e0d8c6;
  background: linear-gradient(180deg, #fffefb 0%, #f6f1e3 100%);
}

.ranking-popup-head h2 {
  margin: 0;
  font-size: 1rem;
  color: #44351a;
}

.ranking-popup-copy {
  margin: 6px 0 0;
  color: #6f5e41;
  font-size: 0.78rem;
  font-weight: 700;
  line-height: 1.45;
}

.ranking-close-btn {
  width: 34px;
  height: 34px;
  border-radius: 999px;
  border: 1px solid #cb8e70;
  background: linear-gradient(180deg, #f59a58 0%, #e2732c 100%);
  color: #fff;
  font-size: 1rem;
  font-weight: 900;
  line-height: 1;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.ranking-popup-body {
  overflow-y: auto;
  padding: 10px;
  background: linear-gradient(180deg, #faf7ef 0%, #f5f0e4 100%);
}

.ranking-popup-panel {
  margin: 0;
}

.favorite-notification-popup {
  position: fixed;
  inset: 0;
  z-index: 2260;
  display: grid;
  place-items: center;
  padding: 16px;
}

.favorite-notification-backdrop {
  position: absolute;
  inset: 0;
  border: 0;
  margin: 0;
  padding: 0;
  background: rgba(12, 20, 26, 0.46);
}

.favorite-notification-dialog {
  position: relative;
  z-index: 1;
  width: min(640px, 96vw);
  max-height: min(82vh, 760px);
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  border-radius: 18px;
  border: 1px solid #d8d6e4;
  background: linear-gradient(180deg, #fffefe 0%, #f5f2fb 100%);
  box-shadow:
    0 20px 46px rgba(8, 19, 25, 0.34),
    0 6px 16px rgba(54, 38, 76, 0.18);
  overflow: hidden;
}

.favorite-market-notification-dialog {
  border-color: #dfd3be;
  background: linear-gradient(180deg, #fffefb 0%, #f8f2e7 100%);
  box-shadow:
    0 20px 46px rgba(29, 25, 12, 0.28),
    0 6px 16px rgba(94, 73, 28, 0.15);
}

.favorite-market-monthly-top-dialog {
  width: min(920px, 96vw);
  max-height: min(84vh, 820px);
  border-color: #d1dbc9;
  background: linear-gradient(180deg, #fffefb 0%, #eef7ef 100%);
  box-shadow:
    0 20px 46px rgba(21, 34, 18, 0.26),
    0 6px 16px rgba(37, 86, 57, 0.14);
}

.favorite-notification-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 16px 12px;
  border-bottom: 1px solid #e1dbea;
  background: linear-gradient(180deg, #fffefe 0%, #f5effa 100%);
}

.favorite-market-notification-head {
  border-bottom-color: #eadfca;
  background: linear-gradient(180deg, #fffefb 0%, #f7efe1 100%);
}

.favorite-market-monthly-top-head {
  border-bottom-color: #d9e5d8;
  background: linear-gradient(180deg, #fffefb 0%, #edf6ee 100%);
}

.favorite-market-notification-head h2 {
  color: #6d4a1e;
}

.favorite-market-monthly-top-head h2 {
  color: #274a35;
}

.favorite-notification-head h2 {
  margin: 0;
  font-size: 1rem;
  color: #473054;
}

.favorite-notification-copy {
  margin: 6px 0 0;
  color: #735b7d;
  font-size: 0.78rem;
  font-weight: 700;
  line-height: 1.45;
}

.favorite-notification-close-btn {
  width: 34px;
  height: 34px;
  border-radius: 999px;
  border: 1px solid #c28daf;
  background: linear-gradient(180deg, #d983b7 0%, #bd5f97 100%);
  color: #fff;
  font-size: 1rem;
  font-weight: 900;
  line-height: 1;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.favorite-market-notification-close-btn {
  border-color: #d09e66;
  background: linear-gradient(180deg, #ecb26f 0%, #d1863f 100%);
}

.favorite-market-monthly-top-head-actions {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
}

.favorite-market-monthly-top-refresh-btn {
  border-color: rgba(130, 170, 138, 0.82);
  background: linear-gradient(180deg, #ffffff 0%, #edf6ef 100%);
  color: #2a6a49;
  box-shadow: 0 5px 12px rgba(45, 99, 66, 0.1);
}

.favorite-notification-body {
  overflow-y: auto;
  padding: 12px 12px 68px;
  background: linear-gradient(180deg, #faf9fe 0%, #f4f1fb 100%);
}

.favorite-market-monthly-top-body {
  background:
    radial-gradient(circle at top right, rgba(186, 220, 191, 0.18) 0%, transparent 34%),
    linear-gradient(180deg, #f7fbf7 0%, #eef5ef 100%);
}

.favorite-notification-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin: 0 0 10px;
}

.favorite-market-monthly-top-toolbar {
  align-items: flex-start;
  margin-bottom: 12px;
}

.favorite-notification-push-box {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 0 0 10px;
  padding: 12px 13px;
  border: 1px solid rgba(176, 201, 212, 0.85);
  border-radius: 16px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.96) 0%, rgba(236, 248, 247, 0.95) 100%);
  box-shadow: 0 10px 18px rgba(27, 74, 79, 0.08);
}

.favorite-notification-push-copy {
  min-width: 0;
  display: grid;
  gap: 4px;
}

.favorite-notification-push-copy strong {
  color: #184e52;
  font-size: 0.86rem;
  font-weight: 900;
}

.favorite-notification-push-status {
  margin: 0;
  color: #44656b;
  font-size: 0.75rem;
  font-weight: 700;
  line-height: 1.45;
}

.favorite-notification-push-actions {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 6px;
  flex-wrap: wrap;
}

.favorite-notification-summary {
  margin: 0;
  color: #5b4f69;
  font-size: 0.78rem;
  font-weight: 800;
}

.favorite-market-monthly-top-body .favorite-notification-summary {
  color: #506a58;
}

.favorite-market-notification-toolbar {
  margin-bottom: 12px;
}

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

.favorite-market-notification-column {
  min-width: 0;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  gap: 10px;
  padding: 12px;
  border: 1px solid rgba(219, 208, 188, 0.9);
  border-radius: 18px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.95) 0%, rgba(250, 245, 236, 0.92) 100%);
  box-shadow: 0 12px 22px rgba(74, 58, 27, 0.08);
}

.favorite-market-notification-column.trade {
  border-color: rgba(163, 191, 222, 0.92);
  background: linear-gradient(180deg, rgba(252, 254, 255, 0.97) 0%, rgba(242, 247, 255, 0.94) 100%);
}

.favorite-market-notification-column.permit {
  border-color: rgba(219, 195, 156, 0.94);
  background: linear-gradient(180deg, rgba(255, 253, 248, 0.97) 0%, rgba(251, 245, 232, 0.95) 100%);
}

.favorite-market-notification-column-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
}

.favorite-market-notification-column-copy {
  min-width: 0;
  display: grid;
  gap: 4px;
}

.favorite-market-notification-column-copy strong {
  color: #564022;
  font-size: 0.84rem;
  font-weight: 950;
}

.favorite-market-notification-column.trade .favorite-market-notification-column-copy strong {
  color: #285581;
}

.favorite-market-notification-column.permit .favorite-market-notification-column-copy strong {
  color: #8b5b1a;
}

.favorite-market-notification-column-copy span {
  color: #6c6b68;
  font-size: 0.7rem;
  font-weight: 800;
  line-height: 1.4;
}

.favorite-notification-toolbar-actions {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.favorite-notification-toolbar-btn {
  border: 1px solid rgba(171, 157, 198, 0.82);
  border-radius: 999px;
  background: linear-gradient(180deg, #ffffff 0%, #f0ebf8 100%);
  color: #5b4770;
  font-size: 0.72rem;
  font-weight: 900;
  line-height: 1;
  padding: 7px 11px;
  box-shadow: 0 5px 12px rgba(74, 59, 102, 0.09);
}

.favorite-notification-toolbar-btn:disabled {
  opacity: 0.45;
  box-shadow: none;
}

.favorite-market-monthly-top-select-label {
  min-width: 148px;
  display: grid;
  gap: 5px;
  color: #5a715e;
  font-size: 0.68rem;
  font-weight: 900;
}

.favorite-market-monthly-top-range-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  width: min(100%, 420px);
}

.favorite-market-monthly-top-range-fields.has-breakdown {
  grid-template-columns: repeat(3, minmax(0, 1fr)) auto;
  width: min(100%, 720px);
}

.district-market-monthly-top-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-template-areas:
    "region sort"
    "start end"
    "button button";
  gap: 8px;
  width: min(100%, 520px);
}

.district-market-monthly-top-fields .favorite-market-monthly-top-select-label {
  min-width: 0;
  width: 100%;
}

.district-market-monthly-top-fields .favorite-market-monthly-top-select {
  width: 100%;
}

.district-market-monthly-top-region-label {
  grid-area: region;
  min-width: 0;
}

.district-market-monthly-top-start-label {
  grid-area: start;
}

.district-market-monthly-top-end-label {
  grid-area: end;
}

.favorite-market-monthly-top-breakdown-wrap,
.district-market-monthly-top-breakdown-wrap {
  align-self: end;
  display: flex;
  justify-content: flex-end;
}

.favorite-market-monthly-top-breakdown-btn,
.district-market-monthly-top-breakdown-btn {
  min-height: 36px;
  padding-inline: 10px;
  white-space: nowrap;
}

.favorite-market-monthly-top-select {
  min-height: 36px;
  border: 1px solid rgba(176, 191, 178, 0.9);
  border-radius: 12px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(241, 247, 241, 0.94) 100%);
  color: #294936;
  font-size: 0.8rem;
  font-weight: 900;
  padding: 0 12px;
  box-shadow: 0 5px 12px rgba(42, 74, 48, 0.08);
}

.favorite-market-monthly-top-grid-wrap {
  display: grid;
  gap: 14px;
  align-content: start;
}

.favorite-market-monthly-top-sticky-panel {
  position: static;
  display: grid;
  gap: 10px;
  padding: 2px 0 10px;
  background:
    linear-gradient(180deg, rgba(247, 251, 247, 0.98) 0%, rgba(238, 245, 239, 0.96) 78%, rgba(238, 245, 239, 0) 100%);
}

.favorite-market-monthly-top-sort-label,
.district-market-monthly-top-sort-label {
  min-width: 132px;
}

.district-market-monthly-top-fields .district-market-monthly-top-sort-label {
  grid-area: sort;
  min-width: 0;
}

.district-market-monthly-top-breakdown-wrap {
  grid-area: button;
  min-width: 0;
}

.favorite-market-monthly-top-month-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.favorite-market-monthly-top-reset-btn {
  flex: 0 0 auto;
  border: 1px solid rgba(146, 174, 154, 0.84);
  border-radius: 999px;
  background: linear-gradient(180deg, #ffffff 0%, #eef6ef 100%);
  color: #355c43;
  font-size: 0.7rem;
  font-weight: 900;
  line-height: 1;
  padding: 8px 11px;
  box-shadow: 0 6px 14px rgba(45, 77, 55, 0.08);
}

.favorite-market-monthly-top-month-copy {
  display: grid;
  gap: 4px;
}

.favorite-market-monthly-top-month-copy strong {
  color: #254637;
  font-size: 0.94rem;
  font-weight: 900;
}

.favorite-market-monthly-top-month-copy span {
  color: #637864;
  font-size: 0.73rem;
  font-weight: 800;
  line-height: 1.45;
}

.favorite-market-monthly-top-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.favorite-market-monthly-top-card {
  position: relative;
  min-width: 0;
  min-height: 108px;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 4px;
  padding: 10px 10px 11px;
  border: 1px solid rgba(192, 205, 193, 0.92);
  border-radius: 18px;
  background:
    linear-gradient(0deg, rgba(47, 127, 95, 0.08) 0%, rgba(47, 127, 95, 0.08) calc(var(--top-card-ratio, 0) * 100%), transparent calc(var(--top-card-ratio, 0) * 100%), transparent 100%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.99) 0%, rgba(244, 248, 244, 0.97) 100%);
  box-shadow: 0 12px 22px rgba(25, 51, 32, 0.08);
  text-align: left;
  overflow: hidden;
  transition:
    transform 160ms ease,
    box-shadow 160ms ease,
    border-color 160ms ease;
}

button.favorite-market-monthly-top-card:hover {
  transform: translateY(-2px);
  border-color: rgba(80, 133, 102, 0.44);
  box-shadow: 0 18px 28px rgba(25, 51, 32, 0.12);
}

.favorite-market-monthly-top-card.is-top {
  border-color: rgba(184, 141, 60, 0.52);
  background:
    linear-gradient(0deg, rgba(183, 134, 40, 0.1) 0%, rgba(183, 134, 40, 0.1) calc(var(--top-card-ratio, 0) * 100%), transparent calc(var(--top-card-ratio, 0) * 100%), transparent 100%),
    linear-gradient(180deg, rgba(255, 254, 248, 0.99) 0%, rgba(249, 244, 228, 0.97) 100%);
  box-shadow: 0 16px 26px rgba(116, 86, 24, 0.12);
}

.favorite-market-monthly-top-card.is-up {
  border-color: rgba(85, 149, 106, 0.46);
}

.favorite-market-monthly-top-card.is-down {
  border-color: rgba(121, 151, 197, 0.44);
  background:
    linear-gradient(0deg, rgba(80, 122, 193, 0.08) 0%, rgba(80, 122, 193, 0.08) calc(var(--top-card-ratio, 0) * 100%), transparent calc(var(--top-card-ratio, 0) * 100%), transparent 100%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.99) 0%, rgba(242, 246, 252, 0.97) 100%);
}

.favorite-market-monthly-top-card.is-flat {
  border-color: rgba(180, 192, 183, 0.92);
}

.favorite-market-monthly-top-card.is-empty-data {
  border-color: rgba(191, 202, 193, 0.82);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.99) 0%, rgba(245, 248, 245, 0.97) 100%);
  box-shadow: 0 10px 18px rgba(35, 56, 40, 0.05);
}

.favorite-market-monthly-top-card.is-selected {
  border-color: rgba(39, 97, 68, 0.9);
  box-shadow:
    0 0 0 2px rgba(41, 116, 78, 0.14),
    0 16px 28px rgba(25, 51, 32, 0.14);
}

.favorite-market-monthly-top-card.is-empty {
  place-content: start;
  border-style: dashed;
  background: linear-gradient(180deg, rgba(252, 253, 252, 0.98) 0%, rgba(243, 246, 243, 0.96) 100%);
  color: #718070;
  box-shadow: none;
}

.favorite-market-monthly-top-card strong {
  min-width: 0;
  color: #233e31;
  font-size: 0.86rem;
  font-weight: 900;
  line-height: 1.28;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.favorite-market-monthly-top-rank {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  min-height: 24px;
  padding: 0 9px;
  border-radius: 999px;
  background: rgba(39, 76, 54, 0.08);
  color: #446553;
  font-size: 0.66rem;
  font-weight: 900;
  line-height: 1;
}

.favorite-market-monthly-top-rank-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.favorite-market-monthly-top-rank-meta {
  flex: 1 1 auto;
  min-width: 0;
  color: #6b735c;
  font-size: 0.59rem;
  font-weight: 900;
  line-height: 1.2;
  text-align: right;
  font-variant-numeric: tabular-nums;
}

.favorite-market-monthly-top-card.is-top .favorite-market-monthly-top-rank {
  background: rgba(177, 130, 40, 0.12);
  color: #8d6422;
}

.favorite-market-monthly-top-card.is-top .favorite-market-monthly-top-rank-meta {
  color: #8d6422;
}

.favorite-market-monthly-top-region {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: #637567;
  font-size: 0.67rem;
  font-weight: 800;
  line-height: 1.35;
}

.favorite-market-monthly-top-count {
  margin-top: auto;
  color: #1f5d45;
  font-size: 1.02rem;
  font-weight: 950;
  letter-spacing: -0.03em;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}

.favorite-market-monthly-top-card.is-top .favorite-market-monthly-top-count {
  color: #8a6220;
}

.favorite-market-monthly-top-card.is-down .favorite-market-monthly-top-count {
  color: #325c95;
}

.favorite-market-monthly-top-count.is-empty {
  font-size: 0.72rem;
  color: #6a7b6d;
  letter-spacing: -0.01em;
}

.favorite-market-monthly-top-card-meta {
  color: #607566;
  font-size: 0.62rem;
  font-weight: 800;
  line-height: 1.35;
}

.favorite-market-monthly-top-delta {
  color: #69806d;
  font-size: 0.66rem;
  font-weight: 800;
  line-height: 1.35;
}

.favorite-market-monthly-top-delta.is-up {
  color: #2f7c59;
}

.favorite-market-monthly-top-delta.is-down {
  color: #406ab0;
}

.favorite-market-monthly-top-delta.is-flat {
  color: #708073;
}

.favorite-market-monthly-top-latest {
  color: #5e7566;
  font-size: 0.63rem;
  font-weight: 800;
  line-height: 1.35;
}

.favorite-market-monthly-top-card-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 2px;
}

.favorite-market-monthly-top-chip {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 0 9px;
  border-radius: 999px;
  border: 1px solid rgba(120, 157, 207, 0.56);
  background: linear-gradient(180deg, #ffffff 0%, #edf4ff 100%);
  color: #2f5da8;
  font-size: 0.66rem;
  font-weight: 900;
  line-height: 1;
  box-shadow: 0 4px 10px rgba(48, 86, 159, 0.08);
}

.favorite-market-monthly-top-chip.detail {
  border-color: rgba(128, 156, 135, 0.58);
  background: linear-gradient(180deg, #ffffff 0%, #eef6ef 100%);
  color: #315742;
  box-shadow: 0 4px 10px rgba(49, 87, 66, 0.08);
}

.favorite-market-monthly-top-empty {
  padding: 26px 18px;
  border: 1px dashed rgba(183, 195, 184, 0.94);
  border-radius: 18px;
  color: #667869;
  font-size: 0.82rem;
  font-weight: 800;
  text-align: center;
  background: rgba(255, 255, 255, 0.72);
}

.favorite-market-monthly-top-trade-popup {
  z-index: 2278;
}

.favorite-market-monthly-top-trade-dialog {
  position: relative;
  z-index: 1;
  width: min(560px, 94vw);
  max-height: min(78vh, 760px);
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  border-radius: 18px;
  border: 1px solid #cfdbd4;
  background: linear-gradient(180deg, #fffefb 0%, #eef7f1 100%);
  box-shadow:
    0 20px 46px rgba(16, 31, 23, 0.28),
    0 6px 16px rgba(34, 83, 57, 0.16);
  overflow: hidden;
}

.favorite-market-monthly-top-trade-head {
  border-bottom-color: #d8e3db;
  background: linear-gradient(180deg, #fffefb 0%, #eef6f0 100%);
}

.favorite-market-monthly-top-trade-head h2 {
  color: #244a35;
}

.favorite-market-monthly-top-trade-body {
  overflow-y: auto;
  padding: 12px;
  background:
    radial-gradient(circle at top right, rgba(186, 220, 191, 0.18) 0%, transparent 34%),
    linear-gradient(180deg, #f7fbf7 0%, #eef5ef 100%);
}

.favorite-market-monthly-top-trade-content {
  display: grid;
  gap: 12px;
}

.district-market-monthly-top-breakdown-dialog {
  width: min(680px, 94vw);
}

.district-market-monthly-top-breakdown-content {
  gap: 14px;
}

.district-market-monthly-top-breakdown-summary {
  display: grid;
  gap: 4px;
  padding: 12px 14px;
  border: 1px solid rgba(197, 211, 200, 0.94);
  border-radius: 16px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(244, 249, 245, 0.96) 100%);
  box-shadow: 0 10px 20px rgba(37, 66, 46, 0.08);
}

.district-market-monthly-top-breakdown-summary strong {
  color: #244834;
  font-size: 0.92rem;
  font-weight: 900;
}

.district-market-monthly-top-breakdown-summary span {
  color: #637864;
  font-size: 0.74rem;
  font-weight: 800;
  line-height: 1.45;
}

.district-market-monthly-top-breakdown-chart {
  display: grid;
  gap: 10px;
}

.district-market-monthly-top-breakdown-row {
  display: grid;
  gap: 7px;
  padding: 11px 12px;
  border: 1px solid rgba(196, 207, 198, 0.94);
  border-radius: 16px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.99) 0%, rgba(244, 248, 245, 0.97) 100%);
  box-shadow: 0 10px 20px rgba(35, 61, 42, 0.08);
}

.district-market-monthly-top-breakdown-row.is-top {
  border-color: rgba(184, 141, 60, 0.52);
  background: linear-gradient(180deg, rgba(255, 252, 245, 0.99) 0%, rgba(249, 244, 228, 0.97) 100%);
}

.district-market-monthly-top-breakdown-row-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
}

.district-market-monthly-top-breakdown-row-head strong {
  color: #244432;
  font-size: 0.88rem;
  font-weight: 900;
}

.district-market-monthly-top-breakdown-row-head span {
  color: #607766;
  font-size: 0.68rem;
  font-weight: 800;
  line-height: 1.4;
  text-align: right;
}

.district-market-monthly-top-breakdown-bar-wrap {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
}

.district-market-monthly-top-breakdown-bar-track {
  position: relative;
  overflow: hidden;
  height: 14px;
  border-radius: 999px;
  background: rgba(209, 218, 210, 0.72);
}

.district-market-monthly-top-breakdown-bar-fill {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, rgba(77, 133, 94, 0.94) 0%, rgba(45, 115, 78, 0.98) 100%);
}

.district-market-monthly-top-breakdown-bar-fill.is-down {
  background: linear-gradient(90deg, rgba(82, 126, 197, 0.92) 0%, rgba(62, 103, 176, 0.98) 100%);
}

.district-market-monthly-top-breakdown-bar-fill.is-flat {
  background: linear-gradient(90deg, rgba(138, 156, 143, 0.88) 0%, rgba(113, 133, 118, 0.94) 100%);
}

.district-market-monthly-top-breakdown-count {
  color: #254938;
  font-size: 0.86rem;
  font-weight: 900;
  font-variant-numeric: tabular-nums;
}

.district-market-monthly-top-breakdown-row-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  color: #667a69;
  font-size: 0.67rem;
  font-weight: 800;
}

.district-market-monthly-top-breakdown-delta.is-up {
  color: #2f7c59;
}

.district-market-monthly-top-breakdown-delta.is-down {
  color: #406ab0;
}

.district-market-monthly-top-breakdown-delta.is-flat {
  color: #708073;
}

.favorite-market-monthly-top-trade-group {
  display: grid;
  gap: 6px;
  padding: 11px 11px 12px;
  border: 1px solid rgba(198, 211, 200, 0.94);
  border-radius: 16px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(245, 249, 245, 0.96) 100%);
  box-shadow: 0 10px 20px rgba(37, 66, 46, 0.08);
}

.favorite-market-monthly-top-trade-group-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.favorite-market-monthly-top-trade-group-head strong {
  color: #244234;
  font-size: 0.84rem;
  font-weight: 900;
}

.favorite-market-monthly-top-trade-group-head span {
  color: #637664;
  font-size: 0.68rem;
  font-weight: 900;
}

.favorite-market-monthly-top-trade-group.permit {
  border-color: rgba(215, 198, 162, 0.94);
  background: linear-gradient(180deg, rgba(255, 254, 249, 0.98) 0%, rgba(249, 244, 234, 0.96) 100%);
  box-shadow: 0 10px 20px rgba(102, 76, 24, 0.08);
}

.favorite-market-monthly-top-permit-meta {
  display: grid;
  gap: 3px;
}

.favorite-market-monthly-top-permit-meta span {
  color: #6f654a;
  font-size: 0.69rem;
  font-weight: 800;
  line-height: 1.45;
}

.favorite-market-monthly-top-permit-match-list {
  display: grid;
  gap: 6px;
  margin-top: 2px;
}

.favorite-market-monthly-top-permit-match-item {
  display: grid;
  gap: 2px;
  padding: 8px 9px;
  border: 1px solid rgba(203, 213, 206, 0.9);
  border-radius: 12px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(242, 247, 244, 0.96) 100%);
}

.favorite-market-monthly-top-permit-match-item strong {
  color: #254537;
  font-size: 0.74rem;
  font-weight: 900;
  line-height: 1.35;
}

.favorite-market-monthly-top-permit-match-item span {
  color: #6b7d70;
  font-size: 0.65rem;
  font-weight: 800;
  line-height: 1.4;
}

.favorite-market-monthly-top-permit-empty {
  color: #7d7359;
  font-size: 0.68rem;
  font-weight: 800;
  line-height: 1.4;
}

.favorite-market-monthly-top-trade-minihead {
  margin-bottom: 0;
}

.favorite-market-monthly-top-trade-list {
  min-height: 88px;
}

.favorite-activity-compare-popup {
  z-index: 2272;
}

.favorite-activity-compare-dialog {
  height: min(94vh, 980px);
}

.favorite-activity-dashboard-compare-btn {
  min-width: 108px;
}

.favorite-activity-compare-side-panel {
  grid-template-rows: minmax(0, 1fr) auto;
}

.favorite-activity-compare-side-panel .compare-source-list {
  min-height: 220px;
}

.favorite-activity-compare-result-panel {
  overflow: visible;
  align-content: start;
}

.favorite-activity-compare-popup .compare-popup-results {
  overflow: visible;
  grid-template-rows: auto;
  align-content: start;
  padding-right: 0;
}

.favorite-activity-compare-popup-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  flex-wrap: wrap;
}

.favorite-notification-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 8px;
}

.favorite-notification-group {
  border: 1px solid rgba(203, 197, 221, 0.85);
  border-radius: 16px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.94) 0%, rgba(243, 240, 250, 0.94) 100%);
  box-shadow: 0 10px 18px rgba(49, 41, 74, 0.08);
  overflow: hidden;
}

.favorite-notification-group-toggle {
  width: 100%;
  border: 0;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(244, 239, 250, 0.96) 100%);
  padding: 10px 12px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  text-align: left;
}

.favorite-notification-group-toggle:hover {
  background: linear-gradient(180deg, rgba(255, 255, 255, 1) 0%, rgba(239, 232, 249, 0.98) 100%);
}

.favorite-notification-group-title {
  color: #422f55;
  font-size: 0.82rem;
  font-weight: 900;
}

.favorite-notification-group-meta {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
  color: #736483;
  font-size: 0.7rem;
  font-weight: 800;
}

.favorite-notification-group-caret {
  color: #4f3f69;
  font-weight: 900;
}

.favorite-notification-group-list {
  list-style: none;
  margin: 0;
  padding: 0 8px 8px;
  display: grid;
  gap: 8px;
}

.favorite-notification-group.is-collapsed .favorite-notification-group-list {
  display: none;
}

.favorite-notification-item {
  border: 1px solid rgba(194, 204, 220, 0.85);
  border-radius: 14px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(245, 248, 252, 0.94) 100%);
  box-shadow: 0 8px 18px rgba(37, 56, 92, 0.08);
  overflow: hidden;
}

.favorite-notification-item.rise {
  border-color: rgba(217, 110, 110, 0.4);
  background: linear-gradient(180deg, #fff9f9 0%, #fff3f3 100%);
}

.favorite-notification-item.drop {
  border-color: rgba(95, 134, 222, 0.42);
  background: linear-gradient(180deg, #f8fbff 0%, #f1f6ff 100%);
}

.favorite-notification-item.market-trade {
  border-color: rgba(93, 144, 217, 0.36);
  background: linear-gradient(180deg, #fbfdff 0%, #f1f7ff 100%);
}

.favorite-notification-item.market-permit {
  border-color: rgba(208, 164, 90, 0.38);
  background: linear-gradient(180deg, #fffdf9 0%, #fbf4e8 100%);
}

.favorite-notification-item.is-push-highlight {
  border-color: rgba(74, 150, 255, 0.9);
  box-shadow:
    0 0 0 2px rgba(74, 150, 255, 0.18),
    0 12px 24px rgba(44, 98, 197, 0.2);
  animation: favorite-notification-pulse 1.15s ease-in-out 5;
}

.favorite-notification-item-btn {
  width: 100%;
  border: 0;
  background: transparent;
  padding: 10px 12px;
  display: grid;
  gap: 4px;
  text-align: left;
  color: inherit;
}

.favorite-notification-item-btn:hover {
  background: rgba(255, 255, 255, 0.44);
}

.favorite-notification-item-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.favorite-notification-item-title {
  color: #1e3245;
  font-size: 0.84rem;
  font-weight: 900;
}

.favorite-notification-item-time {
  color: #65788a;
  font-size: 0.68rem;
  font-weight: 800;
  white-space: nowrap;
}

.favorite-notification-item-line {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.favorite-notification-item-type {
  color: #506273;
  font-size: 0.74rem;
  font-weight: 800;
}

.favorite-notification-item-delta {
  font-size: 0.82rem;
  font-weight: 900;
}

.favorite-notification-item.rise .favorite-notification-item-delta {
  color: #cc4046;
}

.favorite-notification-item.drop .favorite-notification-item-delta {
  color: #285dca;
}

.favorite-notification-item-price {
  color: #4d6170;
  font-size: 0.72rem;
  font-weight: 800;
}

.favorite-market-notification-type {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding: 0 8px;
  border-radius: 999px;
  border: 1px solid rgba(190, 199, 214, 0.9);
  background: rgba(255, 255, 255, 0.82);
  color: #4c6271;
  font-size: 0.67rem;
  font-weight: 900;
}

.favorite-market-notification-type.market-trade {
  border-color: rgba(106, 145, 215, 0.42);
  background: linear-gradient(180deg, #f4f8ff 0%, #e7efff 100%);
  color: #2c5ca8;
}

.favorite-market-notification-type.market-permit {
  border-color: rgba(205, 165, 94, 0.42);
  background: linear-gradient(180deg, #fff8ef 0%, #f8ecd8 100%);
  color: #8d5c19;
}

.favorite-market-notification-main {
  color: #213849;
  font-size: 0.8rem;
  font-weight: 900;
  line-height: 1.3;
}

.favorite-market-notification-subline {
  display: grid;
  gap: 2px;
}

.favorite-market-notification-context {
  color: #687b88;
  font-size: 0.68rem;
  font-weight: 700;
  line-height: 1.35;
}

.favorite-notification-empty {
  padding: 16px 14px;
  border: 1px dashed rgba(185, 198, 212, 0.95);
  border-radius: 14px;
  color: #617484;
  font-size: 0.82rem;
  font-weight: 800;
  text-align: center;
  background: rgba(255, 255, 255, 0.78);
}

@keyframes favorite-notification-pulse {
  0%,
  100% {
    transform: translateZ(0);
    box-shadow:
      0 0 0 2px rgba(74, 150, 255, 0.16),
      0 12px 24px rgba(44, 98, 197, 0.16);
  }
  50% {
    transform: translateY(-1px);
    box-shadow:
      0 0 0 4px rgba(74, 150, 255, 0.24),
      0 16px 28px rgba(44, 98, 197, 0.24);
  }
}

@media (max-width: 1080px) {
  .complex-map-fab {
    bottom: 14px;
    right: 14px;
    width: 50px;
    height: 50px;
  }

  .scroll-top-fab {
    left: 12px;
    width: 46px;
    height: 46px;
  }

  .scroll-top-fab-icon {
    width: 22px;
    height: 22px;
  }

  .main-scroll-top-fab {
    bottom: calc(env(safe-area-inset-bottom, 0px) + 18px);
  }

  .detail-back-fab {
    bottom: calc(env(safe-area-inset-bottom, 0px) + 74px);
  }

  .side-scroll-top-fab {
    bottom: 66px;
  }

  .header-top {
    flex-direction: column;
  }

  .main-header .header-top {
    display: flex;
    flex-direction: column;
  }

  .header-left {
    max-width: none;
  }

  .header-right {
    min-width: 0;
    width: 100%;
    flex: 1 1 auto;
  }

  .header-quick-access {
    justify-content: flex-start;
  }

  .header-tools {
    grid-template-columns: 1fr;
    grid-template-areas: "search";
    width: 100%;
    min-width: 0;
  }

  .header-tools > .panel {
    width: 100%;
    min-width: 0;
  }

  .header-search-panel .compact-search-row-main {
    grid-template-columns: 1fr;
  }

  .header-search-panel .compact-search-row-actions {
    justify-content: flex-start;
    flex-wrap: wrap;
  }

  .search-experiment-fields {
    grid-template-columns: 1fr;
  }

  .live-summary-inline {
    padding: 6px 8px;
    gap: 6px;
  }

  .live-summary-top {
    gap: 5px;
  }

  .live-inline-item {
    padding: 2px 7px;
  }

  .live-summary-inline .live-inline-status,
  .live-summary-inline .live-inline-progress {
    padding: 6px 9px;
    font-size: 0.75rem;
  }

  .ranking-mode-row {
    grid-template-columns: 1fr;
    gap: 6px;
  }

  .ranking-region-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .ranking-region-row button {
    grid-column: 1 / -1;
    justify-self: flex-start;
  }

  .header-nav {
    justify-content: flex-start;
  }

  .layout {
    grid-template-columns: 1fr;
  }

  .layout.main-layout {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .search-row {
    flex-wrap: wrap;
  }

  .favorite-open-btn {
    text-align: left;
  }

  .favorites-panel-head-top {
    align-items: flex-start;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 6px;
  }

  .favorites-panel-head-actions {
    margin-left: 0;
    width: 100%;
    justify-content: flex-start;
    flex-wrap: wrap;
  }

  .side-panel-filter-toggle {
    min-width: 74px;
    padding: 5px 10px;
    font-size: 0.7rem;
  }

  .side-panel-refresh-btn {
    min-width: 86px;
    padding: 5px 9px;
    font-size: 0.68rem;
  }

  .side-board-row {
    grid-template-columns: 1fr;
    gap: 4px;
  }

  .side-board-sort-controls {
    grid-template-columns: minmax(0, 1fr) 30px 30px;
    gap: 5px;
  }

  .side-sort-dir-btn {
    width: 30px;
    height: 30px;
  }

  .side-board-row-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .side-board-row-grid button {
    grid-column: 1 / -1;
  }

  .favorites-bulk-refresh-actions {
    flex-wrap: wrap;
  }

  #stopFavoritesAllRefreshBtn {
    flex: 0 0 auto;
    min-width: 0;
  }

  .favorites-bulk-refresh-row {
    align-items: flex-start;
    gap: 6px;
  }

  .favorites-bulk-refresh-status {
    font-size: 0.68rem;
    line-height: 1.28;
  }

  .favorite-ask-table {
    --favorite-ask-delta-pill-width: 4.66rem;
    font-size: 0.79rem;
  }

  .favorite-ask-table col.favorite-ask-col-pyeong {
    width: 13.5%;
  }

  .favorite-ask-table col.favorite-ask-col-floor {
    width: 9%;
  }

  .favorite-ask-table col.favorite-ask-col-score {
    width: 8.5%;
  }

  .favorite-ask-table col.favorite-ask-col-review {
    width: 11.5%;
  }

  .favorite-ask-table col.favorite-ask-col-lowest {
    width: 29.5%;
  }

  .favorite-ask-table col.favorite-ask-col-latest {
    width: 28%;
  }

  .favorite-ask-table th {
    padding: 1px 0 4px;
    font-size: 0.73rem;
    letter-spacing: -0.03em;
  }

  .favorite-ask-table td {
    padding: 5px 0 1px;
  }

  .favorite-ask-table td.favorite-ask-col-pyeong,
  .favorite-ask-table td.favorite-ask-col-floor,
  .favorite-ask-table td.favorite-ask-col-score {
    letter-spacing: -0.03em;
  }

  .favorite-ask-table th.favorite-ask-col-review,
  .favorite-ask-table td.favorite-ask-col-review {
    text-align: left;
    padding-left: 2px;
  }

  .favorite-ask-review-stack {
    justify-items: start;
  }

  .favorite-ask-review {
    font-size: 0.72rem;
  }

  .favorite-ask-review-stack .deal-review-guard-badge {
    max-width: 100%;
    font-size: 0.49rem;
    padding: 2px 4px 1px;
  }

  .favorite-ask-delta-pill {
    font-size: 0.54rem;
    padding: 2px 5px;
  }

  .favorite-ask-delta-pill-price {
    width: 2.34rem;
    min-width: 2.34rem;
    grid-template-columns: 0.46rem minmax(0, 1fr);
  }

  .favorite-ask-delta-pill-age {
    min-width: 1.02rem;
  }

  .favorites-list {
    gap: 6px;
    padding: 6px 5px 18px;
  }

  .favorite-item {
    padding: 5px;
  }

  .favorite-open-btn {
    padding: 9px 10px;
  }

  .favorite-ask-wrap.is-scrollable {
    max-height: 128px;
  }

  .card-head {
    flex-direction: column;
    align-items: flex-start;
  }

  .card-head-side {
    min-width: 0;
    width: 100%;
    align-items: flex-start;
  }

  .card-collect-times {
    width: 100%;
    text-align: left;
  }

  .card-collect-line {
    justify-content: flex-start;
    flex-wrap: wrap;
  }

  .detail-meta {
    display: grid;
    gap: 6px;
    overflow: visible;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: none;
  }

  .detail-meta li {
    display: flex;
    flex-wrap: wrap;
    padding: 0;
    margin: 0;
    border: 0;
  }

  .detail-meta li:first-child {
    max-width: none;
  }

  .detail-meta-value {
    white-space: normal;
    overflow: visible;
    text-overflow: clip;
  }

  .detail-meta strong {
    min-width: 74px;
  }

  .detail-meta-badge {
    max-width: 100%;
  }

  .detail-identity-history {
    padding: 11px 12px;
  }

  .detail-identity-history-head,
  .detail-identity-history-item-head {
    align-items: flex-start;
    flex-direction: column;
  }

  .detail-identity-history-time {
    white-space: normal;
  }

  .detail-identity-history-label {
    min-width: 38px;
  }

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

  .incremental-summary-list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .header-detail-summary .incremental-summary-list {
    grid-template-columns: 1fr;
  }

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

  .detail-filters-extra {
    grid-template-columns: 1fr;
  }

  .detail-change-window-row {
    align-items: flex-start;
    gap: 6px;
  }

  .detail-change-window-label,
  .detail-change-window-note {
    width: 100%;
  }

  .listing-table th.judge-col-head,
  .listing-table td.judge-col-cell {
    min-width: 74px;
    width: 74px;
    max-width: 78px;
  }

  .listing-table th.change-col-head,
  .listing-table td.change-cell {
    min-width: 50px;
    width: 50px;
    max-width: 56px;
  }

  .listing-table .col-type {
    min-width: 94px;
    width: 94px;
  }

  .listing-table .col-price {
    min-width: 88px;
    width: 88px;
  }

  .listing-table .col-location {
    min-width: 96px;
    width: 96px;
  }

  .listing-table .col-occupancy {
    min-width: 128px;
    width: 128px;
  }

  .listing-table .col-gap,
  .listing-table .col-gap-real {
    min-width: 78px;
    width: 78px;
  }

  .listing-table .col-confirm {
    min-width: 80px;
    width: 80px;
  }

  .listing-table .location-sub {
    font-size: 0.7rem;
  }

  .sort-btn.sort-btn-multiline .line-1 {
    font-size: 0.69rem;
  }

  .sort-btn.sort-btn-multiline .line-2 {
    font-size: 0.64rem;
  }

  .sort-btn.sort-btn-multiline .line-3 {
    font-size: 0.62rem;
  }

  .chart-control-row {
    gap: 6px;
  }

  .chart-control-row-main {
    padding: 7px 8px;
  }

  .chart-control-row input {
    width: 136px;
    min-width: 136px;
  }

  .chart-control-meta {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 5px;
  }

  .chart-control-chip {
    font-size: 0.71rem;
    padding: 5px 7px;
  }

  .chart-db-info-popover {
    width: min(calc(100vw - 44px), 520px);
    max-width: calc(100vw - 44px);
  }

  .sale-chart-row {
    grid-template-columns: 1fr;
  }

  .sale-chart-row.merged-row {
    grid-template-columns: 1fr;
  }

  .sale-chart-axis-wrap.merged {
    grid-template-columns: 1fr;
    gap: 6px;
    padding-bottom: 2px;
  }

  .sale-chart-axis-wrap.merged .sale-axis-spacer {
    display: none;
  }

  .sale-chart-axis-wrap.merged .sale-chart-axis {
    margin-left: 28px;
    width: calc(100% - 28px);
  }

  .merged-track-line {
    grid-template-columns: 28px minmax(0, 1fr);
  }

  /* 모바일에서는 공용 헤더가 데이터 블록과 멀어 보여 혼란을 주므로 숨긴다. */
  .merged-meta-head {
    display: none;
  }

  .merged-side-head {
    display: none;
  }

  .merged-meta-v2 {
    grid-template-columns: 1fr;
  }

  .merged-trend-dual {
    grid-template-columns: 1fr;
  }

  .merged-kpi-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .deal-summary-head {
    gap: 6px;
  }

  .deal-summary-layout {
    grid-template-columns: 1fr;
    gap: 6px;
  }

  .deal-score-intuitive {
    min-height: 0;
    padding: 7px 8px;
  }

  .deal-score-intuitive-gauge {
    width: 118px;
    height: 70px;
  }

  .deal-score-intuitive-score {
    font-size: 1.24rem;
  }

  .deal-summary-main {
    gap: 5px;
  }

  .deal-score-help-anchor {
    margin-left: 0;
  }

  .deal-score-help-anchor .deal-score-popover {
    right: auto;
    left: 0;
    width: min(calc(100vw - 40px), 340px);
    max-width: calc(100vw - 40px);
  }

  .merged-meta-col-head.ask-head {
    align-items: flex-start;
  }

  .merged-ask-controls {
    justify-content: flex-start;
    flex-wrap: wrap;
    margin-top: -1px;
  }

  .merged-ask-minihead,
  .merged-ask-grid,
  .merged-real-minihead,
  .merged-real-grid {
    grid-template-columns: minmax(0, 0.95fr) minmax(86px, 0.72fr) minmax(56px, 0.42fr) minmax(48px, 0.34fr);
    gap: 2px 4px;
  }

  .merged-ask-col.price .price-delta { font-size: 0.62rem; }

  .merged-meta-col.real .merged-meta-list,
  .merged-meta-col.ask .merged-meta-list {
    min-height: 108px;
    height: clamp(108px, var(--meta-list-height, 176px), 210px);
    max-height: clamp(108px, var(--meta-list-height, 176px), 210px);
  }

  .deal-whatif-controls {
    grid-template-columns: minmax(0, 1fr) auto auto;
    grid-template-areas:
      "slider input reset";
    gap: 6px;
  }

  .deal-whatif-controls input[type="range"] {
    grid-area: slider;
  }

  .deal-whatif-direct {
    justify-self: end;
  }

  .deal-whatif-reset.inline-btn.secondary {
    grid-area: reset;
    justify-self: start;
  }

  .merged-meta-head,
  .merged-meta-row {
    grid-template-columns: 30px 38px minmax(50px, 0.9fr) minmax(64px, 1.1fr) minmax(56px, 0.95fr);
  }

  .merged-meta-head span:nth-child(3),
  .merged-meta-row span:nth-child(3) {
    display: none;
  }

  .sale-chart-axis {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .sale-chart-axis span:nth-child(2),
  .sale-chart-axis span:nth-child(4) {
    display: none;
  }

  .sale-chart-axis span {
    font-size: 0.95em;
  }

  .index-stats-grid {
    grid-template-columns: 1fr;
  }
}

@media (min-width: 901px) and (max-width: 1366px) {
  .complex-map-marker-card {
    padding: 10px 10px 9px 14px;
    gap: 5px;
  }

  .complex-map-marker-score-chip {
    min-height: 22px;
    padding: 0 7px;
    font-size: 0.6rem;
  }

  .complex-map-marker-pyeong-chip {
    max-width: 68px;
    font-size: 0.56rem;
  }

  .complex-map-marker-price {
    font-size: 0.95rem;
  }

  .complex-map-marker-bubble.is-updated.is-selected .complex-map-marker-price {
    font-size: 1.08rem;
  }

  .complex-map-marker-delta-pill {
    min-height: 22px;
    padding: 0 7px;
    font-size: 0.61rem;
  }

  .complex-map-marker-complex-row {
    font-size: 0.72rem;
  }
}

@media (max-width: 900px) {
  .complex-map-fab {
    bottom: calc(env(safe-area-inset-bottom, 0px) + 18px);
    right: 10px;
    width: 46px;
    height: 46px;
  }

  .app-header {
    padding-left: 12px;
    padding-right: 12px;
  }

  .header-right,
  .header-tools,
  .header-tools > .panel,
  .header-search-panel,
  .header-ranking-panel,
  .header-summary-panel {
    width: 100%;
    min-width: 0;
    max-width: 100%;
  }

  .header-search-panel .compact-search-row-main > button {
    width: 100%;
  }

  .live-summary-popup {
    padding: 0;
    place-items: start start;
  }

  .ranking-popup {
    padding: 0;
    place-items: stretch;
  }

  .ranking-dialog {
    width: 100vw;
    height: 100dvh;
    max-height: 100dvh;
    border-radius: 0;
    border-left: 0;
    border-right: 0;
  }

  .ranking-popup-head {
    padding: calc(env(safe-area-inset-top, 0px) + 11px) 12px 10px;
  }

  .ranking-popup-body {
    padding: 8px 8px calc(env(safe-area-inset-bottom, 0px) + 14px);
  }

  .favorite-notification-popup {
    padding: 0;
    place-items: stretch;
  }

  .favorite-notification-dialog {
    width: 100vw;
    height: 100dvh;
    max-height: 100dvh;
    border-radius: 0;
    border-left: 0;
    border-right: 0;
  }

  .favorite-notification-head {
    padding: calc(env(safe-area-inset-top, 0px) + 11px) 12px 10px;
  }

  .favorite-notification-body {
    padding: 8px 8px calc(env(safe-area-inset-bottom, 0px) + 64px);
  }

  .favorite-market-monthly-top-head-actions {
    width: 100%;
    justify-content: space-between;
  }

  .favorite-market-notification-columns {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }

  .favorite-market-notification-column {
    padding: 9px;
  }

  .favorite-market-notification-column-head {
    flex-direction: column;
    align-items: stretch;
  }

  .favorite-market-monthly-top-toolbar {
    align-items: stretch;
  }

  .favorite-market-monthly-top-range-fields.has-breakdown,
  .district-market-monthly-top-fields {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
  }

  .district-market-monthly-top-region-label {
    min-width: 0;
  }

  .favorite-market-monthly-top-breakdown-wrap,
  .district-market-monthly-top-breakdown-wrap {
    min-width: 0;
  }

  .favorite-market-monthly-top-range-fields {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
  }

  .favorite-market-monthly-top-select-label {
    min-width: 0;
    width: 100%;
  }

  .favorite-market-monthly-top-select {
    width: 100%;
  }

  .favorite-market-monthly-top-breakdown-btn,
  .district-market-monthly-top-breakdown-btn {
    width: auto;
    max-width: 100%;
  }

  .favorite-market-monthly-top-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
  }

  .favorite-market-monthly-top-month-head {
    flex-direction: column;
    align-items: stretch;
  }

  .favorite-market-monthly-top-reset-btn {
    width: 100%;
    justify-content: center;
  }

  .favorite-market-monthly-top-card {
    min-height: 94px;
    padding: 9px 8px 9px;
    gap: 3px;
  }

  .favorite-market-monthly-top-card strong {
    font-size: 0.74rem;
  }

  .favorite-market-monthly-top-rank-row {
    gap: 6px;
  }

  .favorite-market-monthly-top-rank-meta {
    font-size: 0.54rem;
  }

  .favorite-market-monthly-top-region {
    font-size: 0.6rem;
  }

  .favorite-market-monthly-top-latest {
    font-size: 0.58rem;
  }

  .favorite-market-monthly-top-count {
    font-size: 0.84rem;
  }

  .district-market-monthly-top-breakdown-row-head,
  .district-market-monthly-top-breakdown-row-meta {
    flex-direction: column;
    align-items: flex-start;
  }

  .district-market-monthly-top-breakdown-row-head span {
    text-align: left;
  }

  .favorite-market-monthly-top-count.is-empty {
    font-size: 0.62rem;
  }

  .favorite-market-monthly-top-card-meta {
    font-size: 0.55rem;
  }

  .favorite-market-monthly-top-delta {
    font-size: 0.58rem;
  }

  .favorite-market-monthly-top-chip {
    min-height: 22px;
    padding: 0 8px;
    font-size: 0.6rem;
  }

  .title-market-monthly-icon {
    width: 16px;
    height: 16px;
  }

  .favorite-notification-toolbar {
    flex-direction: column;
    align-items: stretch;
  }

  .favorite-notification-push-box {
    flex-direction: column;
    align-items: stretch;
  }

  .favorite-notification-push-actions {
    justify-content: flex-start;
  }

  .favorite-notification-toolbar-actions {
    justify-content: flex-start;
  }

  .favorite-notification-group-toggle {
    flex-direction: column;
    align-items: flex-start;
  }

  .favorite-notification-group-meta {
    width: 100%;
    justify-content: flex-start;
  }

  .favorite-market-monthly-top-trade-dialog {
    width: min(94vw, 560px);
    max-height: min(74vh, 720px);
  }

  .favorite-alerts-head {
    flex-wrap: wrap;
    align-items: flex-start;
  }

  .favorite-alerts-head strong {
    flex: 1 1 100%;
  }

  .favorite-alerts-head-actions {
    width: 100%;
    margin-left: 0;
    justify-content: flex-start;
    flex-wrap: wrap;
    gap: 6px;
  }

  .favorite-alerts-meta {
    flex: 1 1 100%;
  }

  .favorite-alerts-toggle,
  .favorite-alerts-toggle-secondary {
    min-width: 84px;
    min-height: 32px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }

  .trade-monthly-chart-bars {
    gap: var(--trade-monthly-gap, 4px);
    min-height: 96px;
    padding-top: 16px;
  }

  .trade-monthly-bar-track-wrap,
  .trade-monthly-bar-track {
    height: 74px;
  }

  .trade-monthly-bar-value {
    font-size: 0.4rem;
    padding: 1px 2px;
  }

  .trade-monthly-bar-value.is-outside {
    font-size: 0.4rem;
    padding: 1px 2px;
  }

  .compare-popup {
    padding: 0;
    place-items: stretch;
  }

  .compare-dialog {
    width: 100vw;
    height: 100dvh;
    max-height: 100dvh;
    border-radius: 0;
    border-left: 0;
    border-right: 0;
  }

  .compare-head {
    padding: 8px 10px;
  }

  .compare-head h2 {
    font-size: 0.98rem;
  }

  .compare-head-actions {
    flex-wrap: wrap;
    justify-content: flex-end;
    row-gap: 6px;
  }

  .compare-panel-toggle-btn {
    display: inline-flex;
  }

  .compare-head-actions .secondary {
    padding: 6px 10px;
    font-size: 0.76rem;
  }

  .compare-body {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto minmax(0, 1fr);
    gap: 8px;
    padding: 8px;
    min-height: 0;
    overflow: hidden;
  }

  .compare-body:not(.is-side-collapsed) {
    grid-template-rows: minmax(0, 1fr);
  }

  .compare-body.is-side-collapsed {
    grid-template-rows: minmax(0, 1fr);
  }

  .compare-side-panel {
    grid-template-rows: auto auto auto;
    max-height: min(34dvh, 300px);
    overflow: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }

  .compare-body:not(.is-side-collapsed) .compare-side-panel {
    height: 100%;
    max-height: none;
    grid-template-rows: auto minmax(0, 1fr) auto;
  }

  .compare-body:not(.is-side-collapsed) .compare-side-panel.is-search-idle {
    grid-template-rows: auto minmax(0, 1fr) auto;
  }

  .compare-body:not(.is-side-collapsed) .favorite-activity-compare-side-panel {
    grid-template-rows: minmax(0, 1fr) auto;
  }

  .compare-body:not(.is-side-collapsed) .compare-result-panel {
    display: none;
  }

  .compare-search-results,
  .compare-source-list,
  .compare-selected-list {
    max-height: 88px;
  }

  .compare-body:not(.is-side-collapsed) .compare-search-results,
  .compare-body:not(.is-side-collapsed) .compare-source-list,
  .compare-body:not(.is-side-collapsed) .compare-selected-list {
    max-height: none;
    min-height: 0;
  }

  .compare-body:not(.is-side-collapsed) .compare-selected-list {
    overflow: visible;
  }

  .compare-side-panel h3 {
    font-size: 0.95rem;
  }

  .compare-pick-main strong,
  .compare-selected-main strong {
    font-size: 0.88rem;
  }

  .compare-pick-main small,
  .compare-selected-main small {
    font-size: 0.75rem;
  }

  .compare-pick-toggle,
  .compare-selected-remove {
    font-size: 0.76rem;
    padding: 6px 10px;
  }

  .compare-result-panel {
    min-height: 0;
    overflow: hidden;
  }

  .compare-popup-results {
    padding-right: 2px;
  }

  .favorite-activity-compare-body {
    overflow-y: auto;
    overflow-x: hidden;
    align-content: start;
  }

  .favorite-activity-compare-body.is-side-collapsed {
    grid-template-rows: auto;
  }

  .favorite-activity-compare-body.is-side-collapsed .favorite-activity-compare-result-panel {
    min-height: auto;
    overflow: visible;
  }

  .favorite-activity-compare-body.is-side-collapsed .compare-popup-results {
    min-height: auto;
    overflow: visible;
    padding-right: 0;
  }

  .compare-popup-summary {
    position: sticky;
    top: 0;
    z-index: 4;
    gap: 6px;
    padding: 7px 8px;
    font-size: 0.78rem;
  }

  .compare-matrix-wrap {
    display: none;
  }

  .favorite-activity-compare-summary-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .favorite-activity-compare-summary-card {
    padding: 10px 11px;
  }

  .favorite-activity-compare-summary-stats {
    grid-template-columns: minmax(0, 1fr);
    gap: 4px;
  }

  .favorite-activity-compare-matrix {
    min-width: 760px;
  }

  .favorite-activity-compare-matrix thead th,
  .favorite-activity-compare-matrix th,
  .favorite-activity-compare-matrix td {
    padding: 6px 5px;
  }

  .favorite-activity-compare-matrix tbody th {
    width: 148px;
  }

  .favorite-activity-compare-row-head strong {
    font-size: 0.72rem;
  }

  .favorite-activity-compare-row-head small,
  .favorite-activity-compare-row-head span {
    font-size: 0.58rem;
  }

  .favorite-activity-compare-month-cell span {
    min-width: 20px;
    min-height: 18px;
    padding: 0 4px;
    font-size: 0.61rem;
  }

  .compare-mobile-table-wrap {
    display: block;
  }

  .compare-mobile-table {
    min-width: 100%;
  }

  .compare-mobile-table thead th {
    padding: 6px 5px;
    font-size: 0.71rem;
  }

  .compare-mobile-table th,
  .compare-mobile-table td {
    padding: 5px 3px;
    font-size: 0.69rem;
  }

  .compare-mobile-table tbody tr:not(.compare-mobile-table-group) > th {
    width: 58px;
  }

  .compare-mobile-col-head strong {
    font-size: 0.77rem;
  }

  .compare-mobile-col-head small {
    display: none;
  }

  .compare-mobile-table-row-actions .compare-open-detail-btn {
    padding: 5px 6px;
    font-size: 0.67rem;
  }

  .compare-mobile-row-no {
    min-width: 17px;
    height: 17px;
    padding: 0 4px;
    font-size: 0.57rem;
  }

  .compare-mobile-row-text {
    font-size: 0.64rem;
  }

  .compare-mobile-cell {
    min-height: 50px;
    gap: 4px;
  }

  .compare-mobile-rank-badge {
    min-width: 24px;
    height: 16px;
    padding: 0 5px;
    font-size: 0.58rem;
  }

  .compare-mobile-cell-main small,
  .compare-mobile-review-stack .favorite-ask-review,
  .compare-mobile-trade-stack span {
    font-size: 0.62rem;
  }

  .compare-mobile-review-stack strong {
    font-size: 0.68rem;
  }

  .compare-mobile-trade-stack small {
    font-size: 0.57rem;
  }

  .complex-map-popup {
    padding: 0;
    place-items: stretch;
  }

  .complex-map-dialog {
    width: 100vw;
    height: 100dvh;
    max-height: 100dvh;
    border-radius: 0;
    border-left: 0;
    border-right: 0;
  }

  .complex-map-head {
    padding: calc(env(safe-area-inset-top, 0px) + 8px) 10px 8px;
  }

  .complex-map-head h2 {
    font-size: 0.92rem;
  }

  .complex-map-head-actions .secondary {
    padding: 6px 9px;
    font-size: 0.78rem;
  }

  .complex-map-scope-select {
    min-width: 84px;
    max-width: 96px;
    font-size: 0.68rem;
    padding: 7px 22px 7px 9px;
  }

  .complex-map-favorites-toggle {
    width: 33px;
    height: 33px;
    min-width: 33px;
    padding: 0;
    font-size: 0.92rem;
  }

  .complex-map-mixed-use-toggle {
    min-width: 42px;
    padding-left: 7px;
    padding-right: 7px;
    font-size: 0.72rem;
  }

  .complex-map-locate-btn {
    width: 33px;
    height: 33px;
    min-width: 33px;
    padding: 0;
  }

  .complex-map-locate-icon {
    width: 16px;
    height: 16px;
  }

  .complex-map-filter-panel {
    left: 50px;
    right: 8px;
    width: auto;
    top: 8px;
    padding: 7px 8px;
  }

  .complex-map-filter-toolbar {
    flex-direction: column;
    align-items: stretch;
    gap: 6px;
  }

  .complex-map-filter-summary {
    gap: 5px;
  }

  .complex-map-bulk-panel {
    min-width: 0;
    justify-items: stretch;
  }

  .complex-map-bulk-fields,
  .complex-map-bulk-actions {
    justify-content: stretch;
  }

  .complex-map-bulk-select,
  .complex-map-bulk-start-btn,
  .complex-map-bulk-stop-btn {
    flex: 1 1 0;
    min-width: 0;
  }

  .complex-map-bulk-status {
    text-align: left;
  }

  .complex-map-filter-summary-chip {
    font-size: 0.62rem;
    padding: 5px 8px;
  }
  .complex-map-filter-row {
    display: block;
  }

  .complex-map-filter-row + .complex-map-filter-row {
    margin-top: 8px;
  }

  .complex-map-filter-title {
    margin-bottom: 5px;
    min-width: 50px;
  }

  .complex-map-filter-chip {
    font-size: 0.64rem;
    padding: 6px 9px;
  }

  .complex-map-range-tools {
    width: 100%;
    padding: 7px 8px 2px;
    gap: 7px;
  }

  .complex-map-range-summary-text {
    font-size: 0.62rem;
  }

  .complex-map-dual-range-value {
    font-size: 0.6rem;
  }

  .complex-map-canvas {
    min-height: 320px;
  }

  .complex-map-status {
    left: 8px;
    right: 8px;
    max-width: none;
    bottom: 8px;
    font-size: 0.7rem;
  }

  .complex-map-leaflet-popup .leaflet-popup-content {
    width: min(352px, calc(100vw - 18px)) !important;
    max-width: calc(100vw - 18px) !important;
    min-width: 0;
  }

  .complex-map-popup-head {
    grid-template-columns: minmax(0, 1fr);
    gap: 6px;
  }

  .complex-map-popup-head-secondary {
    grid-template-columns: minmax(0, 1fr);
    gap: 6px;
  }

  .complex-map-popup-head-top {
    gap: 6px;
  }

  .complex-map-popup-coverage {
    font-size: 0.64rem;
    padding: 3px 7px;
  }

  .complex-map-popup-updated {
    justify-self: end;
    font-size: 0.64rem;
    padding: 3px 6px;
  }

  .complex-map-popup-updated.is-inline {
    justify-self: start;
    padding: 0;
  }

  .complex-mini-flow {
    --complex-mini-flow-row-height: 31px;
    width: 100%;
  }

  .complex-mini-flow-body.is-scrollable {
    max-height: calc((var(--complex-mini-flow-visible-rows, 4) * var(--complex-mini-flow-row-height, 31px)) + ((var(--complex-mini-flow-visible-rows, 4) - 1) * 4px));
  }

  .complex-mini-flow-row {
    grid-template-columns: minmax(0, 4.85rem) minmax(0, 1fr) auto;
    gap: 5px;
  }

  .complex-mini-flow-row-label {
    font-size: 0.49rem;
  }

  .complex-mini-flow-row-label-line {
    gap: 3px;
  }

  .complex-mini-flow-row-score-badge {
    min-width: 1.8rem;
    padding: 1px 4px;
    font-size: 0.48rem;
  }

  .complex-mini-flow-row-chip {
    min-height: 15px;
    padding: 2px 4px;
    font-size: 0.42rem;
  }

  .complex-mini-flow-row-chart,
  .complex-mini-flow-row-svg {
    height: 14px;
  }

  .complex-mini-flow-row-values {
    min-width: 3.45rem;
  }

  .complex-mini-flow-row-price {
    font-size: 0.47rem;
  }

  .complex-mini-flow-row-delta {
    font-size: 0.4rem;
  }

  .complex-map-popup-card {
    --complex-map-popup-grid-max-height: 160px;
    --complex-map-popup-lowest-gap: 2px;
    --complex-map-popup-delta-price-col-width: 2.08rem;
    --complex-map-popup-delta-pct-col-width: 1.06rem;
    --complex-map-popup-delta-age-col-width: 1.12rem;
    --complex-map-popup-delta-sep-col-width: 0.18rem;
  }

  .complex-map-popup-grid {
    font-size: 0.64rem;
  }

  .complex-map-popup-grid th {
    font-size: 0.58rem;
    padding: 0 1px 3px;
  }

  .complex-map-popup-grid td {
    padding: 3px 1px;
  }

  .complex-map-popup-col-pyeong {
    width: 14%;
  }

  .complex-map-popup-col-floor {
    width: 9%;
  }

  .complex-map-popup-col-score {
    width: 10%;
  }

  .complex-map-popup-col-review {
    width: 10%;
  }

  .complex-map-popup-col-lowest {
    width: 39%;
  }

  .complex-map-popup-col-latest {
    width: 14%;
  }

  .complex-map-popup-price-main,
  .complex-map-popup-price-link {
    font-size: 0.67rem;
  }

  .complex-map-popup-sale-count {
    font-size: 0.61rem;
  }

  .complex-map-popup-delta-chip {
    padding: 2px 3px 2px 4px;
    font-size: 0.43rem;
  }

  .complex-map-popup-actions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 5px;
    padding: 2px 8px 8px;
  }

  .complex-map-popup-refresh-btn,
  .complex-map-popup-open-btn {
    font-size: 0.68rem;
    padding: 7px 6px;
  }

  .complex-map-popup-refresh-panel {
    grid-template-columns: 44px minmax(0, 1fr) auto;
    gap: 6px;
    padding: 6px 7px;
  }

  .complex-map-popup-refresh-ring {
    width: 44px;
    height: 44px;
  }

  .complex-map-popup-refresh-ring strong {
    font-size: 0.66rem;
  }

  .complex-map-popup-refresh-phase {
    font-size: 0.63rem;
  }

  .complex-map-popup-refresh-count,
  .complex-map-popup-refresh-eta {
    font-size: 0.6rem;
  }

  .complex-map-popup-refresh-stop-btn {
    font-size: 0.56rem;
    padding: 3px 6px;
  }

  .complex-map-marker-card {
    padding: 12px 11px 11px 15px;
    gap: 7px;
    border-radius: 18px;
  }

  .complex-map-marker-tone-bar {
    width: 4px;
    bottom: 8px;
  }

  .complex-map-marker-score-chip {
    left: 10px;
    max-width: 60px;
    min-height: 21px;
    padding: 0 7px;
    font-size: 0.56rem;
  }

  .complex-map-marker-pyeong-chip {
    right: 8px;
    max-width: 64px;
    min-height: 21px;
    padding: 0 7px;
    font-size: 0.58rem;
  }

  .complex-map-marker-price {
    font-size: 1.04rem;
  }

  .complex-map-marker-bubble.is-updated.is-selected .complex-map-marker-card {
    padding: 12px 11px 10px 16px;
  }

  .complex-map-marker-bubble.is-updated.is-selected .complex-map-marker-price {
    font-size: 1.12rem;
  }

  .complex-map-marker-delta-pill {
    min-width: 64px;
    min-height: 28px;
    padding: 0 7px;
    gap: 2px;
  }

  .complex-map-marker-delta-main,
  .complex-map-marker-households {
    font-size: 0.59rem;
  }

  .complex-map-marker-households.is-inline {
    font-size: 0.48rem;
  }

  .complex-map-marker-delta-sub {
    font-size: 0.46rem;
  }

  .complex-map-marker-complex-row {
    font-size: 0.78rem;
    line-height: 1.12;
  }

  .live-summary-dialog {
    width: min(calc(100vw - 20px), 560px);
    max-width: calc(100vw - 20px);
    height: auto;
    max-height: min(calc(100dvh - 20px), 620px);
    border-radius: 18px;
  }

  .complex-map-bulk-dialog {
    width: 100vw;
    height: 100dvh;
    max-height: 100dvh;
    border-radius: 0;
    border-left: 0;
    border-right: 0;
  }

  .complex-map-bulk-body {
    overflow-y: auto;
    padding: 14px 14px calc(env(safe-area-inset-bottom, 0px) + 18px);
  }

  .complex-map-bulk-scheduler-head,
  .complex-map-bulk-scheduler-chip-actions {
    flex-direction: column;
    align-items: flex-start;
  }

  .complex-map-bulk-scheduler-fields {
    grid-template-columns: 1fr;
  }

  .summary-gauge-meta-row {
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
  }

  .summary-gauge-hint {
    white-space: normal;
  }

  .recycler-detail-panel {
    position: static;
    grid-column: 1 / -1;
    margin-top: 4px;
  }

  .recycler-detail-grid,
  .admin-ops-grid {
    grid-template-columns: 1fr;
  }

  .ranking-region-row {
    grid-template-columns: 1fr;
  }

  .ranking-region-row button {
    grid-column: auto;
    width: 100%;
    justify-self: stretch;
  }

  .chart-control-row-main {
    align-items: stretch;
  }

  .chart-control-row-main label {
    width: 100%;
  }

  .chart-control-row-main input {
    width: 100%;
    min-width: 0;
  }

  .chart-control-row-main .analysis-policy,
  .chart-control-row-main .analysis-counts,
  .chart-control-row-main .chart-control-chip.primary {
    width: auto;
    max-width: 100%;
  }

  .chart-control-row-main .chart-db-info-anchor {
    width: auto;
  }

  .chart-control-row-main .chart-db-info-popover {
    width: min(calc(100vw - 40px), 520px);
    max-width: calc(100vw - 40px);
  }

  .type-market-flow30d-panel {
    padding: 16px 12px 14px;
    border-radius: 20px;
    gap: 12px;
  }

  .type-market-flow30d-section-title {
    gap: 6px;
  }

  .type-market-flow30d-info-toggle {
    min-height: 22px;
    padding: 0 7px;
    font-size: 0.58rem;
  }

  .type-market-flow30d-info-popover {
    width: min(calc(100vw - 28px), 360px);
    max-width: calc(100vw - 28px);
  }

  .type-market-flow30d-group-chip {
    min-height: 40px;
    padding: 8px 10px;
    border-radius: 14px;
  }

  .type-market-flow30d-group-chip strong {
    font-size: 0.82rem;
  }

  .type-market-flow30d-group-chip span {
    font-size: 0.7rem;
  }

  .type-market-flow30d-realtrade-avg180d-axis-label {
    font-size: 0.6rem;
  }

  .type-market-flow30d-realtrade-avg180d-axis-label-eyebrow {
    font-size: 0.51rem;
  }

  .type-market-flow30d-realtrade-avg180d-axis-label-value {
    font-size: 0.65rem;
  }

  .type-market-flow30d-avg-delta-label-text {
    font-size: 0.61rem;
  }

  .type-market-flow30d-avg-delta-label-pct {
    font-size: 0.54rem;
  }

  .type-market-flow30d-meta-row {
    gap: 6px;
  }

  .type-market-flow30d-legend-chip,
  .type-market-flow30d-coverage {
    min-height: 28px;
    padding: 0 9px;
    font-size: 0.68rem;
  }

  .type-market-flow30d-chart-shell {
    gap: 10px;
  }

  .type-market-flow30d-tooltip-comparison {
    font-size: 0.66rem;
    gap: 4px 7px;
    padding-top: 9px;
  }

  .type-market-flow30d-tooltip-comparison-avg {
    font-size: 0.76rem;
  }

  .type-market-flow30d-tooltip-comparison-meta,
  .type-market-flow30d-tooltip-comparison-eyebrow {
    font-size: 0.62rem;
  }

  .type-market-flow30d-chart-wrap {
    overflow: hidden;
    border-radius: 18px;
  }

  .type-market-flow30d-x-label {
    font-size: 0.68rem;
  }

  .type-market-flow30d-price-label {
    font-size: 0.7rem;
  }

  .type-market-flow30d-price-label-sub {
    font-size: 0.6rem;
  }

  .type-market-flow30d-trade-label {
    font-size: 0.59rem;
  }

  .type-market-flow30d-trade-label-sub {
    font-size: 0.51rem;
  }

  .type-market-flow30d-listing-label,
  .type-market-flow30d-listing-axis-label {
    font-size: 0.6rem;
  }

  .type-market-flow30d-tooltip-card {
    padding: 12px 12px 13px;
    border-radius: 16px;
  }

  .type-market-flow30d-tooltip-head {
    align-items: flex-start;
    flex-wrap: wrap;
  }

  .type-market-flow30d-tooltip-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 6px;
  }

  .type-market-flow30d-tooltip-metric {
    padding: 9px 8px;
    gap: 3px;
  }

  .type-market-flow30d-tooltip-metric > span {
    font-size: 0.66rem;
  }

  .type-market-flow30d-tooltip-metric strong {
    font-size: 0.8rem;
    letter-spacing: -0.02em;
  }

  .type-market-flow30d-tooltip-metric small,
  .type-market-flow30d-tooltip-metric-lines span {
    font-size: 0.58rem;
    line-height: 1.22;
  }

  .type-market-flow30d-note {
    font-size: 0.73rem;
  }

  .lowest-ask-flow-panel {
    padding: 18px 12px 16px;
    border-radius: 20px;
  }

  .lowest-ask-flow-section-title {
    gap: 6px;
  }

  .lowest-ask-flow-info-toggle {
    min-height: 27px;
    padding: 0 10px;
    font-size: 0.64rem;
  }

  .lowest-ask-flow-chip {
    min-height: 32px;
    padding: 0 11px;
    font-size: 0.9rem;
  }

  .lowest-ask-flow-meta-toggle {
    min-height: 36px;
    padding: 0 14px;
    font-size: 0.92rem;
  }

  .lowest-ask-flow-grid-row text,
  .lowest-ask-flow-x-label {
    font-size: 1.16rem;
  }

  .lowest-ask-flow-chart-wrap.compact {
    overflow: hidden;
  }

  .lowest-ask-flow-chart.compact {
    width: 100%;
  }

  .lowest-ask-flow-legend {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }

  .lowest-ask-flow-legend-item {
    grid-template-columns: 12px minmax(0, 1fr) auto;
    gap: 4px 6px;
    padding: 9px 9px 8px;
    min-height: 58px;
    border-radius: 14px;
  }

  .lowest-ask-flow-legend-date {
    display: none;
  }

  .lowest-ask-flow-legend-label {
    grid-column: 2 / 3;
    font-size: 0.86rem;
  }

  .lowest-ask-flow-legend-price {
    grid-column: 3 / 4;
    justify-self: end;
    font-size: 0.96rem;
  }

  .lowest-ask-flow-legend-delta {
    grid-column: 2 / 4;
    grid-row: 2;
    margin-top: 1px;
    font-size: 0.86rem;
  }

  .lowest-ask-flow-legend-extra {
    grid-column: 2 / 4;
    grid-row: 3;
    margin-top: -1px;
    font-size: 0.74rem;
  }

  .lowest-ask-flow-legend-stale {
    grid-column: 2 / 4;
    grid-row: 4;
    margin-top: -1px;
    font-size: 0.7rem;
  }

  .lowest-ask-flow-legend-dot {
    align-self: start;
    margin-top: 4px;
  }

  .lowest-ask-flow-point-label.mobile {
    font-size: 1.04rem;
  }

  .land-permit-section {
    padding: 12px 12px 13px;
    border-radius: 16px;
  }

  .land-permit-chip-row {
    gap: 6px;
  }

  .land-permit-summary-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .land-permit-summary-card {
    padding: 8px 9px;
    border-radius: 12px;
    gap: 6px;
  }

  .land-permit-summary-label {
    font-size: 0.64rem;
  }

  .land-permit-summary-inline,
  .land-permit-summary-stats,
  .land-permit-summary-facts {
    gap: 5px;
  }

  .land-permit-summary-badge,
  .land-permit-summary-stat {
    font-size: 0.66rem;
    padding: 5px 8px;
  }

  .land-permit-summary-fact {
    padding: 6px 7px;
    border-radius: 10px;
    flex-basis: calc(50% - 3px);
  }

  .land-permit-summary-fact strong {
    font-size: 0.76rem;
  }

  .land-permit-summary-note {
    padding: 7px 8px;
    border-radius: 11px;
  }

  .land-permit-summary-note-label {
    font-size: 0.62rem;
  }

  .land-permit-summary-note-text {
    font-size: 0.66rem;
  }

  .land-permit-chip {
    font-size: 0.72rem;
    padding: 4px 8px;
  }

  .land-permit-note {
    font-size: 0.75rem;
  }

  .land-permit-match-controls {
    grid-template-columns: 1fr;
    gap: 7px;
  }

  .land-permit-match-head {
    gap: 6px;
  }

  .land-permit-match-label {
    font-size: 0.68rem;
  }

  .land-permit-match-summary {
    font-size: 0.66rem;
  }

  .land-permit-chart.compact,
  .land-permit-chart {
    width: 100%;
  }

  .land-permit-event-list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 6px;
  }

  .land-permit-event-item {
    min-height: 96px;
    padding: 8px 7px;
    border-radius: 11px;
  }

  .land-permit-event-date,
  .land-permit-event-count,
  .land-permit-event-match {
    font-size: 0.63rem;
  }

  .land-permit-event-match {
    font-size: 0.58rem;
  }

  .land-permit-event-status {
    font-size: 0.56rem;
  }

  .land-permit-focus-card {
    padding: 7px 8px;
    border-radius: 12px;
  }

  .land-permit-focus-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 8px;
  }

  .land-permit-focus-panel {
    padding: 8px;
    border-radius: 12px;
  }

  .land-permit-focus-panel-head strong {
    font-size: 0.7rem;
  }

  .land-permit-focus-summary-line,
  .land-permit-focus-trade-meta {
    font-size: 0.64rem;
  }

  .land-permit-focus-trade-item {
    padding: 7px 8px;
    border-radius: 10px;
  }

  .land-permit-focus-trade-dates {
    font-size: 0.6rem;
  }

  .land-permit-focus-trade-main {
    font-size: 0.68rem;
  }

  .land-permit-older-card,
  .land-permit-audit-card {
    padding: 8px;
    border-radius: 12px;
  }

  .land-permit-audit-dialog {
    width: min(100vw - 20px, 960px);
  }

  .land-permit-audit-card.popup {
    max-height: min(82vh, 760px);
    border-radius: 14px;
  }

  .land-permit-audit-close {
    min-height: 29px;
    padding: 0 10px;
    font-size: 0.64rem;
  }

  .land-permit-audit-table {
    min-width: 560px;
  }

  .chart-control-meta {
    grid-template-columns: 1fr;
  }

  .live-summary-inline {
    gap: 5px;
  }

  .live-summary-top {
    gap: 4px;
  }

  .live-inline-item {
    max-width: 100%;
  }

  .live-summary-inline .live-inline-status,
  .live-summary-inline .live-inline-progress {
    max-width: 100%;
    padding: 6px 8px;
  }

  .status-pill {
    min-width: 0;
  }

  .layout.main-layout {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .header-quick-access {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    width: 100%;
    align-items: stretch;
    gap: 6px;
    padding: 4px;
    margin-left: 0;
    border-radius: 14px;
  }

  .header-quick-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 0;
    max-width: none;
    width: 100%;
    min-height: 34px;
    border-radius: 999px;
    padding: 0 7px;
    gap: 5px;
    font-size: 0.72rem;
  }

  .header-quick-btn::after {
    width: 42px;
    height: 42px;
    top: -10px;
    right: -9px;
  }

  .header-quick-btn .quick-icon {
    width: 18px;
    height: 18px;
  }

  .header-quick-btn .quick-count {
    min-width: 3ch;
    height: auto;
    font-size: 0.72rem;
    padding: 0;
    text-align: center;
  }

  .header-recycler-group {
    grid-column: 1 / -1;
    grid-template-columns: minmax(0, 1fr) 56px;
    gap: 8px;
    width: 100%;
  }

  .header-recycler-status {
    min-height: 92px;
    border-radius: 18px;
    padding: 12px 14px;
    gap: 12px;
    grid-template-columns: 52px minmax(0, 1fr);
  }

  .header-recycler-status::before {
    border-radius: 17px;
  }

  .recycler-card-ring,
  .recycler-ring-svg {
    width: 52px;
    height: 52px;
  }

  .recycler-ring-label {
    font-size: 0.64rem;
  }

  .recycler-card-copy {
    gap: 6px;
  }

  .recycler-card-head {
    align-items: flex-start;
    gap: 8px;
  }

  .recycler-card-title {
    font-size: 0.9rem;
  }

  .recycler-card-timestamp {
    font-size: 0.63rem;
  }

  .recycler-card-meta {
    font-size: 0.76rem;
  }

  .recycler-card-progress {
    gap: 8px;
  }

  .recycler-card-progress-bar {
    height: 10px;
  }

  .recycler-card-progress-count {
    font-size: 0.78rem;
  }

  .header-recycler-toggle {
    width: 56px;
    min-width: 56px;
    min-height: 92px;
    border-radius: 18px;
    align-self: stretch;
  }

  .recycler-toggle-icon {
    width: 28px;
    height: 28px;
  }

  .recycler-toggle-svg {
    width: 24px;
    height: 24px;
  }

  .header-title-row {
    gap: 8px;
  }

  .title-settings-btn {
    width: 32px;
    height: 32px;
    font-size: 0.96rem;
  }

  .index-admin-popup {
    padding: 0;
    place-items: stretch;
  }

  .index-admin-dialog {
    width: 100vw;
    height: 100dvh;
    max-height: 100dvh;
    border-radius: 0;
    border-left: 0;
    border-right: 0;
  }

  .index-admin-head {
    padding: calc(env(safe-area-inset-top, 0px) + 9px) 10px 9px;
  }

  body.favorites-mobile-open {
    overflow: hidden;
  }

  .mobile-favorites-fab,
  .mobile-today-fab {
    display: inline-flex;
    position: fixed;
    right: 4px;
    transform: translateY(-50%);
    z-index: 1150;
    color: #fff;
    border-radius: 16px 0 0 16px;
    padding: 11px 9px;
    writing-mode: vertical-rl;
    text-orientation: mixed;
    letter-spacing: 0.03em;
    font-size: 0.86rem;
    font-weight: 900;
    line-height: 1.04;
    box-shadow:
      0 12px 24px rgba(44, 24, 8, 0.28),
      inset 0 1px 0 rgba(255, 255, 255, 0.35);
  }

  .mobile-favorites-fab {
    top: 27%;
    border: 1px solid var(--fav-accent-border, #278772);
    background: linear-gradient(180deg, var(--fav-accent-start, #3ab69a) 0%, var(--fav-accent-end, #2e9b83) 100%);
  }

  .mobile-today-fab {
    top: 41%;
    border: 1px solid var(--view-accent-border, #4f6ac0);
    background: linear-gradient(180deg, var(--view-accent-start, #5b94e4) 0%, var(--view-accent-end, #5a79d2) 100%);
  }

  .mobile-favorites-backdrop {
    display: block;
    position: fixed;
    inset: 0;
    z-index: 1120;
    border: 0;
    background: rgba(14, 19, 25, 0.42);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.18s ease;
  }

  body.favorites-mobile-open .mobile-favorites-backdrop {
    opacity: 1;
    pointer-events: auto;
  }

  body.favorites-mobile-open .mobile-favorites-fab,
  body.favorites-mobile-open .mobile-today-fab {
    opacity: 0;
    pointer-events: none;
  }

  .favorites-panel {
    position: fixed;
    top: 0;
    right: 0;
    width: 100vw;
    height: 100dvh;
    max-height: 100dvh;
    overflow-y: auto;
    z-index: 1130;
    transform: translateX(calc(100% + 24px));
    transition: transform 0.22s ease;
    border-radius: 0;
    border-left: 0;
    border-right: 0;
    box-shadow: 0 14px 36px rgba(0, 0, 0, 0.28);
  }

  body.favorites-mobile-open .favorites-panel {
    transform: translateX(0);
  }

  .mobile-favorites-close {
    display: inline-flex;
    position: absolute;
    top: 6px;
    right: 6px;
    z-index: 2;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 999px;
    border: 1px solid #9a3f14;
    background: linear-gradient(180deg, #f5883f 0%, #e46a20 100%);
    color: #fff;
    font-size: 1.05rem;
    font-weight: 900;
    padding: 0;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
  }

  .favorites-panel h2 {
    padding-right: 34px;
  }

  .favorites-panel-head-top {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 6px;
    padding-right: 42px;
  }

  .favorites-panel-head-actions {
    margin-left: 0;
  }

  .favorites-panel .side-panel-filter-toggle {
    justify-self: flex-start;
  }

  .favorites-panel .row.compact {
    margin-top: 2px;
  }

  .favorites-panel .favorites-bulk-refresh-row {
    margin-top: 4px;
    margin-bottom: 6px;
  }

  .favorites-panel .favorites-bulk-refresh-status {
    font-size: 0.7rem;
  }

  .favorites-panel .favorite-alerts {
    min-height: 0;
    max-height: min(26vh, 220px);
    margin-bottom: 0;
  }

  .favorites-panel .favorite-alerts-panel {
    margin-bottom: 8px;
  }


  .favorites-panel .favorites-list {
    max-height: none;
    min-height: auto;
    flex: 0 0 auto;
    overflow: visible;
    padding-right: 0;
  }

  .favorite-main {
    align-items: start;
    gap: 8px;
  }

  .favorite-main-right {
    max-width: min(50vw, 186px);
  }

  .favorite-submeta {
    font-size: 0.7rem;
  }

  .favorite-updated {
    padding: 3px 7px;
    font-size: 0.7rem;
  }

  .favorite-updated-time {
    font-size: 0.7rem;
  }

  .favorite-updated-age {
    font-size: 0.68rem;
  }

  .favorite-updated-need {
    font-size: 0.61rem;
    padding: 1px 5px;
  }

  .merged-trend-panel.compare {
    padding: 9px 10px 10px;
  }

  .merged-trend-head {
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
    margin-bottom: 7px;
  }

  .merged-trend-head strong {
    font-size: 0.9rem;
  }

  .merged-trend-head span {
    font-size: 0.75rem;
    line-height: 1.3;
  }

  .merged-trend-svg.compare {
    width: 100%;
    max-width: none;
    height: auto;
    min-height: 190px;
    aspect-ratio: 420 / 252;
  }

  .merged-trend-svg.compare .axis {
    font-size: 12.6px;
  }

  .merged-trend-svg.compare .axis.x {
    font-size: 13.2px;
  }

  .merged-trend-svg.compare .axis.lane {
    font-size: 14.2px;
  }

  .merged-trend-svg .compare-ref-label {
    font-size: 10.8px;
  }

  .merged-trend-svg .compare-offer-label {
    font-size: 10.4px;
  }

  .merged-trend-svg .compare-latest-label {
    font-size: 10.2px;
  }

  .merged-trend-static-labels {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 4px;
  }

  .merged-trend-static-labels .latest-static {
    font-size: 0.76rem;
    padding: 4px 10px;
  }

  .merged-trend-hover {
    font-size: 0.74rem;
    line-height: 1.36;
  }

  .deal-score-overview-head {
    flex-direction: column;
    align-items: flex-start;
    gap: 3px;
  }

  .deal-score-overview-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }

  .deal-score-overview-item {
    min-height: 148px;
    padding: 12px 8px 13px;
  }

  .deal-score-overview-content {
    width: 92px;
    max-width: 92px;
    gap: 6px;
    padding-inline: 0;
  }

  .deal-score-overview-type {
    width: 92px;
    max-width: 92px;
    font-size: 0.73rem;
  }

  .deal-score-overview-stale {
    font-size: 0.58rem;
    line-height: 1.22;
  }

  .deal-score-overview-price {
    width: 92px;
    max-width: 92px;
    font-size: 0.96rem;
  }

  .deal-score-overview-mini {
    width: 86px;
    height: 64px;
  }

  .deal-score-overview-mini-stack {
    min-width: 48px;
    max-width: 86px;
  }

  .deal-score-overview-mini-value {
    font-size: 1.42rem;
  }

  .deal-score-overview-mini-grade {
    font-size: 0.79rem;
  }
}

@media (max-width: 900px) {
  .favorite-activity-dashboard-popup,
  .complex-map-bulk-popup {
    padding: 0;
    place-items: stretch;
  }

  .favorite-activity-dashboard-dialog {
    width: 100vw;
    height: 100dvh;
    max-height: 100dvh;
    border-radius: 0;
    border-left: 0;
    border-right: 0;
  }

  .favorite-activity-dashboard-head {
    padding-top: calc(env(safe-area-inset-top, 0px) + 16px);
  }

  .favorite-activity-dashboard-body {
    padding-bottom: calc(env(safe-area-inset-bottom, 0px) + 20px);
  }

  .complex-map-bulk-head {
    padding: calc(env(safe-area-inset-top, 0px) + 14px) 16px 12px;
  }
}

@media (max-width: 1080px) and (min-width: 901px) {
  .main-header .header-top {
    display: grid;
    grid-template-columns: minmax(280px, 0.92fr) minmax(420px, 1.4fr);
    align-items: start;
    gap: 14px;
  }

  .header-right {
    width: auto;
  }

  .header-tools {
    grid-template-columns: minmax(280px, 1fr);
    grid-template-areas: "search";
  }

  .header-nav {
    justify-content: flex-end;
  }

  .header-search-panel .compact-search-row-main {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .header-search-panel .compact-search-row-actions {
    justify-content: flex-end;
  }

  .index-admin-dialog {
    width: min(930px, 95vw);
    height: min(86vh, 700px);
  }

  .complex-map-dialog {
    width: min(930px, 95vw);
    height: min(86vh, 720px);
  }

  .live-summary-dialog {
    width: min(930px, 95vw);
    max-height: min(86vh, 700px);
  }

  .ranking-dialog {
    width: min(900px, 95vw);
    max-height: min(86vh, 700px);
  }

  .compare-dialog {
    width: min(1200px, 95vw);
    height: min(86vh, 760px);
  }

  .compare-body {
    grid-template-columns: minmax(260px, 320px) minmax(0, 1fr);
  }

  .sale-chart-row.merged-row {
    grid-template-columns: minmax(124px, 156px) minmax(220px, 1fr) minmax(280px, 1.06fr);
  }

  .sale-chart-axis-wrap.merged {
    grid-template-columns: minmax(124px, 156px) minmax(220px, 1fr) minmax(280px, 1.06fr);
    gap: 8px;
    padding-bottom: 4px;
  }

  .sale-chart-axis-wrap.merged .sale-axis-spacer {
    display: block;
  }

  .sale-chart-axis-wrap.merged .sale-chart-axis {
    margin-left: 0;
    width: auto;
  }

  .merged-side-head {
    display: none;
  }

  .merged-meta-v2 {
    grid-template-columns: 1fr;
  }

  .merged-kpi-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .merged-track-line {
    grid-template-columns: 28px minmax(0, 1fr);
  }

  .deal-summary {
    padding: 8px;
  }

  .deal-summary-main {
    gap: 5px;
  }

  .deal-score {
    font-size: 1.2rem;
  }

  .deal-grade {
    font-size: 0.8rem;
  }

  .deal-confidence {
    padding: 3px 7px;
  }

  .deal-confidence-label {
    font-size: 0.64rem;
  }

  .deal-conclusion {
    padding: 4px 6px;
    font-size: 0.68rem;
  }

  .deal-interpretation {
    padding: 5px 6px;
    font-size: 0.67rem;
  }

  .deal-score-meaning-line {
    font-size: 0.64rem;
  }

  .deal-score-help {
    font-size: 0.6rem;
    padding: 2px 7px;
  }

  .deal-score-seg-labels {
    font-size: 0.56rem;
  }

  .deal-score-tick {
    font-size: 0.55rem;
  }

  .deal-score-marker-badge {
    font-size: 0.53rem;
    padding: 3px 6px 2px;
  }

  .deal-score-popover table {
    font-size: 0.58rem;
  }

  .deal-reasons-short {
    font-size: 0.66rem;
    padding-left: 0;
  }

  .deal-transition {
    font-size: 0.66rem;
  }

  .deal-whatif-controls {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
      "input"
      "slider"
      "reset";
    align-items: start;
    gap: 4px;
  }

  .deal-whatif-direct {
    justify-self: start;
  }

  .deal-whatif-reset.inline-btn.secondary {
    justify-self: start;
  }

  .merged-ask-minihead,
  .merged-ask-grid,
  .merged-real-minihead,
  .merged-real-grid {
    grid-template-columns: minmax(0, 1fr) minmax(72px, 0.64fr) minmax(56px, 0.46fr) minmax(50px, 0.38fr);
    gap: 2px 4px;
  }

  .merged-meta-head {
    display: grid;
  }

  .merged-meta-head,
  .merged-meta-row {
    grid-template-columns: 32px 46px minmax(70px, 0.95fr) minmax(90px, 1.05fr) minmax(112px, 1.25fr);
    gap: 5px;
  }

  .merged-meta-head span:nth-child(3),
  .merged-meta-row span:nth-child(3) {
    display: block;
  }

  .sale-chart-axis {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }

  .sale-chart-axis span:nth-child(2),
  .sale-chart-axis span:nth-child(4) {
    display: block;
  }
}

/* Final override: legacy 3-row map marker */
.complex-map-label-marker.leaflet-div-icon {
  background: transparent;
  border: 0;
  box-shadow: none;
}

.complex-map-marker-bubble,
.complex-map-marker-bubble.is-updated,
.complex-map-marker-bubble.is-unchecked {
  position: relative;
  display: block;
  width: 120px;
  height: auto;
  padding-top: 0;
  box-sizing: border-box;
  border-radius: 11px;
  overflow: visible;
  box-shadow: 0 4px 8px rgba(18, 31, 44, 0.18);
}

.complex-map-marker-bubble.is-updated {
  width: 122px;
  --complex-marker-border: #157f72;
  --complex-marker-name-bg: #f6fffc;
  --complex-marker-name-text: #0e4e47;
  --complex-marker-info-bg: linear-gradient(180deg, #28b39a 0%, #1a9580 100%);
  --complex-marker-info-text: #ffffff;
  --complex-marker-mid-bg: #f9fffd;
  --complex-marker-mid-text: #4d5a68;
  --complex-marker-tip: #136c5f;
  --complex-marker-badge-text: #0f5f52;
}

.complex-map-marker-bubble::before {
  display: none !important;
}

.complex-map-marker-bubble::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -8px;
  transform: translateX(-50%);
  width: 0;
  height: 0;
  border-left: 7px solid transparent;
  border-right: 7px solid transparent;
  border-top: 8px solid #2457df;
}

.complex-map-marker-bubble.is-updated::after {
  border-top-color: var(--complex-marker-tip);
}

.complex-map-marker-bubble .complex-map-marker-card,
.complex-map-marker-bubble .complex-map-marker-tone-bar,
.complex-map-marker-bubble .complex-map-marker-pyeong-chip,
.complex-map-marker-bubble .complex-map-marker-score-chip,
.complex-map-marker-bubble .complex-map-marker-delta-pill,
.complex-map-marker-bubble .complex-map-marker-price-row,
.complex-map-marker-bubble .complex-map-marker-price-stack,
.complex-map-marker-bubble .complex-map-marker-complex-row,
.complex-map-marker-bubble .complex-map-marker-meta-row,
.complex-map-marker-bubble .complex-map-marker-compact-pyeong-chip,
.complex-map-marker-bubble .complex-map-marker-compact-delta,
.complex-map-marker-bubble .complex-map-marker-compact-price {
  display: none !important;
}

.complex-map-marker-name {
  display: flex !important;
  position: relative;
  align-items: center;
  justify-content: center;
  border: 2px solid #2f65ff;
  border-bottom: 0;
  border-radius: 11px 11px 0 0;
  background: #ffffff;
  color: #131d2a;
  font-size: 0.84rem;
  font-weight: 900;
  letter-spacing: -0.01em;
  line-height: 1.12;
  padding: 4px 8px 3px;
}

.complex-map-marker-name-text {
  display: block;
  min-width: 0;
  width: 100%;
  text-align: center;
  white-space: nowrap;
  overflow: hidden;
  font-size: calc(1em * var(--complex-marker-name-scale, 1));
  letter-spacing: var(--complex-marker-name-tracking, -0.01em);
  text-overflow: clip;
}

.complex-map-marker-households {
  display: block !important;
  border: 2px solid #2f65ff;
  border-top: 0;
  border-radius: 0;
  background: linear-gradient(180deg, #3a74ff 0%, #2457df 100%);
  color: #ffffff;
  font-size: 0.81rem;
  font-weight: 800;
  text-align: center;
  line-height: 1.12;
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
  padding: 4px 7px 5px;
}

.complex-map-marker-bubble.is-updated .complex-map-marker-name {
  border-color: var(--complex-marker-border);
  background: var(--complex-marker-name-bg);
  color: var(--complex-marker-name-text);
  font-size: 0.76rem;
  padding: 4px 8px 3px;
}

.complex-map-marker-presale-badge {
  position: absolute;
  top: auto;
  bottom: -8px;
  left: -2px;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 16px;
  padding: 0 6px;
  border-radius: 999px;
  border: 1px solid rgba(132, 195, 224, 0.92);
  background: rgba(232, 246, 255, 0.98);
  color: #123d58;
  font-size: 0.5rem;
  font-weight: 900;
  line-height: 1;
  letter-spacing: -0.02em;
  box-shadow: 0 4px 10px rgba(18, 31, 44, 0.14);
  z-index: 4;
}

.complex-map-marker-bubble.has-presale .complex-map-marker-favorite-badge {
  left: -2px;
}

.complex-map-marker-activity-top-badge {
  top: auto;
  right: -2px;
  bottom: -8px;
  z-index: 4;
}

.complex-map-marker-judge {
  position: absolute;
  top: -8px;
  right: -2px;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  min-width: 26px;
  height: 16px;
  padding: 0 5px;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.7);
  background: rgba(255, 255, 255, 0.98);
  color: var(--complex-marker-badge-text);
  font-size: 0.52rem;
  font-weight: 900;
  line-height: 1;
  letter-spacing: -0.02em;
  box-shadow: 0 4px 10px rgba(18, 31, 44, 0.14);
  z-index: 3;
}

.complex-map-marker-info {
  display: flex !important;
  align-items: center;
  justify-content: center;
  gap: 4px;
  border-left: 2px solid var(--complex-marker-border);
  border-right: 2px solid var(--complex-marker-border);
  background: var(--complex-marker-info-bg);
  color: var(--complex-marker-info-text);
  font-size: 0.86rem;
  font-weight: 900;
  text-align: center;
  line-height: 1.08;
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
  padding: 3px 6px 2px;
}

.complex-map-marker-pyeong-inline {
  font-size: 0.93rem;
  font-weight: 900;
  letter-spacing: -0.03em;
}

.complex-map-marker-info-dot {
  font-size: 0.82rem;
  font-weight: 900;
  opacity: 0.92;
}

.complex-map-marker-price-inline {
  font-size: 0.98rem;
  font-weight: 900;
  letter-spacing: -0.04em;
}

.complex-map-marker-sale-pill {
  position: absolute;
  top: 34px;
  right: -9px;
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 30px;
  max-width: 52px;
  height: 18px;
  padding: 0 6px;
  border-radius: 999px;
  border: 1.5px solid rgba(255, 255, 255, 0.92);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(242, 249, 247, 0.96) 100%);
  color: var(--complex-marker-border, #157f72);
  font-size: 0.57rem;
  font-weight: 900;
  line-height: 1;
  letter-spacing: -0.02em;
  box-shadow: 0 4px 10px rgba(18, 31, 44, 0.16);
  overflow: hidden;
  text-overflow: ellipsis;
  z-index: 4;
}

.complex-map-marker-delta {
  display: block !important;
  border: 2px solid var(--complex-marker-border);
  border-top: 0;
  border-radius: 0;
  background: var(--complex-marker-mid-bg);
  color: var(--complex-marker-mid-text);
  font-size: 0.63rem;
  font-weight: 900;
  text-align: center;
  line-height: 1.05;
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
  padding: 2px 6px 4px;
}

.complex-map-marker-delta.is-up {
  color: #d64545;
}

.complex-map-marker-delta.is-down {
  color: #2660d0;
}

.complex-map-marker-delta.is-neutral {
  color: #677382;
}

.complex-map-marker-bubble.is-updated.review-expensive {
  --complex-marker-border: #ce5d4b;
  --complex-marker-name-bg: #fff3f0;
  --complex-marker-name-text: #7b2419;
  --complex-marker-info-bg: linear-gradient(180deg, #df715e 0%, #c84f3f 100%);
  --complex-marker-info-text: #fff7f4;
  --complex-marker-mid-bg: #fff8f6;
  --complex-marker-mid-text: #6b4f49;
  --complex-marker-tip: #ac3c2f;
  --complex-marker-badge-text: #b34836;
}

.complex-map-marker-bubble.is-updated.review-watch {
  --complex-marker-border: #c48a24;
  --complex-marker-name-bg: #fff8e8;
  --complex-marker-name-text: #745012;
  --complex-marker-info-bg: linear-gradient(180deg, #ddb64d 0%, #c88f24 100%);
  --complex-marker-info-text: #fffaf0;
  --complex-marker-mid-bg: #fffaf1;
  --complex-marker-mid-text: #75624a;
  --complex-marker-tip: #9b6b14;
  --complex-marker-badge-text: #9a6a13;
}

.complex-map-marker-bubble.is-updated.review-fair {
  --complex-marker-border: #90a83a;
  --complex-marker-name-bg: #f8fbec;
  --complex-marker-name-text: #57671d;
  --complex-marker-info-bg: linear-gradient(180deg, #abc957 0%, #88a83a 100%);
  --complex-marker-info-text: #fbfff3;
  --complex-marker-mid-bg: #fbfdf4;
  --complex-marker-mid-text: #657155;
  --complex-marker-tip: #6d8727;
  --complex-marker-badge-text: #6f8627;
}

.complex-map-marker-bubble.is-updated.review-good {
  --complex-marker-border: #268e78;
  --complex-marker-name-bg: #eefcf7;
  --complex-marker-name-text: #11564b;
  --complex-marker-info-bg: linear-gradient(180deg, #34b69c 0%, #238a72 100%);
  --complex-marker-info-text: #ffffff;
  --complex-marker-mid-bg: #f7fffc;
  --complex-marker-mid-text: #4d5a68;
  --complex-marker-tip: #1b7362;
  --complex-marker-badge-text: #176e5b;
}

.complex-map-marker-bubble.is-updated.review-bargain {
  --complex-marker-border: #4b78da;
  --complex-marker-name-bg: #eef4ff;
  --complex-marker-name-text: #173f84;
  --complex-marker-info-bg: linear-gradient(180deg, #5589ef 0%, #355fbc 100%);
  --complex-marker-info-text: #f7fbff;
  --complex-marker-mid-bg: #f5f9ff;
  --complex-marker-mid-text: #506078;
  --complex-marker-tip: #2f539f;
  --complex-marker-badge-text: #3560bc;
}

.complex-map-marker-bubble.is-updated.review-unknown {
  --complex-marker-border: #7587a4;
  --complex-marker-name-bg: #f3f6fb;
  --complex-marker-name-text: #324659;
  --complex-marker-info-bg: linear-gradient(180deg, #8697b6 0%, #647792 100%);
  --complex-marker-info-text: #fbfdff;
  --complex-marker-mid-bg: #f7f9fc;
  --complex-marker-mid-text: #5d6a78;
  --complex-marker-tip: #53667f;
  --complex-marker-badge-text: #576a86;
}

.complex-map-marker-bubble.is-unchecked .complex-map-marker-name {
  border-color: #b7c1cc;
  background: #fbfcfd;
  color: #4a5866;
}

.complex-map-marker-bubble.is-unchecked .complex-map-marker-households {
  border-color: #b7c1cc;
  background: linear-gradient(180deg, #e1e6ec 0%, #ccd5df 100%);
  color: #53606d;
}

.complex-map-marker-permit {
  display: block !important;
  border: 2px solid var(--complex-marker-border, #2f65ff);
  border-top: 0;
  border-radius: 0 0 11px 11px;
  background: #f5f8fd;
  color: #4d5d6d;
  font-size: 0.56rem;
  font-weight: 900;
  text-align: center;
  line-height: 1.05;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  padding: 2px 6px 4px;
}

.complex-map-marker-permit.is-active {
  color: #194e88;
  background: #eef4ff;
}

.complex-map-marker-permit.is-active.is-window-7 {
  color: #134c8d;
  background: #e7f1ff;
}

.complex-map-marker-permit.is-active.is-window-14 {
  color: #356175;
  background: #eef7f7;
}

.complex-map-marker-permit.is-active.is-window-21 {
  color: #6a5b2a;
  background: #faf4e5;
}

.complex-map-marker-permit.is-empty {
  color: #5f6d78;
  background: #f7fafc;
}

.complex-map-marker-permit.is-pending {
  color: #6c7a86;
  background: #f3f6f9;
}

.complex-map-marker-permit.is-unsupported {
  color: #7a6d5b;
  background: #fbf8f1;
}

.complex-map-filter-chip.is-passive-default {
  border-color: #c7d3ea;
  background: linear-gradient(180deg, #f7faff 0%, #ecf2fb 100%);
  color: #4c6186;
}

.complex-map-marker-bubble.is-unchecked::after {
  border-top-color: #ccd5df;
}

@media (max-width: 390px) {
  .land-permit-event-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.market-overview-signal-canvas {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--market-overview-signal-canvas-gap);
  margin-bottom: var(--market-overview-signal-canvas-margin-bottom);
}

.market-overview-signal-ribbon {
  border: 1px solid var(--market-overview-signal-ribbon-border);
  background: var(--market-overview-signal-ribbon-bg);
  border-radius: var(--market-overview-signal-ribbon-radius);
  padding: var(--market-overview-signal-ribbon-padding);
  display: grid;
  gap: var(--market-overview-signal-ribbon-gap);
  text-align: left;
  box-shadow: var(--market-overview-signal-ribbon-shadow);
}

.market-overview-signal-ribbon.tone-hot { border-color: var(--market-overview-signal-ribbon-hot-border); }
.market-overview-signal-ribbon.tone-permit { border-color: var(--market-overview-signal-ribbon-permit-border); }
.market-overview-signal-ribbon.tone-confirm { border-color: var(--market-overview-signal-ribbon-confirm-border); }
.market-overview-signal-ribbon.tone-cool,
.market-overview-signal-ribbon.tone-flat,
.market-overview-signal-ribbon.tone-pending { border-color: var(--market-overview-signal-ribbon-neutral-border); }

.market-overview-signal-ribbon-head,
.favorite-activity-signal-head {
  display: flex;
  justify-content: space-between;
  gap: var(--market-overview-signal-ribbon-head-gap);
  align-items: baseline;
}

.market-overview-signal-ribbon-head strong,
.favorite-activity-signal-head strong {
  font-size: 15px;
  font-weight: 800;
  color: var(--market-overview-signal-head-color);
}

.market-overview-signal-ribbon-head span,
.favorite-activity-signal-head span {
  font-size: 11px;
  color: var(--market-overview-signal-copy-color);
}

.market-overview-sparkline {
  width: 100%;
  height: 42px;
  display: block;
}

.market-overview-sparkline-area {
  fill: var(--market-overview-sparkline-area);
}

.market-overview-sparkline-line {
  fill: none;
  stroke: var(--market-overview-sparkline-line);
  stroke-width: 2.3;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.market-overview-sparkline-point {
  fill: var(--market-overview-sparkline-point);
}

.market-overview-sparkline-baseline {
  stroke: var(--market-overview-sparkline-baseline);
  stroke-width: 1.2;
  stroke-dasharray: 4 4;
}

.market-overview-sparkline-last-segment {
  stroke-width: 3;
  stroke-linecap: round;
}

.market-overview-sparkline-point-ring {
  fill: var(--market-overview-sparkline-ring-fill);
  stroke-width: 2;
}

.market-overview-sparkline-negative-segment,
.market-overview-sparkline-rebound-segment {
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.market-overview-sparkline-negative-segment {
  stroke: var(--market-overview-sparkline-negative-zone);
  stroke-width: 2.8;
}

.market-overview-sparkline-rebound-segment {
  stroke: var(--market-overview-sparkline-negative-rebound);
  stroke-width: 3.2;
}

.market-overview-sparkline-trough-ring {
  fill: var(--market-overview-sparkline-trough-ring-fill);
  stroke: var(--market-overview-sparkline-trough-ring-stroke);
  stroke-width: 1.8;
}

.market-overview-sparkline-trough-point {
  fill: var(--market-overview-sparkline-trough-point);
}

.market-overview-sparkline.tone-hot .market-overview-sparkline-line,
.market-overview-sparkline.tone-hot .market-overview-sparkline-point {
  stroke: var(--market-overview-sparkline-hot);
  fill: var(--market-overview-sparkline-hot);
}

.market-overview-sparkline.tone-permit .market-overview-sparkline-line,
.market-overview-sparkline.tone-permit .market-overview-sparkline-point {
  stroke: var(--market-overview-sparkline-permit);
  fill: var(--market-overview-sparkline-permit);
}

.market-overview-sparkline.tone-confirm .market-overview-sparkline-line,
.market-overview-sparkline.tone-confirm .market-overview-sparkline-point {
  stroke: var(--market-overview-sparkline-confirm);
  fill: var(--market-overview-sparkline-confirm);
}

.market-overview-sparkline.tone-price .market-overview-sparkline-area {
  fill: var(--market-overview-sparkline-price-area);
}

.market-overview-sparkline.tone-price .market-overview-sparkline-line,
.market-overview-sparkline.tone-price .market-overview-sparkline-point {
  stroke: var(--market-overview-sparkline-price);
  fill: var(--market-overview-sparkline-price);
}

.market-overview-sparkline.tone-price.has-negative-turn .market-overview-sparkline-last-segment,
.market-overview-sparkline.tone-price.has-negative-turn .market-overview-sparkline-point.is-negative-turn,
.market-overview-sparkline.tone-price.has-negative-turn .market-overview-sparkline-point-ring {
  stroke: var(--market-overview-sparkline-negative-turn);
  fill: var(--market-overview-sparkline-negative-turn);
}

.market-overview-sparkline.tone-price.has-negative-turn .market-overview-sparkline-point-ring {
  fill: var(--market-overview-sparkline-trough-ring-fill);
}

.market-overview-sparkline.tone-price .market-overview-sparkline-point.is-negative-zone {
  fill: var(--market-overview-sparkline-negative-zone);
}

.market-overview-sparkline.tone-price .market-overview-sparkline-point.is-negative-rebound {
  fill: var(--market-overview-sparkline-negative-rebound);
}

.market-overview-sparkline.tone-price .market-overview-sparkline-point-ring.tone-negative-zone {
  stroke: var(--market-overview-sparkline-negative-zone);
}

.market-overview-sparkline.tone-price .market-overview-sparkline-point-ring.tone-negative-rebound {
  stroke: var(--market-overview-sparkline-negative-rebound);
}

.market-overview-pulse-row {
  display: grid;
  grid-template-columns: repeat(var(--pulse-columns, 30), minmax(0, 1fr));
  gap: var(--market-overview-pulse-gap);
  align-items: end;
  min-height: var(--market-overview-pulse-min-height);
}

.market-overview-pulse-row.is-mini {
  gap: var(--market-overview-pulse-mini-gap);
  min-height: var(--market-overview-pulse-mini-min-height);
}

.market-overview-pulse-bar {
  height: 100%;
  border-radius: 999px;
  background: var(--market-overview-pulse-bar-bg);
  transform-origin: bottom center;
  transform: scaleY(var(--pulse-level, 0));
}

.market-overview-pulse-row.tone-permit .market-overview-pulse-bar.is-active {
  background: var(--market-overview-pulse-permit-active);
}

.market-overview-pulse-row.tone-confirm .market-overview-pulse-bar.is-active {
  background: var(--market-overview-pulse-confirm-active);
}

.market-overview-pulse-row .market-overview-pulse-bar.is-latest {
  outline: 1px solid var(--market-overview-pulse-latest-outline);
}

.market-overview-signal-ribbon-pulses {
  display: grid;
  gap: var(--market-overview-signal-ribbon-pulses-gap);
}

.market-overview-signal-ribbon-pulses > div {
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr);
  gap: var(--market-overview-signal-ribbon-pulse-row-gap);
  align-items: center;
}

.market-overview-signal-ribbon-pulses > div > span {
  font-size: 11px;
  font-weight: 700;
  color: var(--market-overview-signal-pulse-label-color);
}

.market-overview-signal-ribbon-meta {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  align-items: center;
  font-size: 12px;
  color: var(--market-overview-signal-meta-color);
}

.signal-evidence-badge,
.favorite-activity-mode-badge,
.signal-stage-badge {
  display: inline-flex;
  align-items: center;
  border-radius: var(--favorite-activity-pill-radius);
  padding: var(--signal-badge-padding);
  font-size: var(--signal-badge-font-size);
  font-weight: 800;
  white-space: nowrap;
}

.signal-evidence-badge.compact,
.favorite-activity-mode-badge.compact,
.signal-stage-badge.compact {
  padding: var(--signal-badge-compact-padding);
  font-size: var(--signal-badge-compact-font-size);
}

.signal-badge-row {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--signal-badge-row-gap);
}

.signal-badge-row.compact {
  gap: var(--signal-badge-row-compact-gap);
}

.signal-evidence-badge.tone-stable {
  color: var(--signal-evidence-stable-color);
  background: var(--signal-evidence-stable-bg);
}

.signal-evidence-badge.tone-caution {
  color: var(--signal-evidence-caution-color);
  background: var(--signal-evidence-caution-bg);
}

.signal-evidence-badge.tone-lag {
  color: var(--signal-evidence-lag-color);
  background: var(--signal-evidence-lag-bg);
}

.favorite-activity-mode-badge.tone-permit {
  color: var(--signal-mode-permit-color);
  background: var(--signal-mode-permit-bg);
}

.favorite-activity-mode-badge.tone-trade {
  color: var(--signal-mode-trade-color);
  background: var(--signal-mode-trade-bg);
}

.signal-stage-badge.surge {
  background: var(--signal-stage-surge-bg);
  color: var(--signal-stage-surge-color);
}

.signal-stage-badge.lead {
  background: var(--signal-stage-lead-bg);
  color: var(--signal-stage-lead-color);
}

.signal-stage-badge.confirm {
  background: var(--signal-stage-confirm-bg);
  color: var(--signal-stage-confirm-color);
}

.signal-stage-badge.pending,
.signal-stage-badge.calm {
  background: var(--signal-stage-neutral-bg);
  color: var(--signal-stage-neutral-color);
}

.signal-legend-inline {
  display: flex;
  flex-wrap: wrap;
  gap: var(--signal-legend-inline-gap);
  align-items: center;
}

.signal-legend-inline.compact {
  gap: var(--signal-legend-inline-compact-gap);
}

.signal-legend-chip {
  display: inline-flex;
  align-items: center;
  gap: var(--signal-legend-chip-gap);
  padding: var(--signal-legend-chip-padding);
  border-radius: var(--favorite-activity-pill-radius);
  background: var(--signal-legend-chip-bg);
  border: 1px solid var(--signal-legend-chip-border);
  color: var(--signal-legend-chip-color);
  font-size: 11px;
  font-weight: 800;
}

.signal-legend-chip i {
  width: var(--signal-legend-chip-dot-size);
  height: var(--signal-legend-chip-dot-size);
  border-radius: var(--favorite-activity-pill-radius);
  display: inline-block;
}

.signal-legend-chip.tone-price i { background: var(--signal-legend-chip-price); }
.signal-legend-chip.tone-permit i { background: var(--signal-legend-chip-permit); }
.signal-legend-chip.tone-trade i { background: var(--signal-legend-chip-trade); }

.signal-reading-guide {
  display: grid;
  gap: var(--signal-reading-guide-gap);
  margin-top: var(--signal-reading-guide-margin-top);
}

.signal-reading-guide.compact {
  gap: var(--signal-reading-guide-compact-gap);
  margin-top: var(--signal-reading-guide-compact-margin-top);
}

.signal-reading-guide strong {
  color: var(--signal-reading-guide-title-color);
  font-size: 13px;
}

.signal-reading-guide ul {
  margin: 0;
  padding-left: 18px;
  display: grid;
  gap: var(--signal-reading-guide-list-gap);
  color: var(--signal-reading-guide-copy-color);
  font-size: 12px;
  line-height: 1.5;
}

.market-overview-row-badges {
  display: flex;
  flex-wrap: wrap;
  gap: var(--market-overview-badge-row-gap);
  margin-top: var(--market-overview-badge-row-margin-top);
}

.market-overview-reliability-badge {
  display: inline-flex;
  align-items: center;
  border-radius: var(--favorite-activity-pill-radius);
  padding: var(--market-overview-reliability-badge-padding);
  font-size: var(--market-overview-reliability-badge-font-size);
  font-weight: 700;
  white-space: nowrap;
}

.market-overview-reliability-badge.band-clear {
  color: var(--market-overview-reliability-clear-color);
  background: var(--market-overview-reliability-clear-bg);
}

.market-overview-reliability-badge.band-watch {
  color: var(--market-overview-reliability-watch-color);
  background: var(--market-overview-reliability-watch-bg);
}

.market-overview-reliability-badge.band-fog {
  color: var(--market-overview-reliability-fog-color);
  background: var(--market-overview-reliability-fog-bg);
}

.market-overview-breakdown {
  display: flex;
  gap: var(--market-overview-breakdown-gap);
  min-height: 7px;
  margin-top: var(--market-overview-breakdown-margin-top);
}

.market-overview-breakdown .segment {
  border-radius: var(--favorite-activity-pill-radius);
  min-width: var(--market-overview-breakdown-segment-min-width);
}

.market-overview-breakdown .segment.lead { background: var(--market-overview-breakdown-lead); }
.market-overview-breakdown .segment.confirm { background: var(--market-overview-breakdown-confirm); }
.market-overview-breakdown .segment.risk { background: var(--market-overview-breakdown-risk); }

.market-overview-stance-block,
.market-overview-support-block,
.market-overview-primary-block {
  gap: 6px;
}

.market-overview-support-block .market-overview-pulse-row,
.market-overview-primary-block .market-overview-pulse-row {
  min-height: 18px;
}

.market-overview-mobile-aux {
  display: grid;
  gap: 8px;
}

.market-overview-dual-timeline {
  border: 1px solid var(--market-overview-dual-timeline-border);
  background: var(--market-overview-dual-timeline-bg);
  border-radius: var(--market-overview-dual-timeline-radius);
  padding: var(--market-overview-dual-timeline-padding);
  margin-bottom: 14px;
}

.market-overview-dual-timeline-head {
  display: flex;
  justify-content: space-between;
  gap: var(--market-overview-dual-timeline-head-gap);
  margin-bottom: var(--market-overview-dual-timeline-head-margin-bottom);
}

.market-overview-dual-timeline-head strong {
  font-size: 14px;
  color: var(--market-overview-dual-timeline-title-color);
}

.market-overview-dual-timeline-head span {
  font-size: 11px;
  color: var(--market-overview-dual-timeline-copy-color);
}

.market-overview-grouped-summary {
  display: flex;
  flex-wrap: wrap;
  gap: var(--market-overview-grouped-summary-gap);
  margin-bottom: var(--market-overview-grouped-summary-margin-bottom);
}

.market-overview-grouped-summary span {
  display: inline-flex;
  align-items: center;
  min-height: var(--market-overview-grouped-summary-chip-min-height);
  padding: var(--market-overview-grouped-summary-chip-padding);
  border-radius: var(--favorite-activity-pill-radius);
  background: var(--market-overview-grouped-summary-chip-bg);
  border: 1px solid var(--market-overview-grouped-summary-chip-border);
  color: var(--market-overview-grouped-summary-chip-color);
  font-size: 11px;
  font-weight: 800;
}

.market-overview-dual-timeline-track {
  display: grid;
  grid-template-columns: repeat(30, minmax(0, 1fr));
  gap: var(--market-overview-dual-timeline-track-gap);
  align-items: end;
  min-height: 98px;
}

.market-overview-dual-timeline-col {
  position: relative;
  min-height: 100%;
  display: flex;
  gap: var(--market-overview-dual-timeline-col-gap);
  align-items: flex-end;
  justify-content: center;
  background: var(--market-overview-dual-timeline-col-bg);
  border-radius: 999px;
  padding: var(--market-overview-dual-timeline-col-padding);
}

.market-overview-dual-timeline-col .permit,
.market-overview-dual-timeline-col .trade {
  width: 5px;
  border-radius: 999px;
}

.market-overview-dual-timeline-col .permit { background: var(--market-overview-dual-timeline-permit-bar); }
.market-overview-dual-timeline-col .trade { background: var(--market-overview-dual-timeline-trade-bar); }
.market-overview-dual-timeline-col.reliability-low { box-shadow: var(--market-overview-dual-timeline-col-low-shadow); }

.market-overview-grouped-timeline-track {
  display: grid;
  grid-template-columns: repeat(10, minmax(0, 1fr));
  gap: var(--market-overview-grouped-track-gap);
  align-items: end;
  min-height: 146px;
}

.market-overview-grouped-timeline-group {
  display: grid;
  gap: var(--market-overview-grouped-group-gap);
  min-width: 0;
}

.market-overview-grouped-timeline-bars {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--market-overview-grouped-bars-gap);
  align-items: end;
  min-height: 118px;
  padding: var(--market-overview-grouped-bars-padding);
  border-radius: var(--market-overview-grouped-bars-radius);
  background: var(--market-overview-grouped-bars-bg);
  border: 1px solid var(--market-overview-grouped-bars-border);
}

.market-overview-grouped-timeline-group.reliability-low .market-overview-grouped-timeline-bars {
  box-shadow: var(--market-overview-grouped-bars-low-shadow);
}

.market-overview-grouped-timeline-group.reliability-medium .market-overview-grouped-timeline-bars {
  box-shadow: var(--market-overview-grouped-bars-medium-shadow);
}

.market-overview-grouped-timeline-bars i {
  display: block;
  width: 100%;
  min-height: 10px;
  border-radius: 999px 999px 10px 10px;
  align-self: end;
  opacity: 0.38;
}

.market-overview-grouped-timeline-bars i.is-active {
  opacity: 1;
}

.market-overview-grouped-timeline-bars .permit {
  background: linear-gradient(180deg, rgba(34, 140, 125, 0.36), rgba(34, 140, 125, 0.94));
}

.market-overview-grouped-timeline-bars .trade {
  background: linear-gradient(180deg, rgba(74, 104, 201, 0.36), rgba(74, 104, 201, 0.94));
}

.market-overview-grouped-timeline-group em {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  min-height: 24px;
  color: #6f8190;
  font-size: 10px;
  font-weight: 800;
  text-align: center;
  font-style: normal;
  line-height: 1.2;
}

.market-overview-grouped-timeline-group em.is-hidden {
  visibility: hidden;
}

.market-overview-grouped-timeline-group em.is-visible {
  color: #657787;
}

.market-overview-drawer-visual-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 14px;
  margin-bottom: 16px;
}

.market-overview-drawer-visual-panel {
  border: 1px solid var(--market-overview-drawer-panel-border);
  background: var(--market-overview-drawer-panel-bg);
  border-radius: var(--market-overview-drawer-panel-radius);
  padding: var(--market-overview-drawer-panel-padding);
}

.market-overview-drawer-panel-headline {
  display: grid;
  gap: 4px;
  margin-bottom: 12px;
}

.market-overview-drawer-panel-headline h4 {
  margin: 0;
}

.market-overview-drawer-panel-headline span {
  color: #71828f;
  font-size: 11px;
  font-weight: 800;
}

.market-overview-drawer-story {
  display: grid;
  gap: 12px;
}

.market-overview-drawer-story-head {
  display: grid;
  gap: 4px;
}

.market-overview-drawer-story-head h4 {
  margin: 0;
}

.market-overview-drawer-story-head span {
  color: #6c7f8d;
  font-size: 11px;
  font-weight: 800;
}

.market-overview-strip-stack {
  display: grid;
  gap: var(--market-overview-strip-stack-gap);
}

.market-overview-ranked-strip {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
  gap: var(--market-overview-ranked-strip-gap);
}

.market-overview-ranked-strip-item {
  border-radius: var(--market-overview-ranked-item-radius);
  padding: var(--market-overview-ranked-item-padding);
  background: var(--market-overview-ranked-item-bg);
  border: 1px solid var(--market-overview-ranked-item-border);
  display: grid;
  gap: var(--market-overview-ranked-item-gap);
}

.market-overview-ranked-strip-item .rank {
  font-size: 11px;
  font-weight: 700;
  color: #6b7b8b;
}

.market-overview-ranked-strip-item strong {
  font-size: 13px;
  color: #213244;
}

.market-overview-ranked-strip-item span:last-child {
  font-size: 11px;
  color: #607284;
}

.market-overview-ranked-strip-item.tone-permit {
  background: linear-gradient(180deg, rgba(231, 245, 241, 0.98) 0%, rgba(243, 249, 246, 0.98) 100%);
}

.market-overview-ranked-strip-item.tone-confirm {
  background: linear-gradient(180deg, rgba(237, 241, 254, 0.98) 0%, rgba(246, 248, 255, 0.98) 100%);
}

.market-overview-lag-gauge {
  display: grid;
  grid-template-columns: 104px minmax(0, 1fr);
  gap: 12px;
  align-items: center;
}

.market-overview-lag-gauge-ring {
  width: var(--market-overview-lag-gauge-ring-size);
  aspect-ratio: 1;
  border-radius: 50%;
  background: var(--market-overview-lag-gauge-ring-bg);
  display: grid;
  place-items: center;
  position: relative;
}

.market-overview-lag-gauge-ring::after {
  content: "";
  position: absolute;
  inset: var(--market-overview-lag-gauge-ring-inner-inset);
  background: var(--market-overview-lag-gauge-ring-inner-bg);
  border-radius: 50%;
}

.market-overview-lag-gauge-ring strong,
.market-overview-lag-gauge-ring span {
  position: relative;
  z-index: 1;
}

.market-overview-lag-gauge-ring strong {
  display: block;
  font-size: 24px;
  line-height: 1;
  color: #203245;
}

.market-overview-lag-gauge-ring span {
  display: block;
  font-size: 11px;
  color: #6c7c8b;
}

.market-overview-lag-gauge-copy {
  display: grid;
  gap: 4px;
}

.market-overview-lag-gauge-copy strong {
  color: #203245;
  font-size: 15px;
}

.market-overview-lag-gauge-copy span {
  color: #627487;
  font-size: 12px;
  line-height: 1.45;
}

.market-overview-bargain-shell {
  display: grid;
  gap: 10px;
}

.market-overview-bargain-scatter-shell {
  gap: 12px;
}

.market-overview-bargain-summary-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.market-overview-bargain-summary-item {
  display: grid;
  gap: 3px;
  padding: 10px 11px;
  border-radius: 14px;
  border: 1px solid rgba(205, 216, 223, 0.92);
  background: rgba(247, 250, 252, 0.96);
}

.market-overview-bargain-summary-item span {
  color: #788995;
  font-size: 10px;
  font-weight: 900;
}

.market-overview-bargain-summary-item strong {
  color: #1d3346;
  font-size: 12px;
  font-weight: 900;
  line-height: 1.45;
}

.market-overview-bargain-visibility-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.market-overview-bargain-control-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.92fr);
  gap: 10px 14px;
  align-items: start;
}

.market-overview-bargain-control-main {
  display: grid;
  gap: 8px;
}

.market-overview-bargain-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 10px;
  color: #708490;
  font-size: 10px;
  font-weight: 800;
  line-height: 1.35;
}

.market-overview-bargain-meta > span {
  display: inline-flex;
  align-items: center;
}

.market-overview-bargain-scatter-hint {
  color: #6e8190;
  font-size: 10px;
  font-weight: 800;
  line-height: 1.35;
}

.market-overview-bargain-sort-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.market-overview-bargain-sort-btn {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  min-height: 32px;
  padding: 0 12px;
  border-radius: 999px;
  border: 1px solid rgba(195, 208, 217, 0.9);
  background: rgba(247, 250, 252, 0.98);
  color: #58707f;
  font-size: 11px;
  font-weight: 900;
}

.market-overview-bargain-sort-arrow {
  font-size: 12px;
  font-weight: 950;
  line-height: 1;
  color: inherit;
}

.market-overview-bargain-sort-btn.is-active {
  border-color: rgba(125, 176, 166, 0.72);
  background: rgba(236, 248, 244, 0.98);
  color: #20685e;
  box-shadow: 0 10px 20px rgba(104, 147, 139, 0.14);
}

.market-overview-bargain-ask-filter-shell {
  display: grid;
  gap: 6px;
  align-content: start;
}

.market-overview-bargain-ask-filter-label {
  color: #708490;
  font-size: 10px;
  font-weight: 900;
  line-height: 1.2;
}

.market-overview-bargain-ask-filter-row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.market-overview-bargain-ask-filter-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 32px;
  padding: 0 10px;
  border-radius: 999px;
  border: 1px solid rgba(195, 208, 217, 0.9);
  background: rgba(248, 251, 253, 0.98);
  color: #58707f;
  font-size: 10.5px;
  font-weight: 900;
  line-height: 1;
  white-space: nowrap;
}

.market-overview-bargain-ask-filter-btn.is-active {
  border-color: rgba(110, 162, 214, 0.72);
  background: rgba(237, 245, 255, 0.98);
  color: #285d89;
  box-shadow: 0 10px 20px rgba(115, 152, 196, 0.12);
}

.market-overview-bargain-scatter-frame {
  overflow: hidden;
  border-radius: 22px;
  border: 1px solid rgba(198, 212, 220, 0.92);
  background:
    radial-gradient(circle at top left, rgba(244, 250, 251, 0.98), rgba(255, 255, 255, 0.98) 52%),
    rgba(255, 255, 255, 0.98);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.7);
}

.market-overview-bargain-scatter-svg {
  display: block;
  width: 100%;
  height: auto;
}

.market-overview-bargain-scatter-plot-bg {
  fill: rgba(252, 254, 255, 0.98);
  stroke: rgba(199, 212, 220, 0.86);
  stroke-width: 1;
}

.market-overview-bargain-grid-line {
  stroke: rgba(201, 212, 220, 0.62);
  stroke-width: 1;
}

.market-overview-bargain-zero-line {
  stroke: rgba(89, 114, 131, 0.92);
  stroke-width: 1.6;
  stroke-dasharray: 5 5;
}

.market-overview-bargain-axis-label,
.market-overview-bargain-axis-tick {
  font-family: inherit;
  fill: #67808f;
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}

.market-overview-bargain-axis-label {
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.02em;
  text-anchor: middle;
}

.market-overview-bargain-axis-tick {
  font-size: 10px;
  font-weight: 800;
}

.market-overview-bargain-axis-tick.axis-y {
  text-anchor: end;
}

.market-overview-bargain-axis-tick.axis-x {
  text-anchor: middle;
}

.market-overview-bargain-point {
  cursor: pointer;
  transition: opacity 0.18s ease, filter 0.18s ease;
  outline: none;
}

.market-overview-bargain-point.tone-discount {
  color: #0f7b69;
}

.market-overview-bargain-point.tone-neutral,
.market-overview-bargain-point.tone-flat {
  color: #708091;
}

.market-overview-bargain-point-ring,
.market-overview-bargain-point-core {
  vector-effect: non-scaling-stroke;
}

.market-overview-bargain-point.tone-discount .market-overview-bargain-point-core {
  fill: #0f7b69;
}

.market-overview-bargain-point.tone-discount .market-overview-bargain-point-ring {
  fill: rgba(15, 123, 105, 0.18);
  stroke: rgba(15, 123, 105, 0.16);
  stroke-width: 1.4;
}

.market-overview-bargain-point.tone-neutral .market-overview-bargain-point-core,
.market-overview-bargain-point.tone-flat .market-overview-bargain-point-core {
  fill: #708091;
}

.market-overview-bargain-point.tone-neutral .market-overview-bargain-point-ring,
.market-overview-bargain-point.tone-flat .market-overview-bargain-point-ring {
  fill: rgba(112, 128, 145, 0.18);
  stroke: rgba(112, 128, 145, 0.16);
  stroke-width: 1.4;
}

.market-overview-bargain-point.is-carried-forward {
  opacity: 0.78;
}

.market-overview-bargain-point.is-carried-forward .market-overview-bargain-point-core {
  fill: #ffffff;
  stroke: currentColor;
  stroke-width: 2.1;
}

.market-overview-bargain-point.is-carried-forward .market-overview-bargain-point-ring {
  fill: rgba(255, 255, 255, 0.2);
  stroke-dasharray: 2 2;
}

.market-overview-bargain-point.is-hovered,
.market-overview-bargain-point.is-selected,
.market-overview-bargain-point:focus {
  opacity: 1;
  filter: drop-shadow(0 8px 16px rgba(31, 63, 77, 0.16));
}

.market-overview-bargain-point.is-dimmed {
  opacity: 0.28;
}

.market-overview-bargain-point-callout {
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.16s ease;
  pointer-events: none;
}

.market-overview-bargain-point-callout rect {
  fill: rgba(255, 255, 255, 0.98);
  stroke: rgba(181, 196, 206, 0.96);
  stroke-width: 1;
}

.market-overview-bargain-point-callout-title,
.market-overview-bargain-point-callout-value,
.market-overview-bargain-point-callout-meta {
  font-family: inherit;
  fill: #284051;
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}

.market-overview-bargain-point-callout-title {
  font-size: 11px;
  font-weight: 900;
}

.market-overview-bargain-point-callout-value {
  font-size: 10.5px;
  font-weight: 900;
}

.market-overview-bargain-point-callout-meta {
  font-size: 10px;
  font-weight: 800;
  fill: #607a89;
}

.market-overview-bargain-point.is-hovered .market-overview-bargain-point-callout,
.market-overview-bargain-point.is-selected .market-overview-bargain-point-callout,
.market-overview-bargain-point:focus .market-overview-bargain-point-callout {
  opacity: 1;
  visibility: visible;
}

.market-overview-bargain-visibility-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 32px;
  padding: 0 12px;
  border-radius: 999px;
  border: 1px solid rgba(195, 208, 217, 0.9);
  background: rgba(255, 255, 255, 0.96);
  color: #56707f;
  font-size: 11px;
  font-weight: 900;
}

.market-overview-bargain-visibility-chip.is-active {
  border-color: rgba(125, 176, 166, 0.68);
  background: rgba(238, 249, 245, 0.98);
  color: #23695f;
  box-shadow: 0 10px 22px rgba(112, 154, 145, 0.14);
}

.market-overview-bargain-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  align-items: start;
}

.market-overview-bargain-row {
  width: 100%;
  text-align: left;
  display: grid;
  gap: 7px;
  padding: 10px 11px;
  border-radius: 16px;
  border: 1px solid rgba(202, 214, 221, 0.92);
  background: rgba(255, 255, 255, 0.98);
  color: #173246;
  cursor: pointer;
}

.market-overview-bargain-row.tone-discount {
  border-color: rgba(128, 186, 170, 0.62);
  background: linear-gradient(180deg, rgba(240, 250, 246, 0.98), rgba(255, 255, 255, 0.98));
}

.market-overview-bargain-row.tone-neutral,
.market-overview-bargain-row.tone-flat {
  border-color: rgba(205, 216, 223, 0.92);
  background: rgba(250, 252, 253, 0.98);
}

.market-overview-bargain-row.is-hovered,
.market-overview-bargain-row.is-selected {
  border-color: rgba(103, 158, 146, 0.84);
  box-shadow: 0 14px 28px rgba(120, 149, 156, 0.16);
}

.market-overview-bargain-row:focus-visible {
  outline: 2px solid rgba(70, 136, 123, 0.44);
  outline-offset: 2px;
}

.market-overview-bargain-row-head {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) minmax(112px, auto);
  align-items: start;
  gap: 8px;
}

.market-overview-bargain-rank-stack {
  display: grid;
  gap: 6px;
  justify-items: start;
  align-content: start;
}

.market-overview-bargain-rank {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 34px;
  min-height: 24px;
  padding: 0 8px;
  border-radius: 999px;
  background: rgba(233, 240, 245, 0.98);
  color: #617381;
  font-size: 11px;
  font-weight: 900;
}

.market-overview-bargain-open-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 24px;
  padding: 0 10px;
  border-radius: 999px;
  border: 1px solid rgba(131, 182, 168, 0.72);
  background: rgba(240, 250, 246, 0.98);
  color: #216e62;
  font-size: 10px;
  font-weight: 900;
  line-height: 1;
}

.market-overview-bargain-row-title {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.market-overview-bargain-row-title strong {
  color: #173246;
  font-size: 13px;
  font-weight: 900;
  line-height: 1.3;
  word-break: keep-all;
}

.market-overview-bargain-row-title span {
  color: #70828f;
  font-size: 10px;
  font-weight: 800;
  line-height: 1.35;
}

.market-overview-bargain-row-chip-row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
}

.market-overview-bargain-row-chip {
  max-width: 100%;
  padding: 3px 10px;
  font-size: 9.5px;
  font-weight: 900;
  line-height: 1.15;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.market-overview-bargain-row-gap {
  display: grid;
  min-width: 112px;
  gap: 2px;
  justify-items: end;
  text-align: right;
  align-self: start;
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}

.market-overview-bargain-row-gap-label {
  font-size: 9px;
  font-weight: 900;
  line-height: 1.2;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.market-overview-bargain-row-gap-pct {
  font-size: 18px;
  font-weight: 950;
  line-height: 0.95;
}

.market-overview-bargain-row-gap-amount {
  font-size: 14px;
  font-weight: 900;
  line-height: 1.05;
}

.market-overview-bargain-row.tone-discount .market-overview-bargain-row-gap-pct,
.market-overview-bargain-row.tone-discount .market-overview-bargain-row-gap-amount {
  color: #0f7b69;
}

.market-overview-bargain-row.tone-neutral .market-overview-bargain-row-gap-pct,
.market-overview-bargain-row.tone-neutral .market-overview-bargain-row-gap-amount,
.market-overview-bargain-row.tone-flat .market-overview-bargain-row-gap-pct,
.market-overview-bargain-row.tone-flat .market-overview-bargain-row-gap-amount {
  color: #627383;
}

.market-overview-bargain-row.tone-discount .market-overview-bargain-row-gap-label {
  color: rgba(15, 123, 105, 0.74);
}

.market-overview-bargain-row.tone-neutral .market-overview-bargain-row-gap-label,
.market-overview-bargain-row.tone-flat .market-overview-bargain-row-gap-label {
  color: rgba(98, 115, 131, 0.72);
}

.market-overview-bargain-row-price-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 4px;
}

.market-overview-bargain-row-price-grid span {
  color: #415868;
  font-size: 10px;
  font-weight: 800;
  line-height: 1.35;
}

.market-overview-bargain-row-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 8px;
}

.market-overview-bargain-row-meta > span {
  color: #728390;
  font-size: 9.5px;
  font-weight: 900;
  line-height: 1.2;
}

.market-overview-bargain-fresh-badge {
  display: inline-flex;
  align-items: center;
  min-height: 20px;
  padding: 0 8px;
  border-radius: 999px;
  background: rgba(238, 243, 247, 0.98);
  color: #687b89;
  border: 1px solid rgba(201, 212, 220, 0.9);
}

.market-overview-bargain-empty {
  display: grid;
  gap: 8px;
  padding: 16px 14px;
  border-radius: 16px;
  border: 1px dashed rgba(195, 208, 217, 0.9);
  background: rgba(249, 251, 252, 0.94);
  color: #6f818f;
  font-size: 12px;
  font-weight: 800;
  line-height: 1.55;
}

.market-overview-bargain-empty.is-plot {
  min-height: 230px;
  align-items: center;
  justify-items: center;
  text-align: center;
}

.market-overview-bargain-list-shell {
  gap: 12px;
}

.market-overview-bargain-empty span {
  color: #5d8078;
  font-size: 11px;
  font-weight: 900;
  line-height: 1.5;
}

.market-overview-bargain-pager {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: center;
}

.market-overview-bargain-page-btn {
  min-width: 36px;
  min-height: 36px;
  padding: 0 10px;
  border-radius: 12px;
  border: 1px solid rgba(193, 207, 216, 0.92);
  background: rgba(248, 251, 253, 0.98);
  color: #4d6776;
  font-size: 12px;
  font-weight: 900;
  line-height: 1;
}

.market-overview-bargain-page-btn.is-active,
.market-overview-bargain-page-btn[aria-current="page"] {
  border-color: rgba(120, 171, 162, 0.88);
  background: rgba(235, 248, 244, 0.98);
  color: #23695f;
  box-shadow: 0 10px 20px rgba(104, 147, 139, 0.14);
}

@media (max-width: 720px) {
  .market-overview-bargain-summary-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .market-overview-bargain-summary-item:last-child {
    grid-column: 1 / -1;
  }

  .market-overview-bargain-row-head {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .market-overview-bargain-rank-stack {
    gap: 5px;
  }

  .market-overview-bargain-row-gap {
    grid-column: 1 / -1;
    justify-items: start;
    text-align: left;
    min-width: 0;
    padding-left: 42px;
  }

  .market-overview-bargain-row-gap-pct {
    font-size: 19px;
  }

  .market-overview-bargain-row-gap-amount {
    font-size: 15px;
  }

  .market-overview-bargain-row-chip-row {
    gap: 5px;
  }

  .market-overview-bargain-row-chip {
    font-size: 9px;
    padding: 3px 8px;
  }

  .market-overview-bargain-list {
    gap: 8px;
  }

  .market-overview-bargain-axis-label {
    font-size: 10px;
  }

  .market-overview-bargain-axis-tick {
    font-size: 9px;
  }
}

@media (max-width: 540px) {
  .market-overview-bargain-control-grid {
    gap: 8px 10px;
  }

  .market-overview-bargain-sort-btn,
  .market-overview-bargain-visibility-chip,
  .market-overview-bargain-ask-filter-btn {
    min-height: 30px;
    padding: 0 10px;
  }

  .market-overview-bargain-ask-filter-row {
    gap: 6px;
  }
}

@media (max-width: 389px) {
  .market-overview-bargain-control-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

.favorite-activity-live-pulse,
.favorite-activity-signal-ladder,
.favorite-activity-alert-feed {
  display: grid;
  gap: var(--favorite-activity-dashboard-feed-gap);
  margin-top: var(--favorite-activity-dashboard-feed-margin-top);
}

.favorite-activity-live-pulse-list,
.favorite-activity-alert-feed-list {
  display: grid;
  gap: var(--favorite-activity-dashboard-feed-gap);
}

.favorite-activity-live-pulse-item,
.favorite-activity-alert-feed-item {
  border: 1px solid var(--favorite-activity-dashboard-feed-item-border);
  border-radius: var(--favorite-activity-dashboard-feed-item-radius);
  padding: var(--favorite-activity-dashboard-feed-item-padding);
  background: var(--favorite-activity-dashboard-feed-item-bg);
  display: grid;
  gap: var(--favorite-activity-dashboard-feed-item-gap);
  text-align: left;
}

.favorite-activity-live-pulse-item.surge,
.favorite-activity-alert-feed-item.surge { border-color: var(--favorite-activity-dashboard-feed-item-surge-border); }
.favorite-activity-live-pulse-item.lead,
.favorite-activity-alert-feed-item.watch { border-color: var(--favorite-activity-dashboard-feed-item-watch-border); }

.favorite-activity-live-pulse-copy,
.favorite-activity-alert-feed-copy {
  display: grid;
  gap: 4px;
}

.favorite-activity-live-pulse-copy strong,
.favorite-activity-alert-feed-copy strong {
  font-size: 14px;
  color: #203245;
}

.favorite-activity-live-pulse-copy .signal-badge-row {
  align-self: flex-start;
}

.favorite-activity-live-pulse-copy span,
.favorite-activity-alert-feed-copy span,
.favorite-activity-alert-feed-copy small {
  font-size: 12px;
  color: #607284;
}

.favorite-activity-heat-strip {
  display: grid;
  grid-template-columns: repeat(14, minmax(0, 1fr));
  gap: 3px;
}

.favorite-activity-heat-cell {
  height: 18px;
  border-radius: 6px;
  background: rgba(174, 188, 201, 0.14);
  opacity: max(var(--heat-level, 0), 0.08);
}

.favorite-activity-heat-strip.tone-surge .favorite-activity-heat-cell.is-active,
.favorite-activity-heat-strip.tone-confirm .favorite-activity-heat-cell.is-active {
  background: rgba(74, 104, 201, 0.88);
}

.favorite-activity-heat-strip.tone-lead .favorite-activity-heat-cell.is-active,
.favorite-activity-heat-strip.tone-watch .favorite-activity-heat-cell.is-active,
.favorite-activity-heat-strip.tone-calm .favorite-activity-heat-cell.is-active {
  background: rgba(34, 140, 125, 0.88);
}

.favorite-activity-overview-card.has-warning {
  box-shadow: inset 0 0 0 1px rgba(211, 154, 57, 0.24);
}

.favorite-activity-overview-card.warning-lag,
.favorite-activity-overview-card.warning-caution {
  background:
    linear-gradient(135deg, rgba(251, 243, 221, 0.72), rgba(255, 255, 255, 0.96)),
    var(--card-bg, #fff);
}

.favorite-activity-overview-card.warning-clear {
  background:
    linear-gradient(135deg, rgba(232, 245, 241, 0.74), rgba(255, 255, 255, 0.96)),
    var(--card-bg, #fff);
}

.favorite-activity-filter-row {
  display: flex;
  flex-wrap: wrap;
  gap: var(--favorite-activity-filter-row-gap);
  margin-bottom: var(--favorite-activity-filter-row-margin-bottom);
}

.favorite-activity-filter-chip {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: var(--favorite-activity-filter-chip-gap);
  padding: var(--favorite-activity-filter-chip-padding);
  border-radius: var(--favorite-activity-pill-radius);
  border: 1px solid var(--favorite-activity-filter-chip-border);
  background: var(--favorite-activity-filter-chip-bg);
  color: var(--favorite-activity-filter-chip-color);
  font-size: var(--favorite-activity-filter-chip-font-size);
  font-weight: 700;
  white-space: nowrap;
  box-shadow:
    0 5px 14px rgba(38, 59, 48, 0.045),
    inset 0 1px 0 rgba(255, 255, 255, 0.9);
  transition: transform 0.14s ease, border-color 0.14s ease, background 0.14s ease, box-shadow 0.14s ease;
}

.favorite-activity-filter-chip:hover,
.favorite-activity-filter-chip:focus-visible {
  transform: translateY(-1px);
  border-color: rgba(24, 111, 85, 0.28);
  box-shadow:
    0 9px 20px rgba(38, 59, 48, 0.09),
    inset 0 1px 0 rgba(255, 255, 255, 0.94);
  outline: none;
}

.favorite-activity-filter-chip strong {
  font-size: 0.72rem;
  font-weight: 900;
  line-height: 1;
}

.favorite-activity-filter-chip span {
  font-size: 0.68rem;
  font-weight: 900;
  line-height: 1;
}

.favorite-activity-filter-chip strong::before {
  content: attr(data-short-label);
  display: none;
}

.favorite-activity-filter-chip.buyer {
  color: #1d7a67;
  border-color: rgba(109, 176, 151, 0.48);
  background: rgba(238, 249, 244, 0.96);
}

.favorite-activity-filter-chip.buyer-soft {
  color: #2d725d;
  border-color: rgba(126, 186, 166, 0.44);
  background: rgba(244, 251, 247, 0.96);
}

.favorite-activity-filter-chip.balanced {
  color: #506879;
  border-color: rgba(173, 190, 205, 0.54);
  background: rgba(246, 249, 251, 0.96);
}

.favorite-activity-filter-chip.band-bargain,
.favorite-activity-filter-chip.band-good {
  color: #1d7a67;
  border-color: rgba(109, 176, 151, 0.48);
  background: rgba(238, 249, 244, 0.96);
}

.favorite-activity-filter-chip.band-fair {
  color: #71633c;
  border-color: rgba(193, 178, 127, 0.48);
  background: rgba(251, 248, 237, 0.96);
}

.favorite-activity-filter-chip.band-watch,
.favorite-activity-filter-chip.band-expensive {
  color: #91583a;
  border-color: rgba(228, 177, 147, 0.46);
  background: rgba(255, 249, 244, 0.96);
}

.favorite-activity-filter-chip.seller-soft {
  color: #91583a;
  border-color: rgba(228, 177, 147, 0.46);
  background: rgba(255, 249, 244, 0.96);
}

.favorite-activity-filter-chip.seller {
  color: #a35e38;
  border-color: rgba(222, 154, 121, 0.5);
  background: rgba(255, 245, 239, 0.96);
}

.favorite-activity-filter-chip.district {
  color: #435d50;
  border-color: rgba(166, 186, 169, 0.56);
  background: rgba(250, 252, 248, 0.98);
}

.favorite-activity-filter-chip.district.all {
  color: #4f6473;
  border-color: rgba(173, 189, 204, 0.58);
  background: rgba(247, 250, 252, 0.98);
}

.favorite-activity-filter-chip.is-active {
  border-color: var(--favorite-activity-filter-chip-active-border);
  background:
    linear-gradient(180deg, rgba(235, 250, 243, 0.98) 0%, rgba(219, 240, 230, 0.94) 100%);
  color: #183f30;
  box-shadow: var(--favorite-activity-filter-chip-active-shadow);
}

@media (max-width: 720px) {
  .favorite-activity-filter-row {
    flex-wrap: nowrap;
    gap: var(--favorite-activity-filter-row-mobile-gap);
    margin-bottom: var(--favorite-activity-filter-row-mobile-margin-bottom);
    overflow-x: auto;
    padding-bottom: 2px;
  }

  .favorite-activity-filter-chip {
    flex: 0 0 auto;
    gap: var(--favorite-activity-filter-chip-mobile-gap);
    min-height: 32px;
    padding: var(--favorite-activity-filter-chip-mobile-padding);
    font-size: var(--favorite-activity-filter-chip-mobile-font-size);
  }

  .favorite-activity-filter-chip strong {
    font-size: 0.64rem;
    line-height: 1;
  }

  .favorite-activity-filter-chip strong::before {
    display: none;
    font-size: 0.61rem;
    font-weight: 900;
    line-height: 1;
  }

  .favorite-activity-filter-chip span {
    font-size: 0.64rem;
    font-weight: 900;
    line-height: 1;
  }
}

.favorite-activity-overview-risk-row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.favorite-activity-warning-chip,
.favorite-activity-risk-badge,
.favorite-activity-alert-chip {
  display: inline-flex;
  align-items: center;
  border-radius: var(--favorite-activity-pill-radius);
  padding: var(--favorite-activity-chip-padding);
  font-size: var(--favorite-activity-chip-font-size);
  font-weight: 700;
  background: var(--favorite-activity-chip-bg);
  color: var(--favorite-activity-chip-color);
}

.favorite-activity-warning-chip.compact {
  padding: var(--favorite-activity-chip-compact-padding);
  font-size: var(--favorite-activity-chip-compact-font-size);
}

.favorite-activity-warning-chip.tone-lead {
  background: rgba(232, 245, 241, 0.92);
  color: #1f7f72;
}

.favorite-activity-warning-chip.tone-watch,
.favorite-activity-warning-chip.tone-lag,
.favorite-activity-warning-chip.tone-caution {
  background: #fbf3dd;
  color: #8f6d21;
}

.favorite-activity-warning-chip.tone-pending {
  background: rgba(238, 242, 255, 0.92);
  color: #3f5fc8;
}

.favorite-activity-alert-feed-top {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  align-items: center;
}

.favorite-activity-alert-chip.surge {
  background: #eef2ff;
  color: #3f5fc8;
}

.favorite-activity-alert-chip.confirm {
  background: rgba(232, 245, 241, 0.92);
  color: #1f7f72;
}

.favorite-activity-alert-chip.lead {
  background: rgba(231, 247, 243, 0.94);
  color: #227f72;
}

.favorite-activity-alert-chip.watch,
.favorite-activity-alert-chip.calm {
  background: #fbf3dd;
  color: #8f6d21;
}

.market-overview-warning-chip {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: 4px 9px;
  font-size: 11px;
  font-weight: 700;
  background: var(--market-overview-warning-chip-bg);
  color: var(--market-overview-warning-chip-color);
}

.market-overview-warning-chip.compact {
  padding: 3px 7px;
  font-size: 10px;
}

.market-overview-warning-chip.tone-lead {
  background: var(--market-overview-warning-chip-lead-bg);
  color: var(--market-overview-warning-chip-lead-color);
}

.market-overview-warning-chip.tone-watch,
.market-overview-warning-chip.tone-lag,
.market-overview-warning-chip.tone-caution {
  background: var(--market-overview-warning-chip-watch-bg);
  color: var(--market-overview-warning-chip-watch-color);
}

.market-overview-warning-chip.tone-pending {
  background: var(--market-overview-warning-chip-pending-bg);
  color: var(--market-overview-warning-chip-pending-color);
}

.market-overview-drawer-filter-shell {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-bottom: 12px;
}

.market-overview-drawer-filter-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.market-overview-drawer-filter-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  padding: 0 12px;
  border-radius: 999px;
  border: 1px solid var(--market-overview-filter-chip-border);
  background: var(--market-overview-filter-chip-bg);
  color: var(--market-overview-filter-chip-color);
  font-size: 12px;
  font-weight: 800;
}

.market-overview-drawer-filter-chip.tone-permit {
  color: var(--market-overview-filter-chip-permit-color);
}

.market-overview-drawer-filter-chip.tone-trade {
  color: var(--market-overview-filter-chip-trade-color);
}

.market-overview-drawer-filter-chip.tone-lag {
  color: var(--market-overview-filter-chip-lag-color);
}

.market-overview-drawer-filter-chip.is-active {
  border-color: var(--market-overview-filter-chip-active-border);
  box-shadow: var(--market-overview-filter-chip-active-shadow);
}

@media (max-width: 980px) {
  .market-overview-signal-canvas,
  .market-overview-drawer-visual-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 720px) {
  .market-overview-signal-canvas {
    gap: 10px;
  }

  .market-overview-drawer-visual-grid {
    grid-template-columns: 1fr;
  }

  .market-overview-signal-ribbon,
  .favorite-activity-live-pulse-item,
  .favorite-activity-alert-feed-item {
    padding: var(--favorite-activity-dashboard-feed-item-mobile-padding);
  }

  .market-overview-dual-timeline-track {
    min-height: 74px;
  }

  .market-overview-lag-gauge {
    grid-template-columns: 1fr;
  }

  .market-overview-lag-gauge-ring {
    margin: 0 auto;
  }

  .market-overview-bargain-summary-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .market-overview-bargain-summary-item:last-child {
    grid-column: 1 / -1;
  }

  .market-overview-bargain-row-head {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .market-overview-bargain-row-gap {
    grid-column: 1 / -1;
    justify-items: start;
    text-align: left;
    padding-left: 42px;
  }

  .market-overview-bargain-row-price-grid {
    grid-template-columns: 1fr;
  }
}

.market-overview-brief-shell {
  display: grid;
  grid-template-columns: minmax(0, 1.65fr) minmax(260px, 0.9fr);
  gap: 12px;
  align-items: start;
}

.market-overview-brief-main,
.market-overview-brief-side-card,
.market-overview-brief-source {
  padding: 12px 13px;
  border-radius: 16px;
  border: 1px solid var(--market-overview-brief-card-border);
  background: var(--market-overview-brief-card-bg);
}

.market-overview-brief-kicker {
  display: inline-flex;
  margin-bottom: 8px;
  color: var(--market-overview-brief-kicker-color);
  font-size: 0.72rem;
  font-weight: 900;
}

.market-overview-brief-headline {
  display: block;
  color: var(--market-overview-brief-title-color);
  font-size: 1.05rem;
  font-weight: 900;
  line-height: 1.45;
}

.market-overview-brief-copy {
  margin: 8px 0 0;
  color: var(--market-overview-brief-copy-color);
  font-size: 0.8rem;
  line-height: 1.55;
  font-weight: 700;
}

.market-overview-brief-chip-row,
.favorite-activity-market-chip-row,
.favorite-activity-market-bar-chip-row {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 10px;
}

.market-overview-brief-chip,
.market-overview-theme-chip,
.favorite-activity-market-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 28px;
  padding: 0 10px;
  border-radius: 999px;
  border: 1px solid var(--market-overview-brief-chip-border);
  background: var(--market-overview-brief-chip-bg);
  color: var(--market-overview-brief-chip-color);
  font-size: 0.72rem;
  font-weight: 900;
  line-height: 1;
}

.market-overview-brief-chip.tone-down,
.market-overview-theme-chip.tone-down,
.favorite-activity-market-chip.tone-down {
  color: var(--market-overview-brief-chip-down-color);
  border-color: var(--market-overview-brief-chip-down-border);
  background: var(--market-overview-brief-chip-down-bg);
}

.market-overview-brief-chip.tone-up,
.market-overview-theme-chip.tone-up,
.favorite-activity-market-chip.tone-up,
.favorite-activity-market-chip.decision-a_grade {
  color: var(--market-overview-brief-chip-up-color);
  border-color: var(--market-overview-brief-chip-up-border);
  background: var(--market-overview-brief-chip-up-bg);
}

.market-overview-brief-chip.tone-lease,
.market-overview-theme-chip.tone-lease,
.favorite-activity-market-chip.tone-lease,
.favorite-activity-market-chip.decision-lease_support {
  color: var(--market-overview-brief-chip-lease-color);
  border-color: var(--market-overview-brief-chip-lease-border);
  background: var(--market-overview-brief-chip-lease-bg);
}

.market-overview-brief-chip.tone-policy,
.market-overview-theme-chip.tone-policy,
.favorite-activity-market-chip.tone-policy,
.favorite-activity-market-chip.decision-negotiation {
  color: var(--market-overview-brief-chip-policy-color);
  border-color: var(--market-overview-brief-chip-policy-border);
  background: var(--market-overview-brief-chip-policy-bg);
}

.market-overview-brief-chip.tone-mixed,
.market-overview-theme-chip.tone-mixed,
.favorite-activity-market-chip.tone-mixed {
  color: var(--market-overview-brief-chip-mixed-color);
  border-color: var(--market-overview-brief-chip-mixed-border);
  background: var(--market-overview-brief-chip-mixed-bg);
}

.market-overview-brief-chip.tone-watch,
.favorite-activity-market-chip.tone-watch,
.favorite-activity-market-chip.decision-mismatch {
  color: var(--market-overview-brief-chip-watch-color);
  border-color: var(--market-overview-brief-chip-watch-border);
  background: var(--market-overview-brief-chip-watch-bg);
}

.market-overview-brief-chip.tone-signal,
.market-overview-brief-chip.tone-permit,
.market-overview-brief-chip.tone-trade,
.market-overview-brief-chip.tone-confirm,
.market-overview-brief-chip.tone-stable,
.market-overview-theme-chip.tone-calm,
.favorite-activity-market-chip.decision-wait {
  color: var(--market-overview-brief-chip-neutral-color);
  border-color: var(--market-overview-brief-chip-neutral-border);
  background: var(--market-overview-brief-chip-neutral-bg);
}

.market-overview-divergence-bar {
  display: grid;
  gap: 4px;
  margin-top: 10px;
  padding: 10px 12px;
  border-radius: 14px;
  border: 1px solid var(--market-overview-divergence-border);
  background: var(--market-overview-divergence-bg);
}

.market-overview-divergence-bar strong {
  color: var(--market-overview-divergence-title-color);
  font-size: 0.8rem;
}

.market-overview-divergence-bar span {
  color: var(--market-overview-divergence-copy-color);
  font-size: 0.74rem;
  line-height: 1.45;
  font-weight: 700;
}

.market-overview-divergence-bar.tone-watch {
  border-color: var(--market-overview-divergence-watch-border);
  background: var(--market-overview-divergence-watch-bg);
}

.market-overview-divergence-bar.tone-down {
  border-color: var(--market-overview-divergence-down-border);
  background: var(--market-overview-divergence-down-bg);
}

.market-overview-divergence-bar.tone-mixed {
  border-color: var(--market-overview-divergence-mixed-border);
  background: var(--market-overview-divergence-mixed-bg);
}

.market-overview-brief-side {
  display: grid;
  gap: 10px;
}

.market-overview-brief-side-card {
  display: grid;
  gap: 5px;
}

.market-overview-brief-side-card span,
.market-overview-brief-source span {
  color: var(--market-overview-brief-side-label-color);
  font-size: 0.72rem;
  font-weight: 800;
}

.market-overview-brief-side-card strong,
.market-overview-brief-source strong {
  color: var(--market-overview-brief-side-title-color);
  font-size: 0.88rem;
  font-weight: 900;
}

.market-overview-brief-side-card small,
.market-overview-brief-source small {
  color: var(--market-overview-brief-side-copy-color);
  font-size: 0.69rem;
  font-weight: 700;
  line-height: 1.45;
}

.market-overview-brief-sources {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-top: 12px;
}

.market-overview-brief-source-chip-row {
  margin-top: 6px;
}

.district-market-badge-row {
  grid-template-columns: minmax(0, 1fr);
  gap: 5px;
}

.district-market-badge-row.is-compact {
  grid-template-columns: minmax(0, 1fr);
}

.district-market-badge-region {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
}

.district-market-badge-region strong {
  color: var(--market-overview-district-region-color);
  font-size: 0.8rem;
}

.district-market-badge-theme {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 24px;
  padding: 0 8px;
  border-radius: 999px;
  border: 1px solid var(--market-overview-district-theme-border);
  background: var(--market-overview-district-theme-bg);
  font-size: 0.67rem;
  font-weight: 900;
}

.district-market-badge-stance,
.district-market-badge-permit {
  justify-self: start;
  color: var(--market-overview-district-stance-color);
  font-size: 0.71rem;
  line-height: 1.45;
}

.favorite-activity-dashboard-market-bar {
  margin-bottom: 12px;
}

.favorite-activity-market-bar {
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(240px, 0.85fr);
  gap: 10px;
  padding: 12px;
  border-radius: 18px;
  border: 1px solid var(--favorite-activity-market-bar-border);
  background: var(--favorite-activity-market-bar-bg);
  box-shadow: var(--favorite-activity-market-bar-shadow);
}

.favorite-activity-market-bar-main {
  min-width: 0;
  display: grid;
  gap: 8px;
}

.favorite-activity-market-bar-kicker {
  display: inline-flex;
  color: var(--favorite-activity-market-bar-kicker-color);
  font-size: 0.68rem;
  font-weight: 900;
}

.favorite-activity-market-bar-main strong {
  display: block;
  color: var(--favorite-activity-market-bar-title-color);
  font-size: 0.92rem;
  line-height: 1.45;
}

.favorite-activity-market-bar-side {
  display: grid;
  gap: 5px;
  align-content: start;
  padding: 10px 11px;
  border-radius: 16px;
  border: 1px solid var(--favorite-activity-market-bar-side-border);
  background: var(--favorite-activity-market-bar-side-bg);
}

.favorite-activity-market-bar-mortgage {
  display: grid;
  gap: 8px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--favorite-activity-market-bar-divider);
}

.favorite-activity-market-bar-mortgage-btn {
  width: 100%;
  padding: 0 0 10px;
  border: 0;
  background: transparent;
  text-align: left;
  cursor: pointer;
  transition: transform 150ms ease, opacity 150ms ease;
}

.favorite-activity-market-bar-mortgage-btn:hover {
  transform: translateY(-1px);
}

.favorite-activity-market-bar-mortgage-btn:focus-visible {
  outline: 2px solid var(--favorite-activity-market-bar-focus-outline);
  outline-offset: 4px;
  border-radius: 12px;
}

.favorite-activity-market-bar-mortgage-copy {
  display: grid;
  gap: 2px;
}

.favorite-activity-market-bar-mortgage-kicker {
  color: var(--favorite-activity-market-bar-mortgage-kicker-color);
  font-size: 0.69rem;
  font-weight: 900;
  line-height: 1.4;
}

.favorite-activity-market-bar-mortgage-copy strong {
  color: var(--favorite-activity-market-bar-mortgage-title-color);
  font-size: 0.96rem;
  line-height: 1.1;
}

.favorite-activity-market-bar-mortgage-copy small {
  color: var(--favorite-activity-market-bar-mortgage-copy-color);
  font-size: 0.72rem;
  font-weight: 900;
  line-height: 1.45;
}

.favorite-activity-market-bar-mortgage-chart {
  display: grid;
  align-items: center;
}

.favorite-activity-market-bar-mortgage-chart .market-overview-sparkline.is-step {
  height: 44px;
}

.favorite-activity-market-bar-side span,
.favorite-activity-market-bar-side small {
  color: var(--favorite-activity-market-bar-side-copy-color);
  font-size: 0.68rem;
  font-weight: 800;
  line-height: 1.45;
}

.favorite-activity-market-bar-side strong {
  color: var(--favorite-activity-market-bar-side-title-color);
  font-size: 0.78rem;
}

.favorite-activity-overview-summary-line.macro {
  color: var(--favorite-activity-overview-summary-macro-color);
}

.favorite-activity-overview-detail-macro {
  margin: 8px 0 0;
  color: var(--favorite-activity-overview-detail-macro-color);
  font-size: 0.74rem;
  line-height: 1.48;
  font-weight: 800;
}

.favorite-activity-overview-detail-explain {
  margin: 0;
  color: #587289;
  font-size: 0.68rem;
  line-height: 1.34;
  font-weight: 800;
}

.favorite-activity-overview-detail-explain.is-empty {
  min-height: 0;
}

@media (max-width: 1080px) {
  .market-overview-brief-shell,
  .favorite-activity-market-bar,
  .market-overview-brief-sources {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 760px) {
  .market-overview-banner {
    padding: 12px;
  }

  .market-overview-brief-main,
  .market-overview-brief-side-card,
  .market-overview-brief-source,
  .favorite-activity-market-bar-side {
    padding: 10px 11px;
  }
}

.market-overview-banner {
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.market-overview-hub-status-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.market-overview-hub-action-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 30px;
  padding: 0 11px;
  border-radius: 999px;
  border: 1px solid rgba(198, 210, 220, 0.94);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(242, 246, 247, 0.94) 100%);
  color: #486474;
  font-size: 0.72rem;
  font-weight: 900;
  box-shadow: 0 8px 18px rgba(30, 48, 63, 0.05);
}

.market-overview-hub-action-chip.tone-warning {
  color: #9a5b3a;
}

.market-overview-hub-status-pill,
.market-overview-key-rail-item,
.market-overview-brief-card,
.market-overview-source-accordion {
  border: 1px solid rgba(201, 213, 220, 0.94);
  border-radius: 16px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(242, 246, 247, 0.94) 100%);
  box-shadow: 0 8px 18px rgba(30, 48, 63, 0.05);
}

.market-overview-hub-status-pill {
  display: grid;
  gap: 4px;
  padding: 11px 12px;
}

.market-overview-hub-status-pill span {
  color: #698091;
  font-size: 0.67rem;
  font-weight: 900;
}

.market-overview-hub-status-pill strong {
  color: #173246;
  font-size: 0.9rem;
  font-weight: 900;
  line-height: 1.35;
}

.market-overview-hub-status-pill small {
  color: #678090;
  font-size: 0.68rem;
  line-height: 1.45;
  font-weight: 800;
}

.market-overview-hub-status-pill.tone-watch strong,
.market-overview-hub-status-pill.tone-watch small {
  color: #7d5b2e;
}

.market-overview-hub-status-pill.tone-policy strong,
.market-overview-hub-status-pill.tone-policy small {
  color: #7f5a45;
}

.market-overview-hub-status-pill.tone-warning strong,
.market-overview-hub-status-pill.tone-warning small {
  color: #9a5b3a;
}

.market-overview-hub-status-pill.tone-up strong,
.market-overview-hub-status-pill.tone-up small {
  color: #2a6f62;
}

.market-overview-key-rail {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-top: 12px;
}

.market-overview-key-rail-item {
  display: grid;
  gap: 7px;
  padding: 12px 13px;
}

.market-overview-key-rail-head {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  align-items: center;
}

.market-overview-key-rail-kicker {
  color: #6c8392;
  font-size: 0.67rem;
  font-weight: 900;
}

.market-overview-key-rail-action,
.market-overview-section-link-btn,
.market-overview-brief-open-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 28px;
  padding: 0 10px;
  border-radius: 999px;
  border: 1px solid rgba(181, 197, 210, 0.9);
  background: rgba(255, 255, 255, 0.96);
  color: #4f6b7b;
  font-size: 0.7rem;
  font-weight: 900;
  text-decoration: none;
}

.market-overview-key-rail-item strong {
  color: #173246;
  font-size: 0.88rem;
  font-weight: 900;
  line-height: 1.45;
}

.market-overview-key-rail-item p {
  margin: 0;
  color: #5c7585;
  font-size: 0.74rem;
  line-height: 1.55;
  font-weight: 800;
}

.market-overview-key-rail-item small {
  color: #768a98;
  font-size: 0.67rem;
  font-weight: 800;
  line-height: 1.45;
}

.market-overview-brief-sections {
  display: grid;
  gap: 16px;
  margin-top: 16px;
}

.market-overview-brief-sections-shell {
  display: grid;
  gap: 16px;
}

.market-overview-brief-drill-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.market-overview-brief-drill-chip {
  width: 100%;
  min-height: 152px;
  display: grid;
  align-content: start;
  gap: 10px;
  padding: 16px;
  border-radius: 20px;
  border: 1px solid rgba(191, 206, 214, 0.94);
  background:
    radial-gradient(circle at top left, rgba(180, 217, 229, 0.14) 0%, rgba(180, 217, 229, 0) 46%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(244, 248, 249, 0.96) 100%);
  box-shadow: 0 12px 26px rgba(36, 55, 71, 0.06);
  text-align: left;
  transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease, background 0.18s ease;
}

.market-overview-brief-drill-chip.kind-policy {
  background:
    radial-gradient(circle at top left, rgba(232, 212, 170, 0.16) 0%, rgba(232, 212, 170, 0) 48%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(251, 248, 241, 0.96) 100%);
}

.market-overview-brief-drill-chip:hover:not(:disabled),
.market-overview-brief-drill-chip:focus-visible:not(:disabled) {
  transform: translateY(-1px);
  border-color: rgba(144, 179, 193, 0.96);
  box-shadow: 0 14px 30px rgba(36, 55, 71, 0.1);
}

.market-overview-brief-drill-chip:focus-visible {
  outline: 2px solid rgba(113, 160, 181, 0.28);
  outline-offset: 2px;
}

.market-overview-brief-drill-chip:disabled {
  opacity: 0.72;
  cursor: default;
  box-shadow: none;
}

.market-overview-brief-drill-chip-head {
  display: grid;
  gap: 4px;
}

.market-overview-brief-drill-chip-head strong {
  color: #173246;
  font-size: 1rem;
  font-weight: 900;
  line-height: 1.35;
}

.market-overview-brief-drill-chip-head small {
  color: #708794;
  font-size: 0.68rem;
  font-weight: 900;
  line-height: 1.35;
  letter-spacing: -0.01em;
}

.market-overview-brief-drill-chip-copy {
  display: -webkit-box;
  overflow: hidden;
  color: #577183;
  font-size: 0.78rem;
  line-height: 1.58;
  font-weight: 800;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}

.market-overview-brief-drill-chip .market-overview-brief-chip-row {
  margin-top: 0;
}

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

.market-overview-brief-card {
  display: grid;
  gap: 8px;
  padding: 13px 14px;
}

.market-overview-brief-card.is-detailed {
  gap: 10px;
}

.market-overview-brief-card-head {
  display: grid;
  gap: 6px;
}

.market-overview-brief-card-link {
  color: inherit;
  text-decoration: none;
}

.market-overview-brief-card strong {
  color: #173246;
  font-size: 0.84rem;
  font-weight: 900;
  line-height: 1.5;
}

.market-overview-brief-card p {
  margin: 0;
  color: #577183;
  font-size: 0.74rem;
  line-height: 1.55;
  font-weight: 800;
}

.market-overview-brief-card small {
  color: #758995;
  font-size: 0.67rem;
  line-height: 1.45;
  font-weight: 800;
}

.market-overview-brief-card-foot {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  align-items: flex-end;
}

.market-overview-brief-card-foot small {
  flex: 1 1 auto;
}

.market-overview-source-accordion {
  overflow: hidden;
}

.market-overview-source-accordion summary {
  display: grid;
  gap: 4px;
  padding: 13px 14px;
  cursor: pointer;
  list-style: none;
}

.market-overview-source-accordion summary::-webkit-details-marker {
  display: none;
}

.market-overview-source-accordion summary span {
  color: #173246;
  font-size: 0.82rem;
  font-weight: 900;
}

.market-overview-source-accordion summary small {
  color: #728895;
  font-size: 0.68rem;
  line-height: 1.45;
  font-weight: 800;
}

.market-overview-source-accordion-body {
  padding: 0 14px 14px;
}

.market-overview-status-popup-list {
  display: grid;
  gap: 10px;
}

.market-overview-highlights-dialog {
  width: min(100%, calc(100vw - 28px));
  max-width: none;
  height: min(100%, calc(100vh - 28px));
  max-height: none;
  overflow: hidden;
  grid-template-rows: auto minmax(0, 1fr);
  padding: 20px;
  border-radius: 28px;
}

.market-overview-highlights-dialog #marketOverviewHighlightsBody {
  min-height: 0;
  overflow-y: auto;
  align-content: start;
  padding-right: 4px;
}

.market-overview-brief-card-grid.detail {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.market-overview-context-strip {
  display: grid;
  grid-template-columns: minmax(0, 1.8fr) minmax(280px, 1fr);
  gap: 12px;
}

.market-overview-context-main,
.market-overview-context-side,
.market-overview-context-accordion,
.market-overview-mortgage-card,
.market-overview-district-card,
.favorite-activity-priority-card,
.favorite-activity-secondary-matrix {
  border: 1px solid rgba(201, 213, 220, 0.94);
  border-radius: 18px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(242, 246, 247, 0.94) 100%);
  box-shadow: 0 10px 22px rgba(30, 48, 63, 0.06);
}

.market-overview-context-main {
  display: grid;
  gap: 10px;
  padding: 16px;
}

.market-overview-context-district-shell {
  display: grid;
  gap: 10px;
  margin-top: 2px;
  padding-top: 12px;
  border-top: 1px solid rgba(218, 227, 232, 0.92);
}

.market-overview-context-district-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 10px;
}

.market-overview-context-district-heading {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.market-overview-context-district-heading strong,
.market-overview-context-district-title {
  color: #173246;
  font-size: 0.92rem;
  font-weight: 900;
  line-height: 1.4;
}

.market-overview-context-select-wrap {
  min-width: 132px;
  display: grid;
  gap: 4px;
  justify-items: end;
}

.market-overview-context-select-wrap span {
  color: #6e828f;
  font-size: 0.67rem;
  font-weight: 900;
}

.market-overview-context-select {
  width: 100%;
  min-height: 34px;
  padding: 0 34px 0 12px;
  border-radius: 12px;
  border: 1px solid rgba(190, 204, 214, 0.96);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(241, 246, 248, 0.96) 100%);
  color: #214356;
  font-size: 0.76rem;
  font-weight: 900;
  line-height: 1.1;
  appearance: none;
  -webkit-appearance: none;
  background-image:
    linear-gradient(45deg, transparent 50%, #668193 50%),
    linear-gradient(135deg, #668193 50%, transparent 50%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(241, 246, 248, 0.96) 100%);
  background-position:
    calc(100% - 16px) calc(50% - 2px),
    calc(100% - 11px) calc(50% - 2px),
    0 0;
  background-size: 5px 5px, 5px 5px, 100% 100%;
  background-repeat: no-repeat;
  cursor: pointer;
}

.market-overview-context-select:focus-visible {
  outline: 2px solid rgba(70, 120, 192, 0.4);
  outline-offset: 2px;
}

.market-overview-context-district-card {
  display: grid;
  gap: 8px;
  padding: 12px 13px;
  border-radius: 16px;
  border: 1px solid rgba(205, 217, 222, 0.92);
  background: rgba(255, 255, 255, 0.88);
}

.market-overview-context-district-chip-row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.market-overview-context-district-summary,
.market-overview-context-district-copy {
  margin: 0;
  color: #4b6878;
  font-size: 0.76rem;
  line-height: 1.55;
  font-weight: 800;
}

.market-overview-context-district-summary {
  color: #355f7b;
}

.market-overview-context-district-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.market-overview-context-district-meta span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-height: 24px;
  padding: 0 8px;
  border-radius: 999px;
  background: rgba(243, 247, 249, 0.96);
  border: 1px solid rgba(211, 220, 225, 0.96);
  color: #466676;
  font-size: 0.67rem;
  font-weight: 900;
  line-height: 1;
}

.market-overview-context-district-meta span em {
  font-style: normal;
  opacity: 0.84;
}

.market-overview-context-district-meta span strong {
  color: inherit;
  font-size: 0.68rem;
  font-weight: 900;
}

.market-overview-context-district-meta span.is-up-strong,
.market-overview-context-district-meta span.is-up-soft {
  color: #b35443;
  border-color: rgba(213, 139, 122, 0.48);
  background: #fff4f1;
}

.market-overview-context-district-meta span.is-down-strong,
.market-overview-context-district-meta span.is-down-soft {
  color: #2f63c7;
  border-color: rgba(120, 153, 226, 0.48);
  background: #eef3ff;
}

.market-overview-context-district-meta span.is-flat {
  color: #5d7381;
  border-color: rgba(190, 204, 214, 0.96);
  background: rgba(243, 247, 249, 0.96);
}

.market-overview-context-side {
  display: grid;
  gap: 10px;
  align-content: start;
}

.market-overview-brief-chip-row.policy .market-overview-brief-chip {
  border-color: rgba(201, 169, 112, 0.45);
  background: rgba(255, 248, 236, 0.95);
}

.market-overview-brief-side-card.compact {
  padding: 12px 13px;
}

.market-overview-context-accordion {
  padding: 12px 14px;
}

.market-overview-context-accordion summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  cursor: pointer;
  list-style: none;
  color: #274355;
}

.market-overview-context-accordion summary::-webkit-details-marker {
  display: none;
}

.market-overview-context-accordion summary span {
  color: #6c808d;
  font-size: 0.74rem;
  font-weight: 900;
}

.market-overview-context-accordion summary strong {
  color: #173246;
  font-size: 0.84rem;
}

.market-overview-context-details {
  display: grid;
  gap: 10px;
  margin-top: 12px;
}

.market-overview-context-details .market-overview-today-cards {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.market-overview-context-details-copy p {
  margin: 0;
  color: #476474;
  font-size: 0.74rem;
  line-height: 1.5;
  font-weight: 800;
}

.market-overview-context-details-copy small {
  color: #718390;
  font-size: 0.68rem;
  font-weight: 800;
}

.market-overview-brief-source {
  gap: 4px;
  padding: 10px 11px;
}

.market-overview-brief-source strong {
  font-size: 0.8rem;
  line-height: 1.25;
}

.market-overview-brief-source span {
  font-size: 0.68rem;
}

.market-overview-brief-source small {
  font-size: 0.64rem;
  line-height: 1.35;
}

.market-overview-mortgage-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 172px;
  gap: 10px;
  padding: 12px 13px;
}

.market-overview-mortgage-card.expanded {
  grid-template-columns: minmax(0, 1fr) minmax(180px, 320px);
}

.market-overview-mortgage-copy {
  display: grid;
  gap: 4px;
  align-content: start;
}

.market-overview-mortgage-copy span,
.market-overview-mortgage-copy em {
  color: #70818d;
  font-size: 0.7rem;
  font-weight: 800;
  font-style: normal;
  line-height: 1.45;
}

.market-overview-mortgage-copy strong {
  color: #173246;
  font-size: 0.98rem;
}

.market-overview-mortgage-copy small {
  color: #4e6977;
  font-size: 0.74rem;
  font-weight: 900;
}

.market-overview-mortgage-chart {
  display: grid;
  align-items: center;
}

.market-overview-mortgage-figure {
  display: grid;
  gap: 8px;
}

.market-overview-mortgage-highlight-row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.market-overview-mortgage-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 12px;
  align-items: center;
}

.market-overview-mortgage-legend span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  color: #738592;
  font-size: 0.6rem;
  font-weight: 900;
}

.market-overview-mortgage-legend i {
  display: inline-flex;
  width: 16px;
  height: 0;
  border-top: 2px solid #cf7849;
}

.market-overview-mortgage-legend i.is-band {
  height: 8px;
  border-top: none;
  border-radius: 999px;
  background: rgba(210, 134, 92, 0.18);
}

.market-overview-mortgage-legend i.is-release {
  width: 8px;
  height: 8px;
  border-top: none;
  border-radius: 999px;
  background: #8da0ae;
}

.market-overview-mortgage-flow-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
}

.market-overview-mortgage-flow-head strong {
  color: #173246;
  font-size: 0.76rem;
  font-weight: 900;
}

.market-overview-mortgage-flow-head span {
  color: #728491;
  font-size: 0.64rem;
  font-weight: 800;
}

.market-overview-mortgage-highlight-chip {
  display: inline-grid;
  gap: 2px;
  min-width: 0;
  min-height: 32px;
  padding: 6px 9px;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.92);
  border: 1px solid rgba(203, 214, 224, 0.76);
  box-shadow: 0 8px 18px rgba(42, 57, 73, 0.05);
}

.market-overview-mortgage-highlight-chip em {
  color: #758592;
  font-size: 0.56rem;
  font-style: normal;
  font-weight: 900;
  line-height: 1.1;
}

.market-overview-mortgage-highlight-chip strong {
  color: #173246;
  font-size: 0.68rem;
  font-weight: 900;
  line-height: 1.1;
}

.market-overview-mortgage-highlight-chip.is-start {
  border-color: rgba(163, 183, 197, 0.72);
}

.market-overview-mortgage-highlight-chip.is-mid {
  border-color: rgba(212, 176, 108, 0.72);
  background: rgba(255, 250, 240, 0.95);
}

.market-overview-mortgage-highlight-chip.is-latest {
  border-color: rgba(60, 138, 131, 0.38);
  background: rgba(238, 249, 247, 0.95);
}

.market-overview-mortgage-chart-shell {
  position: relative;
  display: grid;
  gap: 6px;
  padding: 24px 10px 10px;
  border-radius: 16px;
  border: 1px solid rgba(204, 216, 222, 0.96);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.9) 0%, rgba(245, 249, 252, 0.96) 100%);
}

.market-overview-mortgage-range {
  position: absolute;
  top: 8px;
  left: 10px;
  color: #697d8b;
  font-size: 0.62rem;
  font-weight: 900;
}

.market-overview-mortgage-current-callout {
  justify-self: end;
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 0 9px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.96);
  border: 1px solid rgba(60, 138, 131, 0.22);
  color: #173246;
  font-size: 0.62rem;
  font-weight: 900;
  box-shadow: 0 8px 18px rgba(42, 57, 73, 0.06);
}

.market-overview-mortgage-axis {
  display: grid;
  gap: 8px;
  align-items: start;
}

.market-overview-mortgage-axis span {
  color: var(--market-overview-mortgage-axis-color);
  font-size: 0.58rem;
  font-weight: 900;
  line-height: 1.2;
}

.market-overview-mortgage-figure .market-overview-mortgage-axis {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.market-overview-mortgage-figure.expanded .market-overview-mortgage-axis {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.market-overview-mortgage-figure .market-overview-mortgage-axis span:nth-child(2) {
  text-align: center;
}

.market-overview-mortgage-figure .market-overview-mortgage-axis span:last-child {
  text-align: right;
}

.market-overview-mortgage-axis.is-single {
  grid-template-columns: 1fr;
}

.market-overview-mortgage-axis.is-single span {
  text-align: center;
}

.market-overview-sparkline.is-step {
  width: 100%;
  height: 56px;
}

.market-overview-sparkline.is-step .market-overview-sparkline-line {
  fill: none;
  stroke: var(--market-overview-sparkline-step);
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.market-overview-sparkline.is-step.tone-down .market-overview-sparkline-line {
  stroke: var(--market-overview-sparkline-step-down);
}

.market-overview-sparkline.is-step .market-overview-sparkline-release {
  fill: var(--market-overview-sparkline-release);
}

.market-overview-mortgage-chart-shell .market-overview-sparkline.is-step {
  height: 78px;
}

.market-overview-mortgage-figure.expanded .market-overview-mortgage-chart-shell .market-overview-sparkline.is-step {
  height: 108px;
}

.market-overview-mortgage-band-svg {
  width: 100%;
  height: 84px;
}

.market-overview-mortgage-figure.expanded .market-overview-mortgage-band-svg {
  height: 112px;
}

.market-overview-mortgage-band-area {
  fill: rgba(210, 134, 92, 0.18);
}

.market-overview-mortgage-band-line {
  fill: none;
  stroke: #cf7849;
  stroke-width: 2.05;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.market-overview-mortgage-band-release {
  fill: #8da0ae;
}

.market-overview-mortgage-band-point {
  fill: #173246;
}

.market-overview-mortgage-current-range-strip {
  display: grid;
  gap: 7px;
  padding: 10px 11px;
  border-radius: 14px;
  border: 1px solid rgba(204, 216, 222, 0.92);
  background: rgba(255, 255, 255, 0.92);
}

.market-overview-mortgage-current-range-head {
  display: grid;
  gap: 2px;
}

.market-overview-mortgage-current-range-head strong {
  color: #173246;
  font-size: 0.7rem;
  font-weight: 900;
}

.market-overview-mortgage-current-range-head span,
.market-overview-mortgage-current-range-meta,
.market-overview-mortgage-current-range-band {
  color: #6e808d;
  font-size: 0.62rem;
  font-weight: 800;
  line-height: 1.4;
}

.market-overview-mortgage-current-range-values {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.market-overview-mortgage-current-range-value {
  display: grid;
  gap: 2px;
  padding: 8px 10px;
  border-radius: 12px;
  background: rgba(245, 249, 252, 0.92);
  border: 1px solid rgba(208, 219, 226, 0.9);
}

.market-overview-mortgage-current-range-value em {
  color: #7a8a96;
  font-size: 0.56rem;
  font-style: normal;
  font-weight: 900;
}

.market-overview-mortgage-current-range-value strong {
  color: #173246;
  font-size: 0.82rem;
  font-weight: 900;
}

.market-overview-mortgage-current-range-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.market-overview-mortgage-current-range-chips span {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 0 9px;
  border-radius: 999px;
  background: rgba(246, 248, 251, 0.95);
  border: 1px solid rgba(191, 205, 214, 0.82);
  color: #536979;
  font-size: 0.58rem;
  font-weight: 900;
}

.market-overview-mortgage-hero {
  display: grid;
  margin-bottom: 12px;
}

.market-overview-mortgage-hero-shell {
  display: grid;
  gap: 12px;
}

.market-overview-mortgage-hero-summary {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(180px, 1fr);
  gap: 12px;
  align-items: start;
}

.market-overview-mortgage-hero-figure {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.market-overview-mortgage-hero-figure span,
.market-overview-mortgage-hero-figure em {
  color: #738491;
  font-size: 0.7rem;
  font-weight: 900;
  font-style: normal;
  line-height: 1.4;
}

.market-overview-mortgage-hero-figure strong {
  color: #173246;
  font-size: 1.58rem;
  font-weight: 900;
  letter-spacing: -0.02em;
}

.market-overview-mortgage-hero-figure small {
  color: #4f6b79;
  font-size: 0.78rem;
  font-weight: 900;
  line-height: 1.45;
}

.market-overview-mortgage-hero-chip-row {
  display: grid;
  gap: 8px;
}

.market-overview-mortgage-hero-delta-row {
  display: grid;
  gap: 8px;
}

.market-overview-mortgage-hero-side {
  display: grid;
  gap: 8px;
  align-content: start;
  min-width: 0;
}

.market-overview-mortgage-bank-chip {
  display: inline-grid;
  gap: 2px;
  min-height: 34px;
  padding: 7px 11px;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.94);
  border: 1px solid rgba(203, 214, 224, 0.8);
  box-shadow: 0 10px 20px rgba(42, 57, 73, 0.05);
  width: 100%;
}

.market-overview-mortgage-bank-chip em {
  color: #728390;
  font-size: 0.58rem;
  font-style: normal;
  font-weight: 900;
}

.market-overview-mortgage-bank-chip strong {
  color: #173246;
  font-size: 0.72rem;
  font-weight: 900;
}

.market-overview-mortgage-bank-chip.tone-signal {
  border-color: rgba(60, 138, 131, 0.36);
  background: rgba(239, 250, 247, 0.96);
}

.market-overview-mortgage-bank-chip.tone-warning {
  border-color: rgba(214, 176, 107, 0.4);
  background: rgba(255, 249, 239, 0.96);
}

.market-overview-mortgage-delta-chip {
  display: inline-grid;
  gap: 2px;
  min-height: 32px;
  padding: 7px 11px;
  border-radius: 14px;
  background: rgba(243, 247, 250, 0.98);
  border: 1px solid rgba(197, 209, 220, 0.88);
  box-shadow: 0 8px 18px rgba(42, 57, 73, 0.05);
  width: 100%;
}

.market-overview-mortgage-delta-chip em,
.market-overview-mortgage-delta-chip strong {
  font-style: normal;
  font-weight: 900;
  line-height: 1.3;
}

.market-overview-mortgage-delta-chip em {
  color: #6d7f8d;
  font-size: 0.58rem;
}

.market-overview-mortgage-delta-chip strong {
  color: #173246;
  font-size: 0.7rem;
}

.market-overview-mortgage-delta-chip.tone-signal {
  border-color: rgba(60, 138, 131, 0.36);
  background: rgba(239, 250, 247, 0.96);
}

.market-overview-mortgage-delta-chip.tone-warning {
  border-color: rgba(214, 176, 107, 0.4);
  background: rgba(255, 249, 239, 0.96);
}

.market-overview-mortgage-delta-chip.tone-stable {
  border-color: rgba(171, 189, 202, 0.56);
  background: rgba(246, 249, 252, 0.96);
}

.market-overview-mortgage-daily-chart-shell {
  display: grid;
  gap: 8px;
}

.market-overview-mortgage-chart-shell.is-daily .market-overview-empty {
  min-height: 132px;
  display: grid;
  place-items: center;
}

.market-overview-mortgage-daily-svg {
  width: 100%;
  height: 160px;
}

.market-overview-mortgage-daily-band {
  fill: rgba(110, 175, 206, 0.18);
}

.market-overview-mortgage-daily-line {
  fill: none;
  stroke: #235879;
  stroke-width: 2.1;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.market-overview-mortgage-daily-point {
  fill: #173246;
}

.market-overview-mortgage-today-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.market-overview-mortgage-today-strip-item {
  display: grid;
  gap: 3px;
  padding: 10px 11px;
  border-radius: 14px;
  border: 1px solid rgba(205, 216, 223, 0.9);
  background: rgba(255, 255, 255, 0.92);
}

.market-overview-mortgage-today-strip-item em {
  color: #758592;
  font-size: 0.58rem;
  font-style: normal;
  font-weight: 900;
}

.market-overview-mortgage-today-strip-item strong {
  color: #173246;
  font-size: 0.72rem;
  font-weight: 900;
  line-height: 1.45;
}

.market-overview-mortgage-history-shell {
  display: grid;
  gap: 12px;
}

.market-overview-mortgage-history-dialog {
  max-width: 860px;
}

.market-overview-mortgage-history-date-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.market-overview-mortgage-history-meta {
  color: #6d808d;
  font-size: 0.72rem;
  font-weight: 800;
  line-height: 1.5;
}

.market-overview-mortgage-history-toolbar {
  display: grid;
  gap: 10px;
}

.market-overview-mortgage-history-search {
  display: grid;
  gap: 5px;
}

.market-overview-mortgage-history-search span {
  color: #6f818f;
  font-size: 0.68rem;
  font-weight: 900;
}

.market-overview-mortgage-history-search input {
  width: 100%;
  min-height: 40px;
  border: 1px solid rgba(196, 208, 218, 0.9);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.96);
  color: #173246;
  font-size: 0.82rem;
  font-weight: 800;
  padding: 0 13px;
}

.market-overview-mortgage-history-sort-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.market-overview-mortgage-history-summary-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.market-overview-mortgage-history-summary-item {
  display: grid;
  gap: 3px;
  padding: 10px 11px;
  border-radius: 14px;
  border: 1px solid rgba(204, 216, 222, 0.92);
  background: rgba(246, 249, 251, 0.94);
}

.market-overview-mortgage-history-summary-item em {
  color: #768793;
  font-size: 0.6rem;
  font-style: normal;
  font-weight: 900;
}

.market-overview-mortgage-history-summary-item strong {
  color: #173246;
  font-size: 0.76rem;
  font-weight: 900;
  line-height: 1.45;
}

.market-overview-mortgage-history-table-wrap {
  max-height: min(50vh, 420px);
  overflow: auto;
  scrollbar-gutter: stable both-edges;
  border: 1px solid rgba(214, 223, 229, 0.82);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.96);
}

.market-overview-mortgage-history-table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}

.market-overview-mortgage-history-table th,
.market-overview-mortgage-history-table td {
  padding: 9px 8px;
  border-bottom: 1px solid rgba(214, 223, 229, 0.78);
  text-align: left;
  white-space: normal;
  vertical-align: top;
}

.market-overview-mortgage-history-table th {
  color: #738491;
  font-size: 0.68rem;
  font-weight: 900;
  position: sticky;
  top: 0;
  z-index: 3;
  background: rgba(247, 250, 252, 0.98);
  box-shadow: inset 0 -1px 0 rgba(214, 223, 229, 0.78);
}

.market-overview-mortgage-history-table td {
  color: #173246;
  font-size: 0.76rem;
  font-weight: 800;
  background: rgba(255, 255, 255, 0.98);
}

.market-overview-mortgage-history-table th:nth-child(1),
.market-overview-mortgage-history-table td:nth-child(1) {
  width: 46%;
}

.market-overview-mortgage-history-table th:nth-child(2),
.market-overview-mortgage-history-table td:nth-child(2),
.market-overview-mortgage-history-table th:nth-child(3),
.market-overview-mortgage-history-table td:nth-child(3) {
  width: 27%;
  text-align: right;
}

.market-overview-mortgage-history-table th:first-child,
.market-overview-mortgage-history-table td:first-child {
  position: sticky;
  left: 0;
  z-index: 2;
  background: rgba(255, 255, 255, 0.99);
  box-shadow: 1px 0 0 rgba(214, 223, 229, 0.74);
}

.market-overview-mortgage-history-table th:first-child {
  z-index: 4;
  background: rgba(247, 250, 252, 0.99);
}

.market-overview-mortgage-history-bank-name {
  display: block;
  color: #173246;
  font-size: 0.74rem;
  font-weight: 900;
  line-height: 1.35;
  overflow-wrap: anywhere;
  word-break: keep-all;
}

.market-overview-mortgage-history-bank-meta {
  display: block;
  margin-top: 3px;
  color: #7a8b97;
  font-size: 0.58rem;
  font-weight: 900;
  line-height: 1.2;
}

.market-overview-mortgage-history-rate-delta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 4px;
  padding: 0 6px;
  min-height: 18px;
  border-radius: 999px;
  border: 1px solid rgba(193, 205, 214, 0.82);
  background: rgba(246, 249, 252, 0.96);
  color: #6f818f;
  font-size: 0.54rem;
  font-weight: 900;
  line-height: 1;
}

.market-overview-mortgage-history-rate-delta.tone-warning {
  color: #9a633e;
  border-color: rgba(217, 181, 116, 0.62);
  background: rgba(255, 248, 237, 0.98);
}

.market-overview-mortgage-history-rate-delta.tone-signal {
  color: #2f6e73;
  border-color: rgba(134, 192, 198, 0.62);
  background: rgba(239, 249, 249, 0.98);
}

.market-overview-mortgage-history-rate-delta.tone-stable {
  color: #6f818f;
  border-color: rgba(193, 205, 214, 0.82);
  background: rgba(246, 249, 252, 0.96);
}

.market-overview-mortgage-history-empty {
  color: #728390;
  font-size: 0.72rem;
  font-weight: 900;
  text-align: center !important;
  padding: 18px 10px !important;
  position: static !important;
  left: auto !important;
  box-shadow: none !important;
}

@media (max-width: 760px) {
  .market-overview-mortgage-history-table th,
  .market-overview-mortgage-history-table td {
    padding: 8px 7px;
  }

  .market-overview-mortgage-history-table th {
    font-size: 0.64rem;
  }

  .market-overview-mortgage-history-table td {
    font-size: 0.72rem;
  }

  .market-overview-mortgage-history-table th:nth-child(1),
  .market-overview-mortgage-history-table td:nth-child(1) {
    width: 42%;
  }

  .market-overview-mortgage-history-table th:nth-child(2),
  .market-overview-mortgage-history-table td:nth-child(2),
  .market-overview-mortgage-history-table th:nth-child(3),
  .market-overview-mortgage-history-table td:nth-child(3) {
    width: 29%;
  }

  .market-overview-mortgage-history-bank-name {
    font-size: 0.7rem;
  }

  .market-overview-mortgage-history-bank-meta {
    font-size: 0.54rem;
  }

  .market-overview-mortgage-history-rate-delta {
    min-height: 17px;
    padding: 0 5px;
    font-size: 0.5rem;
  }
}

.market-overview-table-wrap {
  display: none;
}

.market-overview-card-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.market-overview-sort-buttons {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.market-overview-sort-btn {
  width: 100%;
  min-height: 38px;
  padding: 8px 11px;
  border-radius: 14px;
}

.market-overview-sort-btn-label {
  font-size: 0.72rem;
  font-weight: 900;
}

.market-overview-district-card {
  width: 100%;
  text-align: left;
  display: grid;
  gap: 10px;
  padding: 14px;
  min-width: 0;
  align-content: start;
}

.market-overview-district-card.is-hot {
  border-color: var(--market-overview-district-card-hot-border);
  background: var(--market-overview-district-card-hot-bg);
}

.market-overview-district-card.is-permit {
  border-color: var(--market-overview-district-card-permit-border);
  background: var(--market-overview-district-card-permit-bg);
}

.market-overview-district-card.is-trade {
  border-color: var(--market-overview-district-card-trade-border);
  background: var(--market-overview-district-card-trade-bg);
}

.market-overview-district-card.is-selected {
  box-shadow: var(--market-overview-district-card-selected-shadow);
}

.market-overview-district-card-head,
.market-overview-district-card-title,
.market-overview-district-card-chips,
.market-overview-district-card-trend,
.market-overview-district-card-events,
.market-overview-district-card-events-head {
  display: grid;
  gap: 6px;
  min-width: 0;
}

.market-overview-district-card-head {
  grid-template-columns: minmax(0, 1fr) minmax(78px, auto);
  align-items: start;
  gap: 4px 8px;
  min-height: 74px;
}

.market-overview-district-card-title strong {
  color: var(--market-overview-district-card-title-color);
  font-size: 0.98rem;
  line-height: 1.25;
}

.market-overview-district-card-title span,
.market-overview-district-card-label,
.market-overview-district-card-events-head span {
  color: var(--market-overview-district-card-label-color);
  font-size: 0.68rem;
  font-weight: 900;
}

.market-overview-district-card-chips {
  display: grid;
  grid-template-rows: repeat(3, 22px);
  gap: 4px;
  justify-items: end;
  align-content: start;
  max-width: 100%;
  margin-left: auto;
}

.market-overview-card-chip-slot {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  min-width: 0;
  min-height: 22px;
}

.market-overview-card-chip-slot.is-empty {
  visibility: hidden;
}

.market-overview-card-chip-slot > * {
  max-width: 100%;
}

.market-overview-district-card-head .market-overview-theme-chip,
.market-overview-district-card-head .signal-evidence-badge.compact {
  max-width: 100%;
  min-height: 22px;
  padding: 0 7px;
  font-size: 0.61rem;
  letter-spacing: -0.01em;
  white-space: nowrap;
}

.market-overview-history-chart,
.market-overview-history-empty {
  display: grid;
  gap: 6px;
  padding: 10px 11px;
  border-radius: 14px;
  border: 1px solid var(--market-overview-history-shell-border);
  background: var(--market-overview-history-shell-bg);
}

.market-overview-history-chart-copy {
  display: grid;
  gap: 3px;
}

.market-overview-history-chart-copy strong,
.market-overview-history-empty strong,
.market-overview-district-card-events-head strong {
  color: var(--market-overview-history-title-color);
  font-size: 0.82rem;
}

.market-overview-history-chart-copy span,
.market-overview-history-empty span {
  color: var(--market-overview-history-copy-color);
  font-size: 0.66rem;
  font-weight: 800;
}

.market-overview-history-chart .market-overview-sparkline {
  width: 100%;
  height: 72px;
}

.market-overview-history-chart-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.market-overview-history-alert-badge {
  display: inline-flex;
  align-items: center;
  min-height: var(--market-overview-history-alert-badge-min-height);
  padding: var(--market-overview-history-alert-badge-padding);
  border-radius: 999px;
  border: 1px solid var(--market-overview-history-alert-badge-border);
  background: var(--market-overview-history-alert-badge-bg);
  color: var(--market-overview-history-alert-badge-color);
  font-size: var(--market-overview-history-alert-badge-font-size);
  font-weight: 900;
  white-space: nowrap;
}

.market-overview-history-alert-badge.tone-negative-rebound {
  border-color: var(--market-overview-history-alert-badge-rebound-border);
  background: var(--market-overview-history-alert-badge-rebound-bg);
  color: var(--market-overview-history-alert-badge-rebound-color);
}

.market-overview-history-alert-badge.tone-negative-zone {
  border-color: var(--market-overview-history-alert-badge-border);
  background: var(--market-overview-history-alert-badge-bg);
  color: var(--market-overview-history-alert-badge-color);
}

.market-overview-history-alert-badge.tone-soft-warning {
  border-color: var(--market-overview-history-alert-badge-warning-border);
  background: var(--market-overview-history-alert-badge-warning-bg);
  color: var(--market-overview-history-alert-badge-warning-color);
}

.market-overview-history-chart-copy > strong.is-negative-turn,
.market-overview-history-chart-copy > strong.is-negative-zone {
  color: var(--market-overview-history-copy-negative-zone);
}

.market-overview-history-chart-copy > strong.is-negative-rebound {
  color: var(--market-overview-history-copy-negative-rebound);
}

.market-overview-history-chart-copy > strong.is-soft-warning {
  color: var(--market-overview-history-copy-warning);
}

.market-overview-history-chart-figure {
  position: relative;
  padding-top: 8px;
}

.market-overview-history-chart-figure .market-overview-sparkline {
  height: 84px;
}

.market-overview-history-chart-labels {
  position: absolute;
  inset: 8px 0 0;
  pointer-events: none;
}

.market-overview-history-chart-pill {
  position: absolute;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: var(--market-overview-history-pill-min-height);
  padding: var(--market-overview-history-pill-padding);
  border-radius: 999px;
  background: var(--market-overview-history-pill-bg);
  border: 1px solid var(--market-overview-history-pill-border);
  box-shadow: var(--market-overview-history-pill-shadow);
  color: var(--market-overview-history-pill-color);
  font-size: var(--market-overview-history-pill-font-size);
  font-weight: 900;
  line-height: 1;
  white-space: nowrap;
  max-width: var(--market-overview-history-pill-max-width);
  overflow: hidden;
}

.market-overview-history-chart-pill.is-mid,
.market-overview-history-chart-pill.is-semantic,
.market-overview-history-chart-pill.is-entry {
  color: var(--market-overview-history-pill-mid-color);
  border-color: var(--market-overview-history-pill-mid-border);
}

.market-overview-history-chart-pill.is-latest {
  color: var(--market-overview-history-pill-latest-color);
  border-color: var(--market-overview-history-pill-latest-border);
}

.market-overview-history-chart-pill.is-latest.is-negative-turn,
.market-overview-history-chart-pill.tone-negative-zone {
  color: var(--market-overview-history-pill-negative-zone-color);
  border-color: var(--market-overview-history-pill-negative-zone-border);
  box-shadow: var(--market-overview-history-pill-negative-zone-shadow);
}

.market-overview-history-chart-pill.tone-negative-trough {
  color: var(--market-overview-history-pill-negative-trough-color);
  border-color: var(--market-overview-history-pill-negative-trough-border);
  background: var(--market-overview-history-pill-negative-trough-bg);
  box-shadow: var(--market-overview-history-pill-negative-trough-shadow);
}

.market-overview-history-chart-pill.tone-negative-rebound {
  color: var(--market-overview-history-pill-negative-rebound-color);
  border-color: var(--market-overview-history-pill-negative-rebound-border);
  background: var(--market-overview-history-pill-negative-rebound-bg);
  box-shadow: var(--market-overview-history-pill-negative-rebound-shadow);
}

.market-overview-history-chart-pill.tone-turning {
  color: var(--market-overview-history-pill-turning-color);
  border-color: var(--market-overview-history-pill-turning-border);
  background: var(--market-overview-history-pill-turning-bg);
}

.market-overview-history-chart-axis {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  align-items: start;
}

.market-overview-history-chart-axis-item {
  display: grid;
  gap: 1px;
  min-width: 0;
}

.market-overview-history-chart-axis-item small {
  color: var(--market-overview-history-axis-small-color);
  font-size: 0.52rem;
  font-weight: 900;
  line-height: 1.15;
}

.market-overview-history-chart-axis-item em {
  color: var(--market-overview-history-axis-copy-color);
  font-size: 0.58rem;
  font-style: normal;
  font-weight: 900;
  line-height: 1.2;
}

.market-overview-history-chart-axis-item strong {
  color: var(--market-overview-history-axis-strong-color);
  font-size: 0.65rem;
  font-weight: 900;
  line-height: 1.2;
}

.market-overview-history-chart-axis-item.is-mid {
  text-align: center;
}

.market-overview-history-chart-axis-item.is-latest {
  text-align: right;
}

.market-overview-history-chart-axis-item.is-latest.is-negative-turn strong,
.market-overview-history-chart-axis-item.tone-negative-zone strong {
  color: var(--market-overview-history-copy-negative-zone);
}

.market-overview-history-chart-axis-item.tone-negative-trough strong {
  color: var(--market-overview-history-pill-negative-trough-color);
}

.market-overview-history-chart-axis-item.tone-negative-rebound strong {
  color: var(--market-overview-history-pill-negative-rebound-color);
}

.market-overview-history-chart-axis-item.tone-turning strong {
  color: var(--market-overview-history-copy-warning);
}

.market-overview-history-chart-figure.is-e2 {
  padding-top: 2px;
}

.market-overview-axis-chart {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 320 / 190;
  overflow: visible;
}

.market-overview-axis-zone-positive {
  fill: rgba(241, 116, 70, 0.06);
}

.market-overview-axis-zone-negative {
  fill: rgba(78, 116, 213, 0.07);
}

.market-overview-axis-grid {
  stroke: rgba(198, 213, 222, 0.82);
  stroke-width: 1;
  stroke-dasharray: 4 5;
}

.market-overview-axis-grid.is-zero {
  stroke: rgba(88, 105, 119, 0.58);
  stroke-width: 1.4;
  stroke-dasharray: 0;
}

.market-overview-axis-line-y,
.market-overview-axis-line-x,
.market-overview-axis-x-tick {
  stroke: rgba(188, 204, 214, 0.92);
  stroke-width: 1;
}

.market-overview-axis-y-label,
.market-overview-axis-x-label {
  fill: #718493;
  font-size: 16px;
  font-weight: 900;
}

.market-overview-axis-y-label.is-zero {
  fill: #40586a;
}

.market-overview-axis-area {
  fill: rgba(239, 108, 62, 0.18);
}

.market-overview-axis-trend {
  fill: none;
  stroke: #ee6b3d;
  stroke-width: 6;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.market-overview-axis-point {
  fill: #ffffff;
  stroke: #ee6b3d;
  stroke-width: 4;
}

.market-overview-axis-chart.tone-soft-warning .market-overview-axis-area {
  fill: rgba(213, 119, 58, 0.15);
}

.market-overview-axis-chart.tone-soft-warning .market-overview-axis-trend,
.market-overview-axis-chart.tone-soft-warning .market-overview-axis-point {
  stroke: #bd6a36;
}

.market-overview-axis-chart.tone-negative-zone .market-overview-axis-area,
.market-overview-axis-chart.tone-negative-rebound .market-overview-axis-area {
  fill: rgba(86, 119, 214, 0.16);
}

.market-overview-axis-chart.tone-negative-zone .market-overview-axis-trend,
.market-overview-axis-chart.tone-negative-zone .market-overview-axis-point {
  stroke: #4f6fd9;
}

.market-overview-axis-chart.tone-negative-rebound .market-overview-axis-trend,
.market-overview-axis-chart.tone-negative-rebound .market-overview-axis-point {
  stroke: #6383e8;
}

.market-overview-axis-point.is-latest {
  fill: #ffffff;
  stroke-width: 5;
}

.market-overview-axis-value-guide {
  stroke: rgba(88, 105, 119, 0.28);
  stroke-width: 1.2;
  stroke-linecap: round;
}

.market-overview-axis-value-label {
  fill: #173246;
  font-size: 17px;
  font-weight: 900;
  letter-spacing: 0;
  paint-order: stroke;
  stroke: rgba(255, 255, 255, 0.96);
  stroke-linejoin: round;
  stroke-width: 5;
}

.market-overview-axis-value-label.tone-negative-zone,
.market-overview-axis-value-label.tone-negative-trough,
.market-overview-axis-value-label.tone-negative-rebound {
  fill: #4f6fd9;
}

.market-overview-axis-value-label.tone-turning {
  fill: #bd6a36;
}

.market-overview-price-insight-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px;
}

.market-overview-price-insight-chip {
  display: grid;
  gap: 2px;
  min-width: 0;
  padding: 7px 8px;
  border-radius: 11px;
  border: 1px solid rgba(211, 222, 228, 0.95);
  background: rgba(248, 251, 253, 0.92);
}

.market-overview-price-insight-chip em,
.market-overview-price-insight-chip small {
  overflow: hidden;
  color: #758795;
  font-style: normal;
  font-size: 0.53rem;
  font-weight: 900;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.market-overview-price-insight-chip strong {
  overflow: hidden;
  color: #173246;
  font-size: 0.7rem;
  font-weight: 900;
  line-height: 1.15;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.market-overview-price-insight-chip.is-recovery {
  border-color: rgba(169, 191, 235, 0.66);
  background: rgba(245, 248, 255, 0.96);
}

.market-overview-price-insight-chip.is-range {
  border-color: rgba(225, 183, 146, 0.64);
  background: rgba(255, 249, 244, 0.94);
}

.market-overview-district-event-summary {
  display: grid;
  gap: 7px;
  padding: 10px 11px;
  border-radius: 14px;
  border: 1px solid rgba(204, 216, 222, 0.96);
  background: rgba(255, 255, 255, 0.82);
}

.market-overview-district-event-summary-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  color: #718493;
  font-size: 0.58rem;
  font-weight: 900;
}

.market-overview-district-event-summary-meta strong {
  color: #365d79;
  font-size: 0.58rem;
}

.market-overview-district-event-summary-head,
.market-overview-district-event-summary-row {
  display: grid;
  grid-template-columns: minmax(34px, 0.86fr) repeat(3, minmax(28px, 0.78fr));
  gap: 6px;
  align-items: baseline;
}

.market-overview-district-event-summary-head span {
  color: #8392a0;
  font-size: 0.51rem;
  font-weight: 900;
  line-height: 1.1;
  text-align: right;
}

.market-overview-district-event-summary-head span:first-child {
  text-align: left;
}

.market-overview-district-event-summary-list {
  display: grid;
  gap: 8px;
}

.market-overview-district-event-summary-row {
  position: relative;
  padding-bottom: 10px;
}

.market-overview-district-event-summary-row span,
.market-overview-district-event-summary-row strong,
.market-overview-district-event-summary-row em {
  min-width: 0;
  overflow: hidden;
  color: #173246;
  font-size: 0.66rem;
  font-style: normal;
  font-weight: 900;
  line-height: 1.15;
  text-align: right;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.market-overview-district-event-summary-row .market-overview-district-event-summary-label {
  color: #667a88;
  text-align: left;
}

.market-overview-district-event-summary-row em {
  color: #718493;
}

.market-overview-district-event-summary-row.is-up em {
  color: #1f7d70;
}

.market-overview-district-event-summary-row.is-down em {
  color: #a15d49;
}

.market-overview-district-event-summary-bar {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 5px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(225, 232, 237, 0.92);
}

.market-overview-district-event-summary-bar i {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #4cc1b0, #a7eadb);
}

.market-overview-district-event-summary-row.tone-confirm .market-overview-district-event-summary-bar i {
  background: linear-gradient(90deg, #6f82e8, #b7c5ff);
}

.market-overview-district-event-summary-judgement {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 28px;
  padding: 5px 8px;
  border-radius: 999px;
  border: 1px solid rgba(214, 226, 233, 0.96);
  background: rgba(241, 247, 250, 0.88);
  color: #365d79;
  font-size: 0.62rem;
  font-weight: 900;
  line-height: 1.25;
  text-align: center;
}

.market-overview-district-event-grid {
  display: grid;
  gap: 7px;
  padding: 10px 11px;
  border-radius: 14px;
  border: 1px solid rgba(204, 216, 222, 0.96);
  background: rgba(255, 255, 255, 0.8);
}

.market-overview-district-event-meta {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  flex-wrap: wrap;
  color: #718493;
  font-size: 0.58rem;
  font-weight: 900;
}

.market-overview-district-event-delta-row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.market-overview-district-event-delta-chip {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding: 0 8px;
  border-radius: 999px;
  border: 1px solid rgba(203, 214, 224, 0.78);
  background: rgba(248, 251, 253, 0.96);
  color: #617988;
  font-size: 0.58rem;
  font-weight: 900;
}

.market-overview-district-event-delta-chip.tone-permit.is-up {
  color: #227f72;
  border-color: rgba(126, 186, 166, 0.48);
  background: rgba(236, 248, 243, 0.96);
}

.market-overview-district-event-delta-chip.tone-confirm.is-up {
  color: #4464d9;
  border-color: rgba(172, 188, 241, 0.62);
  background: rgba(240, 244, 255, 0.96);
}

.market-overview-district-event-delta-chip.is-down {
  color: #9a5a45;
  border-color: rgba(226, 172, 142, 0.52);
  background: rgba(255, 246, 242, 0.96);
}

.market-overview-district-event-delta-chip.is-flat {
  color: #728491;
  border-color: rgba(203, 214, 224, 0.7);
  background: rgba(247, 250, 252, 0.96);
}

.market-overview-district-event-lane {
  display: grid;
  gap: 5px;
}

.market-overview-district-event-lane.is-previous {
  opacity: 0.84;
}

.market-overview-pulse-row.previous .market-overview-pulse-bar {
  opacity: 0.7;
  filter: saturate(0.82);
}

.market-overview-district-event-lane-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
}

.market-overview-district-event-lane span {
  color: #728491;
  font-size: 0.64rem;
  font-weight: 900;
}

.market-overview-district-event-lane-head strong {
  color: #173246;
  font-size: 0.66rem;
  font-weight: 900;
}

.market-overview-district-card-copy {
  margin: 0;
  color: #466372;
  font-size: 0.76rem;
  line-height: 1.55;
  font-weight: 800;
  overflow-wrap: anywhere;
}

.favorite-activity-market-bar {
  gap: 10px;
}

.favorite-activity-priority-queue,
.favorite-activity-priority-list,
.favorite-activity-secondary-matrix-list {
  display: grid;
  gap: 10px;
}

.favorite-activity-priority-card summary,
.favorite-activity-secondary-matrix summary {
  cursor: pointer;
  list-style: none;
}

.favorite-activity-priority-card summary::-webkit-details-marker,
.favorite-activity-secondary-matrix summary::-webkit-details-marker {
  display: none;
}

.favorite-activity-priority-card summary {
  padding: 14px;
}

.favorite-activity-priority-main {
  display: grid;
  gap: 8px;
}

.favorite-activity-priority-head {
  display: flex;
  align-items: flex-start;
  gap: 10px;
}

.favorite-activity-priority-rank {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border-radius: 999px;
  background: rgba(224, 232, 236, 0.96);
  color: #3e5c6c;
  font-size: 0.76rem;
  font-weight: 900;
}

.favorite-activity-priority-copy {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.favorite-activity-priority-copy strong {
  color: #173246;
  font-size: 0.92rem;
}

.favorite-activity-priority-copy span,
.favorite-activity-priority-summary,
.favorite-activity-priority-macro {
  margin: 0;
  color: #5d7280;
  font-size: 0.74rem;
  line-height: 1.5;
  font-weight: 800;
}

.favorite-activity-priority-macro {
  color: #365d79;
}

.favorite-activity-priority-badges .favorite-activity-market-chip-row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.favorite-activity-priority-badges {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
}

.favorite-activity-priority-detail {
  padding: 0 14px 14px;
  border-top: 1px solid rgba(224, 232, 236, 0.92);
}

.favorite-activity-priority-actions {
  display: flex;
  justify-content: flex-end;
  margin-top: 10px;
}

.favorite-activity-priority-open-btn {
  min-height: 34px;
  padding: 0 12px;
  border: 1px solid rgba(173, 193, 205, 0.95);
  border-radius: 999px;
  background: rgba(250, 252, 253, 0.96);
  color: #21465e;
  font-size: 0.74rem;
  font-weight: 900;
}

.favorite-activity-secondary-matrix {
  padding: 12px 14px;
}

.favorite-activity-secondary-matrix summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.favorite-activity-secondary-matrix summary strong {
  color: #173246;
  font-size: 0.88rem;
}

.favorite-activity-secondary-matrix summary span {
  color: #6f8290;
  font-size: 0.72rem;
  font-weight: 800;
  text-align: right;
}

.favorite-activity-secondary-matrix-list {
  margin-top: 12px;
}

.favorite-activity-utility-box .favorite-activity-secondary-matrix-list {
  margin-top: 10px;
}

.favorite-activity-utility-box .favorite-activity-priority-queue {
  gap: 8px;
}

.favorite-activity-secondary-row {
  display: grid;
  gap: 8px;
  width: 100%;
  padding: 10px 11px;
  border-radius: 14px;
  border: 1px solid rgba(217, 226, 230, 0.94);
  background: rgba(255, 255, 255, 0.88);
  text-align: left;
}

.favorite-activity-secondary-copy {
  display: grid;
  gap: 3px;
}

.favorite-activity-secondary-copy strong {
  color: #173246;
  font-size: 0.82rem;
}

.favorite-activity-secondary-copy span {
  color: #6b7f8d;
  font-size: 0.71rem;
  font-weight: 800;
}

@media (max-width: 1080px) {
  .market-overview-key-rail,
  .market-overview-brief-card-grid,
  .market-overview-brief-drill-grid,
  .market-overview-context-strip,
  .market-overview-mortgage-card.expanded {
    grid-template-columns: 1fr;
  }

  .market-overview-brief-card-grid.detail {
    grid-template-columns: 1fr;
  }

  .market-overview-highlights-dialog {
    width: 100%;
    height: calc(100vh - 16px);
    max-height: calc(100vh - 16px);
  }

  .market-overview-card-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .market-overview-hub-action-chip,
  .market-overview-key-rail-action,
  .market-overview-section-link-btn,
  .market-overview-brief-open-link {
    min-height: 27px;
    padding: 0 9px;
    font-size: 0.68rem;
  }

  .market-overview-key-rail-head,
  .market-overview-brief-card-foot {
    align-items: flex-start;
    flex-direction: column;
  }

  .market-overview-hub-status-pill,
  .market-overview-key-rail,
  .market-overview-brief-card-grid,
  .market-overview-key-rail-item,
  .market-overview-brief-card,
  .market-overview-brief-drill-chip,
  .market-overview-source-accordion summary,
  .market-overview-source-accordion-body {
    padding: 10px 11px;
  }

  .market-overview-brief-drill-chip {
    min-height: 136px;
    gap: 9px;
  }

  .market-overview-brief-drill-chip-head strong {
    font-size: 0.94rem;
  }

  .market-overview-brief-drill-chip-copy {
    font-size: 0.74rem;
  }

  .market-overview-context-strip,
  .market-overview-mortgage-card,
  .market-overview-mortgage-card.expanded {
    grid-template-columns: 1fr;
  }

  .market-overview-mortgage-hero-summary {
    grid-template-columns: minmax(0, 1.28fr) minmax(136px, 0.92fr);
    gap: 10px;
  }

  .market-overview-mortgage-hero-side {
    gap: 7px;
  }

  .market-overview-mortgage-hero-figure strong {
    font-size: 1.44rem;
  }

  .market-overview-mortgage-today-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .market-overview-card-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }

  .market-overview-sort-btn {
    width: 100%;
    min-height: 34px;
    padding: 7px 9px;
  }

  .market-overview-sort-btn-label {
    font-size: 0.64rem;
  }

  .market-overview-district-card,
  .favorite-activity-priority-card summary,
  .favorite-activity-secondary-matrix {
    padding: 12px;
  }

  .market-overview-district-card-head {
    gap: 4px 6px;
    grid-template-columns: minmax(0, 1fr) minmax(68px, auto);
    min-height: 66px;
  }

  .market-overview-district-card-title strong {
    font-size: 0.94rem;
  }

  .market-overview-district-card-title span {
    font-size: 0.62rem;
  }

  .market-overview-district-card-chips {
    grid-template-rows: repeat(3, 20px);
    gap: 3px;
  }

  .market-overview-card-chip-slot {
    min-height: 20px;
  }

  .market-overview-district-card-head .market-overview-theme-chip,
  .market-overview-district-card-head .signal-evidence-badge.compact {
    min-height: 20px;
    padding: 0 6px;
    font-size: 0.56rem;
  }

  .market-overview-context-main,
  .market-overview-context-side,
  .market-overview-context-accordion,
  .market-overview-context-district-card {
    padding: 12px;
  }

  .market-overview-context-district-head {
    align-items: stretch;
    flex-direction: column;
  }

  .market-overview-context-select-wrap {
    width: 100%;
    min-width: 0;
    justify-items: stretch;
  }

  .market-overview-context-details .market-overview-today-cards {
    grid-template-columns: 1fr;
  }

  .market-overview-context-details {
    gap: 8px;
  }

  .market-overview-context-details-copy p {
    font-size: 0.72rem;
  }

  .market-overview-brief-source {
    padding: 9px 10px;
  }

  .market-overview-brief-source small {
    display: none;
  }

  .market-overview-mortgage-highlight-chip {
    min-height: 28px;
    padding: 5px 8px;
  }

  .market-overview-mortgage-highlight-chip em {
    font-size: 0.53rem;
  }

  .market-overview-mortgage-highlight-chip strong {
    font-size: 0.64rem;
  }

  .market-overview-mortgage-flow-head {
    flex-direction: column;
    align-items: flex-start;
    gap: 3px;
  }

  .market-overview-mortgage-chart-shell {
    padding: 22px 8px 9px;
  }

  .market-overview-mortgage-range,
  .market-overview-mortgage-current-callout,
  .market-overview-mortgage-axis span {
    font-size: 0.56rem;
  }

  .market-overview-history-chart-pill {
    min-height: 22px;
    padding: 0 7px;
    font-size: 0.57rem;
  }

  .market-overview-history-alert-badge {
    min-height: 20px;
    padding: 0 7px;
    font-size: 0.52rem;
  }

  .market-overview-history-chart,
  .market-overview-history-empty {
    gap: 5px;
    padding: 8px 8px;
    border-radius: 12px;
  }

  .market-overview-history-chart-copy {
    gap: 2px;
  }

  .market-overview-history-chart-copy strong,
  .market-overview-history-empty strong {
    font-size: 0.74rem;
  }

  .market-overview-history-chart-copy span,
  .market-overview-history-empty span {
    font-size: 0.56rem;
    line-height: 1.25;
  }

  .market-overview-axis-y-label,
  .market-overview-axis-x-label {
    font-size: 16px;
  }

  .market-overview-axis-trend {
    stroke-width: 7;
  }

  .market-overview-axis-value-guide {
    stroke-width: 1;
  }

  .market-overview-axis-value-label {
    font-size: 15px;
    stroke-width: 4;
  }

  .market-overview-price-insight-grid {
    grid-template-columns: 1fr;
    gap: 4px;
  }

  .market-overview-price-insight-chip {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 1px 6px;
    padding: 5px 6px;
    border-radius: 9px;
  }

  .market-overview-price-insight-chip em,
  .market-overview-price-insight-chip small {
    font-size: 0.48rem;
  }

  .market-overview-price-insight-chip strong {
    grid-row: 1 / span 2;
    grid-column: 2;
    align-self: center;
    font-size: 0.62rem;
    text-align: right;
  }

  .market-overview-history-chart-axis {
    gap: 6px;
  }

  .market-overview-history-chart-axis-item small {
    font-size: 0.47rem;
  }

  .market-overview-history-chart-axis-item em {
    font-size: 0.53rem;
  }

  .market-overview-history-chart-axis-item strong {
    font-size: 0.6rem;
  }

  .market-overview-district-event-summary {
    gap: 6px;
    padding: 8px 8px;
    border-radius: 12px;
  }

  .market-overview-district-event-summary-meta {
    font-size: 0.51rem;
  }

  .market-overview-district-event-summary-meta strong {
    font-size: 0.51rem;
  }

  .market-overview-district-event-summary-head,
  .market-overview-district-event-summary-row {
    grid-template-columns: minmax(30px, 0.9fr) repeat(3, minmax(24px, 0.72fr));
    gap: 4px;
  }

  .market-overview-district-event-summary-head span {
    font-size: 0.46rem;
  }

  .market-overview-district-event-summary-row span,
  .market-overview-district-event-summary-row strong,
  .market-overview-district-event-summary-row em {
    font-size: 0.58rem;
  }

  .market-overview-district-event-summary-judgement {
    min-height: 25px;
    padding: 4px 6px;
    font-size: 0.53rem;
  }

  .market-overview-district-card-copy {
    font-size: 0.64rem;
    line-height: 1.35;
  }

  .market-overview-grouped-summary {
    gap: 6px;
  }

  .market-overview-grouped-summary span {
    min-height: 22px;
    padding: 0 8px;
    font-size: 0.63rem;
  }

  .market-overview-grouped-timeline-track {
    gap: 6px;
    min-height: 128px;
  }

  .market-overview-grouped-timeline-bars {
    min-height: 104px;
    padding: var(--market-overview-grouped-bars-mobile-padding);
  }

  .market-overview-grouped-timeline-group em {
    min-height: 20px;
    font-size: 0.54rem;
  }

  .market-overview-today-card.is-compact {
    padding: 9px 10px;
  }

  .market-overview-today-card.is-compact strong {
    font-size: 0.88rem;
  }

  .market-overview-today-card-meta {
    font-size: 0.64rem;
  }

  .favorite-activity-priority-detail {
    padding: 0 12px 12px;
  }

  .favorite-activity-secondary-matrix summary {
    align-items: flex-start;
    flex-direction: column;
  }
}

@media (max-width: 420px) {
  .market-overview-mortgage-hero-summary {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 390px) {
  .market-overview-card-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px;
  }

  .market-overview-district-card {
    gap: 8px;
    padding: 9px;
    border-radius: 16px;
  }

  .market-overview-district-card-head {
    grid-template-columns: minmax(0, 1fr) minmax(66px, auto);
    min-height: 66px;
  }

  .market-overview-district-card-chips {
    justify-items: end;
    max-width: 100%;
    margin-left: auto;
  }

  .market-overview-district-card-title strong {
    font-size: 0.86rem;
  }

  .market-overview-district-card-title span,
  .market-overview-district-card-label,
  .market-overview-district-card-events-head span {
    font-size: 0.56rem;
  }

  .market-overview-history-chart,
  .market-overview-history-empty,
  .market-overview-district-event-summary {
    padding: 7px;
    border-radius: 11px;
  }

  .market-overview-axis-y-label,
  .market-overview-axis-x-label {
    font-size: 18px;
  }

  .market-overview-axis-value-label {
    font-size: 14px;
    stroke-width: 4;
  }

  .market-overview-price-insight-chip {
    padding: 5px;
  }

  .market-overview-price-insight-chip em,
  .market-overview-price-insight-chip small {
    font-size: 0.45rem;
  }

  .market-overview-price-insight-chip strong {
    font-size: 0.58rem;
  }

  .market-overview-history-chart-axis {
    gap: 4px;
  }

  .market-overview-history-chart-axis-item small {
    font-size: 0.43rem;
  }

  .market-overview-history-chart-axis-item em {
    font-size: 0.49rem;
  }

  .market-overview-history-chart-axis-item strong {
    font-size: 0.55rem;
  }

  .market-overview-district-event-summary-head,
  .market-overview-district-event-summary-row {
    grid-template-columns: minmax(27px, 0.9fr) repeat(3, minmax(22px, 0.7fr));
    gap: 3px;
  }

  .market-overview-district-event-summary-row span,
  .market-overview-district-event-summary-row strong,
  .market-overview-district-event-summary-row em {
    font-size: 0.54rem;
  }

  .market-overview-district-event-summary-judgement {
    font-size: 0.5rem;
  }

  .market-overview-district-card-copy {
    font-size: 0.58rem;
  }
}

@media (max-width: 980px) {
  .favorite-negotiation-hero {
    grid-template-columns: minmax(0, 1fr);
  }

  .favorite-negotiation-score-panel {
    min-width: 0;
    width: 100%;
  }

  .favorite-negotiation-reason-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .favorite-negotiation-detail-reason-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .favorite-negotiation-offer-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .favorite-negotiation-offer-card.is-target,
  .favorite-negotiation-offer-card.is-no_chase {
    grid-column: 1 / -1;
  }
}

@media (max-width: 768px) {
  .favorite-negotiation-card {
    gap: 9px;
    padding: 11px;
    border-radius: 18px;
  }

  .favorite-negotiation-card::before {
    left: 12px;
    right: 12px;
  }

  .favorite-negotiation-hero-main {
    gap: 7px;
  }

  .favorite-negotiation-card-head-main {
    align-items: flex-start;
    gap: 10px;
  }

  .favorite-negotiation-rank {
    width: 32px;
    height: 32px;
    font-size: 0.7rem;
  }

  .favorite-negotiation-title-row strong {
    font-size: 0.9rem;
  }

  .favorite-negotiation-title-block > span,
  .favorite-negotiation-title-block small {
    font-size: 0.65rem;
  }

  .favorite-negotiation-score-panel {
    gap: 7px;
    padding: 11px 12px 10px;
  }

  .favorite-negotiation-score-value-row strong {
    font-size: 1.58rem;
  }

  .favorite-negotiation-score-panel.is-withheld .favorite-negotiation-score-value-row strong {
    font-size: 1.18rem;
  }

  .favorite-negotiation-score-caption {
    font-size: 0.58rem;
  }

  .favorite-negotiation-score-factors li:nth-child(n + 3) {
    display: none;
  }

  .favorite-negotiation-action-card {
    padding: 10px 11px;
  }

  .favorite-negotiation-action-line {
    font-size: 0.75rem;
  }

  .favorite-negotiation-action-detail {
    font-size: 0.61rem;
    line-height: 1.4;
    -webkit-line-clamp: 2;
  }

  .favorite-negotiation-pyeong-chip {
    padding: 9px 8px 8px;
  }

  .favorite-negotiation-pyeong-chip strong {
    font-size: 0.69rem;
  }

  .favorite-negotiation-pyeong-meta-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .favorite-negotiation-pyeong-meta-item {
    padding: 9px 10px;
  }

  .favorite-negotiation-pyeong-meta-item:nth-child(2n + 1) {
    border-left: 0;
  }

  .favorite-negotiation-pyeong-meta-item:nth-child(n + 3) {
    border-top: 1px solid var(--neg-divider);
  }

  .favorite-negotiation-offer-panel,
  .favorite-negotiation-band-panel {
    padding: 10px 11px 12px;
  }

  .favorite-negotiation-offer-grid {
    gap: 6px;
  }

  .favorite-negotiation-offer-card {
    padding: 9px 9px 8px;
  }

  .favorite-negotiation-offer-card.is-target {
    padding: 11px 12px;
  }

  .favorite-negotiation-offer-card strong {
    font-size: 0.92rem;
  }

  .favorite-negotiation-offer-card.is-target strong {
    font-size: 1.16rem;
  }

  .favorite-negotiation-band-track {
    min-height: 146px;
    padding-bottom: 11px;
  }

  .favorite-negotiation-band-track::before {
    top: 68px;
  }

  .favorite-negotiation-band-range {
    top: 61px;
  }

  .favorite-negotiation-band-marker,
  .favorite-negotiation-band-cluster {
    top: 69px;
  }

  .favorite-negotiation-band-marker[data-rail="top"] .favorite-negotiation-band-marker-label {
    transform: translateX(-50%) translateY(calc(var(--lane, 0) * -28px));
  }

  .favorite-negotiation-band-marker[data-rail="bottom"] .favorite-negotiation-band-marker-label {
    transform: translateX(-50%) translateY(calc(var(--lane, 0) * 24px));
  }

  .favorite-negotiation-band-marker-label,
  .favorite-negotiation-band-cluster-label {
    min-width: 42px;
  }

  .favorite-negotiation-band-marker b,
  .favorite-negotiation-band-cluster-label b {
    font-size: 0.51rem;
  }

  .favorite-negotiation-band-marker small,
  .favorite-negotiation-band-cluster-label small {
    font-size: 0.58rem;
  }

  .favorite-negotiation-band-interpretation {
    font-size: 0.62rem;
  }

  .favorite-negotiation-band-reference-summary {
    gap: 6px;
  }

  .favorite-negotiation-band-reference-summary span {
    min-width: 64px;
  }

  .favorite-negotiation-band-reference-summary strong {
    font-size: 0.72rem;
  }

  .favorite-negotiation-band-track.is-compact {
    min-height: 78px;
    padding-bottom: 8px;
  }

  .favorite-negotiation-band-track.is-compact::before {
    top: 40px;
  }

  .favorite-negotiation-band-track.is-compact .favorite-negotiation-band-marker {
    top: 41px;
  }

  .favorite-negotiation-band-track.is-compact .favorite-negotiation-band-marker-label {
    min-width: 38px;
  }

  .favorite-negotiation-card-meta,
  .favorite-negotiation-card-actions {
    gap: 6px;
  }

  .favorite-negotiation-detail-toggle,
  .favorite-negotiation-open-btn {
    min-height: 34px;
    padding: 7px 11px;
    font-size: 0.64rem;
  }
}
