.hamburger-btn{background:linear-gradient(135deg,#5b21b6,#7c3aed);border:none;border-radius:10px;box-shadow:0 2px 8px #5b21b64d;color:#fff;cursor:pointer;display:none;font-size:20px;margin-right:8px;overflow:hidden;padding:10px 12px;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1)}.hamburger-btn:before{background:#ffffff4d;border-radius:50%;content:"";height:0;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);transition:width .6s,height .6s;width:0}.hamburger-btn:hover:before{height:100px;width:100px}.hamburger-btn:hover{box-shadow:0 4px 12px #5b21b666;transform:scale(1.05)}.hamburger-btn:active{box-shadow:0 1px 4px #5b21b64d;transform:scale(.95)}.hamburger-btn svg{position:relative;z-index:1}.sidebar-backdrop{animation:fadeIn .25s forwards;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background-color:#0009;bottom:0;display:none;left:0;opacity:0;position:fixed;right:0;top:0;z-index:999}@media (max-width:768px){.hamburger-btn{align-items:center;display:flex;justify-content:center}.sidebar-backdrop{display:block}.sidebar{box-shadow:none;height:100vh;left:-100%;max-width:85vw;overflow-y:auto;position:fixed;top:0;transition:left .3s cubic-bezier(.4,0,.2,1);width:300px;z-index:1000}.sidebar.sidebar-open{animation:slideIn .3s cubic-bezier(.4,0,.2,1);box-shadow:8px 0 24px #00000040;left:0}.sidebar-header{background:linear-gradient(135deg,#5b21b6,#7c3aed);border-bottom:1px solid #ffffff26;padding:20px 15px}.sidebar-logo{filter:brightness(1.1);max-width:140px}.sidebar-nav{padding:8px 0}.sidebar-nav li{margin-bottom:2px}.sidebar-menu-item{border-radius:8px;font-size:.95rem;margin:0 8px;padding:12px 16px;transition:all .2s}.sidebar-menu-item:hover{background-color:#ffffff1f;transform:translateX(4px)}.sidebar-menu-item.active{background-color:#fff3;font-weight:600}.sidebar-menu-item svg{font-size:1.15rem;min-width:24px}.subscription-counters-sidebar{background:linear-gradient(135deg,#ffffff1a,#ffffff0d);border:1px solid #ffffff26;border-radius:12px;margin:8px;padding:15px 12px}.counters-grid-sidebar{gap:10px;grid-template-columns:repeat(2,1fr)}.counter-card-sidebar{background:#ffffff14;border-radius:8px;padding:10px 8px;text-align:center;transition:all .2s}.counter-card-sidebar:hover{background:#ffffff1f;transform:translateY(-2px)}.counter-value-sidebar{color:#fff;font-size:1.5rem;font-weight:700;margin-bottom:4px}.counter-label-sidebar{color:#ffffffd9;font-size:.7rem;font-weight:500;letter-spacing:.5px;text-transform:uppercase}.sidebar-footer{background:#00000026;border-top:1px solid #ffffff1a;color:#ffffffb3;font-size:.75rem;padding:16px 12px;text-align:center}.sidebar-footer .version{color:#ffffff80;font-size:.7rem;margin-top:4px}.dashboard-content{margin-left:0;padding:12px;width:100%}.dashboard-header{background:#fff;box-shadow:0 2px 8px #00000014;gap:8px;height:auto;justify-content:flex-start!important;margin-left:0!important;min-height:64px;padding:12px 16px;width:100%!important}.dashboard-header,.page-title{align-items:center;display:flex}.page-title{flex:0 1 auto;gap:10px;margin-left:0;margin-right:auto}.page-title h2{color:var(--text-color);font-size:1.3rem;font-weight:600;margin:0;white-space:nowrap}.page-title-icon{color:var(--primary-color);font-size:1.4rem;margin-right:8px}.page-title-icon,.user-info{align-items:center;display:flex}.user-info{gap:8px}.user-info span{display:none}.user-info .avatar{border:2px solid var(--primary-color);border-radius:50%;height:36px;width:36px}.user-menu{margin-left:0}.header-actions{align-items:center;display:flex;gap:6px;margin-left:auto}.notification-btn{background:#0000;border:none;border-radius:8px;cursor:pointer;font-size:20px;padding:8px;transition:background .2s}.notification-btn:hover{background:#0000000d}.return-to-admin-button{background:#ffffff26;border:1px solid #fff3;border-radius:8px;color:#fff;cursor:pointer;font-size:.9rem;margin:8px;padding:12px 16px;transition:all .2s;width:calc(100% - 16px)}.return-to-admin-button:hover{background:#ffffff38;transform:translateY(-1px)}}@media (max-width:480px){.sidebar{width:280px}.dashboard-content{padding:10px}.page-title h2{font-size:1.15rem}.page-title-icon{font-size:1.2rem}.notifications{display:none}.counters-grid-sidebar{gap:8px;grid-template-columns:repeat(2,1fr)}.counter-value-sidebar{font-size:1.3rem}.counter-label-sidebar{font-size:.65rem}.sidebar-menu-item{font-size:.9rem;padding:10px 14px}}@media (min-width:769px) and (max-width:1024px){.sidebar{width:220px}.dashboard-content{margin-left:220px;width:calc(100% - 220px)}.sidebar-logo{max-width:150px}.counter-label-sidebar{font-size:.75rem}.sidebar-menu-item{font-size:.9rem;padding:10px 16px}}@media (max-width:768px){.dashboard-content{overflow-x:hidden;padding:15px 12px}.appointments-list,.booking-link-manager,.profile-panel,.rgpd-document-panel,.settings-panel,.subscription-panel,.unavailability-panel,.visio-panel{border-radius:0;box-shadow:none;margin:0;padding:15px 12px}.panel-header h2,.panel-title,.section-title{border-bottom:2px solid #e5e7eb;font-size:1.3rem;font-weight:700;margin-bottom:15px;padding-bottom:10px}.panel-header h3,.subsection-title{font-size:1.1rem;font-weight:600;margin-bottom:12px;margin-top:20px}.panel-tabs,.settings-tabs,.tab-navigation{-webkit-overflow-scrolling:touch;border-bottom:2px solid #e5e7eb;display:flex;gap:6px;margin-bottom:20px;overflow-x:auto;padding-bottom:10px;scrollbar-width:thin}.panel-tabs::-webkit-scrollbar,.settings-tabs::-webkit-scrollbar{height:4px}.panel-tabs::-webkit-scrollbar-thumb,.settings-tabs::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:2px}.settings-tab,.tab-button{background-color:#fff;border:1px solid #d1d5db;border-radius:8px;color:#374151;font-size:.85rem;font-weight:600;min-height:38px;padding:8px 14px;transition:all .2s ease;white-space:nowrap}.settings-tab.active,.tab-button.active{background:linear-gradient(135deg,#5b21b6,#7c3aed);border:none;box-shadow:0 2px 6px #5b21b64d;color:#fff}.settings-tab:active,.tab-button:active{transform:scale(.97)}.btn,.button,button,input[type=button],input[type=submit]{border-radius:8px;font-size:.9rem;font-weight:600;min-height:38px;padding:8px 16px;transition:all .2s cubic-bezier(.4,0,.2,1)}.btn-primary,.primary-button,.save-button{background:linear-gradient(135deg,#5b21b6,#7c3aed);border:none;box-shadow:0 2px 6px #5b21b64d;color:#fff}.btn-primary:active,.primary-button:active,.save-button:active{box-shadow:0 1px 3px #5b21b666;transform:scale(.97)}.btn-secondary,.cancel-button,.secondary-button{background-color:#fff;border:1px solid #d1d5db;box-shadow:0 1px 3px #0000001a;color:#374151}.btn-danger,.delete-button{background-color:#ef4444;border:none;box-shadow:0 2px 6px #ef44444d;color:#fff}.btn-success{background-color:#10b981;border:none;box-shadow:0 2px 6px #10b9814d;color:#fff}.btn-block,.full-width-button{margin-bottom:10px;width:100%}.field-group,.form-group{margin-bottom:16px}.field-label,.form-group label{color:#374151;display:block;font-size:.9rem;font-weight:600;margin-bottom:6px}input[type=date],input[type=email],input[type=number],input[type=password],input[type=tel],input[type=text],input[type=time],select,textarea{background-color:#fff;border:1px solid #d1d5db;border-radius:8px;font-size:.95rem;min-height:38px;padding:10px 12px;transition:all .2s ease;width:100%}input:focus,select:focus,textarea:focus{border-color:#5b21b6;box-shadow:0 0 0 3px #5b21b61a;outline:none}textarea{min-height:100px;resize:vertical}.card,.info-card,.panel-card{background-color:#fff;border:1px solid #e5e7eb;border-radius:10px;box-shadow:0 1px 3px #00000014;margin-bottom:12px;padding:15px}.card-header{border-bottom:1px solid #e5e7eb;color:#111827;font-size:1rem;font-weight:700;margin-bottom:10px;padding-bottom:8px}.card-body{color:#374151;font-size:.9rem;line-height:1.5}.appointment-item,.list-item,.setting-item{background-color:#fff;border:1px solid #e5e7eb;border-radius:8px;margin-bottom:10px;padding:12px;transition:all .2s ease}.appointment-item:active,.list-item:active{background-color:#f9fafb;transform:scale(.98)}.grid-2-cols,.settings-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr}.alert,.notification-box{border-radius:8px;font-size:.9rem;line-height:1.4;margin-bottom:15px;padding:12px 15px}.alert-info{background-color:#dbeafe;border-left:4px solid #3b82f6;color:#1e40af}.alert-success{background-color:#d1fae5;border-left:4px solid #10b981;color:#065f46}.alert-warning{background-color:#fef3c7;border-left:4px solid #f59e0b;color:#92400e}.alert-danger{background-color:#fee2e2;border-left:4px solid #ef4444;color:#991b1b}.table-responsive{-webkit-overflow-scrolling:touch;margin-bottom:15px;overflow-x:auto}table{font-size:.85rem;width:100%}th{background-color:#f9fafb;color:#374151;font-weight:600;white-space:nowrap}td,th{padding:10px 8px}td{border-bottom:1px solid #e5e7eb}.badge,.status-badge{border-radius:12px;display:inline-block;font-size:.75rem;font-weight:600;padding:4px 10px;white-space:nowrap}.badge-success{background-color:#d1fae5;color:#065f46}.badge-warning{background-color:#fef3c7;color:#92400e}.badge-danger{background-color:#fee2e2;color:#991b1b}.badge-info{background-color:#dbeafe;color:#1e40af}.loading-container{align-items:center;display:flex;flex-direction:column;justify-content:center;min-height:200px;padding:40px 20px}.spinner{animation:spin .8s linear infinite;border:3px solid #e5e7eb;border-radius:50%;border-top-color:#5b21b6;height:40px;width:40px}@keyframes spin{to{transform:rotate(1turn)}}.loading-text{color:#6b7280;font-size:.9rem;font-weight:500;margin-top:15px}.empty-state{color:#6b7280;padding:40px 20px;text-align:center}.empty-state-icon{color:#d1d5db;font-size:3rem;margin-bottom:15px}.empty-state-title{color:#374151;font-size:1.1rem;font-weight:600;margin-bottom:8px}.empty-state-text{font-size:.9rem;line-height:1.5;margin-bottom:20px}.switch-container{align-items:center;display:flex;justify-content:space-between;min-height:50px;padding:12px 0}.switch-label{color:#374151;flex:1 1;font-size:.9rem;font-weight:500}.switch{flex-shrink:0;height:28px;position:relative;width:50px}.switch input{height:0;opacity:0;width:0}.slider{background-color:#d1d5db;border-radius:28px;bottom:0;cursor:pointer;left:0;right:0;top:0}.slider,.slider:before{position:absolute;transition:.3s}.slider:before{background-color:#fff;border-radius:50%;bottom:3px;box-shadow:0 2px 4px #0003;content:"";height:22px;left:3px;width:22px}input:checked+.slider{background:linear-gradient(135deg,#5b21b6,#7c3aed)}input:checked+.slider:before{transform:translateX(22px)}.divider{background-color:#e5e7eb;height:1px;margin:20px 0}.divider-text{align-items:center;color:#6b7280;display:flex;font-size:.85rem;margin:20px 0;text-align:center}.divider-text:after,.divider-text:before{border-bottom:1px solid #e5e7eb;content:"";flex:1 1}.divider-text:before{margin-right:10px}.divider-text:after{margin-left:10px}.tooltip-trigger{align-items:center;display:inline-flex;gap:6px}.tooltip-icon{color:#9ca3af;cursor:help;height:18px;width:18px}.progress-bar{background-color:#e5e7eb;border-radius:4px;height:8px;margin:10px 0;overflow:hidden;width:100%}.progress-fill{background:linear-gradient(135deg,#5b21b6,#7c3aed);border-radius:4px;height:100%;transition:width .3s ease}.modal-overlay{align-items:center;background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1000}.modal-content{background-color:#fff;border-radius:12px;box-shadow:0 10px 25px #0003;max-height:90vh;max-width:500px;overflow-y:auto;width:100%}.modal-header{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:18px 20px}.modal-title{color:#111827;font-size:1.1rem;font-weight:700}.modal-close{background-color:#f3f4f6;border:none;border-radius:50%;color:#6b7280;cursor:pointer;font-size:1.2rem;height:36px;transition:all .2s ease;width:36px}.modal-close:active{background-color:#e5e7eb;transform:scale(.9)}.modal-body{padding:20px}.modal-footer{border-top:1px solid #e5e7eb;display:flex;gap:10px;justify-content:flex-end;padding:18px 20px}.modal-footer button{flex:1 1}}@media (max-width:480px){.dashboard-content{padding:12px 10px}.panel-header h2,.section-title{font-size:1.2rem}.btn,button,input[type=button],input[type=submit]{font-size:.85rem;min-height:36px;padding:7px 14px}.settings-tab,.tab-button{font-size:.8rem;min-height:36px;padding:7px 12px}input[type=date],input[type=email],input[type=number],input[type=password],input[type=tel],input[type=text],input[type=time],select,textarea{font-size:.9rem;min-height:36px;padding:9px 11px}.card,.panel-card{padding:12px}.appointment-item,.list-item{padding:10px}}@media (max-width:768px) and (orientation:landscape){.dashboard-content{padding:10px 12px}.panel-header h2,.section-title{font-size:1.1rem;margin-bottom:12px}.btn,button{min-height:34px;padding:6px 14px}.modal-content{max-height:85vh}}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #5b21b6;outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media (hover:none){.btn:hover,button:hover{background-color:inherit}}.day-view{height:100%;min-height:600px}.day-view,.day-view-container{display:flex;flex-direction:column}.day-view-container{background-color:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;margin-top:10px;width:100%}@media (min-width:769px){.day-view-container{height:100%;min-height:600px;overflow-y:auto}}.day-view-date-header{background-color:#f0f4f8;border-bottom:1px solid #e0e4e8;border-radius:6px 6px 0 0;box-shadow:0 1px 3px #0000000d;color:#333;font-size:1.2rem;font-weight:500;margin-bottom:10px;padding:12px 15px;text-align:center}.day-view-date-header:first-letter{text-transform:uppercase}@media (max-width:768px){.day-view-date-header{font-size:1rem;padding:8px 10px;position:sticky;top:0;z-index:10}}.day-grid{border:1px solid #e5e7eb;border-radius:4px;display:flex;flex:1 1;margin:0;min-height:500px;padding:0}.time-labels .hour-label{align-items:flex-start;border-bottom:1px solid #e5e7eb;color:#6b7280;display:flex;font-size:.8rem;height:60px;justify-content:flex-end;padding-right:8px;text-align:right}.hour-label .hour-text{position:relative;top:0}.hour-label.outside-hours{background-color:#f3f4f6;color:#9ca3af;font-style:italic}.day-content{flex:1 1;margin:0;min-width:0;padding:0}.hour-row{margin:0;min-height:60px;padding:0}.hour-row.inactive{background-color:#f3f4f6;position:relative}.hour-row.inactive:before{background:repeating-linear-gradient(135deg,#e2e8f0b3,#e2e8f0b3 10px,#cbd5e180 0,#cbd5e180 20px);bottom:0;content:"";left:0;pointer-events:none;position:absolute;right:0;top:0;z-index:1}.hour-row-content{height:100%;position:relative;top:0;width:100%}.day-view .time-slot{border-bottom:1px dashed #e5e7eb;box-sizing:border-box;height:15px!important;margin:0;max-height:15px!important;min-height:15px!important;padding:0;position:relative;z-index:1}.time-slot.unavailable{background-color:#fca5a54d!important;position:relative;z-index:2}.time-slot.unavailable:before{background:repeating-linear-gradient(45deg,#fecacab3,#fecacab3 5px,#fca5a580 0,#fca5a580 10px);bottom:0;content:"";left:0;pointer-events:none;position:absolute;right:0;top:0;z-index:-1}.time-slot.day-unavailable,.time-slot.time-slot-unavailable{background-color:#fca5a54d!important}.time-slot.day-unavailable:before,.time-slot.time-slot-unavailable:before{background:repeating-linear-gradient(45deg,#fecacab3,#fecacab3 5px,#fca5a580 0,#fca5a580 10px)}.hour-row.with-unavailability{position:relative}.hour-row.with-unavailability:after{background-color:#fca5a54d;background-image:repeating-linear-gradient(45deg,#fecacab3,#fecacab3 5px,#fca5a580 0,#fca5a580 10px);bottom:0;content:"";left:0;pointer-events:none;position:absolute;right:0;top:0;z-index:1}.hour-unavailability-reason{background:#fffc;border:1px solid #fecacacc;border-radius:4px;color:#b91c1c;font-size:12px;font-weight:700;left:50%;max-width:90%;overflow:hidden;padding:4px 8px;pointer-events:none;position:absolute;text-overflow:ellipsis;top:50%;transform:translate(-50%,-50%);white-space:nowrap;z-index:5}.slot-appointments-grid{align-items:stretch;display:flex;flex-direction:column;gap:2px;height:auto;left:0;min-height:100%;padding:1px;position:relative;top:0;width:100%;z-index:1000}.unavailability-indicator{align-items:center;bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:4}.unavailability-reason{background:#ffffffb3;border-radius:2px;color:#b91c1c;font-size:10px;font-weight:700;max-width:90%;overflow:hidden;padding:2px 4px;text-overflow:ellipsis;white-space:nowrap}.day-appointment{background:#a855f7!important;border-radius:8px;box-shadow:0 1px 4px #00000014;color:#222!important;display:block;font-size:1rem;font-weight:600;height:15px;height:calc(var(--slot-span, 1)*15px);margin-bottom:1px;min-height:15px;opacity:1;overflow:hidden;padding:2px 5px;position:relative;transition:background-color .2s ease;-webkit-user-select:none;user-select:none;white-space:nowrap;width:100%;z-index:2}.day-appointment.past-appointment{background:#e5e7eb!important;border:1px dashed #a3a3a3!important;color:#6b7280!important;cursor:pointer!important;filter:grayscale(.5);opacity:.45;pointer-events:auto!important}.day-appointment.status-confirmed{background-color:#e6f9ec!important;border:2px solid #22c55e!important}.day-appointment.status-canceled,.day-appointment.status-needs-notification,.day-appointment.status-pending{background-color:#fdeaea!important;border:2px solid #ef4444!important}.day-appointment.status-completed{background-color:#f1f5f9!important;border:2px solid #64748b!important}.day-appointment.calendar-colored{background-color:var(--calendar-color)!important;border:2px solid var(--calendar-color)!important}.day-appointment.calendar-colored,.day-appointment.calendar-colored .day-appointment-client,.day-appointment.calendar-colored .day-appointment-duration,.day-appointment.calendar-colored .day-appointment-time{color:#fff!important;color:var(--text-color,#fff)!important}.day-appointment .day-appointment-duration,.day-appointment .day-appointment-time{font-weight:700}.day-appointment.status-confirmed .day-appointment-duration,.day-appointment.status-confirmed .day-appointment-time{color:#22c55e!important}.day-appointment.status-canceled .day-appointment-duration,.day-appointment.status-canceled .day-appointment-time,.day-appointment.status-needs-notification .day-appointment-duration,.day-appointment.status-needs-notification .day-appointment-time,.day-appointment.status-pending .day-appointment-duration,.day-appointment.status-pending .day-appointment-time{color:#ef4444!important}.day-appointment.status-completed .day-appointment-duration,.day-appointment.status-completed .day-appointment-time{color:#64748b!important}.day-appointment:hover{background-color:inherit!important;box-shadow:0 1px 4px #00000014;transform:none}.day-appointment .day-appointment-time{color:inherit!important;font-size:1.1em;font-weight:700;margin-right:6px}.day-appointment .day-appointment-client{color:#222!important;font-size:1em;font-weight:600;margin-right:auto}.day-appointment .day-appointment-duration{color:inherit!important;font-size:.95em;font-weight:500;margin-left:auto;opacity:.8}.day-appointment-content{align-items:center;display:flex;height:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.day-appointment-time{flex:0 0 auto;font-weight:500;margin-right:4px;white-space:nowrap}.day-appointment-client{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.day-appointment-duration{flex:0 0 auto;font-size:.6rem;margin-left:4px;white-space:nowrap}.day-appointment-container{position:relative}@media (max-width:768px){.hour-row{height:50px}.hour-label{align-items:flex-start;padding-top:0}}.appointment-details-panel{background-color:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;display:flex;flex-direction:column;height:100%;overflow:hidden;padding:0}.popup-header{background-color:#f8fafc;border-bottom:1px solid #e5e7eb;padding:12px 16px}.popup-header h3{color:#1e293b;font-size:1.1rem}.popup-close{color:#64748b;font-size:1.5rem}.popup-content{flex:1 1;padding:16px}.detail-row{flex-direction:column;margin-bottom:12px}.detail-label{color:#64748b;font-size:.8rem;margin-bottom:2px}.detail-value{color:#0f172a;font-size:.95rem}.detail-value.status-confirmed{color:#059669;font-weight:500}.detail-value.status-canceled{color:#dc2626;font-weight:500}.detail-value.status-pending{color:#d97706;font-weight:500}.popup-actions{border-top:1px solid #e5e7eb;gap:8px;padding:16px}.popup-action{border-radius:6px;font-size:.9rem;padding:8px 12px}.popup-action.danger{background-color:#fee2e2;color:#b91c1c}.popup-action.danger:hover{background-color:#fecaca}.details-empty-state{align-items:center;color:#64748b;display:flex;flex-direction:column;height:100%;justify-content:center;padding:20px;text-align:center}.details-empty-state svg{color:#94a3b8;height:40px;margin-bottom:16px;width:40px}.details-empty-state h3{color:#334155;font-size:1.1rem;margin:0 0 8px}.details-empty-state p{font-size:.9rem;margin:0}.floating-add-button{align-items:center;background-color:#5b21b6;border:none;border-radius:28px;bottom:94px;box-shadow:0 4px 12px #5b21b640;color:#fff;cursor:pointer;display:flex;font-size:24px;height:56px;justify-content:center;position:fixed;right:24px;transition:all .2s ease;width:56px;z-index:9998}.floating-add-button:hover{background-color:#4c1d95;box-shadow:0 6px 8px #00000026;transform:translateY(-2px)}.more-appointments{background-color:#f3f4f6;border-radius:3px;color:#6b7280;font-size:.7rem;padding:0 3px;text-align:center}.dayview-timeline,.time-slot .day-appointment.is-hidden,.time-slot.occupied,.time-slot[aria-hidden=true]{pointer-events:none}.dayview-timeline{background:#a855f7;box-shadow:0 0 4px #a855f7aa;height:2px;left:0;position:absolute;right:0;z-index:30}@media (max-width:768px){.appointment-details-modal-overlay{align-items:flex-end;animation:fadeIn .2s ease;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:#0009;bottom:0;display:flex;left:0;position:fixed;right:0;top:0;z-index:2000}.appointment-details-modal .appointment-details-panel{background:#0000;border-radius:0;box-shadow:none;height:auto;padding:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.appointment-details-modal{animation:slideUp .3s cubic-bezier(.4,0,.2,1);background:#fff;border-radius:20px 20px 0 0;box-shadow:0 -4px 20px #0003;display:flex;flex-direction:column;max-height:90vh;overflow:hidden;width:100%}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.appointment-details-modal .popup-header{align-items:center;background:linear-gradient(135deg,#f9fafb,#fff);border-bottom:2px solid #e5e7eb;display:flex;flex-shrink:0;justify-content:space-between;padding:20px 20px 15px}.appointment-details-modal .popup-header h3{color:#111827;font-size:1.2rem;font-weight:700;margin:0}.appointment-details-modal .popup-close{align-items:center;background-color:#f3f4f6;border:none;border-radius:50%;color:#6b7280;cursor:pointer;display:flex;font-size:1.5rem;font-weight:300;height:36px;justify-content:center;line-height:1;transition:all .2s ease;width:36px}.appointment-details-modal .popup-close:active{background-color:#e5e7eb;transform:scale(.9)}.appointment-details-modal .popup-content{-webkit-overflow-scrolling:touch;flex:1 1;overflow-y:auto;padding:20px}.appointment-details-modal .detail-row{align-items:flex-start;border-bottom:1px solid #f3f4f6;display:flex;padding:12px 0}.appointment-details-modal .detail-row:last-child{border-bottom:none}.appointment-details-modal .detail-label{color:#6b7280;flex-shrink:0;font-size:.85rem;font-weight:600;min-width:100px}.appointment-details-modal .detail-value{word-wrap:break-word;color:#111827;flex:1 1;font-size:.9rem}.appointment-details-modal .detail-value.status-confirmed{color:#10b981;font-weight:600}.appointment-details-modal .detail-value.status-pending{color:#f59e0b;font-weight:600}.appointment-details-modal .detail-value.status-canceled{color:#ef4444;font-weight:600}.appointment-details-modal .detail-value.status-completed{color:#6b7280;font-weight:600}.appointment-details-modal .detail-row.notes{flex-direction:column;gap:8px}.appointment-details-modal .detail-row.notes .detail-label{min-width:auto}.appointment-details-modal .detail-row.notes .detail-value{background-color:#f9fafb;border-left:3px solid #5b21b6;border-radius:8px;font-size:.85rem;line-height:1.5;padding:10px}.appointment-details-modal .visio-link-box{background:#f0fdf4!important;border:1px solid #86efac!important;border-radius:8px!important;margin:10px 0!important;padding:12px!important}.appointment-details-modal .visio-link-box button{border:none!important;border-radius:6px!important;cursor:pointer!important;flex:1 1!important;font-size:13px!important;font-weight:600!important;min-height:44px!important;padding:10px 16px!important;white-space:nowrap!important}.appointment-details-modal .visio-link-box>div:last-child{display:flex!important;flex-direction:column!important;gap:8px!important}.appointment-details-modal .past-appointment-notice{align-items:center;background-color:#fef3c7!important;border:1px solid #f59e0b!important;border-radius:8px!important;display:flex;gap:8px;margin-top:15px!important;padding:12px!important}.appointment-details-modal .popup-actions{background-color:#f9fafb;border-top:2px solid #e5e7eb;display:flex;flex-shrink:0;gap:10px;padding:15px 20px}.appointment-details-modal .popup-action{align-items:center;border:none;border-radius:10px;cursor:pointer;display:flex;flex:1 1;font-size:.9rem;font-weight:600;gap:8px;justify-content:center;min-height:44px;padding:12px 20px;transition:all .2s ease}.appointment-details-modal .popup-action.danger{background-color:#fee2e2;border:1px solid #fecaca;color:#991b1b}.appointment-details-modal .popup-action.danger:active{background-color:#fecaca;transform:scale(.98)}.day-grid .details-column{display:none}}@media (max-width:480px){.appointment-details-modal .popup-header{padding:15px 15px 12px}.appointment-details-modal .popup-header h3{font-size:1.1rem}.appointment-details-modal .popup-close{font-size:1.3rem;height:32px;width:32px}.appointment-details-modal .popup-content{padding:15px}.appointment-details-modal .detail-row{padding:10px 0}.appointment-details-modal .detail-label{font-size:.8rem;min-width:85px}.appointment-details-modal .detail-value{font-size:.85rem}.appointment-details-modal .popup-action{font-size:.85rem;min-height:40px;padding:10px 16px}.floating-add-button{bottom:90px;bottom:86px;height:56px;right:20px;right:16px;width:56px}}.hour-row.unavailability-mode{transition:background-color .2s ease}.hour-row.unavailability-mode:hover{background-color:#ef44440d}.hour-row.selecting{background-color:#ef44441a;border-left:3px solid #ef4444}.day-unavailability-block.clickable:hover{backgroundColor:#ef444440!important;boxShadow:0 2px 8px #ef44444d;transform:scale(1.01)}.appointment-flow-overlay{align-items:center;animation:fadeIn .2s ease-in-out;background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.appointment-flow-container{animation:slideIn .3s ease-out;background-color:#fff;border-radius:8px;box-shadow:0 5px 15px #0003;max-height:90vh;max-width:550px;overflow-y:auto;padding:1.5rem;position:relative;width:90%}.appointment-flow-header{margin-bottom:1.5rem;text-align:center}.appointment-flow-header h2{color:#333;font-size:1.5rem;margin-bottom:1rem}.close-button{font-size:1.5rem;position:absolute;right:1rem;top:1rem}.close-button:hover{color:#333}.step-indicators{margin-bottom:1.5rem}.step-indicator,.step-indicators{align-items:center;display:flex;justify-content:center}.step-indicator{background-color:#eee;border-radius:50%;color:#666;font-weight:700;height:30px;transition:all .3s;width:30px}.step-indicator.active{background-color:#3498db;color:#fff}.step-line{background-color:#eee;flex:1 1;height:2px;max-width:60px;transition:all .3s}.step-line.active{background-color:#3498db}.appointment-flow-content{margin-bottom:1rem}.appointment-flow-content h3{color:#444;font-size:1.2rem;margin-bottom:1rem}.form-group label{color:#555;margin-bottom:.5rem}.form-control{border:1px solid #ddd;border-radius:4px;font-size:1rem;padding:.75rem;transition:border-color .2s;width:100%}.form-control:focus{border-color:#3498db;box-shadow:0 0 0 2px #3498db33;outline:none}.appointment-flow-actions{border-top:1px solid #eee;display:flex;justify-content:space-between;margin-top:1.5rem;padding-top:1rem}.btn{border:none;border-radius:4px;cursor:pointer;font-weight:500;padding:.75rem 1.5rem;transition:all .2s}.btn-outline{background-color:initial;border:1px solid #3498db;color:#3498db}.btn-outline:hover{background-color:#f0f8ff}.btn-primary{background-color:#3498db}.btn-primary:hover{background-color:#2980b9}.btn:disabled{cursor:not-allowed;opacity:.6}.error-message{background-color:#ffebee;color:#c62828;margin-bottom:1rem;padding:.75rem}.appointment-confirmation{padding:1rem 0;text-align:center}.confirmation-icon{align-items:center;background-color:#4caf50;border-radius:50%;color:#fff;display:flex;font-size:2rem;height:60px;justify-content:center;margin:0 auto 1rem;width:60px}.confirmation-details{background-color:#f9f9f9;border-radius:6px;margin:1rem 0;padding:1rem;text-align:left}.detail-row{margin-bottom:.5rem}.detail-label{font-weight:500;min-width:80px}@media (max-width:576px){.appointment-flow-container{padding:1rem;width:95%}.btn{padding:.6rem 1rem}}.custom-slot-popup-backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background-color:#0000004d;bottom:0;left:0;position:fixed;right:0;top:0;z-index:9999}.custom-slot-popup{background:#fff;border-radius:12px;box-shadow:0 8px 32px #0003;display:flex;flex-direction:column;max-height:80vh;max-width:500px;min-width:400px;overflow:hidden;position:fixed;z-index:10000}.custom-slot-popup .popup-header{align-items:center;background:#5b21b6;border-bottom:1px solid #e5e7eb;color:#fff;display:flex;justify-content:space-between;padding:20px}.custom-slot-popup .popup-header h3{color:#fff;font-size:1.25rem;font-weight:600;margin:0}.custom-slot-popup .popup-close-btn{align-items:center;background:#fff3;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:24px;height:32px;justify-content:center;transition:background .2s;width:32px}.custom-slot-popup .popup-close-btn:hover{background:#ffffff4d}.custom-slot-popup .popup-content{max-height:calc(80vh - 80px);overflow-y:auto;padding:20px}.custom-slot-popup .slot-info-section{background:#f9fafb;border-radius:8px;margin-bottom:24px;padding:16px}.custom-slot-popup .info-row{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.custom-slot-popup .info-row:last-child{margin-bottom:0}.custom-slot-popup .info-label{color:#6b7280;font-size:.9rem;font-weight:600}.custom-slot-popup .info-value{color:#1f2937;font-size:.95rem}.custom-slot-popup .info-value.badge{border-radius:12px;font-size:.85rem;font-weight:600;padding:4px 12px}.custom-slot-popup .info-value.badge.available{background:#dcfce7;color:#166534}.custom-slot-popup .info-value.badge.full{background:#fee2e2;color:#991b1b}.custom-slot-popup .visio-box{background:#ecfdf5;border:1px solid #bbf7d0;border-radius:8px;display:flex;flex-direction:column;gap:12px;padding:12px}.custom-slot-popup .visio-box .visio-title{color:#14532d;font-weight:700}.custom-slot-popup .visio-actions{align-items:center;display:flex;gap:12px}.custom-slot-popup .visio-admin-btn{background:#14532d;border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:700;padding:10px 18px}.custom-slot-popup .visio-admin-btn:hover{background:#0f3f25}.custom-slot-popup .visio-copy-btn{background:#0000;border:2px solid #bbf7d0;border-radius:8px;color:#064e3b;cursor:pointer;font-weight:600;padding:10px 14px}.custom-slot-popup .visio-copy-btn:hover{background:#dcfce7}.custom-slot-popup .bookings-section h4{color:#1f2937;font-size:1.1rem;font-weight:600;margin:0 0 16px}.custom-slot-popup .bookings-list{display:flex;flex-direction:column;gap:12px}.custom-slot-popup .booking-item{background:#fff;border:1px solid #e5e7eb;border-radius:8px;display:flex;gap:12px;padding:12px;position:relative;transition:all .2s}.custom-slot-popup .booking-item:hover{border-color:#9333ea;box-shadow:0 2px 8px #9333ea1a}.custom-slot-popup .cancel-booking-btn{align-items:center;background:#0000;border:none;border-radius:4px;color:#9ca3af;cursor:pointer;display:flex;font-size:18px;height:28px;justify-content:center;line-height:1;padding:0;position:absolute;right:8px;top:8px;transition:all .2s;width:28px}.custom-slot-popup .cancel-booking-btn:hover{background:#fee2e2;color:#dc2626}.custom-slot-popup .cancel-booking-btn:disabled{cursor:not-allowed;opacity:.5}.custom-slot-popup .booking-number{align-items:center;background:#9333ea;border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-size:.85rem;font-weight:600;height:28px;justify-content:center;width:28px}.custom-slot-popup .booking-details{display:flex;flex:1 1;flex-direction:column;gap:4px}.custom-slot-popup .booking-client{color:#1f2937;font-size:.95rem;font-weight:600}.custom-slot-popup .booking-contact{color:#6b7280;font-size:.85rem}.custom-slot-popup .booking-custom-field{color:#6b7280;display:flex;font-size:.85rem;gap:6px;padding:4px 0}.custom-slot-popup .booking-custom-field .field-label{color:#374151;font-weight:500}.custom-slot-popup .booking-custom-field .field-value{color:#6b7280}.custom-slot-popup .booking-meta{align-items:center;display:flex;gap:8px;margin-top:4px}.custom-slot-popup .status-badge{border-radius:10px;font-size:.75rem;font-weight:600;padding:2px 8px}.custom-slot-popup .status-badge.status-confirmed{background:#dcfce7;color:#166534}.custom-slot-popup .status-badge.status-pending{background:#fef3c7;color:#92400e}.custom-slot-popup .status-badge.status-completed{background:#dbeafe;color:#1e40af}.custom-slot-popup .booking-time{color:#9ca3af;font-size:.75rem}.custom-slot-popup .empty-state,.custom-slot-popup .error-state,.custom-slot-popup .loading-state{color:#6b7280;font-size:.95rem;padding:32px;text-align:center}.custom-slot-popup .error-state{color:#dc2626}.custom-slot-popup .rgpd-notice{align-items:center;background:#fef3c7;border:1px solid #fbbf24;border-radius:6px;color:#92400e;display:flex;font-size:.85rem;gap:8px;margin-top:16px;padding:12px}@media (max-width:768px){.custom-slot-popup{left:50%!important;margin-top:0!important;max-width:90vw;min-width:90vw;top:50%!important;transform:translate(-50%,-50%)!important}.custom-slot-popup .popup-content{max-height:calc(80vh - 60px)}}.calendar-container{background-color:#fff;border:1px solid #eaeaea;border-radius:8px;box-shadow:0 1px 3px #0000001a;display:flex;flex-direction:column;height:100%;margin-bottom:30px;overflow:hidden;width:100%}.calendar-header{align-items:center;background-color:#f9fafb;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between}.calendar-title h2{color:#111827;font-size:1.5rem;font-weight:600;margin:0}.calendar-navigation{align-items:center;display:flex;gap:5px}.nav-button{background-color:#fff;border:1px solid #d1d5db;border-radius:6px;cursor:pointer;font-size:.9rem;padding:8px 12px;transition:all .2s ease}.nav-button:hover{background-color:#f3f4f6;border-color:#c3c8d0}.nav-button.today{background-color:#5b21b6;border-color:#4c1d95;color:#fff}.nav-button.today:hover{background-color:#4c1d95}.today{background-color:#ede9fe!important}.calendar-view-selector{background-color:#fff;border:1px solid #d1d5db;border-radius:6px;display:flex;overflow:hidden}.view-button{background-color:initial;border:none;cursor:pointer;font-size:.9rem;padding:8px 16px;transition:background-color .2s ease,color .2s ease}.view-button:hover{background-color:#f3f4f6}.view-button.active{background-color:#5b21b6;color:#fff}.view-button.disabled{color:#9ca3af;cursor:not-allowed;opacity:.6}.view-button.disabled,.view-button.disabled:hover{background-color:#f3f4f6}.calendar-view{background-color:#fff;flex:1 1;overflow:auto}.calendar-loading{align-items:center;display:flex;flex-direction:column;gap:15px;height:300px;justify-content:center}.loading-spinner{animation:spin 1s linear infinite;border:4px solid #f3f4f6;border-radius:50%;border-top-color:#5b21b6;height:40px;width:40px}.loading-message{align-items:center;display:flex;font-size:.9rem;height:300px;justify-content:center}.calendar-error{background-color:#fef2f2;border:1px solid #ef4444;border-radius:4px;color:#b91c1c;margin:16px;padding:16px}.inactive{background-color:#fff5f5!important;color:#9ca3af!important}.unavailable,.unavailable-day{background-color:#fecaca!important;color:#991b1b!important;position:relative}.unavailable-hour{background-color:#fee2e2!important;background-image:repeating-linear-gradient(45deg,#991b1b1a,#991b1b1a 10px,#991b1b0d 0,#991b1b0d 20px)!important;position:relative}.week-unavailability{background-color:#ff00001a;border-bottom:1px dashed #ff000080;border-top:1px dashed #ff000080;pointer-events:none;position:absolute;z-index:50}.week-unavailability .unavailability-reason{background-color:#ffffffb3;color:#991b1b;font-size:11px;max-width:100%;overflow:hidden;padding:2px 4px;text-overflow:ellipsis;white-space:nowrap}.unavailable-badge{background-color:#ef4444;border-radius:3px;color:#fff;font-size:8px;padding:2px 4px;position:absolute;right:2px;top:2px;white-space:nowrap}.day-header.inactive,.hour-row.inactive{background-color:#fff5f5!important}.week-appointment-card{align-items:center;border-radius:3px;box-shadow:0 1px 2px #0000001a;color:#fff;cursor:pointer;display:flex;font-size:.8rem;margin-bottom:2px;overflow:hidden;padding:2px 4px;text-overflow:ellipsis;white-space:nowrap}.week-appointment-card .week-appointment-time{font-weight:500;margin-right:5px}.week-appointment-card .week-appointment-client{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.week-appointment-card.status-confirmed{background-color:#8b5cf6}.week-appointment-card.status-pending{background-color:#f59e0b}.week-appointment-card.status-canceled{background-color:#93c5fd;color:#1e40af;text-decoration:line-through}.week-appointment-card.status-completed{background-color:#10b981}.week-appointment-card.status-needs-notification{animation:pulse-notification 1.5s infinite;background-color:#ef4444}@keyframes pulse-notification{0%{box-shadow:0 0 0 0 #ef4444b3}70%{box-shadow:0 0 0 5px #ef444400}to{box-shadow:0 0 0 0 #ef444400}}.appointment-tooltip{background-color:#fff;border-radius:4px;box-shadow:0 2px 10px #0003;color:#1e293b;font-size:.85rem;left:0;min-width:150px;padding:8px;position:absolute;top:100%;z-index:100}.notification-needed{background-color:#fee2e2;border-radius:3px;color:#ef4444;font-size:.8rem;font-weight:500;margin-top:4px;padding:2px 4px;text-align:center}.fix-scroll{-webkit-overflow-scrolling:touch}@media (max-width:768px){.calendar-header{align-items:flex-start;flex-direction:column;gap:10px}.calendar-navigation,.calendar-view-selector{justify-content:center;width:100%}}.week-view{background-color:#fff;border:1px solid #e5e7eb;border-radius:8px;min-height:600px;position:relative;width:100%}.week-header{background-color:#fff;border-bottom:1px solid #e5e7eb;box-shadow:0 2px 8px 0 #00000014;display:flex;position:sticky;top:0;z-index:1000}.time-column-header{flex-shrink:0;width:60px}.day-header,.time-column-header{border-right:1px solid #e5e7eb;height:80px}.day-header{background-color:#fff!important;flex:1 1;flex-direction:column;justify-content:center;min-width:120px;padding:8px 4px;text-align:center}.day-header.inactive{background-color:#e5e7eb!important;background-color:var(--inactive-bg-color,#e5e7eb)!important;color:#9ca3af!important;filter:none;opacity:1}.day-name{color:#6b7280;font-size:.9rem;margin-bottom:6px}.day-number{color:#1f2937;font-size:1.3rem;font-weight:600}.week-grid{display:flex;height:auto;min-height:780px}.time-labels{background-color:#f9fafb;border-right:1px solid #e5e7eb;display:flex;flex-direction:column;flex-shrink:0;width:60px}.hour-label{align-items:flex-start;border-bottom:1px solid #e5e7eb;color:#111827;display:flex;font-size:.85rem;font-weight:500;height:60px;justify-content:flex-end;min-height:60px;padding-right:8px;padding-top:2px;text-align:right}.hour-label span{background-color:#f9fafb;border-radius:2px;padding:0 3px;position:relative;top:-8px;z-index:2}.day-column{background-color:#fff!important;border-right:1px solid #e5e7eb;flex:1 1;min-width:120px;overflow:visible!important;position:relative!important}.day-column:last-child{border-right:none}.day-header.today{background-color:#bbdefb!important;border:2px solid #2196f3;box-shadow:0 0 8px #2196f380;color:#0d47a1;position:relative;z-index:5}.day-header.today:after{background-color:#2196f3;color:#fff;content:"Aujourd'hui";font-size:10px;left:0;padding:2px;position:absolute;right:0;top:2px}.day-column.today{background-color:#e3f2fd!important;border-left:2px solid #2196f3;border-right:2px solid #2196f3}.day-column.inactive{background-color:#f3f4f6!important;background-color:var(--inactive-bg-color,#f3f4f6)!important;filter:none;opacity:1}.hour-row{border-bottom:1px solid #e5e7eb;border-radius:0!important;display:flex;flex-direction:column;height:60px;overflow:visible;position:relative}.hour-row.inactive{background-color:#f3f4f6!important;background-color:var(--inactive-bg-color,#f3f4f6)!important;filter:none;opacity:1}.time-slot{border-bottom:1px dashed #e5e7eb;border-radius:0!important;height:15px;margin:0!important;position:relative}.time-slot.inactive{background-color:#e5e7eb!important;background-color:var(--inactive-bg-color,#e5e7eb)!important;border-left:none!important;border-radius:4px!important;border-right:none!important;box-shadow:none;color:#b0b0b0!important;opacity:1;z-index:2}.time-slot.minute-00{border-bottom:1px dashed #d1d5db}.time-slot.minute-30{border-bottom:1px solid #e5e7eb}.time-slot.minute-45{border-bottom:none}.day-header.weekend{background-color:#e0e7eb!important;color:#37474f!important}.day-column.weekend{background-color:#eef2f6!important}.day-header.outside-period{background-color:#eee!important;color:#9e9e9e;opacity:.9}.day-column.outside-period{background-color:#f5f5f5!important;opacity:.9;position:relative}.day-column.outside-period:before{background-color:#ffffffb3;border-radius:4px;box-shadow:0 0 5px #0000001a;color:#757575;content:"Hors période";font-size:16px;font-weight:700;left:50%;opacity:.6;padding:5px 15px;pointer-events:none;position:absolute;top:50%;transform:translate(-50%,-50%) rotate(-30deg);white-space:nowrap;z-index:5}.day-unavailability-reason{background-color:#fee2e2;border-bottom:1px solid #fca5a5;color:#991b1b;z-index:5}.day-column.outside-fixed-period{background-color:#fff5f5!important;position:relative}.day-column.outside-fixed-period:before{background:repeating-linear-gradient(45deg,#fecaca66,#fecaca66 10px,#fca5a533 0,#fca5a533 20px)}.week-appointment{cursor:grab;transition:transform .15s ease,box-shadow .15s ease;-webkit-user-select:none;user-select:none;z-index:10!important}.week-appointment:hover{box-shadow:0 5px 10px #0003;transform:translateY(-2px)}.week-appointment.dragging{animation:pulse 1.5s infinite;box-shadow:0 8px 16px #00000040;cursor:grabbing!important;opacity:.8;outline:2px dashed #4a90e2;outline-offset:2px;z-index:1000!important}.drag-appointment-preview,.resize-appointment-preview{z-index:20!important}.drag-preview{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);border-radius:6px;box-shadow:0 5px 15px #0003;color:#333;font-size:.85rem;font-weight:500;max-width:200px;overflow:hidden;padding:8px 12px;text-overflow:ellipsis;white-space:nowrap}.drag-preview.invalid{color:#d32f2f;outline:2px dashed #ff5757}.appointment-hud{animation:fadeIn .3s ease-in-out;max-width:320px}.day-unavailability-reason{background-color:#f44336b3;font-size:12px;font-weight:500;z-index:10}.outside-fixed-period .hour-row{background-color:#f443360d}.day-column.outside-fixed-period:before{background:repeating-linear-gradient(45deg,#f443360d,#f443360d 10px,#f443361a 0,#f443361a 20px);bottom:0;content:"";left:0;pointer-events:none;position:absolute;right:0;top:0;z-index:1}.resize-handle{background-color:#0003;background-image:linear-gradient(180deg,#0000 2px,#0000001a 0,#0000 4px);background-position:50%;background-repeat:repeat-x;background-size:6px 6px;border-bottom-left-radius:4px;border-bottom-right-radius:4px;bottom:0;cursor:ns-resize;height:8px;left:0;position:absolute;right:0;transition:background-color .2s ease}.resize-handle:active,.resize-handle:hover{background-color:#4a90e266;height:10px;margin-bottom:-2px}@media (max-width:768px){.week-view{min-width:100%;overflow-x:auto}.day-column{min-width:100px}}.week-scroll-container{max-height:100vh;min-height:400px;overflow-y:hidden;position:relative;z-index:0}body.calendar-resizing{overscroll-behavior:contain!important;touch-action:none!important}.time-slot.unavailability-mode{transition:background-color .2s ease}.time-slot.unavailability-mode:hover{background-color:#ef44440d}.time-slot.selecting{background-color:#ef44441a}.week-unavailability-block:hover{background-color:#ef444440!important;box-shadow:0 2px 8px #ef44444d;transform:scale(1.01)}.unavailability-mode-toggle:hover{box-shadow:0 2px 6px #0000001a;transform:translateY(-1px)}.unavailability-mode-toggle.active{animation:pulse 2s ease-in-out infinite}:root{--inactive-bg-color:#e0e7ef;--unavailable-bg-color:#0ea5e940}.day-column.inactive,.day-column.partially-inactive .hour-row.inactive,.day-column.partially-inactive .time-slot.inactive,.day-header.inactive,.hour-row.inactive,.time-slot.inactive,div.day-column.inactive,div.day-header.inactive,div.hour-row.inactive,div.time-slot.inactive,html body .week-view .week-grid .day-column.inactive,html body .week-view .week-header .day-header.inactive{background-color:#e0e7ef!important;background-color:var(--inactive-bg-color)!important}.day-column.inactive .hour-row.unavailable-hour,.day-column.unavailable-day,.day-column.unavailable-day .hour-row,.day-column.unavailable-day .time-slot,.day-header.unavailable,.hour-row.inactive.unavailable-hour,.hour-row.unavailable-hour,.week-unavailability{background-color:#0ea5e940!important;background-color:var(--unavailable-bg-color)!important;border-color:#0ea5e933!important;z-index:75!important}.day-column.unavailable-day.inactive,.day-header.unavailable.inactive{background-color:#0ea5e940!important;background-color:var(--unavailable-bg-color)!important;border-color:#0ea5e933!important}.day-header.unavailable-day:after,.day-header.unavailable:after{background-color:#ffffffb3;border-radius:3px;color:#0369a1;content:attr(data-reason);font-size:10px;font-weight:700;left:0;padding:2px 0;position:absolute;right:0;text-align:center;top:5px;z-index:80!important}.unavailability-reason{background-color:#ffffffb3!important;color:#0369a1!important;font-weight:700!important;margin-top:5px!important;overflow:hidden!important;padding:2px 5px!important;text-overflow:ellipsis!important;white-space:nowrap!important}.unavailability-reason,.unavailable-badge{border-radius:3px!important;box-shadow:0 1px 2px #0000001a!important;text-align:center!important}.unavailable-badge{background-color:#0ea5e9b3!important;clear:both!important;color:#fff!important;display:block!important;font-size:.7rem!important;margin:2px auto!important;padding:2px 4px!important;width:fit-content!important}.day-unavailability-reason{background-color:#3b82f6b3;color:#fff;font-size:.8rem;font-weight:700;left:0;padding:4px;position:absolute;right:0;text-align:center;top:0;z-index:60}.day-header .day-name,.day-header .day-number,.day-header .unavailable-badge{clear:both!important;display:block!important;margin:2px 0!important;text-align:center!important;width:100%!important}.appointment-details-popup{animation:fadeIn .3s ease;background-color:#fff;border-radius:8px;box-shadow:0 2px 20px #00000026;margin:0 auto;max-width:550px;overflow:hidden;width:100%}@keyframes fadeIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.popup-header{align-items:center;background-color:#f8f9fa;border-bottom:1px solid #eaeaea;display:flex;justify-content:space-between;padding:15px 20px}.popup-header h3{color:#333;font-size:18px;font-weight:600;margin:0}.popup-close{background:none;border:none;color:#888;cursor:pointer;font-size:24px;line-height:1;margin-right:-5px;padding:0;transition:color .2s}.popup-close:hover{color:#333}.popup-content{max-height:60vh;overflow-y:auto;padding:20px}.detail-row{align-items:flex-start;display:flex;flex-direction:row;margin-bottom:15px}.detail-row:last-child{margin-bottom:0}.detail-label{color:#555;flex-shrink:0;font-weight:600;width:130px}.detail-value{color:#333;flex:1 1;word-break:break-word}.detail-row.notes .detail-value{line-height:1.4;white-space:pre-line}.status-confirmed{color:#28a745}.status-pending{color:#ffc107}.status-canceled{color:#dc3545}.status-completed{color:#17a2b8}.detail-row.calendar-selector .calendar-field{display:flex;flex:1 1;gap:10px}.detail-row.calendar-selector select{background-color:#fff;border:1px solid #ccc;border-radius:4px;flex:1 1;font-size:14px;padding:8px 10px}.calendar-change-btn{background-color:#4a90e2;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;padding:6px 12px;transition:background-color .2s}.calendar-change-btn:hover{background-color:#3a7abe}.calendar-change-btn:disabled{background-color:#95b9e2;cursor:not-allowed}.popup-actions{background-color:#f8f9fa;border-top:1px solid #eaeaea;display:flex;gap:10px;justify-content:flex-end;padding:15px 20px}.popup-action{border:none;border-radius:4px;cursor:pointer;font-size:14px;font-weight:500;padding:8px 16px;transition:all .2s}.popup-action.secondary{background-color:#e9ecef;color:#495057}.popup-action.secondary:hover{background-color:#dde2e6}.popup-action.danger{background-color:#dc3545;color:#fff}.popup-action.danger:hover{background-color:#c82333}.popup-action.primary{background-color:#5b21b6;color:#fff;font-size:14px;margin-top:10px;padding:10px 15px;text-align:center;width:100%}.popup-action.primary:hover{background-color:#4c1d95}.popup-action.primary:disabled{background-color:#9f7aea;cursor:not-allowed}@media (max-width:768px){.appointment-details-popup{margin:0 auto;max-width:95%}.detail-row{flex-direction:column}.detail-label{margin-bottom:5px;width:100%}.detail-row.calendar-selector .calendar-field,.popup-actions{flex-direction:column}.popup-action{width:100%}}.week-view-mobile-swiper{height:100%;overflow:hidden;width:100%}.week-view-mobile-swiper .swiper-slide{display:flex;flex-direction:column;height:auto}.week-view-mobile-swiper .swiper-pagination{bottom:10px}.week-view-mobile-swiper .swiper-pagination-bullet{background:#667eea}.week-view-mobile-swiper .swiper-button-next,.week-view-mobile-swiper .swiper-button-prev{color:#667eea}.mobile-calendar-view{background:#f8f9fa;display:flex;flex-direction:column;overflow:hidden}.mobile-calendar-header{align-items:center;background:#fff;border-bottom:1px solid #e5e7eb;box-shadow:0 2px 4px #0000000d;display:flex;justify-content:space-between;padding:16px}.mobile-calendar-header .nav-btn{align-items:center;background:#f3f4f6;border:none;border-radius:50%;color:#667eea;cursor:pointer;display:flex;font-size:24px;height:44px;justify-content:center;transition:all .2s;width:44px}.mobile-calendar-header .nav-btn:active{background:#e5e7eb;transform:scale(.95)}.mobile-floating-add-button{-webkit-tap-highlight-color:transparent;align-items:center;background-color:#5b21b6;border:none;border-radius:50%;bottom:96px;box-shadow:0 4px 12px #5b21b640;color:#fff;cursor:pointer;display:flex;font-size:28px;font-weight:300;height:56px;justify-content:center;padding:0;position:fixed;right:16px;transition:transform .2s,background-color .2s;width:56px;z-index:900}.mobile-floating-add-button:active{background-color:#4c1d95;transform:scale(.95)}.mobile-calendar-header .date-display{flex:1 1;padding:0 8px;text-align:center}.mobile-calendar-header .date-main{color:#1f2937;font-size:16px;font-weight:600;text-transform:capitalize}.mobile-calendar-header .today-badge{background:#667eea;border-radius:12px;color:#fff;display:inline-block;font-size:11px;font-weight:600;margin-top:4px;padding:2px 8px;text-transform:uppercase}.mobile-timeline{-webkit-overflow-scrolling:touch;background:#fff;flex:1 1;position:relative}.time-grid{min-height:720px;padding:0 16px;position:relative}.time-row{align-items:flex-start;border-bottom:1px solid #f3f4f6;display:flex;height:60px;position:relative}.time-label{color:#9ca3af;flex-shrink:0;font-size:12px;font-weight:500;padding-top:4px;width:60px}.time-line{background:#e5e7eb;flex:1 1;height:1px;margin-top:8px}.now-line{height:2px;left:0;pointer-events:none;right:0}.now-line,.now-line:before{background:#ef4444;position:absolute}.now-line:before{border:2px solid #fff;border-radius:50%;content:"";height:8px;left:76px;top:-1px;width:8px}.now-label{background:#ef4444;border-radius:4px;color:#fff;font-size:11px;font-weight:600;left:16px;padding:2px 6px;position:absolute;top:-10px}.mobile-slot{background:linear-gradient(135deg,#e0e7ff,#c7d2fe);border-left:4px solid #667eea;border-radius:8px;box-shadow:0 2px 4px #00000014;left:76px;padding:8px 12px;position:absolute;right:16px}.mobile-slot .slot-title{color:#4338ca;font-size:13px;font-weight:600;margin-bottom:4px}.mobile-slot .slot-time{color:#6366f1;font-size:11px;margin-bottom:4px}.mobile-slot .slot-places{color:#818cf8;font-size:10px;font-weight:500}.mobile-appointment{background:#fff;border-left:4px solid #10b981;border-radius:8px;box-shadow:0 2px 8px #0000001a;cursor:pointer;left:76px;padding:8px 12px;position:absolute;right:16px;transition:transform .15s,box-shadow .15s}.mobile-appointment:active{box-shadow:0 1px 4px #00000026;transform:scale(.98)}.mobile-appointment.confirmed,.mobile-appointment.status-confirmed{background:#f0fdf4;border-left-color:#10b981}.mobile-appointment.pending,.mobile-appointment.status-pending{background:#fffbeb;border-left-color:#f59e0b}.mobile-appointment.cancelled,.mobile-appointment.status-canceled,.mobile-appointment.status-cancelled{background:#fef2f2;border-left-color:#ef4444;opacity:.6}.mobile-appointment.calendar-colored{background-color:var(--calendar-color)!important;border-left-color:var(--calendar-color)!important}.mobile-appointment.calendar-colored,.mobile-appointment.calendar-colored .appointment-client,.mobile-appointment.calendar-colored .appointment-time,.mobile-appointment.calendar-colored .appointment-type{color:#fff!important;color:var(--text-color,#fff)!important}.mobile-appointment .appointment-time{color:#059669;font-size:12px;font-weight:600;margin-bottom:4px}.mobile-appointment.pending .appointment-time{color:#d97706}.mobile-appointment.cancelled .appointment-time{color:#dc2626;text-decoration:line-through}.mobile-appointment .appointment-client{color:#1f2937;font-size:13px;font-weight:500;margin-bottom:2px}.mobile-appointment .appointment-type{color:#6b7280;font-size:11px;margin-top:4px}.no-appointments{color:#9ca3af;left:50%;position:absolute;text-align:center;top:50%;transform:translate(-50%,-50%)}.no-appointments-icon{font-size:48px;margin-bottom:12px;opacity:.5}.no-appointments-text{font-size:14px;font-weight:500}.mobile-timeline::-webkit-scrollbar{width:4px}.mobile-timeline::-webkit-scrollbar-track{background:#f3f4f6}.mobile-timeline::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:2px}.mobile-timeline::-webkit-scrollbar-thumb:hover{background:#9ca3af}.calendar-config-container{max-width:100%;padding:0;width:100%}.calendar-config-tabs{border-bottom:1px solid #ddd;display:flex;flex-wrap:wrap;gap:5px;margin-bottom:20px}.tab-button{background:none;border:none;color:#666;cursor:pointer;font-size:14px;padding:10px 15px;position:relative;transition:all .3s ease;white-space:nowrap}.tab-button.active{color:#4a90e2;font-weight:500}.tab-button.active:after{background-color:#4a90e2;bottom:-1px;content:"";height:3px;left:0;position:absolute;right:0}.tab-button:hover{color:#4a90e2}.tab-content{display:none;padding:10px 0}.tab-content.active{display:block}.form-group.half{flex:1 1}.form-group input[type=number]{background-color:#fff;border:1px solid #ddd;border-radius:4px;font-size:14px;padding:10px}.form-group input[type=number]:focus{border-color:#4a90e2;box-shadow:0 0 0 2px #4a90e233;outline:none}.schedule-days{display:flex;flex-direction:column;gap:15px;margin-bottom:20px}.day-schedule{background-color:#fff;border:1px solid #e5e7eb;border-radius:4px;overflow:hidden}.day-schedule.inactive{background-color:#f9fafb}.day-toggle input[type=checkbox]{cursor:pointer;height:18px;width:18px}.day-toggle label{cursor:pointer;font-size:15px}.add-slot-btn{background:none;color:#2563eb;padding:5px 10px}.add-slot-btn:before{content:"+";font-size:16px;font-weight:700;margin-right:4px}.add-slot-btn:hover{text-decoration:underline}.add-slot-btn:disabled{color:#94a3b8;cursor:not-allowed}.time-slots{padding:0}.no-slots{background-color:#f8fafc;color:#64748b;padding:15px;text-align:center}.add-first-slot{background-color:#2563eb;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;margin-top:10px;padding:8px 12px}.add-first-slot:hover{background-color:#1d4ed8}.schedule-days-summary{background-color:#f9fafb;border:1px solid #e5e7eb}.schedule-days-summary h3{border-bottom:1px solid #e5e7eb;color:#111827}.days-overview{grid-gap:12px;gap:12px;grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.day-overview{border:1px solid #e5e7eb}.day-overview.active{background-color:#f0f9ff;border-color:#bae6fd}.day-overview.inactive{background-color:#f9fafb;border-color:#e5e7eb}.day-name{color:#111827}.day-overview.inactive .day-name{color:#6b7280}.day-status{font-size:12px}.day-status.inactive{color:#9ca3af}.day-disabled-message{background-color:#f9fafb;margin:0;padding:15px}.schedule-tools{border:1px solid #e0e0e0;border-radius:8px;margin:20px 0;overflow:hidden}.schedule-tools summary{background-color:#f5f9ff;color:#333;cursor:pointer;font-weight:500;list-style:none;padding:12px 15px;position:relative;-webkit-user-select:none;user-select:none}.schedule-tools summary::-webkit-details-marker{display:none}.schedule-tools summary:after{content:"▼";font-size:12px;position:absolute;right:15px;top:50%;transform:translateY(-50%);transition:transform .3s}.schedule-tools[open] summary:after{transform:translateY(-50%) rotate(180deg)}.copy-schedule{background-color:#fcfdff;padding:20px}.copy-schedule h4{border-bottom:1px solid #e0e0e0;color:#333;font-size:16px;margin-bottom:20px;margin-top:0;padding-bottom:10px}.copy-form{display:flex;flex-direction:column;gap:20px}.copy-form .form-group{margin-bottom:0}.copy-form label{color:#555;display:block;font-weight:500;margin-bottom:8px}.copy-form select{background-color:#fff;border:1px solid #ddd;border-radius:4px;color:#333;font-size:14px;padding:10px;width:100%}.copy-to-days{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));margin-top:10px}.checkbox-label{align-items:center;color:#555;display:flex;font-size:14px;gap:8px}.checkbox-label input[type=checkbox]{border:2px solid #4a90e2;border-radius:3px;cursor:pointer;height:16px;width:16px}.copy-schedule-btn{align-self:flex-start;background-color:#4a90e2;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;margin-top:15px;padding:10px 20px;transition:background-color .2s}.copy-schedule-btn:hover{background-color:#3a80d2}.form-actions{border-top:1px solid #e0e0e0;gap:15px}.btn-cancel,.btn-save{border-radius:4px;cursor:pointer;font-size:14px;font-weight:500;padding:10px 20px;transition:all .2s}.btn-cancel{background-color:#f5f5f5;border:1px solid #ddd;color:#666}.btn-cancel:hover{background-color:#eaeaea}.schedule-days-summary{background-color:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;margin-bottom:30px;padding:15px}.schedule-days-summary h3{border-bottom:1px solid #e2e8f0;color:#334155;font-size:16px;margin-bottom:15px;margin-top:0;padding-bottom:8px}.days-overview{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.day-overview{border:1px solid #0000;border-radius:6px;display:flex;flex-direction:column;padding:10px;transition:all .2s}.day-overview.active{background-color:#eef2ff;border-color:#c7d2fe}.day-overview.inactive{background-color:#f1f5f9;border-color:#e2e8f0;opacity:.7}.day-overview:hover{transform:translateY(-2px)}.day-name{color:#334155;font-size:14px;font-weight:600;margin-bottom:4px}.day-overview.inactive .day-name{color:#64748b}.day-status{font-size:13px;line-height:1.4}.day-status.active{color:#3b82f6}.day-status.inactive{color:#94a3b8;font-style:italic}.time-slot-summary{background-color:#dbeafe;border-radius:4px;display:inline-block;font-size:12px;margin:2px;padding:2px 6px;white-space:nowrap}.day-disabled-message{background-color:#f8fafc;border:1px dashed #e2e8f0;border-radius:6px;color:#64748b;margin:15px}.form-group label{color:#334155;margin-bottom:8px}.form-group input[type=number],.form-group select{border:1px solid #e2e8f0;border-radius:6px;color:#1e293b;font-size:14px;padding:10px 12px;transition:all .2s;width:100%}.form-group input[type=number]:focus,.form-group select:focus{border-color:#4a90e2;box-shadow:0 0 0 3px #4a90e233;outline:none}.form-group select{-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a0aec0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;background-size:16px;padding-right:30px}.helper-text{color:#64748b;display:block}@media (max-width:768px){.calendar-config-tabs{overflow-x:auto;white-space:nowrap}.form-row{flex-direction:column;gap:10px}.copy-to-days{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}}.day-schedule-card{background-color:#fff;border:1px solid #e5e7eb;border-radius:4px;margin-bottom:16px;overflow:hidden}.day-header{background-color:#f9fafb;justify-content:space-between;padding:10px 15px}.day-header,.day-toggle{align-items:center;display:flex}.day-toggle input[type=checkbox]{height:16px;margin-right:10px;width:16px}.day-toggle label{color:#333;font-size:16px;font-weight:500}.time-slots-table{border-collapse:collapse}.time-slots-table thead{background-color:#f1f1f1}.time-slots-table th{background-color:#eee;border-bottom:1px solid #ddd;color:#333;font-weight:500;padding:10px;text-align:left}.time-slots-table tbody tr:nth-child(2n){background-color:#f9f9f9}.time-slots-table td{border-bottom:1px solid #eee;padding:10px;vertical-align:middle}.duration-cell{color:#555;font-weight:500}.time-select{-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a0aec0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 8px center;background-repeat:no-repeat;background-size:14px;border:1px solid #ddd;color:#333;font-size:14px;padding:6px 28px 6px 10px;width:100%}.remove-slot-btn{background:none;font-size:13px;padding:5px 8px;text-decoration:underline}.remove-slot-btn:hover{color:#c53030}.no-slots-message{color:#666;font-style:italic;padding:20px 0;text-align:center}.new-slot-controls{align-items:center;background-color:#f9fafb;border-top:1px solid #e5e7eb;display:flex;gap:10px;padding:15px}.new-slot-label{color:#4b5563;font-size:14px}.new-end-time,.new-start-time{-webkit-appearance:none;appearance:none;background-color:#fff;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a0aec0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 8px center;background-repeat:no-repeat;background-size:14px;border:1px solid #ddd;border-radius:4px;color:#333;font-size:14px;padding:6px 28px 6px 10px}.add-slot-btn{background-color:#3b82f6;font-size:14px;padding:6px 12px;transition:background-color .2s}.add-slot-btn:hover{background-color:#2563eb}.slot-actions{justify-content:flex-end}.edit-slot-btn,.remove-slot-btn{align-items:center;background-color:initial;border:1px solid #e2e8f0;border-radius:4px;cursor:pointer;display:flex;font-size:12px;gap:4px;padding:4px 8px;transition:all .2s}.edit-slot-btn{color:#4a5568}.edit-slot-btn:hover{background-color:#edf2f7;border-color:#cbd5e0}.remove-slot-btn{color:#e53e3e}.remove-slot-btn:hover{background-color:#fed7d7;border-color:#fc8181}.day-disabled-message{color:#6b7280;font-style:italic;padding:20px;text-align:center}.custom-fields-section{margin-top:20px}.btn-add-field{background-color:#4a90e2;border:none;border-radius:4px;color:#fff;cursor:pointer;margin-bottom:20px;padding:8px 16px}.btn-add-field:hover{background-color:#3a80d2}.custom-field-form{background-color:#f9f9f9;border:1px solid #ddd;border-radius:6px;margin-bottom:20px;padding:20px}.custom-fields-list{display:flex;flex-direction:column;gap:10px}.custom-field-item{align-items:center;background-color:#f5f5f5;border:1px solid #e0e0e0;border-radius:4px;display:flex;justify-content:space-between;padding:10px}.field-info{flex:1 1}.field-actions{display:flex;gap:8px}.btn-delete,.btn-edit{border:none;border-radius:4px;cursor:pointer;font-size:12px;padding:5px 10px}.btn-edit{background-color:#4a90e2;color:#fff}.btn-edit:hover{background-color:#3a80d2}.btn-delete{background-color:#f44336;color:#fff}.btn-delete:hover{background-color:#d32f2f}@media (max-width:768px){.custom-field-item{align-items:flex-start;flex-direction:column;gap:10px}.field-actions{justify-content:flex-end;width:100%}}.group-slots-section{margin:10px 0 24px}.group-slots-table-wrapper{display:flex;justify-content:center;padding:8px 0 20px}.group-slots-table{background:#fff;border-collapse:collapse;border-radius:8px;box-shadow:0 2px 6px #1018280a;max-width:980px;overflow:hidden;width:100%}.group-slots-table thead th{background:#fafafa;border-bottom:1px solid #e6e6e6;color:#111827;font-weight:600;padding:12px 14px;text-align:left}.group-slots-table tbody tr:nth-child(2n){background:#fbfbfb}.group-slots-table td{border-bottom:1px solid #f1f1f1;color:#374151;padding:10px 14px;vertical-align:middle}.group-slots-table .btn-delete,.group-slots-table .btn-edit{font-size:13px;padding:6px 10px}@media (max-width:720px){.group-slots-table-wrapper{padding:0 8px}.group-slots-table{display:block}.group-slots-table thead{display:none}.group-slots-table tbody tr{background:#fff;border:1px solid #eaeaea;border-radius:8px;display:block;margin-bottom:12px;padding:10px}.group-slots-table td{border-bottom:none;display:flex;justify-content:space-between;padding:8px 6px}}.custom-slot-manager{padding:0;width:100%}.slot-manager-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px}.slot-manager-header h2{color:var(--text-primary);font-size:1.5rem;margin:0}.slot-form{margin-bottom:30px;padding:20px}.slot-form h3{color:var(--text-primary);font-size:1.25rem;margin-bottom:20px;margin-top:0}.form-row{grid-gap:15px;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:15px}.form-actions{margin-top:20px}.slots-list{grid-gap:15px;display:grid;gap:15px}.slot-card{align-items:center;border-left:4px solid var(--primary-color);display:flex;justify-content:space-between;padding:15px}.slot-card.slot-full{border-left-color:var(--danger-color);opacity:.8}.slot-info{flex:1 1}.slot-date{font-size:1.1rem;margin-bottom:5px}.slot-date strong{color:var(--text-primary);text-transform:capitalize}.slot-time{color:var(--text-secondary);font-size:1rem;margin-bottom:8px}.slot-title{color:var(--text-primary);font-weight:500;margin-bottom:5px}.slot-description{color:var(--text-secondary);font-size:.9rem;margin-bottom:10px}.slot-details{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.slot-details .text-muted{color:var(--text-muted);font-size:.85rem}.slot-actions{display:flex;gap:8px}.empty-state{color:var(--text-secondary);padding:40px 20px}.empty-state p{font-size:1rem;margin:0}@media (max-width:768px){.slot-card,.slot-manager-header{align-items:flex-start;flex-direction:column;gap:15px}.slot-actions{justify-content:flex-end;width:100%}.form-row{grid-template-columns:1fr}}@media (min-width:769px){.link-button{align-items:center;background-color:#5b21b6!important;border:none!important;border-radius:8px;color:#fff!important;cursor:pointer;display:flex;justify-content:center;margin-left:8px;padding:8px 12px;transition:all .2s}.link-button:hover{background-color:#4c1d95!important;box-shadow:0 4px 8px #5b21b64d;transform:translateY(-1px)}.calendar-nav-button.today{background-color:#5b21b6!important}.calendar-nav-button.today svg{fill:#fff!important}}@media (max-width:768px){.calendar-container{border:none;border-radius:0;box-shadow:none;display:flex;flex-direction:column;height:calc(100vh - 60px);margin-bottom:0;overflow:hidden}.calendar-header{background:linear-gradient(135deg,#f9fafb,#fff);border-bottom:2px solid #e5e7eb;box-shadow:0 2px 8px #0000000d;flex-wrap:wrap;gap:10px;justify-content:space-between!important;margin-bottom:0;margin-left:0!important;padding:12px 15px}.calendar-title-row{display:none!important}.calendar-title h2{display:none}.calendar-nav,.calendar-navigation{align-items:center!important;display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;gap:6px!important;width:100%!important}.calendar-nav-buttons{align-items:center;background:#0000;border:none;box-shadow:none;display:flex;flex:0 0 auto;gap:0;order:1;overflow:visible;padding:0;position:relative;top:5px}.calendar-nav-button:first-child,.calendar-nav-button:last-child{display:none!important}.calendar-nav-button,.nav-button{align-items:center;background-color:initial;border:none;border-radius:8px;cursor:pointer;display:flex;flex:0 0 auto;font-size:0;font-weight:600;height:40px;justify-content:center;min-height:40px;min-width:40px;padding:0;transition:all .2s cubic-bezier(.4,0,.2,1);width:40px}.calendar-nav-button:active,.nav-button:active{transform:scale(.95)}.calendar-nav-button.today,.nav-button.today{align-items:center!important;background:#5b21b6!important;border:none!important;border-radius:8px!important;box-shadow:0 2px 4px #5b21b633!important;color:#fff!important;display:flex!important;flex:0 0 auto!important;height:40px!important;justify-content:center!important;min-height:40px!important;min-width:40px!important;padding:0!important;width:40px!important}.calendar-nav-button.today svg{fill:#fff!important;height:22px!important;width:22px!important}.calendar-nav-button.today:active,.nav-button.today:active{background:#4c1d95;transform:scale(.95)}.calendar-view-selector{display:none!important}.view-button{align-items:center;background-color:initial;border:none;border-radius:0;border-right:1px solid #e5e7eb;color:#374151;cursor:pointer;display:flex;flex:1 1;font-size:.9rem;font-weight:600;justify-content:center;min-height:44px;padding:10px 16px;transition:all .2s cubic-bezier(.4,0,.2,1);white-space:nowrap}.view-button:last-child{border-right:none}.view-button:active{background-color:#f3f4f6}.view-button.active{background:linear-gradient(135deg,#5b21b6,#7c3aed);box-shadow:none;color:#fff}.view-button.active:active{background:linear-gradient(135deg,#4c1d95,#6d28d9)}.calendar-selector{flex:0 0 auto;margin-bottom:10px;margin-right:0;max-width:100%;min-width:100%}.calendar-selector>label{color:#374151;display:inline-block;font-size:.9rem;font-weight:700;margin-bottom:0!important;margin-right:10px;white-space:nowrap}.calendar-selector>div{align-items:center!important;display:inline-flex!important;flex:1 1;flex-direction:row!important;gap:0!important;min-width:0}.calendar-selector .select-wrapper{flex:1 1!important;min-width:0}.calendar-selector select{border:1px solid #d1d5db;border-radius:8px;box-shadow:0 1px 3px #0000001a;font-size:.85rem;font-weight:600;min-height:38px;padding:8px 10px;width:100%}.calendar-actions{align-items:center;display:flex;flex:1 1;gap:6px;justify-content:flex-end;order:2}.config-button,.link-button,.print-button{align-items:center;border-radius:8px;box-shadow:0 2px 4px #5b21b633;display:flex;font-size:0;font-weight:600;height:40px!important;justify-content:center;min-height:40px;min-width:40px;padding:0;transition:all .2s ease;width:40px!important}.export-dropdown button .button-text,.print-button .button-text{display:none}.config-button i,.link-button svg,.print-button i{font-size:22px!important;height:22px!important;margin-right:0;width:22px!important}.print-button{background-color:#fff;border:1px solid #d1d5db;color:#374151}.config-button,.link-button{background-color:#5b21b6!important;border:none!important;color:#fff!important}.config-button i,.link-button svg{stroke:#fff!important;color:#fff!important}.config-button:active,.print-button:active{background-color:#f3f4f6;transform:scale(.95)}.calendar-content{-webkit-overflow-scrolling:touch;background-color:#fff;flex:1 1;overflow-x:hidden;overflow-y:auto}.realtime-notification{border-radius:8px;box-shadow:0 2px 8px #0000001a;font-size:.9rem;margin:10px 15px;padding:12px 15px}.realtime-notification .notification-icon{font-size:1.2rem}.realtime-notification .notification-close{font-size:1.1rem;min-height:32px;min-width:32px}.calendar-error,.calendar-loading{padding:40px 20px;text-align:center}.loading-spinner{height:50px;margin:0 auto 15px;width:50px}.calendar-error button{background:linear-gradient(135deg,#5b21b6,#7c3aed);border:none;border-radius:8px;box-shadow:0 2px 8px #5b21b64d;color:#fff;font-size:.95rem;font-weight:600;min-height:38px;padding:10px 20px}.week-view .week-grid{display:none}.week-view-mobile-swiper{display:block!important;height:100%;overflow:hidden}.week-swiper-container{height:100%;overflow:hidden;position:relative}.week-mobile-day-header{align-items:center;background:linear-gradient(135deg,#f9fafb,#fff);border-bottom:2px solid #e5e7eb;box-shadow:0 2px 8px #0000000d;display:flex;justify-content:space-between;padding:15px 20px;position:sticky;top:0;z-index:50}.week-mobile-day-title{flex:1 1;text-align:center}.week-mobile-day-title h3{color:#111827;font-size:1.1rem;font-weight:700;margin:0 0 4px}.week-mobile-day-title .day-date{color:#6b7280;font-size:.85rem;font-weight:500}.week-mobile-nav-button{align-items:center;background:linear-gradient(135deg,#5b21b6,#7c3aed);border:none;border-radius:50%;box-shadow:0 2px 8px #5b21b64d;color:#fff;cursor:pointer;display:flex;font-size:1.1rem;height:40px;justify-content:center;transition:all .2s cubic-bezier(.4,0,.2,1);width:40px}.week-mobile-nav-button:active{box-shadow:0 1px 4px #5b21b666;transform:scale(.92)}.week-mobile-nav-button:disabled{cursor:not-allowed;opacity:.3}.week-mobile-day-indicators{background-color:#f9fafb;border-bottom:1px solid #e5e7eb;display:flex;gap:8px;justify-content:center;padding:12px 0}.day-indicator-dot{background-color:#d1d5db;border-radius:50%;height:8px;transition:all .3s ease;width:8px}.day-indicator-dot.active{background:linear-gradient(135deg,#5b21b6,#7c3aed);border-radius:4px;box-shadow:0 2px 4px #5b21b64d;width:24px}.day-indicator-dot.has-appointments{background-color:#7c3aed}.day-indicator-dot.has-appointments.active{background:linear-gradient(135deg,#5b21b6,#7c3aed)}.week-mobile-day-content{-webkit-overflow-scrolling:touch;height:calc(100% - 160px);overflow-y:auto;padding:15px}.week-swiper-slide{transition:transform .3s cubic-bezier(.4,0,.2,1)}.week-swiper-slide.swipe-left{transform:translateX(-100%)}.week-swiper-slide.swipe-right{transform:translateX(100%)}.swipe-hint{animation:swipeHintFadeIn .5s ease 2s forwards,swipeHintFadeOut .5s ease 5s forwards;background:#5b21b6e6;border-radius:20px;bottom:20px;color:#fff;font-size:.75rem;font-weight:600;left:50%;opacity:0;padding:8px 16px;pointer-events:none;position:absolute;transform:translateX(-50%);z-index:100}@keyframes swipeHintFadeIn{0%{opacity:0;transform:translateX(-50%) translateY(10px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}@keyframes swipeHintFadeOut{0%{opacity:1}to{opacity:0}}.day-view{height:100%;padding:0}.day-view-header{background-color:#fff;border-bottom:2px solid #e5e7eb;box-shadow:0 2px 8px #0000000d;padding:15px 20px;position:sticky;top:0;z-index:50}.day-view-content{-webkit-overflow-scrolling:touch;overflow-y:auto;padding:0 15px 15px}.time-slot{border-radius:8px;margin-bottom:8px;min-height:60px;padding:8px 12px}.time-slot-label{font-size:.85rem;font-weight:600;min-width:60px}.appointment-card{background-color:#fff;border-left:4px solid #5b21b6;border-radius:8px;box-shadow:0 2px 8px #00000014;margin-bottom:10px;padding:12px 15px;transition:all .2s ease}.appointment-card:active{box-shadow:0 1px 4px #0000001a;transform:scale(.98)}.appointment-time{color:#5b21b6;font-size:.9rem;font-weight:700;margin-bottom:6px}.appointment-client{color:#111827;font-size:1rem;font-weight:700;margin-bottom:4px}.appointment-service{color:#6b7280;font-size:.85rem;font-weight:500}.month-view{padding:10px}.month-grid{gap:4px}.month-day{border-radius:6px;min-height:60px;padding:6px}.month-day-number{font-size:.85rem;font-weight:700}.month-appointment-indicator{border-radius:50%;height:6px;margin:2px;width:6px}.appointment-details-modal,.calendar-config-modal{border-radius:0;bottom:0;left:0;max-height:100%;max-width:100%;overflow-y:auto;position:fixed;right:0;top:0;z-index:1000}.modal-header{background-color:#fff;border-bottom:2px solid #e5e7eb;box-shadow:0 2px 8px #0000000d;padding:15px 20px;position:sticky;top:0;z-index:10}.modal-close-button{font-size:1.4rem;min-height:40px;min-width:40px}.modal-content{padding:20px}.modal-footer{background-color:#fff;border-top:2px solid #e5e7eb;bottom:0;box-shadow:0 -2px 8px #0000000d;padding:15px 20px;position:sticky}.modal-button{border-radius:8px;font-size:.95rem;font-weight:600;margin-bottom:10px;min-height:38px;padding:10px 20px;width:100%}.modal-button.primary{background:linear-gradient(135deg,#5b21b6,#7c3aed);border:none;box-shadow:0 2px 8px #5b21b64d;color:#fff}.export-dropdown-menu{background:#fff;border-radius:12px;box-shadow:0 8px 24px #00000026;left:50%;min-width:250px;padding:15px;position:fixed;top:50%;transform:translate(-50%,-50%);z-index:200}.export-dropdown-menu button{align-items:center;background-color:#fff;border:1px solid #e5e7eb;border-radius:8px;color:#374151;display:flex;font-size:.9rem;font-weight:600;gap:12px;margin-bottom:8px;min-height:42px;padding:10px 16px;text-align:left;transition:all .2s ease;width:100%}.export-dropdown-menu button:active{background-color:#f3f4f6;transform:scale(.97)}.export-dropdown-menu button i{color:#5b21b6;font-size:1.2rem}.touchable{-webkit-tap-highlight-color:rgba(91,33,182,.1);touch-action:manipulation;user-select:none;-webkit-user-select:none}.no-drag{-webkit-user-drag:none;-moz-user-drag:none}.calendar-content::-webkit-scrollbar,.day-view-content::-webkit-scrollbar,.week-mobile-day-content::-webkit-scrollbar{width:6px}.calendar-content::-webkit-scrollbar-track,.day-view-content::-webkit-scrollbar-track,.week-mobile-day-content::-webkit-scrollbar-track{background:#f3f4f6}.calendar-content::-webkit-scrollbar-thumb,.day-view-content::-webkit-scrollbar-thumb,.week-mobile-day-content::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:3px}.calendar-content::-webkit-scrollbar-thumb:hover,.day-view-content::-webkit-scrollbar-thumb:hover,.week-mobile-day-content::-webkit-scrollbar-thumb:hover{background:#9ca3af}}@media (max-width:480px){.calendar-header{gap:8px;padding:10px 12px}.calendar-title h2{font-size:1rem;max-width:55%}.calendar-nav-button,.nav-button{font-size:.85rem;min-height:36px;min-width:36px;padding:6px 10px}.calendar-nav-button:not(.today){width:42px}.view-button{font-size:.75rem;min-height:36px;padding:6px 8px}.calendar-selector{max-width:100%;min-width:100%}.calendar-selector>label{font-size:.85rem}.calendar-selector select{font-size:.8rem;min-height:36px;padding:7px 9px}.week-mobile-day-header{padding:12px 15px}.week-mobile-day-title h3{font-size:1rem}.week-mobile-day-title .day-date{font-size:.8rem}.week-mobile-nav-button{font-size:1rem;height:36px;width:36px}.appointment-card{padding:10px 12px}.modal-button{font-size:.9rem;min-height:36px;padding:8px 18px}}@media (max-width:768px) and (orientation:landscape){.calendar-container{height:100vh}.calendar-header{padding:8px 12px}.calendar-title h2{font-size:.95rem}.nav-button,.view-button{font-size:.75rem;min-height:36px;padding:6px 10px}.week-mobile-day-header{padding:10px 15px}.week-mobile-day-title h3{font-size:.95rem}}@media (prefers-reduced-motion:reduce){.appointment-card,.modal-button,.nav-button,.view-button,.week-swiper-slide{transition:none}}@media (max-width:480px){.calendar-nav-buttons,.calendar-view-selector{flex:1 1;min-width:0}.calendar-nav-button,.nav-button{font-size:.85rem;min-width:40px;padding:8px 10px}.calendar-nav-button.today,.nav-button.today{background:#5b21b6!important;font-size:0!important;height:40px!important;min-width:40px!important;padding:0!important;width:40px!important}.calendar-nav-button.today svg{fill:#fff!important;height:22px!important;width:22px!important}.view-button{font-size:.85rem;min-width:0;padding:8px 12px}.calendar-nav,.calendar-navigation{gap:6px!important}}button:focus-visible,select:focus-visible{outline:2px solid #5b21b6;outline-offset:2px}.calendar-container-mobile-fullscreen{background:#fff;bottom:0;height:100vh;left:0;overflow:hidden;position:fixed;right:0;top:0;width:100vw;z-index:1000}.calendar-selector{background-color:#f5f5f5;border-radius:8px;box-shadow:0 2px 5px #0000001a;min-width:200px;padding:10px;position:relative}.calendar-selector select{-webkit-appearance:none;appearance:none;background-color:#fff;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 8px center;background-repeat:no-repeat;background-size:16px;border:1px solid #ddd;border-radius:4px;cursor:pointer;font-size:14px;padding:8px 30px 8px 12px;width:100%}.calendar-selector select:focus{border-color:#4a90e2;box-shadow:0 0 0 2px #4a90e233;outline:none}.calendar-selector select:disabled{background-color:#f5f5f5;cursor:not-allowed}.calendar-selector label{color:#333;display:block;font-weight:600;margin-bottom:5px}.calendar-nav{margin-bottom:20px}.calendar-nav,.calendar-nav-buttons{align-items:center;display:flex}.calendar-nav-button{background-color:#fff;border:1px solid #ddd;border-radius:4px;cursor:pointer;margin:0 4px;padding:6px 12px;transition:all .2s ease}.calendar-nav-button:hover{background-color:#f5f5f5}.calendar-nav-button.today{background-color:#4a90e2;border-color:#4a90e2}.calendar-nav-button.today:hover{background-color:#3a80d2}.calendar-actions{align-items:center;display:flex;margin-left:15px}.export-dropdown{display:inline-block;margin-right:10px;position:relative}.export-button{align-items:center;background-color:#f0f0f0;border:1px solid #ccc;border-radius:4px;box-shadow:0 1px 3px #0000001a;color:#333;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:6px;padding:8px 12px;transition:background-color .2s}.export-button:hover{background-color:#e3e3e3}.export-button i{color:#555;font-size:12px}.export-dropdown-menu{background-color:#fff;border-radius:4px;box-shadow:0 2px 10px #00000026;margin-top:5px;min-width:180px;overflow:hidden;position:absolute;right:0;top:100%;z-index:100}.export-dropdown-menu button{align-items:center;background:none;border:none;color:#333;cursor:pointer;display:flex;font-size:14px;gap:10px;padding:10px 15px;text-align:left;transition:background-color .2s;width:100%}.export-dropdown-menu button:hover{background-color:#f5f5f5}.export-dropdown-menu button i{color:#666;text-align:center;width:20px}.print-button{align-items:center;background-color:#f0f0f0;border:1px solid #ccc;border-radius:4px;box-shadow:0 1px 3px #0000001a;color:#333;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:6px;padding:8px 12px;transition:background-color .2s}.print-button i{color:#555;font-size:14px}.print-button:hover{background-color:#e3e3e3}body.calendar-dragging,body.calendar-dragging .calendar-content,body.calendar-dragging .week-grid{overflow:hidden!important;overscroll-behavior:contain!important;touch-action:none!important}@media (max-width:768px){.calendar-nav{align-items:flex-start;flex-direction:column;gap:10px}.calendar-actions{justify-content:space-between;margin-left:0;margin-top:10px;width:100%}.export-dropdown{margin-right:0}.export-button,.print-button{justify-content:center;width:100%}}.realtime-notification{align-items:center;animation:slideIn .3s ease forwards;background-color:#fff;border-left:4px solid #4a90e2;border-radius:4px;box-shadow:0 4px 12px #00000026;display:flex;overflow:hidden;padding:12px 15px;position:fixed;right:20px;top:20px;width:320px;z-index:1000}.realtime-notification.booking_created{border-left-color:#4caf50}.realtime-notification.booking_cancelled{border-left-color:#f44336}.realtime-notification:before{animation:progress 5s linear forwards;background-color:#0000001a;bottom:0;content:"";height:3px;left:0;position:absolute;width:100%}.notification-icon{align-items:center;display:flex;flex-shrink:0;font-size:18px;height:24px;justify-content:center;margin-right:12px;width:24px}.booking_created .notification-icon{color:#4caf50}.booking_cancelled .notification-icon{color:#f44336}.notification-message{color:#333;flex:1 1;font-size:14px}.notification-close{background:none;border:none;color:#999;cursor:pointer;font-size:16px;line-height:1;margin-left:5px;padding:4px}.notification-close:hover{color:#333}@keyframes slideIn{0%{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}@keyframes progress{0%{width:100%}to{width:0}}@media (max-width:768px){.realtime-notification{max-width:320px;width:calc(100% - 40px)}}.booking-helper,.helper-block{background:#fcfcfd;border-left:6px solid #4a90e2;border-radius:8px;box-shadow:0 1px 2px #00000008;color:#222;font-size:12px;padding:8px}.booking-helper .helper-title,.helper-block .helper-title{align-items:center;display:flex;font-size:14px;font-weight:600;margin-bottom:6px}.booking-helper .helper-title .helper-icon,.helper-block .helper-title .helper-icon{font-size:20px;margin-right:8px}.calendar-content{flex:1 1 auto;overflow-y:visible}.calendar-container,.calendar-content,.calendar-main,.calendar-root,.dashboard-content{display:flex;flex-direction:column;height:100%;min-height:0}.chat-widget,.crisp-client,.help-chat-button,.intercom-launcher{display:none!important}.calendar-cross-view-toggle{align-items:center;display:flex}.cross-calendar-toggle{background:#fff;border:2px solid #e5e7eb;color:#374151;font-weight:500;transition:all .2s ease}.cross-calendar-toggle:hover{background-color:#f9f5ff;border-color:#5b21b6}.cross-calendar-toggle.active{background-color:#5b21b6;border-color:#5b21b6;color:#fff}.cross-calendar-toggle svg{stroke:currentColor}.calendar-legend-below{align-items:center;display:flex;flex-basis:100%;flex-wrap:wrap;gap:10px;justify-content:flex-end;margin:0;padding:2px 16px 4px 0;width:100%}.calendar-legend-item{align-items:center;color:#374151;display:flex;font-size:12px!important;gap:4px;line-height:1.2;white-space:nowrap}.calendar-color-box{border:1px solid #00000026;border-radius:2px;flex-shrink:0;height:8px;width:8px}.calendar-name{color:#374151;font-size:12px!important;font-weight:500;line-height:1.2;max-width:120px;overflow:hidden;text-overflow:ellipsis}@media (max-width:768px){.calendar-cross-view-toggle{margin-left:0!important;margin-top:8px}.calendar-legend-below-toolbar{justify-content:center;padding:8px}}.custom-fields-manager{background-color:#fff;border-radius:8px;box-shadow:0 2px 5px #0000001a;padding:20px}.custom-fields-manager h2{color:#5b21b6;font-size:1.8rem;margin-bottom:15px}.description{color:#4b5563;margin-bottom:20px}.error-message{color:#b91c1c;margin-bottom:15px;padding:10px}.fields-list{margin-bottom:30px}.fields-list h3{color:#4b5563;font-size:1.3rem;margin-bottom:10px}.fields-table{border-collapse:collapse;margin-bottom:20px;width:100%}.fields-table th{background-color:#f3f4f6;font-weight:600;padding:10px;text-align:left}.fields-table td{border-bottom:1px solid #e5e7eb;padding:10px}.disabled-field{opacity:.6}.icon-button{background:none;border:none;cursor:pointer;margin-right:10px;padding:5px}.icon-button.edit{color:#3b82f6}.icon-button.delete{color:#ef4444}.icon-button:disabled{color:#9ca3af;cursor:not-allowed}.add-field-button{align-items:center;background-color:#5b21b6;border:none;border-radius:4px;color:#fff;cursor:pointer;display:flex;gap:8px;margin-top:15px;padding:10px 15px}.add-field-button:hover{background-color:#4c1d95}.field-form{background-color:#f9fafb;border-radius:8px;margin-top:20px;padding:20px}.field-form h3{color:#4b5563;margin-bottom:20px}.form-group{margin-bottom:15px}.form-group input[type=number],.form-group input[type=text],.form-group select,.form-group textarea{border:1px solid #d1d5db;border-radius:4px;padding:8px;width:100%}.form-row{gap:20px}.form-group.checkbox,.form-group.checkbox label{align-items:center;display:flex}.form-group.checkbox label{cursor:pointer;gap:8px}.form-buttons{display:flex;gap:10px;margin-top:20px}.cancel-button{background-color:#f3f4f6;border:1px solid #d1d5db;border-radius:4px;color:#4b5563}.cancel-button,.save-button{align-items:center;cursor:pointer;display:flex;gap:8px;padding:10px 15px}.save-button{background-color:#5b21b6;border:none;border-radius:4px;color:#fff}.save-button:hover{background-color:#4c1d95}.rgpd-info{background-color:#dbeafe;border-radius:8px;margin-top:30px;padding:15px}.rgpd-info h3{color:#1e40af;margin-bottom:10px}.rgpd-info p{color:#1e3a8a;margin-bottom:10px}.tooltip{color:#6b7280;cursor:pointer;display:inline-block;position:relative}.tooltip .tooltip-text{background-color:#374151;border-radius:4px;bottom:125%;color:#fff;left:50%;opacity:0;padding:8px;position:absolute;text-align:center;transform:translateX(-50%);transition:opacity .3s;visibility:hidden;width:200px;z-index:1}.tooltip:hover .tooltip-text{opacity:1;visibility:visible}.loading{color:#4b5563;padding:20px;text-align:center}.subscription-panel{background-color:#fff;border-radius:8px;box-shadow:0 2px 8px #0000000d;padding:1.5rem}.subscription-panel .subscription-header{margin-bottom:1.5rem}.subscription-panel .subscription-header h3{align-items:center;color:#333;display:flex;font-size:1.5rem;font-weight:600}.subscription-panel .subscription-header h3 svg{color:#ffc107;margin-right:.75rem}.subscription-panel .check-circle{align-items:center;background-color:#fff;border-radius:50%;box-shadow:0 2px 5px #0000001a;display:flex;height:30px;justify-content:center;margin-bottom:10px;margin-right:15px;min-width:30px;width:30px}.subscription-panel .check-circle svg,.subscription-panel .check-icon{color:#7e3ff2!important;height:16px!important;min-height:16px!important;min-width:16px!important;width:16px!important}.plan-feature-check{align-items:center;background-color:#fff;border-radius:50%;box-shadow:0 2px 4px #00000014;display:flex;height:24px!important;justify-content:center;margin-bottom:8px;margin-right:10px;min-height:24px!important;min-width:24px!important;width:24px!important}.plan-feature-check .check-icon,.plan-feature-check svg{color:#7e3ff2!important}.plan-feature-check .check-icon,.plan-feature-check svg,.subscription-panel svg.check-icon{height:14px!important;min-height:14px!important;min-width:14px!important;width:14px!important}.subscription-panel .alert{align-items:center;border-radius:4px;display:flex;margin-bottom:1.5rem;padding:.75rem 1rem}.subscription-panel .alert svg{margin-right:.5rem}.subscription-panel .alert-success{background-color:#d4edda;border:1px solid #c3e6cb;color:#155724}.subscription-panel .alert-error{background-color:#f8d7da;border:1px solid #f5c6cb;color:#721c24}.subscription-panel .current-subscription-section{background-color:#f8f9fa;border-radius:6px;margin-bottom:2.5rem;padding:1.25rem}.subscription-panel .current-subscription-section h4{color:#444;font-size:1.25rem;font-weight:500;margin-bottom:1rem}.subscription-panel .current-plan{background-color:#fff;border-radius:6px;box-shadow:0 2px 5px #00000008;padding:1rem}.subscription-panel .plan-header h4{color:#333;font-size:1.4rem;font-weight:600;margin:0}.subscription-panel .plan-emoji{display:block;font-size:2rem;margin-bottom:10px}.subscription-panel .subscription-status{border-radius:20px;font-size:.85rem;font-weight:500;padding:.25rem .75rem}.subscription-panel .subscription-status.active{background-color:#d1e7dd;color:#0f5132}.subscription-panel .subscription-status.canceled{background-color:#f8d7da;color:#842029}.subscription-panel .subscription-status.expired{background-color:#f8f9fa;color:#6c757d}.subscription-panel .subscription-status.trial{background-color:#cff4fc;color:#084298}.subscription-panel .plan-details{margin-bottom:1.25rem}.subscription-panel .detail-item{display:flex;font-size:.95rem;margin-bottom:.75rem}.subscription-panel .detail-label{color:#555;font-weight:500;width:150px}.subscription-panel .detail-value{color:#333}.subscription-panel .trial-info{align-items:flex-start;background-color:#fff3cd;border-radius:4px;color:#664d03;display:flex;font-size:.9rem;margin-top:1rem;padding:.75rem}.subscription-panel .trial-info svg{margin-right:.5rem;margin-top:.2rem}.subscription-panel .plan-actions{display:flex;justify-content:flex-end;margin-top:1.5rem}.subscription-panel .cancel-subscription-btn{background-color:initial;border:1px solid #dc3545;border-radius:4px;color:#dc3545;cursor:pointer;font-size:.9rem;padding:.5rem 1rem;transition:all .2s ease}.subscription-panel .cancel-subscription-btn:hover{background-color:#f8d7da}.subscription-panel .cancel-subscription-btn:disabled{cursor:not-allowed;opacity:.5}.subscription-panel .no-subscription{background-color:#fff;border-radius:6px;color:#6c757d;padding:1.5rem;text-align:center}.subscription-panel .available-plans-section{margin-bottom:2.5rem}.subscription-panel .available-plans-section h4{color:#444;font-size:1.25rem;font-weight:500;margin-bottom:1.25rem}.subscription-panel .plans-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));margin:0 auto}.subscription-panel .plan-card{border:1px solid #e0e0e0;border-radius:8px;box-shadow:0 3px 10px #0000000d;display:flex;flex-direction:column;height:100%;overflow:hidden;transition:all .3s ease}.subscription-panel .plan-card:hover{box-shadow:0 5px 15px #0000001a;transform:translateY(-3px)}.subscription-panel .plan-card.current{border:2px solid #28a745;box-shadow:0 2px 10px #28a74526}.subscription-panel .plan-card.current:after{background-color:#28a745;border-radius:12px;color:#fff;content:"Votre formule actuelle";font-size:.75rem;font-weight:600;left:50%;padding:3px 10px;position:absolute;top:-10px;transform:translateX(-50%)}.subscription-panel .plan-header{background-color:#f8f9fa;border-bottom:1px solid #e0e0e0;padding:1.25rem;text-align:center}.subscription-panel .plan-name{color:#333;font-size:1.3rem;font-weight:600;margin:0}.subscription-panel .plan-badge{background-color:#ffc107;border-bottom-left-radius:8px;color:#212529;font-size:.75rem;font-weight:600;padding:.25rem .75rem;position:absolute;right:0;top:0}.subscription-panel .plan-price{background-color:#fff;border-bottom:1px solid #f0f0f0;padding:1.25rem;text-align:center}.subscription-panel .plan-price .amount{color:#5b21b6;display:block;font-size:2.2rem;font-weight:700;margin-bottom:5px}.subscription-panel .plan-price .interval{color:#6c757d;font-size:1rem}.subscription-panel .plan-description{background-color:#fff;border-bottom:1px solid #f0f0f0;color:#555;font-size:.9rem;font-style:italic;padding:.75rem 1.25rem;text-align:center}.subscription-panel .plan-features{padding:20px!important;text-align:left!important;width:100%!important}.subscription-panel .plan-features li{display:flex!important;flex-direction:row!important;margin-bottom:8px!important}.subscription-panel .plan-features ul{align-items:flex-start!important;direction:ltr!important;justify-content:flex-start!important;margin-left:0!important;padding-left:0!important;text-align:left!important;width:100%!important}.subscription-panel .plan-features li:before{display:none!important}.subscription-panel .plan-features li .feature-icon{color:#28a745!important;margin-right:8px!important;margin-top:2px!important}.subscription-panel .plan-features .fa-check,.subscription-panel .plan-features i.fas.fa-check{color:#28a745!important;font-size:14px!important;margin-right:8px!important;margin-top:2px!important}.subscription-panel *{box-sizing:border-box!important}.subscription-panel .plan-card-action{background-color:#fff;border-top:1px solid #e0e0e0;padding:1.25rem}.subscription-panel .subscribe-btn{background-color:#007bff;border:none;border-radius:4px;color:#fff;cursor:pointer;font-weight:500;padding:.75rem;transition:all .2s ease;width:100%}.subscription-panel .subscribe-btn:hover{background-color:#0069d9}.subscription-panel .subscribe-btn:disabled{cursor:not-allowed;opacity:.7}.subscription-panel .subscribe-btn.current{background-color:#28a745}.subscription-panel .discount-info{align-items:center;color:#dc3545;display:flex;font-size:.9rem;justify-content:center;margin-top:.75rem;text-align:center}.subscription-panel .discount-info svg{margin-right:.35rem}.subscription-panel .billing-history-section{border:1px solid #e0e0e0;border-radius:6px;margin-bottom:2.5rem;overflow:hidden}.subscription-panel .billing-history-header{align-items:center;background-color:#f8f9fa;cursor:pointer;display:flex;justify-content:space-between;padding:1rem 1.25rem}.subscription-panel .billing-history-header h4{align-items:center;display:flex;font-size:1.1rem;font-weight:500;margin:0}.subscription-panel .billing-history-header h4 svg{color:#6c757d;margin-right:.5rem}.subscription-panel .toggle-btn{background-color:initial;border:1px solid #ced4da;border-radius:4px;cursor:pointer;font-size:.85rem;padding:.25rem .75rem}.subscription-panel .billing-history-content{background-color:#fff;padding:1.25rem}.subscription-panel .billing-table{border-collapse:collapse;width:100%}.subscription-panel .billing-table td,.subscription-panel .billing-table th{border-bottom:1px solid #e0e0e0;padding:.75rem;text-align:left}.subscription-panel .billing-table th{color:#495057;font-size:.9rem;font-weight:600}.subscription-panel .payment-status{border-radius:4px;display:inline-block;font-size:.85rem;padding:.2rem .5rem}.subscription-panel .payment-status.paid{background-color:#d1e7dd;color:#0f5132}.subscription-panel .payment-status.pending{background-color:#fff3cd;color:#664d03}.subscription-panel .payment-status.failed{background-color:#f8d7da;color:#842029}.subscription-panel .invoice-btn{background-color:#6c757d;border:none;border-radius:3px;color:#fff;cursor:pointer;font-size:.85rem;padding:.25rem .5rem}.subscription-panel .invoice-btn:hover{background-color:#5a6268}.subscription-panel .no-history{color:#6c757d;padding:1.5rem;text-align:center}.cancellation-section{border-top:1px solid #eaeaea;margin-top:30px;padding-top:20px}.cancellation-section h4{color:#333;font-size:1.2rem;margin-bottom:15px}.cancellation-info-box{background-color:#f9f9f9;border:1px solid #e0e0e0;border-radius:8px;margin-bottom:20px;padding:20px}.cancellation-info-box h5{align-items:center;color:#dc3545;display:flex;font-size:1.1rem;margin-bottom:15px}.cancel-icon{color:#dc3545;margin-right:10px}.cancellation-details{margin:15px 0;padding-left:20px}.cancellation-details li{line-height:1.4;margin-bottom:8px}.warning-text{color:#dc3545;font-weight:600;margin-bottom:15px}.confirmation-buttons{display:flex;gap:10px;margin-top:15px}@media (max-width:576px){.confirmation-buttons{flex-direction:column}.confirmation-buttons button{margin-bottom:10px;width:100%}}.subscription-panel .payment-info-section{background-color:#f8f9fa;border-radius:6px;margin-bottom:1.5rem;padding:1.25rem}.subscription-panel .payment-info-section h4{align-items:center;color:#444;display:flex;font-size:1.1rem;font-weight:500;margin-bottom:1rem}.subscription-panel .payment-info-section h4 svg{color:#6c757d;margin-right:.5rem}.subscription-panel .payment-method{align-items:center;background-color:#fff;border-radius:6px;display:flex;justify-content:space-between;padding:1rem}.subscription-panel .card-info{margin-bottom:.5rem}.subscription-panel .card-brand{font-weight:600;margin-right:.5rem}.subscription-panel .card-expiry{color:#6c757d;font-size:.9rem}.subscription-panel .add-payment-btn,.subscription-panel .update-payment-btn{background-color:#6c757d;border:none;border-radius:4px;color:#fff;cursor:pointer;padding:.5rem 1rem;transition:all .2s ease}.subscription-panel .add-payment-btn:hover,.subscription-panel .update-payment-btn:hover{background-color:#5a6268}.subscription-panel .no-payment-method{background-color:#fff;border-radius:6px;padding:1.5rem;text-align:center}.subscription-panel .no-payment-method p{color:#6c757d;margin-bottom:1rem}.subscription-panel .subscription-footer{border-top:1px solid #e0e0e0;color:#6c757d;font-size:.9rem;margin-top:2rem;padding-top:1rem;text-align:center}.subscription-panel.loading,.subscription-panel.payment-processing{align-items:center;display:flex;justify-content:center;min-height:300px}.subscription-panel .loading-indicator{align-items:center;color:#6c757d;display:flex;flex-direction:column}.subscription-panel .loading-indicator svg{color:#007bff;font-size:2rem;margin-bottom:1rem}.subscription-panel .plan-features li:before{content:none!important}.subscription-panel .plan-features li{align-items:center;display:flex;margin-bottom:12px;padding-left:0!important;position:relative}.subscription-panel .plan-features li .feature-icon{color:#7e3ff2;margin-right:10px}.subscription-panel .fa-check-circle,.subscription-panel .feature-icon svg,.subscription-panel .plan-features li .feature-icon{font-size:14px!important;height:14px!important;min-height:14px!important;min-width:14px!important;width:14px!important}.subscription-panel .plan-features li:after,.subscription-panel .plan-features li:before{content:none!important;display:none!important}.subscription-panel .plan-features li>div,.subscription-panel .plan-features li>span{background:none!important;box-shadow:none!important}.subscription-panel .plan-features li{line-height:1.4!important;text-align:left!important;white-space:normal!important}.subscription-panel .plan-features li>*{margin-bottom:0!important}.subscription-panel .features-list li{align-items:center;display:flex;margin-bottom:8px}.subscription-panel .features-list .feature-icon{color:#7e3ff2;height:16px;margin-right:10px;width:16px}.subscription-panel h2.section-title{font-size:1.8rem;margin-bottom:25px;text-align:center}@media (max-width:992px){.subscription-panel .plans-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}}@media (max-width:768px){.subscription-panel .plans-grid{grid-template-columns:1fr}.subscription-panel .plan-card{margin:0 auto;max-width:450px}.subscription-panel .payment-method{align-items:flex-start;flex-direction:column}.subscription-panel .payment-method-details{margin-bottom:1rem}.subscription-panel .billing-table{font-size:.9rem}}@media (max-width:576px){.subscription-panel .detail-item{flex-direction:column}.subscription-panel .detail-label{margin-bottom:.25rem;width:100%}}.price-compact{font-size:.9rem;font-weight:400}.billing-actions{border-top:1px solid #eaeaea;margin-top:20px;padding-top:20px}.plan-selection-info{background-color:#f8f9fa;border-radius:8px;color:#495057;font-size:.95rem;margin-top:20px;padding:15px}.plan-selection-info svg{color:#17a2b8;margin-right:8px}.subscription-counters{background-color:#f8f9fa;border-radius:8px;box-shadow:0 2px 5px #0000000d;margin-bottom:25px;padding:20px}.counters-grid{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(4,1fr);margin-bottom:20px}.counter-card{background-color:#fff;border-radius:6px;box-shadow:0 1px 3px #0000001a;padding:15px;text-align:center;transition:transform .2s ease}.counter-card:hover{transform:translateY(-3px)}.counter-value{color:#7e3ff2;font-size:2rem;font-weight:700;margin-bottom:5px}.counter-label{color:#6c757d;font-size:.9rem}.appointment-meter{background-color:#e9ecef;border-radius:10px;height:20px;margin-top:10px;overflow:hidden;position:relative}.appointment-progress{background-color:#7e3ff2;border-radius:10px;height:100%;transition:width .5s ease}.appointment-text{color:#495057;font-size:.9rem;font-weight:600;left:50%;mix-blend-mode:difference;position:absolute;text-shadow:0 0 2px #fff;top:50%;transform:translate(-50%,-50%)}@media (max-width:768px){.counters-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:480px){.counters-grid{grid-template-columns:1fr}}.modal-overlay{animation:modalOverlayFadeIn .3s ease;background-color:#000000b3}.modal-container{animation:modalContentSlideIn .3s ease-out;background-color:#fff;border-radius:8px;box-shadow:0 5px 15px #0000004d;max-height:90vh;overflow-y:auto;width:90%}.calendar-config-modal .modal-container,.modal-large{max-width:1200px!important;min-width:800px!important;width:95%!important}@media (max-width:900px){.calendar-config-modal .modal-container{min-width:auto!important;width:95%!important}}.modal-header{align-items:center;background:#f7f7f9;border-bottom:1px solid #ececec;border-radius:12px 12px 0 0;display:flex;justify-content:space-between;padding:24px 32px 16px}.modal-header h2{color:#222;font-size:1.4rem;font-weight:600;margin:0;padding:0}.modal-close{background:none;border:none;color:#888;cursor:pointer;font-size:2rem;margin-left:16px;transition:color .2s}.modal-close:hover{color:#5b21b6}.modal-content{padding:32px 32px 24px}.modal-form-row{align-items:flex-end;display:flex;gap:32px;margin-bottom:20px}.modal-form-group{display:flex;flex:1 1;flex-direction:column;min-width:180px}.modal-form-group-full{flex:2 1}.modal-form-group label{color:#444;font-size:1rem;font-weight:500;margin-bottom:6px}.modal-form-group input[type=number],.modal-form-group input[type=text],.modal-form-group select,.modal-form-group textarea{background:#fff;border:1px solid #d1d5db;border-radius:6px;box-sizing:border-box;font-size:1.08rem;margin-bottom:0;min-height:44px;padding:10px 12px;transition:border .2s;width:100%}.modal-form-group textarea{min-height:70px;resize:vertical}.modal-form-group input[type=checkbox]{height:18px;margin-right:8px;vertical-align:middle;width:18px}.modal-form-group label[for]{display:block}.modal-form-actions{align-items:center;display:flex;gap:16px;margin-top:24px}.modal-form-row .modal-form-group label input[type=checkbox]{margin-bottom:0;margin-top:0;vertical-align:middle}.modal-footer{border-top:1px solid #e5e7eb;display:flex;gap:10px;justify-content:flex-end;padding:15px 20px}@keyframes modalOverlayFadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalContentSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@media (max-width:640px){.modal-container{max-height:95vh;width:95%}.modal-footer{flex-direction:column}.modal-footer button{width:100%}}.calendar-form-container{padding:15px}.calendar-form{gap:15px}.calendar-form,.form-group{display:flex;flex-direction:column}.form-group label{color:#333;font-size:14px;margin-bottom:5px}.form-group input[type=text],.form-group select,.form-group textarea{background-color:#fff;border:1px solid #ddd;border-radius:4px;font-size:14px;padding:10px}.form-group input[type=text]:focus,.form-group select:focus,.form-group textarea:focus{border-color:#4a90e2;box-shadow:0 0 0 2px #4a90e233;outline:none}.color-picker-container{align-items:center;display:flex;gap:10px}.color-picker{border:none;cursor:pointer;height:40px;padding:0;width:40px}.color-value{color:#666;font-family:monospace;font-size:14px}.helper-text{color:#666;font-size:12px;margin-top:5px}.form-actions{margin-top:10px}.btn-cancel{background-color:#f0f0f0;color:#333}.btn-cancel,.btn-save{border:none;border-radius:4px;cursor:pointer;font-size:14px;padding:10px 15px}.btn-save{background-color:#4a90e2;color:#fff}.btn-cancel:hover{background-color:#e0e0e0}.btn-save:hover{background-color:#3a80d2}@media (max-width:768px){.form-actions{flex-direction:column-reverse}.btn-cancel,.btn-save{width:100%}}.ical-feed-manager .ical-url-container{align-items:center;display:flex;gap:8px}.ical-feed-manager .ical-url-container input{background-color:#f8f9fa;font-family:monospace;font-size:14px;padding:8px 12px}.ical-feed-manager .accordion{font-size:.9rem}.ical-feed-manager .accordion-button{font-size:.9rem;font-weight:500;padding:.5rem 1rem}.ical-feed-manager .accordion-body{background-color:#f8f9fa;padding:1rem}.ical-feed-manager .accordion-body ol{margin-bottom:0;padding-left:20px}.ical-feed-manager .accordion-body li{margin-bottom:8px}.ical-feed-manager .accordion-body li:last-child{margin-bottom:0}.calendar-manager{background-color:#f9f9f9;border-radius:8px;box-shadow:0 2px 4px #0000001a;padding:20px}.calendar-manager-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px}.calendar-manager-header h2{color:#333;font-size:22px;margin:0}.add-calendar-button{background-color:#4a90e2;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;padding:8px 16px;transition:background-color .3s}.add-calendar-button:hover{background-color:#3a80d2}.calendars-list{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.calendar-card{background:#fff;border-left:5px solid #4a90e2;border-radius:6px;box-shadow:0 2px 10px #0000000d;overflow:hidden;transition:transform .2s,box-shadow .2s}.calendar-card:hover{box-shadow:0 4px 15px #0000001a;transform:translateY(-3px)}.calendar-card.default{background-color:#f8fbff;border:1px solid #4a90e2}.calendar-card-header{align-items:center;border-bottom:1px solid #eee;display:flex;justify-content:space-between;padding:15px}.calendar-card-header h3{color:#333;font-size:18px;margin:0}.default-badge{background:#4a90e2;border-radius:12px;color:#fff;font-size:12px;padding:3px 8px}.calendar-card-body{padding:15px}.calendar-card-body p{color:#666;font-size:14px;margin:0 0 15px}.calendar-info{display:flex;justify-content:space-between;margin-top:10px}.calendar-info span{align-items:center;color:#777;display:flex;font-size:13px}.calendar-info span i{color:#4a90e2;margin-right:5px}.calendar-card-actions{background-color:#f9f9f9;display:flex;flex-wrap:wrap;gap:8px;padding:10px 15px}.calendar-card-actions button{border:none;border-radius:4px;cursor:pointer;font-size:13px;padding:5px 10px}.config-button,.edit-button{background-color:#f0f0f0;color:#333}.ical-button{background-color:#f0f0f0;color:#4a90e2}.make-default-button{background-color:gold;color:#333}.delete-button{background-color:#f0f0f0;color:#d9534f}.config-button:hover,.edit-button:hover,.ical-button:hover{background-color:#e0e0e0}.make-default-button:hover{background-color:#f5cc00}.delete-button:hover{background-color:#f8d7da}.no-calendars{background-color:#fff;border-radius:6px;box-shadow:0 2px 10px #0000000d;padding:40px 20px;text-align:center}.no-calendars p{color:#777;margin-bottom:20px}.create-first-calendar{background-color:#4a90e2;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:16px;padding:10px 20px;transition:background-color .3s}.create-first-calendar:hover{background-color:#3a80d2}.calendar-manager.loading{align-items:center;display:flex;flex-direction:column;justify-content:center;min-height:200px}.spinner{animation:spin 1s linear infinite;border:4px solid #0000001a;border-radius:50%;border-top-color:#4a90e2;height:36px;margin-bottom:10px;width:36px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.calendar-manager.error{padding:20px;text-align:center}.retry-button{background-color:#4a90e2;border:none;border-radius:4px;color:#fff;cursor:pointer;margin-top:10px;padding:8px 16px}@media (max-width:768px){.calendars-list{grid-template-columns:1fr}.calendar-manager-header{align-items:flex-start;flex-direction:column;gap:10px}.add-calendar-button{width:100%}}.ical-feed-modal{margin:0 auto;max-width:700px;width:80%}.time-slot-editor{margin:10px 0 20px;width:100%}.time-slot-table{background-color:#fff;border-collapse:collapse;border-radius:6px;box-shadow:0 1px 3px #0000001a;margin-bottom:15px;overflow:hidden;width:100%}.time-slot-table td,.time-slot-table th{border-bottom:1px solid #eaeaea;padding:12px;text-align:left}.time-slot-table th{background-color:#f8f8f8;color:#444;font-weight:600}.time-slot-table tr:last-child td{border-bottom:none}.time-slot-duration{color:#555;font-weight:500}.time-slot-action{text-align:right}.time-slot-delete{background-color:initial;border:1px solid #e74c3c;border-radius:4px;color:#e74c3c;cursor:pointer;font-size:.9em;padding:5px 10px;transition:all .2s}.time-slot-delete:hover{background-color:#e74c3c;color:#fff}.new-slot-row{align-items:center;background-color:#f9f9f9;border:1px dashed #ddd;border-radius:6px;display:flex;margin-top:15px;padding:10px}.new-slot-label{font-weight:500;margin-right:15px;white-space:nowrap}.new-slot-inputs{align-items:center;display:flex;flex:1 1;flex-wrap:wrap;gap:10px}.time-slot-input{background-color:#fff;border:1px solid #ddd;border-radius:4px;flex:1 1;font-size:.95em;min-width:80px;padding:8px 12px}.add-slot-button{background-color:#3498db;border:none;border-radius:4px;color:#fff;cursor:pointer;font-weight:500;padding:8px 15px;transition:background-color .2s;white-space:nowrap}.add-slot-button:hover{background-color:#2980b9}@media (max-width:768px){.new-slot-row{align-items:flex-start;flex-direction:column}.new-slot-label{margin-bottom:10px}.new-slot-inputs{width:100%}}.page-header{justify-content:space-between}.page-header,.page-title{align-items:center;display:flex}.page-title{gap:10px}.page-title-icon{color:#5b21b6;font-size:1.5em}.create-button{align-items:center;border-radius:4px;display:flex;gap:8px;padding:10px 15px}.filter-bar{background-color:#f9fafb;border-radius:8px;box-shadow:0 1px 3px #0000000d;display:flex;gap:20px;margin-bottom:20px;padding:15px}.filter-group{align-items:center;display:flex;gap:8px}.unavailability-toolbar{align-items:flex-start;background-color:#f9fafb;border-radius:8px;box-shadow:0 1px 3px #0000000d;display:flex;gap:20px;justify-content:space-between;margin-bottom:20px;padding:16px}.unavailability-filters{display:flex;flex:1 1;flex-direction:column;gap:12px}.filter-item{align-items:center;display:flex;gap:10px}.filter-item label{color:#374151;font-size:.9rem;font-weight:600;min-width:100px}.filter-item select{background-color:#fff;border:1px solid #d1d5db;border-radius:6px;cursor:pointer;flex:1 1;font-size:.9rem;padding:8px 12px;transition:all .2s}.filter-item select:hover{border-color:#9ca3af}.filter-item select:focus{border-color:#5b21b6;box-shadow:0 0 0 3px #5b21b61a;outline:none}.unavailability-toolbar .create-button{flex-shrink:0;white-space:nowrap}.unavailability-list{display:flex;flex-direction:column;gap:15px;margin-top:20px}.unavailability-card{background-color:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;overflow:hidden;transition:all .3s ease}.unavailability-card.expanded{box-shadow:0 4px 6px #0000001a}.unavailability-header{border-bottom:1px solid #0000;cursor:pointer;padding:12px 15px;transition:all .2s ease}.unavailability-card.expanded .unavailability-header{border-bottom-color:#e5e7eb}.unavailability-header:hover{background-color:#f9fafb}.unavailability-compact-row{align-items:center;display:flex;flex-wrap:wrap;gap:15px}.unavailability-type-badge{border-radius:20px;color:#fff;flex-shrink:0;font-size:.85em;font-weight:600;min-width:120px;padding:5px 12px;text-align:center}.unavailability-dates-inline{align-items:center;display:flex;flex:1 1;font-size:.9em;gap:6px;min-width:300px}.unavailability-dates-inline .date-label{color:#6b7280;font-weight:500}.unavailability-dates-inline .date-separator{color:#9ca3af;font-weight:700;margin:0 4px}.unavailability-duration-inline{color:#6b7280;flex-shrink:0;font-size:.85em;white-space:nowrap}.unavailability-calendar-inline{align-items:center;color:#4b5563;display:flex;flex-shrink:0;font-size:.9em;gap:6px}.affected-bookings-badge-inline{align-items:center;background-color:#f59e0b;border-radius:20px;color:#fff;display:flex;flex-shrink:0;font-size:.85em;gap:5px;padding:4px 10px}.unavailability-top-row{align-items:center;display:flex;gap:10px;justify-content:space-between}.unavailability-dates{display:flex;flex:1 1;flex-direction:column;gap:5px;padding:0 15px}.unavailability-date{font-size:.9em}.unavailability-duration{color:#6b7280;font-size:.9em}.unavailability-calendar{align-items:center;color:#4b5563;display:flex;font-size:.9em;gap:6px}.affected-bookings-badge{align-items:center;background-color:#f59e0b;border-radius:20px;color:#fff;display:flex;font-size:.85em;gap:5px;padding:3px 10px}.unavailability-actions{display:flex;flex-shrink:0;gap:8px}.action-button{align-items:center;background:none;border:none;border-radius:4px;color:#6b7280;cursor:pointer;display:flex;font-size:1.1rem;justify-content:center;min-height:36px;min-width:36px;padding:8px;transition:all .2s ease}.action-button:hover{background-color:#f3f4f6}.edit-button:hover{background-color:#eff6ff;color:#3b82f6}.delete-button:hover{background-color:#fef2f2;color:#ef4444}.unavailability-details{background-color:#f9fafb;border-top:1px solid #e5e7eb;padding:15px}.unavailability-reason{margin-bottom:15px}.unavailability-reason h4{color:#374151;margin-bottom:5px}.unavailability-reason p{color:#6b7280;font-style:italic}.affected-bookings-list{display:flex;flex-direction:column;gap:10px;margin-top:10px}.affected-booking-item{align-items:center;background-color:#fff;border-radius:6px;box-shadow:0 1px 2px #0000000d;display:flex;justify-content:space-between;padding:10px}.affected-booking-info{flex:1 1}.affected-booking-name{font-weight:600}.affected-booking-time{color:#6b7280;font-size:.85em}.empty-state{color:#6b7280;padding:40px 0;text-align:center}.empty-state h3{color:#374151;margin-bottom:10px}.modal-overlay{align-items:flex-start;background-color:#00000080;overflow-y:auto;padding:20px}.modal-overlay>div{display:flex;flex-direction:column;margin:0 auto;max-width:800px;width:100%}.unavailability-form-container{background-color:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a;overflow:hidden;position:relative;width:100%}.form-header{align-items:center;background-color:#f8f9fa;border-bottom:1px solid #eaeaea;border-radius:8px 8px 0 0;display:flex;justify-content:space-between;padding:16px 20px;position:sticky;top:0;z-index:10}.form-header h2{color:#333;font-size:1.25rem;margin:0}.close-button{background:none;border:none;color:#666;cursor:pointer;font-size:1.2rem;padding:5px;transition:color .2s}.close-button:hover{color:#e74c3c}.unavailability-form{padding:20px}.form-row{display:flex;gap:15px;margin-bottom:10px}.form-group{margin-bottom:20px}.form-group label{color:#444;display:block;font-weight:500;margin-bottom:6px}.unavailability-form input[type=date],.unavailability-form input[type=time],.unavailability-form select,.unavailability-form textarea{border:1px solid #ddd;border-radius:4px;font-size:1rem;padding:10px 12px;transition:border-color .2s;width:100%}.unavailability-form input:focus,.unavailability-form select:focus,.unavailability-form textarea:focus{border-color:#3498db;outline:none}.unavailability-form input.error,.unavailability-form select.error{border-color:#e74c3c}.error-message{color:#e74c3c;font-size:.9rem;margin-top:5px}.form-hint{color:#777;font-size:.85rem;margin-top:5px}.form-actions{border-top:1px solid #eaeaea;display:flex;gap:10px;justify-content:flex-end;margin-top:30px;padding-top:20px}.primary-button,.secondary-button{border-radius:4px;cursor:pointer;font-weight:500;padding:10px 20px;transition:all .2s}.primary-button{background-color:#3498db;border:none;color:#fff}.primary-button:hover{background-color:#2980b9}.secondary-button{background-color:#fff;border:1px solid #ddd;color:#333}.secondary-button:hover{background-color:#f5f5f5}button:disabled{cursor:not-allowed;opacity:.6}.slot-mode-selector{display:flex;flex-direction:column}.toggle-container{border:1px solid #ddd;border-radius:4px;display:flex;overflow:hidden}.toggle-button{background-color:#f8f8f8;border:none;cursor:pointer;flex:1 1;font-size:.9rem;padding:8px 15px;text-align:center;transition:all .2s}.toggle-button:first-child{border-right:1px solid #ddd}.toggle-button.active{background-color:#3498db;color:#fff}.toggle-button:hover:not(.active){background-color:#eee}.time-slots-container{background-color:#f9f9f9;border:1px solid #eaeaea;border-radius:6px;margin-top:10px;padding:15px}.error-message,.success-message{border-radius:4px;margin-bottom:20px;padding:10px 15px}.success-message{background-color:#ecfdf5;border:1px solid #a7f3d0;color:#065f46}.error-message{background-color:#fef2f2;border:1px solid #fecaca;color:#991b1b}.loading-indicator{color:#6b7280;padding:20px;text-align:center}.daily-time-slot-editor{background-color:#f9fafb;border-radius:8px;margin-bottom:20px;padding:15px}.day-header{border-bottom:1px solid #e5e7eb;color:#374151;font-size:1.1em;margin-bottom:15px;margin-top:0;padding-bottom:10px}.time-slots-table{border-radius:6px;box-shadow:0 1px 3px #0000000d;margin-bottom:20px;overflow:hidden;width:100%}.time-slots-header{background-color:#f3f4f6;color:#374151;display:grid;font-weight:600;grid-template-columns:1fr 1fr 1fr 1fr}.time-slot-cell{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;padding:12px 16px}.time-slot-row{background-color:#fff;display:grid;grid-template-columns:1fr 1fr 1fr 1fr;transition:background-color .2s}.time-slot-row:hover{background-color:#f9fafb}.time-slot-row:not(:last-child){border-bottom:1px solid #e5e7eb}.remove-slot-btn{align-items:center;background-color:#fee2e2;border:none;border-radius:4px;color:#b91c1c;cursor:pointer;display:flex;font-size:.85em;gap:8px;padding:6px 10px;transition:all .2s ease}.remove-slot-btn:hover{background-color:#fecaca}.new-time-slot{background-color:#fff;border-radius:6px;box-shadow:0 1px 2px #0000000d;display:flex;flex-direction:column;gap:10px;margin-top:15px;padding:15px}.new-time-slot-label{color:#374151;font-weight:600;margin-bottom:10px}.new-time-slot-inputs{align-items:center;display:flex;gap:10px}.time-select{background-color:#fff;border:1px solid #d1d5db;border-radius:4px;min-width:100px;padding:8px 12px}.add-slot-btn{align-items:center;background-color:#5b21b6;border:none;border-radius:4px;color:#fff;cursor:pointer;display:flex;font-size:.95em;gap:8px;padding:8px 15px;transition:all .2s ease}.add-slot-btn:hover{background-color:#4c1d95}.full-day-unavailable{align-items:center;background:#ffeaea;border-radius:8px 8px 0 0;color:#b71c1c;display:flex;font-size:1.1em;font-weight:700;margin-bottom:4px;padding:8px 16px}.full-day-unavailable-slot{background:#ffeaea;border-radius:0!important;height:100%;min-height:32px;pointer-events:none}.time-slot-unavailable{background:repeating-linear-gradient(135deg,#ffeaea,#ffeaea 8px,#fff 0,#fff 16px);color:#b71c1c;opacity:.7}@media (max-width:768px){.filter-bar{flex-direction:column;gap:10px}.unavailability-toolbar{align-items:stretch;flex-direction:column;gap:16px;padding:12px}.unavailability-filters{gap:10px}.filter-item{align-items:stretch;flex-direction:column;gap:6px}.filter-item label{font-size:.85rem;min-width:auto}.filter-item select{width:100%}.unavailability-toolbar .create-button{justify-content:center;width:100%}.unavailability-header{gap:10px;padding:12px}.unavailability-top-row{flex-wrap:nowrap}.unavailability-type-badge{font-size:.8rem;min-width:auto;padding:4px 8px}.unavailability-actions{gap:6px}.action-button{font-size:1rem;min-height:32px;min-width:32px;padding:6px}.form-row{flex-direction:column;gap:10px}.time-slot-row,.time-slots-header{grid-template-columns:1fr 1fr}.time-slot-cell:nth-child(3),.time-slot-cell:nth-child(4){border-top:1px solid #e5e7eb}.new-time-slot-inputs{align-items:stretch;flex-direction:column}.unavailability-form-container{border-radius:0;margin:0;max-height:100vh;max-width:100%;overflow-y:auto;width:100%}.modal-overlay{-webkit-overflow-scrolling:touch;align-items:flex-start;padding:0}.modal-overlay>div{max-width:100%;min-height:100vh}.form-header{border-radius:0;position:sticky;top:0;z-index:100}}.rgpd-document-container{background-color:#fff;border-radius:8px;box-shadow:0 2px 5px #0000001a;padding:25px}.rgpd-document-header{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;margin-bottom:25px;padding-bottom:15px}.rgpd-icon{color:#5b21b6;font-size:1.8em;margin-right:15px}.rgpd-document-header h2{color:#333;font-size:22px;margin:0}.rgpd-document-content{grid-gap:20px;display:grid;gap:20px;grid-template-columns:1fr}.rgpd-compliance-box,.rgpd-generation-box,.rgpd-info-box{background-color:#f9fafb;border-radius:6px;box-shadow:0 1px 3px #0000000d;padding:20px}.rgpd-info-header{align-items:center;display:flex;margin-bottom:15px}.info-icon{color:#5b21b6;font-size:1.5em;margin-right:10px}.rgpd-compliance-box h3,.rgpd-generation-box h3,.rgpd-info-box h3{color:#333;font-size:18px;margin:0 0 15px}.rgpd-generation-box p,.rgpd-info-box p{color:#4b5563;line-height:1.6;margin-bottom:15px}.rgpd-info-box ul{padding-left:20px}.rgpd-info-box ul li{color:#4b5563;margin-bottom:8px}.generate-button{align-items:center;background-color:#5b21b6;border:none;border-radius:4px;color:#fff;cursor:pointer;display:flex;font-size:16px;font-weight:500;gap:10px;justify-content:center;margin:20px 0;padding:12px 20px;transition:background-color .2s;width:100%}.generate-button:hover{background-color:#4c1d95}.generate-button:disabled{background-color:#a78bda;cursor:not-allowed}.generate-button svg{font-size:1.2em}.error-message{background-color:#fee2e2;color:#dc2626}.error-message,.success-message{align-items:center;border-radius:4px;display:flex;margin:15px 0;padding:10px 15px}.success-message{background-color:#d1fae5;color:#059669;gap:8px}.success-message svg{color:#059669}.generated-document{background-color:#fff;border:1px solid #e5e7eb;border-radius:6px;margin-top:20px;padding:15px}.generated-document h4{color:#111827;font-size:16px;margin:0 0 15px}.document-info{align-items:center;display:flex;gap:15px}.document-icon{color:#ef4444;font-size:2em}.document-info>div{flex:1 1}.document-name{color:#111827;font-weight:500;margin:0 0 5px}.document-date{color:#6b7280;font-size:14px;margin:0}.document-actions,.download-button{display:flex;gap:8px}.download-button{align-items:center;background-color:#f3f4f6;border:1px solid #d1d5db;border-radius:4px;color:#1f2937;font-size:14px;padding:8px 12px;text-decoration:none;transition:background-color .2s}.download-button:hover{background-color:#e5e7eb}.delete-button{align-items:center;background-color:#f3f4f6;border:1px solid #d1d5db;border-radius:4px;color:#ef4444;cursor:pointer;display:flex;justify-content:center;padding:8px 12px;transition:all .2s ease}.delete-button:hover{background-color:#fee2e2;border-color:#fca5a5}.delete-button:disabled{cursor:not-allowed;opacity:.5}.compliance-item{border-bottom:1px solid #e5e7eb;padding:15px 0}.compliance-item:last-child{border-bottom:none}.compliance-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:5px}.compliance-label{color:#111827;font-weight:500}.compliance-status{border-radius:12px;font-size:12px;font-weight:500;padding:4px 8px}.compliance-status.ok{background-color:#d1fae5;color:#059669}.compliance-status.warning{background-color:#fef3c7;color:#d97706}.compliance-status.error{background-color:#fee2e2;color:#dc2626}.compliance-item p{color:#6b7280;font-size:14px;margin:5px 0 0}.progress-container{margin:20px 0}.progress-bar{background-color:#e5e7eb;border-radius:8px;height:8px;overflow:hidden;position:relative;width:100%}.progress-fill{background-color:#5b21b6;border-radius:8px;height:100%;transition:width .3s ease}.progress-text{color:#4b5563;font-size:14px;font-weight:500;margin-top:8px;text-align:center}.progress-fill{animation:pulse 1.5s infinite}.rgpd-dpa-section{background-color:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;margin-top:24px;padding:24px}.rgpd-dpa-section h3{color:#1f2937;font-size:18px;font-weight:600;margin:0 0 8px}.rgpd-dpa-section p{color:#6b7280;font-size:14px;margin:0 0 20px}.loading-message{color:#6b7280;font-size:14px;padding:20px;text-align:center}.loading-message .fa-spinner{color:#5b21b6;margin-right:8px}.dpa-table-wrapper{background:#fff;border:1px solid #e5e7eb;border-radius:6px;overflow:hidden}.dpa-contracts-table{border-collapse:collapse;font-size:14px;width:100%}.dpa-contracts-table thead{background-color:#f8fafc}.dpa-contracts-table th{border-bottom:1px solid #e5e7eb;color:#374151;font-size:13px;font-weight:600;letter-spacing:.05em;padding:12px 16px;text-align:left;text-transform:uppercase}.dpa-contracts-table td{border-bottom:1px solid #f3f4f6;padding:16px;vertical-align:middle}.dpa-contracts-table tr:hover{background-color:#f9fafb}.dpa-contracts-table tr:last-child td{border-bottom:none}.contract-cell{align-items:center;display:flex;gap:12px}.pdf-icon{color:#dc2626;flex-shrink:0;font-size:18px}.contract-details{flex-grow:1}.contract-name{color:#1f2937;font-size:14px;font-weight:500;margin:0 0 2px}.contract-number{background:#f3f4f6;border-radius:3px;color:#6b7280;display:inline-block;font-family:Courier New,monospace;font-size:12px;padding:2px 6px}.date-cell,.size-cell{color:#374151;font-size:13px;white-space:nowrap}.btn-download-dpa{align-items:center;background:linear-gradient(135deg,#5b21b6,#7c3aed);border:none;border-radius:6px;color:#fff;cursor:pointer;display:flex;font-size:13px;font-weight:500;gap:6px;padding:8px 16px;transition:all .2s ease}.btn-download-dpa:hover{background:linear-gradient(135deg,#4c1d95,#6d28d9);box-shadow:0 4px 12px #5b21b64d;transform:translateY(-1px)}.btn-download-dpa:active{transform:translateY(0)}.no-dpa-message{color:#6b7280;padding:40px 20px;text-align:center}.no-dpa-icon{color:#d1d5db;display:block;font-size:48px;margin-bottom:16px}.no-dpa-message p{color:#6b7280;font-size:16px;margin:0}@media (max-width:768px){.dpa-contracts-table{font-size:12px}.dpa-contracts-table td,.dpa-contracts-table th{padding:8px 12px}.contract-name{font-size:13px}.contract-number{font-size:11px}.btn-download-dpa{font-size:12px;padding:6px 12px}}@media (max-width:640px){.rgpd-dpa-section{padding:16px}.dpa-table-wrapper{overflow-x:auto}.dpa-contracts-table{min-width:500px}}.visio-panel{margin:0 auto;max-width:1400px;padding:1.5rem}.visio-header{align-items:flex-start;display:flex;gap:2rem;justify-content:space-between;margin-bottom:1.5rem}.visio-header-content h2{color:#1f2937;font-size:1.5rem;font-weight:600;margin:0 0 .5rem}.visio-subtitle{color:#6b7280;font-size:.875rem;margin:0}.visio-header-actions{display:flex;flex-shrink:0;gap:.75rem}.btn-create-room{align-items:center;background:linear-gradient(135deg,#5b21b6,#7c3aed);border:none;border-radius:8px;box-shadow:0 2px 4px #5b21b633;color:#fff;cursor:pointer;display:flex;font-size:.875rem;font-weight:500;gap:.5rem;padding:.625rem 1.25rem;transition:all .2s}.btn-create-room:hover:not(:disabled){box-shadow:0 4px 8px #5b21b64d;transform:translateY(-1px)}.btn-create-room:disabled{cursor:not-allowed;opacity:.6}.btn-history{align-items:center;background:#fff;border:1px solid #e5e7eb;border-radius:8px;color:#5b21b6;cursor:pointer;display:flex;font-size:.875rem;font-weight:500;gap:.5rem;padding:.625rem 1.25rem;transition:all .2s}.btn-history:hover{background:#f9fafb;border-color:#5b21b6}.info-box{background:linear-gradient(135deg,#eff6ff,#dbeafe);border:1px solid #93c5fd;border-radius:10px;display:flex;gap:1rem;margin-bottom:2rem;padding:1rem}.info-icon{color:#3b82f6;flex-shrink:0;font-size:1.25rem;margin-top:.125rem}.info-content{flex:1 1}.info-content strong{color:#1e40af;display:block;font-size:.875rem;margin-bottom:.25rem}.info-content p{color:#1e3a8a;font-size:.8125rem;line-height:1.5;margin:0}.active-rooms-section{margin-bottom:2rem}.active-rooms-section h3{align-items:center;color:#1f2937;display:flex;font-size:1.125rem;font-weight:600;gap:.5rem;margin:0 0 1rem}.status-active{animation:pulse 2s infinite;color:#10b981;font-size:.625rem}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.rooms-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.room-card{background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:1rem;transition:all .2s}.room-card.active{border-color:#10b981;box-shadow:0 0 0 3px #10b9811a}.room-card:hover{box-shadow:0 4px 12px #0000001a}.room-card-header{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem;justify-content:space-between;margin-bottom:.75rem}.room-card-header h4{color:#1f2937;flex:1 1;font-size:.875rem;font-weight:600;margin:0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.participant-count,.room-date{background:#f3f4f6;border-radius:6px;color:#6b7280;flex-shrink:0;font-size:.75rem;font-weight:500;padding:.25rem .5rem}.participant-count{align-items:center;display:flex;gap:.25rem}.room-card-actions{display:flex;gap:.5rem}.btn-sm{flex:1 1;font-size:.75rem;padding:.5rem .75rem}.btn-secondary{background:#fff;border:1px solid #e5e7eb;border-radius:8px;color:#5b21b6;cursor:pointer;font-size:.875rem;font-weight:500;padding:.625rem 1.25rem;transition:all .2s}.btn-secondary:hover:not(:disabled){background:#f3f0ff;border-color:#5b21b6;color:#5b21b6}.btn-secondary:disabled{cursor:not-allowed;opacity:.5}.btn-danger{background:#fff;border:1px solid #fee2e2;border-radius:8px;color:#dc2626;cursor:pointer;font-size:.875rem;font-weight:500;padding:.625rem 1.25rem;transition:all .2s}.btn-danger:hover:not(:disabled){background:#fef2f2;border-color:#dc2626}.btn-danger:disabled{cursor:not-allowed;opacity:.5}.btn-primary{background:linear-gradient(135deg,#5b21b6,#7c3aed);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:.875rem;font-weight:500;padding:.625rem 1.25rem;transition:all .2s}.btn-primary:hover:not(:disabled){box-shadow:0 4px 8px #5b21b64d;transform:translateY(-1px)}.btn-primary:disabled{cursor:not-allowed;opacity:.6}.history-section{margin-bottom:2rem}.history-section h3{align-items:center;color:#1f2937;display:flex;font-size:1.125rem;font-weight:600;gap:.5rem;margin:0 0 1rem}.history-table{background:#fff;border:1px solid #e5e7eb;border-radius:10px;overflow:hidden}.history-table table{border-collapse:collapse;font-size:.8125rem;width:100%}.history-table thead{background:#f9fafb}.history-table th{color:#6b7280;font-size:.75rem;font-weight:600;letter-spacing:.05em;padding:.75rem 1rem;text-align:left;text-transform:uppercase}.history-table td{border-top:1px solid #f3f4f6;color:#1f2937;padding:.875rem 1rem}.history-table tbody tr:hover{background:#f9fafb}.room-id{color:#6b7280;font-family:Monaco,Courier New,monospace;font-size:.75rem}.text-center{text-align:center}.credits-badge{background:#fef3c7;color:#92400e;font-weight:600}.credits-badge,.status-badge{border-radius:12px;display:inline-block;font-size:.75rem;padding:.25rem .625rem}.status-badge{font-weight:500}.status-badge.status-active{background:#d1fae5;color:#065f46}.status-badge.status-closed{background:#fee2e2;color:#991b1b}.status-badge.status-billed{background:#e0e7ff;color:#3730a3}.modal-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.modal-content{background:#fff;border-radius:12px;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;max-height:90vh;max-width:500px;overflow-y:auto;padding:1.5rem;width:90%}.modal-content.modal-large{max-width:900px}.modal-content.modal-fullscreen{border-radius:0;margin:0;max-width:100vw;min-height:100vh;padding:2.5rem 1rem 1rem;width:100vw}@media (min-width:769px){.modal-content{border-radius:12px;max-height:90vh;max-width:500px;padding:1.5rem;width:90%}.modal-content.modal-large{max-width:900px}.modal-content.modal-fullscreen{border-radius:12px;margin:auto;max-width:900px;min-height:auto;padding:1.5rem;width:90%}}.modal-content h3{align-items:center;color:#1f2937;display:flex;font-size:1.25rem;font-weight:600;gap:.5rem;margin:0 0 1.5rem}.form-group{margin-bottom:1rem}.form-group label{align-items:center;border-radius:6px;color:#374151;cursor:pointer;display:flex;font-size:.875rem;gap:.5rem;padding:.5rem;transition:background .2s}.form-group label[for]{cursor:default;display:block;margin-bottom:.5rem;padding:0}.form-group label[for]:hover{background:#0000}.form-group label:hover{background:#f9fafb}.form-group input[type=checkbox]{cursor:pointer;height:1rem;width:1rem}.form-group input[type=text].form-control{border:1px solid #d1d5db;border-radius:6px;box-sizing:border-box;color:#1f2937;font-size:.875rem;padding:.625rem .875rem;transition:all .2s;width:100%}.form-group input[type=text].form-control:focus{border-color:#5b21b6;box-shadow:0 0 0 3px #5b21b61a;outline:none}.form-group input[type=text].form-control::placeholder{color:#9ca3af}.form-hint{color:#6b7280;display:block;font-size:.75rem;font-style:italic;margin-top:.375rem}.modal-actions{border-top:1px solid #e5e7eb;display:flex;gap:.75rem;justify-content:flex-end;margin-top:1.5rem;padding-top:1.5rem}.history-cards-mobile{display:none}.history-card-mobile{background:#fff;border:1px solid #e5e7eb;border-radius:8px;margin-bottom:.75rem;padding:.875rem}.history-card-header{align-items:flex-start;border-bottom:1px solid #f3f4f6;display:flex;flex-wrap:wrap;gap:.5rem;justify-content:space-between;margin-bottom:.75rem;padding-bottom:.75rem}.history-card-header .room-id{flex:1 1;font-size:.75rem;min-width:0;word-break:break-all}.history-card-body{display:flex;flex-direction:column;gap:.5rem}.history-card-row{align-items:flex-start;display:flex;font-size:.8125rem;gap:.5rem;justify-content:space-between}.history-label{color:#6b7280;font-weight:500;white-space:nowrap}.history-value{color:#1f2937;font-size:.75rem;text-align:right;word-break:break-word}@media (max-width:768px){.visio-panel{padding:1rem}.visio-header{flex-direction:column;gap:1rem}.visio-header-content h2{font-size:1.25rem}.visio-subtitle{font-size:.8125rem}.visio-header-actions{flex-direction:row;width:100%}.btn-create-room,.btn-history{flex:1 1;font-size:.8125rem;justify-content:center;padding:.75rem 1rem}.info-box{flex-direction:column;gap:.75rem;padding:.875rem}.info-content{font-size:.8125rem}.info-content p{margin:.5rem 0}.rooms-grid{gap:1rem;grid-template-columns:1fr}.room-card{padding:1rem}.room-card-header h4{font-size:.875rem}.room-date{font-size:.6875rem}.room-actions{flex-direction:column;gap:.5rem}.room-actions button{justify-content:center;width:100%}.history-section{margin-bottom:1.5rem}.history-section h3{font-size:1rem}.history-table-desktop{display:none!important}.history-cards-mobile{display:block!important}.history-table{-webkit-overflow-scrolling:touch;overflow-x:auto}.history-table table{min-width:600px}.history-table td,.history-table th{font-size:.75rem;padding:.625rem .75rem}.modal-overlay{align-items:flex-start!important;padding:0!important}.modal-actions{flex-direction:column;gap:.5rem;margin-top:1rem;padding-top:1rem}.modal-actions button{justify-content:center;width:100%}.form-group{padding:.75rem}.form-group label{font-size:.8125rem}.credits-badge,.status-badge{font-size:.6875rem;padding:.1875rem .5rem}}