:root {
    --admin-primary: #173f5f;
    --admin-primary-dark: #102f47;
    --admin-accent: #d89b45;
    --admin-bg: #f5f7fa;
    --admin-card: #ffffff;
    --admin-text: #17202a;
    --admin-muted: #667085;
    --admin-border: #e5e7eb;
    --admin-sidebar: #102f47;
}

.admin-body { background: var(--admin-bg); color: var(--admin-text); }
.admin-shell { min-height: 100vh; display: flex; }
.admin-sidebar { width: 260px; flex: 0 0 260px; background: var(--admin-sidebar); color: #fff; display: flex; flex-direction: column; position: sticky; top: 0; height: 100vh; z-index: 200; }
.admin-brand { padding: 24px 20px; border-bottom: 1px solid rgba(255,255,255,.10); }
.admin-brand a { display:flex; align-items:center; gap:12px; color:#fff; }
.admin-brand-mark { width:42px; height:42px; border-radius:12px; display:grid; place-items:center; background:var(--admin-accent); color:#102f47; font-weight:900; font-size:20px; }
.admin-brand strong { display:block; font-size:16px; letter-spacing:.1px; }
.admin-brand small { display:block; margin-top:2px; color:rgba(255,255,255,.58); font-size:9px; letter-spacing:1.4px; font-weight:700; }
.admin-nav { padding:18px 12px; overflow:auto; }
.admin-nav-section { padding:15px 12px 7px; color:rgba(255,255,255,.42); font-size:10px; text-transform:uppercase; letter-spacing:1.3px; font-weight:800; }
.admin-nav-link { min-height:43px; padding:10px 12px; margin:2px 0; border-radius:9px; display:flex; align-items:center; gap:11px; color:rgba(255,255,255,.76); font-size:14px; font-weight:600; transition:.15s ease; }
.admin-nav-link:hover { background:rgba(255,255,255,.08); color:#fff; }
.admin-nav-link.active { background:#fff; color:var(--admin-primary); box-shadow:0 5px 16px rgba(0,0,0,.12); }
.admin-nav-icon { width:18px; text-align:center; opacity:.9; }
.admin-nav-disabled { opacity:.45; cursor:not-allowed; }
.admin-nav-disabled:hover { background:transparent; color:rgba(255,255,255,.76); }
.admin-coming { margin-left:auto; font-size:8px; text-transform:uppercase; letter-spacing:.6px; padding:3px 6px; border-radius:20px; background:rgba(255,255,255,.10); }
.admin-sidebar-footer { margin-top:auto; padding:15px 16px 20px; border-top:1px solid rgba(255,255,255,.10); }
.admin-back-link { color:rgba(255,255,255,.70); font-size:13px; }
.admin-back-link:hover { color:#fff; }
.admin-main { flex:1; min-width:0; }
.admin-topbar { min-height:76px; padding:0 28px; background:#fff; border-bottom:1px solid var(--admin-border); display:flex; align-items:center; gap:18px; position:sticky; top:0; z-index:100; }
.admin-menu-button { display:none; border:0; background:transparent; font-size:24px; cursor:pointer; color:var(--admin-primary); }
.admin-breadcrumb { flex:1; display:flex; gap:9px; align-items:center; color:#98a2b3; font-size:13px; }
.admin-breadcrumb strong { color:var(--admin-text); }
.admin-user { display:flex; align-items:center; gap:10px; }
.admin-user-avatar { width:38px; height:38px; border-radius:50%; background:#e8f0f6; color:var(--admin-primary); display:grid; place-items:center; font-weight:800; }
.admin-user-copy strong,.admin-user-copy small { display:block; }
.admin-user-copy strong { font-size:13px; }
.admin-user-copy small { color:var(--admin-muted); font-size:11px; }
.admin-signout { border:0; background:transparent; color:var(--admin-muted); cursor:pointer; font-size:12px; margin-left:7px; }
.admin-signout:hover { color:#9d2222; }
.admin-content { padding:30px; max-width:1500px; margin:0 auto; }
.admin-page-head { display:flex; justify-content:space-between; gap:20px; align-items:flex-end; margin-bottom:24px; }
.admin-eyebrow { color:var(--admin-accent); font-size:10px; font-weight:900; letter-spacing:1.6px; }
.admin-page-head h1 { margin:4px 0 3px; font-size:30px; line-height:1.2; }
.admin-page-head p { margin:0; color:var(--admin-muted); font-size:14px; }
.admin-page-actions { display:flex; gap:10px; }
.admin-primary-button,.admin-secondary-button { display:inline-flex; align-items:center; justify-content:center; min-height:42px; padding:0 16px; border-radius:8px; font-size:13px; font-weight:700; }
.admin-primary-button { background:var(--admin-primary); color:#fff; }
.admin-secondary-button { background:#fff; color:var(--admin-primary); border:1px solid var(--admin-border); }
.admin-alert { margin-bottom:18px; padding:13px 15px; border-radius:9px; font-size:13px; }
.admin-alert-warning { background:#fff8e8; border:1px solid #f2dfb0; color:#815b00; }
.admin-filter-bar { min-height:68px; padding:12px 16px; background:#fff; border:1px solid var(--admin-border); border-radius:10px; margin-bottom:20px; display:flex; justify-content:space-between; align-items:center; gap:20px; }
.admin-filter-bar label { display:block; margin-bottom:3px; color:var(--admin-muted); font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.8px; }
.admin-filter-bar select { min-width:290px; border:1px solid var(--admin-border); border-radius:7px; padding:8px 11px; background:#fff; color:var(--admin-text); outline:none; }
.admin-property-context { font-size:12px; color:var(--admin-muted); display:flex; align-items:center; gap:7px; }
.admin-status-dot { width:8px; height:8px; border-radius:50%; display:inline-block; }
.admin-status-dot.active { background:#18a957; }
.admin-status-dot.inactive { background:#98a2b3; }
.admin-kpi-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; margin-bottom:20px; }
.admin-kpi-card { background:#fff; border:1px solid var(--admin-border); border-radius:12px; padding:19px; display:flex; gap:14px; align-items:flex-start; box-shadow:0 2px 8px rgba(16,47,71,.03); }
.admin-kpi-icon { width:42px; height:42px; flex:0 0 42px; border-radius:10px; display:grid; place-items:center; font-weight:900; }
.admin-kpi-icon.blue { background:#e8f0f6; color:#173f5f; }
.admin-kpi-icon.green { background:#eaf8f0; color:#16834a; }
.admin-kpi-icon.amber { background:#fff5df; color:#a56b00; }
.admin-kpi-icon.red { background:#fff0f0; color:#a52b2b; }
.admin-kpi-card span,.admin-kpi-card small { display:block; color:var(--admin-muted); font-size:11px; }
.admin-kpi-card strong { display:block; margin:2px 0; font-size:25px; line-height:1.1; }
.admin-dashboard-grid { display:grid; grid-template-columns:minmax(0,2fr) minmax(280px,1fr); gap:20px; }
.admin-panel { background:#fff; border:1px solid var(--admin-border); border-radius:12px; box-shadow:0 2px 8px rgba(16,47,71,.03); overflow:hidden; }
.admin-panel-head { padding:19px 20px; border-bottom:1px solid var(--admin-border); display:flex; justify-content:space-between; align-items:flex-start; gap:15px; }
.admin-panel-head h2 { margin:0 0 2px; font-size:17px; }
.admin-panel-head p { margin:0; color:var(--admin-muted); font-size:12px; }
.admin-panel-link { color:var(--admin-primary); font-size:12px; font-weight:700; white-space:nowrap; }
.admin-table-wrap { overflow-x:auto; }
.admin-table { width:100%; border-collapse:collapse; font-size:12px; }
.admin-table th { padding:11px 15px; background:#fafbfc; color:#667085; text-align:left; font-size:10px; text-transform:uppercase; letter-spacing:.7px; white-space:nowrap; }
.admin-table td { padding:12px 15px; border-top:1px solid #eef0f2; vertical-align:middle; white-space:nowrap; }
.admin-table td small { display:block; color:#98a2b3; font-size:10px; max-width:180px; overflow:hidden; text-overflow:ellipsis; }
.admin-table-link { color:var(--admin-primary); font-weight:800; }
.text-right { text-align:right !important; }
.admin-status { display:inline-flex; align-items:center; padding:4px 8px; border-radius:20px; font-size:10px; font-weight:800; }
.admin-status.success { background:#eaf8f0; color:#167345; }
.admin-status.warning { background:#fff5df; color:#956300; }
.admin-status.danger { background:#fff0f0; color:#a52b2b; }
.admin-status.muted { background:#f0f2f4; color:#667085; }
.admin-status.info { background:#edf4fb; color:#1f5e8b; }
.admin-empty-state { text-align:center; padding:52px 20px; color:var(--admin-muted); }
.admin-empty-icon { width:48px; height:48px; margin:0 auto 10px; border-radius:12px; background:#edf3f7; color:var(--admin-primary); display:grid; place-items:center; font-size:20px; }
.admin-empty-state h3 { margin:0 0 5px; color:var(--admin-text); font-size:15px; }
.admin-empty-state p { margin:0; font-size:12px; }
.admin-revenue-value { padding:28px 20px 5px; font-size:32px; font-weight:900; color:var(--admin-primary); }
.admin-revenue-note { padding:0 20px 20px; color:var(--admin-muted); font-size:11px; line-height:1.5; }
.admin-quick-links { border-top:1px solid var(--admin-border); }
.admin-quick-links a { padding:12px 20px; display:flex; justify-content:space-between; border-bottom:1px solid #eef0f2; color:var(--admin-primary); font-size:12px; font-weight:700; }
.admin-quick-links a:last-child { border-bottom:0; }

@media (max-width: 1100px) {
    .admin-sidebar { width:220px; flex-basis:220px; }
    .admin-kpi-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .admin-dashboard-grid { grid-template-columns:1fr; }
}

@media (max-width: 760px) {
    .admin-sidebar { position:fixed; left:-270px; width:260px; transition:left .2s ease; }
    .admin-sidebar.open { left:0; box-shadow:12px 0 30px rgba(0,0,0,.18); }
    .admin-menu-button { display:block; }
    .admin-topbar { padding:0 15px; }
    .admin-user-copy,.admin-signout { display:none; }
    .admin-content { padding:20px 15px; }
    .admin-page-head { align-items:flex-start; flex-direction:column; }
    .admin-page-actions { width:100%; }
    .admin-page-actions a { flex:1; }
    .admin-filter-bar { align-items:flex-start; flex-direction:column; }
    .admin-filter-bar select { min-width:0; width:100%; }
    .admin-kpi-grid { grid-template-columns:1fr 1fr; gap:10px; }
    .admin-kpi-card { padding:13px; }
    .admin-kpi-icon { width:36px; height:36px; flex-basis:36px; }
}

@media (max-width: 480px) {
    .admin-kpi-grid { grid-template-columns:1fr; }
    .admin-breadcrumb { display:none; }
}


/* =========================================================
   Property management
   ========================================================= */
.admin-properties-table td { min-width: 120px; }
.admin-action-cell { white-space: nowrap !important; }
.admin-table-action { display:inline-block; margin-left:10px; color:var(--admin-primary); font-size:11px; font-weight:800; }
.admin-table-action:first-child { margin-left:0; }
.admin-form-panel { background:#fff; border:1px solid var(--admin-border); border-radius:12px; box-shadow:0 2px 8px rgba(16,47,71,.03); overflow:hidden; }
.admin-form-section { padding:24px; border-bottom:1px solid var(--admin-border); }
.admin-form-section:last-of-type { border-bottom:0; }
.admin-form-section h2 { margin:0 0 4px; font-size:17px; }
.admin-form-section > p { margin:0 0 18px; color:var(--admin-muted); font-size:12px; }
.admin-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:17px 18px; }
.admin-form-field { min-width:0; }
.admin-form-field-full { grid-column:1 / -1; }
.admin-form-field label { display:block; margin-bottom:6px; color:#475467; font-size:11px; font-weight:800; }
.admin-form-field input,.admin-form-field textarea { width:100%; box-sizing:border-box; border:1px solid #d7dce2; border-radius:8px; padding:10px 11px; background:#fff; color:var(--admin-text); font:inherit; font-size:13px; outline:none; }
.admin-form-field textarea { resize:vertical; min-height:96px; }
.admin-form-field input:focus,.admin-form-field textarea:focus { border-color:#7f9db5; box-shadow:0 0 0 3px rgba(23,63,95,.08); }
.admin-form-field > span { display:block; margin-top:5px; color:#a52b2b; font-size:10px; }
.admin-form-field > small { display:block; margin-top:5px; color:#98a2b3; font-size:10px; line-height:1.4; }
.admin-form-checkbox { display:flex; align-items:end; }
.admin-form-checkbox label { display:flex; align-items:center; gap:8px; min-height:40px; margin:0; color:var(--admin-text); font-size:12px; }
.admin-form-checkbox input { width:auto; }
.admin-form-actions { padding:18px 24px; display:flex; justify-content:flex-end; gap:10px; background:#fafbfc; border-top:1px solid var(--admin-border); }
.admin-reference-strip { margin:20px 24px 0; padding:14px; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; background:#f7f9fb; border:1px solid var(--admin-border); border-radius:9px; }
.admin-reference-strip div { min-width:0; }
.admin-reference-strip span,.admin-reference-strip small { display:block; color:var(--admin-muted); font-size:9px; }
.admin-reference-strip strong { display:block; margin:3px 0; font-size:12px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

@media (max-width: 760px) {
    .admin-form-grid { grid-template-columns:1fr; }
    .admin-form-field-full { grid-column:auto; }
    .admin-reference-strip { grid-template-columns:1fr 1fr; margin-left:15px; margin-right:15px; }
    .admin-form-section { padding:18px 15px; }
    .admin-form-actions { padding:15px; }
}

/* =========================================================
   Room type management
   ========================================================= */
.admin-alert-success { background:#eaf8f0; border:1px solid #c9ead7; color:#167345; }
.admin-alert-danger { background:#fff0f0; border:1px solid #f0caca; color:#a52b2b; }
.room-type-kpis .admin-kpi-card { min-width:0; }
.room-type-property-value { font-size:16px !important; line-height:1.25 !important; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:180px; }
.room-types-table th,.room-types-table td { vertical-align:middle; }
.room-type-code-badge { display:inline-flex; align-items:center; justify-content:center; min-height:25px; padding:0 8px; border-radius:6px; background:#edf4fb; color:var(--admin-primary); font-size:10px; font-weight:900; letter-spacing:.5px; }
.room-type-detail-layout { align-items:start; }
.room-type-detail-body { padding:20px; }
.room-type-description-panel { margin-bottom:20px; padding:15px; background:#f7f9fb; border:1px solid var(--admin-border); border-radius:9px; }
.room-type-description-panel .detail-label { display:block; margin-bottom:5px; color:var(--admin-muted); font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.7px; }
.room-type-description-panel p { margin:0; color:#475467; font-size:13px; line-height:1.6; white-space:pre-wrap; }
.room-type-detail-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); border:1px solid var(--admin-border); border-radius:9px; overflow:hidden; }
.room-type-detail-grid > div { padding:15px; border-right:1px solid var(--admin-border); border-bottom:1px solid var(--admin-border); min-width:0; }
.room-type-detail-grid > div:nth-child(2n) { border-right:0; }
.room-type-detail-grid > div:nth-last-child(-n+2) { border-bottom:0; }
.room-type-detail-grid span,.room-type-meta-list span { display:block; margin-bottom:5px; color:var(--admin-muted); font-size:10px; font-weight:700; }
.room-type-detail-grid strong,.room-type-meta-list strong { display:block; color:var(--admin-text); font-size:13px; overflow:hidden; text-overflow:ellipsis; }
.room-type-meta-list { padding:8px 20px 20px; }
.room-type-meta-list > div { display:flex; justify-content:space-between; align-items:flex-start; gap:15px; padding:14px 0; border-bottom:1px solid #eef0f2; }
.room-type-meta-list > div:last-child { border-bottom:0; }
.room-type-meta-list strong { text-align:right; }
.room-type-next-panel { margin-top:20px; }
.room-type-next-actions { padding:18px 20px; display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
.room-type-next-actions form { margin:0 0 0 auto; }
.admin-danger-button { display:inline-flex; align-items:center; justify-content:center; min-height:42px; padding:0 16px; border:1px solid #e2b5b5; border-radius:8px; background:#fff; color:#a52b2b; font-size:13px; font-weight:700; cursor:pointer; }
.admin-danger-button:hover { background:#fff5f5; }

@media (max-width: 760px) {
    .room-type-detail-grid { grid-template-columns:1fr; }
    .room-type-detail-grid > div,
    .room-type-detail-grid > div:nth-child(2n),
    .room-type-detail-grid > div:nth-last-child(-n+2) { border-right:0; border-bottom:1px solid var(--admin-border); }
    .room-type-detail-grid > div:last-child { border-bottom:0; }
    .room-type-next-actions { align-items:stretch; flex-direction:column; }
    .room-type-next-actions form { margin:0; width:100%; }
    .room-type-next-actions a,.room-type-next-actions button { width:100%; }
    .room-type-meta-list > div { flex-direction:column; }
    .room-type-meta-list strong { text-align:left; }
}

/* =========================================================
   Room management
   ========================================================= */
.room-kpis .admin-kpi-card { min-width:0; }
.room-filter-panel { margin-bottom:20px; }
.room-filter-form { display:flex; align-items:flex-end; justify-content:space-between; gap:16px; padding:18px 20px; }
.room-filter-form > div:first-child { min-width:260px; flex:1; max-width:520px; }
.room-filter-form label { display:block; margin-bottom:6px; color:#475467; font-size:11px; font-weight:800; }
.room-filter-form select { width:100%; box-sizing:border-box; border:1px solid #d7dce2; border-radius:8px; padding:10px 11px; background:#fff; color:var(--admin-text); font:inherit; font-size:13px; }
.room-filter-form select:focus { border-color:#7f9db5; box-shadow:0 0 0 3px rgba(23,63,95,.08); outline:none; }
.room-filter-actions { display:flex; gap:9px; flex-wrap:wrap; }
.rooms-table th,.rooms-table td { vertical-align:middle; }
.room-code-inline { display:block; margin-top:3px; color:var(--admin-muted); font-size:10px; letter-spacing:.3px; }
.room-detail-layout { align-items:start; }
.room-detail-status-row { display:flex; align-items:center; gap:12px; margin:0 0 18px; }
.room-detail-property { color:var(--admin-muted); font-size:12px; }
.room-detail-separator { color:#98a2b3; margin:0 5px; }
.room-detail-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
.room-detail-grid > div { padding:16px 20px; border-right:1px solid var(--admin-border); border-bottom:1px solid var(--admin-border); min-width:0; }
.room-detail-grid > div:nth-child(2n) { border-right:0; }
.room-detail-grid > div:nth-last-child(-n+2) { border-bottom:0; }
.room-detail-grid span { display:block; margin-bottom:5px; color:var(--admin-muted); font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.4px; }
.room-detail-grid strong { display:block; color:var(--admin-text); font-size:13px; overflow:hidden; text-overflow:ellipsis; }
.room-detail-actions { padding:20px; display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
.room-detail-actions form { margin:0 0 0 auto; }
.room-detail-note { margin:0 20px 20px; padding:14px; border:1px solid var(--admin-border); border-radius:9px; background:#f7f9fb; }
.room-detail-note strong { display:block; margin-bottom:4px; font-size:11px; }
.room-detail-note p { margin:0; color:var(--admin-muted); font-size:11px; line-height:1.5; }
.admin-validation-summary { margin-bottom:18px; padding:11px 13px; border-radius:8px; background:#fff0f0; border:1px solid #f0caca; color:#a52b2b; font-size:12px; }
.admin-form-field select { width:100%; box-sizing:border-box; border:1px solid #d7dce2; border-radius:8px; padding:10px 11px; background:#fff; color:var(--admin-text); font:inherit; font-size:13px; outline:none; }
.admin-form-field select:focus { border-color:#7f9db5; box-shadow:0 0 0 3px rgba(23,63,95,.08); }
.room-no-type-warning { margin-top:20px; }
.room-no-type-warning a { margin-left:5px; font-weight:800; color:inherit; }
.admin-primary-button:disabled { opacity:.5; cursor:not-allowed; }

@media (max-width: 900px) {
    .room-detail-layout { grid-template-columns:1fr; }
}

@media (max-width: 760px) {
    .room-filter-form { align-items:stretch; flex-direction:column; }
    .room-filter-form > div:first-child { max-width:none; }
    .room-filter-actions { width:100%; }
    .room-filter-actions a,.room-filter-actions button { flex:1; }
    .room-detail-grid { grid-template-columns:1fr; }
    .room-detail-grid > div,
    .room-detail-grid > div:nth-child(2n),
    .room-detail-grid > div:nth-last-child(-n+2) { border-right:0; border-bottom:1px solid var(--admin-border); }
    .room-detail-grid > div:last-child { border-bottom:0; }
    .room-detail-actions { flex-direction:column; align-items:stretch; }
    .room-detail-actions form { margin:0; }
    .room-detail-actions a,.room-detail-actions button { width:100%; }
}


.admin-brand-logo { width:42px; height:42px; border-radius:12px; object-fit:contain; background:#fff; padding:4px; box-sizing:border-box; }
.admin-branding-preview { margin-top:10px; width:180px; height:80px; border:1px solid var(--admin-border); border-radius:8px; background:#fafbfc; display:flex; align-items:center; justify-content:center; overflow:hidden; }
.admin-branding-preview img { max-width:100%; max-height:100%; object-fit:contain; }
.admin-branding-preview-small { width:64px; height:64px; }
.admin-branding-preview-small img { width:48px; height:48px; }

/* =========================================================
   ROOM RATES
   ========================================================= */

.room-rate-form-page,
.room-rate-details-page {
    max-width: 1180px;
    margin: 0 auto;
}

.room-rate-form-card,
.room-rate-details-card {
    background: #fff;
    border: 1px solid var(--admin-border, #e5e7eb);
    border-radius: 14px;
    box-shadow: 0 4px 18px rgba(0, 0, 0, .05);
    overflow: hidden;
}

.room-rate-form-card-header,
.room-rate-details-card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 20px 24px;
    border-bottom: 1px solid var(--admin-border, #e5e7eb);
}

    .room-rate-form-card-header h2,
    .room-rate-details-card-header h2 {
        margin: 0;
        font-size: 20px;
        font-weight: 700;
        color: var(--admin-text, #1f2937);
    }

    .room-rate-form-card-header p,
    .room-rate-details-card-header p {
        margin: 5px 0 0;
        color: #6b7280;
        font-size: 13px;
    }

.room-rate-form-card-body,
.room-rate-details-card-body {
    padding: 24px;
}

/* Form */

.room-rate-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
}

.room-rate-form-group {
    display: flex;
    flex-direction: column;
    gap: 7px;
}

    .room-rate-form-group.full-width {
        grid-column: 1 / -1;
    }

    .room-rate-form-group label {
        font-size: 13px;
        font-weight: 600;
        color: #374151;
    }

    .room-rate-form-group input,
    .room-rate-form-group select,
    .room-rate-form-group textarea {
        width: 100%;
        min-height: 42px;
        padding: 9px 12px;
        border: 1px solid #d1d5db;
        border-radius: 8px;
        background: #fff;
        color: #111827;
        font-size: 14px;
        box-sizing: border-box;
        transition: border-color .15s ease, box-shadow .15s ease;
    }

    .room-rate-form-group textarea {
        min-height: 100px;
        resize: vertical;
    }

        .room-rate-form-group input:focus,
        .room-rate-form-group select:focus,
        .room-rate-form-group textarea:focus {
            outline: none;
            border-color: var(--admin-primary, #2563eb);
            box-shadow: 0 0 0 3px rgba(37, 99, 235, .10);
        }

    .room-rate-form-group input[readonly] {
        background: #f9fafb;
        color: #6b7280;
    }

.room-rate-form-help {
    margin: 0;
    font-size: 12px;
    color: #6b7280;
}

.room-rate-validation {
    margin-top: 5px;
    color: #b91c1c;
    font-size: 12px;
}

/* Form actions */

.room-rate-form-actions {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 10px;
    margin-top: 24px;
    padding-top: 20px;
    border-top: 1px solid #e5e7eb;
}

    .room-rate-form-actions a,
    .room-rate-form-actions button {
        min-height: 40px;
        padding: 9px 16px;
        border-radius: 8px;
        font-size: 13px;
        font-weight: 600;
        text-decoration: none;
        cursor: pointer;
    }

    .room-rate-form-actions .btn-primary {
        border: 1px solid var(--admin-primary, #2563eb);
        background: var(--admin-primary, #2563eb);
        color: #fff;
    }

        .room-rate-form-actions .btn-primary:hover {
            filter: brightness(.95);
        }

    .room-rate-form-actions .btn-secondary {
        border: 1px solid #d1d5db;
        background: #fff;
        color: #374151;
    }

        .room-rate-form-actions .btn-secondary:hover {
            background: #f9fafb;
        }

/* Details */

.room-rate-details-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    overflow: hidden;
}

.room-rate-detail-item {
    padding: 16px 18px;
    border-bottom: 1px solid #e5e7eb;
}

    .room-rate-detail-item:nth-child(odd) {
        border-right: 1px solid #e5e7eb;
    }

    .room-rate-detail-item:nth-last-child(-n + 2) {
        border-bottom: 0;
    }

.room-rate-detail-label {
    display: block;
    margin-bottom: 5px;
    color: #6b7280;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.room-rate-detail-value {
    color: #111827;
    font-size: 15px;
    font-weight: 600;
}

    .room-rate-detail-value.rate-amount {
        font-size: 20px;
        font-weight: 700;
    }

/* Status */

.room-rate-status {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 5px 9px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 700;
    white-space: nowrap;
}

    .room-rate-status::before {
        content: "";
        width: 6px;
        height: 6px;
        border-radius: 50%;
        background: currentColor;
    }

    .room-rate-status.active,
    .room-rate-status.current {
        color: #166534;
        background: #dcfce7;
    }

    .room-rate-status.inactive {
        color: #6b7280;
        background: #f3f4f6;
    }

    .room-rate-status.future {
        color: #1d4ed8;
        background: #dbeafe;
    }

    .room-rate-status.expired {
        color: #991b1b;
        background: #fee2e2;
    }

/* Index / table */

.room-rate-index-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 20px;
}

.room-rate-index-title h1 {
    margin: 0;
    color: #111827;
    font-size: 25px;
    font-weight: 750;
}

.room-rate-index-title p {
    margin: 5px 0 0;
    color: #6b7280;
    font-size: 14px;
}

.room-rate-kpi-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 20px;
}

.room-rate-kpi {
    padding: 17px 18px;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    box-shadow: 0 3px 12px rgba(0, 0, 0, .04);
}

.room-rate-kpi-label {
    color: #6b7280;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.room-rate-kpi-value {
    margin-top: 5px;
    color: #111827;
    font-size: 24px;
    font-weight: 750;
}

.room-rate-filter-card {
    margin-bottom: 18px;
    padding: 16px;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
}

.room-rate-filter-grid {
    display: grid;
    grid-template-columns: minmax(220px, 1fr) minmax(160px, 220px) auto;
    align-items: end;
    gap: 12px;
}

.room-rate-filter-group {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

    .room-rate-filter-group label {
        color: #4b5563;
        font-size: 12px;
        font-weight: 600;
    }

    .room-rate-filter-group select,
    .room-rate-filter-group input {
        min-height: 40px;
        padding: 8px 11px;
        border: 1px solid #d1d5db;
        border-radius: 8px;
        background: #fff;
        font-size: 13px;
    }

.room-rate-filter-actions {
    display: flex;
    gap: 8px;
}

.room-rate-table-wrapper {
    overflow-x: auto;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
}

.room-rate-table {
    width: 100%;
    min-width: 850px;
    border-collapse: collapse;
}

    .room-rate-table th {
        padding: 12px 14px;
        background: #f9fafb;
        border-bottom: 1px solid #e5e7eb;
        color: #6b7280;
        font-size: 11px;
        font-weight: 700;
        letter-spacing: .04em;
        text-align: left;
        text-transform: uppercase;
        white-space: nowrap;
    }

    .room-rate-table td {
        padding: 14px;
        border-bottom: 1px solid #f0f1f3;
        color: #374151;
        font-size: 13px;
        vertical-align: middle;
    }

    .room-rate-table tbody tr:last-child td {
        border-bottom: 0;
    }

    .room-rate-table tbody tr:hover {
        background: #fafafa;
    }

    .room-rate-table .rate-name {
        color: #111827;
        font-weight: 700;
    }

    .room-rate-table .rate-amount {
        color: #111827;
        font-weight: 700;
        white-space: nowrap;
    }

    .room-rate-table .rate-date {
        color: #4b5563;
        white-space: nowrap;
    }

/* Index action buttons */

.room-rate-actions {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    white-space: nowrap;
}

.room-rate-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 32px;
    padding: 6px 10px;
    border: 1px solid #d1d5db;
    border-radius: 7px;
    background: #fff;
    color: #374151;
    font-size: 12px;
    font-weight: 600;
    text-decoration: none;
}

    .room-rate-action:hover {
        background: #f9fafb;
        border-color: #9ca3af;
    }

    .room-rate-action.primary {
        border-color: var(--admin-primary, #2563eb);
        background: var(--admin-primary, #2563eb);
        color: #fff;
    }

        .room-rate-action.primary:hover {
            filter: brightness(.95);
        }

    .room-rate-action.danger {
        border-color: #fecaca;
        color: #b91c1c;
    }

        .room-rate-action.danger:hover {
            background: #fef2f2;
        }

/* Empty state */

.room-rate-empty {
    padding: 50px 24px;
    text-align: center;
}

.room-rate-empty-icon {
    margin-bottom: 12px;
    color: #9ca3af;
    font-size: 32px;
}

.room-rate-empty h3 {
    margin: 0;
    color: #374151;
    font-size: 16px;
}

.room-rate-empty p {
    margin: 6px 0 18px;
    color: #6b7280;
    font-size: 13px;
}

/* Delete / warning area */

.room-rate-danger-zone {
    margin-top: 24px;
    padding: 18px;
    border: 1px solid #fecaca;
    border-radius: 10px;
    background: #fff7f7;
}

    .room-rate-danger-zone h3 {
        margin: 0 0 5px;
        color: #991b1b;
        font-size: 15px;
    }

    .room-rate-danger-zone p {
        margin: 0;
        color: #7f1d1d;
        font-size: 13px;
    }

/* Alerts */

.room-rate-alert {
    margin-bottom: 18px;
    padding: 12px 14px;
    border-radius: 8px;
    font-size: 13px;
}

    .room-rate-alert.error {
        border: 1px solid #fecaca;
        background: #fef2f2;
        color: #991b1b;
    }

    .room-rate-alert.success {
        border: 1px solid #bbf7d0;
        background: #f0fdf4;
        color: #166534;
    }

/* Responsive */

@media (max-width: 1000px) {
    .room-rate-kpi-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .room-rate-filter-grid {
        grid-template-columns: 1fr 1fr;
    }

    .room-rate-filter-actions {
        grid-column: 1 / -1;
    }
}

@media (max-width: 700px) {
    .room-rate-form-grid,
    .room-rate-details-grid {
        grid-template-columns: 1fr;
    }

    .room-rate-detail-item:nth-child(odd) {
        border-right: 0;
    }

    .room-rate-detail-item:nth-last-child(-n + 2) {
        border-bottom: 1px solid #e5e7eb;
    }

    .room-rate-detail-item:last-child {
        border-bottom: 0;
    }

    .room-rate-kpi-grid {
        grid-template-columns: 1fr;
    }

    .room-rate-filter-grid {
        grid-template-columns: 1fr;
    }

    .room-rate-filter-actions {
        grid-column: auto;
    }

    .room-rate-index-header {
        flex-direction: column;
    }

    .room-rate-form-card-header,
    .room-rate-details-card-header {
        align-items: flex-start;
        flex-direction: column;
    }

    .room-rate-form-card-body,
    .room-rate-details-card-body {
        padding: 18px;
    }

    .room-rate-form-actions {
        flex-direction: column-reverse;
        align-items: stretch;
    }

        .room-rate-form-actions a,
        .room-rate-form-actions button {
            width: 100%;
            text-align: center;
        }
}