/* v0.8.2: immediate-action workflow layer and operational attention */
.workflow-backdrop{position:fixed;inset:0;z-index:1250;background:rgba(6,24,39,.64);backdrop-filter:blur(5px);display:flex;justify-content:center;align-items:flex-start;padding:clamp(10px,3vw,36px);overflow-y:auto;overscroll-behavior:contain}
.workflow-dialog{position:relative;width:min(100%,840px);max-height:calc(100dvh - 26px);overflow-y:auto;overscroll-behavior:contain;border-radius:24px;background:#fff;box-shadow:0 35px 110px rgba(8,27,45,.38);border:1px solid rgba(226,235,238,.95);margin:auto 0}
.workflow-dialog.booking-workflow{width:min(100%,1190px);background:#f7faf9}.workflow-dialog.booking-workflow .booking-studio{margin:0;border:none;box-shadow:none;border-radius:24px}
.workflow-dialog.room-workflow .panel,.workflow-dialog.compact-workflow .panel{border:0;box-shadow:none;margin:0}
.workflow-dialog .studio-heading{position:sticky;top:0;z-index:3;background:linear-gradient(115deg,#f6faf8,#fff);padding:22px 28px;border-bottom:1px solid #e3eae9}
.workflow-dialog .studio-main{min-width:0}.workflow-dialog .booking-steps{margin:0 24px 16px}
.workflow-dialog .studio-layout{padding-bottom:14px}.workflow-dialog .studio-close{cursor:pointer}
.workflow-dialog.compact-workflow{width:min(100%,560px)}.workflow-dialog .setup-grid{display:block;padding:18px 28px 30px}.workflow-dialog .hidden-setup{display:none!important}
.workflow-dialog .setup-grid form{max-width:none!important}.workflow-dialog .setup-grid form input,.workflow-dialog .setup-grid form select{width:100%}
.workflow-dialog .panel-heading{position:sticky;top:0;background:#fff;z-index:2;border-bottom:1px solid #ebf0f1}
.top-notice-wrap{position:relative;flex-shrink:0}.top-notice-bell{position:relative;display:grid;place-items:center;background:#fff;border:1px solid #dfe9e8;border-radius:13px;width:42px;height:42px;cursor:pointer;transition:.15s;box-shadow:0 2px 5px rgba(11,36,50,.04)}
.top-notice-bell:hover,.top-notice-bell[aria-expanded=true]{border-color:#0a8d7e;background:#effaf6}.top-notice-bell img{width:20px;height:20px}.top-notice-count{position:absolute;right:-5px;top:-7px;background:#bd5b3d;color:#fff;border:2px solid #fff;min-width:21px;height:21px;border-radius:50px;font-size:10px;display:grid;place-items:center;font-weight:800}
.top-notice-popover{position:absolute;z-index:2000;top:calc(100% + 13px);right:0;width:min(400px,calc(100vw - 25px));max-height:min(620px,75dvh);overflow:auto;background:#fff;border:1px solid #dfe7e8;box-shadow:0 18px 55px rgba(10,34,46,.22);border-radius:19px;color:#102d3d}
.top-notice-heading{padding:17px 19px;border-bottom:1px solid #e7eeee;display:flex;gap:12px;align-items:center;justify-content:space-between}.top-notice-heading strong{display:block;font-size:16px}.top-notice-heading small{display:block;color:#647d88;font-size:11px;margin-top:4px}
.top-notice-list{max-height:450px;overflow:auto}.top-notice-item{display:flex;gap:4px;border-bottom:1px solid #edf1f2;border-left:4px solid #90b0bc}.top-notice-item.top-notice-urgent{border-left-color:#c34f45}.top-notice-item.top-notice-warning{border-left-color:#d1a13e}.top-notice-item button:first-child{text-align:left;background:transparent;border:0;flex:1;padding:14px 13px;cursor:pointer}.top-notice-item button:first-child:hover{background:#f4faf8}.top-notice-item strong,.top-notice-item small{display:block}.top-notice-item strong{font-size:13px;color:#102d3d}.top-notice-item small{font-size:11px;color:#57707b;margin-top:4px;line-height:1.5}.top-notice-dismiss{align-self:flex-start;border:0;background:transparent;padding:13px;cursor:pointer;color:#90a0ab}
.top-notice-empty{padding:28px 18px;text-align:center;color:#56707b}.top-notice-footer{padding:10px 18px;text-align:right;border-top:1px solid #e8eeee}.top-notice-footer button{border:0;background:transparent;font-weight:700;color:#087f72;cursor:pointer}
.attention-section,.today-room-board{margin-top:20px}.attention-list{display:grid;gap:10px;padding:18px;grid-template-columns:repeat(auto-fit,minmax(270px,1fr))}.attention-item{border:1px solid #e0eae8;border-left:4px solid #0d9881;display:flex;align-items:center;text-align:left;gap:12px;background:#f8fbfa;border-radius:12px;padding:15px;cursor:pointer}.attention-item.attention-warning{border-left-color:#d9a444;background:#fffaf0}.attention-item.attention-urgent{border-left-color:#cd5851;background:#fff8f7}.attention-item>span:nth-child(2){flex:1}.attention-item strong{display:block;color:#153447;font-size:13px}.attention-item small{display:block;color:#607985;font-size:11px;line-height:1.55;margin-top:4px}.attention-glyph{width:34px;height:34px;border-radius:11px;background:#e2efec;display:grid;place-items:center;font-weight:800;color:#137e73}
.today-room-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(205px,1fr));gap:12px;padding:17px}.today-room{background:#f7faf9;border:1px solid #e1eae8;border-top:4px solid #1c9e83;border-radius:14px;padding:15px;min-height:125px}.today-room.status-reserved{border-top-color:#c99a45;background:#fffbf3}.today-room.status-occupied{border-top-color:#437bac;background:#f5f9fd}.today-room.status-checkout{border-top-color:#c06a40;background:#fff8f2}.today-room.status-blocked,.today-room.status-cleaning{border-top-color:#cb777a;background:#fcf7f6}
.today-room-head{display:flex;align-items:center;gap:8px;justify-content:space-between}.today-room-head strong{color:#123747}.today-room-pill{font-size:10px;font-weight:750;border-radius:20px;background:rgba(8,45,50,.07);padding:5px 8px;white-space:nowrap}.today-room>small{display:block;margin-top:4px;color:#6b8190}.today-room p{display:flex;flex-direction:column;gap:3px;margin:14px 0 0;font-size:11px;line-height:1.5;color:#627e89}.today-room p b{color:#193644;font-size:12px}.room-status-legend{display:flex;flex-wrap:wrap;gap:12px;color:#687f89;padding:13px 19px 0;font-size:11px}
.room-occupancy-badge{display:inline-flex;max-width:100%;font-size:11px;font-weight:750;border:1px solid #b4d9c8;border-radius:20px;padding:5px 10px;background:#ebf8ef;color:#126746;margin:6px 0}.room-occupancy-badge.status-reserved{background:#fff4dc;color:#906014;border-color:#f0d5a0}.room-occupancy-badge.status-occupied{background:#eaf2fc;color:#205880;border-color:#c5d9ef}.room-occupancy-badge.status-checkout-due{background:#ffeee3;color:#9c4d22;border-color:#edb98f}.room-occupancy-badge.status-cleaning,.room-occupancy-badge.status-out-of-service,.room-occupancy-badge.status-maintenance{background:#fbeced;color:#9b4047;border-color:#e8c1c4}
.settings-alerts{background:#f5faf8;border:1px solid #e0ece9;padding:16px;border-radius:14px}.settings-alerts strong{display:block;color:#123848}.settings-alerts p{font-size:12px;color:#687e89;margin:5px 0 13px}.settings-alerts .check-inline{display:flex;gap:9px;align-items:center;margin:12px 0}.settings-alerts .check-inline input{width:auto!important}.settings-alerts select{max-width:300px}
.legacy-ticket-panel{margin-top:24px}.legacy-ticket-grid{padding:18px;display:grid;grid-template-columns:repeat(auto-fill,minmax(225px,1fr));gap:13px}.legacy-ticket-card{border:1px solid #e0e7e9;border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:9px}.legacy-ticket-card strong{font-size:13px}.legacy-ticket-card small{color:#718895}.legacy-ticket-lines{display:flex;gap:6px;flex-direction:column;border-top:1px solid #e7eded;padding-top:10px}.legacy-ticket-card button{align-self:flex-start}
@media(max-width:768px){.workflow-backdrop{padding:0}.workflow-dialog,.workflow-dialog.booking-workflow{width:100%;max-height:100dvh;height:100dvh;margin:0;border:0;border-radius:0}.workflow-dialog .studio-heading{padding:15px}.workflow-dialog .booking-steps{margin:0 12px}.workflow-dialog .studio-layout{padding:12px}.top-notice-popover{position:fixed;top:65px;right:10px;left:10px;width:auto;max-height:75dvh}.top-notice-bell{width:38px;height:38px}.today-room-grid{grid-template-columns:repeat(auto-fill,minmax(145px,1fr));gap:9px;padding:11px}.today-room{padding:11px}.attention-list{grid-template-columns:1fr;padding:12px}.workflow-dialog .setup-grid{padding:14px}}

/* v0.8.2.3: keep operational alerts above dashboard content and inside viewport. */
.topbar{position:relative;z-index:1100;overflow:visible;isolation:isolate;backdrop-filter:none}
.top-actions{position:relative;overflow:visible}
.top-notice-wrap{z-index:1101}
.top-notice-popover{z-index:1102;box-shadow:0 24px 75px rgba(6,25,38,.30)}
/* Actions must not collide on narrow room cards. */
.room-actions{display:flex;flex-wrap:wrap;align-items:center;gap:7px}
.room-actions .btn{flex:0 1 auto;white-space:nowrap}
/* The entire form is visible at once, even on smaller laptop windows. */
.workflow-backdrop{z-index:2500}
.workflow-dialog{max-height:calc(100dvh - 24px)}
.workflow-dialog .form-panel{max-width:100%;overflow:visible}
.workflow-dialog .form-grid{padding:24px}
.workflow-dialog .confirm-panel{margin:0;border:0;box-shadow:none;padding:25px}
@media(max-width:768px){.topbar{z-index:1100}.top-notice-popover{position:fixed;z-index:1102;top:66px;left:12px;right:12px;width:auto;max-width:none}.workflow-dialog{max-height:100dvh}.workflow-dialog .form-grid{padding:16px}.room-actions .btn{flex:1 1 42%}}

.room-next-booking{display:block;color:#885813;background:#fff6e4;border:1px solid #f1dbb7;border-radius:8px;margin-top:7px;padding:6px 8px;font-weight:730;font-size:11px}

/* Focused, dismissible notification layer: details stay above all page cards. */
.top-notice-scrim{position:fixed;inset:0;z-index:1100;background:rgba(9,26,37,.17);border:0;border-radius:0;cursor:default;padding:0}
.top-notice-bell{z-index:1103}
.top-notice-popover{z-index:1104}
