*{box-sizing:border-box;font-family:Inter,Arial,sans-serif}body{margin:0;background:#f3f5f8;color:#111827}.app-layout{display:flex;min-height:100vh}.sidebar{width:270px;background:#101827;color:#fff;padding:24px 18px}.brand{display:flex;gap:12px;align-items:center}.brand-icon{width:44px;height:44px;border-radius:14px;background:#2563eb;display:flex;align-items:center;justify-content:center;font-weight:800}.brand h2{margin:0;font-size:22px}.brand span{color:#9ca3af;font-size:13px}.menu{display:flex;flex-direction:column;gap:8px;margin-top:34px}.menu a{color:#d1d5db;text-decoration:none;padding:13px 14px;border-radius:12px;cursor:pointer}.menu a.active,.menu a:hover{background:#2563eb;color:#fff}.main-content{flex:1;padding:28px}.topbar{background:#fff;border-radius:18px;padding:22px;display:flex;justify-content:space-between;align-items:center;box-shadow:0 8px 20px rgba(15,23,42,.05)}.topbar h1{margin:0;font-size:28px}.topbar p{margin:6px 0 0;color:#6b7280}.topbar-actions{display:flex;gap:10px}.btn-primary,.btn-light{border:none;border-radius:12px;padding:12px 17px;font-weight:700;cursor:pointer}.btn-primary{background:#2563eb;color:#fff}.btn-primary:hover{background:#1d4ed8}.btn-light{background:#e5e7eb;color:#111827}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:22px}.stat-card,.panel,.category-block{background:#fff;border-radius:18px;padding:22px;box-shadow:0 8px 20px rgba(15,23,42,.05)}.stat-card span{color:#6b7280;display:block;margin-bottom:10px}.stat-card strong{font-size:28px}.panel{margin-top:22px}.panel-header,.category-header{display:flex;justify-content:space-between;align-items:center}.quick-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.quick-actions a{background:#eff6ff;color:#1d4ed8;text-decoration:none;border-radius:14px;padding:18px;font-weight:700}table{width:100%;border-collapse:collapse;margin-top:16px}th,td{padding:14px;border-bottom:1px solid #e5e7eb;text-align:left}th{color:#6b7280;font-size:13px}.empty{text-align:center;color:#9ca3af}.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.55);display:none;align-items:center;justify-content:center;padding:20px}.modal-overlay.show{display:flex}.modal{background:#fff;border-radius:20px;padding:24px;width:760px;max-width:95%;max-height:92vh;overflow:auto}.modal-large{width:900px}.modal-header{display:flex;justify-content:space-between;align-items:center}.modal-header h2{margin:0}.modal-header button{font-size:32px;border:none;background:transparent;cursor:pointer}.steps{display:flex;gap:10px;margin:18px 0}.step{background:#e5e7eb;border-radius:999px;padding:8px 12px;font-size:13px}.step.active{background:#2563eb;color:#fff}.form-section{margin-top:18px}.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:13px}input,select,textarea{width:100%;border:1px solid #d1d5db;border-radius:12px;padding:13px;outline:none}textarea{margin-top:13px;min-height:90px}.modal-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:22px}.filter-bar{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:22px}.room-board{margin-top:22px;display:flex;flex-direction:column;gap:22px}.category-header h2{margin:0}.category-header span{background:#f3f4f6;border-radius:999px;padding:8px 12px;color:#374151;font-weight:700}.rooms-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:18px}.room-card{border-radius:18px;padding:20px;border:2px solid transparent;min-height:145px;display:flex;flex-direction:column;gap:10px}.room-card strong{font-size:30px}.room-card span{font-weight:700}.room-card button{margin-top:auto;border:none;border-radius:10px;padding:10px;cursor:pointer;font-weight:700}.room-card.available{background:#ecfdf5;border-color:#10b981}.room-card.occupied{background:#fef2f2;border-color:#ef4444}.room-card.cleaning{background:#fffbeb;border-color:#f59e0b}.room-card.maintenance{background:#f3f4f6;border-color:#6b7280}.settings-form{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.settings-form label{font-weight:700;color:#374151}.settings-form input,.settings-form select{margin-top:8px}@media(max-width:950px){.app-layout{flex-direction:column}.sidebar{width:100%}.stats-grid,.quick-actions,.rooms-grid,.filter-bar,.settings-form{grid-template-columns:1fr}.grid-2{grid-template-columns:1fr}.topbar{flex-direction:column;align-items:flex-start;gap:14px}}
.login-body {
    min-height: 100vh;
    background: #F8FAFC;
    display: flex;
    justify-content: center;
    align-items: center;
}

.login-card {
    width: 390px;
    background: white;
    padding: 32px;
    border-radius: 22px;
    box-shadow: 0 20px 60px rgba(10, 42, 102, 0.12);
}

.login-logo {
    text-align: center;
    margin-bottom: 26px;
}

.login-logo h1 {
    color: #0A2A66;
    margin: 0;
    font-size: 42px;
}

.login-logo p {
    color: #FFB020;
    margin-top: 6px;
    font-weight: 600;
}

.login-card input {
    margin-bottom: 14px;
}

.login-card button {
    width: 100%;
}

.login-message {
    text-align: center;
    margin-top: 14px;
    color: #EF4444;
    font-size: 14px;
}
.topbar-actions {
    display: flex;
    align-items: center;
    gap: 14px;
}

.user-box {
    display: flex;
    align-items: center;
    gap: 12px;
    background: #F8FAFC;
    border: 1px solid #E5E7EB;
    padding: 10px 12px;
    border-radius: 14px;
}

.user-box strong {
    display: block;
    color: #0A2A66;
    font-size: 14px;
}

.user-box small {
    color: #64748B;
    font-size: 12px;
}

.btn-danger {
    background: #EF4444;
    color: white;
    border: none;
    padding: 9px 13px;
    border-radius: 10px;
    cursor: pointer;
    font-weight: 600;
}

.btn-danger:hover {
    opacity: 0.9;
}

.dashboard-grid {
    margin-top: 24px;
    display: grid;
    grid-template-columns: 1.3fr 1fr;
    gap: 20px;
}

.alert-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.alert-item {
    padding: 14px;
    border-radius: 14px;
    background: #F8FAFC;
    border-left: 5px solid #0A2A66;
}

.alert-item strong {
    display: block;
    margin-bottom: 5px;
    color: #0A2A66;
}

.alert-item span {
    color: #64748B;
    font-size: 14px;
}

.alert-item.warning {
    border-left-color: #FFB020;
}

.alert-item.success {
    border-left-color: #22C55E;
}

.alert-item.danger {
    border-left-color: #EF4444;
}

@media (max-width: 900px) {
    .topbar {
        flex-direction: column;
        align-items: flex-start;
        gap: 16px;
    }

    .topbar-actions {
        width: 100%;
        flex-direction: column;
        align-items: stretch;
    }

    .dashboard-grid {
        grid-template-columns: 1fr;
    }

    .user-box {
        justify-content: space-between;
    }
}

.large-modal {
    width: 900px;
    max-width: 96%;
}

.modal-header p {
    margin: 6px 0 0;
    color: #64748B;
}

.hospedagens-list {
    display: flex;
    flex-direction: column;
    gap: 14px;
    margin-top: 18px;
}

.hospedagem-card {
    background: #FFFFFF;
    border: 1px solid #E5E7EB;
    border-radius: 18px;
    padding: 18px;
    display: grid;
    grid-template-columns: 1.5fr 1fr auto;
    align-items: center;
    gap: 16px;
}

.hospedagem-card h3 {
    margin: 0;
    color: #0A2A66;
    font-size: 20px;
}

.hospedagem-card p {
    margin: 6px 0 10px;
    color: #64748B;
}

.hospedagem-stats {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}

.hospedagem-stats span {
    background: #F8FAFC;
    padding: 10px 12px;
    border-radius: 12px;
    color: #64748B;
    font-size: 14px;
}

.hospedagem-stats strong {
    color: #0A2A66;
}

.card-actions {
    display: flex;
    justify-content: flex-end;
}

.badge {
    display: inline-block;
    padding: 6px 10px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 700;
}

.badge-success {
    background: #DCFCE7;
    color: #166534;
}

.badge-warning {
    background: #FEF3C7;
    color: #92400E;
}

.empty-state {
    background: #F8FAFC;
    border: 1px dashed #CBD5E1;
    color: #64748B;
    padding: 30px;
    text-align: center;
    border-radius: 18px;
}

.toast-container {
    position: fixed;
    top: 20px;
    right: 20px;
    z-index: 9999;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.toast {
    min-width: 330px;
    max-width: 430px;
    background: white;
    border-radius: 16px;
    padding: 14px 16px;
    box-shadow: 0 20px 60px rgba(15, 23, 42, 0.18);
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: start;
    gap: 12px;
    border-left: 6px solid #22C55E;
    animation: slideIn .25s ease;
}

.toast-icon {
    font-size: 20px;
}

.toast strong {
    display: block;
    color: #0A2A66;
    margin-bottom: 3px;
}

.toast p {
    margin: 0;
    color: #64748B;
    font-size: 14px;
}

.toast button {
    border: none;
    background: transparent;
    font-size: 22px;
    cursor: pointer;
    color: #64748B;
}

.toast-success {
    border-left-color: #22C55E;
}

.toast-error {
    border-left-color: #EF4444;
}

.toast-warning {
    border-left-color: #FFB020;
}

.toast-info {
    border-left-color: #0A2A66;
}

@keyframes slideIn {
    from {
        transform: translateX(30px);
        opacity: 0;
    }

    to {
        transform: translateX(0);
        opacity: 1;
    }
}

@media (max-width: 900px) {
    .hospedagem-card {
        grid-template-columns: 1fr;
    }

    .card-actions {
        justify-content: flex-start;
    }

    .toast-container {
        left: 12px;
        right: 12px;
    }

    .toast {
        min-width: unset;
        width: 100%;
    }
}

.setup-summary {
    margin-top: 24px;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 18px;
}

.summary-card {
    background: #FFFFFF;
    padding: 20px;
    border-radius: 18px;
    box-shadow: 0 10px 35px rgba(15, 23, 42, 0.06);
}

.summary-card span {
    display: block;
    color: #64748B;
    margin-bottom: 8px;
}

.summary-card strong {
    color: #0A2A66;
    font-size: 22px;
}

.panel-header p {
    margin: 5px 0 0;
    color: #64748B;
}

.categorias-list {
    display: flex;
    flex-direction: column;
    gap: 18px;
    margin-top: 20px;
}

.category-card {
    background: #FFFFFF;
    border: 1px solid #E5E7EB;
    border-radius: 20px;
    padding: 20px;
}

.category-header {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    align-items: flex-start;
    margin-bottom: 16px;
}

.category-header h3 {
    margin: 0;
    color: #0A2A66;
    font-size: 22px;
}

.category-header p {
    margin: 6px 0 0;
    color: #64748B;
}

.category-block {
    margin-top: 14px;
}

.category-block strong {
    display: block;
    color: #0F172A;
    margin-bottom: 8px;
}

.pill-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.price-pill,
.room-pill,
.amenity-pill {
    padding: 8px 10px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 700;
}

.price-pill {
    background: #EFF6FF;
    color: #0A2A66;
}

.amenity-pill {
    background: #F8FAFC;
    color: #475569;
    border: 1px solid #E2E8F0;
}

.room-pill {
    background: #F1F5F9;
    color: #475569;
}

.room-pill.available {
    background: #DCFCE7;
    color: #166534;
}

.room-pill.occupied {
    background: #FEE2E2;
    color: #991B1B;
}

.room-pill.cleaning {
    background: #FEF3C7;
    color: #92400E;
}

.room-pill.maintenance,
.room-pill.blocked {
    background: #E5E7EB;
    color: #374151;
}

.category-actions {
    margin-top: 18px;
    display: flex;
    gap: 10px;
    justify-content: flex-end;
}

.amenities-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 10px;
}

.amenities-grid label {
    background: #F8FAFC;
    border: 1px solid #E2E8F0;
    padding: 12px;
    border-radius: 12px;
    cursor: pointer;
}

.amenities-grid input {
    width: auto;
    margin-right: 8px;
}

.price-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 14px;
}

.price-grid label {
    color: #0A2A66;
    font-weight: 700;
}

.price-grid input {
    margin-top: 7px;
}

.hint {
    color: #64748B;
    background: #F8FAFC;
    padding: 12px;
    border-radius: 12px;
    border: 1px solid #E2E8F0;
}

.muted {
    color: #94A3B8;
    font-size: 14px;
}

@media (max-width: 900px) {
    .setup-summary {
        grid-template-columns: repeat(2, 1fr);
    }

    .amenities-grid {
        grid-template-columns: 1fr;
    }

    .price-grid {
        grid-template-columns: 1fr;
    }

    .category-actions {
        flex-direction: column;
    }
}
.availability-legend {
    margin-top: 24px;
    background: #FFFFFF;
    border-radius: 18px;
    padding: 16px;
    display: flex;
    gap: 18px;
    flex-wrap: wrap;
    box-shadow: 0 10px 35px rgba(15, 23, 42, 0.06);
}

.availability-legend span {
    display: flex;
    align-items: center;
    gap: 8px;
    color: #475569;
    font-weight: 600;
}

.dot {
    width: 13px;
    height: 13px;
    border-radius: 50%;
    display: inline-block;
}

.dot.available {
    background: #22C55E;
}

.dot.occupied {
    background: #EF4444;
}

.dot.cleaning {
    background: #FFB020;
}

.dot.maintenance,
.dot.blocked {
    background: #64748B;
}

.availability-list {
    margin-top: 22px;
    display: flex;
    flex-direction: column;
    gap: 22px;
}

.availability-hotel {
    background: #FFFFFF;
    border-radius: 22px;
    padding: 22px;
    box-shadow: 0 10px 35px rgba(15, 23, 42, 0.06);
}

.availability-hotel-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 1px solid #E5E7EB;
    padding-bottom: 14px;
    margin-bottom: 18px;
}

.availability-hotel-header h2 {
    margin: 0;
    color: #0A2A66;
}

.availability-hotel-header p {
    margin: 6px 0 0;
    color: #64748B;
}

.availability-category {
    margin-top: 18px;
}

.availability-category h3 {
    color: #0F172A;
    margin-bottom: 12px;
}

.rooms-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 12px;
}

.room-status-card {
    border-radius: 16px;
    padding: 16px;
    min-height: 92px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    border: 2px solid #E5E7EB;
    background: #F8FAFC;
}

.room-status-card strong {
    font-size: 24px;
    color: #0A2A66;
}

.room-status-card span {
    margin-top: 4px;
    font-weight: 700;
}

.room-status-card small {
    margin-top: 4px;
    color: #64748B;
}

.room-status-card.available {
    background: #DCFCE7;
    border-color: #22C55E;
}

.room-status-card.occupied {
    background: #FEE2E2;
    border-color: #EF4444;
}

.room-status-card.cleaning {
    background: #FEF3C7;
    border-color: #FFB020;
}


.cleaning-counter {
    margin-top: 10px;
    padding: 10px;
    border-radius: 12px;
    background: rgba(255, 176, 32, 0.22);
    border: 1px dashed #FFB020;
}

.cleaning-counter small {
    display: block;
    margin: 0 0 3px 0;
    color: #92400E;
    font-weight: 700;
}

.cleaning-counter strong {
    display: block;
    font-size: 22px;
    color: #92400E;
}

.room-status-card.maintenance,
.room-status-card.blocked {
    background: #E5E7EB;
    border-color: #64748B;
}

.empty-mini {
    color: #94A3B8;
    background: #F8FAFC;
    padding: 14px;
    border-radius: 12px;
}

@media (max-width: 1100px) {
    .rooms-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (max-width: 700px) {
    .rooms-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

.room-actions {
    margin-top: 12px;
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
}

.room-actions button {
    border: none;
    background: #0A2A66;
    color: white;
    padding: 7px 9px;
    border-radius: 9px;
    cursor: pointer;
    font-size: 12px;
    font-weight: 700;
}

.room-actions button:hover {
    opacity: 0.9;
}
/* Login único e tela de logout */
.login-card-modern {
    position: relative;
    overflow: hidden;
}

.login-card-modern::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 6px;
    background: linear-gradient(90deg, #0A2A66, #FFB020, #22C55E);
}

.login-helper {
    background: #F8FAFC;
    border: 1px solid #E5E7EB;
    border-radius: 16px;
    padding: 12px 14px;
    margin-bottom: 18px;
}

.login-helper strong {
    display: block;
    color: #0A2A66;
    margin-bottom: 3px;
}

.login-helper span {
    display: block;
    color: #64748B;
    font-size: 13px;
    line-height: 1.35;
}

.btn-primary:disabled {
    opacity: 0.75;
    cursor: not-allowed;
}

.logout-body {
    min-height: 100vh;
    margin: 0;
    background: radial-gradient(circle at top, rgba(10, 42, 102, 0.13), #F8FAFC 48%);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: Poppins, Inter, Arial, sans-serif;
}

.logout-card {
    width: 420px;
    max-width: 92%;
    background: #FFFFFF;
    border-radius: 28px;
    padding: 38px 30px;
    text-align: center;
    box-shadow: 0 24px 80px rgba(10, 42, 102, 0.16);
    border: 1px solid #E5E7EB;
}

.logout-card h1 {
    margin: 18px 0 8px;
    color: #0A2A66;
}

.logout-card p {
    margin: 0;
    color: #64748B;
}

.logout-spinner {
    width: 58px;
    height: 58px;
    border-radius: 50%;
    border: 6px solid #E5E7EB;
    border-top-color: #FFB020;
    margin: 0 auto;
    animation: txeque-spin 0.9s linear infinite;
}

@keyframes txeque-spin {
    to { transform: rotate(360deg); }
}

/* Utilizadores */
.table-responsive {
    overflow-x: auto;
}

.users-filter {
    grid-template-columns: 2fr 1fr 1fr;
}

.users-stats .stat-card strong {
    color: #0A2A66;
}

.badge-danger {
    background: #FEE2E2;
    color: #991B1B;
}

.badge-info {
    background: #DBEAFE;
    color: #1E40AF;
}

.table-actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.btn-mini {
    border: none;
    border-radius: 10px;
    padding: 8px 10px;
    cursor: pointer;
    font-weight: 700;
    font-size: 12px;
}

.btn-danger-soft {
    background: #FEE2E2;
    color: #991B1B;
}

.btn-success-soft {
    background: #DCFCE7;
    color: #166534;
}

.small-modal {
    width: 460px;
}

.user-hint {
    margin-top: 14px;
}

@media (max-width: 900px) {
    .users-filter {
        grid-template-columns: 1fr;
    }
}
/* Patch UI admin/supergestor */
.admin-layout{display:grid;grid-template-columns:270px minmax(0,1fr);min-height:100vh}.main-content{padding:32px;max-width:1440px;width:100%;margin:0 auto}.sidebar{min-height:100vh;position:sticky;top:0;align-self:start}.topbar{background:transparent;border:0;margin-bottom:24px}.panel{padding:28px}.form-grid{display:grid;grid-template-columns:repeat(4,minmax(180px,1fr));gap:16px;align-items:end}.form-grid label{display:flex;flex-direction:column;gap:8px;font-weight:800;color:#334155}.form-grid input,.form-grid select{border:1px solid var(--border);border-radius:16px;padding:14px 16px;font-size:15px;outline:none}.form-grid input:focus,.form-grid select:focus{border-color:#2563eb;box-shadow:0 0 0 4px rgba(37,99,235,.12)}.data-table-wrap{overflow:auto;border:1px solid var(--border);border-radius:18px}.data-table{min-width:860px}.page-head{background:#fff;border:1px solid var(--border);border-radius:24px;padding:22px 26px;box-shadow:0 12px 26px rgba(15,23,42,.06);margin-bottom:24px}.page-head h1{margin:0}.page-head p{color:var(--muted);margin:8px 0 0}@media(max-width:1000px){.admin-layout{grid-template-columns:1fr}.sidebar{position:relative;min-height:auto}.form-grid{grid-template-columns:1fr}}

.brand-icon img{width:100%;height:100%;object-fit:cover;border-radius:inherit}.sidebar{position:sticky;top:0;align-self:flex-start;min-height:100vh}.user-pill{display:flex;gap:12px;align-items:center;background:#fff;border:1px solid #e5e7eb;border-radius:18px;padding:10px 14px;box-shadow:0 10px 22px rgba(15,23,42,.06)}.avatar-small{width:42px;height:42px;border-radius:14px;background:#2563eb;color:white;display:grid;place-items:center;font-weight:900}.user-pill small{display:block;color:#64748b;font-weight:700}

/* PATCH: Modal detalhe da reserva/factura */
.booking-modal{position:fixed;inset:0;background:rgba(2,6,23,.55);display:none;align-items:center;justify-content:center;z-index:9999;padding:24px}.booking-modal.show{display:flex}.booking-modal-card{width:min(760px,96vw);max-height:90vh;overflow:auto;background:#fff;border-radius:24px;padding:28px;box-shadow:0 30px 80px rgba(2,6,23,.35);position:relative;color:#071a3a}.modal-close{position:absolute;right:18px;top:14px;border:0;background:#f1f5f9;border-radius:12px;font-size:26px;width:42px;height:42px;cursor:pointer}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:18px 0}.detail-grid p{background:#f8fafc;border:1px solid #e2e8f0;border-radius:16px;padding:14px;margin:0}.detail-grid small{display:block;color:#64748b;margin-bottom:4px}.invoice-line,.invoice-total{display:flex;justify-content:space-between;gap:16px;padding:13px 0;border-bottom:1px solid #e2e8f0}.invoice-total{font-size:24px;border-bottom:0;margin-top:10px;background:#eff6ff;border-radius:16px;padding:18px}.booking-actions{display:flex;gap:8px;flex-wrap:wrap}.booking-actions button,.btn-primary{border:0;border-radius:12px;padding:10px 16px;font-weight:800;cursor:pointer}.booking-actions .primary,.btn-primary{background:#2563eb;color:#fff}.booking-actions .success{background:#22c55e;color:#fff}.booking-actions .danger{background:#ef4444;color:#fff}@media(max-width:720px){.detail-grid{grid-template-columns:1fr}.booking-modal{padding:10px}.booking-modal-card{padding:20px}}
/* PATCH: estados de pagamento */
.pay-status{display:inline-flex;padding:6px 10px;border-radius:999px;font-weight:900;font-size:12px}.pay-status.pending{background:#fef3c7;color:#92400e}.pay-status.confirmed{background:#dcfce7;color:#166534}.pay-status.failed,.pay-status.rejected{background:#fee2e2;color:#991b1b}.empty{color:#64748b;text-align:center;padding:24px}


.text-danger{color:#EF4444;font-weight:800}
.btn-primary.small{padding:10px 16px;border-radius:12px;font-size:14px}
.pay-status.confirmed{background:#DCFCE7;color:#166534;padding:8px 12px;border-radius:999px;font-weight:800;display:inline-block}
.pay-status.pending{background:#FEF3C7;color:#92400E;padding:8px 12px;border-radius:999px;font-weight:800;display:inline-block}
.pay-status.failed,.pay-status.rejected{background:#FEE2E2;color:#991B1B;padding:8px 12px;border-radius:999px;font-weight:800;display:inline-block}


/* === TXEQUE: Fotos e galeria compactas no Admin === */
.photos-panel { overflow: hidden; }
.photos-upload-form { display: flex; flex-direction: column; gap: 24px; }
.photos-upload-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.upload-box {
    display: flex; flex-direction: column; gap: 14px;
    padding: 24px; border: 1px dashed #cbd5e1; border-radius: 18px;
    background: #f8fafc;
}
.upload-box strong { color: #06265c; font-size: 20px; }
.upload-box small { color: #64748b; font-weight: 700; }
.upload-box input[type="file"] {
    width: 100%; padding: 12px; border: 1px solid #dbe3ef;
    border-radius: 14px; background: #fff;
}
.photos-preview-grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 26px; align-items: start; }
.photos-preview-grid h3 { margin: 0 0 14px; color: #06265c; font-size: 24px; }
.cover-preview-box {
    min-height: 190px; max-height: 240px; border: 1px solid #e2e8f0;
    border-radius: 18px; background: #f8fafc; overflow: hidden;
    display: flex; flex-direction: column; justify-content: center;
}
.cover-preview-box img {
    width: 100%; height: 190px; max-height: 190px;
    object-fit: cover; object-position: center; display: block;
}
.cover-preview-box span { padding: 12px 14px; font-weight: 800; color: #475569; }
.gallery-preview-grid {
    min-height: 190px; border: 1px dashed #cbd5e1; border-radius: 18px;
    padding: 14px; display: grid; grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 14px;
    background: #f8fafc;
}
.gallery-thumb-card {
    border: 1px solid #e2e8f0; border-radius: 14px; overflow: hidden;
    background: #fff; box-shadow: 0 8px 18px rgba(15,23,42,.05);
}
.gallery-thumb-card img {
    width: 100%; height: 105px; object-fit: cover; object-position: center; display: block;
}
.gallery-thumb-card span { display: block; padding: 8px 10px; font-size: 13px; font-weight: 800; color: #64748b; }
.empty-photo {
    min-height: 120px; display: grid !important; place-items: center;
    color: #94a3b8; font-weight: 800; text-align: center;
}
.photos-actions { display: flex; justify-content: flex-end; gap: 14px; }
@media (max-width: 900px) {
    .photos-upload-grid, .photos-preview-grid { grid-template-columns: 1fr; }
    .cover-preview-box img { height: 170px; }
}

/* TXEQUE admin polish: filtros, acções e alertas bonitos */
.brand-icon img{width:100%;height:100%;object-fit:cover;border-radius:inherit}.user-pill{display:flex;align-items:center;gap:10px;background:#F8FAFC;border:1px solid #E5E7EB;border-radius:14px;padding:10px 12px}.avatar-small{width:34px;height:34px;border-radius:12px;background:#0A2A66;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800}.user-pill strong{display:block;color:#0A2A66;font-size:14px}.user-pill small{display:block;color:#64748B;font-size:12px}.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:13px}.admin-filter-card{margin:16px 0 8px;background:linear-gradient(135deg,#F8FAFC,#FFFFFF);border:1px solid #E2E8F0;border-radius:18px;padding:16px;box-shadow:0 10px 30px rgba(15,23,42,.04)}.filter-grid{display:grid;gap:12px;align-items:center}.filter-grid-6{grid-template-columns:1.5fr repeat(4,1fr) auto}.filter-summary{margin-top:10px;color:#64748B;font-size:14px}.hospedagem-card{transition:.18s ease;border-left:5px solid transparent}.hospedagem-card:hover{transform:translateY(-1px);box-shadow:0 16px 40px rgba(10,42,102,.08)}.hospedagem-card.is-problem{border-left-color:#FFB020;background:linear-gradient(90deg,#FFF7E6,#FFF)}.hospedagem-card.is-blocked{border-left-color:#EF4444;background:linear-gradient(90deg,#FEF2F2,#FFF)}.hospedagem-title-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.badge-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:8px}.badge-danger{background:#FEE2E2;color:#991B1B}.badge-problem{background:#FFF7E6;color:#92400E;border:1px solid #FFB020}.problem-note{margin:8px 0;background:#FFFBEB;border:1px solid #FDE68A;color:#92400E;padding:9px 11px;border-radius:12px;font-size:13px}.stacked-actions{display:flex;flex-wrap:wrap;gap:8px;min-width:230px}.stacked-actions button{white-space:nowrap}.btn-warning,.btn-success,.btn-danger-soft{border:none;border-radius:12px;padding:12px 17px;font-weight:700;cursor:pointer}.btn-warning{background:#FFB020;color:#0F172A}.btn-warning:hover{filter:brightness(.97)}.btn-success{background:#22C55E;color:white}.btn-danger-soft{background:#FEE2E2;color:#991B1B}.small-modal{width:560px;max-width:94%}.txq-dialog-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.55);z-index:10000;display:flex;align-items:center;justify-content:center;padding:18px}.txq-dialog{width:480px;max-width:96%;background:#fff;border-radius:22px;box-shadow:0 30px 90px rgba(15,23,42,.25);padding:22px;animation:dialogPop .18s ease}.txq-dialog-head{display:flex;gap:14px;align-items:flex-start}.txq-dialog-icon{width:42px;height:42px;border-radius:14px;background:#DCFCE7;color:#166534;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:22px}.txq-dialog-icon.danger{background:#FEE2E2;color:#991B1B}.txq-dialog h3{margin:0;color:#0A2A66}.txq-dialog p{margin:6px 0 0;color:#64748B;line-height:1.4}.txq-dialog-body textarea{width:100%;margin-top:16px}.txq-dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.txq-btn-cancel,.txq-btn-ok,.txq-btn-danger{border:none;border-radius:12px;padding:11px 15px;font-weight:800;cursor:pointer}.txq-btn-cancel{background:#E5E7EB;color:#111827}.txq-btn-ok{background:#0A2A66;color:#fff}.txq-btn-danger{background:#EF4444;color:#fff}@keyframes dialogPop{from{transform:scale(.96);opacity:0}to{transform:scale(1);opacity:1}}
@media(max-width:1100px){.filter-grid-6{grid-template-columns:1fr 1fr}.stacked-actions{justify-content:flex-start}.hospedagem-card{grid-template-columns:1fr}}
@media(max-width:700px){.filter-grid-6,.grid{grid-template-columns:1fr}.user-pill{width:100%}}


/* =========================================================
   TXEQUE ADMIN/SUPERGESTOR RC2 - Sidebar fixa e ajustes de dashboard
   ========================================================= */
.txq-card-note{display:block;margin-top:8px;color:#94a3b8;font-size:13px;font-weight:700}.alert-item span{line-height:1.35}.quick-actions{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))!important}.quick-actions a{min-height:86px;display:flex;align-items:center}.hospedagem-card .muted{display:block;margin-top:18px}.badge-danger{background:#fee2e2;color:#991b1b}.badge-warning{background:#fef3c7;color:#92400e}.badge-success{background:#dcfce7;color:#166534}
@media (min-width: 951px){
  .app-layout,.admin-layout{display:grid!important;grid-template-columns:270px minmax(0,1fr)!important;min-height:100vh!important;width:100%!important;overflow-x:hidden!important;}
  .sidebar{position:fixed!important;top:0!important;left:0!important;width:270px!important;height:100vh!important;min-height:100vh!important;overflow-y:auto!important;z-index:1000!important;}
  .main-content{margin-left:270px!important;width:calc(100vw - 270px)!important;max-width:none!important;min-height:100vh!important;overflow-x:hidden!important;}
  .topbar,.page-head{position:sticky;top:0;z-index:50;background:#fff;}
}
@media (max-width: 950px){
  .sidebar{position:relative!important;width:100%!important;height:auto!important;min-height:auto!important;}
  .main-content{margin-left:0!important;width:100%!important;}
}
