:root{
  --ink:#171321;--muted:#797284;--purple:#7657ff;--purple-dark:#5134d4;--purple-soft:#eeeaff;
  --paper:#f5f3f9;--surface:#fff;--line:#e9e5f0;--success:#11875d;--danger:#c23c4e;
  --shadow:0 14px 38px rgba(38,25,65,.07);--shadow-lg:0 24px 60px rgba(24,15,45,.15);--radius:18px
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font-family:Inter,"Segoe UI",Tahoma,Arial,sans-serif;-webkit-font-smoothing:antialiased}.app-body{min-height:100vh;background:var(--paper)}
.app-backdrop{position:fixed;inset:0;pointer-events:none;z-index:-1;background:linear-gradient(135deg,#f8f7fb 0,#f1eef7 48%,#faf9fc 100%)}.app-backdrop span{display:none}.app-container{max-width:1680px;margin-inline:auto;padding-inline:clamp(16px,2.2vw,36px)}

/* Navigation */
.app-shell{min-height:100vh;display:grid;grid-template-columns:280px minmax(0,1fr)}.app-sidebar{position:sticky;top:0;height:100vh;padding:16px;background:linear-gradient(180deg,#0f0b18,#201735 58%,#2a1d46);box-shadow:12px 0 38px rgba(24,15,45,.16);z-index:20}[dir=rtl] .app-sidebar{box-shadow:-12px 0 38px rgba(24,15,45,.16)}.sidebar-inner{height:100%;display:flex;flex-direction:column;gap:18px}.sidebar-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.sidebar-brand{display:flex;align-items:center;gap:.75rem;color:#fff;text-decoration:none;line-height:1}.sidebar-brand>span:last-child{display:grid}.sidebar-brand strong{font-size:1.08rem;letter-spacing:.08em}.sidebar-brand small{font-size:.64rem;color:#a9a1b8;letter-spacing:.04em;margin-top:.22rem}.brand-mark{width:42px;height:42px;display:grid;place-items:center;border-radius:13px;background:linear-gradient(135deg,#8c72ff,#6544ef);color:#fff;font-size:1.15rem;box-shadow:0 9px 22px rgba(118,87,255,.35)}.sidebar-toggle{display:none;width:40px;height:40px;place-items:center;border:1px solid rgba(255,255,255,.12);border-radius:11px;background:rgba(255,255,255,.08);color:#fff}.sidebar-collapse{display:flex!important;flex:1;min-height:0;flex-direction:column}.app-menu{display:grid;gap:6px;overflow:auto;padding:4px 2px 12px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.25) transparent}.app-menu .nav-link{display:flex;align-items:center;gap:.72rem;min-height:44px;padding:.68rem .75rem;border-radius:12px;color:#b8b1c4;font-size:.82rem;font-weight:720;text-decoration:none;white-space:nowrap;transition:.2s}.app-menu .nav-link i{width:22px;text-align:center;font-size:1rem}.app-menu .nav-link:hover{color:#fff;background:rgba(255,255,255,.08)}.app-menu .nav-link.active{color:#fff;background:linear-gradient(135deg,rgba(132,104,255,.4),rgba(118,87,255,.18));box-shadow:inset 0 0 0 1px rgba(169,148,255,.2)}.nav-user{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:.58rem;margin-top:auto;padding:12px;border:1px solid rgba(255,255,255,.1);border-radius:16px;background:rgba(255,255,255,.06)}.nav-user-avatar{width:38px;height:38px;display:grid;place-items:center;border-radius:12px;background:#fff;color:var(--purple-dark);font-weight:850}.nav-user-copy{display:grid;min-width:0}.nav-user-copy strong{font-size:.78rem;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nav-user-copy small{font-size:.58rem;color:#8e8799}.nav-icon-btn{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;text-decoration:none;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.1);color:#fff;font-size:.72rem;font-weight:800;transition:.2s}.nav-icon-btn:hover{background:#fff;color:var(--purple-dark)}.nav-icon-btn.logout:hover{background:#ffedf0;color:#bd3548}

/* Main shell */
.app-content{min-width:0;display:flex;min-height:100vh;flex-direction:column}.app-main{flex:1;padding:28px 0 44px}.page-hero{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:24px}.page-title-wrap{display:flex;align-items:center;gap:13px;min-width:0}.page-icon{width:50px;height:50px;flex:0 0 50px;display:grid;place-items:center;border-radius:15px;background:var(--surface);color:var(--purple);font-size:1.25rem;box-shadow:var(--shadow);border:1px solid rgba(118,87,255,.1)}.page-hero h1{font-size:clamp(1.45rem,2vw,2rem);font-weight:800;letter-spacing:-.015em;margin:0;overflow-wrap:anywhere}.eyebrow{font-size:.66rem;letter-spacing:.16em;font-weight:850;color:var(--purple-dark);text-transform:uppercase}.page-date{display:flex;align-items:center;gap:.5rem;color:var(--muted);background:rgba(255,255,255,.76);border:1px solid var(--line);border-radius:11px;padding:.55rem .75rem;font-size:.75rem}.app-footer{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:18px 22px;color:#8c8596;font-size:.72rem}.brand-mini{width:24px;height:24px;display:grid;place-items:center;border-radius:7px;background:var(--purple-soft);color:var(--purple)}

/* Universal surfaces */
.card{border:1px solid rgba(224,218,234,.85);border-radius:var(--radius);background:rgba(255,255,255,.94);box-shadow:var(--shadow);overflow:hidden}.card-header{border-color:var(--line);padding:1rem 1.2rem}.card-body{padding:1.2rem}.table-card{overflow:hidden}.table{margin:0}.table>:not(caption)>*>*{padding:.92rem 1rem;border-color:#efebf4;vertical-align:middle}.table thead th{font-size:.67rem;letter-spacing:.07em;text-transform:uppercase;color:#776f82;background:#faf9fc;border-bottom:1px solid var(--line);white-space:nowrap}.table tbody tr{transition:background .18s}.table tbody tr:hover{background:#fcfbff}.table-responsive{scrollbar-width:thin;scrollbar-color:#d9d2e7 transparent}.stat-card{position:relative;overflow:hidden;min-height:112px}.stat-card:after{content:"";position:absolute;width:90px;height:90px;border-radius:50%;background:var(--purple-soft);opacity:.55;inset-inline-end:-35px;bottom:-40px}.stat-card .card-body{position:relative;z-index:1}.stat-icon{width:46px;height:46px;display:grid;place-items:center;border-radius:14px;background:linear-gradient(135deg,#eeeaff,#e4ddff);color:var(--purple-dark);font-size:1.2rem;box-shadow:0 7px 16px rgba(118,87,255,.12)}

/* Controls */
.form-label{font-size:.78rem;font-weight:700;color:#5f586a;margin-bottom:.45rem}.form-control,.form-select{min-height:43px;border:1px solid #ddd7e7;border-radius:11px;padding:.62rem .78rem;background-color:#fff;color:var(--ink);transition:.2s}.form-control:hover,.form-select:hover{border-color:#c6bce0}.form-control:focus,.form-select:focus{border-color:#927dff;box-shadow:0 0 0 .22rem rgba(118,87,255,.12)}textarea.form-control{min-height:auto}.form-text{font-size:.7rem;color:#918a9b}.form-check-input:checked{background-color:var(--purple);border-color:var(--purple)}.btn{border-radius:10px;font-size:.8rem;font-weight:750;padding:.62rem .9rem;transition:transform .16s,box-shadow .16s,background .16s}.btn:hover{transform:translateY(-1px)}.btn-primary{background:linear-gradient(135deg,var(--purple),#6141e7);border-color:var(--purple);box-shadow:0 7px 16px rgba(118,87,255,.18)}.btn-primary:hover{background:linear-gradient(135deg,#6849ed,#4e31cb);border-color:#5f40e1;box-shadow:0 9px 20px rgba(118,87,255,.27)}.btn-dark{background:#211a2e;border-color:#211a2e}.btn-light{background:#f7f5fa;border-color:#e8e3ee}.badge{padding:.48em .7em;border-radius:8px;font-weight:700}.app-alert{display:flex;align-items:center;gap:.7rem;border:0;border-radius:14px;box-shadow:var(--shadow);padding:.85rem 1rem}.alert-symbol{width:30px;height:30px;display:grid;place-items:center;border-radius:9px;background:rgba(255,255,255,.55)}

/* Generic filters and modals */
form.card.card-body.mb-3,.booking-filters{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px;box-shadow:0 8px 24px rgba(30,20,55,.04)}.modal-content{border:0;border-radius:18px;box-shadow:var(--shadow-lg);overflow:hidden}.modal-header{padding:1.2rem 1.35rem;background:#faf9fd;border-color:var(--line)}.modal-body{padding:1.35rem}.modal-footer{padding:1rem 1.35rem;background:#fcfbfd;border-color:var(--line)}.message-text{max-width:470px;white-space:pre-wrap;line-height:1.65}.rtl{direction:rtl;text-align:right}

/* Booking experience */
.booking-filters .filter-field{min-width:210px}.booking-filters .form-label i{color:var(--purple);margin-inline-end:.3rem}.booking-table-card{overflow:hidden}.booking-table-head{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;background:linear-gradient(120deg,#fff,#faf8ff);border-bottom:1px solid var(--line)}.booking-count{display:inline-flex;align-items:center;gap:.45rem;background:#eeeaff;color:var(--purple-dark);font-weight:800;padding:.55rem .8rem;border-radius:12px}.booking-modern-table tbody tr{transition:background .18s}.booking-modern-table tbody tr:not(.booking-empty-row):hover{background:#fbfaff}.booking-customer,.room-cell,.booking-modal-summary{display:flex;align-items:center;gap:.75rem}.customer-avatar{width:42px;height:42px;flex:0 0 42px;border-radius:13px;display:grid;place-items:center;background:linear-gradient(135deg,var(--purple),#a28cff);color:#fff;font-weight:800;box-shadow:0 6px 16px rgba(118,87,255,.22)}.booking-meta{font-size:.76rem;color:#817b8b;margin-top:.15rem}.booking-meta i{color:#8170d9}.language-tag{display:inline-block;margin-top:.25rem;padding:.12rem .4rem;border-radius:6px;background:#f1eff6;color:#6d6678;font-size:.66rem}.company-chip{display:inline-flex;align-items:center;gap:.4rem;background:#f5f3f9;border:1px solid #ebe7f2;padding:.4rem .6rem;border-radius:9px;font-size:.78rem}.room-icon{width:35px;height:35px;flex:0 0 35px;border-radius:10px;display:grid;place-items:center;background:#eeeaff;color:var(--purple-dark)}.schedule-cell{display:grid;gap:.35rem;font-size:.82rem;white-space:nowrap}.schedule-cell span{display:flex;align-items:center;gap:.4rem}.schedule-cell i{color:var(--purple)}.booking-total{font-size:.9rem;font-weight:800;white-space:nowrap;color:#231c35}.status-pill{display:inline-flex;align-items:center;gap:.38rem;padding:.42rem .65rem;border-radius:999px;font-size:.74rem;font-weight:800;white-space:nowrap}.status-dot{width:7px;height:7px;border-radius:50%;background:currentColor}.status-new{background:#fff4d6;color:#9a6900}.status-confirmed{background:#dff8eb;color:#087443}.status-cancelled{background:#ffe5e8;color:#b42335}.status-completed{background:#e7e8ff;color:#4b4fc0}.booking-note{max-width:180px;margin-top:.4rem;color:#817b8b;font-size:.72rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.booking-edit-btn{display:inline-flex;align-items:center;gap:.4rem;border:1px solid #ddd7ec;background:#fff;color:#56476e;border-radius:9px;padding:.45rem .65rem}.booking-edit-btn:hover{background:var(--purple);border-color:var(--purple);color:#fff}.booking-modal-summary{padding:1rem;background:#f7f5fb;border-radius:13px;margin-bottom:1.25rem}.booking-empty{padding:4rem 1rem;text-align:center}.booking-empty>span{width:66px;height:66px;margin:0 auto 1rem;display:grid;place-items:center;border-radius:20px;background:#eeeaff;color:var(--purple);font-size:1.8rem}.booking-empty h3{font-size:1.05rem}.booking-empty p{color:#8a8493;margin:0}

/* Booking date picker */
.booking-date-picker{padding:14px;border:1px solid #e5dfed;border-radius:16px;background:linear-gradient(135deg,#fff,#faf8ff);box-shadow:0 8px 22px rgba(36,24,56,.05)}.booking-date-head{display:flex;align-items:center;gap:10px;margin-bottom:12px}.booking-date-head>span{width:38px;height:38px;display:grid;place-items:center;border-radius:12px;background:#eeeaff;color:var(--purple-dark);font-size:1rem}.booking-date-head .form-label{display:block}.booking-date-head small{display:block;color:#827b8c;font-size:.7rem}.booking-date-input{position:relative}.booking-date-input>i{position:absolute;top:50%;inset-inline-start:13px;transform:translateY(-50%);color:var(--purple);font-size:1rem;pointer-events:none}.booking-date-input .form-control{height:48px;padding-inline-start:42px;font-weight:800;color:#2b2338}.booking-date-quick{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.booking-date-quick button{min-height:34px;border:1px solid #ded7eb;border-radius:10px;background:#fff;color:#5f566d;padding:.38rem .65rem;font-size:.72rem;font-weight:800;transition:.16s}.booking-date-quick button:hover,.booking-date-quick button.active{border-color:var(--purple);background:var(--purple-soft);color:var(--purple-dark);transform:translateY(-1px)}
.booking-time-picker{padding:14px;border:1px solid #e5dfed;border-radius:16px;background:linear-gradient(135deg,#fff,#f8fbff);box-shadow:0 8px 22px rgba(36,24,56,.05)}.booking-time-input{position:relative}.booking-time-input>i{position:absolute;top:50%;inset-inline-start:13px;transform:translateY(-50%);color:var(--purple);font-size:1rem;pointer-events:none}.booking-time-input .form-control{height:48px;padding-inline-start:42px;font-weight:800;color:#2b2338}.booking-time-quick{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.booking-time-quick button{min-height:34px;border:1px solid #ded7eb;border-radius:10px;background:#fff;color:#5f566d;padding:.38rem .65rem;font-size:.72rem;font-weight:800;transition:.16s}.booking-time-quick button:hover,.booking-time-quick button.active{border-color:var(--purple);background:var(--purple-soft);color:var(--purple-dark);transform:translateY(-1px)}
.booking-time-alert{margin-top:10px;padding:.58rem .7rem;border-radius:11px;background:#fff3cd;border:1px solid #f0d98a;color:#815f00;font-size:.74rem;font-weight:750;line-height:1.5}

/* Calendar */
.calendar-stat .card-body{display:flex;align-items:center;gap:.9rem}.calendar-stat-icon{width:46px;height:46px;display:grid;place-items:center;border-radius:14px;font-size:1.15rem}.calendar-stat-icon.purple{background:#eeeaff;color:#6848e8}.calendar-stat-icon.amber{background:#fff2ce;color:#ae7600}.calendar-stat-icon.green{background:#dcf7e9;color:#0e8256}.calendar-stat-icon.blue{background:#e1efff;color:#2673bd}.calendar-stat small{display:block;color:var(--muted);font-size:.7rem}.calendar-stat strong{display:block;font-size:1.55rem;line-height:1.1;margin-top:.2rem}.calendar-card{overflow:visible}.calendar-card-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.2rem 1.35rem;border-bottom:1px solid var(--line);background:linear-gradient(120deg,#fff,#faf8ff);border-radius:var(--radius) var(--radius) 0 0}.calendar-card-head h2{font-size:1.05rem;margin:0}.calendar-legend{display:flex;flex-wrap:wrap;gap:.85rem}.calendar-legend span{display:flex;align-items:center;gap:.4rem;color:#746d7e;font-size:.7rem}.calendar-legend i{width:9px;height:9px;border-radius:50%}.calendar-legend i.new{background:#e5a900}.calendar-legend i.confirmed{background:#1d9b69}.calendar-legend i.completed{background:#7657ff}.calendar-wrap{padding:1.15rem}.fc{--fc-border-color:#eeeaf3;--fc-page-bg-color:#fff;--fc-neutral-bg-color:#faf9fc;--fc-today-bg-color:#f5f1ff;font-size:.8rem}.fc .fc-toolbar{gap:.8rem;margin-bottom:1.3rem!important}.fc .fc-toolbar-title{font-size:1.15rem!important;font-weight:800;color:#282033}.fc .fc-button-primary{background:#f3f0f8!important;border:1px solid #e3ddec!important;color:#5d5469!important;border-radius:9px!important;font-size:.72rem!important;font-weight:750!important;padding:.48rem .68rem!important;box-shadow:none!important;text-transform:capitalize}.fc .fc-button-primary:hover,.fc .fc-button-primary.fc-button-active{background:var(--purple)!important;border-color:var(--purple)!important;color:#fff!important}.fc .fc-today-button{background:#221a2f!important;border-color:#221a2f!important;color:#fff!important}.fc .fc-col-header-cell{background:#faf9fc}.fc .fc-col-header-cell-cushion{padding:.75rem .3rem!important;color:#736c7d;text-decoration:none;font-size:.7rem;text-transform:uppercase}.fc .fc-daygrid-day-number{display:grid;place-items:center;width:28px;height:28px;margin:.3rem;color:#504859;text-decoration:none;border-radius:9px;font-weight:700}.fc .fc-day-today .fc-daygrid-day-number{background:var(--purple);color:#fff}.fc .fc-daygrid-day-frame{min-height:112px}.fc .fc-daygrid-event{border-width:0 0 0 3px!important;border-radius:7px!important;padding:0!important;margin:2px 4px!important;cursor:pointer;box-shadow:0 3px 8px rgba(35,25,53,.05)}[dir=rtl] .fc .fc-daygrid-event{border-width:0 3px 0 0!important}.modern-calendar-event{display:grid;min-width:0;padding:.34rem .42rem;line-height:1.2}.modern-calendar-event .event-time{font-size:.58rem;font-weight:800;opacity:.75}.modern-calendar-event strong{font-size:.68rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.modern-calendar-event small{font-size:.58rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;opacity:.78;margin-top:.12rem}.fc .fc-more-link{color:var(--purple);font-size:.65rem;font-weight:800}.upcoming-card .card-header{display:flex;align-items:center;justify-content:space-between}.upcoming-count{width:30px;height:30px;display:grid;place-items:center;border-radius:9px;background:var(--purple-soft);color:var(--purple-dark);font-size:.72rem;font-weight:850}.upcoming-list{padding:.55rem}.upcoming-item{width:100%;display:flex;align-items:center;gap:.7rem;border:0;border-bottom:1px solid #f0edf4;background:transparent;padding:.82rem .55rem;text-align:start;border-radius:11px;transition:.18s}.upcoming-item:hover{background:#f7f4ff;transform:translateX(-2px)}[dir=ltr] .upcoming-item:hover{transform:translateX(2px)}.upcoming-date{width:42px;height:46px;flex:0 0 42px;display:grid;place-items:center;align-content:center;border-radius:12px;background:#f1edff;color:var(--purple-dark)}.upcoming-date strong{font-size:1rem;line-height:1}.upcoming-date small{font-size:.56rem;text-transform:uppercase;margin-top:.2rem}.upcoming-copy{display:grid;min-width:0;flex:1}.upcoming-copy strong{font-size:.76rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.upcoming-copy small{font-size:.62rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:.25rem}.upcoming-item>i{color:#aaa2b4;font-size:.68rem}.upcoming-empty{display:grid;place-items:center;text-align:center;padding:3rem 1rem;color:#9992a2}.upcoming-empty i{font-size:1.8rem;color:#b9addf}.upcoming-empty p{font-size:.75rem;margin:.7rem 0 0}.calendar-detail-customer{display:flex;align-items:center;gap:.8rem;padding:1rem;background:#f8f6fb;border-radius:13px;margin-bottom:1rem}.calendar-detail-customer>div{display:grid}.calendar-detail-customer small{color:var(--muted);font-size:.72rem;margin-top:.2rem}.calendar-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}.calendar-detail-grid>div{position:relative;display:grid;padding:.85rem .85rem .85rem 2.55rem;border:1px solid var(--line);border-radius:12px}[dir=rtl] .calendar-detail-grid>div{padding:.85rem 2.55rem .85rem .85rem}.calendar-detail-grid i{position:absolute;left:.85rem;top:50%;transform:translateY(-50%);color:var(--purple);font-size:1.05rem}[dir=rtl] .calendar-detail-grid i{left:auto;right:.85rem}.calendar-detail-grid small{color:var(--muted);font-size:.62rem}.calendar-detail-grid strong{font-size:.76rem;margin-top:.15rem}

/* Login */
.login-body{min-height:100vh;background:#100b19}.login-shell{min-height:100vh;display:grid;grid-template-columns:1.08fr .92fr}.login-brand{position:relative;display:flex;align-items:flex-end;padding:clamp(40px,7vw,110px);overflow:hidden;color:#fff;background:radial-gradient(circle at 15% 18%,#6848da 0,transparent 35%),radial-gradient(circle at 85% 85%,#3d266c 0,transparent 34%),linear-gradient(145deg,#0d0a13,#211333)}.login-brand:before,.login-brand:after{content:"";position:absolute;border:1px solid rgba(255,255,255,.08);border-radius:50%}.login-brand:before{width:480px;height:480px;top:-190px;right:-160px}.login-brand:after{width:320px;height:320px;bottom:-110px;left:-90px}.login-brand-content{position:relative;z-index:1;max-width:650px}.brand-pill{display:inline-flex;align-items:center;gap:.5rem;border:1px solid rgba(184,166,255,.4);background:rgba(118,87,255,.15);padding:.55rem .8rem;border-radius:10px;letter-spacing:.12em;font-weight:800}.login-brand h1{font-size:clamp(2.7rem,5.4vw,6rem);line-height:.96;letter-spacing:-.055em;margin:1.7rem 0;max-width:680px}.login-brand p{color:#bdb5ca;max-width:540px;font-size:1.05rem;line-height:1.7}.login-features{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:2rem}.login-features span{display:flex;align-items:center;gap:.45rem;padding:.5rem .7rem;border-radius:9px;background:rgba(255,255,255,.07);color:#d3cddd;font-size:.72rem}.login-panel{display:grid;place-items:center;padding:clamp(24px,5vw,70px);background:#fff}.login-card{width:min(440px,100%)}.login-logo{display:flex;align-items:center;gap:.7rem;margin-bottom:3rem}.login-card h2{font-size:1.9rem;font-weight:800;letter-spacing:-.025em}.language-switch{padding:.4rem .62rem;border-radius:9px;background:#f1eef8;color:var(--purple-dark);text-decoration:none;font-size:.72rem;font-weight:800}.login-card .form-control{min-height:50px}.login-card .btn-primary{min-height:49px}

/* RTL */
[dir=rtl] body{text-align:right}[dir=rtl] .me-auto{margin-right:0!important;margin-left:auto!important}[dir=rtl] .form-check{padding-left:0;padding-right:1.5em}[dir=rtl] .form-check .form-check-input{float:right;margin-left:0;margin-right:-1.5em}[dir=rtl] .btn-close{margin-left:0;margin-right:auto}[dir=rtl] .modal-header .btn-close{margin:-.5rem auto -.5rem -.5rem}[dir=rtl] .login-brand h1{letter-spacing:0}[dir=rtl] .sidebar-brand small{letter-spacing:0}

@media(max-width:767.98px){.calendar-card-head{align-items:flex-start;flex-direction:column}.calendar-wrap{padding:.65rem}.fc .fc-toolbar{display:grid;grid-template-columns:1fr auto;align-items:center}.fc .fc-toolbar-chunk:nth-child(2){grid-column:1/-1;grid-row:1;text-align:center}.fc .fc-toolbar-chunk:first-child{grid-column:1;grid-row:2}.fc .fc-toolbar-chunk:last-child{grid-column:2;grid-row:2}.fc .fc-toolbar-title{font-size:1rem!important}.fc .fc-button-primary{padding:.4rem .48rem!important;font-size:.62rem!important}.fc .fc-daygrid-day-frame{min-height:82px}.modern-calendar-event small{display:none}.calendar-detail-grid{grid-template-columns:1fr}.calendar-stats .card-body{padding:.85rem}.calendar-stat-icon{width:39px;height:39px}.calendar-stat strong{font-size:1.25rem}}

/* Responsive */
@media(max-width:1199.98px){.app-shell{display:block}.app-sidebar{position:sticky;top:0;height:auto;padding:10px 13px}.sidebar-inner{gap:10px}.sidebar-head{min-height:50px}.sidebar-toggle{display:grid}.sidebar-collapse{padding-top:8px}.sidebar-collapse:not(.show){display:none!important}.app-menu{max-height:52vh}.app-menu .nav-link{min-height:42px}.nav-user{margin-top:10px}.app-main{padding-top:20px}}
@media(max-width:900px){.login-shell{grid-template-columns:1fr}.login-brand{display:none}.login-panel{min-height:100vh}.page-date{display:none}.page-hero{margin-bottom:18px}.table-responsive{border-radius:15px}}
@media(max-width:767.98px){.app-container{padding-inline:13px}.page-icon{width:43px;height:43px;border-radius:13px}.page-hero h1{font-size:1.35rem}.card{border-radius:15px}.card-body{padding:1rem}.booking-filters .filter-field{min-width:100%}.booking-filters .btn{flex:1}.booking-table-head{padding:15px}.booking-modern-table thead{display:none}.booking-modern-table,.booking-modern-table tbody,.booking-modern-table tr,.booking-modern-table td{display:block;width:100%}.booking-modern-table tbody{padding:12px}.booking-modern-table tbody tr:not(.booking-empty-row){background:#fff;border:1px solid var(--line);border-radius:15px;margin-bottom:12px;padding:10px;box-shadow:0 5px 18px rgba(30,20,55,.04)}.booking-modern-table tbody td{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.65rem .45rem;border:0;border-bottom:1px dashed #ece8f2;text-align:end}.booking-modern-table tbody td:before{content:attr(data-label);color:#8a8493;font-size:.72rem;font-weight:700;text-align:start}.booking-modern-table tbody td:first-child{display:block;text-align:start;padding-bottom:.85rem}.booking-modern-table tbody td:first-child:before,.booking-modern-table tbody td.booking-action:before{display:none}.booking-modern-table tbody td.booking-action{justify-content:stretch;border-bottom:0;padding-top:.8rem}.booking-action .booking-edit-btn{width:100%;justify-content:center}.booking-customer,.room-cell{text-align:start}.booking-note{max-width:140px}.booking-empty-row td{display:block!important}.booking-empty-row td:before{display:none}.table>:not(caption)>*>*{padding:.8rem}.login-panel{padding:24px}.login-logo{margin-bottom:2rem}}
/* Working hours */
.working-hours-card{overflow:hidden}.working-hours-grid{display:grid;gap:14px}.working-day{display:grid;grid-template-columns:minmax(180px,1fr) auto minmax(320px,1.35fr);align-items:center;gap:22px;padding:18px 20px;border:1px solid #e8e4ef;border-radius:18px;background:#fff;transition:.2s ease}.working-day.is-open{border-color:#dcd1f2;box-shadow:0 8px 24px rgba(74,42,112,.06)}.working-day.is-closed{background:#f8f7fa;color:#8c8794}.working-day-title{display:flex;align-items:center;gap:13px}.working-day-title>div{display:flex;flex-direction:column}.working-day-title small{color:#6f6878}.working-day-icon{width:44px;height:44px;display:grid;place-items:center;border-radius:13px;background:#efe8fb;color:#7043a5;font-size:1.15rem}.is-closed .working-day-icon{background:#eceaec;color:#99939d}.working-switch .form-check-input{width:3rem;height:1.55rem;cursor:pointer}.working-time-fields{display:flex;align-items:end;gap:12px}.working-time-fields label{flex:1}.working-time-fields label span{display:block;font-size:.78rem;color:#777080;margin-bottom:5px}.working-time-fields .form-control{direction:ltr;text-align:center;font-weight:700}.working-time-fields>i{margin-bottom:11px;color:#8d789f}.is-closed .working-time-fields{opacity:.45}@media(max-width:900px){.working-day{grid-template-columns:1fr auto}.working-time-fields{grid-column:1/-1}}@media(max-width:575px){.working-day{padding:15px}.working-time-fields{gap:8px}.working-time-fields>i{display:none}}

/* Live occupancy */
.booking-code{color:#7043a5;font-size:.76rem;letter-spacing:.02em}
.room-unit-list{display:grid;gap:9px}.room-unit-row{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:10px;padding:9px 10px;border-radius:13px;background:#f8f6fa;border:1px solid #eee9f2}.room-unit-row .form-control{font-weight:700}.room-unit-row .form-switch{display:flex;align-items:center;gap:6px;margin:0;font-size:.72rem;color:#716a79}.unit-status-dot{width:9px;height:9px;border-radius:50%;background:#28b66d}.unit-inactive{opacity:.58}.unit-inactive .unit-status-dot{background:#aaa4ae}.room-unit-add{display:flex;gap:10px}.room-unit-add .form-control{flex:1}@media(max-width:575px){.room-unit-row{grid-template-columns:auto 1fr auto}.room-unit-row .form-switch{grid-column:2/3}.room-unit-add{flex-direction:column}}
.occupancy-toolbar{display:flex;justify-content:space-between;align-items:center;padding:15px 18px;border:1px solid #e8e3ee;border-radius:16px;background:#fff}.occupancy-toolbar>div{display:flex;align-items:center;gap:9px}.occupancy-toolbar small{color:#817a88}.live-dot{width:10px;height:10px;border-radius:50%;background:#25b76b;box-shadow:0 0 0 6px rgba(37,183,107,.13);animation:livePulse 1.8s infinite}@keyframes livePulse{50%{box-shadow:0 0 0 10px rgba(37,183,107,0)}}.occupancy-card{height:100%;padding:22px;border-radius:22px;background:#fff;border:1px solid #e9e4ef;box-shadow:0 12px 35px rgba(35,22,52,.07)}.occupancy-card header{display:flex;align-items:center;gap:12px}.occupancy-card h2{font-size:1.05rem;margin:0}.occupancy-room-icon{width:48px;height:48px;display:grid;place-items:center;border-radius:15px;font-size:1.25rem}.occupancy-badge{margin-inline-start:auto;padding:7px 10px;border-radius:999px;font-size:.7rem;font-weight:800;white-space:nowrap}.occupancy-badge i{font-size:.45rem}.occupancy-numbers{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:22px 0 15px}.occupancy-numbers div{padding:13px 8px;text-align:center;border-radius:14px;background:#f7f5f9}.occupancy-numbers small{display:block;color:#77707f;font-size:.7rem}.occupancy-numbers strong{font-size:1.55rem}.occupancy-progress{height:7px;background:#eeeaf1}.occupancy-card footer{display:flex;align-items:center;gap:7px;margin-top:17px;color:#77707f;font-size:.78rem}.occupancy-card footer strong{color:#2c2631}.occupancy-available .occupancy-room-icon,.occupancy-available .occupancy-badge{background:#e7f8ef;color:#178c50}.occupancy-available .progress-bar{background:#25b76b}.occupancy-partial .occupancy-room-icon,.occupancy-partial .occupancy-badge,.occupancy-full .occupancy-room-icon,.occupancy-full .occupancy-badge{background:#fff1d6;color:#a75f00}.occupancy-partial .progress-bar,.occupancy-full .progress-bar{background:#f59f22}@media(max-width:575px){.occupancy-toolbar{align-items:flex-start;gap:12px}.occupancy-toolbar>div{align-items:flex-start;flex-wrap:wrap}.occupancy-toolbar small{flex-basis:100%}.occupancy-badge{font-size:.62rem}.occupancy-card{padding:17px}}
.unit-assign-form{display:flex;gap:6px;min-width:190px}.unit-assign-form .form-select{font-size:.72rem}.unit-assign-form .btn{flex:0 0 auto}
.occupancy-types{display:grid;gap:22px}.occupancy-type{padding:22px;border:1px solid #e8e2ed;border-radius:22px;background:#fff;box-shadow:0 12px 35px rgba(35,22,52,.06)}.occupancy-type-head{display:flex;align-items:center;justify-content:space-between;gap:15px}.occupancy-type-head h2{font-size:1.15rem;margin:0}.physical-units-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(245px,1fr));gap:13px;margin-top:18px}.physical-unit{padding:15px;border-radius:17px;border:1px solid;min-height:150px}.physical-unit-top{display:flex;align-items:center;gap:10px}.physical-unit-icon{width:39px;height:39px;display:grid;place-items:center;border-radius:11px}.physical-unit-top small,.unit-customer small{display:block;font-size:.66rem;color:#79717f}.physical-unit h3{font-size:.93rem;margin:0}.unit-live-status{margin-inline-start:auto;padding:5px 8px;border-radius:999px;font-size:.62rem;font-weight:800}.unit-free{background:#f3fbf6;border-color:#ccebd8}.unit-free .physical-unit-icon,.unit-free .unit-live-status{background:#dff5e8;color:#16884c}.unit-occupied{background:#fff8e8;border-color:#efdca7}.unit-occupied .physical-unit-icon,.unit-occupied .unit-live-status{background:#ffedbb;color:#996000}.unit-free-message{display:flex;align-items:center;justify-content:center;gap:7px;color:#258e57;padding:29px 0 10px;font-size:.8rem}.unit-customer{display:flex;align-items:center;gap:10px;margin-top:18px}.unit-customer>div{display:grid}.unit-customer strong{font-size:.84rem}.unit-customer span{color:#736b78;font-size:.68rem}.physical-unit footer{display:flex;justify-content:space-between;gap:8px;margin-top:14px;padding-top:10px;border-top:1px dashed #d9c998;font-size:.65rem;color:#756c78}@media(max-width:575px){.occupancy-type{padding:15px}.occupancy-type-head{align-items:flex-start}.physical-units-grid{grid-template-columns:1fr}}
.today-bookings{border-top:1px solid #eee8f2;padding-top:14px}.today-bookings-head{display:flex;align-items:center;gap:8px;margin-bottom:10px;color:#3c3344}.today-booking-item{display:grid;grid-template-columns:92px 1fr auto;gap:12px;align-items:center;padding:12px;border:1px solid #eee8f2;border-radius:14px;background:#fbfafc;margin-top:9px}.today-booking-item.is-current{background:#fff5df;border-color:#edc46c}.today-booking-time strong{display:block;font-size:1rem;color:#2d2632}.today-booking-time small,.today-booking-copy small,.today-booking-meta small{display:block;color:#746c7b;font-size:.72rem}.today-booking-copy strong{display:block;font-size:.9rem}.today-booking-meta{text-align:end}.today-booking-empty{padding:14px;border-radius:14px;background:#f8f6fa;color:#77707f;text-align:center;font-size:.82rem}@media(max-width:575px){.today-booking-item{grid-template-columns:1fr}.today-booking-meta{text-align:start}}
.occupancy-board{padding:20px;border:1px solid #e8e2ed;border-radius:18px;background:#fff;box-shadow:0 12px 35px rgba(35,22,52,.06)}.occupancy-board-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:16px}.occupancy-board-head h2{font-size:1.15rem;margin:0}.occupancy-room-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(225px,1fr));gap:12px}.occupancy-room-tile{min-height:245px;display:flex;flex-direction:column;gap:12px;padding:14px;border:1px solid #e9e4ef;border-radius:14px;background:#fbfafc}.occupancy-room-tile h3{margin:0;font-size:.98rem;line-height:1.35}.room-tile-top{display:flex;align-items:center;gap:9px}.occupancy-room-tile .occupancy-room-icon{width:38px;height:38px;border-radius:11px;font-size:1rem}.occupancy-room-tile .occupancy-badge{display:inline-flex;align-items:center;gap:6px;margin-inline-start:auto;padding:6px 9px;font-size:.62rem}.room-current-booking{display:grid;gap:4px;padding:10px;border-radius:12px;background:#fff6e3;border:1px solid #f0d28b}.room-current-booking small{color:#8a5d00;font-size:.62rem;font-weight:800}.room-current-booking strong{font-size:.82rem}.room-current-booking span{color:#665c4e;font-size:.68rem}.room-ready{display:flex;align-items:center;gap:7px;min-height:56px;padding:10px;border-radius:12px;background:#effaf4;color:#178c50;font-size:.78rem;font-weight:800}.room-today-list{display:grid;gap:7px;margin-top:auto;padding-top:10px;border-top:1px dashed #e5dfed}.room-today-head{display:flex;align-items:center;gap:7px;color:#3c3344;font-size:.76rem}.room-today-head span{margin-inline-start:auto;min-width:24px;height:24px;display:grid;place-items:center;border-radius:8px;background:#eeeaff;color:var(--purple-dark);font-weight:850}.room-today-item{display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:7px;padding:8px;border-radius:10px;background:#fff;border:1px solid #eee8f2;font-size:.7rem}.room-today-item time{font-weight:850;color:#2d2632}.room-today-item span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.room-today-item small{color:#756d7c}.room-today-item.is-current{background:#fff1d6;border-color:#edc46c}.room-today-empty{padding:10px;border-radius:10px;background:#f8f6fa;color:#77707f;text-align:center;font-size:.72rem}.occupancy-room-tile.occupancy-available{background:#f6fcf8;border-color:#ccebd8}.occupancy-room-tile.occupancy-full,.occupancy-room-tile.occupancy-partial{background:#fff9ec;border-color:#efdca7}@media(max-width:575px){.occupancy-board{padding:14px}.occupancy-board-head{align-items:flex-start}.occupancy-room-grid{grid-template-columns:1fr}.room-today-item{grid-template-columns:40px 1fr auto}}
.hall-list-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}.hall-list-item{display:flex;align-items:center;gap:13px;padding:20px;border-radius:18px;border:1px solid #e8e2ed;background:#fff;color:#2d2632;text-decoration:none;box-shadow:0 9px 28px rgba(35,22,52,.05);transition:.2s}.hall-list-item:hover{transform:translateY(-3px);border-color:#cfc0e4;color:#6d42a0;box-shadow:0 15px 36px rgba(61,37,86,.1)}.hall-list-item>i:last-child{margin-inline-start:auto}.hall-list-icon{width:48px;height:48px;display:grid;place-items:center;border-radius:14px;background:#eee7f8;color:#7043a5;font-size:1.2rem}.hall-detail-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.hall-detail-stats div{padding:16px;border-radius:15px;background:#f8f6fa}.hall-detail-stats small{display:block;color:#77707f}.hall-detail-stats strong{font-size:1.15rem}@media(max-width:575px){.hall-detail-stats{grid-template-columns:1fr}.hall-list-grid{grid-template-columns:1fr}}
.status-approved,.status-active{background:#dff8eb;color:#087443}.status-contacted{background:#e1efff;color:#2673bd}.status-rejected{background:#ffe5e8;color:#b42335}.status-ended{background:#e7e8ff;color:#4b4fc0}
.room-thumb{width:54px;height:54px;flex:0 0 54px;border-radius:14px;object-fit:cover;border:1px solid #e8e2ed;background:#f7f5fa}.room-detail-image{width:92px;height:92px;border-radius:18px;object-fit:cover;border:1px solid #e8e2ed;box-shadow:0 8px 24px rgba(35,22,52,.08)}.room-image-preview{min-height:126px;border:1px dashed #d8d0e5;border-radius:16px;background:#faf8fd;display:grid;place-items:center;overflow:hidden}.room-image-preview img{width:100%;height:160px;object-fit:cover}.booking-room-thumb{width:42px;height:42px;flex:0 0 42px;border-radius:12px;object-fit:cover;border:1px solid #e8e2ed;background:#f7f5fa}
