/* ⭐ 스마트폰 최적화 기본 설정 ⭐ */
body {
    font-family: system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
    margin: 16px;
    /* 모바일에서 여백 축소 */
}

h1 {
    margin-bottom: 12px;
}

section {
    border: 1px solid #ddd;
    border-radius: 12px;
    padding: 12px 16px;
    margin-bottom: 16px;
}

button {
    padding: 8px 12px;
    margin-right: 8px;
    cursor: pointer;
    border-radius: 10px;
    border: 1px solid #ccc;
}

.chip {
    min-height: 40px;
}

#log {
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    max-height: 280px;
    overflow: auto;
    background: #fafafa;
    padding: 8px;
    border-radius: 10px;
    border: 1px solid #eee;
}

pre {
    background: #fafafa;
    padding: 8px;
    border-radius: 10px;
    border: 1px solid #eee;
}

/* 로그인 오버레이 */
.auth {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, .35);
    display: none;
    place-items: center;
    z-index: 20;
}

.auth.show {
    display: grid;
}

.auth .card {
    width: 320px;
    padding: 16px;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 10px 28px rgba(0, 0, 0, .15);
    display: flex;
    flex-direction: column;
    gap: 8px;
}

/* ⭐ 설정 모달용 카드 스타일 (모바일 우선 적용) ⭐ */
.auth .setting-card {
    width: 95%;
    /* 모바일에서 화면 너비의 95% 사용 */
    max-width: 960px;
    /* 데스크톱/태블릿을 위한 최대 너비 지정 */
    padding: 16px;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 10px 28px rgba(0, 0, 0, .15);
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.auth input {
    height: 34px;
    border: 1px solid #ccc;
    border-radius: 8px;
    padding: 6px 10px;
}

.auth .msg {
    color: #e74c3c;
    min-height: 20px;
}

/* ⭐ 이미지 맵 컨테이너 스타일 (PC 중앙 정렬 강화) ⭐ */
#map-container {
    position: relative;
    margin: 0 auto;
    /* 컨테이너 자체를 중앙 정렬 */
    max-width: 1000px;
    display: block;
    text-align: center;
    /* 내부 인라인/인라인-블록 요소를 중앙 정렬 (선택 사항) */
}

/* ⭐ 이미지 자체 스타일 (PC 중앙 정렬 강화) ⭐ */
#control-map-image {
    max-width: 100%;
    height: auto;
    display: block;
    /* 블록 요소로 설정 */
    margin: 0 auto;
    /* ⭐ 중요: 이미지 자체를 컨테이너 내에서 중앙 정렬 ⭐ */
    border-radius: 8px;
}

/* ⭐ 이미지 위의 버튼 공통 스타일 ⭐ */
.map-btn {
    position: absolute;
    padding: 6px 10px;
    background-color: rgba(255, 255, 255, 0.85);
    border: 1px solid #333;
    z-index: 10;
    white-space: nowrap;
    text-shadow: 0 0 4px #fff;
}

.map-chip {
    border-radius: 8px;
}

/* ⭐ 개별 버튼 위치 지정 (퍼센트(%)로 지정 - 조정 필수!) ⭐ */
/* 사용자 제공 이미지(2026-01-15) 기준으로 위치 조정 */
#pump-on-btn {
    top: 10%;
    left: 68%;
}

#pump-off-btn {
    top: 10%;
    left: 68%;
    /* 겹쳐서 표시하거나 필요 시 조정 */
}




#sp-toggle-btn {
    top: 86%;
    left: 28%;
}

#air-toggle-btn {
    top: 48%;
    left: 48%;
}

#vent-toggle-btn {
    top: 32%;
    left: 80%;
}

#filter-toggle-btn {
    top: 78%;
    left: 78%;
}

#filterdir-toggle-btn {
    top: 25%;
    left: 68%;
}

#spdir-toggle-btn {
    top: 86%;
    left: 40%;
}

#ster-toggle-btn {
    top: 65%;
    left: 45%;
}

/* ⭐ 새로 추가된 버튼 위치 (왼쪽 정렬) ⭐ */
/* RST 버튼은 이미지에 명확한 위치가 없으므로 좌측 하단 여백에 배치 */
#rst-gpio-on-btn {
    top: 60%;
    left: 5%;
}

#rst-gpio-off-btn {
    top: 65%;
    left: 5%;
}

#op-toggle-btn {
    top: 16%;
    left: 11%;
}

#auto-toggle-btn {
    top: 27%;
    left: 11%;
}

#btnShowSetting {
    top: 39%;
    left: 11%;
}

/* 데스크톱 환경을 위한 미디어 쿼리 */
@media (min-width: 768px) {
    body {
        margin: 24px;
    }
}

/* ⭐ 설정 입력 필드 스타일 ⭐ */
.setting-item {
    position: absolute;
    display: flex;
    align-items: center;
    gap: 4px;
    z-index: 10;
}

.setting-label {
    background-color: rgba(0, 0, 0, 0.6);
    color: #fff;
    padding: 4px 6px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: bold;
    white-space: nowrap;
}

.setting-input {
    /* position: absolute 제거 -> 부모인 .setting-item이 위치 정함 */
    width: 60px;
    height: 30px;
    text-align: center;
    background: rgba(255, 255, 255, 0.9);
    border: 1px solid #999;
    border-radius: 4px;
    font-size: 14px;
}