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

body {
    font-family: 'Malgun Gothic', '맑은 고딕', sans-serif;
    background: #EEF3F8;
    color: #1E3A5F;
}

/* ===== 레이아웃 ===== */
.admin-layout {
    display: flex;
    min-height: 100vh;
}

/* 모바일 사이드바 토글 요소 — 데스크톱에서는 숨김 */
.nav-toggle-btn { display: none; }
.nav-overlay { display: none; }

/* ===== 사이드바 ===== */
.admin-nav {
    width: 250px;
    background: #1E3A5F;
    color: #fff;
    padding: 24px 0;
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

/* 로그아웃 버튼 (네비 하단) */
.nav-logout-form {
    margin-top: auto;
    padding: 18px 20px 4px;
}
.nav-logout {
    width: 100%;
    background: rgba(255, 255, 255, 0.10);
    border: 1px solid rgba(255, 255, 255, 0.22);
    color: #C5D6E6;
    border-radius: 9px;
    padding: 11px;
    font-size: 14px;
    font-weight: bold;
    cursor: pointer;
}
.nav-logout:hover {
    background: rgba(255, 255, 255, 0.20);
    color: #fff;
}

/* ===== 관리자 로그인 화면 ===== */
.login-page {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #08366F, #0A62CA);
}
.login-card {
    width: 360px;
    background: #fff;
    border-radius: 18px;
    padding: 44px 38px 38px;
    box-shadow: 0 18px 50px rgba(8, 26, 52, 0.35);
    display: flex;
    flex-direction: column;
}
.login-brand {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}
.login-brand-icon { font-size: 30px; }
.login-brand-text {
    font-size: 24px;
    font-weight: bold;
    color: #08366F;
}
.login-brand-text small {
    font-size: 14px;
    color: #6B8299;
    margin-left: 5px;
    font-weight: normal;
}
.login-title {
    text-align: center;
    font-size: 15px;
    color: #6B8299;
    margin: 6px 0 24px;
}
.login-input {
    height: 48px;
    border: 1.5px solid #D7E3EF;
    border-radius: 10px;
    padding: 0 14px;
    font-size: 15px;
    margin-bottom: 12px;
    outline: none;
}
.login-input:focus { border-color: #0A62CA; }
.login-submit {
    height: 50px;
    margin-top: 8px;
    border: none;
    border-radius: 10px;
    background: #0A62CA;
    color: #fff;
    font-size: 16px;
    font-weight: bold;
    cursor: pointer;
}
.login-submit:hover { background: #084FA3; }
.login-error {
    background: #FCE6E4;
    color: #C0392B;
    font-size: 13.5px;
    font-weight: bold;
    padding: 10px 12px;
    border-radius: 8px;
    margin-bottom: 14px;
    text-align: center;
}

.nav-brand {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 22px;
    font-weight: bold;
    padding: 8px 24px 28px 24px;
}
.nav-brand small {
    display: block;
    font-size: 13px;
    font-weight: normal;
    color: #8FB0CE;
    margin-top: 2px;
}
.brand-icon { font-size: 28px; }

.nav-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 14px 24px;
    color: #C5D6E6;
    text-decoration: none;
    font-size: 16px;
    border-left: 4px solid transparent;
}
.nav-item:hover {
    background: #2A4E72;
    color: #fff;
}
.nav-item.active {
    background: #2A4E72;
    color: #fff;
    border-left-color: #4A9EE8;
    font-weight: bold;
}

/* ===== 메뉴 그룹 (폴더) ===== */
.nav-group {
    border-top: 1px solid rgba(255, 255, 255, 0.06);
}
.nav-group-title {
    list-style: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 13px 24px;
    font-size: 12.5px;
    font-weight: bold;
    letter-spacing: 0.5px;
    color: #8FB0CE;
    user-select: none;
}
.nav-group-title::-webkit-details-marker { display: none; }
.nav-group-title::after {
    content: "\25BE";
    font-size: 10px;
    transition: transform 0.15s;
}
.nav-group:not([open]) .nav-group-title::after {
    transform: rotate(-90deg);
}
.nav-group-title:hover { color: #C5D6E6; }
.nav-item.nav-sub {
    padding-left: 40px;
    font-size: 15px;
}

/* ===== 메인 콘텐츠 ===== */
.admin-main {
    flex: 1;
    padding: 36px 44px;
}

h1 {
    font-size: 30px;
    margin-bottom: 4px;
}
.page-sub {
    color: #6B8299;
    font-size: 15px;
    margin-bottom: 28px;
}
h2 {
    font-size: 20px;
    margin-bottom: 16px;
}
.loading {
    color: #6B8299;
    font-size: 16px;
    padding: 40px 0;
}

/* ===== 통계 카드 ===== */
.stat-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
    margin-bottom: 32px;
}
.stat-card {
    background: #fff;
    border-radius: 14px;
    padding: 24px;
    box-shadow: 0 4px 14px rgba(42, 74, 107, 0.10);
    border-top: 4px solid #4A9EE8;
}
.stat-card.blue   { border-top-color: #2D7DD2; }
.stat-card.green  { border-top-color: #27AE60; }
.stat-card.orange { border-top-color: #E67E22; }
.stat-card.purple { border-top-color: #8E44AD; }

.stat-label {
    font-size: 15px;
    color: #6B8299;
    margin-bottom: 10px;
}
.stat-value {
    font-size: 32px;
    font-weight: bold;
    color: #1E3A5F;
}

/* ===== 패널 / 테이블 ===== */
.panel {
    background: #fff;
    border-radius: 14px;
    padding: 24px;
    box-shadow: 0 4px 14px rgba(42, 74, 107, 0.10);
}

table {
    width: 100%;
    border-collapse: collapse;
}
thead th {
    text-align: left;
    font-size: 14px;
    color: #6B8299;
    padding: 12px 14px;
    border-bottom: 2px solid #E3EAF1;
}
tbody td {
    padding: 14px;
    font-size: 15px;
    border-bottom: 1px solid #EEF3F8;
}
tbody tr:hover {
    background: #F6F9FC;
}
td.empty {
    text-align: center;
    color: #9AAEC0;
    padding: 40px 0;
}

/* ===== 상단바 / 매장 선택 ===== */
.admin-topbar {
    display: flex;
    justify-content: flex-end;
    margin-bottom: 22px;
}
.store-selector {
    display: flex;
    align-items: center;
    gap: 10px;
    background: #fff;
    border-radius: 10px;
    padding: 8px 16px;
    box-shadow: 0 2px 8px rgba(42, 74, 107, 0.10);
}
.store-label {
    font-size: 14px;
    color: #6B8299;
    font-weight: bold;
}
.store-selector select {
    border: 2px solid #D6E2EE;
    border-radius: 8px;
    padding: 7px 14px;
    font-size: 15px;
    color: #1E3A5F;
    font-weight: bold;
    cursor: pointer;
}

/* ===== 기간 선택 ===== */
.period-bar {
    background: #fff;
    border-radius: 14px;
    padding: 20px 24px;
    margin-bottom: 24px;
    box-shadow: 0 4px 14px rgba(42, 74, 107, 0.10);
}
.period-presets {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 16px;
}
.period-btn {
    border: 2px solid #D6E2EE;
    background: #fff;
    color: #5B7A9A;
    border-radius: 20px;
    padding: 8px 20px;
    font-size: 14px;
    cursor: pointer;
}
.period-btn:hover { background: #F0F5FA; }
.period-btn.active {
    background: #2D7DD2;
    border-color: #2D7DD2;
    color: #fff;
    font-weight: bold;
}
.period-custom {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}
.period-custom input {
    border: 2px solid #D6E2EE;
    border-radius: 8px;
    padding: 8px 12px;
    font-size: 14px;
}
.search-btn {
    background: #1E5FA8;
    color: #fff;
    border: none;
    border-radius: 8px;
    padding: 10px 24px;
    font-size: 14px;
    font-weight: bold;
    cursor: pointer;
}
.search-btn:hover { background: #174B86; }

/* ===== 회원 검색 ===== */
.member-search {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 18px;
}
.member-search input {
    width: 320px;
    height: 40px;
    border: 1.5px solid #D7E3EF;
    border-radius: 8px;
    padding: 0 14px;
    font-size: 14px;
    outline: none;
}
.member-search input:focus { border-color: #0A62CA; }
.search-reset {
    background: #ECEFF2;
    color: #6B8299;
    border: none;
    border-radius: 8px;
    padding: 10px 18px;
    font-size: 14px;
    font-weight: bold;
    cursor: pointer;
}
.search-reset:hover { background: #DDE3E9; }
.period-label {
    color: #6B8299;
    font-size: 14px;
    margin-left: 8px;
}

/* ===== 설비 제어 ===== */
.facility-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    max-width: 760px;
}
.facility-card {
    background: #fff;
    border-radius: 14px;
    padding: 34px 24px;
    text-align: center;
    box-shadow: 0 4px 14px rgba(42, 74, 107, 0.10);
}
.facility-icon { font-size: 58px; }
.facility-name {
    font-size: 21px;
    font-weight: bold;
    margin: 14px 0 22px;
}
.toggle {
    border: none;
    border-radius: 26px;
    padding: 14px 0;
    width: 140px;
    font-size: 19px;
    font-weight: bold;
    color: #fff;
    cursor: pointer;
}
.toggle.on  { background: #27AE60; }
.toggle.off { background: #AEBECB; }
.facility-grid-2 { grid-template-columns: repeat(2, 1fr); }

/* ===== 에어컨 제어 카드 ===== */
.aircon-card {
    background: #fff;
    border-radius: 14px;
    padding: 26px 30px 30px;
    box-shadow: 0 4px 14px rgba(42, 74, 107, 0.10);
    max-width: 760px;
    margin-top: 20px;
}
.aircon-head {
    display: flex;
    align-items: center;
    gap: 12px;
    border-bottom: 1px solid #EAF0F5;
    padding-bottom: 18px;
    margin-bottom: 22px;
}
.aircon-head-icon { font-size: 34px; }
.aircon-head-name {
    flex: 1;
    font-size: 21px;
    font-weight: bold;
}
.aircon-body {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}
.temp-box {
    background: #F4F8FB;
    border-radius: 12px;
    padding: 22px 16px;
    text-align: center;
}
.temp-label {
    font-size: 15px;
    color: #6B8299;
    margin-bottom: 12px;
}
.temp-current {
    font-size: 46px;
    font-weight: bold;
    color: #2C5F92;
    line-height: 1;
}
.temp-unit {
    font-size: 22px;
    font-weight: bold;
    margin-left: 4px;
}
.temp-setter {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
}
.temp-value {
    font-size: 46px;
    font-weight: bold;
    color: #E0935A;
    line-height: 1;
    min-width: 124px;
}
.temp-btn {
    width: 56px;
    height: 56px;
    border: none;
    border-radius: 50%;
    background: #2C5F92;
    color: #fff;
    font-size: 28px;
    font-weight: bold;
    cursor: pointer;
}
.temp-btn:hover:not(:disabled) { background: #234d77; }
.temp-btn:disabled {
    background: #C9D3DD;
    cursor: default;
}
.temp-range {
    margin-top: 12px;
    font-size: 13px;
    color: #9AAEC0;
}

.facility-updated {
    margin-top: 22px;
    color: #6B8299;
    font-size: 14px;
}

/* ===== 요금 관리 ===== */
.pricing-h2 {
    margin-top: 30px;
    margin-bottom: 14px;
    font-size: 20px;
}
.pricing-h2:first-of-type { margin-top: 8px; }
.pricing-msg {
    background: #E8F7EE;
    border: 1.5px solid #A6E2BE;
    color: #1E7E4A;
    font-weight: bold;
    font-size: 14px;
    padding: 12px 16px;
    border-radius: 10px;
    margin-bottom: 18px;
}
.pricing-table input.p-input {
    width: 100%;
    height: 38px;
    border: 1.5px solid #D7E3EF;
    border-radius: 8px;
    padding: 0 10px;
    font-size: 14px;
    outline: none;
    box-sizing: border-box;
}
.pricing-table input.p-input:focus { border-color: #0A62CA; }
.pricing-table input.p-num { text-align: right; }
.pricing-table .p-center { text-align: center; }
.pricing-table input[type=checkbox] {
    width: 20px;
    height: 20px;
    cursor: pointer;
}
.p-del {
    background: #FCE6E4;
    color: #C0392B;
    border: none;
    border-radius: 7px;
    padding: 7px 12px;
    font-size: 13px;
    font-weight: bold;
    cursor: pointer;
}
.pricing-actions {
    display: flex;
    gap: 10px;
    margin-top: 18px;
}
.p-add {
    background: #EAF1F8;
    color: #0A62CA;
    border: 1.5px solid #Bcd3e8;
    border-radius: 9px;
    padding: 11px 20px;
    font-size: 14px;
    font-weight: bold;
    cursor: pointer;
}
.p-save {
    background: #0A62CA;
    color: #fff;
    border: none;
    border-radius: 9px;
    padding: 11px 26px;
    font-size: 14px;
    font-weight: bold;
    cursor: pointer;
    margin-left: auto;
}
.p-save:hover { background: #084FA3; }
.dry-form {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
}
.dry-field {
    display: flex;
    flex-direction: column;
    gap: 7px;
    font-size: 14px;
    color: #6B8299;
    font-weight: bold;
}
.dry-field input {
    height: 42px;
    border: 1.5px solid #D7E3EF;
    border-radius: 8px;
    padding: 0 12px;
    font-size: 16px;
    text-align: right;
    outline: none;
}
.dry-field input:focus { border-color: #0A62CA; }
.dry-hint {
    margin-top: 16px;
    font-size: 13.5px;
    color: #6B8299;
}

/* ===== 포인트 수동 조정 ===== */
.pa-panel { max-width: 760px; }
.pa-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-bottom: 1px solid #EAF0F5;
    padding-bottom: 16px;
    margin-bottom: 18px;
}
.pa-name {
    font-size: 19px;
    font-weight: bold;
    color: #1F3B57;
}
.pa-phone {
    font-size: 14px;
    color: #6B8299;
    margin-left: 10px;
}
.pa-balance {
    font-size: 15px;
    color: #6B8299;
}
.pa-balance strong {
    font-size: 22px;
    color: #0A62CA;
}
.pa-form {
    display: flex;
    gap: 16px;
}
.pa-field {
    display: flex;
    flex-direction: column;
    gap: 7px;
    font-size: 13px;
    font-weight: bold;
    color: #6B8299;
}
.pa-field-wide { flex: 1; }
.pa-field input {
    height: 42px;
    border: 1.5px solid #D7E3EF;
    border-radius: 8px;
    padding: 0 12px;
    font-size: 15px;
    outline: none;
}
.pa-field input:focus { border-color: #0A62CA; }
.pa-presets {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 12px;
}
.pa-presets button {
    background: #EAF1F8;
    color: #0A62CA;
    border: 1.5px solid #BCD3E8;
    border-radius: 16px;
    padding: 6px 14px;
    font-size: 13px;
    font-weight: bold;
    cursor: pointer;
}
.pa-presets button:hover { background: #DBE8F4; }
.pa-actions {
    display: flex;
    gap: 10px;
    margin-top: 18px;
}
.pa-btn {
    border: none;
    border-radius: 9px;
    padding: 11px 26px;
    font-size: 15px;
    font-weight: bold;
    cursor: pointer;
    color: #fff;
}
.pa-btn.add { background: #27AE60; }
.pa-btn.sub { background: #E08A3C; }
.pa-btn.cancel {
    background: #ECEFF2;
    color: #6B8299;
}
.pa-btn.save { background: #0A62CA; }
.pa-btn.delete { background: #C0392B; }
.pa-danger {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-top: 26px;
    padding-top: 18px;
    border-top: 1px solid #F0CFCB;
}
.pa-danger-title {
    font-size: 15px;
    font-weight: bold;
    color: #C0392B;
}
.pa-danger-desc {
    font-size: 13px;
    color: #6B8299;
    margin-top: 3px;
}
.pa-memo-label {
    display: block;
    font-size: 13px;
    font-weight: bold;
    color: #6B8299;
    margin: 14px 0 7px;
}
.pa-memo {
    width: 100%;
    border: 1.5px solid #D7E3EF;
    border-radius: 10px;
    padding: 12px 14px;
    font-size: 14px;
    font-family: inherit;
    resize: vertical;
    outline: none;
    box-sizing: border-box;
}
.pa-memo:focus { border-color: #0A62CA; }
.memo-flag {
    margin-left: 6px;
    font-size: 13px;
    cursor: help;
}
.pa-history-label {
    margin-top: 24px;
    margin-bottom: 8px;
    font-size: 14px;
    font-weight: bold;
    color: #6B8299;
}
.pa-history { width: 100%; border-collapse: collapse; }
.pa-history td {
    padding: 9px 10px;
    border-bottom: 1px solid #EEF2F6;
    font-size: 14px;
}
.pa-h-date { color: #6B8299; width: 160px; }
.pa-h-point { font-weight: bold; width: 110px; }
.pa-h-point.plus { color: #1E7E4A; }
.pa-h-point.minus { color: #C0392B; }
.pa-h-reason { color: #1F3B57; }

/* ===== 관리자 활동 로그 ===== */
.log-cat {
    display: inline-block;
    padding: 3px 11px;
    border-radius: 11px;
    font-size: 12px;
    font-weight: bold;
}
.log-cat-point  { background: #E3F6EA; color: #1E7E4A; }
.log-cat-cancel { background: #FCE6E4; color: #C0392B; }
.log-cat-price  { background: #EAF1FB; color: #0A62CA; }
.log-cat-notice { background: #FFF3D6; color: #9A6B12; }
.log-cat-kiosk  { background: #E8EDF3; color: #1F3B57; }
.log-cat-etc    { background: #ECEFF2; color: #6B8299; }
.err-detail {
    color: #6B8299;
    font-size: 13px;
    word-break: break-all;
}

/* ===== 휴무일 ===== */
.holiday-add {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}
.holiday-add input[type=date] {
    height: 40px;
    border: 1.5px solid #D7E3EF;
    border-radius: 8px;
    padding: 0 12px;
    font-size: 14px;
    outline: none;
}
.holiday-reason {
    flex: 1;
    min-width: 200px;
    height: 40px;
    border: 1.5px solid #D7E3EF;
    border-radius: 8px;
    padding: 0 14px;
    font-size: 14px;
    outline: none;
}
.holiday-add input:focus { border-color: #0A62CA; }
.holiday-today td { background: #FCF0EE; }

/* ===== DB 백업 ===== */
.bk-dl {
    display: inline-block;
    background: #1E7E4A;
    color: #fff;
    border-radius: 7px;
    padding: 7px 14px;
    font-size: 13px;
    font-weight: bold;
    text-decoration: none;
    margin-right: 8px;
}
.bk-dl:hover { background: #176B3E; }

/* ===== 매출 통계 막대 차트 ===== */
.chart {
    display: flex;
    align-items: flex-end;
    gap: 6px;
    padding: 8px 4px 0;
}
.chart-col {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    min-width: 0;
}
.chart-barbox {
    height: 170px;
    width: 100%;
    display: flex;
    align-items: flex-end;
    justify-content: center;
}
.chart-bar {
    width: 64%;
    max-width: 40px;
    background: linear-gradient(180deg, #4A93E8, #0A62CA);
    border-radius: 4px 4px 0 0;
    transition: height 0.2s;
}
.chart-bar:hover {
    background: linear-gradient(180deg, #2C7BE0, #084FA3);
}
.chart-label {
    margin-top: 7px;
    font-size: 11px;
    color: #6B8299;
    white-space: nowrap;
}
.chart-empty {
    color: #9AAEC0;
    font-size: 15px;
    padding: 60px 0;
    text-align: center;
    width: 100%;
}

/* ===== 결제 정산 ===== */
.settle-bar {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 14px;
    margin-bottom: 20px;
}
.settle-dates {
    display: flex;
    align-items: center;
    gap: 8px;
}
.settle-dates input[type=date] {
    height: 38px;
    border: 1.5px solid #D7E3EF;
    border-radius: 8px;
    padding: 0 10px;
    font-size: 14px;
    outline: none;
}
.settle-dates input[type=date]:focus { border-color: #0A62CA; }
.settle-tilde { color: #9AAEC0; }
.settle-presets {
    display: flex;
    gap: 6px;
}
.excel-btn {
    margin-left: auto;
    background: #1E7E4A;
    color: #fff;
    border-radius: 9px;
    padding: 10px 20px;
    font-size: 14px;
    font-weight: bold;
    text-decoration: none;
}
.excel-btn:hover { background: #176B3E; }
.stat-value-sm { font-size: 22px; }
.paytype-summary {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 20px;
}
.paytype-summary-label {
    font-size: 13px;
    font-weight: bold;
    color: #9AAEC0;
}
.paytype-chip {
    background: #fff;
    border: 1.5px solid #E3EAF1;
    border-radius: 18px;
    padding: 7px 16px;
    font-size: 13.5px;
    color: #6B8299;
}
.paytype-chip strong { color: #0A62CA; }

/* ===== 기기별 통계 ===== */
.period-tabs {
    display: flex;
    gap: 8px;
    margin-bottom: 18px;
}
.period-btn {
    background: #fff;
    color: #6B8299;
    border: 1.5px solid #D7E3EF;
    border-radius: 9px;
    padding: 9px 20px;
    font-size: 14px;
    font-weight: bold;
    cursor: pointer;
}
.period-btn:hover { background: #F0F5FA; }
.period-btn.active {
    background: #0A62CA;
    color: #fff;
    border-color: #0A62CA;
}
.util-cell {
    display: flex;
    align-items: center;
    gap: 10px;
}
.util-bar {
    flex: 1;
    height: 14px;
    background: #EBF0F5;
    border-radius: 7px;
    overflow: hidden;
}
.util-fill {
    height: 100%;
    background: linear-gradient(90deg, #4A93E8, #0A62CA);
    border-radius: 7px;
}
.util-pct {
    font-size: 13px;
    font-weight: bold;
    color: #0A62CA;
    min-width: 52px;
    text-align: right;
}
.stat-total td {
    font-weight: bold;
    background: #F4F8FC;
    color: #1F3B57;
}

/* ===== 공지 / 배너 관리 ===== */
.notice-panel { max-width: 760px; }
.notice-row {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 22px;
}
.notice-row-label {
    font-size: 16px;
    font-weight: bold;
    color: #1F3B57;
}
.notice-label {
    display: block;
    font-size: 14px;
    font-weight: bold;
    color: #6B8299;
    margin-bottom: 8px;
}
.notice-textarea {
    width: 100%;
    border: 1.5px solid #D7E3EF;
    border-radius: 10px;
    padding: 12px 14px;
    font-size: 15px;
    font-family: inherit;
    resize: vertical;
    outline: none;
    box-sizing: border-box;
}
.notice-textarea:focus { border-color: #0A62CA; }
.notice-presets {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 12px;
}
.notice-presets-label {
    font-size: 13px;
    color: #9AAEC0;
    margin-right: 2px;
}
.notice-presets button {
    background: #EAF1F8;
    color: #0A62CA;
    border: 1.5px solid #BCD3E8;
    border-radius: 16px;
    padding: 6px 14px;
    font-size: 13px;
    font-weight: bold;
    cursor: pointer;
}
.notice-presets button:hover { background: #DBE8F4; }
.notice-preview-label {
    margin-top: 26px;
    margin-bottom: 8px;
    font-size: 14px;
    font-weight: bold;
    color: #6B8299;
}
.notice-preview {
    display: flex;
    align-items: center;
    gap: 14px;
    background: #FFF6E0;
    border: 2px solid #F0C674;
    border-radius: 14px;
    padding: 18px 22px;
}
.notice-preview.empty {
    background: #F4F6F8;
    border: 2px dashed #CBD6E0;
}
.notice-preview-icon { font-size: 26px; }
.notice-preview-text {
    font-size: 18px;
    font-weight: bold;
    color: #8A6516;
}
.notice-preview-none {
    font-size: 15px;
    color: #9AAEC0;
}

/* ===== 키오스크 온라인 상태 모니터 ===== */
.kiosk-monitor {
    display: flex;
    align-items: center;
    gap: 16px;
    border-radius: 14px;
    padding: 18px 24px;
    margin-bottom: 22px;
}
.kiosk-monitor.online {
    background: #E8F7EE;
    border: 1.5px solid #A6E2BE;
}
.kiosk-monitor.offline {
    background: #FCEAE8;
    border: 1.5px solid #F0B3AC;
}
.kiosk-monitor-dot {
    width: 16px;
    height: 16px;
    border-radius: 50%;
    flex-shrink: 0;
}
.kiosk-monitor.online .kiosk-monitor-dot {
    background: #27AE60;
    box-shadow: 0 0 0 5px rgba(39, 174, 96, 0.18);
}
.kiosk-monitor.offline .kiosk-monitor-dot {
    background: #E74C3C;
    box-shadow: 0 0 0 5px rgba(231, 76, 60, 0.18);
}
.kiosk-monitor-title {
    font-size: 17px;
    font-weight: bold;
}
.kiosk-monitor.online .kiosk-monitor-title { color: #1E7E4A; }
.kiosk-monitor.offline .kiosk-monitor-title { color: #C0392B; }
.kiosk-monitor-body { flex: 1; }
.kiosk-monitor-sub {
    font-size: 13.5px;
    color: #6B8299;
    margin-top: 3px;
}
.kiosk-restart-btn {
    background: rgba(255, 255, 255, 0.92);
    border: 1.5px solid #C9D3DD;
    border-radius: 9px;
    padding: 10px 18px;
    font-size: 14px;
    font-weight: bold;
    color: #1F3B57;
    cursor: pointer;
    white-space: nowrap;
}
.kiosk-restart-btn:hover { background: #fff; }

/* ===== 세탁기 / 건조기 제어 ===== */
.machine-h2 {
    margin-top: 34px;
    margin-bottom: 14px;
    font-size: 20px;
}
.machine-h2-first { margin-top: 8px; }
.machine-panel { max-width: 760px; }
.m-btn {
    border: none;
    border-radius: 9px;
    padding: 9px 22px;
    font-size: 15px;
    font-weight: bold;
    color: #fff;
    cursor: pointer;
    margin-right: 8px;
}
.m-btn.start { background: #27AE60; }
.m-btn.stop  { background: #E74C3C; }
.m-btn:disabled {
    background: #C9D3DD;
    cursor: default;
}
.cmd-pending {
    color: #E08A3C;
    font-weight: bold;
    font-size: 14px;
}
.facility-note {
    margin-top: 6px;
    color: #9AAEC0;
    font-size: 13px;
}

/* ===== 결제 취소 버튼 ===== */
.btn-cancel {
    background: #E74C3C;
    color: #fff;
    border: none;
    border-radius: 8px;
    padding: 7px 16px;
    font-size: 13px;
    font-weight: bold;
    cursor: pointer;
}
.btn-cancel:hover { background: #C0392B; }
.muted { color: #B0BEC5; }

/* ===== 상태 배지 ===== */
.badge {
    display: inline-block;
    padding: 4px 12px;
    border-radius: 12px;
    font-size: 13px;
    font-weight: bold;
}
.badge.green { background: #E3F6EA; color: #1E7E4A; }
.badge.red   { background: #FCE6E4; color: #C0392B; }
.badge.gray  { background: #ECEFF2; color: #6B8299; }

/* ===== 모바일 반응형 ===== */
@media (max-width: 860px) {

    /* 햄버거 버튼 */
    .nav-toggle-btn {
        display: flex;
        position: fixed;
        top: 10px;
        left: 10px;
        z-index: 70;
        width: 44px;
        height: 44px;
        align-items: center;
        justify-content: center;
        background: #1E3A5F;
        color: #fff;
        border: none;
        border-radius: 8px;
        font-size: 22px;
        cursor: pointer;
        box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25);
    }

    /* 사이드바 — 평소엔 화면 밖, 열면 슬라이드 인 */
    .admin-nav {
        position: fixed;
        top: 0;
        left: 0;
        bottom: 0;
        z-index: 80;
        transform: translateX(-100%);
        transition: transform 0.25s ease;
        overflow-y: auto;
    }
    .admin-layout.nav-open .admin-nav {
        transform: translateX(0);
    }

    /* 어두운 배경 오버레이 */
    .nav-overlay {
        display: block;
        position: fixed;
        inset: 0;
        z-index: 75;
        background: rgba(0, 0, 0, 0.45);
        opacity: 0;
        pointer-events: none;
        transition: opacity 0.25s;
    }
    .admin-layout.nav-open .nav-overlay {
        opacity: 1;
        pointer-events: auto;
    }

    /* 본문 */
    .admin-main { padding: 16px 14px; }
    .admin-topbar {
        padding-left: 52px;   /* 햄버거 버튼 공간 */
        min-height: 44px;
        align-items: center;
    }
    h1 { font-size: 23px; }
    .page-sub { font-size: 13.5px; margin-bottom: 18px; }
    h2 { font-size: 18px; }

    /* 통계 카드 — 2열 */
    .stat-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 12px;
        margin-bottom: 20px;
    }
    .stat-card { padding: 16px; }
    .stat-value { font-size: 23px; }
    .stat-value-sm { font-size: 17px; }

    /* 넓은 표 — 가로 스크롤 */
    .panel {
        padding: 14px;
        overflow-x: auto;
    }
    table { min-width: 560px; }

    /* 설비 제어 · 폼 — 1~2열로 */
    .facility-grid,
    .facility-grid-2 { grid-template-columns: 1fr; }
    .aircon-body { grid-template-columns: 1fr; }
    .dry-form { grid-template-columns: 1fr 1fr; }

    /* 로그인 카드 */
    .login-card { width: 90vw; }

    /* 검색·기간 바 줄바꿈 */
    .member-search input { width: 100%; }
    .member-search { flex-wrap: wrap; }
}
