/* Hotel PMS - Custom Styles */

body {
    background-color: #f4f6f9;
}

.sidebar {
    min-width: 230px;
    max-width: 230px;
    min-height: calc(100vh - 56px);
}

.sidebar .list-group-item {
    border: none;
    border-radius: 0;
    padding: 0.75rem 1.25rem;
}

.sidebar .list-group-item.active {
    background-color: #0d6efd;
    color: #fff;
    border-color: #0d6efd;
}

.sidebar .list-group-item i {
    width: 22px;
    display: inline-block;
}

.main-content {
    min-height: calc(100vh - 56px);
}

/* Room status board */
.room-card {
    border-radius: 0.5rem;
    padding: 1rem;
    color: #fff;
    min-height: 110px;
    position: relative;
    transition: transform 0.15s ease;
}
.room-card:hover { transform: translateY(-3px); }
.room-card .room-number { font-size: 1.4rem; font-weight: 700; }
.room-card .room-type { font-size: 0.8rem; opacity: 0.9; }
.room-card .room-status { font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.03em; }

.room-vacant_clean   { background-color: #198754; }
.room-vacant_dirty   { background-color: #ffc107; color:#212529 !important; }
.room-occupied       { background-color: #0d6efd; }
.room-out_of_order   { background-color: #dc3545; }
.room-out_of_service { background-color: #6c757d; }

/* Login page */
.login-wrapper {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #0d6efd 0%, #0a58ca 100%);
}
.login-card {
    max-width: 400px;
    width: 100%;
}

/* Print styles - Registration Card & Invoices */
@media print {
    .no-print { display: none !important; }
    .main-content { padding: 0 !important; margin: 0 !important; }
    body { background: #fff !important; }
    .print-sheet {
        width: 100%;
        max-width: 800px;
        margin: 0 auto;
        color: #000;
    }
    a[href]:after { content: "" !important; }
}

.print-sheet .sig-line {
    border-bottom: 1px solid #000;
    height: 40px;
}

.stat-card {
    border-radius: 0.5rem;
}


/* Enhanced PMS shell / responsive / print branding */
:root { --pms-radius: 14px; }
body { font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color:#172033; }
.card { border: 1px solid rgba(23,32,51,.08); border-radius: var(--pms-radius); box-shadow: 0 4px 18px rgba(23,32,51,.045); }
.card-header { border-top-left-radius: var(--pms-radius)!important; border-top-right-radius: var(--pms-radius)!important; }
.navbar { min-height: 62px; box-shadow: 0 2px 14px rgba(0,0,0,.12); }
.brand-logo { width: 34px; height: 34px; object-fit: contain; border-radius: 8px; background:#fff; padding:2px; }
.settings-logo { max-width: 130px; max-height: 80px; object-fit: contain; border:1px solid #ddd; border-radius:10px; padding:6px; background:#fff; }
.print-logo { width: 72px; max-height:72px; object-fit:contain; }
.print-header { align-items:center; }
.table > :not(caption) > * > * { padding:.7rem .75rem; }
.form-control, .form-select, .btn { border-radius: 10px; }
.sidebar { position: sticky; top:0; height: calc(100vh - 62px); overflow-y:auto; }
@media (max-width: 991.98px) { .sidebar { position: static; min-width:100%; max-width:100%; min-height:auto; height:auto; } .d-flex:has(> .sidebar) { flex-direction:column; } .main-content { padding: 1rem !important; } }
@media (max-width: 575.98px) { .main-content { padding:.75rem !important; } h3 { font-size:1.25rem; } .btn { width:auto; } .table { font-size:.9rem; } .room-card { min-height:100px; padding:.8rem; } .print-sheet .card-body { padding:1rem !important; } }
@media print { .print-sheet { box-shadow:none!important; border:0!important; max-width:none!important; } .print-logo { width:60px; max-height:60px; } .print-header { display:flex!important; } }
