:root{--font-sans:"Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-title:"Outfit", var(--font-sans);--primary:#1e293b;--primary-hover:#0f172a;--primary-light:#f1f5f9;--primary-border:#1e293b33;--success:#10b981;--success-hover:#059669;--success-light:#ecfdf5;--success-border:#10b9814d;--danger:#ef4444;--danger-hover:#dc2626;--danger-light:#fef2f2;--danger-border:#ef444433;--gray-50:#f8fafc;--gray-100:#f1f5f9;--gray-200:#e2e8f0;--gray-300:#cbd5e1;--gray-400:#94a3b8;--gray-500:#64748b;--gray-600:#475569;--gray-700:#334155;--gray-800:#1e293b;--gray-900:#0f172a;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--shadow-xl:0 20px 25px -5px #0000001a, 0 8px 10px -6px #0000001a;--radius-sm:.375rem;--radius-md:.5rem;--radius-lg:.75rem;--radius-xl:1rem;--radius-2xl:1.5rem;font-family:var(--font-sans);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--gray-50);color:var(--gray-800);line-height:1.5}.app-container{flex-direction:column;gap:1.5rem;max-width:1280px;margin:0 auto;padding:1.5rem 1rem;display:flex}@media (width>=768px){.app-container{gap:2rem;padding:2.5rem 2rem}}.app-header{-webkit-backdrop-filter:blur(12px);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);background:#fffc;border:1px solid #e2e8f0cc;justify-content:space-between;align-items:center;padding:1rem 1.5rem;display:flex}.logo-container{color:var(--gray-900);align-items:center;gap:.75rem;display:flex}.logo-icon{color:var(--primary);width:2.25rem;height:2.25rem}.logo-text{font-family:var(--font-title);letter-spacing:-.03em;background:linear-gradient(135deg, var(--gray-900) 30%, var(--primary) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:1.5rem;font-weight:800}.btn{border-radius:var(--radius-lg);cursor:pointer;font-size:.95rem;font-weight:600;font-family:var(--font-sans);border:none;outline:none;justify-content:center;align-items:center;gap:.5rem;padding:.625rem 1.25rem;transition:all .2s cubic-bezier(.4,0,.2,1);display:inline-flex}.btn-primary{background-color:var(--primary);color:#fff;box-shadow:0 4px 10px #1e293b33}.btn-primary:hover{background-color:var(--primary-hover);transform:translateY(-1px);box-shadow:0 6px 14px #1e293b4d}.btn-primary:active{transform:translateY(0)}.btn-secondary{background-color:var(--gray-100);color:var(--gray-700);border:1px solid var(--gray-200)}.btn-secondary:hover{background-color:var(--gray-200);color:var(--gray-900)}.btn-danger{background-color:var(--danger);color:#fff;box-shadow:0 4px 10px #ef444433}.btn-danger:hover{background-color:var(--danger-hover);transform:translateY(-1px);box-shadow:0 6px 14px #ef44444d}.btn-danger-outline{color:var(--danger);border:1px solid var(--danger);background-color:#0000}.btn-danger-outline:hover{background-color:var(--danger-light)}.main-grid{grid-template-columns:1fr;gap:1.5rem;display:grid}@media (width>=992px){.main-grid{grid-template-columns:7fr 4fr;gap:2rem}}.card{border-radius:var(--radius-2xl);border:1px solid var(--gray-200);box-shadow:var(--shadow-sm);background-color:#fff;transition:box-shadow .3s;overflow:hidden}.card:hover{box-shadow:var(--shadow-md)}.calendar-card{flex-direction:column;padding:1rem;display:flex}@media (width>=768px){.calendar-card{padding:2rem}}.calendar-header{justify-content:space-between;align-items:center;margin-bottom:1.5rem;display:flex}.calendar-title{font-family:var(--font-title);color:var(--gray-900);text-transform:capitalize;font-size:1.25rem;font-weight:700}@media (width>=768px){.calendar-title{font-size:1.5rem}}.calendar-nav{align-items:center;gap:.5rem;display:flex}.calendar-nav-btn{border:1px solid var(--gray-200);width:2.25rem;height:2.25rem;color:var(--gray-600);cursor:pointer;background-color:#fff;border-radius:50%;outline:none;justify-content:center;align-items:center;transition:all .2s;display:flex}.calendar-nav-btn:hover{background-color:var(--gray-100);color:var(--gray-900);border-color:var(--gray-300);transform:scale(1.05)}.calendar-nav-btn:active{transform:scale(.95)}.calendar-grid{grid-template-columns:repeat(7,minmax(45px,1fr));gap:.25rem;display:grid;overflow-x:auto}@media (width>=768px){.calendar-grid{gap:.375rem;overflow-x:visible}}.weekday-header{text-align:center;color:var(--gray-500);text-transform:uppercase;letter-spacing:.05em;padding:.5rem 0;font-size:.75rem;font-weight:600}.calendar-day{border:1px solid var(--gray-200);border-radius:var(--radius-lg);background-color:#fff;flex-direction:column;gap:.175rem;min-height:125px;padding:.25rem;display:flex}@media (width>=768px){.calendar-day{gap:.25rem;min-height:145px;padding:.375rem}}.day-past-bg{background-color:var(--gray-100);pointer-events:none}.day-header-container{justify-content:space-between;align-items:center;margin-bottom:.15rem;padding:0 .15rem;display:flex}.day-number{color:var(--gray-800);font-size:.775rem;font-weight:700}.day-past-bg .day-number{color:var(--gray-400)}.day-indicator-today{background-color:var(--primary);border-radius:50%;width:5px;height:5px}.room-stripe{border-radius:var(--radius-sm);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;text-overflow:ellipsis;border:1px solid #0000;justify-content:flex-start;align-items:center;height:20px;padding:0 .375rem;font-size:.65rem;font-weight:600;transition:all .15s ease-in-out;display:flex;overflow:hidden}@media (width>=768px){.room-stripe{height:24px;padding:0 .5rem;font-size:.7rem}}.stripe-available{background-color:var(--success-light);color:var(--success-hover);border:1px dashed var(--success-border)}.stripe-available:hover{border-style:solid;border-color:var(--success);z-index:10;box-shadow:var(--shadow-sm);background-color:#d1fae5;transform:scale(1.02)}.stripe-reserved{background-color:var(--danger-light);color:var(--danger-hover);border:1px solid var(--danger-border)}.stripe-reserved:hover{border-color:var(--danger);z-index:10;box-shadow:var(--shadow-sm);background-color:#fee2e2;transform:scale(1.02)}.stripe-past{background-color:var(--gray-100);color:var(--gray-400);cursor:default}.stripe-reserved-past{background-color:var(--danger-light);color:var(--danger-hover);border:1px solid var(--danger-border);opacity:.8;cursor:default}.right-panel{flex-direction:column;gap:1.5rem;display:flex}.section-title{font-family:var(--font-title);color:var(--gray-900);align-items:center;gap:.5rem;margin-bottom:1rem;font-size:1.15rem;font-weight:700;display:flex}.panel-card{padding:1.25rem}@media (width>=768px){.panel-card{padding:1.5rem}}.empty-state{text-align:center;color:var(--gray-500);background-color:var(--gray-50);border-radius:var(--radius-xl);border:1px dashed var(--gray-300);flex-direction:column;justify-content:center;align-items:center;padding:2.5rem 1rem;display:flex}.empty-state-icon{width:2.5rem;height:2.5rem;color:var(--gray-400);margin-bottom:.75rem}.empty-state-text{font-size:.9rem;font-weight:500}.bookings-list{flex-direction:column;gap:.75rem;max-height:420px;padding-right:.25rem;display:flex;overflow-y:auto}.bookings-list::-webkit-scrollbar{width:4px}.bookings-list::-webkit-scrollbar-track{background:0 0}.bookings-list::-webkit-scrollbar-thumb{background:var(--gray-300);border-radius:2px}.booking-item{border-radius:var(--radius-lg);border:1px solid var(--gray-200);cursor:pointer;background-color:#fff;justify-content:space-between;align-items:center;padding:.875rem 1rem;transition:all .2s;display:flex}.booking-item:hover{background-color:var(--primary-light);border-color:var(--primary-border);transform:translate(4px)}.booking-item-left{flex-direction:column;gap:.25rem;min-width:0;display:flex}.booking-item-name{color:var(--gray-900);text-overflow:ellipsis;white-space:nowrap;font-size:.95rem;font-weight:600;overflow:hidden}.booking-item-dates{color:var(--gray-500);align-items:center;gap:.25rem;font-size:.775rem;display:flex}.booking-item-right{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:.25rem;display:flex}.room-badge{border-radius:12px;padding:.125rem .5rem;font-size:.65rem;font-weight:700}.room-badge-q1{color:#0369a1;background-color:#e0f2fe;border:1px solid #bae6fd}.room-badge-q2{color:#6b21a8;background-color:#f3e8ff;border:1px solid #e9d5ff}.room-badge-q3{color:#3730a3;background-color:#e0e7ff;border:1px solid #c7d2fe}.room-badge-q4{color:#92400e;background-color:#fef3c7;border:1px solid #fde68a}.booking-item-nights{color:var(--gray-600);font-size:.75rem;font-weight:600}.detail-container{flex-direction:column;gap:1.25rem;display:flex}.detail-row{flex-direction:column;gap:.375rem;display:flex}.detail-label{text-transform:uppercase;color:var(--gray-500);letter-spacing:.05em;font-size:.75rem;font-weight:700}.detail-value{color:var(--gray-900);align-items:center;gap:.5rem;font-size:1.05rem;font-weight:600;display:flex}.detail-nights-badge{color:var(--primary);background-color:var(--primary-light);border:1px solid var(--primary-border);border-radius:20px;align-items:center;gap:.25rem;padding:.25rem .75rem;font-size:.85rem;font-weight:700;display:inline-flex}.detail-notes-box{border-radius:var(--radius-lg);color:#78350f;white-space:pre-line;background-color:#fffbeb;border:1px solid #fde68a;max-height:120px;padding:.75rem;font-size:.875rem;line-height:1.4;overflow-y:auto}.detail-dependents-container{flex-wrap:wrap;gap:.375rem;margin-top:.15rem;display:flex}.detail-dependent-tag{background-color:var(--gray-100);border:1px solid var(--gray-200);color:var(--gray-700);border-radius:var(--radius-sm);align-items:center;gap:.25rem;padding:.25rem .625rem;font-size:.775rem;font-weight:500;display:inline-flex}.detail-divider{background-color:var(--gray-200);height:1px}.detail-actions{grid-template-columns:1fr;gap:.75rem;margin-top:.5rem;display:grid}.modal-backdrop{-webkit-backdrop-filter:blur(6px);z-index:100;background-color:#0f172a73;justify-content:center;align-items:center;padding:1rem;animation:.25s cubic-bezier(.16,1,.3,1) forwards modalFadeIn;display:flex;position:fixed;inset:0}.modal-content{border-radius:var(--radius-2xl);width:100%;max-width:550px;box-shadow:var(--shadow-xl);border:1px solid var(--gray-200);background-color:#fff;flex-direction:column;max-height:90vh;animation:.3s cubic-bezier(.34,1.56,.64,1) forwards modalScaleUp;display:flex;overflow:hidden}.modal-content>form{flex-direction:column;flex-grow:1;display:flex;overflow:hidden}.modal-header{border-bottom:1px solid var(--gray-100);background-color:var(--gray-50);flex-shrink:0;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;display:flex}.modal-title{font-family:var(--font-title);color:var(--gray-900);align-items:center;gap:.5rem;font-size:1.2rem;font-weight:700;display:flex}.modal-close-btn{color:var(--gray-500);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;width:2rem;height:2rem;transition:all .2s;display:flex}.modal-close-btn:hover{background-color:var(--gray-200);color:var(--gray-900)}.modal-body{flex-grow:1;padding:1.5rem;overflow-y:auto}.modal-footer{border-top:1px solid var(--gray-100);background-color:var(--gray-50);flex-shrink:0;justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;display:flex}.form-group{flex-direction:column;gap:.375rem;margin-bottom:1.25rem;display:flex}.form-label{color:var(--gray-700);font-size:.85rem;font-weight:600}.form-control{font-family:var(--font-sans);border:1px solid var(--gray-300);border-radius:var(--radius-lg);width:100%;color:var(--gray-900);background-color:#fff;outline:none;padding:.625rem .875rem;font-size:.95rem;transition:all .2s}.form-control:focus{border-color:var(--primary);box-shadow:0 0 0 3px #2563eb26}.form-control::placeholder{color:var(--gray-400)}.form-control-readonly{background-color:var(--gray-100);color:var(--gray-600);cursor:not-allowed;border-color:var(--gray-200)}.form-control-readonly:focus{box-shadow:none;border-color:var(--gray-200)}.input-action-row{grid-template-columns:2fr 1.5fr auto;gap:.5rem;display:grid}.dependents-list-builder{background-color:var(--gray-50);border-radius:var(--radius-lg);border:1px dashed var(--gray-300);flex-direction:column;gap:.375rem;max-height:120px;margin-top:.5rem;padding:.5rem;display:flex;overflow-y:auto}.dependents-list-builder::-webkit-scrollbar{width:4px}.dependents-list-builder::-webkit-scrollbar-thumb{background:var(--gray-300);border-radius:2px}.builder-item{border-radius:var(--radius-md);border:1px solid var(--gray-200);background-color:#fff;justify-content:space-between;align-items:center;padding:.375rem .75rem;font-size:.825rem;display:flex}.builder-item-name{color:var(--gray-800);text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.builder-item-remove-btn{color:var(--danger);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:.125rem;transition:background-color .2s;display:flex}.builder-item-remove-btn:hover{background-color:var(--danger-light)}.alert{border-radius:var(--radius-lg);border:1px solid #0000;gap:.75rem;margin-bottom:1.25rem;padding:1rem;font-size:.875rem;display:flex}.alert-danger{background-color:var(--danger-light);color:var(--danger-hover);border-color:var(--danger-border)}.alert-icon{flex-shrink:0;width:1.25rem;height:1.25rem}.confirm-message{color:var(--gray-600);margin-bottom:1rem;font-size:.975rem}.confirm-details{background-color:var(--gray-50);border:1px solid var(--gray-200);border-radius:var(--radius-lg);margin-bottom:1.5rem;padding:1rem}.confirm-detail-row{justify-content:space-between;margin-bottom:.375rem;font-size:.875rem;display:flex}.confirm-detail-row:last-child{margin-bottom:0}.confirm-detail-label{color:var(--gray-500);font-weight:500}.confirm-detail-value{color:var(--gray-900);font-weight:600}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalScaleUp{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@media (width<=480px){.calendar-nav-btn{width:2rem;height:2rem}.calendar-title{font-size:1.1rem}.calendar-grid{grid-template-columns:repeat(7,minmax(40px,1fr))}.room-stripe{padding:0 .25rem}}.animate-spin{animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.left-search-sidebar{border-radius:var(--radius-2xl);border:1px solid var(--gray-200);box-shadow:var(--shadow-sm);background-color:#fff;flex-direction:column;gap:1.25rem;height:fit-content;padding:1.25rem;display:flex}@media (width>=992px){.main-grid.search-open{grid-template-columns:3.5fr 7.5fr 4fr;gap:1.5rem}}@media (width<=991px){.left-search-sidebar{z-index:1000;width:100%;height:100%;box-shadow:var(--shadow-xl);border-radius:0;animation:.3s cubic-bezier(.4,0,.2,1) slideInLeft;position:fixed;top:0;left:0;overflow-y:auto}}@keyframes slideInLeft{0%{transform:translate(-100%)}to{transform:translate(0)}}.detail-panel-wrapper{display:block}.detail-panel-header-mobile{display:none}.empty-state-card{display:block}@media (width<=991px){.detail-panel-wrapper{z-index:1100;-webkit-backdrop-filter:blur(4px);background-color:#0f172a99;justify-content:center;align-items:center;width:100vw;height:100vh;padding:1rem;animation:.25s ease-out fadeIn;display:flex;position:fixed;top:0;left:0}.detail-panel-wrapper>.card{width:100%;max-width:500px;max-height:85vh;box-shadow:var(--shadow-xl);animation:.3s cubic-bezier(.4,0,.2,1) slideUp;overflow-y:auto}.detail-panel-header-mobile{z-index:10;justify-content:flex-end;margin-bottom:-1rem;display:flex;position:relative}.detail-close-btn{border:1px solid var(--gray-200);width:2.25rem;height:2.25rem;color:var(--gray-500);cursor:pointer;box-shadow:var(--shadow-md);background-color:#fff;border-radius:50%;justify-content:center;align-items:center;transition:all .2s;display:flex}.detail-close-btn:hover{background-color:var(--gray-100);color:var(--gray-900)}.empty-state-card{display:none}}@media (width<=767px){.calendar-day{gap:.1rem!important;min-height:90px!important;padding:.15rem!important}.day-header-container{margin-bottom:.1rem!important}.day-number{font-size:.7rem!important}.room-stripe{height:18px!important;padding:0 .25rem!important;font-size:.58rem!important}}@media (width<=576px){.app-header{gap:.75rem!important;padding:.75rem 1rem!important}.logo-container img{width:2.75rem!important;height:2.75rem!important}.logo-text{font-size:1.15rem!important}.logo-container span{font-size:.68rem!important}.header-new-booking-btn{border-radius:50%!important;width:2.5rem!important;height:2.5rem!important;padding:.625rem!important}.header-new-booking-btn .btn-text{display:none!important}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
