.pv-view-area,
    .pv-view-area .table,
    .pv-view-area .table th,
    .pv-view-area .table td,
    .pv-view-area .badge,
    .pv-view-area .btn,
    .pv-view-area .fs-13,
    .pv-view-area .fs-12 { font-size: 12px !important; }
    .pv-title-text { line-height: 1.35; word-break: keep-all; overflow-wrap: anywhere; }
    .pv-address-text { white-space: normal; line-height: 1.45; }
    .pv-fixed-font { font-family: Consolas, "Courier New", monospace !important; }
    .pv-map-box { min-height: 320px; border-radius: 0.75rem; overflow: hidden; border: 1px dashed var(--bs-border-color); }
    .pv-map-empty { min-height: 320px; display: flex; align-items: center; justify-content: center; text-align: center; border: 1px dashed var(--bs-border-color); border-radius: 0.75rem; color: var(--bs-secondary-color); background-color: rgba(0,0,0,0.02); }
    .pv-top-panel-card { height: auto !important; min-height: 0 !important; margin-bottom: 0; }
    .pv-top-panel-card > .card-body { padding: 1rem 1.25rem !important; }
    .pv-summary-item { border: 1px dashed var(--bs-border-color); border-radius: 0.75rem; padding: 1rem; height: 100%; background-color: rgba(0,0,0,0.015); }
    .pv-near-branch-card { border-radius: 0.85rem; padding: 0.9rem 1rem; transition: transform .15s ease, box-shadow .15s ease; }
    .pv-near-branch-card:hover { transform: translateY(-1px); box-shadow: 0 0.35rem 0.9rem rgba(0,0,0,0.08); }
    .pv-summary-item .label { color: var(--bs-secondary-color); font-size: 12px; margin-bottom: 0.45rem; }
    .pv-summary-item .value { font-size: 18px; font-weight: 600; line-height: 1.2; }
    .pv-chart-box { min-height: 360px; position: relative; isolation: isolate; }
    .pv-chart-box .pv-pyeong-trend-layer { position: absolute; top: 0; left: 0; right: 0; width: 100%; height: 360px; pointer-events: none; z-index: 2; overflow: visible; }
    .pv-chart-box .apexcharts-canvas { position: relative; z-index: 3; }
    .pv-chart-box .apexcharts-tooltip { z-index: 9999 !important; }
    .pv-chart-box .apexcharts-xaxistooltip,
    .pv-chart-box .apexcharts-yaxistooltip { display: none !important; }
    .pv-volume-chart-wrap { border-top: 1px dashed var(--bs-border-color); padding-top: 0.85rem; }
    .pv-volume-chart-box { min-height: 130px; }
    .pv-chart-empty { border: 1px dashed var(--bs-border-color); border-radius: 0.75rem; padding: 2rem 1rem; text-align: center; color: var(--bs-secondary-color); }
    .pv-boxplot-help { border: 1px dashed rgba(var(--primary-rgb), 0.55); border-radius: 0.85rem; padding: 1rem; background-color: rgba(var(--primary-rgb), 0.035); }
    .pv-boxplot-help-title { font-size: 13px; font-weight: 700; color: var(--primary-color); margin-bottom: 0.45rem; }
    .pv-boxplot-help-text { font-size: 12px; color: var(--bs-secondary-color); line-height: 1.65; word-break: keep-all; }
    .pv-boxplot-sample { width: 110px; height: 132px; position: relative; flex: 0 0 110px; border-radius: 0.75rem; background: rgba(255,255,255,0.55); border: 1px solid rgba(var(--primary-rgb), 0.14); }
    .pv-boxplot-sample .pv-sample-grid { position: absolute; left: 14px; right: 14px; border-top: 1px dashed rgba(0,0,0,0.10); }
    .pv-boxplot-sample .pv-sample-line { position: absolute; left: 53px; top: 17px; width: 2px; height: 96px; background: rgba(33,37,41,0.65); }
    .pv-boxplot-sample .pv-sample-cap-top { position: absolute; left: 36px; top: 16px; width: 36px; border-top: 2px solid rgba(33,37,41,0.75); }
    .pv-boxplot-sample .pv-sample-cap-bottom { position: absolute; left: 36px; top: 112px; width: 36px; border-top: 2px solid rgba(33,37,41,0.75); }
    .pv-boxplot-sample .pv-sample-box { position: absolute; left: 26px; top: 42px; width: 58px; height: 48px; border: 2px solid rgba(var(--primary-rgb), 0.85); background: rgba(var(--primary-rgb), 0.22); border-radius: 3px; }
    .pv-boxplot-sample .pv-sample-median { position: absolute; left: 26px; top: 64px; width: 58px; border-top: 2px solid rgba(33,37,41,0.8); }
    .pv-boxplot-help .pv-legend-item { display: flex; align-items: center; gap: 0.35rem; min-width: 115px; }
    .pv-boxplot-help .pv-legend-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--primary-color); opacity: .78; flex: 0 0 8px; }
    .pv-boxplot-help .pv-legend-line { width: 24px; height: 0; border-top: 2px solid var(--bs-warning); border-radius: 999px; flex: 0 0 24px; }
    .pv-boxplot-help .pv-legend-ma3 { border-color: var(--bs-warning); }
    .pv-boxplot-help .pv-legend-ma6 { border-color: var(--bs-success); }
    .pv-boxplot-help .pv-legend-ma12 { border-color: var(--bs-info); }
    .pv-trend-decision-card { border: 1px dashed rgba(var(--primary-rgb), 0.38); border-radius: 0.95rem; padding: 1rem; background: linear-gradient(180deg, rgba(var(--primary-rgb), 0.035), rgba(255,255,255,0.02)); }
    .pv-trend-decision-card.is-up { border-color: rgba(var(--bs-success-rgb), 0.42); background: linear-gradient(180deg, rgba(var(--bs-success-rgb), 0.07), rgba(255,255,255,0.02)); }
    .pv-trend-decision-card.is-flat { border-color: rgba(var(--bs-warning-rgb), 0.44); background: linear-gradient(180deg, rgba(var(--bs-warning-rgb), 0.08), rgba(255,255,255,0.02)); }
    .pv-trend-decision-card.is-down { border-color: rgba(var(--bs-danger-rgb), 0.38); background: linear-gradient(180deg, rgba(var(--bs-danger-rgb), 0.06), rgba(255,255,255,0.02)); }
    .pv-trend-decision-eyebrow { font-size: 11px; font-weight: 700; letter-spacing: -0.01em; color: var(--bs-secondary-color); }
    .pv-trend-decision-title { font-size: 17px; font-weight: 800; line-height: 1.25; word-break: keep-all; }
    .pv-trend-decision-desc { font-size: 12px; color: var(--bs-secondary-color); line-height: 1.65; word-break: keep-all; }
    .pv-trend-metric-card { border: 1px solid var(--bs-border-color); border-radius: 0.8rem; padding: 0.75rem 0.85rem; background: var(--bs-body-bg); height: 100%; }
    .pv-trend-metric-card .label { font-size: 11px; color: var(--bs-secondary-color); margin-bottom: 0.35rem; }
    .pv-trend-metric-card .value { font-size: 15px; font-weight: 800; line-height: 1.2; }
    .pv-trend-metric-card .sub { font-size: 11px; color: var(--bs-secondary-color); line-height: 1.45; margin-top: 0.25rem; }
    .pv-trend-case-card { border: 1px dashed var(--bs-border-color); border-radius: 0.8rem; padding: 0.75rem 0.85rem; background-color: rgba(0,0,0,0.012); height: 100%; }
    .pv-trend-case-card .case-title { font-size: 12px; font-weight: 800; margin-bottom: 0.25rem; }
    .pv-trend-case-card .case-text { font-size: 11px; color: var(--bs-secondary-color); line-height: 1.55; word-break: keep-all; }
    .pv-trend-reference-box { border-radius: 0.75rem; padding: 0.72rem 0.85rem; background: rgba(var(--bs-warning-rgb), 0.09); border: 1px solid rgba(var(--bs-warning-rgb), 0.28); color: var(--bs-secondary-color); font-size: 11px; line-height: 1.55; word-break: keep-all; }
    .pv-price-area-filter { border: 0; border-bottom: 1px solid var(--bs-border-color); border-radius: 0; padding: 0; background: transparent; overflow-x: auto; overflow-y: hidden; -webkit-overflow-scrolling: touch; }
    .pv-price-area-filter .nav { gap: 1.75rem; flex-wrap: nowrap !important; min-width: max-content; }
    .pv-price-area-filter .nav-item { margin-bottom: -1px; }
    .pv-price-area-filter .nav-link { position: relative; border: 0 !important; border-radius: 0 !important; background: transparent !important; color: var(--bs-body-color); padding: 0.78rem 0 0.72rem; font-size: 13px !important; font-weight: 800; line-height: 1.2; white-space: nowrap; box-shadow: none !important; }
    .pv-price-area-filter .nav-link:hover,
    .pv-price-area-filter .nav-link:focus { color: var(--primary-color); }
    .pv-price-area-filter .nav-link::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 3px; border-radius: 999px 999px 0 0; background: transparent; }
    .pv-price-area-filter .nav-link.active { color: var(--primary-color) !important; }
    .pv-price-area-filter .nav-link.active::after { background: var(--primary-color); }
    .pv-price-table-wrap { overflow-x: visible !important; }
    .pv-price-table-wrap .table { min-width: 0 !important; }
    .pv-merge-table { width: 100% !important; table-layout: fixed; border: 3px solid rgba(var(--primary-rgb), 0.55) !important; }
    .pv-merge-table th { white-space: normal !important; vertical-align: middle; background-color: rgba(var(--primary-rgb), 0.09); line-height: 1.22; word-break: keep-all; overflow-wrap: anywhere; padding: 0.36rem 0.24rem !important; font-size: 11px !important; letter-spacing: -0.02em; }
    .pv-merge-table td { vertical-align: middle; white-space: normal; line-height: 1.25; padding: 0.34rem 0.24rem !important; }
    .pv-merge-table .pv-price-col-month { width: 10%; }
    .pv-merge-table .pv-price-col-count { width: 7%; }
    .pv-merge-table .pv-price-col-price { width: 10%; }
    .pv-merge-table .pv-price-col-rate { width: 9%; }
    .pv-view-area .table.pv-merge-table > tbody > tr > td,
    .pv-view-area .table.pv-merge-table > tbody > tr > td.pv-stat-number,
    .pv-view-area .pv-merge-table tbody td,
    .pv-view-area .pv-merge-table tbody td * {
        font-size: 13px !important;
    }
    .pv-merge-table thead tr:last-child th,
    .pv-merge-table thead th[rowspan] { border-bottom: 3px solid rgba(var(--primary-rgb), 0.55) !important; }
    .pv-merge-table .pv-group-divider-right { border-right: 2px solid rgba(var(--primary-rgb), 0.55) !important; }
    .pv-merge-table .pv-group-divider-left { border-left: 2px solid rgba(var(--primary-rgb), 0.55) !important; }
    .pv-merge-table .pv-yearmonth-cell { text-align: center !important; vertical-align: middle !important; color: var(--primary-color) !important; background-color: rgba(var(--primary-rgb), 0.06); }
    .pv-trade-text { min-width: 260px; max-width: 620px; white-space: normal; word-break: keep-all; overflow-wrap: anywhere; }
    .pv-stat-number { font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-variant-numeric: tabular-nums; }
    .pv-nearby-tab-card .card-body { padding: 1rem !important; }
    .pv-nearby-tab-card .nav.nav-style-3 { gap: 0.35rem; flex-wrap: wrap; }
    .pv-nearby-tab-card .nav.nav-style-3 .nav-link { padding: 0.42rem 0.7rem; font-weight: 600; }
    .pv-nearby-list { border: 1px solid var(--bs-border-color); border-radius: 0.75rem; overflow: hidden; background: var(--bs-body-bg); }
    .pv-nearby-list-item { padding: 0.78rem 0.85rem; border-bottom: 1px solid var(--bs-border-color); color: inherit; transition: background-color .15s ease, transform .15s ease; }
    .pv-nearby-list-item:last-child { border-bottom: 0; }
    .pv-nearby-list-item:hover { background-color: rgba(var(--primary-rgb), 0.035); transform: translateY(-1px); }
    .pv-nearby-rank { width: 28px; height: 28px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; flex: 0 0 28px; font-size: 11px; font-weight: 700; background-color: rgba(var(--primary-rgb), 0.08); color: var(--primary-color); }
    .pv-nearby-title { line-height: 1.35; word-break: keep-all; overflow-wrap: anywhere; }
    .pv-nearby-address { line-height: 1.45; word-break: keep-all; overflow-wrap: anywhere; }
    .pv-nearby-filter-empty { border: 1px dashed var(--bs-border-color); border-radius: 0.75rem; padding: 1.25rem 1rem; text-align: center; color: var(--bs-secondary-color); }
    .pv-nearby-pagination-wrap { display: flex; justify-content: center; margin-top: 0.85rem; }
    .pv-nearby-pagination-wrap .pagination { margin-bottom: 0; flex-wrap: wrap; justify-content: center; }
    .pv-nearby-pagination-wrap .page-link { padding: 0.3rem 0.55rem; font-size: 12px; }

    /* 데스크톱에서는 default.asp와 동일하게 일반 좌측 메뉴 폭/라벨을 유지합니다. */
    @media (min-width: 992px) {
        .app-sidebar .side-menu__label,
        .app-sidebar .side-menu__item .side-menu__label,
        .app-sidebar .main-menu-label,
        .app-sidebar .category-name {
            display: inline-block !important;
            opacity: 1 !important;
            visibility: visible !important;
            width: auto !important;
        }
        html[data-toggled^="icon"] .app-sidebar,
        html[data-toggled*="icon"] .app-sidebar {
            width: 15rem !important;
        }
    }

    /* 모바일/태블릿에서는 default.asp처럼 최초 진입 시 좌측 메뉴를 닫고 본문을 전체 폭으로 표시합니다. */
    @media (max-width: 991.98px) {
        html:not([data-toggled="open"]) .app-sidebar,
        html:not([data-toggled="open"]) .main-sidebar,
        html:not([data-toggled="open"]) aside.app-sidebar {
            transform: translateX(-100%) !important;
            visibility: hidden !important;
        }
        html:not([data-toggled="open"]) .app-content,
        html:not([data-toggled="open"]) .main-content,
        html:not([data-toggled="open"]) .page,
        html:not([data-toggled="open"]) .page-body,
        html:not([data-toggled="open"]) .app-header {
            margin-left: 0 !important;
            margin-right: 0 !important;
            margin-inline-start: 0 !important;
            margin-inline-end: 0 !important;
        }
        html:not([data-toggled="open"]) .main-content.app-content {
            width: 100% !important;
        }
    }

.pv-lazy-loading {
    border: 1px dashed var(--bs-border-color);
    border-radius: 0.75rem;
    padding: 1.25rem 1rem;
    text-align: center;
    color: var(--bs-secondary-color);
    background: rgba(0,0,0,0.012);
}
