:root {
    /* 기본 UI 스케일: 요청(폰트 크기 8)에 맞춰 우선 70%로 설정 (설정에서 변경 가능) */
    --ui-scale: 0.7;
    /* 패널들 간 기본 간격 (스케일/화면 크기 변경 시에도 JS가 이 값을 사용해 간격 유지) */
    --panel-gap: 10px;
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html,
body {
    width: 100%;
    height: 100%;
    font-family: 'Malgun Gothic', '맑은 고딕', 'Apple SD Gothic Neo', 'Noto Sans KR', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

.map-container {
    width: 100%;
    height: 100%;
    position: relative;
}

.map-wrapper {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
}

.map-wrapper.hidden {
    display: none;
}

#kakaoMap,
#naverMap,
#googleMap {
    width: 100%;
    height: 100%;
}

textarea {
    width: 100%;
    padding: 10px;
    border: 1px solid #ddd;
    border-radius: 4px;
    font-size: 13px;
    font-family: inherit;
    resize: vertical;
}

.search-panel,
.result-panel,
.streetview-panel,
.building-info-panel,
.realestate-panel,
.map-control-panel,
.filter-panel,
.filter-modal-content,
.filter-modal-backdrop,
.building-table-wrapper,
.floor-table-wrapper,
.status-message,
[class*="panel"],
[class*="modal"],
button,
input,
textarea,
select {
    border-radius: 0 !important;
}

.status-message {
    position: fixed;
    bottom: 20px;
    left: 50%;
    transform: translateX(-50%) scale(var(--ui-scale, 1));
    transform-origin: bottom center;
    z-index: 9999;
    padding: 10px 16px;
    border-radius: 6px;
    font-size: 12px;
    text-align: center;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
    pointer-events: none;
    min-width: 200px;
    max-width: 400px;
}

.status-message.success {
    background: #e8f5e9;
    color: #2e7d32;
}

.status-message.error {
    background: #ffebee;
    color: #c62828;
}

.status-message.warning {
    background: #fff8e1;
    color: #ef6c00;
}

