           SCALE SIMULATOR — Targeted Input Normalization
           Uses ancestor IDs to override inline styles on form inputs,
           bringing them in line with the design system without HTML edits.
           ================================================================ */

        /* All number/text inputs inside simulator card sections */
        #scale-donation input[type="number"],
        #scale-donation select,
        #scale-height-incentive input[type="number"],
        #scale-prenegotiation input[type="number"],
        #scale-prenegotiation select,
        #scale-station-area input[type="number"],
        #scale-simulator input[type="number"],
        #scale-simulator input[type="text"],
        #scale-simulator select,
        #scale-land-info select {
            background: var(--bg-input) !important;
            border: 1px solid var(--border-color) !important;
            border-radius: var(--radius-sm) !important;
            font-family: inherit !important;
            transition: border-color 0.2s ease, box-shadow 0.2s ease !important;
            box-shadow: inset 0 1px 3px rgba(0,0,0,0.04) !important;
            outline: none !important;
            color: var(--text-primary) !important;
        }
        #scale-donation input[type="number"]:focus,
        #scale-donation select:focus,
        #scale-height-incentive input[type="number"]:focus,
        #scale-prenegotiation input[type="number"]:focus,
        #scale-prenegotiation select:focus,
        #scale-station-area input[type="number"]:focus,
        #scale-simulator input[type="number"]:focus,
        #scale-simulator input[type="text"]:focus,
        #scale-simulator select:focus {
            border-color: var(--primary-500) !important;
            box-shadow: 0 0 0 3px rgba(59,130,246,0.14), inset 0 1px 3px rgba(0,0,0,0.04) !important;
        }
        /* Block map radius select */
        #scale-block-radius {
            background: var(--bg-input) !important;
            border-radius: var(--radius-sm) !important;
            font-family: inherit !important;
            transition: border-color 0.2s, box-shadow 0.2s !important;
        }
        #scale-block-radius:focus {
            border-color: var(--primary-500) !important;
            box-shadow: 0 0 0 3px rgba(59,130,246,0.14) !important;
            outline: none !important;
        }

        /* Result header chevron auto-rotate */
        .result-header .fa-chevron-down {
            transition: transform 0.22s ease;
            color: var(--neutral-400);
        }
        .result-header.open .fa-chevron-down { transform: rotate(180deg); }

        /* Scale simulator sub-block map container */
        #scale-block-side-panel {
            background: var(--bg-card) !important;
            border-left: 1px solid var(--border-color) !important;
        }
        /* Scale block summary info-note style */
        #scale-block-summary {
            background: var(--primary-50) !important;
            border: 1px solid var(--primary-200) !important;
            border-radius: var(--radius) !important;
            animation: fadeSlideIn 0.25s ease-out;
        }
        [data-theme="dark"] #scale-block-summary {
            background: rgba(37,99,235,0.1) !important;
            border-color: rgba(37,99,235,0.25) !important;
        }

        /* Scale mode segment buttons (existing .btn class; JS controls inline bg) */
        #scale-mode-single,
        #scale-mode-block {
            border-radius: var(--radius-sm) !important;
            font-weight: 500 !important;
            transition: background 0.15s, color 0.15s, box-shadow 0.15s !important;
        }

        /* Download bar buttons — ensure consistent height */
        .download-bar .btn { min-height: 44px; }

        /* Reanalysis section inside chat-input-wrap */
        .chat-input-wrap .radio-pill { font-size: 12px; padding: 6px 12px; }

        /* ================================================================
           MISCELLANEOUS POLISH — Items found during review
           ================================================================ */

        /* Card title consistent weight + spacing */
        .card-title {
            letter-spacing: -0.01em;
        }

        /* Building grid rows — bottom border as divider */
        .building-row {
            border-bottom: 1px solid var(--border-color);
        }
        .building-row:last-child { border-bottom: none; }

        /* District item hover */
        .district-item {
            transition: background 0.15s, transform 0.15s;
        }
        .district-item:hover { transform: translateY(-1px); }

        /* Law reference card header */
        .law-reference-card {
            backdrop-filter: var(--glass-blur);
            -webkit-backdrop-filter: var(--glass-blur);
        }

        /* Floating chat focus-within highlight */
        .floating-chat:focus-within {
            border-color: var(--primary-300);
            box-shadow: var(--shadow-lg), 0 0 0 3px rgba(59,130,246,0.1);
        }

        /* Header logo hover */
        .logo:hover .logo-icon {
            box-shadow: 0 4px 12px rgba(37,99,235,0.3);
            transform: scale(1.05);
            transition: transform 0.2s, box-shadow 0.2s;
        }
        .logo-icon { transition: transform 0.2s, box-shadow 0.2s; }

        /* Scrollbar for block map side panel */
        #scale-block-side-panel::-webkit-scrollbar { width: 4px; }
        #scale-block-side-panel::-webkit-scrollbar-track { background: transparent; }
        #scale-block-side-panel::-webkit-scrollbar-thumb { background: var(--neutral-300); border-radius: 2px; }

        /* Smooth disclaimer appearance */
        .disclaimer {
            animation: fadeSlideIn 0.3s ease-out;
        }

        /* Tab nav scrollbar hide on mobile */
        .tab-nav { scrollbar-width: none; -ms-overflow-style: none; }
        .tab-nav::-webkit-scrollbar { display: none; }

        /* Better placeholder contrast */
        .input::placeholder { color: var(--neutral-400); opacity: 1; }
        .chat-input::placeholder { color: var(--neutral-400); opacity: 1; }

        /* Card-title icon consistency */
        .card-title > i:first-child {
            width: 20px;
            text-align: center;
            flex-shrink: 0;
        }

        /* Step indicator transitions */
        .progress-steps {
            animation: fadeSlideIn 0.25s ease-out;
        }

        /* Analysis level selected ring */
        .analysis-level-btn.selected {
            border-color: rgba(37,99,235,0.4) !important;
            box-shadow: 0 0 0 1px rgba(37,99,235,0.2), var(--shadow-sm) !important;
        }

        /* ================================================================
           SCALE RESULTS — Fixes & Polish
           ================================================================ */

        /* Fix all missing variables used in scale simulator inline styles */
        :root {
            --bg-secondary:   var(--neutral-50);
            --bg-primary:     var(--bg-card-solid);
            --success-600:    #16a34a;
            --success-200:    #bbf7d0;
            --danger-200:     #fecaca;
            --primary-200:    #bfdbfe;
            --warning-bg:     var(--warning-50);
            --warning-text:   var(--warning-700);
            --warning-600:    #d97706;
            --error-50:       var(--danger-50);
            --error-200:      #fecaca;
            --error-500:      var(--danger-500);
            --error-600:      #dc2626;
            --error-bg:       var(--danger-50);
            --error-text:     var(--danger-700);
        }
        [data-theme="dark"] {
            --bg-secondary:   rgba(255,255,255,0.05);
            --warning-600:    #fbbf24;
            --error-50:       rgba(239,68,68,0.1);
            --error-200:      rgba(248,113,113,0.25);
            --error-500:      #f87171;
            --error-600:      #f87171;
            --error-bg:       rgba(239,68,68,0.1);
            --error-text:     #fca5a5;
            --bg-primary:     var(--bg-card-solid);
            --success-600:    #4ade80;
            --success-200:    rgba(74,222,128,0.2);
            --danger-200:     rgba(248,113,113,0.2);
            --primary-200:    rgba(96,165,250,0.3);
            --warning-bg:     rgba(245,158,11,0.12);
            --warning-text:   #fcd34d;
            --error-600:      var(--danger-500);
        }

        /* Scale result summary cards */
        #scale-summary-cards {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
            gap: 10px;
            margin-bottom: 16px;
        }
        #scale-summary-cards > div {
            border-radius: var(--radius-sm) !important;
            padding: 14px !important;
            text-align: center !important;
            background: var(--neutral-50) !important;
            border: 1px solid var(--border-color) !important;
            transition: box-shadow 0.15s, transform 0.15s;
        }
        #scale-summary-cards > div:hover {
            box-shadow: var(--shadow-sm);
            transform: translateY(-1px);
        }
        [data-theme="dark"] #scale-summary-cards > div {
            background: rgba(255,255,255,0.04) !important;
        }

        /* Scale result value labels */
        #scale-summary-cards .res-label {
            font-size: 11px;
            color: var(--text-secondary);
            margin-bottom: 4px;
            line-height: 1.3;
        }
        #scale-summary-cards .res-value {
            font-size: 22px;
            font-weight: 700;
            color: var(--primary-600);
            line-height: 1.1;
        }

        /* Bar chart bars polish */
        #scale-bar-chart { display: flex; flex-direction: column; gap: 10px; }
        #scale-bar-chart > div > div:last-child {
            border-radius: var(--radius-sm) !important;
            overflow: hidden !important;
        }

        /* Scale scenario table */
        #scale-results table {
            width: 100%;
            border-collapse: collapse;
            font-size: 13px;
        }
        #scale-results th {
            background: var(--neutral-50);
            padding: 8px 10px;
            text-align: left;
            font-weight: 600;
            font-size: 12px;
            color: var(--text-secondary);
            border-bottom: 2px solid var(--neutral-200);
        }
        #scale-results td {
            padding: 8px 10px;
            border-bottom: 1px solid var(--border-color);
        }
        #scale-results tr:hover td { background: var(--neutral-50); }
        [data-theme="dark"] #scale-incentive-breakdown { border-color: rgba(96,165,250,0.3); }
        [data-theme="dark"] #scale-incentive-breakdown > div:first-child { background: rgba(96,165,250,0.08); border-bottom-color: rgba(96,165,250,0.2); }
        [data-theme="dark"] #scale-inc-far-flow span[style*="background:var(--neutral-100)"] { background: var(--neutral-700,#334155) !important; }
        [data-theme="dark"] #scale-inc-tbody tr:hover td { background: rgba(255,255,255,0.04); }

        /* Don-result (donation result) polish */
        #don-result { animation: fadeSlideIn 0.25s ease-out; }
        #hi-result  { animation: fadeSlideIn 0.25s ease-out; }
        #station-detail { animation: fadeSlideIn 0.25s ease-out; }

        /* Don-dp-note info box */
        #don-dp-note { animation: fadeSlideIn 0.2s ease-out; }

        /* Scale zoning badges */
        #scale-zoning-badges .badge {
            font-size: 12px;
            padding: 4px 12px;
            border-radius: 20px;
        }

        /* ================================================================
           SCALE SIMULATOR SETTINGS — Sliders, Steppers, Warnings
           ================================================================ */

        /* Range sliders */
        #scale-simulator input[type="range"] {
            -webkit-appearance: none;
            appearance: none;
            height: 6px;
            border-radius: 3px;
            background: var(--neutral-200);
            outline: none;
            cursor: pointer;
        }
        /* Filled track (left of thumb) */
        #scale-simulator input[type="range"].slider-filled {
            background: linear-gradient(to right, var(--primary-600) 0%, var(--primary-600) var(--fill-pct, 0%), var(--neutral-200) var(--fill-pct, 0%), var(--neutral-200) 100%);
        }
        #scale-simulator input[type="range"]::-webkit-slider-thumb {
            -webkit-appearance: none;
            width: 18px; height: 18px;
            border-radius: 50%;
            background: var(--primary-600);
            cursor: pointer;
            box-shadow: 0 2px 6px rgba(37,99,235,0.3);
            transition: box-shadow 0.15s, transform 0.15s;
        }
        #scale-simulator input[type="range"]::-webkit-slider-thumb:hover {
            box-shadow: 0 2px 10px rgba(37,99,235,0.45);
            transform: scale(1.12);
        }
        #scale-simulator input[type="range"]:focus::-webkit-slider-thumb {
            box-shadow: 0 0 0 3px rgba(59,130,246,0.3);
        }
        #scale-simulator input[type="range"]::-moz-range-thumb {
            width: 18px; height: 18px;
            border: none;
            border-radius: 50%;
            background: var(--primary-600);
            cursor: pointer;
            box-shadow: 0 2px 6px rgba(37,99,235,0.3);
        }

        /* Stepper buttons (동수 설정 + / −) */
        #scale-simulator button[onclick*="changeScaleBuildingCount"] {
            width: 32px !important; height: 32px !important;
            border-radius: var(--radius-sm) !important;
            border: 1px solid var(--neutral-300) !important;
            background: var(--bg-card-solid) !important;
            color: var(--text-primary) !important;
            font-size: 18px !important; font-weight: 700 !important;
            cursor: pointer !important;
            transition: background 0.15s, border-color 0.15s !important;
            display: inline-flex !important;
            align-items: center !important;
            justify-content: center !important;
        }
        #scale-simulator button[onclick*="changeScaleBuildingCount"]:hover {
            background: var(--primary-50) !important;
            border-color: var(--primary-400) !important;
            color: var(--primary-700) !important;
        }
        /* Stepper number input */
        #scale-building-count {
            padding: 6px 10px !important;
            border-radius: var(--radius-sm) !important;
            border: 1px solid var(--neutral-300) !important;
            background: var(--bg-card-solid) !important;
            color: var(--text-primary) !important;
            font-weight: 600 !important;
            text-align: center !important;
            transition: border-color 0.2s, box-shadow 0.2s !important;
            outline: none !important;
        }
        #scale-building-count:focus {
            border-color: var(--primary-500) !important;
            box-shadow: 0 0 0 3px rgba(59,130,246,0.14) !important;
        }

        /* Warning/danger inline boxes */
        #scale-single-use-warning {
            border-radius: var(--radius-sm) !important;
            border: 1px solid var(--danger-200) !important;
            background: var(--danger-50) !important;
            color: var(--danger-700) !important;
            animation: fadeSlideIn 0.2s ease-out;
        }
        #scale-green-warning {
            border-radius: var(--radius-sm) !important;
            padding: 6px 10px !important;
            animation: fadeSlideIn 0.2s ease-out;
        }

        /* Incentive checkboxes section */
        #scale-green-incentives label,
        #scale-incentives-card label[style*="flex"] {
            padding: 6px 0;
        }

        /* Inline selects inside incentive labels */
        #scale-green-incentives select {
            padding: 3px 24px 3px 8px !important;
            border-radius: var(--radius-sm) !important;
            border: 1px solid var(--border-color) !important;
            background: var(--bg-input) !important;
            color: var(--text-primary) !important;
            font-family: inherit !important;
            font-size: 13px !important;
            cursor: pointer !important;
            outline: none !important;
            transition: border-color 0.2s !important;
            -webkit-appearance: none !important;
            appearance: none !important;
            background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2.5'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") !important;
            background-repeat: no-repeat !important;
            background-position: right 6px center !important;
        }
        #scale-green-incentives select:focus {
            border-color: var(--primary-500) !important;
            box-shadow: 0 0 0 2px rgba(59,130,246,0.14) !important;
        }

        /* Ratio badge inline */
        .scale-ratio-badge {
            font-size: 12px !important;
            color: var(--primary-600) !important;
            font-weight: 600 !important;
            padding: 1px 6px !important;
            background: var(--primary-50) !important;
            border-radius: 6px !important;
            border: 1px solid rgba(37,99,235,0.15) !important;
        }

        /* ==================== PRINT STYLES ==================== */
        @media print {
            .header, .tab-wrapper, .floating-chat,
            .lobby-theme-toggle, .download-bar,
            .chat-section, .search-row, .btn-primary,
            .btn-secondary, .options-row { display: none !important; }
            .card { box-shadow: none !important; border: 1px solid #e2e8f0 !important; }
            .final-report { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
        }
        /* Check-circle icon: always blue */
        .icon-check-circle-2 { color: var(--primary-600, #2563eb) !important; }
        [data-theme="dark"] .icon-check-circle-2 { color: var(--primary-400, #60a5fa) !important; }
        /* Alert-triangle icon: yellow/amber */
        .icon-alert-triangle { color: var(--warning-600, #d97706) !important; }
        [data-theme="dark"] .icon-alert-triangle { color: var(--warning-400, #fbbf24) !important; }
        /* X-circle icon: red */
        .icon-x-circle { color: var(--danger-600, #dc2626) !important; }
        [data-theme="dark"] .icon-x-circle { color: var(--danger-400, #f87171) !important; }
