@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap";:root{--primary-blue:#2563eb;--primary-blue-dark:#1e40af;--primary-blue-light:#3b82f6;--secondary-teal:#14b8a6;--secondary-teal-dark:#0d9488;--accent-purple:#8b5cf6;--success-green:#10b981;--warning-orange:#f59e0b;--danger-red:#ef4444;--bg-light:#f8fafc;--bg-white:#fff;--text-dark:#0f172a;--text-gray:#64748b;--text-light:#94a3b8;--border-color:#e2e8f0;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a;--shadow-xl:0 20px 25px -5px #0000001a}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-light);color:var(--text-dark);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;line-height:1.6}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-light)}::-webkit-scrollbar-thumb{background:var(--text-light);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-gray)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.fade-in{animation:.3s ease-in-out fadeIn}.container{max-width:1400px;margin:0 auto;padding:0 1.5rem}.btn{cursor:pointer;border:none;border-radius:.5rem;align-items:center;gap:.5rem;padding:.625rem 1.25rem;font-size:.875rem;font-weight:500;text-decoration:none;transition:all .2s;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background-color:var(--primary-blue);color:#fff}.btn-primary:hover:not(:disabled){background-color:var(--primary-blue-dark);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-secondary{background-color:var(--secondary-teal);color:#fff}.btn-secondary:hover:not(:disabled){background-color:var(--secondary-teal-dark);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-outline{border:1.5px solid var(--primary-blue);color:var(--primary-blue);background-color:#0000}.btn-outline:hover:not(:disabled){background-color:var(--primary-blue);color:#fff}.btn-danger:hover:not(:disabled){box-shadow:var(--shadow-md);background-color:#dc2626;transform:translateY(-1px)}.card{background-color:var(--bg-white);box-shadow:var(--shadow-sm);border:1px solid var(--border-color);border-radius:1rem;padding:1.5rem;transition:all .2s}.card:hover{box-shadow:var(--shadow-md)}.badge{text-transform:uppercase;letter-spacing:.5px;border-radius:9999px;align-items:center;padding:.25rem .75rem;font-size:.75rem;font-weight:600;display:inline-flex}.badge-success{color:#065f46;background-color:#d1fae5}.badge-warning{color:#92400e;background-color:#fef3c7}.badge-danger{color:#991b1b;background-color:#fee2e2}.badge-info{color:#1e40af;background-color:#dbeafe}input[type=text],input[type=email],input[type=tel],input[type=date],input[type=time],input[type=number],textarea,select{border:1.5px solid var(--border-color);background-color:var(--bg-white);border-radius:.5rem;width:100%;padding:.75rem;font-family:inherit;font-size:.875rem;transition:all .2s}input:focus,textarea:focus,select:focus{border-color:var(--primary-blue);outline:none;box-shadow:0 0 0 3px #2563eb1a}textarea{resize:vertical;min-height:100px}label{color:var(--text-dark);margin-bottom:.5rem;font-size:.875rem;font-weight:500;display:block}.form-group{margin-bottom:1.25rem}.grid{gap:1.5rem;display:grid}.grid-cols-2{grid-template-columns:repeat(2,1fr)}.grid-cols-3{grid-template-columns:repeat(3,1fr)}@media (max-width:768px){.grid-cols-2,.grid-cols-3{grid-template-columns:1fr}}.layout{background-color:var(--bg-light);min-height:100vh;display:flex}.sidebar{background:linear-gradient(180deg,var(--primary-blue)0%,var(--primary-blue-dark)100%);color:#fff;z-index:1000;height:100vh;box-shadow:var(--shadow-lg);flex-direction:column;transition:width .3s;display:flex;position:fixed;top:0;left:0}.sidebar.open{width:260px}.sidebar.closed{width:80px}.sidebar-header{border-bottom:1px solid #ffffff1a;padding:1.5rem}.logo{color:#fff;align-items:center;gap:.75rem;font-size:1.25rem;font-weight:700;display:flex}.logo span{white-space:nowrap;overflow:hidden}.sidebar-nav{flex:1;padding:1.5rem 0;overflow-y:auto}.nav-item{color:#fffc;border-left:3px solid #0000;align-items:center;gap:.75rem;padding:.875rem 1.5rem;font-size:.9rem;font-weight:500;text-decoration:none;transition:all .2s;display:flex}.nav-item:hover{color:#fff;background-color:#ffffff1a}.nav-item.active{color:#fff;border-left-color:var(--secondary-teal);background-color:#ffffff26}.sidebar.closed .nav-item{justify-content:center;padding:.875rem 1rem}.sidebar.closed .nav-item span{display:none}.sidebar-footer{border-top:1px solid #ffffff1a;padding:1rem}.toggle-btn{color:#fff;cursor:pointer;background-color:#ffffff1a;border:none;border-radius:.5rem;justify-content:center;align-items:center;width:100%;padding:.75rem;transition:all .2s;display:flex}.toggle-btn:hover{background-color:#fff3}.main-content{flex:1;transition:margin-left .3s}.main-content.sidebar-open{margin-left:260px}.main-content.sidebar-closed{margin-left:80px}.top-header{background-color:var(--bg-white);border-bottom:1px solid var(--border-color);z-index:100;box-shadow:var(--shadow-sm);position:sticky;top:0}.header-content{justify-content:space-between;align-items:center;padding:1rem 2rem;display:flex}.mobile-menu-btn{color:var(--text-dark);cursor:pointer;background:0 0;border:none;border-radius:.375rem;padding:.5rem;transition:background-color .2s;display:none}.mobile-menu-btn:hover{background-color:var(--bg-light)}.header-right{align-items:center;gap:1.5rem;display:flex}.user-info{align-items:center;gap:.75rem;display:flex}.user-avatar{background:linear-gradient(135deg,var(--primary-blue),var(--secondary-teal));color:#fff;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;font-size:.875rem;font-weight:600;display:flex}.user-details{flex-direction:column;display:flex}.user-name{color:var(--text-dark);font-size:.875rem;font-weight:600}.user-role{color:var(--text-gray);font-size:.75rem}.page-content{min-height:calc(100vh - 73px);padding:2rem}@media (max-width:768px){.sidebar{transform:translate(-100%)}.sidebar.open{width:260px;transform:translate(0)}.main-content{width:100%;margin-left:0!important}.mobile-menu-btn{display:block}.user-details{display:none}.page-content{padding:1rem}}.dashboard-page{max-width:1400px;margin:0 auto}.date-info{color:var(--text-gray);text-transform:capitalize;align-items:center;gap:.5rem;font-size:.875rem;font-weight:500;display:flex}.stats-grid-main{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.5rem;margin-bottom:2rem;display:grid}.stat-card-main{align-items:center;gap:1.25rem;padding:1.5rem;transition:all .2s;display:flex}.stat-card-main:hover{box-shadow:var(--shadow-lg);transform:translateY(-4px)}.stat-icon-wrapper{color:#fff;border-radius:16px;flex-shrink:0;justify-content:center;align-items:center;width:64px;height:64px;display:flex}.stat-icon-wrapper.stat-blue{background:linear-gradient(135deg,var(--primary-blue),var(--primary-blue-light))}.stat-icon-wrapper.stat-green{background:linear-gradient(135deg,var(--success-green),#34d399)}.stat-icon-wrapper.stat-purple{background:linear-gradient(135deg,var(--accent-purple),#a78bfa)}.stat-icon-wrapper.stat-teal{background:linear-gradient(135deg,var(--secondary-teal),#2dd4bf)}.stat-content{flex:1}.stat-content h2{color:var(--text-dark);margin:0;font-size:2.25rem;font-weight:700;line-height:1}.stat-content p{color:var(--text-gray);margin:.5rem 0;font-size:.875rem;font-weight:500}.stat-trend{color:var(--success-green);align-items:center;gap:.375rem;font-size:.8125rem;font-weight:500;display:flex}.dashboard-grid{grid-template-columns:repeat(auto-fit,minmax(450px,1fr));gap:1.5rem;margin-bottom:2rem;display:grid}.dashboard-section{flex-direction:column;display:flex}.section-header{border-bottom:2px solid var(--border-color);justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:1rem;display:flex}.section-header h3{color:var(--text-dark);align-items:center;gap:.5rem;margin:0;font-size:1.125rem;font-weight:600;display:flex}.section-header h3 svg{color:var(--primary-blue)}.section-link{color:var(--primary-blue);font-size:.875rem;font-weight:500;text-decoration:none;transition:color .2s}.section-link:hover{color:var(--primary-blue-dark)}.rdv-list{flex-direction:column;gap:.75rem;display:flex}.rdv-item{background-color:var(--bg-light);border-radius:.75rem;align-items:center;gap:1rem;padding:1rem;transition:all .2s;display:flex}.rdv-item:hover{background-color:#e0e7ff;transform:translate(4px)}.rdv-time-badge{background:linear-gradient(135deg,var(--primary-blue),var(--primary-blue-light));color:#fff;text-align:center;border-radius:.5rem;min-width:70px;padding:.5rem .75rem;font-size:.9375rem;font-weight:700}.rdv-info{flex:1}.rdv-info h4{color:var(--text-dark);margin:0 0 .25rem;font-size:.9375rem;font-weight:600}.rdv-info p{color:var(--text-gray);margin:0;font-size:.8125rem}.rdv-status{flex-shrink:0}.visite-item{background-color:var(--bg-light);border-left:3px solid var(--secondary-teal);border-radius:.75rem;gap:1rem;padding:1rem;transition:all .2s;display:flex}.visite-item:hover{background-color:#d1fae5;transform:translate(4px)}.visite-icon{background-color:var(--bg-white);width:40px;height:40px;color:var(--secondary-teal);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.visite-info{flex:1}.visite-info h4{color:var(--text-dark);margin:0 0 .25rem;font-size:.9375rem;font-weight:600}.visite-diagnostic{color:var(--text-dark);margin:0 0 .375rem;font-size:.8125rem;font-weight:500}.visite-date{color:var(--text-gray);font-size:.75rem}.quick-actions{padding:1.5rem}.quick-actions h3{color:var(--text-dark);margin:0 0 1.25rem;font-size:1.125rem;font-weight:600}.actions-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;display:grid}.action-btn{background:linear-gradient(135deg,var(--bg-light),var(--bg-white));border:2px solid var(--border-color);color:var(--text-dark);border-radius:.75rem;flex-direction:column;align-items:center;gap:.75rem;padding:1.5rem 1rem;font-size:.9375rem;font-weight:500;text-decoration:none;transition:all .2s;display:flex}.action-btn:hover{border-color:var(--primary-blue);box-shadow:var(--shadow-md);background:linear-gradient(135deg,#dbeafe,#e0e7ff);transform:translateY(-4px)}.action-btn svg{color:var(--primary-blue)}.action-btn:hover svg{transform:scale(1.1)}@media (max-width:1024px){.dashboard-grid{grid-template-columns:1fr}}@media (max-width:768px){.page-header{flex-direction:column;align-items:flex-start;gap:1rem}.stats-grid-main{grid-template-columns:repeat(2,1fr)}.stat-card-main{text-align:center;flex-direction:column}.stat-content h2{font-size:1.875rem}.actions-grid{grid-template-columns:repeat(2,1fr)}.action-btn{padding:1.25rem .75rem;font-size:.8125rem}}@media (max-width:480px){.stats-grid-main,.actions-grid{grid-template-columns:1fr}}.patients-page{max-width:1400px;margin:0 auto}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:2rem;display:flex}.page-title{align-items:center;gap:1rem;display:flex}.page-icon{color:var(--primary-blue)}.page-title h1{color:var(--text-dark);margin:0;font-size:1.875rem;font-weight:700}.page-subtitle{color:var(--text-gray);margin:0;font-size:.875rem}.search-bar{align-items:center;gap:.75rem;margin-bottom:2rem;padding:1rem;display:flex}.search-icon{color:var(--text-gray)}.search-input{background:0 0;border:none;outline:none;flex:1;padding:0;font-size:.9375rem}.filters{flex-wrap:wrap;align-items:center;gap:2rem;margin-bottom:2rem;padding:1rem;display:flex}.filter-group{align-items:center;gap:.75rem;display:flex}.filter-group label{color:var(--text-dark);font-size:.875rem;font-weight:500}.filter-buttons{gap:.5rem;display:flex}.filter-btn{border:1px solid var(--border-color);cursor:pointer;background:#fff;border-radius:8px;padding:.5rem 1rem;font-size:.875rem;transition:all .2s}.filter-btn:hover{background:var(--background)}.filter-btn.active{background:var(--primary-blue);color:#fff;border-color:var(--primary-blue)}.age-inputs{align-items:center;gap:.5rem;display:flex}.age-input{border:1px solid var(--border-color);border-radius:8px;width:80px;padding:.5rem;font-size:.875rem}.age-input:focus{border-color:var(--primary-blue);outline:none}.btn-reset{border:1px solid var(--border-color);cursor:pointer;color:var(--text-gray);background:#fff;border-radius:8px;padding:.5rem 1rem;font-size:.875rem;transition:all .2s}.btn-reset:hover{color:#fff;background:#f87171;border-color:#f87171}.loading-state{text-align:center;color:var(--text-gray);padding:2rem}.patients-grid{grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:1.5rem;margin-bottom:2rem;display:grid}.patient-card{cursor:pointer;transition:all .2s}.patient-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-4px)}.patient-header{border-bottom:1px solid var(--border-color);align-items:center;gap:1rem;margin-bottom:1rem;padding-bottom:1rem;display:flex}.patient-avatar{background:linear-gradient(135deg,var(--primary-blue),var(--secondary-teal));color:#fff;border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;font-size:1.125rem;font-weight:600;display:flex}.patient-info h3{color:var(--text-dark);margin:0;font-size:1.125rem;font-weight:600}.patient-age{color:var(--text-gray);font-size:.875rem}.patient-details{flex-direction:column;gap:.75rem;margin-bottom:1rem;display:flex}.detail-item{color:var(--text-gray);align-items:center;gap:.5rem;font-size:.875rem;display:flex}.detail-item svg{color:var(--primary-blue);flex-shrink:0}.patient-visits{background-color:var(--bg-light);border-radius:.5rem;margin-bottom:1rem;padding:.75rem}.visit-info{justify-content:space-between;align-items:center;margin-bottom:.25rem;font-size:.8125rem;display:flex}.visit-info:last-child{margin-bottom:0}.visit-label{color:var(--text-gray)}.visit-date{color:var(--text-dark);font-weight:600}.next-appointment{color:var(--secondary-teal);align-items:center;gap:.375rem;font-weight:600;display:flex}.patient-actions{justify-content:flex-end;gap:.5rem;display:flex}.btn-icon{cursor:pointer;border:none;border-radius:.375rem;justify-content:center;align-items:center;padding:.5rem;transition:all .2s;display:flex}.btn-view{color:var(--primary-blue);background-color:#dbeafe}.btn-view:hover{background-color:#bfdbfe}.btn-edit{color:var(--warning-orange);background-color:#fef3c7}.btn-edit:hover{background-color:#fde68a}.btn-delete{color:var(--danger-red);background-color:#fee2e2}.btn-delete:hover{background-color:#fecaca}.modal-overlay{z-index:2000;background-color:#00000080;justify-content:center;align-items:center;padding:1rem;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.modal{background-color:var(--bg-white);box-shadow:var(--shadow-xl);border-radius:1rem;width:100%;max-width:600px;max-height:90vh;animation:.3s slideUp;overflow-y:auto}.modal-large{max-width:800px}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}.modal-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:1.5rem;display:flex}.modal-header h2{color:var(--text-dark);margin:0;font-size:1.5rem;font-weight:600}.modal-close{color:var(--text-gray);cursor:pointer;background:0 0;border:none;border-radius:.375rem;justify-content:center;align-items:center;width:32px;height:32px;font-size:2rem;transition:all .2s;display:flex}.modal-close:hover{background-color:var(--bg-light);color:var(--text-dark)}.modal-actions{border-top:1px solid var(--border-color);justify-content:flex-end;gap:.75rem;margin-top:1.5rem;padding-top:1.5rem;display:flex}.patient-history{padding:1.5rem}.history-section{margin-bottom:2rem}.history-section:last-child{margin-bottom:0}.history-section h3{color:var(--text-dark);margin-bottom:1rem;font-size:1.125rem;font-weight:600}.info-grid{background-color:var(--bg-light);border-radius:.5rem;grid-template-columns:repeat(2,1fr);gap:1rem;padding:1rem;display:grid}.info-grid div{font-size:.875rem}.info-grid strong{color:var(--text-gray);font-weight:500}.empty-message{color:var(--text-gray);text-align:center;background-color:var(--bg-light);border-radius:.5rem;padding:2rem;font-style:italic}.visits-list,.rdv-list{flex-direction:column;gap:1rem;display:flex}.visit-item,.rdv-item{background-color:var(--bg-light);border-left:3px solid var(--primary-blue);border-radius:.5rem;padding:1rem}.visit-header,.rdv-date{color:var(--text-gray);align-items:center;gap:.5rem;margin-bottom:.75rem;font-size:.875rem;display:flex}.visit-header svg,.rdv-date svg{color:var(--primary-blue)}.visit-details{flex-direction:column;gap:.5rem;font-size:.875rem;display:flex}.visit-details div{line-height:1.5}.visit-details strong{color:var(--text-gray);margin-right:.5rem;font-weight:500}.constantes{background-color:#fff;border-radius:.375rem;flex-wrap:wrap;gap:1rem;margin-top:.5rem;padding:.75rem;display:flex}.constantes span{color:var(--text-dark);font-size:.8125rem;font-weight:500}.rdv-info{align-items:center;gap:.75rem;font-size:.875rem;display:flex}.rdv-info svg{color:var(--primary-blue)}@media (max-width:768px){.patients-grid{grid-template-columns:1fr}.page-header{flex-direction:column;align-items:flex-start}.info-grid{grid-template-columns:1fr}}.searchable-select{width:100%;position:relative}.select-trigger{cursor:pointer;background-color:#fff;border:1.5px solid #e0e0e0;border-radius:.5rem;justify-content:space-between;align-items:center;min-height:42px;padding:.625rem .75rem;transition:all .2s;display:flex}.select-trigger:hover{border-color:#2563eb}.select-trigger.open{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.select-trigger.empty{border-color:#e0e0e0}.select-trigger .placeholder{color:#9ca3af}.select-trigger .chevron{color:#6b7280;transition:transform .2s}.select-trigger .chevron.rotate{transform:rotate(180deg)}.select-dropdown{z-index:1000;background:#fff;border:1px solid #e0e0e0;border-radius:.5rem;flex-direction:column;max-height:300px;animation:.2s slideDown;display:flex;position:absolute;top:calc(100% + .25rem);left:0;right:0;box-shadow:0 10px 25px #0000001a}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.search-box{background-color:#f9fafb;border-bottom:1px solid #e0e0e0;align-items:center;gap:.5rem;padding:.75rem;display:flex}.search-box svg{color:#6b7280;flex-shrink:0}.search-box input{color:#1f2937;background:0 0;border:none;outline:none;flex:1;font-size:.875rem}.search-box input::placeholder{color:#9ca3af}.options-list{max-height:240px;overflow-y:auto}.option-item{cursor:pointer;color:#1f2937;padding:.75rem;font-size:.875rem;transition:background-color .15s}.option-item:hover{background-color:#f3f4f6}.option-item.selected{color:#2563eb;background-color:#dbeafe;font-weight:500}.no-options{text-align:center;color:#9ca3af;padding:1.5rem;font-size:.875rem;font-style:italic}.options-list::-webkit-scrollbar{width:6px}.options-list::-webkit-scrollbar-track{background:#f3f4f6}.options-list::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:3px}.options-list::-webkit-scrollbar-thumb:hover{background:#9ca3af}.rendez-vous-page{max-width:1400px;margin:0 auto}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem;margin-bottom:2rem;display:grid}.stat-card{align-items:center;gap:1rem;padding:1.25rem;display:flex}.stat-icon{color:#fff;border-radius:12px;justify-content:center;align-items:center;width:56px;height:56px;display:flex}.stat-blue{background:linear-gradient(135deg,var(--primary-blue),var(--primary-blue-light))}.stat-green{background:linear-gradient(135deg,var(--success-green),#34d399)}.stat-orange{background:linear-gradient(135deg,var(--warning-orange),#fbbf24)}.stat-purple{background:linear-gradient(135deg,var(--accent-purple),#a78bfa)}.stat-info h3{color:var(--text-dark);margin:0;font-size:1.875rem;font-weight:700;line-height:1}.stat-info p{color:var(--text-gray);margin:.25rem 0 0;font-size:.875rem}.filters-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:2rem;padding:1rem 1.5rem;display:flex}.filter-divider{background-color:var(--border-color);width:1px;height:30px}.filter-group{color:var(--text-gray);align-items:center;gap:.5rem;font-weight:500;display:flex}.filter-buttons{flex-wrap:wrap;gap:.5rem;display:flex}.filter-btn{border:1.5px solid var(--border-color);background-color:var(--bg-white);color:var(--text-gray);cursor:pointer;border-radius:.5rem;padding:.5rem 1rem;font-size:.875rem;font-weight:500;transition:all .2s}.filter-btn:hover{border-color:var(--primary-blue);color:var(--primary-blue)}.filter-btn.active{background-color:var(--primary-blue);border-color:var(--primary-blue);color:#fff}.appointments-timeline{flex-direction:column;gap:2rem;display:flex}.date-group{animation:.3s fadeIn}.date-header{border-bottom:2px solid var(--border-color);align-items:center;gap:.75rem;margin-bottom:1rem;padding-bottom:.75rem;display:flex}.date-header svg{color:var(--primary-blue)}.date-header h3{color:var(--text-dark);text-transform:capitalize;flex:1;margin:0;font-size:1.125rem;font-weight:600}.rdv-count{background-color:var(--primary-blue);color:#fff;border-radius:9999px;padding:.25rem .75rem;font-size:.75rem;font-weight:600}.appointments-list{flex-direction:column;gap:1rem;display:flex}.appointment-card{grid-template-columns:120px 1fr auto;align-items:center;gap:1.5rem;transition:all .2s;display:grid}.appointment-card:hover{box-shadow:var(--shadow-md);transform:translate(4px)}.appointment-time{background:linear-gradient(135deg,var(--primary-blue),var(--primary-blue-light));color:#fff;border-radius:.75rem;flex-direction:column;align-items:center;gap:.25rem;padding:.75rem;display:flex}.appointment-time svg{margin-bottom:.25rem}.appointment-time .time{font-size:1.25rem;font-weight:700}.appointment-time .duration{opacity:.9;font-size:.75rem}.appointment-details{flex-direction:column;gap:.5rem;display:flex}.patient-name{align-items:center;gap:.5rem;display:flex}.patient-name svg{color:var(--text-gray)}.patient-name h4{color:var(--text-dark);margin:0;font-size:1.125rem;font-weight:600}.appointment-info{flex-wrap:wrap;gap:1.5rem;display:flex}.info-item{color:var(--text-gray);align-items:center;gap:.375rem;font-size:.875rem;display:flex}.info-item svg{color:var(--primary-blue)}.motif{color:var(--text-dark);font-weight:500}.appointment-actions{flex-direction:column;align-items:flex-end;gap:.75rem;display:flex}.action-buttons{flex-wrap:wrap;gap:.5rem;display:flex}.btn-sm{padding:.375rem .75rem;font-size:.8125rem}.empty-state{text-align:center;padding:3rem 1.5rem}.empty-icon{color:var(--text-light);margin-bottom:1rem}.empty-state h3{color:var(--text-dark);margin-bottom:.5rem}.empty-state p{color:var(--text-gray)}.modal form{padding:1.5rem}@media (max-width:1024px){.appointment-card{grid-template-columns:1fr;gap:1rem}.appointment-time{flex-direction:row;justify-content:center}.appointment-actions{flex-direction:row;justify-content:space-between;width:100%}}@media (max-width:768px){.stats-grid{grid-template-columns:repeat(2,1fr)}.filters-bar{flex-direction:column;align-items:flex-start}.filter-buttons{width:100%}.filter-btn{text-align:center;flex:1}.action-buttons{flex-direction:column;width:100%}.action-buttons .btn{justify-content:center;width:100%}}.rdv-info-box{background-color:var(--bg-light);border-left:4px solid var(--primary-blue);border-radius:.5rem;padding:1rem}.rdv-info-box h3{color:var(--text-dark);margin:0 0 .75rem;font-size:1rem;font-weight:600}.rdv-info-box p{color:var(--text-dark);margin:.5rem 0;font-size:.875rem}.btn-danger{background-color:var(--danger-red);color:#fff}.btn-danger:hover:not(:disabled){background-color:#dc2626}.date-navigation{color:#fff;background:linear-gradient(135deg,#6366f1 0%,#8b5cf6 50%,#d946ef 100%);border-radius:1rem;justify-content:space-between;align-items:center;gap:1.5rem;margin-bottom:1.5rem;padding:1.5rem;display:flex;position:relative;overflow:hidden;box-shadow:0 8px 24px #8b5cf64d}.date-navigation:before{content:"";background:radial-gradient(circle,#ffffff1a 0%,#0000 70%);width:200%;height:200%;animation:3s ease-in-out infinite pulse;position:absolute;top:-50%;left:-50%}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.nav-btn{color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:1;background:linear-gradient(135deg,#ffffff40,#ffffff26);border:2px solid #fff6;border-radius:.75rem;align-items:center;gap:.5rem;padding:.75rem 1.25rem;font-size:.875rem;font-weight:600;transition:all .3s;display:flex;position:relative;box-shadow:0 4px 12px #0000001a}.nav-btn:hover{background:linear-gradient(135deg,#ffffff59,#ffffff40);border-color:#fff9;transform:translateY(-3px);box-shadow:0 6px 20px #0003}.date-display{z-index:1;flex:1;justify-content:center;align-items:center;gap:1rem;display:flex;position:relative}.today-badge{color:#fff;text-transform:uppercase;letter-spacing:.5px;background:linear-gradient(135deg,#10b981,#34d399);border-radius:9999px;padding:.25rem .75rem;font-size:.75rem;font-weight:600;animation:2s ease-in-out infinite glow;box-shadow:0 2px 8px #10b98166}@keyframes glow{0%,to{box-shadow:0 2px 8px #10b98166}50%{box-shadow:0 4px 16px #10b98199}}.date-picker{color:#6366f1;cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:2px solid #fffffff2;border-radius:.75rem;padding:.5rem .75rem;font-size:.875rem;font-weight:700;transition:all .3s;box-shadow:0 10px 24px #00000040;background:#ffffffd9!important}.date-picker:hover{border-color:#fff;transform:translateY(-2px);box-shadow:0 12px 28px #0000004d;background:#fffffff2!important}.date-picker:focus{border-color:#fffffff2;outline:none;background:#ffffffd9!important}.date-picker::-webkit-calendar-picker-indicator{filter:invert(.3)sepia()saturate(5)hue-rotate(220deg);cursor:pointer}.timeline-container{padding:1.5rem;overflow:hidden}.timeline-header{border-bottom:2px solid var(--border-color);align-items:center;gap:.75rem;margin-bottom:1.5rem;padding-bottom:1rem;display:flex}.timeline-header svg{color:var(--primary-blue)}.timeline-header h3{color:var(--text-dark);flex:1;margin:0;font-size:1.25rem;font-weight:700}.timeline-grid{border:1.5px solid var(--border-color);border-radius:.75rem;flex-direction:column;gap:0;display:flex;overflow:hidden}.time-slot{border-bottom:1px solid var(--border-color);grid-template-columns:100px 1fr;transition:all .2s;display:grid;position:relative}.time-slot:last-child{border-bottom:none}.time-slot:hover{background-color:var(--bg-light)}.time-slot.current-hour{border-left:4px solid var(--warning-orange);background-color:#fef3c7}.time-label{background-color:var(--bg-light);border-right:2px solid var(--border-color);flex-direction:column;justify-content:center;align-items:center;gap:.25rem;padding:1rem;font-weight:600;display:flex}.time-slot.current-hour .time-label{background:linear-gradient(135deg,var(--warning-orange),#fbbf24);color:#fff;border-right-color:var(--warning-orange)}.time-label .hour{color:var(--text-dark);font-size:1.125rem}.time-slot.current-hour .time-label .hour{color:#fff}.live-indicator{text-transform:uppercase;letter-spacing:.5px;background-color:#ffffff4d;border-radius:9999px;padding:.125rem .5rem;font-size:.625rem;font-weight:700}.slot-content{flex-direction:column;gap:.75rem;min-height:80px;padding:1rem;display:flex}.empty-slot{height:100%;color:var(--text-light);justify-content:center;align-items:center;font-size:.875rem;font-style:italic;display:flex}.timeline-appointment{border:2px solid var(--border-color);background-color:#fff;border-radius:.75rem;padding:1rem;transition:all .3s;animation:.3s slideIn}@keyframes slideIn{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:translate(0)}}.timeline-appointment:hover{border-color:var(--primary-blue);transform:translateY(-2px);box-shadow:0 4px 12px #2563eb26}.timeline-appointment.confirme{border-left:4px solid var(--success-green);background:linear-gradient(90deg,#10b9810d,#fff)}.timeline-appointment.en-attente{border-left:4px solid var(--warning-orange);background:linear-gradient(90deg,#f973160d,#fff)}.timeline-appointment.termine{border-left:4px solid var(--secondary-teal);opacity:.8;background:linear-gradient(90deg,#14b8a60d,#fff)}.timeline-appointment.annule{border-left:4px solid var(--danger-red);opacity:.7;background:linear-gradient(90deg,#ef44440d,#fff)}.appointment-header{justify-content:space-between;align-items:center;margin-bottom:.75rem;display:flex}.appointment-time-info{color:var(--text-gray);align-items:center;gap:.5rem;font-size:.875rem;font-weight:600;display:flex}.appointment-time-info svg{color:var(--primary-blue)}.appointment-time-info .duration{color:var(--text-light);font-size:.8125rem;font-weight:500}.appointment-patient{align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.appointment-patient svg{color:var(--primary-blue)}.appointment-patient h4{color:var(--text-dark);margin:0;font-size:1rem;font-weight:700}.appointment-motif{margin-bottom:.5rem}.appointment-motif p{color:var(--text-dark);margin:0;font-size:.875rem;line-height:1.4}.appointment-contact{color:var(--text-gray);align-items:center;gap:.375rem;margin-bottom:.75rem;font-size:.8125rem;display:flex}.appointment-contact svg{color:var(--secondary-teal)}.appointment-quick-actions{border-top:1px solid var(--border-color);gap:.5rem;padding-top:.75rem;display:flex}.btn-icon{cursor:pointer;background-color:var(--bg-light);width:32px;height:32px;color:var(--text-gray);border:none;border-radius:.5rem;justify-content:center;align-items:center;transition:all .2s;display:flex}.btn-icon:hover{transform:translateY(-2px);box-shadow:0 2px 8px #0000001a}.btn-icon.btn-success{color:var(--success-green);background-color:#10b9811a}.btn-icon.btn-success:hover{background-color:var(--success-green);color:#fff}.btn-icon.btn-primary{color:var(--primary-blue);background-color:#2563eb1a}.btn-icon.btn-primary:hover{background-color:var(--primary-blue);color:#fff}.btn-icon.btn-info{color:var(--secondary-teal);background-color:#14b8a61a}.btn-icon.btn-info:hover{background-color:var(--secondary-teal);color:#fff}.btn-icon.btn-danger{color:var(--danger-red);background-color:#ef44441a}.btn-icon.btn-danger:hover{background-color:var(--danger-red);color:#fff}@media (max-width:1024px){.date-navigation{flex-direction:column;gap:1rem}.nav-btn{justify-content:center;width:100%}.date-display{flex-direction:column}}@media (max-width:768px){.timeline-grid{border:none}.time-slot{border-left:none;border-right:none;border:1.5px solid var(--border-color);border-radius:.75rem;grid-template-columns:70px 1fr;margin-bottom:.5rem}.time-label{padding:.75rem .5rem}.time-label .hour{font-size:1rem}.slot-content,.timeline-appointment{padding:.75rem}.appointment-quick-actions{flex-wrap:wrap}}.confirm-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000080;animation:.3s fadeIn}.modal-confirm{text-align:center;max-width:500px;animation:.4s slideUp;overflow:visible}.confirm-icon-wrapper{margin:-60px auto 1.5rem;position:relative}.confirm-icon-circle{background:linear-gradient(135deg,var(--success-green),#34d399);border-radius:50%;justify-content:center;align-items:center;width:100px;height:100px;animation:2s ease-in-out infinite pulse;display:flex;position:relative;box-shadow:0 10px 40px #10b98166}.confirm-icon-circle:before{content:"";background:linear-gradient(135deg,var(--success-green),#34d399);opacity:.3;filter:blur(10px);z-index:-1;border-radius:50%;position:absolute;inset:-5px}.confirm-icon{color:#fff;filter:drop-shadow(0 2px 8px #0003)}.confirm-title{color:var(--text-dark);margin:0 0 1.5rem;font-size:1.75rem;font-weight:700}.confirm-details{text-align:left;margin-bottom:2rem}.confirm-info-card{background:linear-gradient(135deg,#f0fdf4 0%,#ecfdf5 100%);border:2px solid #bbf7d0;border-radius:16px;margin-bottom:1.5rem;padding:1.5rem}.confirm-info-row{align-items:flex-start;gap:1rem;padding:.75rem 0;display:flex}.confirm-info-row:not(:last-child){border-bottom:1px solid #10b9811a}.confirm-icon-small{color:var(--success-green);flex-shrink:0;margin-top:.25rem}.confirm-info-row>div{flex-direction:column;flex:1;gap:.25rem;display:flex}.confirm-label{text-transform:uppercase;letter-spacing:.5px;color:#059669;font-size:.75rem;font-weight:600}.confirm-value{color:var(--text-dark);font-size:1rem;font-weight:600}.confirm-message{color:#92400e;background:#fffbeb;border:1px solid #fde68a;border-radius:12px;margin:0;padding:1rem;font-size:.875rem;line-height:1.6}.confirm-actions{border-top:1px solid var(--border-color);gap:1rem;padding-top:1.5rem}.btn-success-gradient{background:linear-gradient(135deg,var(--success-green),#34d399);color:#fff;cursor:pointer;border:none;border-radius:12px;align-items:center;gap:.5rem;padding:.875rem 2rem;font-weight:600;transition:all .3s;display:flex;box-shadow:0 4px 14px #10b9814d}.btn-success-gradient:hover{transform:translateY(-2px);box-shadow:0 6px 20px #10b98166}.btn-success-gradient:active{transform:translateY(0)}.btn-outline-secondary{color:var(--text-secondary);border:2px solid var(--border-color);cursor:pointer;background:#fff;border-radius:12px;padding:.875rem 2rem;font-weight:600;transition:all .3s}.btn-outline-secondary:hover{background:var(--bg-light);border-color:var(--text-secondary);color:var(--text-dark)}.visites-page{max-width:1400px;margin:0 auto}.date-info{flex-direction:column;align-items:center;gap:.25rem;display:flex}.date-info h2{text-transform:capitalize;text-align:center;text-shadow:0 2px 8px #0003;background:linear-gradient(135deg,#fff,#fef3c7);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin:0;font-size:1.5rem;font-weight:700}.today-badge{color:#fff;text-transform:uppercase;letter-spacing:.5px;background:linear-gradient(135deg,#10b981,#34d399);border-radius:9999px;padding:.25rem .75rem;font-size:.75rem;font-weight:600;box-shadow:0 2px 8px #10b98166}.stats-row{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem;margin-bottom:2rem;display:grid}.stat-box{align-items:center;gap:1rem;padding:1.25rem;display:flex}.stat-box svg{flex-shrink:0}.stat-icon-teal{color:var(--secondary-teal)}.stat-icon-blue{color:var(--primary-blue)}.stat-icon-purple{color:var(--accent-purple)}.stat-box h3{color:var(--text-dark);margin:0;font-size:1.875rem;font-weight:700;line-height:1}.stat-box p{color:var(--text-gray);margin:.25rem 0 0;font-size:.875rem}.section-title{color:var(--text-dark);margin-bottom:1.5rem;font-size:1.5rem;font-weight:600}.visites-list{flex-direction:column;gap:1.5rem;display:flex}.visite-card{transition:all .2s}.visite-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.visite-header{border-bottom:1px solid var(--border-color);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;padding-bottom:1rem;display:flex}.patient-info-header{align-items:center;gap:.75rem;display:flex}.patient-avatar-small{background:linear-gradient(135deg,var(--primary-blue),var(--secondary-teal));color:#fff;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;font-size:1rem;font-weight:600;display:flex}.patient-info-header h3{color:var(--text-dark);margin:0;font-size:1.125rem;font-weight:600}.patient-age-badge{background-color:var(--bg-light);color:var(--text-gray);border-radius:.375rem;margin-top:.25rem;padding:.125rem .5rem;font-size:.75rem;font-weight:500;display:inline-block}.visite-datetime{gap:1rem;display:flex}.datetime-item{color:var(--text-gray);align-items:center;gap:.375rem;font-size:.875rem;display:flex}.datetime-item svg{color:var(--primary-blue)}.visite-content{flex-direction:column;gap:1rem;display:flex}.visite-section h4{color:var(--text-dark);align-items:center;gap:.5rem;margin:0 0 .5rem;font-size:.9375rem;font-weight:600;display:flex}.visite-section h4 svg{color:var(--primary-blue)}.visite-section p{color:var(--text-gray);margin:0;line-height:1.6}.diagnostic-text{color:var(--text-dark);border-left:3px solid var(--primary-blue);background-color:#dbeafe;border-radius:.5rem;padding:.75rem;font-weight:500}.constantes-grid{background-color:var(--bg-light);border-radius:.5rem;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.75rem;padding:1rem;display:grid}.constante-item{align-items:center;gap:.5rem;display:flex}.constante-item svg{color:var(--secondary-teal);flex-shrink:0}.constante-item>div{flex-direction:column;display:flex}.constante-label{color:var(--text-gray);font-size:.75rem}.constante-value{color:var(--text-dark);font-size:.9375rem;font-weight:600}.visite-footer{border-top:1px solid var(--border-color);justify-content:flex-end;margin-top:1rem;padding-top:1rem;display:flex}.visite-form{max-height:70vh;padding:1.5rem;overflow-y:auto}.form-section{border-bottom:1px solid var(--border-color);margin-bottom:2rem;padding-bottom:2rem}.form-section:last-of-type{border-bottom:none;margin-bottom:0;padding-bottom:0}.form-section h3{color:var(--primary-blue);align-items:center;gap:.5rem;margin:0 0 1.25rem;font-size:1.125rem;font-weight:600;display:flex}.visite-details{max-height:70vh;padding:1.5rem;overflow-y:auto}.detail-section{margin-bottom:2rem}.detail-section:last-child{margin-bottom:0}.detail-section h3{color:var(--primary-blue);border-bottom:2px solid var(--border-color);margin:0 0 1rem;padding-bottom:.5rem;font-size:1rem;font-weight:600}.detail-section p{color:var(--text-dark);margin:0;line-height:1.6}.detail-grid{background-color:var(--bg-light);border-radius:.5rem;grid-template-columns:repeat(2,1fr);gap:.75rem;padding:1rem;display:grid}.detail-grid div{color:var(--text-dark);font-size:.875rem}.detail-grid strong{color:var(--text-gray);margin-right:.5rem;font-weight:500}.constantes-detail-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;display:grid}.constante-detail{background-color:var(--bg-light);border:1px solid var(--border-color);border-radius:.5rem;align-items:center;gap:.75rem;padding:1rem;display:flex}.constante-detail svg{color:var(--secondary-teal);flex-shrink:0}.constante-detail>div{flex-direction:column;display:flex}.constante-detail span{color:var(--text-gray);text-transform:uppercase;letter-spacing:.5px;font-size:.75rem}.constante-detail strong{color:var(--text-dark);margin-top:.25rem;font-size:1.125rem;font-weight:600}.diagnostic-highlight{border-left:4px solid var(--primary-blue);color:var(--text-dark);background:linear-gradient(135deg,#dbeafe 0%,#e0e7ff 100%);border-radius:.5rem;padding:1rem;font-weight:500}.traitement-text{border-left:4px solid var(--success-green);color:var(--text-dark);background-color:#d1fae5;border-radius:.5rem;padding:1rem}.notes-text{border-left:4px solid var(--warning-orange);color:var(--text-dark);background-color:#fef3c7;border-radius:.5rem;padding:1rem;font-style:italic}@media (max-width:768px){.visite-header{flex-direction:column;align-items:flex-start}.constantes-grid,.detail-grid,.constantes-detail-grid{grid-template-columns:1fr}.visite-form,.visite-details{max-height:none}}.pagination{justify-content:center;align-items:center;gap:1rem;margin-top:2rem;padding:1rem;display:flex}.pagination-btn{border:1.5px solid var(--border-color);background-color:var(--bg-white);color:var(--text-dark);cursor:pointer;border-radius:.5rem;padding:.625rem 1.25rem;font-size:.875rem;font-weight:500;transition:all .2s}.pagination-btn:hover:not(:disabled){background-color:var(--primary-blue);color:#fff;border-color:var(--primary-blue);transform:translateY(-1px)}.pagination-btn:disabled{opacity:.4;cursor:not-allowed}.pagination-info{color:var(--text-gray);font-size:.875rem;font-weight:500}#root{min-height:100vh}
