[hidden]{display:none!important}.auth-view{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:28px}.auth-brand{font-size:54px;font-weight:850;letter-spacing:-3px;line-height:1;text-align:center;margin-bottom:30px}.auth-brand span{display:block;letter-spacing:5px;font-size:11px;font-weight:600;margin-top:12px}.auth-card{background:var(--white,#fff);padding:28px;width:420px;max-width:100%;border:1px solid var(--ink);border-radius:14px}.auth-card h1{font-size:26px;letter-spacing:-.7px}.auth-card>p{color:var(--muted);margin:12px 0 24px}.auth-card .error-message{color:#ad403b;margin:0 0 14px}.auth-card .field{margin-bottom:18px}.auth-view #auth-status{margin-top:16px;color:var(--muted)}.online-status{margin:0 0 18px;font-size:12px;color:var(--muted);min-height:18px}.online-status.offline{background:#f9e6df;color:#9d362f;padding:12px;border-radius:8px;font-weight:600}.online-status:not(.offline){display:flex;align-items:center;gap:8px}.online-status:not(.offline):before{content:'';width:6px;height:6px;flex-shrink:0;border-radius:50%;background:var(--status-free)}.header-right .admin-chip{border:0;background:none;cursor:default;font-size:12px}.online-dialog-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:20px}.online-dialog-actions .button{flex:1}.online-note-error .note-save-status{opacity:1;color:#ad403b}.online-detail-summary{margin:18px 0}.online-photo-file{margin:18px 0}.online-empty{padding:28px;color:var(--muted)}.online-staff-list{margin:20px 0}.online-staff-list li{margin:8px 0}.online-note-compare{white-space:pre-wrap;overflow-wrap:anywhere;padding:14px;border:1px solid var(--line);border-radius:8px;margin-bottom:14px}.online-error{color:#ad403b}.online-amount{font-size:27px;font-weight:750}.online-billing .info-box{margin:12px 0}.online-muted{color:var(--muted)}#connection-badge.offline i{background:var(--status-busy)}@media(max-width:700px){#app-view .sidebar{position:static;width:100%;border-right:0;border-bottom:1px solid var(--line);padding:16px;gap:14px}.sidebar .brand{font-size:28px;margin:0}.sidebar .brand span{font-size:var(--minimum-font-size,9.82px)}.sidebar #nav{display:flex;flex-wrap:wrap;gap:6px}.sidebar .sidebar-bottom{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.sidebar .sidebar-bottom .connection{margin:0}.sidebar-bottom .nav-link{padding:8px;border:0}.sidebar .nav-link{padding:8px 12px;font-size:12px}#app-view main{margin-left:0;padding:18px 14px}.page-header{gap:14px;align-items:start}.page-header h1{font-size:27px}.header-right{flex-wrap:wrap;justify-content:flex-start}.dashboard-summary .dashboard-indicators{margin-left:0}.auth-view{padding:20px}.auth-card{padding:22px}.online-dialog-actions{flex-direction:column}.room-table-wrap{max-width:100%}}

#product-results{max-height:260px;overflow-y:auto;margin-bottom:20px}.cart-item{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 0;border-bottom:1px solid var(--line)}.cart-item>span{flex:1}.cart-quantity{display:flex;align-items:center;gap:10px}.room-sale-total{display:flex;align-items:center;gap:100px}.sale-delete-control{display:flex;align-items:center;gap:6px;color:var(--status-busy)}.sale-delete-countdown{font-size:11px;font-variant-numeric:tabular-nums;min-width:32px}.sale-delete{padding:7px;border-color:#dfb5b0;color:var(--status-busy)}.sale-delete svg{width:16px;height:16px}.online-dialog-actions+.online-billing{margin-top:24px}.summary.online-detail-summary .summary-row{gap:20px}


#receipt-results{max-height:230px;overflow-y:auto;margin-bottom:20px}.receipt-line header{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:12px}.receipt-pricing{font-size:12px;margin-top:10px}.booking-actions{min-width:230px}.booking-actions .button{margin:3px}.booking-note{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;color:var(--muted)}.layout-error{font-size:12px;color:#ad403b;padding:8px 0;overflow-wrap:anywhere}.layout-error .button{margin-top:7px}.minibar-actions{align-items:center;flex-wrap:wrap}.product-results .search-result,.minibar-search-results .search-result{width:100%}
@media(max-width:700px){.kpi-date-fields .field{width:100%}.kpi-grid h2{font-size:22px}.page-footer{flex-wrap:wrap}.room-sale-total{gap:25px}.simple-table{min-width:680px}.panel{padding:16px}.dashboard-summary .dashboard-indicators{margin-left:0}}

.settlement-countdown.settlement-expired{display:block;background:var(--status-busy);color:#fff;border-radius:4px;padding:3px 6px;white-space:nowrap}.checkout-expired-notice{margin-top:18px;background:var(--status-busy);color:#fff;border-radius:9px;padding:14px;text-align:center;font-weight:700}#owner-finish-checkout{margin-top:12px}

.technical-panel{border:1px solid var(--line);border-radius:12px;padding:18px;margin-top:28px}.technical-buttons{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px}.technical-buttons .button{font-size:12px;min-height:46px}.technical-history-item{font-size:12px;overflow-wrap:anywhere}.technical-history-item small{display:block;color:var(--muted);margin:5px 0 10px}#technical-editor:empty{display:none}#technical-editor{margin-top:18px}#technical-form .field{margin-top:14px}#technical-form fieldset label{display:block;margin:10px 0}#technical-form input[type=radio]{width:auto;min-height:0}#technical-form .button{margin-top:12px}@media(max-width:500px){.technical-buttons{grid-template-columns:1fr}}

#finish-checkout.button{background:var(--status-cleaning);border-color:#ad8725;color:#24271f}#finish-checkout.button:hover{background:#d7ab34;border-color:#ad8725}

/* Desktop density: fit seven rooms without scaling the browser or shrinking dialogs. */
@media(min-width:1000px){
 #app-view .sidebar{width:168px;padding:20px 12px 14px}
 #app-view .sidebar .brand{font-size:40px;margin:0 8px 25px}
 #app-view .sidebar .brand span{font-size:var(--minimum-font-size,9.82px);margin-top:7px}
 #app-view .sidebar nav{gap:4px}
 #app-view .sidebar .nav-link{font-size:12.5px;padding:9px 10px;gap:9px}
 #app-view .sidebar .nav-link svg{width:18px;height:18px}
 #app-view .sidebar-bottom{gap:10px}
 #app-view main{margin-left:168px;padding:12px 18px 10px;max-width:none}
 #app-view .page-header{gap:8px}
 #app-view .page-header h1{font-size:27px;letter-spacing:-1px}
 #app-view .header-right{font-size:11px;gap:10px}
 #app-view .online-status{font-size:10px;min-height:14px;margin:3px 0 10px}
 #page>.toolbar{margin-bottom:12px;gap:10px}
 #page>.toolbar .button{min-height:34px;padding:7px 13px;font-size:12px;border-radius:7px}
 #page>.toolbar .button.raised{box-shadow:2px 3px 0 var(--ink);margin-bottom:3px}
 #page .dashboard-summary{gap:12px;margin-bottom:14px}
 #page .dashboard-summary .metric{min-height:70px;min-width:170px;padding:10px 16px;gap:6px;border-radius:11px}
 #page .dashboard-summary .summary-card-title{gap:7px;font-size:11px}
 #page .dashboard-summary .metric-icon{width:25px;height:25px;border-radius:6px}
 #page .dashboard-summary .metric-icon svg{width:16px;height:16px}
 #page .dashboard-summary .metric-value{font-size:23px}
 #page .dashboard-summary .dashboard-indicators{min-width:290px}
 #page .dashboard-indicator-values{gap:22px}
 #page .indicator-label{font-size:10px;margin-bottom:3px}
 #page .indicator-value{font-size:21px}
 #page .section-heading{margin-bottom:9px}
 #page .section-heading h2{font-size:22px;line-height:1.15}
 #page .room-table{--dash-row:clamp(64px,calc((100dvh - 320px)/7),76px);min-width:1000px;--room-control-width:82px;--room-control-height:46px}
 #page .room-table .col-note{width:212px}
 #page .room-table .col-object{width:calc((100% - 212px)*.11)}
 #page .room-table .col-time{width:calc((100% - 212px)*.17)}
 #page .room-table .col-total{width:calc((100% - 212px)*.11)}
 #page .room-table .col-deposit{width:calc((100% - 212px)*.14)}
 #page .room-table .col-cart{width:calc((100% - 212px)*.09)}
 #page .room-table .col-upcoming{width:calc((100% - 212px)*.21)}
 #page .room-table .col-occupancy{width:calc((100% - 212px)*.17)}
 #page .room-table td,#page .room-table td:nth-child(2),#page .room-table td.occupancy-cell,#page .room-table .upcoming-cell{padding:6px;vertical-align:middle;height:var(--dash-row)}
 #page .room-table td.note-cell{width:212px;min-width:212px;max-width:212px;padding:6px}
 #page .room-table .dashboard-note-wrap{width:198px;max-width:198px;margin:0}
 #page .dashboard-note{font-size:12px;line-height:16px;padding:5px 7px;min-height:52px;height:calc(var(--dash-row) - 12px);border-radius:7px}
 #page .room-table .room-name{font-size:18px}
 #page .room-table .room-status{font-size:var(--minimum-font-size,9.82px);line-height:1.25;padding:3px 5px}
 #page .room-table .room-open{display:block}
 #page .room-table .deposit-pill{width:96px;min-width:0;min-height:46px;height:46px;gap:3px;padding:5px 7px;font-size:12px;border-radius:7px}
 #page .deposit-heading{font-size:10px}
 #page .room-cart{min-width:0;width:58px;min-height:46px;height:46px;padding:4px;gap:2px;border-radius:7px}
 #page .room-cart svg{width:17px;height:17px}
 #page .room-cart span{font-size:var(--minimum-font-size,9.82px)}
 #page .room-table .vacant-action .button{width:90px;min-height:32px;height:32px;padding:6px 8px;font-size:11px}
 #page .room-table .vacant-action .button[data-action="settle"]{height:46px;min-height:46px}
 #page .settlement-countdown{font-size:10px}
 #page .settlement-countdown.settlement-expired{padding:2px 4px}
 #page .room-table .money.total{font-size:18px;white-space:normal;overflow-wrap:anywhere}
 #page .room-table .elapsed-value{font-size:12px;line-height:1.3}
 #page .room-table .progress{width:96px;max-width:100%;margin-top:5px}
 #page .planned-departure{font-size:9.82px;margin-top:4px}
 #page .upcoming-booking{max-width:146px;min-height:42px;padding:5px 7px;font-size:10px;gap:6px}
 #page .upcoming-booking .subline{font-size:var(--minimum-font-size,9.82px)}
 #page .room-occupancy{width:104px;max-width:100%}
 #page .room-occupancy-heading{font-size:10px;margin-bottom:3px}
 #page .room-occupancy-value{font-size:13px}
 #page .occupancy-track{height:3px;margin-top:5px}
 #app-view .page-footer{margin-top:12px;padding-top:8px;font-size:var(--minimum-font-size,9.82px)}
}

@media(min-width:1000px){
 #app-view .online-status{margin-bottom:8px}
 #page>.toolbar{margin-bottom:10px}
 #page .dashboard-summary{margin-bottom:10px}
 #page .dashboard-summary .metric{padding:6px 14px;gap:4px}
 #page .dashboard-summary .metric-icon{width:20px;height:20px}
 #page .dashboard-summary .metric-icon svg{width:14px;height:14px}
 #page .dashboard-summary .metric-value{font-size:22px;line-height:1.1}
 #page .indicator-label{line-height:1.2;margin-bottom:2px}
 #page .indicator-value{font-size:20px;line-height:1}
}

/* Four visible lines at the original height; longer comments grow their table row. */
#page .dashboard-note{resize:none;overflow:hidden;scrollbar-width:none}
@media(min-width:1000px){
 #page .room-table{min-width:1020px}
 #page .room-table .col-note{width:242px}
 #page .room-table .col-object{width:calc((100% - 242px)*.11)}
 #page .room-table .col-time{width:calc((100% - 242px)*.15)}
 #page .room-table .col-total{width:calc((100% - 242px)*.13)}
 #page .room-table .col-deposit{width:calc((100% - 242px)*.15)}
 #page .room-table .col-cart{width:calc((100% - 242px)*.09)}
 #page .room-table .col-upcoming{width:calc((100% - 242px)*.21)}
 #page .room-table .col-occupancy{width:calc((100% - 242px)*.16)}
 #page .room-table td:nth-child(3),#page .room-table td:nth-child(4){text-align:center}
 #page .room-table .elapsed{width:104px;max-width:100%;margin:auto}
 #page .room-table .money.total{font-size:22px;font-weight:800}
 #page .room-table .deposit-pill{width:104px;font-size:15px}
 #page .room-table .deposit-heading{font-size:12px}
 #page .room-table td.cart-cell{padding-left:0;text-align:left}
 #page .room-table td.note-cell{width:242px;min-width:242px;max-width:242px}
 #page .room-table .dashboard-note-wrap{width:228px;max-width:228px}
 #page .dashboard-note{padding-top:1px;padding-bottom:1px;line-height:calc((var(--dash-row) - 16px)/4);min-height:calc(var(--dash-row) - 12px);height:calc(var(--dash-row) - 12px)}
}

#page .dashboard-note-wrap:not(.online-note-error) .note-save-status{display:none}
#page .dashboard-note-wrap.online-note-error .note-save-status{display:block}

/* Match the planned departure label: no smaller text in the application. */
:root{--minimum-font-size:9.82px}
small{font-size:max(var(--minimum-font-size),.833333em)}

/* Environment badge sits below shift information without changing page geometry. */
.staging-environment .header-right{position:relative}
.staging-badge{position:absolute;right:0;top:calc(100% + 10px);display:inline-flex;align-items:center;justify-content:center;min-width:156px;min-height:36px;padding:8px 16px;border:1px solid #d8af42;border-radius:7px;background:#fff0bf;color:#694c00;font-size:13px;font-weight:750;line-height:1.2;white-space:nowrap}
@media(max-width:700px){.staging-badge{top:calc(100% + 5px)}}
