:root{--interval-height:24px;--ink:#211a32;--ink-soft:#655d73;--brand:#5b35b5;--brand-dark:#201735;--brand-deep:#171126;--accent:#d92d5c;--accent-dark:#b91f49;--surface:#ffffff;--surface-soft:#f7f5fa;--surface-tint:#f1edf8;--border:#e4dfeb;--border-strong:#cfc6db;--success:#13795b;--warning:#a65f00;--danger:#b4233f;--shadow-sm:0 4px 14px rgba(32,23,53,0.08);--shadow-md:0 14px 36px rgba(32,23,53,0.12);--radius-sm:10px;--radius-md:16px;--radius-lg:22px;--motion-fast:160ms;--motion:220ms}*{box-sizing:border-box}html{background:#eeebf3}body{min-width:320px;min-height:100dvh;margin:0;padding:16px;overflow-x:hidden;color:var(--ink);background:radial-gradient(circle at 8% 4%,rgba(91,53,181,0.11),transparent 26rem),#eeebf3;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}a,button,[role="button"],.time-slot,.fc-daygrid-day:not(.fc-day-disabled){touch-action:manipulation}:focus-visible{outline:3px solid #ffbfcc!important;outline-offset:3px}.skip-link{position:fixed;top:12px;left:12px;z-index:3000;padding:10px 16px;border-radius:10px;color:#fff;background:var(--brand-deep);transform:translateY(-150%);transition:transform var(--motion-fast) ease-out}.skip-link:focus{color:#fff;transform:translateY(0)}.main-container{display:grid;grid-template-columns:clamp(330px,27vw,390px) minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);grid-template-areas:"header header" "sidebar content";gap:16px;width:100%;height:calc(100dvh - 32px);min-height:680px;max-width:none;padding:0;overflow:hidden;border:0;border-radius:0;background:transparent;box-shadow:none}.header{grid-area:header;display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:80px;padding:14px 16px 14px 20px;overflow:visible;color:#fff;background:radial-gradient(circle at 12% 0%,rgba(149,112,239,0.35),transparent 22rem),var(--brand-deep);border:1px solid rgba(255,255,255,0.08);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.brand-lockup{display:flex;align-items:center;gap:13px;min-width:0}.brand-mark{display:grid;flex:0 0 48px;width:48px;height:48px;place-items:center;color:#fff;border:1px solid rgba(255,255,255,0.17);border-radius:15px;background:linear-gradient(145deg,var(--accent),#a935b9);box-shadow:0 8px 20px rgba(217,45,92,0.28)}.brand-mark svg,.header-primary svg,.icon-button svg,.business-hours-callout svg,.toast-icon svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.brand-eyebrow,.section-eyebrow,.room-kicker{display:block;margin-bottom:2px;font-size:0.69rem;font-weight:750;letter-spacing:0.12em;line-height:1.2;text-transform:uppercase}.brand-eyebrow{color:#d9cffa}.header h1{margin:0;overflow:visible;color:#fff;font-size:clamp(1.2rem,1.8vw,1.55rem);font-weight:720;letter-spacing:-0.025em;line-height:1.15;text-overflow:clip}.header-actions{display:flex;flex:0 0 auto;align-items:center;gap:8px}.header .header-actions .btn,.btn{min-height:44px;padding:10px 15px;border:1px solid transparent;border-radius:11px;font-size:0.88rem;font-weight:680;line-height:1;box-shadow:none;transition:background-color var(--motion-fast) ease,border-color var(--motion-fast) ease,box-shadow var(--motion-fast) ease,color var(--motion-fast) ease,transform var(--motion-fast) ease}.header .header-actions .btn:hover,.header .header-actions .btn:focus-visible{color:#fff;border-color:rgba(255,255,255,0.28);box-shadow:none;transform:none}.header .header-actions .header-primary,.btn-primary{color:#fff;border-color:var(--accent);background:var(--accent)}.header .header-actions .header-primary:hover,.header .header-actions .header-primary:focus-visible,.btn-primary:hover,.btn-primary:focus-visible{color:#fff;border-color:var(--accent-dark);background:var(--accent-dark)}.header-primary{display:inline-flex;align-items:center;gap:7px;white-space:nowrap}.header-primary svg{width:18px;height:18px}.header .header-actions .btn-secondary-action{color:#2f214c;border-color:#fff;background:#fff}.header .header-actions .btn-secondary-action:hover,.header .header-actions .btn-secondary-action:focus-visible{color:#2f214c;border-color:#ddd1f4;background:#f0eafb}.header .header-actions .btn-quiet{color:#ede8f9;border-color:rgba(255,255,255,0.14);background:rgba(255,255,255,0.07)}.header .header-actions .btn-quiet:hover,.header .header-actions .btn-quiet:focus-visible{background:rgba(255,255,255,0.13)}.admin-status,.admin-status.bg-secondary,.admin-status.bg-success{display:inline-flex;align-items:center;gap:7px;min-height:36px;padding:7px 10px;color:#dcd5ea;border:1px solid rgba(255,255,255,0.12);border-radius:999px;background:rgba(255,255,255,0.07)!important;font-size:0.74rem;font-weight:650;letter-spacing:0.01em}.status-dot{width:8px;height:8px;border-radius:50%;background:#a9a1b8;box-shadow:0 0 0 3px rgba(169,161,184,0.13)}.admin-status.bg-success .status-dot{background:#5ee6b3;box-shadow:0 0 0 3px rgba(94,230,179,0.14)}.sidebar{grid-area:sidebar;display:block;min-width:0;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#b9afc8 transparent}.calendar-container{display:flex;width:100%;height:auto;max-height:none;min-height:0;margin:0;padding:0;overflow:hidden;flex-direction:column;color:var(--ink);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-sm)}.panel-heading,.schedule-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.panel-heading{padding:18px 18px 14px;border-bottom:1px solid var(--border)}.section-eyebrow{color:var(--brand)}.panel-heading h2,.schedule-heading h2,.form-section-heading h3{margin:0;color:var(--ink);font-weight:720;letter-spacing:-0.025em}.panel-heading h2,.schedule-heading h2{font-size:1.25rem}.selected-date-display{flex:0 0 auto;margin:0;padding:7px 10px;color:#4b3a6b;border:1px solid #ded5ef;border-radius:9px;background:#f5f1fb;font-size:0.79rem;font-weight:700;font-variant-numeric:tabular-nums}.calendar-controls.simple{display:grid!important;grid-template-columns:44px 1fr 44px;gap:8px;padding:12px 18px;border-bottom:0}.calendar-controls.simple .btn{min-width:44px;min-height:44px;padding:8px 12px;color:#4c405f;border-color:var(--border-strong);border-radius:10px;background:#fff;font-size:0.86rem}.calendar-controls.simple .btn:hover,.calendar-controls.simple .btn:focus-visible{color:var(--brand);border-color:#ad9bd1;background:var(--surface-tint)}.icon-button{display:inline-grid;place-items:center}.icon-button svg{width:18px;height:18px}.month-nav-label{color:currentColor;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:0.92rem;font-weight:800;line-height:1}.calendar-container #calendar{flex:0 1 auto;width:100%;height:auto;min-height:0;max-height:none;padding:0 18px;overflow:visible}.fc{height:auto;color:var(--ink);font-size:0.82rem}.fc .fc-toolbar{min-height:40px;margin:0;padding:2px 0 10px;border-bottom:0;background:transparent}.fc .fc-toolbar-title{color:var(--ink);font-size:0.98rem;font-weight:720;letter-spacing:-0.01em}.fc .fc-scrollgrid,.fc-theme-standard td,.fc-theme-standard th{border-color:var(--border)}.fc .fc-col-header-cell{height:36px;color:var(--ink-soft);background:var(--surface-soft);font-size:0.7rem;font-weight:700;letter-spacing:0.04em;text-transform:uppercase}.fc .fc-col-header-cell-cushion{padding:9px 3px;color:inherit;text-decoration:none}.fc .fc-daygrid-day-frame,.fc .fc-daygrid-day{min-height:54px}.fc .fc-daygrid-day{max-height:none!important;background:#fff}.fc .fc-daygrid-day-number{position:relative;z-index:4;min-width:28px;padding:6px 7px;color:#4f465d;font-size:0.76rem;font-weight:650;text-align:center;text-decoration:none}.fc .fc-daygrid-day:not(.fc-day-disabled):hover{background:#f6f2fc}.fc .fc-daygrid-day.fc-day-today{background:#fbf0f4}.fc .fc-day-today .fc-daygrid-day-number{color:var(--accent-dark);border-radius:999px;background:#ffe2e9}.fc .fc-daygrid-day.selected-date,.fc .fc-daygrid-day.selected-date:hover{z-index:5;outline:2px solid var(--brand)!important;outline-offset:-2px;background:#f4effd;box-shadow:inset 0 0 0 2px var(--brand)}.fc .fc-daygrid-day.selected-date::after{display:none}.fc .fc-day-past,.fc .fc-day-disabled{opacity:0.46}.fc .availability-indicator{z-index:1;opacity:1}.fc .availability-high{background:#e5f4ee}.fc .availability-medium{background:#fff3d8}.fc .availability-low{background:#fdebd9}.fc .availability-none{background:#fae6ea}.fc .reservation-count{top:auto;right:5px;bottom:5px;left:auto;width:22px;height:22px;color:#fff;border:0;background:var(--brand);box-shadow:none;font-size:0.69rem;transform:none}.availability-legend{display:flex;flex-wrap:wrap;gap:12px 16px;padding:14px 18px 16px;color:var(--ink-soft);border-top:1px solid var(--border);font-size:0.72rem;font-weight:650}.availability-legend span{display:inline-flex;align-items:center;gap:6px}.availability-swatch{width:9px;height:9px;border-radius:50%}.availability-swatch.open{background:var(--success)}.availability-swatch.limited{background:#c97900}.availability-swatch.full{background:var(--danger)}.content-area{grid-area:content;display:flex;min-width:0;min-height:0;overflow-y:auto;overflow-x:hidden;flex-direction:column;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-sm)}.schedule-heading{flex:0 0 auto;padding:16px 18px 14px;border-bottom:1px solid var(--border)}.schedule-heading p{max-width:34ch;margin:0;color:var(--ink-soft);font-size:0.82rem;text-align:right}.rooms-container{display:flex;flex:0 0 auto;gap:12px;min-width:0;min-height:0;height:fit-content;padding:14px;overflow-x:auto;overflow-y:hidden;border:0;border-radius:0;background:var(--surface-soft);box-shadow:none;scrollbar-color:#beb4cb transparent}.room-container{flex:1 0 218px;min-width:218px;max-width:none;height:fit-content;overflow:visible;border:1px solid var(--border);border-radius:13px;background:#fff;box-shadow:0 3px 10px rgba(32,23,53,0.06)}.idle-room{flex:0 0 180px;min-width:180px;max-width:180px;height:fit-content;border-style:dashed;border-color:#c9bdd8;box-shadow:none}.room-header{position:sticky;top:0;z-index:100;display:flex;min-height:58px;padding:10px 78px 10px 12px;align-items:flex-start;justify-content:center;flex-direction:column;color:#fff;border:0;border-radius:12px 12px 0 0;background:linear-gradient(135deg,#4b2c91,#6842bd);text-align:left}.idle-room .room-header{background:#342a45}.room-kicker{margin:0 0 1px;color:#dcd0f8;font-size:0.58rem}.room-header strong{color:#fff;font-size:0.92rem;font-weight:700}.room-status{position:absolute;top:50%;right:10px;max-width:70px;padding:4px 7px;overflow:hidden;color:#e7e0f5;border:1px solid rgba(255,255,255,0.16);border-radius:999px;background:rgba(255,255,255,0.09);font-size:0.59rem;font-weight:700;line-height:1;text-overflow:ellipsis;white-space:nowrap;transform:translateY(-50%)}.room-status.has-bookings{color:#ffe6ed;border-color:rgba(255,199,214,0.28);background:rgba(217,45,92,0.24)}.room-timeline-wrapper{min-height:0;border:0;border-radius:0 0 12px 12px;background:#fff;overflow:visible}.scroll-sync-inner{scrollbar-color:#c4bbcf transparent;scrollbar-width:thin;overflow-y:visible;height:auto}.time-labels{width:76px;height:auto;min-height:calc((28 * var(--interval-height)) + 10px);padding-top:10px;border-right:1px solid var(--border);border-radius:0;background:#faf9fb}.time-label{height:var(--interval-height);padding:0 8px 0 3px;color:#6a6373;border-bottom:1px solid #ede9f1;background:transparent;font-size:0.69rem;font-variant-numeric:tabular-nums;line-height:var(--interval-height)}.room-timeline{min-height:calc((28 * var(--interval-height)) + 10px);padding-top:10px;padding-left:0;border-radius:0;background:#fff}.time-slot{min-height:var(--interval-height);height:var(--interval-height);border-bottom:1px solid #ede9f1;background:#fff;line-height:var(--interval-height);transition:background-color var(--motion-fast) ease}.time-slot:nth-child(2n){border-bottom-color:#dcd5e3}.time-slot:hover,.time-slot:focus-visible{background:#f0eafa}.idle-drop-area{gap:10px;min-height:220px;padding:12px;background:#fbfafc}.idle-drop-area .reservation-card{color:#443618;border:1px solid #e5c66e;border-left:4px solid #b87500;background:#fff8e6;box-shadow:0 3px 9px rgba(116,77,0,0.1)}.idle-drop-area .reservation-card:hover,.idle-drop-area .reservation-card:focus-visible{border-color:#b87500;background:#fff3cf}.idle-drop-area .reservation-card strong,.idle-drop-area .reservation-card .content strong,.idle-drop-area .reservation-card .people-count{color:#443618}.idle-empty-state{display:grid;min-height:112px;padding:18px 12px;place-items:center;color:var(--ink-soft);border:1px dashed #d8d0e1;border-radius:10px;background:#fff;font-size:0.78rem;line-height:1.45;text-align:center}.idle-empty-state::before{content:"";width:26px;height:3px;align-self:end;border-radius:99px;background:#c8bfd3;box-shadow:0 7px 0 #ddd6e5}.idle-empty-state strong{align-self:end;color:#43394f;font-size:0.79rem}.idle-empty-state span{align-self:start;color:var(--ink-soft);font-size:0.7rem}.reservation-card{width:calc(100% - 6px);left:3px;color:#2b1d45;border:1px solid #8a6cca;border-left:4px solid var(--brand);border-radius:8px;background:#f0eafa;box-shadow:0 3px 9px rgba(64,39,113,0.15);transition:background-color var(--motion-fast) ease,border-color var(--motion-fast) ease,box-shadow var(--motion-fast) ease}.reservation-card:hover{border-color:var(--brand);background:#e8def8;box-shadow:0 6px 14px rgba(64,39,113,0.18);transform:none}.reservation-card:focus-visible{z-index:120;border-color:var(--brand);box-shadow:0 0 0 3px #fff,0 0 0 6px rgba(91,53,181,0.45)}.reservation-card.is-read-only{cursor:default}.room-timeline .reservation-card.is-short .content{display:none}.room-timeline .reservation-card.is-short .time-indicator{height:100%;min-height:20px}.room-timeline .reservation-card.is-compact .people-count,.room-timeline .reservation-card.is-compact .language,.room-timeline .reservation-card.is-compact .notes{display:none}.reservation-card .time-indicator{color:#fff;background:var(--brand)}.reservation-card strong,.reservation-card .content strong,.reservation-card .people-count{color:#2b1d45}.reservation-card .people-count{background:rgba(91,53,181,0.12)}.current-time-indicator{height:2px;background:var(--accent)}.current-time-indicator::before,.current-time-label{background:var(--accent)}.modal-backdrop.show{opacity:0.58}.modal-dialog,.modal-dialog.modal-lg{max-width:760px}#loginModal .modal-dialog{max-width:460px}.modal-content{max-width:none;margin:0;overflow:hidden;border:1px solid rgba(255,255,255,0.12);border-radius:18px;background:#fff;box-shadow:0 24px 70px rgba(17,12,29,0.32)}.modal-header{min-height:76px;padding:16px 20px;color:#fff;border:0;border-radius:0;background:var(--brand-deep)}.modal-header .section-eyebrow{color:#ccbdf0}.modal-header .modal-title{margin:0;color:#fff;font-size:1.27rem;font-weight:720;letter-spacing:-0.02em}.modal-header .btn-close{width:44px;height:44px;margin:0;padding:0;border-radius:10px;background-color:rgba(255,255,255,0.1);filter:invert(1) grayscale(1) brightness(2);opacity:0.85}.modal-header .btn-close:hover{background-color:rgba(255,255,255,0.16);opacity:1}.modal-body{padding:24px}.form-section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid var(--border)}.form-section-heading.guest-heading{margin-top:4px}.form-section-heading h3{font-size:1rem}.form-section-heading>span{color:var(--ink-soft);font-size:0.72rem}.form-section-heading>span span,.required-mark{color:var(--danger)}.form-group{margin-bottom:14px}.form-group label,.form-label{display:inline-flex;align-items:center;gap:4px;margin-bottom:6px;color:#3b3248;font-size:0.83rem;font-weight:680}.bilingual-label.horizontal{min-height:20px;margin-bottom:6px}.optional-label{margin-left:4px;color:#766e80;font-size:0.67rem;font-weight:600}.password-field{position:relative}.password-field .form-control{padding-right:54px}.password-toggle{position:absolute;top:1px;right:1px;display:grid;width:44px;height:44px;padding:0;place-items:center;color:#665979;border:0;border-radius:9px;background:transparent;transition:color var(--motion-fast) ease,background-color var(--motion-fast) ease}.password-toggle:hover,.password-toggle:focus-visible,.password-toggle[aria-pressed="true"]{color:var(--brand);background:var(--surface-tint)}.password-toggle svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.form-control,.form-select{min-height:46px;padding:10px 12px;color:var(--ink);border:1px solid var(--border-strong);border-radius:10px;background-color:#fff;font-size:0.9rem;transition:border-color var(--motion-fast) ease,box-shadow var(--motion-fast) ease,background-color var(--motion-fast) ease}textarea.form-control{min-height:86px;resize:vertical}.form-control:focus,.form-select:focus{color:var(--ink);border-color:var(--brand);background-color:#fff;box-shadow:0 0 0 3px rgba(91,53,181,0.15)}.form-control::placeholder{color:#938b9d;opacity:1}.form-control:required:invalid:not(.is-invalid){border-color:var(--border-strong)}.form-control:required:valid:not(.is-valid){padding-right:12px;border-color:var(--border-strong);background-image:none}.form-control.is-valid{border-color:var(--success)}.form-control.is-invalid{border-color:var(--danger)}.invalid-feedback{margin-top:5px;color:var(--danger);font-size:0.76rem}.business-hours-callout{display:flex;align-items:center;gap:10px;padding:11px 13px;color:#493a65;border:1px solid #ddd2f0;border-radius:10px;background:#f6f2fc;font-size:0.78rem}.business-hours-callout svg{flex:0 0 20px;width:20px;height:20px;color:var(--brand)}.quick-duration-buttons{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.duration-btn{min-width:44px;min-height:44px;padding:8px;color:#49376b;border:1px solid #d4c9e5;border-radius:9px;background:#fff;font-size:0.8rem;font-weight:700;transition:color var(--motion-fast) ease,border-color var(--motion-fast) ease,background-color var(--motion-fast) ease}.duration-btn:hover,.duration-btn:focus-visible,.duration-btn.active{color:#fff;border-color:var(--brand);background:var(--brand)}.accordion-item{overflow:hidden;border-color:var(--border);border-radius:10px}.accordion-button{min-height:44px;padding:10px 13px;color:#433653;background:var(--surface-soft);font-size:0.83rem;font-weight:680}.accordion-button:not(.collapsed){color:var(--brand-dark);background:var(--surface-tint);box-shadow:inset 0 -1px 0 var(--border)}.accordion-button:focus{border-color:var(--brand);box-shadow:0 0 0 3px rgba(91,53,181,0.15)}.price-breakdown{color:var(--ink-soft)}.breakdown-item.total{color:var(--ink);border-top-color:var(--border-strong)}.form-actions{align-items:center;gap:12px;margin-top:18px;padding-top:16px;border-top:1px solid var(--border)}.form-actions .btn{min-width:130px}.btn-danger{color:var(--danger);border-color:#e7b8c2;background:#fff}.btn-danger:hover,.btn-danger:focus-visible{color:#fff;border-color:var(--danger);background:var(--danger)}.btn-secondary{color:#41364e;border-color:var(--border-strong);background:#fff}.btn-secondary:hover,.btn-secondary:focus-visible{color:var(--ink);border-color:#afa2bd;background:var(--surface-tint)}.btn:disabled,.duration-btn:disabled{cursor:not-allowed;opacity:0.5;transform:none}.btn .spinner-border{margin-right:6px}#loading-overlay{background:rgba(23,17,38,0.48);backdrop-filter:blur(3px)}.loading-spinner{padding:13px 18px;border-radius:11px;background:var(--brand-deep);box-shadow:var(--shadow-md)}.toast-container{position:fixed;top:auto!important;right:20px;bottom:20px;z-index:2100;width:min(360px,calc(100vw - 32px));padding:0!important}.toast,.toast.success,.toast.error,.toast.info{display:flex;width:100%;min-width:0;max-width:none;min-height:54px;margin:8px 0 0;padding:12px 14px;align-items:center;color:#fff;border:0;border-left:4px solid rgba(255,255,255,0.52);border-radius:12px;background:var(--brand-deep);box-shadow:0 12px 32px rgba(17,12,29,0.25);font-size:0.86rem;animation:toast-in-right var(--motion) ease-out}.toast.success{background:#11624b}.toast.error{background:#9d1c38}.toast.info{background:#433276}.toast-icon{display:grid;flex:0 0 28px;width:28px;height:28px;margin-right:10px;place-items:center;border-radius:50%;background:rgba(255,255,255,0.13)}.toast-icon svg{width:16px;height:16px}.edit-page{padding:32px 16px}.edit-shell{width:min(860px,100%);margin:0 auto}.edit-page-header{display:flex;align-items:center;gap:14px;margin-bottom:16px;padding:18px 20px;color:#fff;border-radius:var(--radius-md);background:var(--brand-deep);box-shadow:var(--shadow-md)}.edit-page-header h1{margin:0;font-size:1.35rem;font-weight:720;letter-spacing:-0.02em}.edit-page .card{overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.edit-page .card-header{padding:16px 20px;color:var(--ink);border-bottom:1px solid var(--border);background:var(--surface-soft)}.edit-page .card-header h2{font-size:1.05rem;font-weight:700}.edit-page .card-body{padding:22px}@media (max-width:1180px){.main-container{grid-template-columns:330px minmax(0,1fr)}.admin-status{display:none}}@media (max-width:900px){body{padding:10px}.main-container{grid-template-columns:1fr;grid-template-rows:auto auto minmax(680px,1fr);grid-template-areas:"header" "sidebar" "content";height:auto;min-height:calc(100dvh - 20px);overflow:visible}.sidebar{overflow:visible;overscroll-behavior:auto}.header{flex-wrap:wrap}.header-actions{flex-wrap:wrap}.admin-status{display:inline-flex}.calendar-container{max-width:none}.content-area{min-height:680px}.fc .fc-daygrid-day-frame,.fc .fc-daygrid-day{min-height:48px}}@media (max-width:640px){body{padding:0;background:var(--surface-soft)}.main-container{gap:10px;min-height:100dvh}.header,.calendar-container,.content-area{border-right:0;border-left:0;border-radius:0}.header{gap:14px;padding:max(16px,env(safe-area-inset-top)) 16px 16px}.brand-mark{flex-basis:44px;width:44px;height:44px}.brand-lockup,.header-actions{width:100%}.header-actions{display:grid;grid-template-columns:1fr 1fr}.admin-status{grid-column:1 / -1;justify-self:start}.header .header-actions .btn{width:100%;padding-right:10px;padding-left:10px;font-size:0.82rem}#guest-btn{grid-column:1 / -1}.panel-heading,.schedule-heading{align-items:flex-start}.schedule-heading{flex-direction:column}.schedule-heading p{text-align:left}.calendar-container #calendar{padding:0 10px}.calendar-controls.simple,.panel-heading,.schedule-heading{padding-right:14px;padding-left:14px}.availability-legend{padding-right:14px;padding-left:14px}.fc .fc-daygrid-day-frame,.fc .fc-daygrid-day{min-height:44px}.fc .fc-daygrid-day-number{min-width:0;padding:5px;font-size:0.7rem}.rooms-container{padding:10px;scroll-snap-type:x proximity}.room-container,.idle-room{flex:0 0 min(82vw,270px);min-width:min(82vw,270px);max-width:min(82vw,270px);scroll-snap-align:start}.modal-dialog,.modal-dialog.modal-lg,#loginModal .modal-dialog{max-width:none;margin:8px}.modal-body{padding:18px}.quick-duration-buttons{grid-template-columns:repeat(3,minmax(0,1fr))}.form-actions{align-items:stretch;flex-direction:column-reverse}.form-actions .btn{width:100%}.toast-container{right:16px;bottom:max(16px,env(safe-area-inset-bottom))}.edit-page{padding:0}.edit-page-header,.edit-page .card{border-radius:0}}@media (prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:0.01ms!important;animation-iteration-count:1!important;transition-duration:0.01ms!important}}.reservation-card.status-pending{border-color:#d97706!important;border-left:4px solid #f59e0b!important;background:#fef3c7!important;color:#78350f!important;opacity:0.85;border-style:dashed!important}.reservation-card.status-pending .time-indicator{background:#f59e0b!important;color:#ffffff!important}.reservation-card.status-pending strong,.reservation-card.status-pending .content strong,.reservation-card.status-pending .people-count,.reservation-card.status-pending .bilingual-label{color:#78350f!important}.reservation-card.status-pending .people-count{background:rgba(245,158,11,0.15)!important}.reservation-card.status-pending:hover{background:#fde68a!important;border-color:#b45309!important;box-shadow:0 4px 12px rgba(120,53,15,0.2)!important}.notification-container{position:relative;display:inline-block;margin-right:8px}#notification-bell-btn{padding:8px;border-radius:50%;color:#64748b;transition:all 0.2s ease;background:transparent;border:none;display:flex;align-items:center;justify-content:center}#notification-bell-btn:hover{background:#f1f5f9;color:#0d6efd}.notification-dropdown{position:absolute;right:0;top:100%;margin-top:8px;width:320px;background:#ffffff;border-radius:12px;box-shadow:0 10px 25px rgba(0,0,0,0.15);border:1px solid #e2e8f0;z-index:1050;display:none;flex-direction:column;overflow:hidden;max-height:400px}.notification-dropdown.show{display:flex}.notification-header{padding:12px 16px;border-bottom:1px solid #f1f5f9;font-weight:600;font-size:0.9rem;display:flex;justify-content:space-between;align-items:center;background:#f8fafc;color:#1e293b}.notification-list{overflow-y:auto;flex:1;max-height:300px}.notification-item{padding:12px 16px;border-bottom:1px solid #f1f5f9;font-size:0.85rem;cursor:pointer;transition:background-color 0.2s ease;display:flex;flex-direction:column;gap:4px;color:#334155;text-align:left}.notification-item:last-child{border-bottom:none}.notification-item.unread{background-color:#f0f7ff;border-left:3px solid #0d6efd;padding-left:13px;font-weight:500}.notification-item:hover{background-color:#f8fafc}.notification-item .time{font-size:0.7rem;color:#94a3b8;margin-top:4px}.notification-empty{padding:24px;text-align:center;color:#94a3b8;font-size:0.85rem}.notification-footer{padding:10px 16px;background:#f8fafc}.form-switch .form-check-input{cursor:pointer}.customer-chat-widget{position:fixed;bottom:24px;right:24px;z-index:1000;font-family:inherit}.chat-toggle-btn{display:flex;align-items:center;gap:8px;padding:12px 20px;height:48px;width:auto;border-radius:30px;background:linear-gradient(135deg,var(--brand) 0%,#4c2c9d 100%);color:#fff;border:1px solid rgba(255,255,255,0.1);box-shadow:0 8px 24px rgba(91,53,181,0.3),0 2px 4px rgba(0,0,0,0.1);cursor:pointer;font-size:0.9rem;font-weight:600;letter-spacing:0.3px;position:relative;transition:all 0.4s cubic-bezier(0.34,1.56,0.64,1);overflow:hidden}.chat-toggle-btn::after{content:'';position:absolute;top:0;left:-50%;width:200%;height:100%;background:linear-gradient(to right,rgba(255,255,255,0) 0%,rgba(255,255,255,0.35) 50%,rgba(255,255,255,0) 100%);transform:skewX(-25deg);transition:0.75s;opacity:0}.chat-toggle-btn:hover{transform:translateY(-3px) scale(1.03);box-shadow:0 12px 28px rgba(91,53,181,0.4),0 4px 8px rgba(0,0,0,0.1);background:linear-gradient(135deg,#633ec2 0%,#5230ad 100%)}.chat-toggle-btn:hover::after{left:125%;opacity:1}.chat-toggle-btn:active{transform:translateY(-1px) scale(1.01)}.chat-toggle-icons{position:relative;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px}.chat-icon-open,.chat-icon-close{font-size:1.1rem;transition:transform 0.35s cubic-bezier(0.34,1.56,0.64,1),opacity 0.25s ease}.chat-icon-close{position:absolute;opacity:0;transform:scale(0.5) rotate(-90deg)}.customer-chat-widget.chat-open .chat-icon-open{opacity:0;transform:scale(0.5) rotate(90deg)}.customer-chat-widget.chat-open .chat-icon-close{opacity:1;transform:scale(1) rotate(0deg)}.chat-toggle-btn .btn-text{max-width:150px;opacity:1;margin-left:4px;white-space:nowrap;display:inline-block;transition:max-width 0.35s cubic-bezier(0.25,1,0.5,1),opacity 0.2s ease,margin 0.35s ease}.customer-chat-widget.chat-open .chat-toggle-btn .btn-text{max-width:0;opacity:0;margin-left:0;pointer-events:none}.customer-chat-widget.chat-open .chat-toggle-btn{width:48px;height:48px;padding:0;justify-content:center;border-radius:50%;background:linear-gradient(135deg,#2b1d45 0%,#171126 100%);box-shadow:0 8px 24px rgba(23,17,38,0.35),0 2px 4px rgba(0,0,0,0.1)}@keyframes chat-badge-pulse{0%{transform:scale(0.95);box-shadow:0 0 0 0 rgba(217,45,92,0.7)}70%{transform:scale(1);box-shadow:0 0 0 8px rgba(217,45,92,0)}100%{transform:scale(0.95);box-shadow:0 0 0 0 rgba(217,45,92,0)}}.chat-badge{position:absolute;top:-6px;right:-2px;background-color:var(--accent);color:#fff;font-size:10px;font-weight:700;border-radius:50%;width:22px;height:22px;display:flex;align-items:center;justify-content:center;border:2px solid #fff;box-shadow:0 2px 5px rgba(0,0,0,0.2);animation:chat-badge-pulse 2s infinite}.chat-window{position:absolute;bottom:64px;right:0;width:350px;height:480px;background:rgba(255,255,255,0.88);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border-radius:16px;box-shadow:0 20px 50px rgba(32,23,53,0.15),0 2px 10px rgba(32,23,53,0.05);border:1px solid rgba(228,223,235,0.75);display:flex;flex-direction:column;overflow:hidden;visibility:hidden;opacity:0;pointer-events:none;transform:translateY(24px) scale(0.94);transform-origin:bottom right;transition:visibility 0.35s,opacity 0.35s cubic-bezier(0.34,1.56,0.64,1),transform 0.35s cubic-bezier(0.34,1.56,0.64,1)}.chat-window.open{visibility:visible;opacity:1;pointer-events:all;transform:translateY(0) scale(1)}.chat-header{background:linear-gradient(135deg,var(--brand) 0%,#4c2c9d 100%);color:#fff;padding:14px 18px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(0,0,0,0.1)}.chat-header-avatar{width:30px;height:30px;border-radius:50%;background:rgba(255,255,255,0.15);display:flex;align-items:center;justify-content:center;font-size:0.9rem;color:#fff;border:1px solid rgba(255,255,255,0.1);flex-shrink:0}@keyframes pulse-green{0%{transform:scale(0.95);box-shadow:0 0 0 0 rgba(94,230,179,0.7)}70%{transform:scale(1);box-shadow:0 0 0 5px rgba(94,230,179,0)}100%{transform:scale(0.95);box-shadow:0 0 0 0 rgba(94,230,179,0)}}.status-dot.pulsing{animation:pulse-green 2s infinite}.chat-messages-container{display:flex;flex-direction:column;flex-grow:1;height:calc(100% - 58px)}.chat-messages{flex-grow:1;overflow-y:auto;display:flex;flex-direction:column;gap:12px;padding:14px}.chat-messages::-webkit-scrollbar{width:6px}.chat-messages::-webkit-scrollbar-track{background:transparent}.chat-messages::-webkit-scrollbar-thumb{background-color:rgba(91,53,181,0.16);border-radius:10px}.chat-messages::-webkit-scrollbar-thumb:hover{background-color:rgba(91,53,181,0.3)}.chat-message{max-width:82%;padding:10px 14px;font-size:0.85rem;line-height:1.45;word-break:break-word;box-shadow:0 2px 6px rgba(32,23,53,0.04)}.chat-message.customer,.chat-message.guest{align-self:flex-end;background:linear-gradient(135deg,var(--brand) 0%,#5230ad 100%);color:#fff;border-radius:16px 16px 4px 16px;box-shadow:0 4px 12px rgba(91,53,181,0.15)}.chat-message.staff{align-self:flex-start;background-color:#fff;color:var(--ink);border-radius:16px 16px 16px 4px;border:1px solid rgba(228,223,235,0.7);box-shadow:0 4px 12px rgba(32,23,53,0.03)}.chat-message .meta{font-size:0.68rem;margin-top:4px;opacity:0.75;text-align:right}.chat-setup-form{background:rgba(255,255,255,0.5);backdrop-filter:blur(10px);padding:20px;display:flex;flex-direction:column;gap:12px;flex-grow:1;justify-content:center}.chat-setup-form .form-control{min-height:38px!important;padding:8px 12px!important;border-radius:8px!important;border:1px solid var(--border-strong)!important;background:rgba(255,255,255,0.9)!important}.chat-setup-form .form-control:focus{border-color:var(--brand)!important;box-shadow:0 0 0 3px rgba(91,53,181,0.15)!important}.chat-input-area{background-color:rgba(255,255,255,0.95);border-top:1px solid rgba(228,223,235,0.7);padding:10px 12px}.chat-input-area input{border-radius:20px!important;border:1px solid var(--border-strong)!important;padding:8px 14px!important;background-color:#fff!important;font-size:0.85rem!important;transition:all 0.2s ease!important;box-shadow:inset 0 1px 2px rgba(0,0,0,0.02)!important}.chat-input-area input:focus{border-color:var(--brand)!important;box-shadow:0 0 0 3px rgba(91,53,181,0.15)!important}.chat-input-area button{width:32px!important;height:32px!important;border-radius:50%!important;padding:0!important;display:flex!important;align-items:center!important;justify-content:center!important;flex-shrink:0!important;background:linear-gradient(135deg,var(--brand) 0%,#4c2c9d 100%)!important;border:none!important;box-shadow:0 2px 6px rgba(91,53,181,0.3)!important;color:#fff!important;transition:all 0.2s ease!important}.chat-input-area button:hover{transform:scale(1.08)!important;box-shadow:0 4px 10px rgba(91,53,181,0.4)!important}.chat-input-area button i{font-size:0.85rem;transform:translateX(1px)}@media (max-width:480px){.customer-chat-widget{bottom:16px;right:16px}.chat-toggle-btn{padding:0;width:48px;height:48px;justify-content:center;border-radius:50%}.chat-toggle-btn .btn-text{display:none!important}.chat-toggle-icons{margin-right:0!important}.chat-window{width:calc(100vw - 32px);height:calc(85vh - 80px);max-height:460px;bottom:56px;right:0}.customer-chat-widget.chat-open .chat-toggle-btn{width:44px;height:44px}}.staff-messages-dashboard{display:flex;border-radius:8px;overflow:hidden;border:1px solid var(--border);height:480px;background-color:#fff}.staff-conversations-list{width:30%;border-right:1px solid var(--border);display:flex;flex-direction:column;background-color:var(--surface-soft)}.conversations-header{padding:12px;border-bottom:1px solid var(--border);font-weight:600;font-size:0.9rem;background-color:#fff}.conversations-items{flex-grow:1;overflow-y:auto}.conversation-item-btn{width:100%;text-align:left;background:none;border:none;padding:12px;border-bottom:1px solid var(--border);cursor:pointer;transition:background-color var(--motion-fast) ease;display:flex;flex-direction:column;gap:4px}.conversation-item-btn:hover{background-color:var(--surface-tint)}.conversation-item-btn.active{background-color:#ede9fe;border-left:4px solid var(--brand);padding-left:8px}.conversation-item-btn .item-header{display:flex;justify-content:space-between;align-items:center}.conversation-item-btn .name{font-weight:600;font-size:0.85rem;color:var(--ink)}.conversation-item-btn .time{font-size:0.7rem;color:var(--ink-soft)}.conversation-item-btn .preview{font-size:0.75rem;color:var(--ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.conversation-item-btn .badge-unread{background-color:var(--accent);color:#fff;font-size:0.7rem;font-weight:bold;border-radius:10px;padding:1px 6px}.staff-chat-window{width:70%;display:flex;flex-direction:column;height:100%}.staff-chat-header{padding:12px 16px;border-bottom:1px solid var(--border);background-color:#fff;display:flex;flex-direction:column}.staff-chat-header .title{font-weight:600;margin:0;font-size:0.95rem}.staff-chat-header .email{font-size:0.75rem;color:var(--ink-soft)}.staff-chat-messages{flex-grow:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:16px;background-color:#faf9fc}.staff-chat-messages .empty-state{display:flex;align-items:center;justify-content:center;height:100%;color:var(--ink-soft);font-size:0.9rem}.staff-chat-input-area{padding:12px;border-top:1px solid var(--border);background-color:#fff}#pendingRequestsCollapse .card-body{max-height:380px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(91,53,181,0.16) transparent}#pendingRequestsCollapse .card-body::-webkit-scrollbar{width:6px}#pendingRequestsCollapse .card-body::-webkit-scrollbar-track{background:transparent}#pendingRequestsCollapse .card-body::-webkit-scrollbar-thumb{background-color:rgba(91,53,181,0.16);border-radius:10px}#pendingRequestsCollapse .card-body::-webkit-scrollbar-thumb:hover{background-color:rgba(91,53,181,0.3)}.btn-success{color:#fff!important;border-color:var(--success)!important;background:var(--success)!important}.btn-success:hover,.btn-success:focus-visible{color:#fff!important;border-color:#0f6149!important;background:#0f6149!important}#all-bookings-panel .accordion-item{border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;margin-bottom:8px}#all-bookings-panel .accordion-header{margin:0}#all-bookings-panel .accordion-button{background-color:var(--surface-soft);color:var(--ink);font-weight:600;font-size:0.88rem;padding:10px 14px}#all-bookings-panel .accordion-button:not(.collapsed){background-color:var(--surface-tint);color:var(--brand)}#all-bookings-panel .booking-item-card{border-left:4px solid var(--brand);background:#faf9fc;border-radius:6px;border:1px solid var(--border);border-left-width:4px;padding:10px 12px;margin-bottom:8px;font-size:0.85rem}#all-bookings-panel .booking-item-card.pending{border-left-color:var(--warning);background:#fffdf5}#all-bookings-panel .booking-item-card:last-child{margin-bottom:0}