@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap";:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--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;-webkit-tap-highlight-color:transparent;margin:0;padding:0}body{background-color:var(--bg-light);color:var(--text-dark);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-overflow-scrolling:touch;overscroll-behavior:none;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;line-height:1.6}#root{min-height:100vh;min-height:-webkit-fill-available}::-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;touch-action:manipulation;-webkit-user-select:none;user-select:none;border:none;border-radius:.5rem;justify-content:center;align-items:center;gap:.5rem;min-height:44px;padding:.75rem 1.5rem;font-size:.9375rem;font-weight:500;text-decoration:none;transition:all .2s;display:inline-flex}.btn:disabled{opacity:.5}.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],input[type=password],textarea,select{border:1.5px solid var(--border-color);background-color:var(--bg-white);width:100%;color:var(--text-dark);caret-color:var(--text-dark);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;appearance:none;border-radius:.5rem;min-height:44px;padding:.75rem;font-family:inherit;font-size:1rem;transition:all .2s}input[type=date]::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.6}input[type=time]::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.6}input[type=date]:hover::-webkit-calendar-picker-indicator{opacity:1}input[type=time]:hover::-webkit-calendar-picker-indicator{opacity:1}@supports (-webkit-touch-callout:none){input[type=date],input[type=time]{font-size:1rem}}input:focus,textarea:focus,select:focus{border-color:var(--primary-blue);color:var(--text-dark);caret-color:var(--text-dark);outline:none;box-shadow:0 0 0 3px #2563eb1a}input::placeholder,textarea::placeholder{color:var(--text-light)}textarea{resize:vertical;min-height:120px}label{color:var(--text-dark);margin-bottom:.5rem;font-size:.9375rem;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}.container{padding:0 1rem}.btn{width:100%;padding:.875rem 1rem;font-size:1rem}.card{border-radius:.75rem;padding:1.25rem}h1{font-size:1.75rem!important}h2{font-size:1.5rem!important}h3{font-size:1.25rem!important}.form-group{margin-bottom:1rem}}@media (max-width:480px){body{font-size:15px}.container{padding:0 .75rem}.btn{padding:.75rem .875rem;font-size:.9375rem}.card{padding:1rem}h1{font-size:1.5rem!important}h2{font-size:1.25rem!important}h3{font-size:1.125rem!important}}.layout{background-color:var(--bg-light);min-height:100vh;display:flex;position:relative}.sidebar-overlay{z-index:999;background-color:#00000080;animation:.3s fadeIn;position:fixed;inset:0}.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:all .3s;display:flex;position:fixed;top:0;left:0;overflow:hidden auto}.sidebar.open{width:260px}.sidebar.closed{width:80px}.sidebar-header{border-bottom:1px solid #ffffff1a;padding:1.5rem}.logo{align-items:center;gap:.75rem;text-decoration:none;display:flex}.logo-icon{color:#fff;background:linear-gradient(135deg,#3b82f6 0%,#8b5cf6 100%);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex;box-shadow:0 2px 8px #6366f173}.logo-text{white-space:nowrap;align-items:baseline;gap:.2rem;display:flex;overflow:hidden}.logo-title{color:#fff;letter-spacing:-.02em;font-size:1.2rem;font-weight:800}.logo-sub{color:#93c5fd;letter-spacing:.08em;text-transform:uppercase;font-size:.75rem;font-weight:600}.sidebar-nav{flex:1;padding:1.5rem 0;overflow-y:auto}.nav-item{color:#fffc;touch-action:manipulation;-webkit-tap-highlight-color:transparent;border-left:3px solid #0000;align-items:center;gap:.75rem;min-height:48px;padding:1rem 1.5rem;font-size:.9375rem;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;flex-direction:column;gap:.5rem;padding:1rem;display:flex}.change-password-btn{color:#fff;cursor:pointer;background-color:#3b82f633;border:none;border-radius:.5rem;justify-content:center;align-items:center;gap:.5rem;width:100%;padding:.75rem;font-weight:500;transition:all .2s;display:flex}.change-password-btn:hover{background-color:#3b82f64d}.sidebar.closed .change-password-btn span{display:none}.logout-btn{color:#fff;cursor:pointer;background-color:#ef444433;border:none;border-radius:.5rem;justify-content:center;align-items:center;gap:.5rem;width:100%;padding:.75rem;font-weight:500;transition:all .2s;display:flex}.logout-btn:hover{background-color:#ef44444d}.sidebar.closed .logout-btn span{display:none}.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;touch-action:manipulation;-webkit-tap-highlight-color:transparent;background:0 0;border:none;border-radius:.5rem;min-width:44px;min-height:44px;padding:.625rem;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{-webkit-overflow-scrolling:touch;width:280px;transform:translate(-100%)}.sidebar.open{width:280px;transform:translate(0);box-shadow:4px 0 20px #0000004d}.main-content{width:100%;margin-left:0!important}.mobile-menu-btn{justify-content:center;align-items:center;display:flex}.user-details{display:none}.page-content{padding:1rem}.header-content{padding:.75rem 1rem}.top-header{position:sticky;top:0}}.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}.stats-grid-main{grid-template-columns:repeat(2,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);gap:1rem}.stat-card-main{text-align:center;flex-direction:column;padding:1.25rem 1rem}.stat-icon-wrapper{width:48px;height:48px}.stat-content h2{font-size:1.75rem}.stat-content p{font-size:.8125rem}.dashboard-grid{grid-template-columns:1fr;gap:1rem}.rdv-item{padding:.875rem}.rdv-time-badge{min-width:55px;padding:.375rem .5rem;font-size:.8125rem}.rdv-info h4{font-size:.875rem}.rdv-info p{font-size:.75rem}.visite-item{padding:.875rem}.section-header h3{font-size:1rem}.actions-grid{grid-template-columns:repeat(2,1fr);gap:.875rem}.action-btn{padding:1rem .75rem;font-size:.8125rem}.date-info{font-size:.8125rem}}@media (max-width:480px){.stats-grid-main{grid-template-columns:1fr;gap:.875rem}.stat-card-main{text-align:left;flex-direction:row;padding:1rem}.stat-icon-wrapper{width:56px;height:56px}.stat-content h2{font-size:1.5rem}.actions-grid{grid-template-columns:1fr;gap:.75rem}.action-btn{padding:1rem}.rdv-list,.visites-list{gap:.75rem}}.pf-page{max-width:1400px;margin:0 auto;padding-bottom:4rem}.pf-page-modal{max-width:100%;height:100%;margin:0;padding:0;overflow-y:auto}.pf-fullscreen-overlay{z-index:9999;background:var(--bg-light,#f8fafc);flex-direction:column;animation:.25s cubic-bezier(.16,1,.3,1) pfSlideIn;display:flex;position:fixed;inset:0;overflow:hidden}@keyframes pfSlideIn{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.pf-fullscreen-inner{flex:1;padding:1.5rem 2rem 3rem;overflow-y:auto}.pf-modal-close-btn{border:1.5px solid var(--border-color,#e2e8f0);background:var(--bg-white,#fff);width:40px;height:40px;color:var(--text-dark,#111);cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:background .2s,color .2s,transform .15s;display:flex}.pf-modal-close-btn:hover{color:#dc2626;background:#fee2e2;border-color:#fca5a5;transform:scale(1.08)}.pf-top-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:2rem;display:flex}.pf-title-group{align-items:center;gap:1rem;display:flex}.pf-title-icon{background:linear-gradient(135deg,var(--primary-blue)0%,var(--accent-purple)100%);color:#fff;border-radius:14px;justify-content:center;align-items:center;width:52px;height:52px;display:flex;box-shadow:0 4px 14px #2563eb59}.pf-title{color:var(--text-dark);margin:0;font-size:1.75rem;font-weight:700}.pf-subtitle{color:var(--text-gray);margin:0;font-size:.875rem}.pf-patient-search{width:320px;position:relative}.pf-search-field{background:var(--bg-white);border:2px solid var(--border-color);border-radius:12px;align-items:center;gap:.5rem;padding:.65rem 1rem;transition:border-color .2s;display:flex}.pf-search-field:focus-within{border-color:var(--primary-blue);box-shadow:0 0 0 3px #2563eb1f}.pf-search-icon{color:var(--text-gray);flex-shrink:0}.pf-search-field input{color:var(--text-dark);background:0 0;border:none;outline:none;flex:1;font-size:.9375rem}.pf-clear-btn{cursor:pointer;color:var(--text-light);background:0 0;border:none;border-radius:50%;padding:2px;transition:color .2s;display:flex}.pf-clear-btn:hover{color:var(--danger-red)}.pf-dropdown{background:var(--bg-white);border:1px solid var(--border-color);box-shadow:var(--shadow-xl);z-index:200;border-radius:12px;animation:.15s pfDropIn;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow:hidden}@keyframes pfDropIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.pf-dropdown-loading{text-align:center;color:var(--text-gray);padding:1rem;font-size:.875rem}.pf-dropdown-item{cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:.75rem;width:100%;padding:.75rem 1rem;transition:background .15s;display:flex}.pf-dropdown-item:hover{background:var(--bg-light)}.pf-dropdown-item+.pf-dropdown-item{border-top:1px solid var(--border-color)}.pf-dropdown-avatar{background:linear-gradient(135deg,var(--primary-blue),var(--accent-purple));color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;font-size:.75rem;font-weight:700;display:flex}.pf-dropdown-name{color:var(--text-dark);font-size:.9rem;font-weight:600;display:block}.pf-dropdown-meta{color:var(--text-gray);font-size:.775rem;display:block}.pf-empty-state{text-align:center;margin-top:5rem;padding:3rem}.pf-empty-art{justify-content:center;align-items:center;width:160px;height:160px;margin:0 auto 2rem;display:flex;position:relative}.pf-empty-circle{opacity:.12;border-radius:50%;position:absolute}.pf-c1{background:var(--primary-blue);width:160px;height:160px}.pf-c2{background:var(--accent-purple);width:120px;height:120px}.pf-c3{background:var(--secondary-teal);width:80px;height:80px}.pf-empty-icon{color:var(--primary-blue);z-index:1;position:relative}.pf-empty-state h2{color:var(--text-dark);margin-bottom:.5rem;font-size:1.5rem;font-weight:700}.pf-empty-state p{color:var(--text-gray);max-width:340px;margin:0 auto}.pf-workspace{animation:.3s fadeIn}.pf-breadcrumb{align-items:center;gap:.25rem;margin-bottom:1.75rem;font-size:.875rem;display:flex}.pf-bc-item{color:var(--text-gray);cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;gap:.4rem;padding:.35rem .75rem;font-size:.875rem;font-weight:500;transition:background .15s,color .15s;display:flex}.pf-bc-item:hover{background:var(--bg-white);color:var(--text-dark)}.pf-bc-item.pf-bc-active{color:var(--primary-blue);cursor:default;font-weight:600}.pf-bc-item.pf-bc-active:hover{background:0 0}.pf-bc-sep{color:var(--text-light)}.pf-bc-color-dot{border-radius:50%;width:10px;height:10px;display:inline-block}.pf-section-header{flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:1.5rem;display:flex}.pf-section-title{color:var(--text-dark);flex:1;align-items:center;gap:.5rem;font-size:1.125rem;font-weight:700;display:flex}.pf-count-badge{background:var(--primary-blue);color:#fff;border-radius:20px;padding:2px 7px;font-size:.7rem;font-weight:700}.pf-btn{cursor:pointer;border:none;border-radius:10px;align-items:center;gap:.4rem;min-height:40px;padding:.6rem 1.25rem;font-size:.875rem;font-weight:600;transition:all .2s;display:inline-flex}.pf-btn:disabled{opacity:.6;cursor:not-allowed}.pf-btn-primary{background:var(--primary-blue);color:#fff;box-shadow:0 2px 8px #2563eb40}.pf-btn-primary:hover:not(:disabled){background:var(--primary-blue-dark);transform:translateY(-1px);box-shadow:0 4px 12px #2563eb59}.pf-btn-outline{color:var(--text-dark);border:1.5px solid var(--border-color);background:#fff}.pf-btn-outline:hover:not(:disabled){border-color:var(--primary-blue);color:var(--primary-blue)}.pf-btn-danger{background:var(--danger-red);color:#fff}.pf-btn-danger:hover:not(:disabled){background:#dc2626}.pf-loading{color:var(--text-gray);align-items:center;gap:.75rem;padding:2rem 0;font-size:.9rem;display:flex}.pf-spinner{border:3px solid var(--border-color);border-top-color:var(--primary-blue);border-radius:50%;flex-shrink:0;width:22px;height:22px;animation:.7s linear infinite spin}.pf-spinner-sm{border-width:2px;width:16px;height:16px}.pf-spinner-lg{border-width:4px;width:48px;height:48px}@keyframes spin{to{transform:rotate(360deg)}}.pf-folder-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1.25rem;display:grid}.pf-folder-card{background:var(--bg-white);box-shadow:var(--shadow-md);cursor:pointer;border:1.5px solid var(--border-color);border-radius:14px;flex-direction:column;transition:transform .2s,box-shadow .2s;display:flex;position:relative;overflow:hidden}.pf-folder-card:hover{box-shadow:var(--shadow-xl);border-color:var(--folder-color,var(--primary-blue));transform:translateY(-4px)}.pf-folder-tab{background:var(--folder-color,var(--primary-blue));flex-shrink:0;height:6px}.pf-folder-body{flex:1;align-items:flex-start;gap:1rem;padding:1.25rem;display:flex}.pf-folder-icon-wrap{color:var(--folder-color,var(--primary-blue));opacity:.85;flex-shrink:0}.pf-folder-info{flex:1;min-width:0}.pf-folder-name{color:var(--text-dark);white-space:nowrap;text-overflow:ellipsis;margin:0 0 .25rem;font-size:1rem;font-weight:700;overflow:hidden}.pf-folder-desc{color:var(--text-gray);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0 0 .5rem;font-size:.8rem;display:-webkit-box;overflow:hidden}.pf-folder-meta{color:var(--text-light);flex-wrap:wrap;align-items:center;gap:.75rem;font-size:.75rem;display:flex}.pf-folder-count{background:var(--bg-light);border-radius:20px;align-items:center;gap:.25rem;padding:2px 8px;display:flex}.pf-folder-date{font-size:.7rem}.pf-folder-arrow{color:var(--text-light);transition:transform .2s,color .2s;position:absolute;bottom:1rem;right:.75rem}.pf-folder-card:hover .pf-folder-arrow{color:var(--folder-color,var(--primary-blue));transform:translate(3px)}.pf-folder-preview{border-top:1px solid var(--border-color);height:48px;display:flex;overflow:hidden}.pf-folder-preview-img{object-fit:cover;flex:1}.pf-folder-preview-more{background:var(--bg-light);color:var(--text-gray);flex:1;justify-content:center;align-items:center;font-size:.7rem;font-weight:600;display:flex}.pf-folder-menu-btn{border:1px solid var(--border-color);cursor:pointer;width:30px;height:30px;color:var(--text-gray);opacity:0;z-index:10;background:#ffffffe6;border-radius:8px;justify-content:center;align-items:center;transition:opacity .2s;display:flex;position:absolute;top:.75rem;right:.75rem}.pf-folder-card:hover .pf-folder-menu-btn{opacity:1}.pf-folder-menu-btn:hover{color:var(--text-dark);background:#fff}.pf-folder-menu{border:1px solid var(--border-color);box-shadow:var(--shadow-lg);z-index:50;background:#fff;border-radius:10px;min-width:140px;animation:.15s pfDropIn;position:absolute;top:2.5rem;right:.5rem;overflow:hidden}.pf-folder-menu button{cursor:pointer;width:100%;color:var(--text-dark);background:0 0;border:none;align-items:center;gap:.5rem;padding:.65rem 1rem;font-size:.875rem;transition:background .15s;display:flex}.pf-folder-menu button:hover{background:var(--bg-light)}.pf-menu-danger{color:var(--danger-red)!important}.pf-menu-danger:hover{background:#fef2f2!important}.pf-folder-add-card{border:2px dashed var(--border-color);cursor:pointer;color:var(--text-light);background:0 0;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:.5rem;min-height:130px;padding:2.5rem 1rem;font-size:.875rem;font-weight:600;transition:all .2s;display:flex}.pf-folder-add-card:hover{border-color:var(--primary-blue);color:var(--primary-blue);background:#2563eb0a;transform:translateY(-2px)}.pf-folder-empty{text-align:center;color:var(--text-gray);padding:4rem 2rem}.pf-folder-empty svg{color:var(--text-light);margin-bottom:1rem}.pf-folder-empty p{margin-bottom:1.5rem}.pf-images-section{animation:.25s fadeIn}.pf-back-btn{cursor:pointer;color:var(--text-gray);background:0 0;border:none;border-radius:8px;align-items:center;padding:.25rem;transition:color .15s,background .15s;display:flex}.pf-back-btn:hover{color:var(--primary-blue);background:#2563eb14}.pf-folder-chip{border:1.5px solid;border-radius:20px;align-items:center;gap:.35rem;padding:.3rem .85rem;font-size:.875rem;font-weight:600;display:inline-flex}.pf-progress-bar{background:var(--border-color);border-radius:2px;height:4px;margin-bottom:1rem;overflow:hidden}.pf-progress-fill{background:linear-gradient(90deg,var(--primary-blue),var(--secondary-teal));border-radius:2px;height:100%;transition:width .2s}.pf-drop-zone{border:2px dashed var(--border-color);color:var(--text-gray);cursor:pointer;background:var(--bg-white);border-radius:12px;align-items:center;gap:.75rem;margin-bottom:1.5rem;padding:1rem 1.5rem;font-size:.875rem;transition:all .2s;display:flex}.pf-drop-zone:hover{border-color:var(--primary-blue);color:var(--primary-blue);background:#2563eb08}.pf-drop-zone.pf-drop-active{border-color:var(--primary-blue);color:var(--primary-blue);background:#2563eb12;transform:scale(1.01);box-shadow:0 0 0 4px #2563eb1f}.pf-image-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem;display:grid}.pf-images-empty{text-align:center;color:var(--text-light);padding:4rem 2rem}.pf-images-empty svg{margin-bottom:1rem}.image-card{background:var(--bg-white);border:1.5px solid var(--border-color);cursor:pointer;border-radius:12px;transition:transform .2s,box-shadow .2s;animation:.3s fadeIn;position:relative;overflow:hidden}.image-card:hover{box-shadow:var(--shadow-lg);border-color:var(--primary-blue);transform:translateY(-3px)}.image-thumb{aspect-ratio:1;background:var(--bg-light);position:relative;overflow:hidden}.image-thumb img{object-fit:cover;width:100%;height:100%;transition:transform .3s}.image-card:hover .image-thumb img{transform:scale(1.05)}.image-placeholder{width:100%;height:100%;color:var(--text-light);justify-content:center;align-items:center;display:flex}.image-overlay{color:#fff;opacity:0;background:#00000059;justify-content:center;align-items:center;transition:opacity .2s;display:flex;position:absolute;inset:0}.image-card:hover .image-overlay{opacity:1}.image-info{padding:.6rem .75rem}.image-name{color:var(--text-dark);white-space:nowrap;text-overflow:ellipsis;font-size:.8rem;font-weight:600;display:block;overflow:hidden}.image-date{color:var(--text-light);font-size:.7rem}.image-delete-btn{cursor:pointer;width:28px;height:28px;color:var(--danger-red);opacity:0;background:#ffffffe6;border:none;border-radius:8px;justify-content:center;align-items:center;transition:opacity .2s,background .15s;display:flex;position:absolute;top:.4rem;right:.4rem}.image-card:hover .image-delete-btn{opacity:1}.image-delete-btn:hover{background:var(--danger-red);color:#fff}.pdf-card .image-thumb{background:#fff7ed}.pdf-thumb{color:#ea580c;flex-direction:column;justify-content:center;align-items:center;gap:.4rem;width:100%;height:100%;display:flex}.pdf-badge{letter-spacing:.08em;color:#fff;background:#ea580c;border-radius:4px;padding:.1rem .45rem;font-size:.65rem;font-weight:800}.pdf-card:hover .image-thumb{background:#ffedd5}.pf-modal-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:500;background:#00000073;justify-content:center;align-items:center;padding:1rem;animation:.2s pfFadeIn;display:flex;position:fixed;inset:0}@keyframes pfFadeIn{0%{opacity:0}to{opacity:1}}.pf-modal{background:var(--bg-white);width:100%;max-width:460px;box-shadow:var(--shadow-xl),0 0 0 1px var(--border-color);border-radius:18px;animation:.25s cubic-bezier(.34,1.56,.64,1) pfSlideUp;overflow:hidden}.pf-modal-sm{max-width:380px}@keyframes pfSlideUp{0%{opacity:0;transform:translateY(24px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.pf-modal-header{border-bottom:1px solid var(--border-color);border-top:4px solid var(--primary-blue);align-items:center;gap:1rem;padding:1.5rem;display:flex}.pf-modal-icon{flex-shrink:0}.pf-modal-header h2{color:var(--text-dark);flex:1;margin:0;font-size:1.1rem;font-weight:700}.pf-modal-header p{color:var(--text-gray);margin:0;font-size:.8rem}.pf-modal-danger-header{border-top-color:var(--danger-red)!important}.pf-danger-icon{color:var(--danger-red);flex-shrink:0}.pf-modal-close{cursor:pointer;color:var(--text-gray);background:0 0;border:none;border-radius:8px;margin-left:auto;padding:4px;transition:background .15s,color .15s;display:flex}.pf-modal-close:hover{background:var(--bg-light);color:var(--text-dark)}.pf-modal-body{flex-direction:column;gap:.6rem;padding:1.5rem;display:flex}.pf-modal-body p{color:var(--text-gray);font-size:.9rem;line-height:1.6}.pf-modal-footer{border-top:1px solid var(--border-color);background:var(--bg-light);justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;display:flex}.pf-label{color:var(--text-dark);margin-bottom:.15rem;font-size:.8125rem;font-weight:600}.pf-input{border:1.5px solid var(--border-color);width:100%;color:var(--text-dark);background:var(--bg-white);border-radius:10px;padding:.65rem .875rem;font-family:inherit;font-size:.9375rem;transition:border-color .2s,box-shadow .2s}.pf-input:focus{border-color:var(--primary-blue);outline:none;box-shadow:0 0 0 3px #2563eb1f}.pf-textarea{resize:vertical;min-height:64px}.pf-color-grid{flex-wrap:wrap;gap:.5rem;margin-top:.25rem;display:flex}.pf-color-swatch{cursor:pointer;color:#fff;border:3px solid #0000;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;transition:transform .15s,box-shadow .15s;display:flex}.pf-color-swatch:hover{transform:scale(1.15)}.pf-color-selected{border-color:#fff;transform:scale(1.1);box-shadow:0 0 0 3px #0000004d}.pf-lightbox{z-index:1000;background:#000000eb;justify-content:center;align-items:center;animation:.2s pfFadeIn;display:flex;position:fixed;inset:0}.pf-lb-toolbar{z-index:10;background:linear-gradient(#000000b3,#0000);align-items:center;gap:1rem;padding:1rem 1.5rem;display:flex;position:absolute;top:0;left:0;right:0}.pf-lb-name{color:#ffffffe6;white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:.9rem;font-weight:600;overflow:hidden}.pf-lb-counter{color:#fff9;font-size:.8rem}.pf-lb-action{color:#ffffffd9;cursor:pointer;background:#ffffff1a;border:none;border-radius:8px;justify-content:center;align-items:center;width:36px;height:36px;text-decoration:none;transition:background .15s;display:flex}.pf-lb-action:hover{background:#ffffff38}.pf-lb-img-wrap{justify-content:center;align-items:center;max-width:90vw;max-height:80vh;display:flex}.pf-lb-img-wrap img{object-fit:contain;border-radius:8px;max-width:90vw;max-height:80vh;animation:.2s pfSlideUp;box-shadow:0 0 60px #00000080}.pf-lb-pdf{background:#fff;border:none;border-radius:8px;width:min(90vw,960px);height:82vh;animation:.2s pfSlideUp;box-shadow:0 0 60px #00000080}.pf-lb-loading{justify-content:center;align-items:center;width:200px;height:200px;display:flex}.pf-lb-nav{color:#fff;cursor:pointer;z-index:10;background:#ffffff1f;border:none;border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;transition:background .2s,transform .2s;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.pf-lb-nav:hover:not(:disabled){background:#ffffff40;transform:translateY(-50%)scale(1.05)}.pf-lb-nav:disabled{opacity:.2;cursor:not-allowed}.pf-lb-prev{left:1.5rem}.pf-lb-next{right:1.5rem}.pf-subfolder-section{margin-bottom:1.75rem}.pf-subsection-title{color:#64748b;text-transform:uppercase;letter-spacing:.06em;align-items:center;gap:.4rem;margin-bottom:.875rem;font-size:.75rem;font-weight:700;display:flex}.pf-folder-grid-sm{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:.75rem;display:grid}.pf-btn-sm{gap:.3rem;padding:.35rem .75rem;font-size:.8rem}@media (max-width:768px){.pf-top-bar{flex-direction:column;align-items:flex-start}.pf-patient-search{width:100%}.pf-folder-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.875rem}.pf-image-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.pf-lb-prev{left:.5rem}.pf-lb-next{right:.5rem}.pf-lb-nav{width:40px;height:40px}}.date-input-custom{color:#0f172a;caret-color:#0f172a;letter-spacing:.5px;background-color:#fff;border:1px solid #e2e8f0;border-radius:8px;width:100%;padding:.75rem;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;font-size:1rem;transition:all .2s}.date-input-custom:focus{border-color:#6366f1;outline:none;box-shadow:0 0 0 3px #6366f11a}.date-input-custom::placeholder{color:#94a3b8;font-size:.9375rem}.date-input-custom:disabled{cursor:not-allowed;color:#94a3b8;background-color:#f8fafc}@media (max-width:768px){.date-input-custom{appearance:none;min-height:44px;padding:.875rem;font-size:1rem}.date-input-custom:focus{font-size:1rem}}.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{color:var(--text-dark);caret-color:var(--text-dark);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-fiche{color:var(--primary-blue);font-weight:500}.age-display{color:#1d4ed8;white-space:nowrap;background:linear-gradient(135deg,#dbeafe,#ede9fe);border:1px solid #bfdbfe;border-radius:999px;align-items:center;gap:.25rem;margin-top:0;padding:.25rem .75rem;font-size:.8125rem;font-weight:700;display:inline-flex}.date-age-row{align-items:center;gap:.75rem;display:flex}.date-age-row input,.date-age-row .date-input-custom{flex:1}.field-icon{vertical-align:-2px;color:var(--primary-blue);flex-shrink:0}.toggle-group{border:1px solid var(--border-color);background:#f8fafc;border-radius:.75rem;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 1rem;display:flex}.toggle-label{color:var(--text-dark);align-items:center;gap:.4rem;font-size:.9375rem;font-weight:600;display:flex}.toggle-switch{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:.6rem;display:inline-flex}.toggle-track{background:#cbd5e1;border-radius:999px;flex-shrink:0;width:44px;height:24px;transition:background .25s;position:relative}.toggle-active .toggle-track{background:#2563eb}.toggle-thumb{background:#fff;border-radius:50%;width:20px;height:20px;transition:transform .25s;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #0003}.toggle-active .toggle-thumb{transform:translate(20px)}.toggle-text{color:#64748b;-webkit-user-select:none;user-select:none;font-size:.8125rem;font-weight:600}.toggle-active .toggle-text{color:#1d4ed8}.assurance-details{background:linear-gradient(135deg,#f0f7ff,#f5f3ff);border:1px solid #bfdbfe;border-radius:.75rem;margin-top:-.25rem;margin-bottom:.5rem;padding:1.25rem 1.5rem;animation:.25s slideDown}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.checkbox-group-items{flex-direction:column;gap:.5rem;margin-top:.5rem;display:flex}.checkbox-item{color:var(--text-dark);cursor:pointer;letter-spacing:0;text-transform:none;border:1px solid #0000;border-radius:.5rem;flex-direction:row;justify-content:flex-start;align-items:center;gap:.6rem;margin-bottom:0;padding:.45rem .65rem;font-size:.875rem;font-weight:500;transition:background .15s;display:flex}.checkbox-item input[type=checkbox]{accent-color:#2563eb;cursor:pointer;flex-shrink:0;order:-1;width:17px;height:17px;margin:0}.checkbox-item:hover{background:#2563eb14;border-color:#2563eb26}.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;-webkit-overflow-scrolling:touch;background-color:#00000080;justify-content:center;align-items:center;padding:1rem;animation:.2s fadeIn;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{background-color:var(--bg-white);box-shadow:var(--shadow-xl);-webkit-overflow-scrolling:touch;border-radius:1rem;width:100%;max-width:680px;max-height:90vh;margin:auto;animation:.3s slideUp;overflow-y:auto}.modal-large{max-width:800px}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.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-modal{border:none;border-radius:18px;flex-direction:column;max-height:90vh;display:flex;overflow:hidden}.patient-modal-header{background:linear-gradient(135deg,#1e40af 0%,#2563eb 55%,#3b82f6 100%);flex-shrink:0;align-items:center;gap:1rem;padding:1.25rem 1.5rem;display:flex;position:relative;overflow:hidden}.patient-modal-header:before{content:"";pointer-events:none;background:#ffffff12;border-radius:50%;width:160px;height:160px;position:absolute;top:-40px;right:-40px}.patient-modal-header-icon{color:#fff;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#fff3;border:1px solid #ffffff4d;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.patient-modal-header-text{flex:1;min-width:0}.patient-modal-header-text h2{color:#fff;letter-spacing:-.2px;margin:0;font-size:1.125rem;font-weight:700}.patient-modal-header-text p{color:#ffffffbf;margin:.15rem 0 0;font-size:.775rem}.patient-modal-close{color:#fff;cursor:pointer;background:#ffffff26;border:1px solid #ffffff40;border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;font-size:1.3rem;line-height:1;transition:background .15s;display:flex}.patient-modal-close:hover{background:#ffffff47}.patient-modal form{flex:1;min-height:0;padding:1.25rem 1.5rem 1.5rem;overflow:hidden auto}.patient-modal .form-section{margin-bottom:.25rem}.patient-modal .form-section-title{letter-spacing:.08em;text-transform:uppercase;color:#94a3b8;border-bottom:1px dashed #e2e8f0;align-items:center;gap:.5rem;margin:1rem 0 .75rem;padding-bottom:.5rem;font-size:.7rem;font-weight:700;display:flex}.patient-modal .form-section-title:first-child{margin-top:0}.patient-modal .form-group{margin-bottom:.85rem}.patient-modal .form-group label:not(.checkbox-item){color:#475569;letter-spacing:.01em;align-items:center;gap:.35rem;margin-bottom:.35rem;font-size:.775rem;font-weight:600;display:flex}.patient-modal .form-group input:not([type=checkbox]),.patient-modal .form-group select{color:#1e293b;box-sizing:border-box;background:#fff;border:1.5px solid #e2e8f0;border-radius:10px;width:100%;padding:.55rem .85rem;font-size:.875rem;transition:border-color .2s,box-shadow .2s}.patient-modal .form-group input:not([type=checkbox]):hover{border-color:#93c5fd}.patient-modal .form-group input:not([type=checkbox]):focus,.patient-modal .form-group select:focus{background:#fafcff;border-color:#2563eb;outline:none;box-shadow:0 0 0 3px #2563eb1a}.patient-modal .grid.grid-cols-2{grid-template-columns:1fr 1fr;gap:.85rem;display:grid}.patient-modal .toggle-group{background:#f8fafc;border:1.5px solid #e2e8f0;border-radius:12px;padding:.75rem 1rem;transition:border-color .2s}.patient-modal .toggle-group:has(.toggle-active){background:#eff6ff;border-color:#bfdbfe}.patient-modal .assurance-details{background:linear-gradient(135deg,#eff6ff,#f5f3ff);border:1.5px solid #bfdbfe;border-radius:12px;margin-top:.5rem;padding:1rem 1.25rem}.patient-modal .modal-actions{border-top:1.5px solid #f1f5f9;gap:.75rem;margin-top:1.25rem;padding-top:1.25rem}.patient-modal .btn.btn-outline{color:#64748b;cursor:pointer;background:#fff;border:1.5px solid #e2e8f0;border-radius:10px;padding:.6rem 1.4rem;font-size:.875rem;font-weight:600;transition:border-color .15s,background .15s}.patient-modal .btn.btn-outline:hover{background:#f8fafc;border-color:#94a3b8}.patient-modal .btn.btn-primary{color:#fff;cursor:pointer;background:linear-gradient(135deg,#1d4ed8,#2563eb);border:none;border-radius:10px;align-items:center;gap:.45rem;padding:.6rem 1.6rem;font-size:.875rem;font-weight:700;transition:background .2s,transform .15s,box-shadow .2s;display:inline-flex;box-shadow:0 4px 14px #2563eb4d}.patient-modal .btn.btn-primary:hover{background:linear-gradient(135deg,#1e40af,#1d4ed8);transform:translateY(-1px);box-shadow:0 6px 18px #2563eb61}.patient-modal .btn.btn-primary:active{transform:translateY(0)}.history-modal{border-radius:1.25rem;flex-direction:column;width:95vw;max-width:720px;max-height:88vh;padding:0;display:flex;overflow:hidden}.history-modal-header{color:#fff;background:linear-gradient(135deg,#1d4ed8 0%,#6d28d9 100%);border-radius:1.25rem 1.25rem 0 0;flex-shrink:0;align-items:center;gap:1rem;padding:1.25rem 1.5rem;display:flex}.history-avatar{letter-spacing:.5px;background:#fff3;border:2px solid #ffffff80;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:52px;height:52px;font-size:1.1rem;font-weight:700;display:flex}.history-patient-meta{flex:1;min-width:0}.history-patient-meta h2{color:#fff;margin:0 0 .35rem;font-size:1.2rem;font-weight:700}.history-meta-pills{flex-wrap:wrap;gap:.4rem;display:flex}.history-meta-pills span{background:#ffffff2e;border:1px solid #ffffff4d;border-radius:999px;align-items:center;gap:.3rem;padding:.18rem .6rem;font-size:.75rem;font-weight:500;display:inline-flex}.pill-cnss{background:#10b9814d!important;border-color:#10b98180!important;font-weight:700!important}.history-header-actions{flex-shrink:0;align-items:center;gap:.5rem;display:flex}.history-header-actions .btn-sm{color:#fff;cursor:pointer;background:#ffffff26;border:1px solid #fff6;border-radius:.5rem;align-items:center;gap:.35rem;padding:.4rem .9rem;font-size:.8rem;transition:background .2s;display:flex}.history-header-actions .btn-sm:hover{background:#ffffff47}.history-modal-header .modal-close{color:#fff;cursor:pointer;background:#ffffff26;border:1px solid #fff6;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:1.25rem;transition:background .2s;display:flex}.history-modal-header .modal-close:hover{background:#ffffff4d}.history-stats{background:#f8fafc;border-bottom:1px solid #e2e8f0;flex-shrink:0;display:flex}.hstat{text-align:center;border-right:1px solid #e2e8f0;flex:1;padding:.85rem 1rem}.hstat:last-child{border-right:none}.hstat-num{color:#1d4ed8;font-size:1.1rem;font-weight:700;display:block}.hstat-lbl{color:#64748b;text-transform:uppercase;letter-spacing:.04em;margin-top:.1rem;font-size:.72rem;display:block}.history-tabs{background:#fff;border-bottom:1px solid #e2e8f0;flex-shrink:0;gap:0;padding:0 1.25rem;display:flex}.htab{color:#64748b;cursor:pointer;background:0 0;border:none;border-bottom:3px solid #0000;align-items:center;gap:.4rem;padding:.8rem 1.1rem;font-size:.875rem;font-weight:500;transition:color .2s,border-color .2s;display:inline-flex}.htab:hover{color:#1d4ed8}.htab-active{color:#1d4ed8;border-bottom-color:#1d4ed8;font-weight:600}.htab-count{color:#1d4ed8;background:#eff6ff;border-radius:999px;padding:.1rem .45rem;font-size:.7rem;font-weight:700;line-height:1.4}.htab-active .htab-count{color:#fff;background:#1d4ed8}.history-tab-content{flex:1;padding:1.5rem;overflow-y:auto}.history-loading{color:#64748b;flex-direction:column;justify-content:center;align-items:center;gap:.75rem;padding:3rem;font-size:.875rem;display:flex}.history-spinner{border:3px solid #e2e8f0;border-top-color:#1d4ed8;border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}.history-empty{color:#94a3b8;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.75rem;padding:3rem;display:flex}.history-empty p{font-size:.9rem;font-style:italic}.htimeline{flex-direction:column;gap:0;display:flex}.htimeline-item{gap:1rem;padding-bottom:1.5rem;display:flex;position:relative}.htimeline-item:last-child{padding-bottom:0}.htimeline-dot{z-index:1;background:#1d4ed8;border:3px solid #fff;border-radius:50%;flex-shrink:0;width:14px;height:14px;margin-top:.85rem;box-shadow:0 0 0 2px #1d4ed8}.htimeline-line{background:linear-gradient(#bfdbfe,#e2e8f0);width:2px;position:absolute;top:1.4rem;bottom:0;left:6px}.htimeline-card{background:#fff;border:1px solid #e2e8f0;border-radius:.875rem;flex:1;transition:box-shadow .2s;overflow:hidden;box-shadow:0 1px 4px #0000000f}.htimeline-card:hover{box-shadow:0 4px 16px #1d4ed81a}.htcard-head{background:#f0f7ff;border-bottom:1px solid #bfdbfe;justify-content:space-between;align-items:flex-start;gap:.75rem;padding:.75rem 1rem;display:flex}.htcard-date{color:#1e40af;align-items:center;gap:.35rem;font-size:.82rem;font-weight:600;display:inline-flex}.htcard-time{color:#1e40af;background:#dbeafe;border-radius:999px;align-items:center;gap:.25rem;margin-left:.25rem;padding:.15rem .5rem;font-size:.75rem;font-weight:500;display:inline-flex}.htcard-motif{color:#374151;white-space:nowrap;text-overflow:ellipsis;background:#fff;border:1px solid #e5e7eb;border-radius:.375rem;max-width:180px;padding:.2rem .6rem;font-size:.78rem;font-weight:600;overflow:hidden}.htcard-body{flex-direction:column;gap:.5rem;padding:.75rem 1rem;display:flex}.htcard-row{gap:.75rem;font-size:.825rem;line-height:1.5;display:flex}.htcard-label{color:#64748b;flex-shrink:0;min-width:80px;font-weight:600}.htcard-constantes{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:.5rem;flex-wrap:wrap;gap:.4rem;margin-top:.25rem;padding:.6rem .75rem;display:flex}.htcard-constantes span{color:#065f46;background:#fff;border:1px solid #d1fae5;border-radius:.375rem;align-items:center;gap:.25rem;padding:.2rem .55rem;font-size:.78rem;font-weight:500;display:inline-flex}.hrdv-list{flex-direction:column;gap:.75rem;display:flex}.hrdv-card{background:#fff;border:1px solid #e2e8f0;border-radius:.875rem;align-items:stretch;transition:transform .15s,box-shadow .15s;display:flex;overflow:hidden;box-shadow:0 1px 4px #0000000d}.hrdv-card:hover{transform:translateY(-1px);box-shadow:0 4px 16px #00000014}.hrdv-card.hrdv-confirmé .hrdv-left,.hrdv-card.hrdv-confirme .hrdv-left{background:#1d4ed8}.hrdv-card.hrdv-en-attente .hrdv-left{background:#f59e0b}.hrdv-card.hrdv-annulé .hrdv-left,.hrdv-card.hrdv-annule .hrdv-left{background:#ef4444}.hrdv-card.hrdv-default .hrdv-left{background:#6366f1}.hrdv-left{background:#6366f1;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;width:64px;padding:.75rem .5rem;display:flex}.hrdv-datebox{color:#fff;flex-direction:column;align-items:center;display:flex}.hrdv-day{font-size:1.5rem;font-weight:800;line-height:1}.hrdv-month{text-transform:uppercase;letter-spacing:.04em;opacity:.85;font-size:.72rem;font-weight:600}.hrdv-body{flex-direction:column;flex:1;gap:.35rem;padding:.75rem 1rem;display:flex}.hrdv-top{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.hrdv-time{color:#374151;align-items:center;gap:.25rem;font-size:.8rem;font-weight:600;display:inline-flex}.hrdv-statut{text-transform:capitalize;border-radius:999px;padding:.15rem .55rem;font-size:.72rem;font-weight:700}.hrdv-statut-confirmé,.hrdv-statut-confirme{color:#1e40af;background:#dbeafe}.hrdv-statut-en-attente{color:#854d0e;background:#fef9c3}.hrdv-statut-annulé,.hrdv-statut-annule{color:#991b1b;background:#fee2e2}.hrdv-motif{color:#374151;align-items:center;gap:.35rem;margin:0;font-size:.83rem;display:flex}.hrdv-montant{color:#166534;background:#dcfce7;border:1px solid #bbf7d0;border-radius:999px;align-self:flex-start;align-items:center;gap:.3rem;padding:.2rem .6rem;font-size:.78rem;font-weight:700;display:inline-flex}@media (max-width:768px){.patients-grid{grid-template-columns:1fr;gap:1rem}.page-header{flex-direction:column;align-items:flex-start;gap:1rem}.search-bar{width:100%}.search-bar input{font-size:1rem}.info-grid{grid-template-columns:1fr}.patient-card{padding:1rem}.patient-header{flex-direction:column;align-items:flex-start;gap:.75rem}.patient-actions{gap:.5rem;width:100%;display:flex}.patient-actions button{flex:1;justify-content:center}.modal{border-radius:1rem 1rem 0 0;max-width:100%;max-height:95vh;margin:auto 0 0}.modal-header{background:var(--bg-white);z-index:1;padding:1rem;position:sticky;top:0}.modal form{padding:1rem}.modal-actions{background:var(--bg-white);border-top:1px solid var(--border-color);flex-direction:column-reverse;gap:.75rem;padding:1rem;position:sticky;bottom:0}.modal-actions button{width:100%;margin:0}.history-modal{border-radius:1rem 1rem 0 0;max-height:95vh}.history-modal-header{flex-wrap:wrap;gap:.75rem}.history-stats{overflow-x:auto}.htimeline-card{border-radius:.625rem}.htcard-head{flex-direction:column;align-items:flex-start}.htcard-motif{max-width:100%}}.pagination-btn{border:1.5px solid var(--border-color);background-color:var(--bg-white);color:var(--text-dark);cursor:pointer;touch-action:manipulation;border-radius:.5rem;min-width:44px;min-height:44px;padding:.75rem 1.5rem;font-size:.9375rem;font-weight:500;transition:all .2s}.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{background:#fff;border:1px solid #e0e0e0;border-radius:.5rem;flex-direction:column;max-height:300px;animation:.2s slideDown;display:flex;box-shadow:0 10px 25px #0000001a}.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);gap:.75rem}.filters-bar{flex-direction:column;align-items:flex-start;padding:.75rem 1rem}.filter-group{justify-content:space-between;width:100%}.filter-divider{display:none}.filter-buttons{-webkit-overflow-scrolling:touch;flex-wrap:nowrap;width:100%;padding-bottom:.25rem;overflow-x:auto}.filter-btn{white-space:nowrap;flex-shrink:0}.action-buttons{flex-direction:column;width:100%}.action-buttons .btn{justify-content:center;width:100%}}@media (max-width:480px){.stats-grid{grid-template-columns:1fr 1fr;gap:.5rem}.stat-card{gap:.75rem;padding:.875rem}.stat-icon{border-radius:10px;flex-shrink:0;width:44px;height:44px}.stat-info h3{font-size:1.375rem}.timeline-container{padding:.75rem .5rem}.time-slot{grid-template-columns:56px 1fr}.time-label{padding:.5rem .25rem}.time-label .hour{font-size:.8125rem}.slot-content{min-height:60px;padding:.5rem}.timeline-appointment{padding:.625rem}.appointment-time-info{font-size:.8125rem}.appointment-patient h4{font-size:.875rem}.appointment-motif p{font-size:.8125rem}.btn-icon{width:28px;height:28px}.rdv-count{padding:.2rem .6rem;font-size:.6875rem}.timeline-header h3{font-size:1rem}}.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{gap:1rem;padding:1rem}.date-info h2{font-size:1.2rem}}@media (max-width:768px){.date-navigation{flex-wrap:wrap;gap:.75rem;padding:1rem}.date-display{order:-1;justify-content:center;width:100%}.nav-btn{flex:1;justify-content:center;padding:.6rem .75rem;font-size:.8125rem}.date-info h2{font-size:1.05rem}.timeline-container{padding:1rem .75rem}.timeline-header,.appointment-header{flex-wrap:wrap;gap:.5rem}.appointment-patient h4{font-size:.9rem}.appointment-info{gap:.75rem}.appointment-quick-actions{flex-wrap:wrap;gap:.375rem}.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}}.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)}.rdv-montant-row{cursor:pointer;border-radius:6px;gap:4px;padding:2px 4px;transition:background .15s}.rdv-montant-row:hover{background:#10b98114}.rdv-montant-add-btn{border:1px dashed var(--border-color);color:var(--text-light);cursor:pointer;background:0 0;border-radius:6px;align-items:center;gap:4px;margin-top:2px;padding:3px 8px;font-size:.75rem;transition:all .15s;display:inline-flex}.rdv-montant-add-btn:hover{border-color:var(--primary-blue);color:var(--primary-blue);background:#2563eb0d}.rdv-montant-edit-row{background:var(--bg-light);border:1.5px solid var(--primary-blue);border-radius:8px;align-items:center;gap:4px;margin-top:4px;padding:4px 6px;display:flex}.rdv-montant-input{width:70px;color:var(--text-dark);background:0 0;border:none;outline:none;font-family:inherit;font-size:.8125rem;font-weight:600}.rdv-montant-input::-webkit-inner-spin-button{-webkit-appearance:none}.rdv-montant-input::-webkit-outer-spin-button{-webkit-appearance:none}.rdv-montant-input[type=number]{-moz-appearance:textfield}.rdv-montant-currency{color:var(--text-gray);font-size:.75rem;font-weight:600}.rdv-montant-save,.rdv-montant-cancel{cursor:pointer;border:none;border-radius:5px;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;transition:background .15s;display:flex}.rdv-montant-save{background:var(--success-green);color:#fff}.rdv-montant-save:hover{background:#059669}.rdv-montant-cancel{background:var(--border-color);color:var(--text-gray)}.rdv-montant-cancel:hover{background:var(--danger-red);color:#fff}.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}.btn-print{color:#fff;cursor:pointer;background-color:#0d9488;border:none;border-radius:.5rem;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.875rem;font-weight:500;transition:background-color .2s,transform .15s;display:inline-flex}.btn-print:hover{background-color:#0f766e;transform:translateY(-1px)}.btn-print.btn-sm{padding:.375rem .75rem;font-size:.8rem}.ordonnance-text{white-space:pre-wrap;color:#134e4a;background:#f0fdf4;border-left:4px solid #0d9488;border-radius:0 .5rem .5rem 0;padding:1rem 1.25rem;font-size:.9375rem;line-height:1.8}.detail-actions{border-top:1px solid var(--border-color);justify-content:flex-end;margin-top:1rem;padding:1rem 0 .5rem;display:flex}.visite-footer{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.speech-input-container{cursor:text;flex-direction:column;gap:0;width:100%;display:flex}.speech-input-wrapper{cursor:text;align-items:center;width:100%;display:flex;position:relative}.speech-input-field{flex:1;width:100%;min-width:0;cursor:text!important;color:#0f172a!important;caret-color:#0f172a!important;--lightningcss-light:initial!important;--lightningcss-dark: !important;color-scheme:light!important;background-color:#fff!important;padding-right:2.75rem!important}.speech-input-field::placeholder{color:#94a3b8;opacity:1}.speech-input-textarea .speech-input-field{padding-right:2.75rem!important}.mic-btn{cursor:pointer;color:#6b7280;z-index:2;background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:2rem;height:2rem;transition:background .2s,color .2s,box-shadow .2s;display:flex;position:absolute;top:50%;right:.5rem;transform:translateY(-50%)}.mic-btn:hover{color:#6366f1;background:#6366f11a}.speech-input-textarea .mic-btn{top:.6rem;transform:none}.mic-btn-active{color:#ef4444;background:#ef44441f;animation:1.2s ease-in-out infinite mic-pulse}.mic-btn-active:hover{color:#dc2626;background:#ef444433}@keyframes mic-pulse{0%,to{box-shadow:0 0 #ef444466}50%{box-shadow:0 0 0 6px #ef444400}}.speech-interim{color:#6366f1;pointer-events:none;align-items:center;gap:.35rem;font-size:.7rem;font-style:italic;display:flex}.speech-interim-inside{white-space:nowrap;text-overflow:ellipsis;position:absolute;bottom:.35rem;left:.65rem;right:2.5rem;overflow:hidden}.speech-interim-dot{background:#ef4444;border-radius:50%;flex-shrink:0;width:6px;height:6px;animation:.8s step-start infinite blink-dot}@keyframes blink-dot{0%,to{opacity:1}50%{opacity:0}}.speech-interim-below{margin-top:.25rem;padding-left:.25rem;position:static}.speech-error-below{color:#ef4444;margin-top:.2rem;padding-left:.25rem;font-size:.72rem}.vf-page{background:#f0f4f8;flex-direction:column;max-width:none;height:calc(100vh - 73px);margin:-2rem;padding:0;display:flex;overflow:hidden}.vf-header{background:linear-gradient(135deg,#1e40af 0%,#2563eb 50%,#3b82f6 100%);flex-shrink:0;margin-bottom:0;padding:.9rem 1.5rem 1rem;position:relative;overflow:hidden}.vf-header:before{content:"";background:#ffffff0f;border-radius:50%;width:260px;height:260px;position:absolute;top:-60px;right:-60px}.vf-header:after{content:"";background:#ffffff0a;border-radius:50%;width:320px;height:320px;position:absolute;bottom:-80px;left:40%}.vf-back-btn{color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1;background:#ffffff26;border:1px solid #ffffff40;border-radius:99px;align-items:center;gap:.4rem;margin-bottom:.7rem;padding:.35rem .8rem;font-size:.8125rem;font-weight:500;transition:background .2s,transform .15s;display:inline-flex;position:relative}.vf-back-btn:hover{background:#ffffff40;transform:translate(-2px)}.vf-title{z-index:1;align-items:center;gap:1rem;display:flex;position:relative}.vf-title-icon-wrap{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#ffffff2e;border:1px solid #ffffff47;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;display:flex}.vf-title-icon{color:#fff}.vf-title h1{color:#fff;letter-spacing:-.3px;margin:0;font-size:1.25rem;font-weight:700}.vf-title p{color:#ffffffbf;margin:.1rem 0 0;font-size:.775rem}.vf-error-banner{color:#b91c1c;background:#fef2f2;border-left:4px solid #ef4444;border-radius:0 .5rem .5rem 0;flex-shrink:0;align-items:center;gap:.6rem;margin:0 1.5rem;padding:.6rem 1rem;font-size:.875rem;font-weight:500;animation:.25s slideDown;display:flex}.vf-loading{color:#64748b;justify-content:center;align-items:center;gap:.75rem;padding:6rem 2rem;font-size:1rem;display:flex}.vf-loading:before{content:"";border:3px solid #dbeafe;border-top-color:#2563eb;border-radius:50%;flex-shrink:0;width:22px;height:22px;animation:.7s linear infinite spin}.vf-page>form{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.vf-form-body{flex:1;min-height:0;padding:.85rem 1.25rem;overflow:hidden auto}.vf-grid{grid-template-columns:1fr 1fr;align-items:start;gap:1rem;display:grid}@media (max-width:920px){.vf-grid{grid-template-columns:1fr}.vf-form-body{padding:.75rem}}.vf-col{flex-direction:column;gap:1rem;display:flex}.vf-card{background:#fff;border:1px solid #e2e8f0;border-radius:16px;padding:1rem 1.25rem;transition:box-shadow .2s;position:relative;overflow:hidden;box-shadow:0 2px 12px #0000000f}.vf-card:before{content:"";opacity:0;background:linear-gradient(90deg,#2563eb,#60a5fa);border-radius:16px 16px 0 0;height:3px;transition:opacity .3s;position:absolute;top:0;left:0;right:0}.vf-card:hover{box-shadow:0 6px 24px #2563eb1a}.vf-card:hover:before{opacity:1}.vf-card-vitals:before{opacity:1;background:linear-gradient(90deg,#0891b2,#22d3ee)}.vf-card-vitals:hover{box-shadow:0 6px 24px #0891b21f}.vf-card-consult:before{opacity:1;background:linear-gradient(90deg,#7c3aed,#a78bfa)}.vf-card-consult:hover{box-shadow:0 6px 24px #7c3aed1a}.vf-card-header{border-bottom:1px solid #f1f5f9;align-items:center;gap:.6rem;margin-bottom:.9rem;padding-bottom:.65rem;display:flex}.vf-card-header-icon{color:#2563eb;background:#eff6ff;border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;display:flex}.vf-card-vitals .vf-card-header-icon{color:#0891b2;background:#ecfeff}.vf-card-consult .vf-card-header-icon{color:#7c3aed;background:#f5f3ff}.vf-card-header h2{color:#1e293b;margin:0;font-size:.9375rem;font-weight:700}.vf-card-header-badge{letter-spacing:.04em;text-transform:uppercase;color:#2563eb;background:#eff6ff;border-radius:99px;margin-left:auto;padding:.2rem .6rem;font-size:.7rem;font-weight:600}.vf-card-vitals .vf-card-header-badge{color:#0891b2;background:#ecfeff}.vf-card-consult .vf-card-header-badge{color:#7c3aed;background:#f5f3ff}.vf-toggle-header{cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:8px;justify-content:space-between;margin:-.45rem -.6rem .9rem;padding:.45rem .6rem;transition:background .15s}.vf-toggle-header:hover{background:#f8fafc}.vf-toggle-header .vf-toggle-chevron{color:#94a3b8;transition:transform .22s}.vf-toggle-header.open .vf-toggle-chevron{transform:rotate(180deg)}.vf-card-header-left{align-items:center;gap:.6rem;display:flex}.vf-two-cols{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.vf-constantes-grid{grid-template-columns:repeat(3,1fr);gap:.85rem;display:grid}@media (max-width:700px){.vf-constantes-grid{grid-template-columns:1fr 1fr}}.vf-metric-tile{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:.85rem .9rem;transition:border-color .2s,box-shadow .2s,background .2s}.vf-metric-tile:focus-within{background:#fff;border-color:#0891b2;box-shadow:0 0 0 3px #0891b21a}.vf-metric-tile-header{align-items:center;gap:.4rem;margin-bottom:.5rem;display:flex}.vf-metric-icon{border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;display:flex}.vf-metric-tile-header label{letter-spacing:.02em;color:#64748b!important;margin:0!important;font-size:.725rem!important;font-weight:600!important}.vf-metric-tile input{width:100%;box-shadow:none!important;color:#0f172a!important;background:0 0!important;border:none!important;border-radius:0!important;padding:0!important;font-size:1.1rem!important;font-weight:700!important}.vf-metric-tile input:focus{box-shadow:none!important;border:none!important;outline:none!important}.vf-metric-tile input::placeholder{color:#cbd5e1!important;font-size:1rem!important;font-weight:400!important}.vf-metric-unit{color:#94a3b8;margin-top:.1rem;font-size:.7rem;font-weight:500}.vf-metric-sao2 .vf-metric-icon{color:#0284c7;background:#e0f2fe}.vf-metric-tension .vf-metric-icon{color:#db2777;background:#fce7f3}.vf-metric-pouls .vf-metric-icon{color:#d97706;background:#fef3c7}.vf-metric-poids .vf-metric-icon{color:#059669;background:#d1fae5}.vf-metric-taille .vf-metric-icon{color:#7c3aed;background:#ede9fe}.vf-metric-temp .vf-metric-icon{color:#dc2626;background:#fee2e2}.vf-metric-sc .vf-metric-icon{color:#ea580c;background:#fff7ed}.vf-sc-card{background:#f8fafc;border:1.5px dashed #e2e8f0;border-radius:12px;align-items:center;gap:1rem;margin-top:.85rem;padding:.85rem 1.1rem;transition:border-color .2s,background .2s;display:flex}.vf-sc-card--active{background:linear-gradient(135deg,#fff7ed,#fffbf7);border-color:#fed7aa}.vf-sc-card-icon{color:#ea580c;background:#fff7ed;border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;display:flex}.vf-sc-card--active .vf-sc-card-icon{background:#fed7aa}.vf-sc-card-content{flex-direction:column;flex:1;min-width:0;display:flex}.vf-sc-card-label{color:#374151;font-size:.78rem;font-weight:700;line-height:1.2}.vf-sc-card-formula{color:#9ca3af;margin-top:.1rem;font-size:.68rem;font-style:italic}.vf-sc-card-value{color:#ea580c;white-space:nowrap;font-size:1.25rem;font-weight:800}.vf-sc-card-unit{color:#f97316;font-size:.75rem;font-weight:500}.vf-sc-card-empty{color:#94a3b8;font-size:.75rem;font-style:italic;font-weight:400}.vf-dossier-btn{color:#2563eb;cursor:pointer;background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;align-items:center;gap:.4rem;margin-top:.65rem;padding:.45rem 1rem;font-size:.8rem;font-weight:600;transition:background .15s,transform .12s;display:inline-flex}.vf-dossier-btn:hover{background:#dbeafe;transform:translateY(-1px)}.vf-submit-bar{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:10;background:#ffffffe6;border-top:1px solid #e2e8f0;border-radius:0 0 16px 16px;flex-shrink:0;justify-content:flex-end;align-items:center;gap:1rem;margin-top:0;padding:.75rem 1.5rem;display:flex;box-shadow:0 -4px 20px #0000000f}.vf-cancel-btn{color:#64748b;cursor:pointer;background:#fff;border:1.5px solid #e2e8f0;border-radius:10px;padding:.6rem 1.5rem;font-size:.875rem;font-weight:600;transition:border-color .15s,color .15s,background .15s}.vf-cancel-btn:hover{color:#334155;background:#f8fafc;border-color:#94a3b8}.vf-save-btn{color:#fff;cursor:pointer;letter-spacing:.01em;background:linear-gradient(135deg,#1d4ed8,#2563eb);border:none;border-radius:10px;justify-content:center;align-items:center;gap:.5rem;min-width:220px;padding:.65rem 1.8rem;font-size:.9rem;font-weight:700;transition:background .2s,transform .15s,box-shadow .2s;display:inline-flex;box-shadow:0 4px 14px #2563eb59}.vf-save-btn:hover:not(:disabled){background:linear-gradient(135deg,#1e40af,#1d4ed8);transform:translateY(-1px);box-shadow:0 6px 20px #2563eb66}.vf-save-btn:active:not(:disabled){transform:translateY(0)}.vf-save-btn:disabled{opacity:.65;cursor:not-allowed;box-shadow:none}.vf-page .form-group{margin-bottom:.75rem}.vf-page .form-group:last-child{margin-bottom:0}.vf-page .form-group label{color:#475569;letter-spacing:.01em;align-items:center;gap:.35rem;margin-bottom:.4rem;font-size:.8rem;font-weight:600;display:flex}.vf-page .form-group input,.vf-page .form-group textarea,.vf-page .form-group select{color:#1e293b;box-sizing:border-box;background:#fff;border:1.5px solid #e2e8f0;border-radius:10px;width:100%;padding:.6rem .85rem;font-size:.875rem;transition:border-color .2s,box-shadow .2s,background .2s}.vf-page .form-group input:hover,.vf-page .form-group textarea:hover{border-color:#93c5fd}.vf-page .form-group input:focus,.vf-page .form-group textarea:focus{background:#fafcff;border-color:#2563eb;outline:none;box-shadow:0 0 0 3.5px #2563eb1f}.vf-page .form-group textarea{resize:vertical;min-height:68px;line-height:1.5}.login-container{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.login-box{background:#fff;border-radius:20px;width:100%;max-width:440px;padding:40px;animation:.5s ease-out slideUp;box-shadow:0 20px 60px #0000004d}.login-header{text-align:center;margin-bottom:40px}.login-icon{color:#fff;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border-radius:50%;justify-content:center;align-items:center;width:80px;height:80px;margin-bottom:20px;display:inline-flex}.login-header h1{color:#1a202c;margin:0 0 10px;font-size:28px;font-weight:700}.login-header p{color:#718096;margin:0;font-size:16px}.login-form{flex-direction:column;gap:20px;display:flex}.error-message{color:#c33;background-color:#fee;border-left:4px solid #c33;border-radius:8px;align-items:center;gap:10px;padding:12px 16px;font-size:14px;display:flex}.error-message svg{flex-shrink:0}.form-group input{color:#0f172a;caret-color:#0f172a;background-color:#f7fafc;border:2px solid #e2e8f0;border-radius:10px;padding:12px 16px;font-size:15px;transition:all .3s}.form-group input:focus{background-color:#fff;border-color:#667eea;outline:none;box-shadow:0 0 0 3px #667eea1a}.form-group input:disabled{cursor:not-allowed;opacity:.6;background-color:#edf2f7}.login-button{color:#fff;cursor:pointer;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border:none;border-radius:10px;margin-top:10px;padding:14px;font-size:16px;font-weight:600;transition:all .3s;box-shadow:0 4px 15px #667eea66}.login-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #667eea80}.login-button:active:not(:disabled){transform:translateY(0)}.login-button:disabled{opacity:.6;cursor:not-allowed}.login-footer{text-align:center;border-top:1px solid #e2e8f0;margin-top:30px;padding-top:20px}.login-footer p{color:#718096;margin:0;font-size:13px;font-style:italic}@media (max-width:480px){.login-box{padding:30px 20px}.login-header h1{font-size:24px}.login-icon{width:60px;height:60px}.login-icon svg{width:36px;height:36px}}.change-password-page{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.change-password-container{background:#fff;border-radius:20px;width:100%;max-width:500px;padding:40px;animation:.5s ease-out slideUp;position:relative;box-shadow:0 20px 60px #0000004d}.back-button{color:#4a5568;cursor:pointer;background-color:#0000;border:1px solid #e2e8f0;border-radius:8px;align-items:center;gap:8px;padding:8px 16px;font-size:14px;font-weight:500;transition:all .2s;display:flex;position:absolute;top:20px;left:20px}.back-button:hover{color:#2d3748;background-color:#f7fafc;border-color:#cbd5e0}.change-password-header{text-align:center;margin-top:30px;margin-bottom:40px}.icon-wrapper{color:#fff;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border-radius:50%;justify-content:center;align-items:center;width:70px;height:70px;margin-bottom:20px;display:inline-flex}.change-password-header h1{color:#1a202c;margin:0 0 10px;font-size:26px;font-weight:700}.change-password-header p{color:#718096;margin:0;font-size:15px}.change-password-form{flex-direction:column;gap:20px;display:flex}.message{border-radius:8px;align-items:center;gap:10px;padding:12px 16px;font-size:14px;animation:.3s slideDown;display:flex}.error-message{color:#c33;background-color:#fee;border-left:4px solid #c33}.success-message{color:#22863a;background-color:#e6ffed;border-left:4px solid #28a745}.message svg{flex-shrink:0}.form-group{flex-direction:column;gap:8px;display:flex}.form-group label{color:#2d3748;font-size:14px;font-weight:600}.password-input-wrapper{align-items:center;display:flex;position:relative}.password-input-wrapper input{color:#0f172a;caret-color:#0f172a;background-color:#f7fafc;border:2px solid #e2e8f0;border-radius:10px;flex:1;width:100%;padding:12px 45px 12px 16px;font-size:15px;transition:all .3s}.password-input-wrapper input:focus{background-color:#fff;border-color:#667eea;outline:none;box-shadow:0 0 0 3px #667eea1a}.password-input-wrapper input:disabled{cursor:not-allowed;opacity:.6;background-color:#edf2f7}.toggle-password{color:#718096;cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:4px;transition:color .2s;display:flex;position:absolute;right:12px}.toggle-password:hover{color:#4a5568}.toggle-password:focus{outline:none}.submit-button{color:#fff;cursor:pointer;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border:none;border-radius:10px;margin-top:10px;padding:14px;font-size:16px;font-weight:600;transition:all .3s;box-shadow:0 4px 15px #667eea66}.submit-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #667eea80}.submit-button:active:not(:disabled){transform:translateY(0)}.submit-button:disabled{opacity:.6;cursor:not-allowed}.password-requirements{border-top:1px solid #e2e8f0;margin-top:30px;padding-top:20px}.password-requirements h4{color:#2d3748;margin:0 0 12px;font-size:14px;font-weight:600}.password-requirements ul{color:#718096;margin:0;padding-left:20px;font-size:13px}.password-requirements li{margin-bottom:6px}@media (max-width:480px){.change-password-container{padding:30px 20px}.change-password-header h1{font-size:22px}.icon-wrapper{width:60px;height:60px}.icon-wrapper svg{width:28px;height:28px}.back-button{width:fit-content;margin-bottom:20px;position:static}.change-password-header{margin-top:10px}}#root{min-height:100vh}.btn-files{color:#fff;cursor:pointer;background-color:#6366f1;border:none;border-radius:.5rem;align-items:center;gap:.45rem;padding:.5rem 1.1rem;font-size:.875rem;font-weight:500;transition:background-color .2s,transform .15s;display:inline-flex}.btn-files:hover{background-color:#4f46e5;transform:translateY(-1px)}.btn-files.btn-sm{padding:.35rem .75rem;font-size:.8rem}
