:root{--skin-primary:#0ea5e9;--skin-primary-dark:#0284c7;--skin-secondary:#8b5cf6;--skin-accent:#f59e0b;--skin-success:#10b981;--skin-warning:#f59e0b;--skin-danger:#ef4444;--skin-info:#3b82f6;--skin-bg:#f8fafc;--skin-bg-card:#fff;--skin-text:#1e293b;--skin-text-muted:#64748b;--skin-border:#e2e8f0;--soin-consultation:#3b82f6;--soin-laser:#10b981;--soin-visage:#a855f7;--soin-corporel:#f97316;--soin-greffe:#ec4899;--soin-phlebologie:#6366f1;--slot-available:#d1fae5;--slot-booked:#dbeafe;--slot-blocked:#f3f4f6;--slot-break:#fef3c7;--slot-urgent:#fee2e2;--practitioner-1:#8b5cf6;--practitioner-2:#ec4899;--practitioner-3:#14b8a6;--practitioner-4:#f97316;--practitioner-5:#6366f1;--status-scheduled:#3b82f6;--status-confirmed:#10b981;--status-arrived:#8b5cf6;--status-in-progress:#f59e0b;--status-completed:#059669;--status-cancelled:#ef4444;--status-no-show:#dc2626;--gradient-primary:linear-gradient(135deg,#0ea5e9,#3b82f6);--gradient-success:linear-gradient(135deg,#10b981,#059669);--gradient-accent:linear-gradient(135deg,#f59e0b,#d97706);--room-1:#e0e7ff;--room-2:#fce7f3;--room-3:#ccfbf1;--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:32px;--space-2xl:48px;--calendar-cell-height:3rem;--sidebar-width:280px;--header-height:64px;--font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--font-size-xs:12px;--font-size-sm:14px;--font-size-base:16px;--font-size-lg:18px;--font-size-xl:20px;--font-size-2xl:24px;--font-size-3xl:30px;--shadow-sm:0 1px 2px rgba(0,0,0,.05);--shadow-md:0 4px 6px rgba(0,0,0,.07);--shadow-lg:0 10px 15px rgba(0,0,0,.1);--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-full:9999px;--transition-base:200ms ease;--transition-slow:300ms ease;--z-dropdown:100;--z-modal:200;--z-popover:300;--z-tooltip:400;--z-toast:500}@media (prefers-color-scheme:dark){:root.dark-mode{--skin-bg:#121212;--skin-bg-card:#1e1e1e;--skin-text:#e4e4e4;--skin-text-muted:#a0a0a0;--skin-border:#333}}.high-contrast{--skin-text:#000;--skin-bg:#fff}.agenda-calendar-container{background-color:var(--skin-bg);color:var(--skin-text);font-family:var(--font-family)}.calendar-grid{display:grid;grid-template-columns:80px repeat(7,1fr);gap:1px;background-color:#e5e7eb}.calendar-cell{min-height:var(--calendar-cell-height);background-color:#fff;position:relative}.slot-available{background-color:var(--slot-available);cursor:pointer;transition:all .2s ease}.slot-available:hover{background-color:#a7f3d0;transform:scale(1.02)}.slot-booked{background-color:var(--slot-booked);cursor:pointer}.slot-blocked{background-color:var(--slot-blocked);cursor:not-allowed;opacity:.6}.slot-break{background-color:var(--slot-break)}.slot-urgent{background-color:var(--slot-urgent);border:2px solid #ef4444}.status-badge{padding:.25rem .75rem;border-radius:9999px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;display:inline-flex;align-items:center;gap:.375rem}.status-scheduled{background-color:#dbeafe;color:var(--status-scheduled)}.status-confirmed{background-color:#d1fae5;color:var(--status-confirmed)}.status-arrived{background-color:#e0e7ff;color:var(--status-arrived)}.status-in-progress{background-color:#fef3c7;color:#d97706}.status-completed{background-color:#d1fae5;color:var(--status-completed)}.status-cancelled{background-color:#fee2e2;color:var(--status-cancelled)}.status-no-show{background-color:#fee2e2;color:var(--status-no-show)}.practitioner-band-1{border-left:4px solid var(--practitioner-1)}.practitioner-band-2{border-left:4px solid var(--practitioner-2)}.practitioner-band-3{border-left:4px solid var(--practitioner-3)}.practitioner-band-4{border-left:4px solid var(--practitioner-4)}.practitioner-band-5{border-left:4px solid var(--practitioner-5)}.room-bg-1{background-color:var(--room-1)}.room-bg-2{background-color:var(--room-2)}.room-bg-3{background-color:var(--room-3)}@keyframes slideIn{0%{transform:translateX(100%);opacity:0}to{transform:translateX(0);opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.animate-slide-in{animation:slideIn .3s ease-out}.animate-fade-in{animation:fadeIn .2s ease-out}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.calendar-event{border-radius:.375rem;padding:.5rem;margin:.125rem;font-size:.875rem;box-shadow:0 1px 3px 0 rgba(0,0,0,.1);cursor:pointer;transition:all .2s ease}.calendar-event:hover{box-shadow:0 4px 6px -1px rgba(0,0,0,.1);transform:translateY(-1px)}.custom-scrollbar::-webkit-scrollbar{width:8px;height:8px}.custom-scrollbar::-webkit-scrollbar-track{background:#f3f4f6;border-radius:4px}.custom-scrollbar::-webkit-scrollbar-thumb{background:#9ca3af;border-radius:4px}.custom-scrollbar::-webkit-scrollbar-thumb:hover{background:#6b7280}.focus-ring:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.skeleton{background:linear-gradient(90deg,#f3f4f6,#e5e7eb 20%,#f3f4f6 40%,#f3f4f6);background-size:200% 100%;animation:skeleton-loading 1.5s ease-in-out infinite}@keyframes skeleton-loading{0%{background-position:200% 0}to{background-position:-200% 0}}.dragging{opacity:.5;cursor:grabbing}.drop-zone{border:2px dashed #3b82f6;background-color:#eff6ff}@media print{.no-print{display:none!important}.calendar-event{box-shadow:none;border:1px solid #e5e7eb}}:root{--medical-primary:#1e6091;--medical-secondary:#0d7377;--medical-accent:#6b5b95;--medical-confirmed:#2e7d5a;--medical-pending:#c17f24;--medical-danger:#8b3a3a;--medical-bg:#f8fafc;--medical-border:#e2e8f0;--medical-text:#1e293b;--medical-text-muted:#64748b}.fc{--fc-border-color:var(--medical-border);--fc-button-bg-color:var(--medical-primary);--fc-button-border-color:var(--medical-primary);--fc-button-hover-bg-color:#164a73;--fc-button-active-bg-color:#0f3a5c;--fc-today-bg-color:rgba(30,96,145,.06);--fc-now-indicator-color:var(--medical-danger);--fc-event-border-color:transparent;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,sans-serif;background-color:var(--medical-bg)}.fc .fc-toolbar-title{font-size:1.5rem;font-weight:600;color:#1f2937}.fc .fc-button{border-radius:.5rem;font-weight:500;text-transform:none;padding:.5rem 1rem;transition:all .2s}.fc .fc-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 6px -1px rgba(0,0,0,.1)}.fc .fc-button-primary:disabled{opacity:.6;cursor:not-allowed}.fc-event{border-radius:.5rem;border-width:0 0 0 4px;font-size:.8rem;cursor:pointer;transition:all .2s ease;padding:4px 6px;overflow:hidden;box-shadow:0 1px 3px rgba(0,0,0,.08);backdrop-filter:blur(4px)}.fc-event:hover{transform:translateY(-2px);box-shadow:0 6px 12px -2px rgba(0,0,0,.12),0 3px 6px -2px rgba(0,0,0,.08);z-index:10}.fc-event-title{font-weight:600;letter-spacing:-.01em;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.15)}.fc-event-time{font-size:.7rem;opacity:.9}.whatsapp-confirmed{position:relative;box-shadow:0 0 0 2px var(--medical-confirmed),0 2px 8px rgba(46,125,90,.2)}.whatsapp-confirmed:after{content:"✓";position:absolute;top:2px;right:4px;font-size:10px;font-weight:700;color:#fff;background:var(--medical-confirmed);border-radius:50%;width:16px;height:16px;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 3px rgba(0,0,0,.2)}.whatsapp-pending{position:relative;border-left-style:dashed;opacity:.85}.whatsapp-pending:after{content:"⏳";position:absolute;top:2px;right:4px;font-size:10px;background:var(--medical-pending);border-radius:50%;width:16px;height:16px;display:flex;align-items:center;justify-content:center;animation:pulse-pending 2s ease-in-out infinite}@keyframes pulse-pending{0%,to{opacity:1}50%{opacity:.6}}.high-risk-event{border-left-color:#e74c3c!important;border-left-width:4px!important;background:linear-gradient(135deg,#e74c3c,#c0392b)!important;animation:pulse-risk 2s ease-in-out infinite}@keyframes pulse-risk{0%,to{box-shadow:0 0 0 0 rgba(231,76,60,.4)}50%{box-shadow:0 0 0 4px rgba(231,76,60,0)}}.unconfirmed-event{opacity:.75;border-style:dashed!important;border-width:2px!important;position:relative}.unconfirmed-event:before{content:"?";position:absolute;top:2px;right:4px;font-size:10px;font-weight:700;color:#fff;background:rgba(0,0,0,.3);border-radius:50%;width:14px;height:14px;display:flex;align-items:center;justify-content:center}.cancelled-event{opacity:.5;text-decoration:line-through;background-color:var(--skin-text-muted)!important}.fc-resource-area{background-color:var(--skin-bg)}.fc-resource-cell{font-weight:500;color:var(--skin-text)}.fc-timegrid-slot-minor{border-top-style:dotted}.fc-now-indicator-line{border-color:var(--skin-danger);border-width:2px}.fc-now-indicator-arrow{border-color:var(--skin-danger)}.fc-non-business{background-color:rgba(0,0,0,.03)}.fc .fc-timegrid-slot{height:2.5rem}.fc .fc-timegrid-slot-label{font-size:.875rem;color:#6b7280;vertical-align:middle}.fc .fc-timegrid-slot-minor{border-top-style:dotted;border-color:#f3f4f6}.fc .fc-timegrid-slot-major{border-color:#e5e7eb}.fc .fc-col-header-cell{padding:.75rem .5rem;font-weight:600;font-size:.875rem;background-color:#f9fafb;border-color:#e5e7eb}.fc .fc-day-today .fc-col-header-cell-cushion{color:#2e86ab}.fc .fc-daygrid-day{cursor:pointer;transition:background-color .15s}.fc .fc-daygrid-day:hover{background-color:#f9fafb}.fc .fc-daygrid-day-number{padding:.5rem;font-size:.875rem}.fc .fc-daygrid-event{margin:1px 2px;padding:2px 4px}.fc-scroller::-webkit-scrollbar{width:8px;height:8px}.fc-scroller::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}.fc-scroller::-webkit-scrollbar-thumb{background:#cbd5e0;border-radius:4px}.fc-scroller::-webkit-scrollbar-thumb:hover{background:#a0aec0}.fc-event.fc-event-loading{opacity:.6;pointer-events:none}@media (max-width:768px){.fc-header-toolbar{flex-direction:column;gap:8px}.fc .fc-toolbar-title{font-size:1.25rem}.fc .fc-button{padding:.375rem .75rem;font-size:.875rem}.fc-resource-area{width:100px!important}.fc .fc-col-header-cell{font-size:.75rem;padding:.5rem .25rem}.fc-event{font-size:.65rem}}@media (max-width:480px){.fc .fc-toolbar-title{font-size:1rem}.fc .fc-col-header-cell-cushion{padding:.25rem}}:root{--phototype-i:#ffe4d4;--phototype-ii:#f5d5c8;--phototype-iii:#d4a574;--phototype-iv:#b8860b;--phototype-v-minus:#8b6914;--phototype-vc:#6b4423;--phototype-v-plus:#4a3728;--phototype-vi:#2d1f1a;--alert-critical:#dc2626;--alert-warning:#f59e0b;--alert-info:#3b82f6;--alert-success:#10b981;--alert-critical-bg:#fee2e2;--alert-warning-bg:#fef3c7;--alert-info-bg:#dbeafe;--alert-success-bg:#d1fae5;--section-personal:#e0e7ff;--section-medical:#fee2e2;--section-treatment:#d1fae5;--section-gallery:#fef3c7;--section-finance:#e0f2fe;--status-new:#9c27b0;--status-active:#10b981;--status-inactive:#6b7280;--status-vip:#f59e0b;--treatment-in-progress:#3b82f6;--treatment-completed:#10b981;--treatment-cancelled:#ef4444;--treatment-pending:#f59e0b;--zone-rachis-cervical:#e91e63;--zone-rachis-dorsal:#9c27b0;--zone-rachis-lombaire:#673ab7;--zone-epaule:#3f51b5;--zone-coude:#2196f3;--zone-poignet-main:#03a9f4;--zone-hanche:#00bcd4;--zone-genou:#009688;--zone-cheville-pied:#4caf50;--zone-post-op:#ff9800;--zone-neurologique:#795548;--spacing-xs:0.25rem;--spacing-sm:0.5rem;--spacing-md:1rem;--spacing-lg:1.5rem;--spacing-xl:2rem;--card-radius:0.75rem;--card-shadow:0 1px 3px 0 rgba(0,0,0,.1);--card-shadow-hover:0 4px 16px rgba(0,0,0,.12);--shadow-sticky:0 2px 12px rgba(0,0,0,.15);--font-heading:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto",sans-serif;--font-body:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto",sans-serif;--transition-fast:150ms ease;--transition-normal:250ms ease;--transition-slow:350ms ease}.privacy-mode .patient-address,.privacy-mode .patient-email,.privacy-mode .patient-name,.privacy-mode .patient-phone{filter:blur(8px);transition:filter var(--transition-normal);-webkit-user-select:none;-moz-user-select:none;user-select:none}.privacy-mode .patient-address:hover,.privacy-mode .patient-email:hover,.privacy-mode .patient-name:hover,.privacy-mode .patient-phone:hover{filter:blur(0);-webkit-user-select:text;-moz-user-select:text;user-select:text}.privacy-mode .patient-photo{filter:blur(20px);transition:filter var(--transition-normal)}.privacy-mode .patient-photo:hover{filter:blur(0)}.phototype-risk-low{border-color:var(--alert-success)}.phototype-risk-moderate{border-color:var(--alert-warning)}.phototype-risk-high,.phototype-risk-maximum,.phototype-risk-very-high{border-color:var(--alert-critical);animation:pulse-warning 2s ease-in-out infinite}@keyframes pulse-warning{0%,to{opacity:1}50%{opacity:.7}}.section-card-personal{border-left:4px solid var(--section-personal)}.section-card-medical{border-left:4px solid var(--section-medical)}.section-card-treatment{border-left:4px solid var(--section-treatment)}.section-card-gallery{border-left:4px solid var(--section-gallery)}.section-card-finance{border-left:4px solid var(--section-finance)}:focus-visible{outline:2px solid var(--alert-info);outline-offset:2px}@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}