/* ST Hotel Pro · Executive / light. Existing data and action names are unchanged. */
:root{--ink:#20242c;--text:#20242c;--muted:#75808e;--text-soft:#667181;--panel:#fff;--panel-soft:#f6f7f9;--line:#e1e5eb;--line-strong:#ccd3dd;--accent:#3567a3;--accent-2:#3567a3;--success:#36765f;--warning:#9b7439;--danger:#a15151;--info:#537694;--shadow:0 5px 20px #18273807;--radius:12px;--ease:cubic-bezier(.2,.65,.25,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;background:linear-gradient(135deg,#fdfdfe 0%,#f6f7f9 42%,#eef0f3 100%);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:12.5px;line-height:1.5;-webkit-font-smoothing:antialiased;font-feature-settings:"cv11","ss01"}button,input,select,textarea{font:inherit}a{color:#3567a3;text-decoration:none}a:hover{color:#244d7c}img{max-width:100%;display:block}button,a,input,select,textarea{touch-action:manipulation}button:disabled{cursor:not-allowed}::selection{background:#d8e7f8;color:#173859}:focus-visible{outline:2px solid #6f9bc9;outline-offset:3px}h1,h2,h3,h4{font-family:inherit;letter-spacing:-.025em;color:#20242c}h1{font-size:21px}h2{font-size:18px}h3{font-size:15px}p{margin-bottom:10px}strong{font-weight:650}.text-muted,.form-text{color:#75808e!important}.text-bg-success{background:#edf5f0!important;color:#36765f!important}.text-bg-warning{background:#f8f3e9!important;color:#8b6b38!important}.text-bg-danger{background:#f8eeee!important;color:#9d5252!important}.text-bg-info{background:#edf3f8!important;color:#537694!important}.text-bg-secondary{background:#f0f2f5!important;color:#67717e!important}
.app-shell{display:grid;grid-template-columns:210px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;overflow:auto;padding:22px 13px 16px;border-right:1px solid #e1e5eb;background:rgba(249,250,252,.84);backdrop-filter:blur(24px);scrollbar-width:thin;z-index:200}.brand-box{display:flex;align-items:center;justify-content:center;padding:0 5px;margin:0 0 9px;border:0!important;border-radius:0!important;background:none!important;box-shadow:none!important;min-height:0}.brand-logo{width:min(100%,var(--brand-logo-width,180px));max-height:64px;object-fit:contain;filter:none}.sidebar-brand-caption{text-align:center;color:#8c95a0;font-size:8px;letter-spacing:.14em;text-transform:uppercase;margin-bottom:22px}.sidebar .nav{gap:3px!important}.sidebar .nav-link{display:flex;align-items:center;gap:9px;padding:8px 11px;border-radius:8px;color:#636d7b;font-size:11.5px;font-weight:500;min-height:36px;transition:background .18s,color .18s,box-shadow .18s}.sidebar .nav-link:hover{background:#eef1f5;color:#263342}.sidebar .nav-link.active{background:#fff;color:#2b5686;box-shadow:0 2px 8px #263d5510;border:1px solid #e3e8ef;padding:7px 10px;font-weight:650}.nav-icon{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;flex:0 0 20px;font-size:16px;color:inherit;background:none;border:0;box-shadow:none}.nav-section{display:flex;align-items:center;gap:7px;margin:19px 10px 6px;color:#9aa2ad;font-size:8px;letter-spacing:.12em;text-transform:uppercase;font-weight:650}.nav-section-icon{font-size:12px}.main-content{min-width:0;padding:18px 24px 30px;max-width:1880px;width:100%;margin:0 auto}.topbar{position:sticky;top:10px;z-index:100;display:flex;justify-content:space-between;align-items:center;gap:14px;min-height:61px;padding:10px 16px;margin:0 0 18px;border:1px solid #e1e5eb;border-radius:12px;background:rgba(255,255,255,.87);backdrop-filter:blur(20px);box-shadow:0 3px 14px #24324a04;transition:box-shadow .2s}.page-is-scrolled .topbar{box-shadow:0 7px 24px #1827380d}.topbar-heading{display:flex;align-items:center;gap:10px;min-width:0}.eyebrow{display:block;margin-bottom:3px;color:#8792a0;font-size:8px;line-height:1.4;letter-spacing:.15em;font-weight:650;text-transform:uppercase}.page-title{font-size:17px;line-height:1.25;font-weight:650;letter-spacing:-.035em}.topbar .text-muted{font-size:9.5px!important}.topbar-actions{display:flex;align-items:center;gap:18px}.topbar-actions>.text-end{font-size:10px!important;line-height:1.5}.topbar-actions form{margin:0}.topbar-actions .btn{font-size:10px;min-height:30px;padding:5px 10px}.footer-note{margin-top:22px;padding-top:13px;border-top:1px solid #e4e7ed;color:#9aa2ad;font-size:9px;display:flex;justify-content:space-between}.skip-link{position:fixed;left:12px;top:-70px;z-index:3000;padding:10px 16px;background:#fff;border:1px solid var(--line);border-radius:7px}.skip-link:focus{top:12px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:32px;padding:6px 12px;border-radius:7px;font-size:11px;line-height:1.5;font-weight:550;border:1px solid transparent;box-shadow:none;transition:background .18s,color .18s,border-color .18s,box-shadow .18s,transform .18s}.btn:hover{transform:translateY(-1px);box-shadow:0 3px 8px #23354a0b}.btn:active{transform:translateY(0);box-shadow:inset 0 1px 2px #1d355011}.btn-primary{color:#fff;background:#36679f;border-color:#36679f}.btn-primary:hover,.btn-primary:focus{color:#fff;background:#2b578a;border-color:#2b578a}.btn-success{color:#fff;background:#4c7b67;border-color:#4c7b67}.btn-success:hover{color:#fff;background:#3d6655;border-color:#3d6655}.btn-warning{color:#705325;background:#f6efdf;border-color:#e8d9b9}.btn-warning:hover{background:#f0e5cb;color:#65491f}.btn-danger{color:#fff;background:#a76060;border-color:#a76060}.btn-outline-light,.btn-outline-secondary{color:#5f6a78;background:#fff;border-color:#dce2e9}.btn-outline-light:hover,.btn-outline-secondary:hover{color:#263445;background:#f5f7fa;border-color:#bdc9d6}.btn-outline-primary,.btn-outline-info{color:#37648e;border-color:#d0ddec;background:#f9fbfd}.btn-outline-primary:hover,.btn-outline-info:hover{color:#294f74;background:#edf3f9;border-color:#b1c7dd}.btn-outline-success{color:#426d5b;border-color:#c9ddcf;background:#fbfdfb}.btn-outline-success:hover{background:#edf5ef;color:#325a47}.btn-outline-danger{color:#9a5757;border-color:#e7d6d6;background:#fff}.btn-outline-danger:hover{background:#f9eeee;color:#914747}.btn-sm{min-height:28px;font-size:10px;padding:4px 9px}.btn .bi{font-size:13px}.btn-close{font-size:9px;opacity:.4;filter:none}.form-control,.form-select{min-height:33px;padding:6px 10px;border:1px solid #dfe4eb;background-color:#fcfdfe;color:#303a46;border-radius:7px;font-size:12px;line-height:1.5;box-shadow:inset 0 1px 2px #23354a03;transition:border-color .18s,background .18s,box-shadow .18s}.form-control:hover,.form-select:hover{border-color:#c4ced9}.form-control:focus,.form-select:focus{color:#263342;background-color:#fff;border-color:#89a8cc;box-shadow:0 0 0 3px #4e7fb114}.form-control::placeholder{color:#a1aab5;font-size:11px}.form-control[readonly]{background:#f3f5f7;color:#77818d}.form-label{display:block;margin-bottom:4px;color:#606c7a;font-size:10.5px;font-weight:600;letter-spacing:.005em}.form-text{font-size:9px;line-height:1.5;margin-top:4px}.form-select{background-size:10px 8px;background-position:right 10px center;padding-right:28px;color-scheme:light}.form-control[type=date],.form-control[type=datetime-local]{color-scheme:light}.form-control[type=file]{font-size:10px;padding:5px 8px}.form-control[type=file]::file-selector-button{background:#f1f4f7;color:#566578;border:0;font-size:10px;padding:6px 10px}.form-check{min-height:20px;font-size:11px}.form-check-input{width:14px;height:14px;border-color:#cbd3dd;box-shadow:none}.form-check-input:checked{background-color:#527aa7;border-color:#527aa7}.form-check-input:focus{box-shadow:0 0 0 3px #4e7fb111;border-color:#89a8cc}.form-check-label{font-size:11px;color:#65717f}textarea.form-control{min-height:58px;max-height:180px;resize:vertical}.row.g-3{--bs-gutter-x:14px;--bs-gutter-y:11px}.card .row.g-3{margin-top:calc(-1 * var(--bs-gutter-y))}
.card,.panel-card{border:1px solid #e1e6ec;border-radius:12px;background:#fff;color:var(--ink);box-shadow:0 3px 14px #18273804;min-width:0;--bs-card-bg:#fff;--bs-card-color:#20242c;--bs-card-border-color:#e1e6ec;transition:box-shadow .2s,border-color .2s}.card:hover{border-color:#d8dfe7;box-shadow:0 5px 18px #18273807}.card .card-header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 14px;min-height:43px;border-bottom:1px solid #eef0f4;background:linear-gradient(#fff,#fcfdfe);color:#3c4756;font-size:12px;font-weight:600;border-radius:12px 12px 0 0}.card .card-body{padding:14px}.card .card-header strong{font-weight:600}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;align-items:start}.simple-stack,.simple-form-stack{display:grid;gap:15px;min-width:0}.simple-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px}.simple-form-field label{display:block;font-size:10.5px;font-weight:600;color:#606c7a;margin-bottom:4px}.simple-form-field .form-control,.simple-form-field .form-select{width:100%}.simple-form-field.full,.simple-form-actions{grid-column:1/-1}.simple-form-actions{display:flex;gap:8px;flex-wrap:wrap}.table{--bs-table-color:#4b5665;--bs-table-bg:transparent;--bs-table-border-color:#edf0f4;--bs-table-striped-bg:#f8fafc;--bs-table-hover-bg:#f6f9fc;--bs-table-hover-color:#283a4f;margin-bottom:8px;font-size:11px}.table>:not(caption)>*>*{padding:10px 9px;background:transparent;border-bottom-width:1px;box-shadow:none;color:inherit}.table thead th{color:#8b96a4;background:#fafbfd;font-weight:600;text-transform:uppercase;font-size:8px;letter-spacing:.08em;white-space:nowrap;padding-top:9px;padding-bottom:9px;border-bottom-color:#e7ecf2}.table tbody tr{transition:background .16s}.table tbody tr:hover{background:#f8fafc}.table tbody td{vertical-align:middle}.table .btn{white-space:nowrap}.table td .d-flex{flex-wrap:wrap}.table-responsive{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:#cdd5df transparent}.table-scroll-active{box-shadow:inset -12px 0 12px -14px #5f7189}.table-responsive>.list-filters{position:relative}.badge{padding:4px 7px;border-radius:5px;font-size:8px;letter-spacing:.025em;font-weight:600}.badge.text-bg-success{background:#edf5f0!important;color:#36765f!important}.badge.text-bg-warning{background:#f8f3e9!important;color:#8b6b38!important}.badge.text-bg-danger{background:#f8eeee!important;color:#9d5252!important}.badge.text-bg-info{background:#edf3f8!important;color:#537694!important}.badge.text-bg-secondary{background:#f0f2f5!important;color:#67717e!important}.alert{padding:10px 13px;border-radius:8px;border:1px solid #dfe7ee;font-size:11px;margin-bottom:14px;box-shadow:none}.alert-info{color:#4c6b85;background:#f1f6fa;border-color:#dfeaf2}.alert-success{color:#44715c;background:#f2f7f3;border-color:#dfebe1}.alert-warning{color:#8d7040;background:#faf7ef;border-color:#eee6d5}.alert-danger{color:#9a5e5e;background:#fcf4f4;border-color:#efdfdf}.alert a{text-decoration:underline;color:inherit}.alert-dismissible{padding-right:36px}.alert-dismissible .btn-close{padding:13px}.mb-4{margin-bottom:16px!important}.mt-4{margin-top:16px!important}.mb-3{margin-bottom:12px!important}.mt-3{margin-top:12px!important}.g-3{--bs-gutter-y:12px}
.page-intro{display:flex;justify-content:space-between;align-items:center;gap:18px;margin:2px 0 15px}.page-intro h2{margin:4px 0 4px;font-size:21px;letter-spacing:-.04em;font-weight:600}.page-intro p{margin:0;color:#84909f;font-size:11px;line-height:1.6}.intro-actions,.section-shortcuts{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.section-shortcuts{margin-bottom:12px}.insight-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 14px}.insight-card{position:relative;padding:13px 15px;min-height:91px;min-width:0;border:1px solid #e1e6ec;border-radius:10px;background:linear-gradient(145deg,#fff,#fcfdfe);box-shadow:0 3px 12px #18273803;transition:box-shadow .2s,transform .2s}.insight-card:hover{transform:translateY(-2px);box-shadow:0 6px 18px #18273809}.insight-card>span{display:block;font-size:9px;font-weight:500;color:#818d9b}.insight-card>strong{display:block;margin:5px 0 2px;color:#303b4b;font-size:21px;font-weight:600;letter-spacing:-.05em;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.insight-card>small,.insight-card>a{display:block;margin-top:3px;color:#929eac;font-size:8px;line-height:1.5}.insight-card>a{color:#6683a4}.insight-card.accent{border-top:2px solid #8aa2bd}.insight-card.positive{border-top:2px solid #8aaa9b}.insight-card.warning{border-top:2px solid #c4ae8b}.operation-strip{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.operation-pill{display:flex;align-items:center;gap:7px;padding:5px 9px;border:1px solid #e2e7ed;border-radius:6px;color:#8793a2;background:rgba(255,255,255,.65);font-size:9px}.operation-pill strong{color:#586575;font-size:10px}.dashboard-metrics-row{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;--bs-gutter-x:0;margin:0 0 14px!important}.dashboard-metrics-row>[class*="col-"]{width:100%;max-width:none;padding:0}.metric{position:relative;min-width:0;min-height:80px;padding:12px 13px;border:1px solid #e1e6ec;border-radius:10px;background:#fff;box-shadow:0 3px 10px #18273803;transition:transform .2s,box-shadow .2s}.metric:hover{transform:translateY(-2px);box-shadow:0 6px 18px #18273809}.metric-icon-wrap{display:flex;align-items:center;justify-content:center;position:absolute;top:11px;right:11px;width:20px;height:20px;color:#a1adbb;font-size:16px}.metric .label{color:#8995a4;font-size:8px;line-height:1.5;max-width:calc(100% - 22px);font-weight:500}.metric .value{margin-top:10px;color:#354354;font-size:17px;font-weight:600;letter-spacing:-.04em;white-space:nowrap;font-variant-numeric:tabular-nums}.dashboard-status-header{align-items:flex-start!important;flex-wrap:wrap}.dashboard-status-title{display:block}.topbar-subtitle{margin-top:4px;color:#96a0ad;font-size:9px;font-weight:400}.status-legend{display:flex;flex-wrap:wrap;align-items:center;gap:11px}.legend-chip{display:inline-flex;align-items:center;gap:5px;font-size:8px;color:#929daa;font-weight:400}.legend-dot{width:5px;height:5px;display:inline-block;border-radius:50%}.legend-dot.available{background:#7eaa93}.legend-dot.occupied{background:#bf9191}.legend-dot.cleaning{background:#89a7c3}.legend-dot.maintenance{background:#c2ab83}.dashboard-compact-card{margin-bottom:14px}.dashboard-room-feedback,.room-feedback{margin-top:9px;min-height:14px;font-size:9px;color:#8b99a8}.reservation-title-block h2{font-size:17px;font-weight:600;margin:0 0 3px}.section-subtitle{font-size:10px;color:#8f9baa;margin:0}.reservation-toolbar .card-body{display:grid;gap:12px}.room-filter-form{align-items:end}.room-filter-form>.col-md-4{flex:1 1 170px}.reservation-layout{grid-template-columns:minmax(280px,.8fr) minmax(0,1.2fr)}.selected-room-banner{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:10px 12px;background:#f6f9fc;border:1px solid #e1e9f2;border-radius:7px;margin-bottom:12px;font-size:10px}.selected-room-banner strong{color:#6d829b;font-weight:500}.selected-room-banner span{color:#3c5e85;font-weight:600}.source-selector{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.source-option{display:block;position:relative;cursor:pointer}.source-option input{position:absolute;opacity:0;width:1px;height:1px}.source-option-body{display:flex;align-items:center;justify-content:center;gap:7px;padding:9px 8px;min-height:39px;border:1px solid #e3e8ef;background:#fcfdfe;border-radius:7px;font-size:9px;color:#8b96a4;transition:all .18s}.source-option-body img{max-width:32px;max-height:19px;object-fit:contain}.source-option input:checked+.source-option-body{border-color:#8eaccd;background:#f5f8fc;color:#4d6f96;box-shadow:0 0 0 2px #3567a308}.source-option input:focus-visible+.source-option-body{outline:2px solid #6f9bc9;outline-offset:2px}.source-badge{display:inline-flex;align-items:center;gap:5px;padding:3px 6px;background:#f3f6fa;border:1px solid #e5eaf0;border-radius:5px;color:#73869b;font-size:8px;white-space:nowrap}.source-badge img{max-width:21px;max-height:13px;object-fit:contain}
/* Diagonal room cards: the image and room identity exchange sides, while actions stay fixed. */
.room-board,.room-board-wide{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px}.room-tile{position:relative;display:block;isolation:isolate;overflow:hidden;width:100%;height:162px;min-height:162px;padding:0;border:1px solid #dfe5ec;border-radius:11px;background:#fff;color:#374658;text-align:left;cursor:pointer;box-shadow:0 3px 10px #26375005;transition:border-color .25s,box-shadow .25s,transform .3s var(--ease);text-decoration:none}.room-tile::before,.room-tile::after{content:none}.room-tile:hover,.room-tile:focus-visible{border-color:#b2c4d8;box-shadow:0 10px 24px #243d5b12;color:#374658;transform:translateY(-2px)}.room-tile.is-selected{border-color:#7d9fc5;box-shadow:0 0 0 2px #527da91a}.room-tile.is-locked{cursor:pointer}.room-photo-side{position:absolute;top:0;left:0;bottom:42px;width:58%;clip-path:polygon(0 0,100% 0,72% 100%,0 100%);overflow:hidden;background:#edf0f4;transition:transform .65s var(--ease),clip-path .65s var(--ease);z-index:1}.room-photo-side img{width:100%;height:100%;object-fit:cover;object-position:center;transition:transform .75s var(--ease);filter:saturate(.78)}.room-number-side{position:absolute;top:0;bottom:42px;left:50%;width:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:13px 9px;background:transparent;transition:transform .65s var(--ease);z-index:2}.room-kicker{display:block;color:#9aa5b1;text-transform:uppercase;font-size:7px;letter-spacing:.14em}.room-tile .room-name{display:block;margin:2px 0 3px;font-size:31px;font-weight:550;letter-spacing:-.065em;line-height:1.1;color:#344052;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.room-tile .room-meta{display:block;margin:0;color:#95a0ad;font-size:8px;line-height:1.5;text-align:center;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.room-tile .room-action{display:flex;align-items:center;gap:3px;margin-top:7px;font-size:7px;letter-spacing:.015em;color:#8294a9;text-transform:none}.room-card-bottom{position:absolute;left:0;right:0;bottom:0;z-index:3;height:42px;display:flex;align-items:center;justify-content:space-between;gap:5px;padding:7px 11px;border-top:1px solid #e9edf2;background:#fff}.room-tile .room-pill{position:static;display:inline-flex;align-items:center;gap:4px;margin:0;background:none;border:0;padding:0;border-radius:0;color:#6c927e;font-size:8px;font-weight:500;letter-spacing:0;white-space:nowrap}.room-pill::before{content:"";display:inline-block;width:5px;height:5px;flex:0 0 5px;border-radius:50%;background:currentColor}.room-tile.occupied .room-pill{color:#b17c7c}.room-tile.cleaning .room-pill{color:#7495b3}.room-tile.maintenance .room-pill{color:#b39a70}.room-card-capacity{color:#9aa5b1;font-size:8px;white-space:nowrap}.room-card-capacity .bi{font-size:10px;margin-right:3px}.room-card-price{color:#5b6d81;font-size:10px;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.room-card-price small{color:#a4aeba;font-size:7px;font-weight:400}.room-tile .room-detail{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.room-tile:hover .room-photo-side,.room-tile:focus-visible .room-photo-side{transform:translateX(72.414%);clip-path:polygon(28% 0,100% 0,100% 100%,0 100%)}.room-tile:hover .room-number-side,.room-tile:focus-visible .room-number-side{transform:translateX(-100%)}.room-tile:hover .room-photo-side img{transform:scale(1.04)}.room-inventory-gallery{margin-bottom:15px}.room-inventory-gallery .card-body{padding:12px}.room-inventory-gallery .room-board{grid-template-columns:repeat(auto-fill,minmax(235px,1fr))}.room-card-photo-note{font-size:8px;color:#a2acb8;margin:9px 0 0}.form-panel{scroll-margin-top:95px}
.modal-content{border:1px solid #dce3eb;border-radius:13px;background:#fff;color:#3a4655;box-shadow:0 24px 80px #25395526}.modal-backdrop.show{opacity:.22;backdrop-filter:blur(5px)}.modal-header{padding:14px 17px;border-bottom:1px solid #edf0f4}.modal-header .modal-title{font-size:17px;font-weight:600}.modal-body{padding:17px;color:#4c5b6d}.reservation-quick-summary{padding:11px 13px;border:1px solid #e4eaf1;border-radius:8px;background:#f7f9fc;margin-bottom:12px}.reservation-quick-summary small{color:#95a2b2;font-size:8px;text-transform:uppercase;letter-spacing:.1em}.reservation-quick-room-name{font-size:17px;font-weight:600;color:#456385;margin-top:3px}.reservation-quick-room-meta{font-size:10px;color:#8595a7;margin-top:3px}.quick-check{padding:8px 10px;background:#f8fafc;border:1px solid #e8edf3;border-radius:7px}.modal-actions{display:flex;gap:7px;flex-wrap:wrap;padding-top:4px}.login-shell{display:grid;grid-template-columns:minmax(300px,1.1fr) minmax(310px,.9fr);gap:0;max-width:920px;min-height:500px;margin:calc((100vh - 500px)/2) auto;overflow:hidden;background:#fff;border:1px solid #e2e6ec;border-radius:16px;box-shadow:0 20px 70px #25374c0c}.login-photo-panel{position:relative;min-height:450px;background:#eff1f5;overflow:hidden}.login-photo-panel img{width:100%;height:100%;object-fit:cover;filter:saturate(.7)}.login-photo-panel::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#21324736,transparent 65%)}.login-card{display:flex;flex-direction:column;justify-content:center;max-width:none;padding:42px 38px;background:#fff;color:#4d5b6c;border:0;border-radius:0;box-shadow:none}.login-card .h3{font-size:17px;font-weight:600}.login-card p{font-size:11px}.login-card .text-center{text-align:left!important}.login-brand-wrap{display:flex;align-items:center;justify-content:flex-start;padding:0;margin-bottom:28px;border:0;background:none;border-radius:0;box-shadow:none}.login-brand-logo{width:min(100%,var(--login-logo-width,200px));max-height:80px;object-fit:contain;filter:none}.login-card .btn{min-height:35px}.small-help{font-size:9px;color:#98a3b0}.logo-preview-card{display:flex;align-items:center;justify-content:flex-start;padding:8px 0;border:0;background:none;border-radius:0;min-height:0;box-shadow:none}.settings-logo-preview{max-width:min(100%,var(--settings-logo-width,220px));max-height:130px;object-fit:contain;filter:none}.diagnostic-sheet{max-width:780px;margin:40px auto;padding:25px;border:1px solid #e1e6ed;border-radius:12px;background:#fff}.diagnostic-sheet p{padding:8px 0;border-bottom:1px solid #edf0f4}
.list-filters{display:flex;align-items:end;flex-wrap:wrap;gap:9px;margin:0 0 13px}.list-filters label{display:flex;flex-direction:column;gap:4px;min-width:115px;flex:0 1 135px;color:#778394;font-size:9px;font-weight:550}.list-filters .filter-search{flex:1 1 210px}.list-filters .btn{min-height:33px}.list-pagination{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;padding-top:12px;border-top:1px solid #edf0f4;font-size:9px;color:#95a0ad}.pagination-controls{display:flex;align-items:center;gap:9px}.empty-state{padding:18px;text-align:center;color:#a0aab7;font-size:10px;border:1px dashed #e1e6ee;border-radius:8px;margin:12px 0 0}.record-link{display:block;color:#7291b3;font-size:9px;margin-top:4px;text-underline-offset:3px}.record-link:hover{text-decoration:underline}.muted-note,.report-period{color:#8f9baa;font-size:9px;line-height:1.6;margin:11px 0 0}.report-period{margin:0 0 12px}.financial-breakdown{margin:0}.financial-breakdown>div{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:9px 0;border-bottom:1px solid #edf1f5}.financial-breakdown dt{font-size:11px;font-weight:400;color:#8b97a6}.financial-breakdown dd{margin:0;font-size:12px;font-weight:600;color:#52677e}.amount{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:550}.amount-in{color:#5f8c78!important}.amount-out{color:#b17b7b!important}#sale-cart>div{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid #edf0f5}#sale-cart>div>span:first-child{flex:1 1 140px;min-width:0;font-size:11px;color:#7b8b9e;overflow-wrap:anywhere}#sale-cart .form-control{max-width:75px}#sale-cart-total{color:#526b88;font-size:15px}.calendar-scroll{overflow:auto;max-width:100%;max-height:600px;border:1px solid #e4e9ef;border-radius:8px;scrollbar-width:thin}.hotel-calendar{width:max-content;min-width:100%;table-layout:fixed;border-collapse:separate;border-spacing:0;margin:0}.hotel-calendar th,.hotel-calendar td{width:155px;min-width:155px;vertical-align:top;white-space:normal;border-right:1px solid #edf1f5;border-bottom:1px solid #edf1f5}.hotel-calendar thead th{position:sticky;top:0;z-index:4;background:#f8fafc;padding:11px 10px}.hotel-calendar thead th strong{display:block;color:#788b9f;font-size:12px;letter-spacing:0;margin-top:4px}.hotel-calendar thead th:first-child,.hotel-calendar tbody th{position:sticky;left:0;width:115px;min-width:115px;z-index:3;background:#fbfcfd}.hotel-calendar thead th:first-child{z-index:5}.hotel-calendar tbody th strong{display:block;color:#687e97;font-size:15px;font-weight:600}.hotel-calendar tbody th small{display:block;font-size:8px;letter-spacing:0;color:#a1aebb;font-weight:400;white-space:normal;text-transform:none;margin-top:3px}.hotel-calendar caption{caption-side:bottom;max-width:900px;padding:11px;font-size:9px;color:#97a4b2;white-space:normal}.calendar-today{background:#f4f8fc!important}.calendar-legend{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:12px}.legend-tag{padding:4px 8px;border-radius:4px;font-size:8px}.calendar-event{display:block;padding:7px;margin:0 0 6px;border-left:2px solid currentColor;border-radius:5px;overflow-wrap:anywhere;font-size:9px}.calendar-event strong,.calendar-event span,.calendar-event small{display:block;line-height:1.5}.calendar-event strong{font-weight:550}.calendar-event small{font-size:7px;opacity:.8}.tag-free{background:#f6f8fa;color:#9fabb9}.tag-pending{background:#f9f5ed;color:#a29377}.tag-reserved{background:#eff5f1;color:#809f8e}.tag-stay{background:#edf3f9;color:#7a98b7}.calendar-free{display:block;padding:10px 0;font-size:8px;color:#b1bdc9}.mobile-menu-toggle,.mobile-menu-close,.menu-backdrop{display:none}
.surface-reveal{animation:surface-in .32s var(--ease) both}@keyframes surface-in{from{opacity:.55;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.field-is-filled:not(:focus){background:#fff}.ui-table-sort-hint{color:#aab6c4}.ui-focus-row{background:#f5f8fc!important}.table-responsive:focus-within{border-color:#cbd8e6}.ui-progress{position:fixed;left:210px;right:0;top:0;height:2px;background:linear-gradient(90deg,#7d9cbf,#c0cfdf);transform:scaleX(0);transform-origin:left;z-index:1500;opacity:0;transition:transform .3s,opacity .2s}.ui-progress.is-loading{transform:scaleX(.8);opacity:1}.ui-progress.is-done{transform:scaleX(1);opacity:0}.ui-submit-busy{pointer-events:none;opacity:.65}.ui-submit-busy::after{content:"";width:10px;height:10px;border:1px solid currentColor;border-right-color:transparent;border-radius:50%;animation:ui-spin .6s linear infinite}@keyframes ui-spin{to{transform:rotate(360deg)}}
/* Internal receipt layout shares the professional light typography. */
.receipt-page{background:linear-gradient(135deg,#fff,#eef0f4);color:#49586a;font-size:12px}.receipt-toolbar{display:flex;justify-content:space-between;gap:12px;max-width:850px;margin:24px auto 15px;padding:0 18px}.receipt-toolbar a,.receipt-toolbar button{padding:7px 12px;border:1px solid #dce3ec;background:#fff;color:#6c819b;border-radius:6px;font:inherit;font-size:10px;cursor:pointer}.receipt-sheet{max-width:850px;margin:0 auto 35px;padding:35px;background:#fff;border:1px solid #e1e6ee;border-radius:12px;box-shadow:0 8px 30px #31435806}.receipt-header{display:flex;align-items:center;gap:25px;padding-bottom:20px;border-bottom:1px solid #dfe6ef}.receipt-header img{width:145px;max-height:75px;object-fit:contain;background:none;border:0;box-shadow:none}.receipt-header h1{font-size:20px;margin:0 0 6px}.receipt-header p{font-size:10px;margin:3px 0;color:#919eae}.receipt-title{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:20px}.receipt-title h2{font-size:15px}.receipt-title span{padding:4px 8px;background:#f4f7fa;border-radius:5px;border:1px solid #e1e8f0;font-size:9px}.receipt-sheet table{width:100%;border-collapse:collapse;margin:17px 0;font-size:10px}.receipt-sheet th{padding:9px;text-align:left;font-size:8px;text-transform:uppercase;letter-spacing:.04em;background:#f8fafc;color:#94a2b2;font-weight:600}.receipt-sheet td{padding:10px 9px;border-bottom:1px solid #edf1f6;overflow-wrap:anywhere}.receipt-sheet td:last-child{white-space:nowrap}.receipt-totals{max-width:300px;margin:18px 0 24px auto}.receipt-totals>div{display:flex;justify-content:space-between;gap:15px;padding:8px 0;border-bottom:1px solid #e9eef4}.receipt-totals dt{font-weight:400;font-size:10px;color:#8f9dae}.receipt-totals dd{margin:0;font-weight:600}.receipt-sheet h3{font-size:13px;margin-top:25px}.receipt-sheet footer{margin-top:23px;border-top:1px solid #e4eaf1;padding-top:14px;font-size:9px;color:#98a5b4}
@media(min-width:1600px){.main-content{padding-left:30px;padding-right:30px}.room-board,.room-board-wide{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}}
@media(max-width:1199px){.main-content{padding:15px 18px 28px}.dashboard-metrics-row{grid-template-columns:repeat(3,minmax(0,1fr))}.room-board,.room-board-wide{grid-template-columns:repeat(auto-fit,minmax(215px,1fr))}.insight-card>strong{font-size:19px}.topbar-actions{gap:10px}.grid-2{gap:12px}}
@media(max-width:991px){.app-shell{display:block}.main-content{padding:12px 15px 25px}.sidebar{position:fixed;top:0;left:0;bottom:0;z-index:1200;width:min(290px,86vw);height:100dvh;padding:58px 16px 20px;background:rgba(251,252,254,.97);transform:translateX(-105%);visibility:hidden;transition:transform .25s var(--ease),visibility .25s}.mobile-menu-toggle,.mobile-menu-close{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;background:#f7f9fc;border:1px solid #e1e7ef;border-radius:7px;color:#8294aa;font-size:16px;flex-shrink:0}.mobile-menu-close{position:absolute;right:14px;top:14px}.menu-open{overflow:hidden}.menu-open .sidebar{transform:translateX(0);visibility:visible}.menu-backdrop:not([hidden]){display:block;position:fixed;inset:0;z-index:1100;background:#27374b26;backdrop-filter:blur(5px);border:0;padding:0}.topbar{top:7px;min-height:57px;padding:9px 12px;margin-bottom:15px}.topbar-heading .eyebrow{font-size:7px}.topbar-actions>.text-end{display:none}.page-title{font-size:15px}.topbar .text-muted{font-size:8px!important}.topbar-actions .btn{font-size:9px;min-height:29px}.grid-2,.reservation-layout{grid-template-columns:minmax(0,1fr)}.workspace-split{display:flex;flex-direction:column-reverse}.workspace-split>.card{width:100%}.insight-grid{gap:9px;grid-template-columns:repeat(4,minmax(0,1fr))}.insight-card{padding:11px;min-height:88px}.insight-card>span{font-size:8px}.insight-card>strong{font-size:18px}.insight-card>a,.insight-card>small{font-size:7px}.page-intro h2{font-size:19px}.page-intro p{font-size:10px}.page-intro{gap:13px}.intro-actions .btn{font-size:10px}.form-control,.form-select{font-size:16px;min-height:37px}.form-label{font-size:10px}.list-filters label{font-size:9px}.list-filters .btn{min-height:37px}.simple-form-grid{gap:10px}.source-selector{grid-template-columns:repeat(3,minmax(0,1fr))}.login-shell{margin:40px 22px;max-width:none;min-height:440px}.login-card{padding:32px}.ui-progress{left:0}.receipt-sheet{margin:0 18px 25px}.receipt-toolbar{margin-top:18px}.form-panel{scroll-margin-top:90px}}
@media(max-width:575px){.main-content{padding:9px 10px 25px}.topbar{border-radius:9px}.topbar-heading{gap:8px}.topbar-heading .eyebrow{display:none}.topbar-actions .btn{padding:5px 8px}.page-title{font-size:14px}.page-intro{align-items:flex-start;flex-wrap:wrap;margin-bottom:13px}.page-intro h2{font-size:18px}.page-intro .intro-actions{width:100%}.intro-actions .btn{flex:1}.insight-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.insight-card{min-height:92px;padding:11px 12px}.insight-card>strong{font-size:21px}.insight-card>span{font-size:8px}.insight-card>small,.insight-card>a{font-size:8px}.dashboard-metrics-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.metric{padding:10px;min-height:83px}.metric-icon-wrap{position:static;width:15px;height:15px;font-size:13px;margin-bottom:5px}.metric .label{font-size:7px;max-width:none;min-height:21px}.metric .value{font-size:12px;margin-top:5px;letter-spacing:-.04em}.operation-strip{gap:6px}.operation-pill{font-size:8px;padding:4px 7px;gap:5px}.card .card-header{padding:10px 12px;font-size:11px}.card .card-body{padding:12px}.room-board,.room-board-wide,.room-inventory-gallery .room-board{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.room-tile{height:145px;min-height:145px;border-radius:8px}.room-photo-side,.room-number-side{bottom:38px}.room-number-side{padding:9px 5px}.room-kicker{font-size:6px;letter-spacing:.06em}.room-tile .room-name{font-size:25px}.room-tile .room-meta{font-size:7px;white-space:normal;line-height:1.3}.room-tile .room-action{font-size:6px;margin-top:5px}.room-card-bottom{height:38px;gap:3px;flex-wrap:wrap;padding:5px 7px;align-content:center}.room-tile .room-pill{font-size:7px}.room-card-capacity{font-size:7px}.room-card-price{font-size:8px;flex-basis:100%;text-align:right;line-height:1}.room-card-price small{font-size:6px}.room-pill::before{width:4px;height:4px;flex-basis:4px}.status-legend{gap:7px}.legend-chip{font-size:7px}.dashboard-status-header{gap:8px!important}.topbar-subtitle{font-size:8px}.room-filter-form>.col-md-4{flex-basis:100%;width:100%}.list-filters{gap:8px}.list-filters label{flex:1 1 120px;min-width:0}.list-filters .filter-search{flex-basis:100%}.list-filters .btn{flex:1}.list-pagination{font-size:8px;gap:7px}.pagination-controls{gap:7px}.table{font-size:10px}.table thead th{font-size:7px}.table>:not(caption)>*>*{padding:9px 7px}.table .btn{font-size:9px;padding:4px 7px}.source-option-body{flex-direction:column;gap:4px;padding:7px 5px;font-size:8px}.source-option-body img{max-width:27px;max-height:15px}.simple-form-grid{grid-template-columns:minmax(0,1fr)}.financial-breakdown dt{font-size:10px}.financial-breakdown dd{font-size:11px}.reservation-quick-modal .modal-dialog{margin:.5rem;max-width:calc(100% - 1rem)}.modal-header,.modal-body{padding:13px}.modal-header .modal-title{font-size:15px}.login-shell{display:block;margin:25px 14px;min-height:0;max-width:430px}.login-photo-panel{height:155px;min-height:155px;max-height:155px}.login-photo-panel img{height:155px;width:100%;object-position:center 59%}.login-card{padding:25px}.login-brand-wrap{margin-bottom:20px}.login-brand-logo{max-height:66px}.login-card .text-center{margin-bottom:18px!important}.receipt-sheet{margin:0 10px 20px;padding:20px 16px}.receipt-header{gap:12px;flex-direction:column;align-items:flex-start}.receipt-header img{width:125px;max-height:65px}.receipt-header h1{font-size:18px}.receipt-title{align-items:flex-start;flex-direction:column;gap:5px}.receipt-sheet table{font-size:9px}.receipt-sheet td,.receipt-sheet th{padding:8px 4px}.receipt-toolbar{padding:0 10px}.receipt-toolbar a,.receipt-toolbar button{font-size:9px;padding:7px 9px}.hotel-calendar th,.hotel-calendar td{width:142px;min-width:142px}.hotel-calendar thead th:first-child,.hotel-calendar tbody th{width:100px;min-width:100px}.logo-preview-card{justify-content:flex-start}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.room-tile:hover .room-photo-side,.room-tile:focus-visible .room-photo-side{transform:none;clip-path:polygon(0 0,100% 0,72% 100%,0 100%)}.room-tile:hover .room-number-side,.room-tile:focus-visible .room-number-side{transform:none}.room-tile:hover,.room-tile:focus-visible,.metric:hover,.insight-card:hover,.btn:hover{transform:none}}
@media print{@page{margin:14mm;size:A4}.sidebar,.topbar,.menu-backdrop,.skip-link,.no-print,.report-filters-card,.intro-actions,.list-pagination,.section-shortcuts,.ui-progress{display:none!important}body,.receipt-page{background:#fff!important;color:#333;font-size:10px}.app-shell{display:block}.main-content{padding:0;max-width:none}.card,.insight-card{background:#fff!important;box-shadow:none!important;border:1px solid #ddd;border-radius:0;break-inside:avoid}.card .card-header{background:#fff}.table-responsive{overflow:visible}.table th,.table td{color:#444}.grid-2{display:block}.grid-2>.card{margin-bottom:10px}.insight-grid{grid-template-columns:repeat(2,1fr)}.insight-card>strong{font-size:17px}.receipt-sheet{border:0;margin:0;padding:0;max-width:none;box-shadow:none;border-radius:0}.receipt-header{flex-direction:row}.receipt-header img{width:130px}.receipt-sheet thead{display:table-header-group}.receipt-sheet tr{break-inside:avoid}.receipt-sheet table{font-size:9px}.record-link{display:none}.room-tile{break-inside:avoid}.surface-reveal{animation:none}.page-intro{margin-bottom:10px}.receipt-title h2{font-size:15px}a{color:inherit;text-decoration:none}}

.room-photo-side img{object-position:var(--photo-x,50%) var(--photo-y,50%)}

/* Compact does not hide secondary information. */
.metric .label{font-size:9px}.room-kicker{font-size:8px}.room-tile .room-meta{font-size:9px}.room-tile .room-action{font-size:8px}.room-tile .room-pill,.room-card-capacity{font-size:9px}.legend-chip{font-size:9px}
@media(max-width:575px){.metric .label{font-size:8px}.room-kicker{font-size:7px}.room-tile .room-meta,.room-tile .room-action,.room-tile .room-pill,.room-card-capacity{font-size:8px}.legend-chip{font-size:8px}.room-card-price{font-size:9px}}
