*{margin:0;padding:0;box-sizing:border-box}:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;min-width:320px;min-height:100vh;background-color:#f7fafc;color:#1a202c}#root{min-height:100vh}h1,h2,h3,h4,h5,h6{margin:0;font-weight:600;line-height:1.2}p{margin:0}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer}input,textarea,select{font-family:inherit}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#f1f1f1}::-webkit-scrollbar-thumb{background:#cbd5e0;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#a0aec0}.language-selector{display:flex;gap:.5rem;background-color:#ffffff1a;border-radius:.5rem;padding:.25rem}.lang-btn{padding:.375rem .75rem;background:transparent;border:none;border-radius:.375rem;color:#fff;font-size:.75rem;font-weight:600;cursor:pointer;transition:all .2s}.lang-btn:hover{background-color:#ffffff1a}.lang-btn.active{background-color:#fff3}.login-container .language-selector,.register-container .language-selector{position:absolute;top:1.5rem;right:1.5rem}.login-container .lang-btn,.register-container .lang-btn{color:#fff}@media (max-width: 480px){.login-container .language-selector,.register-container .language-selector{top:1rem;right:1rem}.lang-btn{padding:.25rem .5rem;font-size:.7rem}}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:1.5rem}.login-card{background:#fff;border-radius:1rem;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;padding:2.5rem;width:100%;max-width:420px}.login-header{text-align:center;margin-bottom:2rem}.login-header .logo{display:flex;justify-content:center;margin-bottom:1.5rem}.login-header h1{font-size:1.875rem;font-weight:700;color:#1a202c;margin-bottom:.5rem}.login-header p{color:#718096;font-size:.875rem}.login-form{display:flex;flex-direction:column;gap:1.25rem}.form-group label{font-size:.875rem;font-weight:500;color:#2d3748}.form-group input{width:100%;padding:.75rem 1rem;border:1px solid #e2e8f0;border-radius:.5rem;font-size:.875rem;transition:all .2s}.form-group input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.error-message{display:flex;align-items:center;gap:.75rem;padding:.75rem;background-color:#fff5f5;border:1px solid #fc8181;border-radius:.5rem;color:#c53030;font-size:.875rem}.btn-primary{width:100%;padding:.75rem 1rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:.5rem;font-size:.875rem;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.login-footer{margin-top:1.5rem;text-align:center;font-size:.875rem;color:#718096}.login-footer a{color:#667eea;font-weight:600;text-decoration:none;transition:color .2s}.login-footer a:hover{color:#764ba2}@media (max-width: 480px){.login-card{padding:1.5rem}.login-header h1{font-size:1.5rem}}.register-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:1.5rem}.register-card{background:#fff;border-radius:1rem;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;padding:2.5rem;width:100%;max-width:420px}.register-header{text-align:center;margin-bottom:2rem}.register-header .logo{display:flex;justify-content:center;margin-bottom:1.5rem}.register-header h1{font-size:1.875rem;font-weight:700;color:#1a202c;margin-bottom:.5rem}.register-header p{color:#718096;font-size:.875rem}.register-form{display:flex;flex-direction:column;gap:1.25rem}.register-form select{width:100%;padding:.75rem;border:1px solid #e2e8f0;border-radius:.5rem;font-size:1rem;transition:border-color .2s,box-shadow .2s;background-color:#fff}.register-form select:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.form-hint{display:block;margin-top:.5rem;font-size:.75rem;color:#718096;line-height:1.4}.register-footer{margin-top:1.5rem;text-align:center;font-size:.875rem;color:#718096}.register-footer a{color:#667eea;font-weight:600;text-decoration:none;transition:color .2s}.register-footer a:hover{color:#764ba2}@media (max-width: 480px){.register-card{padding:1.5rem}.register-header h1{font-size:1.5rem}}.skeleton-card{pointer-events:none;cursor:default}.skeleton{background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0,#f0f0f0 75%);background-size:200% 100%;animation:loading 1.5s infinite;border-radius:6px}@keyframes loading{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-avatar{width:48px;height:48px;border-radius:50%;flex-shrink:0}.skeleton-name{max-width:140px;width:100%;height:16px;margin-bottom:.5rem}.skeleton-badge{max-width:50px;width:50px;height:18px;border-radius:6px}.skeleton-icon{width:16px;height:16px;border-radius:4px;flex-shrink:0}.skeleton-chevron{width:20px;height:20px;border-radius:4px;flex-shrink:0;opacity:.5}.skeleton-stat-text{max-width:120px;width:100%;height:13px}.skeleton-card:hover{transform:none;box-shadow:0 1px 3px #0000001a;border-color:transparent}.skeleton-card .patient-info,.skeleton-card .stat{min-width:0;overflow:hidden}.app-header{background:#fff;border-bottom:1px solid #e2e8f0;position:sticky;top:0;z-index:100;box-shadow:0 1px 3px #0000000d}.header-content{max-width:1400px;margin:0 auto;padding:1rem 2rem;display:flex;justify-content:space-between;align-items:center}.logo{display:flex;align-items:center;gap:.75rem;font-size:1.25rem;font-weight:700;color:#1a202c}.logo-text{color:#1a202c}.btn-back-header{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:transparent;border:1px solid #e2e8f0;border-radius:.5rem;font-size:.95rem;color:#4a5568;cursor:pointer;transition:all .2s}.btn-back-header:hover{background:#f7fafc;border-color:#cbd5e0}.btn-back-header span:first-child{font-size:1.25rem;line-height:1}.user-menu{position:relative}.user-avatar-button{background:none;border:none;cursor:pointer;padding:0;transition:transform .2s}.user-avatar-button:hover{transform:scale(1.05)}.user-avatar{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:.875rem;cursor:pointer;transition:all .2s}.user-avatar-button:hover .user-avatar{box-shadow:0 4px 12px #667eea66}.user-dropdown{position:absolute;top:calc(100% + .5rem);right:0;background:#fff;border-radius:.75rem;box-shadow:0 10px 40px #00000026;min-width:280px;border:1px solid #e2e8f0;animation:dropdownFadeIn .2s ease-out;overflow:hidden}@keyframes dropdownFadeIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.dropdown-header{padding:1.25rem;display:flex;gap:.875rem;align-items:center}.dropdown-avatar{width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:1rem;flex-shrink:0}.dropdown-user-info{flex:1;min-width:0}.dropdown-name-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.375rem;flex-wrap:wrap}.dropdown-name{font-weight:600;font-size:.95rem;color:#1a202c}.user-type-badge{display:inline-flex;align-items:center;padding:.125rem .5rem;font-size:.7rem;font-weight:600;border-radius:12px;text-transform:uppercase;letter-spacing:.025em}.user-type-badge.medic{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff!important}.user-type-badge.patient{background:linear-gradient(135deg,#10b981,#059669);color:#fff!important}.dropdown-email{font-size:.8rem;color:#718096;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dropdown-divider{height:1px;background:#e2e8f0}.dropdown-item{width:100%;display:flex;align-items:center;gap:.75rem;padding:.875rem 1.25rem;background:none;border:none;font-size:.9rem;color:#4a5568;cursor:pointer;transition:all .2s;text-align:left}.dropdown-item:hover{background:#f7fafc}.logout-item{color:#e53e3e}.logout-item:hover{background:#fff5f5}.language-switcher{padding:.875rem 1.25rem}.language-label{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:#4a5568;font-weight:500;margin-bottom:.625rem}.language-buttons{display:flex;gap:.5rem}.language-btn{flex:1;padding:.5rem .75rem;background:#f7fafc;border:1px solid #e2e8f0;border-radius:.375rem;font-size:.8rem;font-weight:600;color:#4a5568;cursor:pointer;transition:all .2s;text-align:center}.language-btn:hover{background:#edf2f7;border-color:#cbd5e0}.language-btn.active{background:linear-gradient(135deg,#667eea,#764ba2);border-color:#667eea;color:#fff}@media (max-width: 768px){.app-header{box-shadow:0 2px 8px #00000014}.header-content{padding:.875rem 1rem;flex-direction:row;gap:.75rem}.logo{gap:.5rem;font-size:1.125rem;flex-shrink:0}.logo-icon{width:20px;height:20px;flex-shrink:0}.logo-text{display:block;white-space:nowrap}.user-avatar{width:36px;height:36px;font-size:.8125rem;flex-shrink:0}.user-menu{flex-shrink:0}.user-dropdown{min-width:280px;right:-.5rem}.dropdown-header{padding:1rem;gap:.75rem}.dropdown-avatar{width:42px;height:42px;font-size:.9rem}.dropdown-name{font-size:.875rem}.dropdown-email{font-size:.75rem}.user-type-badge{padding:.125rem .375rem;font-size:.65rem}.dropdown-item{padding:.75rem 1rem;font-size:.875rem}.btn-back-header{padding:.5rem .875rem;font-size:.875rem;gap:.375rem}.btn-back-header span:first-child{font-size:1.125rem}}.medic-dashboard{min-height:100vh;background-color:#f7fafc}.logo-icon{color:#667eea}.search-icon{color:#a0aec0;flex-shrink:0}.empty-icon{color:#cbd5e0;margin-bottom:1rem}.detail-icon{color:#a0aec0;flex-shrink:0}.stat-icon{color:#667eea;flex-shrink:0}.medic-main{max-width:1400px;margin:0 auto;padding:2rem}.patients-section{width:100%}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.section-header h1{font-size:2rem;font-weight:700;color:#1a202c;margin:0 0 .5rem}.section-subtitle{font-size:.95rem;color:#718096;margin:0}.search-bar{display:flex;align-items:center;gap:.75rem;padding:.875rem 1.25rem;background:#fff;border-radius:.75rem;box-shadow:0 1px 3px #0000001a;margin-bottom:2rem;border:2px solid transparent;transition:border-color .2s}.search-bar:focus-within{border-color:#667eea}.search-bar svg{color:#a0aec0;flex-shrink:0}.search-bar input{flex:1;border:none;outline:none;font-size:.95rem;color:#2d3748}.search-bar input::placeholder{color:#a0aec0}.error-banner{display:flex;align-items:center;gap:.75rem;padding:1rem 1.25rem;background-color:#fff5f5;border-left:4px solid #f56565;border-radius:.5rem;color:#c53030;margin-bottom:1.5rem}.error-banner svg{flex-shrink:0}.error-banner p{margin:0;font-size:.9rem}.patients-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(380px,1fr));gap:1.5rem}.patient-card{background:#fff;border-radius:.75rem;padding:1.25rem;box-shadow:0 1px 3px #0000001a;transition:all .3s cubic-bezier(.4,0,.2,1);cursor:pointer;border:2px solid transparent;position:relative;overflow:hidden}.patient-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#667eea,#764ba2);transform:scaleX(0);transition:transform .3s cubic-bezier(.4,0,.2,1)}.patient-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px #667eea33;border-color:#e6e9ff}.patient-card:hover:before{transform:scaleX(1)}.patient-card-header{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.patient-avatar{width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:1rem;flex-shrink:0}.patient-info{flex:1;min-width:0}.patient-name{font-size:1rem;font-weight:600;color:#1a202c;margin:0 0 .5rem;line-height:1.4;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.patient-meta{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.status-badge{display:inline-flex;align-items:center;padding:.2rem .5rem;font-size:.65rem;font-weight:600;border-radius:12px;text-transform:uppercase;letter-spacing:.025em}.status-badge.recent{background:linear-gradient(135deg,#10b981,#059669);color:#fff;box-shadow:0 2px 4px #10b98133}.blood-type{display:inline-flex;align-items:center;padding:.2rem .5rem;background:linear-gradient(135deg,#fef5e7,#fff4e6);color:#f39c12;border-radius:.375rem;font-size:.7rem;font-weight:600;letter-spacing:.025em;border:1px solid #ffe5b4}.chevron-icon{color:#cbd5e0;flex-shrink:0;transition:all .3s cubic-bezier(.4,0,.2,1)}.patient-card:hover .chevron-icon{transform:translate(4px);color:#667eea}.patient-card-footer{display:flex;gap:1.5rem;padding-top:1rem;border-top:1px solid #e2e8f0}.stat{display:flex;align-items:center;gap:.5rem;font-size:.8rem;color:#718096;line-height:1.5}.stat-text{font-weight:500;letter-spacing:-.005em}.empty-state{grid-column:1 / -1;text-align:center;padding:4rem 2rem}.empty-state h3{font-size:1.25rem;font-weight:600;color:#2d3748;margin:0 0 .5rem}.empty-state p{font-size:.95rem;color:#718096;margin:0;line-height:1.6}@media (max-width: 1024px){.patients-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}}@media (max-width: 768px){.medic-main{padding:1rem}.section-header h1{font-size:1.5rem}.patients-grid{grid-template-columns:1fr}.user-details{display:none}}@media (max-width: 480px){.patient-card-footer{flex-direction:column;gap:.75rem}.search-bar{padding:.75rem 1rem}}.search-actions-bar{display:flex;gap:1rem;margin-bottom:2rem;align-items:center}.search-actions-bar .search-bar{flex:1;margin-bottom:0}.btn-create-patient{display:flex;align-items:center;gap:.5rem;padding:.875rem 1.5rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:.75rem;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 12px #667eea4d;white-space:nowrap}.btn-create-patient:hover{transform:translateY(-2px);box-shadow:0 6px 20px #667eea66}.btn-create-patient:active{transform:translateY(0)}.btn-link-patient{display:flex;align-items:center;gap:.5rem;padding:.875rem 1.5rem;background:linear-gradient(135deg,#48bb78,#38a169);color:#fff;border:none;border-radius:.75rem;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 12px #48bb784d;white-space:nowrap}.btn-link-patient:hover{transform:translateY(-2px);box-shadow:0 6px 20px #48bb7866}.btn-link-patient:active{transform:translateY(0)}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;animation:fadeIn .2s ease-out}.modal-content{background:#fff;border-radius:1rem;max-width:600px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0000004d;animation:slideUp .3s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.5rem;border-bottom:1px solid #e2e8f0}.modal-header h2{margin:0;font-size:1.5rem;font-weight:700;color:#1a202c}.btn-close-modal{background:none;border:none;cursor:pointer;color:#a0aec0;padding:.25rem;display:flex;align-items:center;justify-content:center;border-radius:.375rem;transition:all .2s}.btn-close-modal:hover{background:#f7fafc;color:#667eea}.modal-body{padding:1.5rem}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.25rem;margin-bottom:1.5rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group-full{grid-column:1 / -1}.form-group label{display:flex;align-items:center;gap:.5rem;font-size:.875rem;font-weight:600;color:#2d3748}.form-group label svg{color:#667eea;flex-shrink:0}.form-group input,.form-group select{padding:.75rem;border:2px solid #e2e8f0;border-radius:.5rem;font-size:.95rem;color:#2d3748;transition:all .2s;background:#fff}.form-group input:focus,.form-group select:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.form-group input::placeholder{color:#a0aec0}.form-group select{cursor:pointer}.form-group input.input-error,.form-group select.input-error{border-color:#f56565}.form-group input.input-error:focus,.form-group select.input-error:focus{border-color:#f56565;box-shadow:0 0 0 3px #f565651a}.error-text{display:block;color:#e53e3e;font-size:.8rem;margin-top:.25rem;font-weight:500}.modal-footer{display:flex;gap:.75rem;justify-content:flex-end;padding-top:1.5rem;border-top:1px solid #e2e8f0}.btn-cancel,.btn-submit{padding:.75rem 1.5rem;border-radius:.5rem;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s;border:none}.btn-cancel{background:#f7fafc;color:#4a5568}.btn-cancel:hover{background:#e2e8f0}.btn-submit{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;box-shadow:0 4px 12px #667eea4d}.btn-submit:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #667eea66}.btn-submit:disabled{opacity:.6;cursor:not-allowed}.patient-context-menu{position:fixed;transform:translate(-50%);background:#fff;border-radius:8px;box-shadow:0 4px 12px #00000026;padding:.5rem;z-index:1000;min-width:150px}@media (max-width: 768px){.search-actions-bar{flex-direction:column;align-items:stretch}.btn-create-patient{justify-content:center}.form-grid{grid-template-columns:1fr}.modal-content{max-height:95vh}.modal-header,.modal-body{padding:1rem}.modal-footer{flex-direction:column-reverse}.btn-cancel,.btn-submit{width:100%}}.patient-detail{min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2)}.detail-header{background:#fffffff2;padding:1rem 2rem;display:flex;justify-content:space-between;align-items:center;box-shadow:0 2px 8px #0000001a}.btn-back{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:#667eea;color:#fff;border:none;border-radius:8px;font-size:.95rem;cursor:pointer;transition:all .2s}.btn-back:hover{background:#5568d3;transform:translate(-2px)}.header-user-info{display:flex;align-items:center;gap:.75rem}.detail-main{max-width:1200px;margin:0 auto;padding:2rem}.patient-info-card{background:#fff;border-radius:16px;padding:2rem;box-shadow:0 4px 20px #0000001a;margin-bottom:2rem}.patient-header{display:flex;align-items:center;gap:1.5rem;margin-bottom:2rem;padding-bottom:2rem;border-bottom:2px solid #f0f0f0}.patient-header-content{flex:1}.patient-avatar-large{width:100px;height:100px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:2.5rem;font-weight:600;flex-shrink:0}.patient-header h1{font-size:2rem;color:#2d3748;margin:0 0 .5rem}.blood-type-large{display:inline-block;padding:.5rem 1rem;background:linear-gradient(135deg,#f093fb,#f5576c);color:#fff;border-radius:20px;font-size:.9rem;font-weight:500}.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem}.info-item{display:flex;flex-direction:column;gap:.5rem}.info-label{font-size:.85rem;color:#718096;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.info-value{display:flex;align-items:center;gap:.5rem;font-size:1rem;color:#2d3748;padding:.75rem;background:#f7fafc;border-radius:8px}.appointments-section{background:#fff;border-radius:16px;padding:2rem;box-shadow:0 4px 20px #0000001a}.appointments-section h2{font-size:1.5rem;color:#2d3748;margin:0 0 1.5rem}.empty-appointments{text-align:center;padding:4rem 2rem;color:#718096;background:#fff;border-radius:16px;border:2px dashed #e2e8f0}.empty-appointments .icon-large{font-size:5rem;display:block;margin-bottom:1.5rem;opacity:.5}.empty-appointments p{font-size:1.125rem;margin:0}.appointments-list{display:flex;flex-direction:column;gap:1.5rem}.appointment-card{padding:0;background:#fff;border-radius:16px;border:2px solid #e2e8f0;transition:all .3s;box-shadow:0 2px 8px #0000000a;overflow:hidden}.appointment-card:hover{transform:translateY(-3px);box-shadow:0 8px 24px #667eea1f;border-color:#667eea}.appointment-row{display:flex;flex-direction:column;gap:0;width:100%}.appointment-date-compact{display:flex;align-items:center;justify-content:space-between;gap:.75rem;font-weight:600;color:#fff;font-size:.9375rem;padding:1rem 1.5rem;background:linear-gradient(135deg,#667eea,#764ba2);border-bottom:3px solid rgba(255,255,255,.2);position:relative}.appointment-date-compact:after{content:"→";font-size:1.25rem;opacity:.7;transition:all .3s;margin-left:auto}.appointment-content-clickable:hover .appointment-date-compact:after{opacity:1;transform:translate(4px)}.appointment-date-compact svg{flex-shrink:0}.appointment-info-compact{display:flex;flex-direction:column;gap:.875rem;padding:1.25rem 1.5rem;background:#fafbfc}.appointment-chip{display:flex;align-items:flex-start;gap:.5rem;padding:.75rem 1rem;background:#fff;border-radius:10px;font-size:.875rem;border:none;width:100%;transition:all .2s;box-shadow:0 1px 3px #0000000d}.appointment-chip:hover{box-shadow:0 3px 10px #00000014;transform:translate(4px)}.appointment-chip strong{font-weight:600;white-space:nowrap;flex-shrink:0;font-size:.75rem;text-transform:uppercase;letter-spacing:.5px;min-width:85px}.appointment-chip .chip-text{flex:1;color:#2d3748;line-height:1.5;word-wrap:break-word;overflow-wrap:break-word}.appointment-chip.reason{border-left:4px solid #10b981;background:linear-gradient(to right,#f0fdf4,#fff)}.appointment-chip.reason strong{color:#059669}.appointment-chip.diagnosis{border-left:4px solid #f59e0b;background:linear-gradient(to right,#fffbeb,#fff)}.appointment-chip.diagnosis strong{color:#d97706}.appointment-chip.treatment{border-left:4px solid #8b5cf6;background:linear-gradient(to right,#faf5ff,#fff)}.appointment-chip.treatment strong{color:#7c3aed}.appointment-chip.notes{border-left:4px solid #6b7280;background:linear-gradient(to right,#f9fafb,#fff)}.appointment-chip.notes strong{color:#4b5563}.appointment-actions{display:flex;gap:.75rem;padding:1rem 1.5rem;background:#fff;border-top:1px solid #e2e8f0;justify-content:flex-end}.appointment-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid #e2e8f0}.appointment-date{display:flex;align-items:center;gap:.5rem;font-weight:600;color:#667eea;font-size:1rem}.btn-icon-edit,.btn-icon-delete{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.5rem 1rem;border:none;border-radius:8px;cursor:pointer;transition:all .2s;font-size:.875rem;font-weight:500}.btn-icon-edit{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.btn-icon-edit:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea4d}.btn-icon-delete{background:#fff;color:#ef4444;border:2px solid #fee2e2}.btn-icon-delete:hover{background:#ef4444;color:#fff;border-color:#ef4444;transform:translateY(-2px);box-shadow:0 4px 12px #ef44444d}.appointment-edit-form{padding:1rem 0}.appointment-info-compact::-webkit-scrollbar{height:4px}.appointment-info-compact::-webkit-scrollbar-track{background:transparent}.appointment-info-compact::-webkit-scrollbar-thumb{background:#cbd5e0;border-radius:4px}.appointment-info-compact::-webkit-scrollbar-thumb:hover{background:#a0aec0}.error-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:2rem;background:linear-gradient(135deg,#667eea,#764ba2)}.error-container .icon-large{font-size:5rem;margin-bottom:1rem}.error-container h2{color:#fff;font-size:2rem;margin:0 0 1rem}.error-container p{color:#ffffffe6;font-size:1.1rem;margin-bottom:2rem}.btn-primary{padding:.75rem 1.5rem;background:#fff;color:#667eea;border:none;border-radius:8px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0003}.btn-edit{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;background:#667eea;color:#fff;border:none;border-radius:8px;font-size:.95rem;font-weight:500;cursor:pointer;transition:all .2s}.btn-edit:hover{background:#5568d3;transform:translateY(-2px);box-shadow:0 4px 12px #667eea4d}.edit-form{margin-top:2rem}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.75rem;margin-bottom:2rem}.form-group{display:flex;flex-direction:column;gap:.625rem}.form-group.full-width{grid-column:1 / -1}.form-group label{font-size:.875rem;font-weight:600;color:#4a5568;letter-spacing:.2px}.input-with-icon{display:flex;align-items:center;gap:.875rem;padding:.875rem 1.125rem;background:#fafbfc;border:2px solid #e2e8f0;border-radius:10px;transition:all .2s;width:100%;box-sizing:border-box}.input-with-icon:focus-within{border-color:#667eea;background:#fff;box-shadow:0 0 0 3px #667eea1a}.input-with-icon svg{color:#667eea;flex-shrink:0}.input-with-icon input{flex:1;border:none;background:transparent;outline:none;font-size:.9375rem;color:#2d3748;min-width:0;width:100%}.form-select{padding:.75rem 1rem;background:#f7fafc;border:2px solid #e2e8f0;border-radius:8px;font-size:.95rem;color:#2d3748;cursor:pointer;transition:all .2s}.form-select:focus{outline:none;border-color:#667eea;background:#fff}.form-actions{display:flex;justify-content:flex-end;gap:1rem;padding-top:2rem;border-top:2px solid #e2e8f0;margin-top:.5rem}.btn-cancel{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;background:#fff;color:#718096;border:2px solid #e2e8f0;border-radius:8px;font-size:.95rem;font-weight:500;cursor:pointer;transition:all .2s}.btn-cancel:hover{background:#f7fafc;border-color:#cbd5e0;color:#4a5568}.btn-save{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;font-size:.95rem;font-weight:500;cursor:pointer;transition:all .2s}.btn-save:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea4d}.appointments-section .section-header-wrapper{margin-bottom:1.5rem}.appointments-section h2{margin:0}.btn-add{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;background:linear-gradient(135deg,#10b981,#059669);color:#fff;border:none;border-radius:8px;font-size:.95rem;font-weight:500;cursor:pointer;transition:all .2s;white-space:nowrap;flex-shrink:0}.btn-add:hover{transform:translateY(-2px);box-shadow:0 4px 12px #10b9814d}.appointment-form{background:#fff;padding:2rem;border-radius:16px;margin-bottom:2rem;border:2px solid #e2e8f0;box-shadow:0 4px 16px #0000000f}.appointment-form h3{margin:0 0 1.75rem;color:#2d3748;font-size:1.375rem;font-weight:700;padding-bottom:1rem;border-bottom:2px solid #e2e8f0}.form-textarea{width:100%;padding:.875rem 1.125rem;background:#fafbfc;border:2px solid #e2e8f0;border-radius:10px;font-size:.9375rem;color:#2d3748;font-family:inherit;resize:vertical;transition:all .2s;line-height:1.6;box-sizing:border-box;max-width:100%}.form-textarea:focus{outline:none;border-color:#667eea;background:#fff;box-shadow:0 0 0 3px #667eea1a}@media (max-width: 768px){.patient-header{flex-direction:column;text-align:center;gap:1rem}.patient-header h1{font-size:1.5rem}.patient-avatar-large{width:80px;height:80px;font-size:2rem}.info-grid{grid-template-columns:1fr}.detail-main{padding:1rem}.patient-info-card,.appointments-section{padding:1.25rem}.form-grid{grid-template-columns:1fr;gap:1.25rem}.appointment-form{padding:1.25rem}.appointment-form h3{font-size:1.125rem;margin:0 0 1.25rem;padding-bottom:.75rem}.input-with-icon{padding:.75rem 1rem;gap:.625rem}.input-with-icon svg{width:16px;height:16px}.input-with-icon input{font-size:.875rem}.form-textarea{padding:.75rem 1rem;font-size:.875rem}.form-actions{flex-direction:column-reverse;gap:.75rem;padding-top:1.5rem}.btn-save,.btn-cancel{width:100%;justify-content:center;padding:.875rem 1.25rem}.btn-edit{width:100%;justify-content:center;margin-top:1rem}.btn-add{padding:.625rem 1rem;font-size:.875rem}.btn-add span{display:none}.appointment-row{flex-direction:column}.appointment-date-compact{padding:.875rem 1.25rem;font-size:.875rem}.appointment-info-compact{padding:1rem 1.25rem}.appointment-actions{padding:.875rem 1.25rem;flex-direction:column;gap:.625rem}.btn-icon-edit,.btn-icon-delete{width:100%;justify-content:center}.appointment-chip{padding:.625rem .875rem;font-size:.8125rem}.appointment-chip strong{min-width:70px;font-size:.6875rem}.section-header-appointments{flex-wrap:wrap;gap:.75rem}.section-header-appointments h2{font-size:1.25rem}}.modal-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:#fff;border-radius:16px;max-width:700px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0000004d;animation:slideUp .3s ease-out}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem 2rem;border-bottom:2px solid #f0f0f0}.modal-header h2{margin:0;font-size:1.5rem;color:#2d3748}.btn-close-modal{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:#f7fafc;border:none;border-radius:8px;cursor:pointer;color:#718096;transition:all .2s}.btn-close-modal:hover{background:#e2e8f0;color:#4a5568;transform:rotate(90deg)}.modal-body{padding:2rem;display:flex;flex-direction:column;gap:1.5rem}.modal-actions{display:flex;gap:.75rem;padding-top:1rem;border-top:1px solid #e2e8f0;margin-top:.5rem}.modal-actions .btn-edit,.modal-actions .btn-delete{flex:1;display:flex;align-items:center;justify-content:center;gap:.5rem;padding:0;border:none;border-radius:8px;font-size:.9375rem;font-weight:500;line-height:1;cursor:pointer;transition:all .2s ease;height:44px;box-sizing:border-box;min-width:0;white-space:nowrap;margin:0;vertical-align:middle}.modal-actions .btn-edit svg,.modal-actions .btn-delete svg{flex-shrink:0;width:16px;height:16px}.modal-actions .btn-edit span,.modal-actions .btn-delete span{display:inline-block;flex-shrink:0}.modal-actions .btn-edit{background:#667eea;color:#fff}.modal-actions .btn-edit:hover{background:#5568d3;transform:translateY(-1px);box-shadow:0 4px 12px #667eea4d}.modal-actions .btn-delete{background:#ef4444;color:#fff}.modal-actions .btn-delete:hover{background:#dc2626;transform:translateY(-1px);box-shadow:0 4px 12px #ef44444d}.detail-item{display:flex;flex-direction:column;gap:.75rem;padding:1.25rem;background:#f7fafc;border-radius:12px;border-left:4px solid #667eea}.detail-label{display:flex;align-items:center;gap:.5rem;font-size:.875rem;font-weight:600;color:#667eea;text-transform:uppercase;letter-spacing:.5px}.detail-icon{font-size:1.25rem;display:inline-block}.detail-value{font-size:1rem;color:#2d3748;line-height:1.6;padding-left:1.75rem;white-space:pre-wrap}.detail-item:has(.reason-icon){border-left-color:#10b981}.detail-item:has(.diagnosis-icon){border-left-color:#f59e0b}.detail-item:has(.treatment-icon){border-left-color:#8b5cf6}.detail-item:has(.notes-icon){border-left-color:#6b7280}@media (max-width: 768px){.modal-content{max-height:95vh}.modal-header{padding:1rem 1.5rem}.modal-body{padding:1.5rem}.detail-value{padding-left:0}}.info-sections-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem;margin-bottom:2rem}.info-section{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 2px 8px #00000014;margin-bottom:1.5rem}.section-header-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.section-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;font-size:1.125rem;font-weight:600;color:#2d3748;margin:0;flex:1}.section-header span{display:flex;align-items:center;gap:.5rem}.section-header.clickable{cursor:pointer;transition:color .2s ease}.section-header.clickable:hover{color:#667eea}.section-title{display:flex;align-items:center;gap:.75rem;font-size:1.25rem;font-weight:600;color:#2d3748;margin:0 0 1.25rem}.section-content{display:flex;flex-direction:column;gap:.75rem}.info-row{display:flex;justify-content:space-between;align-items:center;padding:.75rem;background:#f7fafc;border-radius:8px}.info-row-label{font-size:.875rem;font-weight:500;color:#718096;display:flex;align-items:center;gap:.5rem}.info-row-value{font-size:.9375rem;font-weight:600;color:#2d3748}.no-data{text-align:center;color:#a0aec0;font-size:.875rem;font-style:italic;padding:1rem}.allergies-list{display:flex;flex-direction:column;gap:1rem}.allergy-item{background:#fff5f5;border-left:4px solid #e53e3e;border-radius:8px;padding:1rem;cursor:pointer;transition:all .3s ease}.allergy-item:hover{background:#fed7d7;transform:translateY(-2px);box-shadow:0 4px 12px #e53e3e26}.allergy-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:.75rem;gap:1rem}.allergy-name{font-weight:600;color:#742a2a;font-size:1rem}.severity-badge{padding:.25rem .75rem;border-radius:12px;font-size:.75rem;font-weight:600;text-transform:uppercase}.severity-badge.high,.severity-badge.severe{background:#e53e3e;color:#fff}.severity-badge.medium,.severity-badge.moderate{background:#f59e0b;color:#fff}.severity-badge.low,.severity-badge.mild{background:#10b981;color:#fff}.allergy-reaction{font-size:.875rem;color:#744210;margin:.5rem 0 0}.allergy-type{display:inline-block;font-size:.75rem;color:#744210;background:#fed7aa;padding:.25rem .5rem;border-radius:4px;margin-top:.5rem}.record-item{background:#f7fafc;border-left:4px solid #667eea;border-radius:8px;padding:1rem;cursor:pointer;transition:all .3s ease}.record-item:hover{background:#edf2f7;transform:translateY(-2px);box-shadow:0 4px 12px #667eea26}.record-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.record-condition{font-weight:600;color:#2d3748;font-size:1rem}.status-badge{padding:.25rem .75rem;border-radius:12px;font-size:.75rem;font-weight:600;text-transform:uppercase}.status-badge.active{background:#f59e0b;color:#fff}.status-badge.inactive,.status-badge.resolved{background:#10b981;color:#fff}.status-badge.chronic{background:#8b5cf6;color:#fff}.record-date{font-size:.875rem;color:#718096;margin:.5rem 0}.record-notes{font-size:.875rem;color:#4a5568;margin-top:.5rem;line-height:1.5}.vitals-list{display:flex;flex-direction:column;gap:.75rem}.vital-item{background:#f0fff4;border-left:4px solid #10b981;border-radius:8px;padding:.65rem .75rem;cursor:pointer;transition:all .3s ease}.vital-item:hover{background:#d1fae5;transform:translateY(-2px);box-shadow:0 4px 12px #10b98126}.vital-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.vital-date{font-weight:600;color:#2d3748;font-size:.875rem}.vital-measurements{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.5rem}.vital-measure{display:flex;align-items:center;gap:.35rem;font-size:.8125rem;color:#22543d;background:#fff;padding:.3rem .6rem;border-radius:5px;font-weight:500}.labs-list{display:flex;flex-direction:column;gap:.75rem}.lab-item{background:#ebf4ff;border-left:4px solid #3182ce;border-radius:8px;padding:.75rem;cursor:pointer;transition:all .3s ease}.lab-item:hover{background:#dbeafe;transform:translateY(-2px);box-shadow:0 4px 12px #3182ce26}.lab-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.6rem}.lab-info{display:flex;flex-direction:column;gap:.25rem}.lab-test{font-weight:600;color:#2c5282;font-size:.9375rem}.lab-date{font-size:.75rem;color:#4a5568}.lab-details{display:flex;gap:.75rem;flex-wrap:wrap;align-items:center}.lab-result-box,.lab-reference-box{display:flex;align-items:center;gap:.4rem;background:#fff;padding:.35rem .65rem;border-radius:5px;font-size:.8125rem}.lab-result-label,.lab-reference-label{font-weight:600;color:#4a5568}.lab-result-value{font-weight:700;color:#1a365d;font-size:.875rem}.lab-reference-value{color:#2d3748;font-weight:500}.lab-notes{font-size:.8125rem;color:#2d3748;margin-top:.5rem;line-height:1.4;font-style:italic;padding:.4rem .6rem;background:#ffffff80;border-radius:4px}.btn-load-more{margin-top:1rem;width:100%;padding:.75rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s}.btn-load-more:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea4d}.vaccines-list{display:flex;flex-direction:column;gap:1rem}.vaccine-item{background:#faf5ff;border-left:4px solid #8b5cf6;border-radius:8px;padding:1rem;cursor:pointer;transition:all .3s ease}.vaccine-item:hover{background:#f3e8ff;transform:translateY(-2px);box-shadow:0 4px 12px #8b5cf626}.vaccine-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.vaccine-name{font-weight:600;color:#553c9a;font-size:1rem}.vaccine-date{font-size:.75rem;color:#6b46c1}.vaccine-dose,.vaccine-manufacturer,.vaccine-next{font-size:.875rem;color:#44337a;margin:.25rem 0}.vaccine-next{color:#553c9a;font-weight:500}.lifestyle-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.lifestyle-item{display:flex;gap:1rem;background:#f7fafc;padding:1rem;border-radius:8px;border-left:4px solid #cbd5e0;cursor:pointer;transition:all .3s ease}.lifestyle-item:hover{background:#edf2f7;transform:translateY(-2px);box-shadow:0 4px 12px #00000014}.lifestyle-icon{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.lifestyle-icon.alcohol{background:#fef3c7;color:#d97706}.lifestyle-icon.tobacco{background:#fee2e2;color:#dc2626}.lifestyle-icon.drugs{background:#ede9fe;color:#7c3aed}.lifestyle-icon.activity{background:#d1fae5;color:#059669}.lifestyle-info h4{font-size:1rem;font-weight:600;color:#2d3748;margin:0 0 .5rem}.lifestyle-info p{font-size:.875rem;color:#4a5568;margin:.25rem 0}.contacts-list{display:flex;flex-direction:column;gap:1rem}.contact-item{background:#f7fafc;border-left:4px solid #667eea;border-radius:8px;padding:1rem;cursor:pointer;transition:all .3s ease}.contact-item:hover{background:#edf2f7;transform:translateY(-2px);box-shadow:0 4px 12px #667eea26}.contact-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.contact-name{font-weight:600;color:#2d3748;font-size:1rem}.contact-relationship{font-size:.75rem;color:#667eea;background:#edf2f7;padding:.25rem .75rem;border-radius:12px;font-weight:500}.contact-details{display:flex;flex-direction:column;gap:.5rem}.contact-detail{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:#4a5568}.files-list{display:flex;flex-direction:column;gap:1rem}.file-item{display:flex;align-items:center;gap:1rem;background:#f7fafc;border-left:4px solid #8b5cf6;border-radius:8px;padding:1rem}.file-item.clickable{cursor:pointer;transition:all .2s ease}.file-item.clickable:hover{background:#ede9fe;transform:translateY(-2px);box-shadow:0 4px 12px #8b5cf626}.file-item.clickable:active{transform:translateY(0)}.file-item-compact{display:flex;align-items:center;justify-content:space-between;gap:.5rem;background:#f7fafc;border-left:3px solid #8b5cf6;border-radius:6px;padding:.5rem .75rem;transition:all .2s ease}.file-item-compact:hover{background:#ede9fe;transform:translateY(-1px);box-shadow:0 2px 8px #8b5cf626}.file-item-content{display:flex;align-items:center;gap:.75rem;flex:1;min-width:0;cursor:pointer}.file-item-content svg{color:#7c3aed;flex-shrink:0}.file-name-compact{flex:1;font-weight:500;color:#2d3748;font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.file-date-compact{font-size:.8rem;color:#718096;flex-shrink:0}.btn-icon-delete-small{background:transparent;border:none;color:#718096;padding:.25rem;cursor:pointer;border-radius:4px;transition:all .2s ease;display:flex;align-items:center;justify-content:center;flex-shrink:0}.btn-icon-delete-small:hover{background:#fee2e2;color:#dc2626}.btn-icon-delete-small:active{transform:scale(.95)}.lab-item-compact{display:flex;align-items:center;gap:.75rem;background:#f7fafc;border-left:3px solid #3b82f6;border-radius:6px;padding:.5rem .75rem;transition:all .2s ease}.lab-item-compact.clickable{cursor:pointer}.lab-item-compact:hover{background:#eff6ff;transform:translateY(-1px);box-shadow:0 2px 8px #3b82f626}.lab-item-compact.clickable:active{transform:translateY(0)}.lab-icon{color:#3b82f6;flex-shrink:0}.lab-name-compact{flex:1;font-weight:500;color:#2d3748;font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.lab-value-compact{font-weight:600;color:#3b82f6;font-size:.9rem;flex-shrink:0}.lab-date-compact{font-size:.8rem;color:#718096;flex-shrink:0}.lab-result-highlight{font-size:1.1rem;font-weight:700;color:#3b82f6}.modal-sm{max-width:400px}.lab-modal-result{display:flex;align-items:center;gap:.5rem;padding:1rem;background:#eff6ff;border-radius:8px;margin-bottom:1rem}.lab-modal-label{font-size:.9rem;color:#64748b;font-weight:500}.lab-modal-value{font-size:1.25rem;font-weight:700;color:#3b82f6}.lab-modal-date{text-align:center;color:#64748b;font-size:.9rem;padding:.5rem 0;border-top:1px solid #e2e8f0;border-bottom:1px solid #e2e8f0;margin-bottom:1rem}.lab-modal-comment{padding:1rem;background:#f8fafc;border-left:3px solid #3b82f6;border-radius:4px;font-size:.9rem;color:#475569;line-height:1.5}.file-selected-name{margin-top:.5rem;padding:.5rem;background:#f0fdf4;border-left:3px solid #10b981;border-radius:4px;font-size:.9rem;color:#065f46}.file-icon{width:48px;height:48px;background:#ede9fe;border-radius:8px;display:flex;align-items:center;justify-content:center;color:#7c3aed;flex-shrink:0}.file-info{flex:1;min-width:0}.file-name{font-weight:600;color:#2d3748;font-size:1rem;display:block;margin-bottom:.5rem}.file-meta{display:flex;flex-wrap:wrap;gap:.75rem;font-size:.75rem;color:#718096}.file-type,.file-date,.file-size{background:#fff;padding:.25rem .5rem;border-radius:4px}.file-description{font-size:.875rem;color:#4a5568;margin-top:.5rem;line-height:1.5}.file-code{display:flex;flex-direction:column;align-items:flex-end;gap:.25rem}.file-code-label{font-size:.75rem;color:#718096;font-weight:600}.file-code-value{font-size:.875rem;color:#2d3748;font-family:monospace;background:#fff;padding:.25rem .5rem;border-radius:4px;border:1px solid #e2e8f0}.section-header-wrapper{margin-bottom:1.5rem}.section-button-row{display:flex;justify-content:flex-end;margin-top:.75rem;margin-bottom:.5rem}.btn-add-small{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:linear-gradient(135deg,#10b981,#059669);color:#fff;border:none;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s;white-space:nowrap;flex-shrink:0;margin-top:.25rem}.btn-add-small:hover{transform:translateY(-1px);box-shadow:0 3px 8px #10b9814d}.crud-form{background:#f7fafc;padding:1.5rem;border-radius:12px;margin-bottom:1.5rem;border:2px solid #e2e8f0}.crud-form h4{margin:0 0 1rem;color:#2d3748;font-size:1.125rem}.crud-form-inline{padding:1rem;background:#edf2f7;border-radius:8px}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:1rem}.form-grid .full-width{grid-column:1 / -1}.form-group label{display:block;font-size:.875rem;font-weight:500;color:#4a5568;margin-bottom:.375rem}.form-group input,.form-group select,.form-group textarea{width:100%;padding:.5rem .75rem;border:1px solid #cbd5e0;border-radius:6px;font-size:.9375rem;color:#2d3748;transition:all .2s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.form-actions{display:flex;gap:.75rem;justify-content:flex-end}.item-actions{display:flex;gap:.5rem}.btn-icon-edit,.btn-icon-delete{display:flex;align-items:center;justify-content:center;padding:.375rem;background:transparent;border:1px solid #cbd5e0;border-radius:4px;cursor:pointer;transition:all .2s}.btn-icon-edit{color:#667eea}.btn-icon-edit:hover{background:#edf2f7;border-color:#667eea}.btn-icon-delete{color:#e53e3e}.btn-icon-delete:hover{background:#fff5f5;border-color:#e53e3e}.section-title.collapsible{cursor:pointer;-webkit-user-select:none;user-select:none;display:flex;justify-content:space-between;align-items:center;transition:all .2s}.section-title.collapsible:hover{opacity:.8}.section-title-content{display:flex;align-items:center;gap:.75rem}.section-divider{margin:3rem 0 2rem;padding-bottom:.75rem;border-bottom:2px solid #e2e8f0}.section-divider-title{font-size:1.5rem;font-weight:700;color:#1a202c;margin:0}.appointments-list{display:grid;gap:1.25rem;margin-bottom:2rem}.appointment-card{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 2px 8px #00000014;border-left:4px solid #667eea;transition:all .3s ease}.appointment-card:hover{box-shadow:0 4px 16px #0000001f;transform:translateY(-2px)}.appointment-card-compact{display:flex;align-items:center;gap:.75rem;background:#f7fafc;border-left:3px solid #667eea;border-radius:6px;padding:.5rem .75rem;transition:all .2s ease;margin-bottom:.5rem;cursor:pointer}.appointment-card-compact:hover{background:#eef2ff;transform:translateY(-1px);box-shadow:0 2px 8px #667eea26}.appointment-icon{color:#667eea;flex-shrink:0}.appointment-date-text{font-weight:500;color:#2d3748;font-size:.9rem;flex-shrink:0}.appointment-indicators{display:flex;align-items:center;gap:.35rem;flex:1}.appointment-actions{display:flex;align-items:center;gap:.25rem;flex-shrink:0;margin-left:auto}.btn-icon-action{display:inline-flex;align-items:center;justify-content:center;background:transparent;border:none;color:#667eea;padding:.25rem;border-radius:4px;cursor:pointer;transition:all .2s ease}.btn-icon-action:hover{background:#eef2ff;color:#5568d3}.appointment-badge{display:inline-flex;align-items:center;justify-content:center;background:#667eea;color:#fff;border-radius:50%;width:20px;height:20px;padding:3px;transition:all .2s ease}.appointment-badge:hover{background:#5568d3;transform:scale(1.1)}.appointment-motive-text{flex:1;color:#64748b;font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.appointment-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}.appointment-date{display:flex;align-items:flex-start;gap:1rem}.appointment-date svg{color:#667eea;flex-shrink:0;margin-top:.25rem}.appointment-date h4{margin:0 0 .25rem;font-size:1.125rem;font-weight:600;color:#1a202c;line-height:1.4}.appointment-time{margin:0;font-size:.875rem;color:#718096}.appointment-status{padding:.375rem .875rem;border-radius:20px;font-size:.8125rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.appointment-status.open{background:#e6f7ff;color:#0369a1}.appointment-status.closed{background:#f0fdf4;color:#15803d}.appointment-detail{background:#f8fafc;padding:1rem;border-radius:8px;margin-top:1rem}.appointment-detail h5{margin:0 0 .5rem;font-size:.875rem;font-weight:600;color:#475569;text-transform:uppercase;letter-spacing:.5px}.appointment-detail p{margin:0;color:#334155;line-height:1.6}.empty-section{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;background:#f8fafc;border-radius:12px;text-align:center;margin-bottom:2rem}.empty-section svg{color:#cbd5e0;margin-bottom:1rem}.empty-section h3{margin:0;font-size:1.125rem;font-weight:600;color:#64748b}@media (max-width: 768px){.info-sections-grid,.lifestyle-grid{grid-template-columns:1fr}.section-title{font-size:1.125rem}.info-section{padding:1.25rem}.info-row{flex-direction:column;align-items:flex-start;gap:.5rem}.file-item{flex-direction:column;align-items:flex-start}.file-download{width:100%;text-align:center}.section-divider{margin:2rem 0 1.5rem}.section-divider-title{font-size:1.25rem}.appointment-header{flex-direction:column;gap:1rem}.appointment-status{align-self:flex-start}}.doctor-section{margin:2rem 0}.doctor-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.add-doctor-button{padding:.75rem 1.5rem;background:#667eea;color:#fff;border:none;border-radius:8px;cursor:pointer;display:flex;align-items:center;gap:.5rem;font-size:.95rem;transition:background .2s;font-weight:500}.add-doctor-button:hover{background:#5568d3}.doctors-list{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem}.doctor-info-card{background:#fff;border-radius:12px;padding:2rem;box-shadow:0 2px 8px #0000001a;display:flex;gap:1.5rem;align-items:start;position:relative;cursor:pointer;-webkit-user-select:none;user-select:none;transition:box-shadow .2s}.doctor-info-card:active{box-shadow:0 4px 12px #667eea26}.doctor-context-menu{position:fixed;transform:translate(-50%);background:#fff;border-radius:8px;box-shadow:0 4px 12px #00000026;padding:.5rem;z-index:1000;min-width:150px}.context-menu-item{width:100%;padding:.75rem 1rem;background:none;border:none;border-radius:6px;cursor:pointer;display:flex;align-items:center;gap:.75rem;font-size:.95rem;transition:background .2s;color:#1a202c}.context-menu-item.danger{color:#e53e3e}.context-menu-item:hover:not(:disabled){background:#f7fafc}.context-menu-item.danger:hover:not(:disabled){background:#fff5f5}.context-menu-item:disabled{opacity:.6;cursor:not-allowed}.doctor-avatar{width:80px;height:80px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;display:flex;align-items:center;justify-content:center;font-size:2rem;font-weight:600;flex-shrink:0}.doctor-details{flex:1}.doctor-details h3{margin:0 0 .75rem;font-size:1.5rem;color:#1a202c}.doctor-contact{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.doctor-contact-item{display:flex;align-items:center;gap:.5rem;color:#4a5568;font-size:.95rem}.doctor-contact-item svg{color:#667eea}.doctor-about{color:#4a5568;line-height:1.6;margin:0}.doctor-search-section{background:#fff;border-radius:12px;padding:2rem;box-shadow:0 2px 8px #0000001a}.no-doctor-message{color:#718096;margin-bottom:1.5rem;text-align:center}.doctor-search-section h3{font-size:1.25rem;margin-bottom:1rem;color:#1a202c}.search-box{display:flex;gap:.5rem;margin-bottom:1.5rem}.search-box input{flex:1;padding:.75rem 1rem;border:2px solid #e2e8f0;border-radius:8px;font-size:1rem;transition:border-color .2s}.search-box input:focus{outline:none;border-color:#667eea}.search-box button{padding:.75rem 1.5rem;background:#667eea;color:#fff;border:none;border-radius:8px;cursor:pointer;display:flex;align-items:center;gap:.5rem;transition:background .2s}.search-box button:hover:not(:disabled){background:#5568d3}.search-box button:disabled{opacity:.6;cursor:not-allowed}.search-results{display:flex;flex-direction:column;gap:1rem}.doctor-result-card{display:flex;align-items:center;gap:1rem;padding:1rem;border:1px solid #e2e8f0;border-radius:8px;transition:border-color .2s,box-shadow .2s}.doctor-result-card:hover{border-color:#667eea;box-shadow:0 2px 4px #667eea1a}.doctor-result-avatar{width:50px;height:50px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.25rem;font-weight:600;flex-shrink:0}.doctor-result-info{flex:1}.doctor-result-info h4{margin:0 0 .25rem;font-size:1.1rem;color:#1a202c}.doctor-result-email{color:#718096;font-size:.9rem}.link-button{padding:.5rem 1rem;background:#48bb78;color:#fff;border:none;border-radius:6px;cursor:pointer;display:flex;align-items:center;gap:.5rem;font-size:.9rem;transition:background .2s;white-space:nowrap}.link-button:hover:not(:disabled){background:#38a169}.link-button:disabled{opacity:.6;cursor:not-allowed}.no-results{text-align:center;color:#718096;padding:2rem}@media (max-width: 768px){.doctor-section-header{flex-direction:column;gap:1rem;align-items:stretch}.add-doctor-button{justify-content:center}.doctor-info-card{flex-direction:column;align-items:center;text-align:center}.doctor-result-card{flex-direction:column;align-items:stretch}.doctor-result-avatar{align-self:center}.doctor-result-info{text-align:center}.link-button{justify-content:center}}.dashboard{min-height:100vh;background-color:#f7fafc}.dashboard-layout{display:flex;max-width:1400px;margin:0 auto;min-height:calc(100vh - 80px)}.dashboard-sidebar{width:250px;background-color:#fff;border-right:1px solid #e2e8f0;padding:2rem 0}.sidebar-nav{display:flex;flex-direction:column;gap:.5rem;padding:0 1rem}.nav-item{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:none;border:none;border-radius:.5rem;color:#4a5568;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s;text-align:left}.nav-item:hover{background-color:#f7fafc;color:#667eea}.nav-item.active{background-color:#edf2f7;color:#667eea}.dashboard-main{flex:1;padding:2rem;overflow-y:auto}.section h2{font-size:1.875rem;font-weight:700;color:#1a202c;margin-bottom:1.5rem}.cards-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem;margin-bottom:2rem}.info-card{background:#fff;border-radius:.75rem;padding:1.5rem;box-shadow:0 1px 3px #0000001a,0 1px 2px #0000000f;display:flex;gap:1rem;transition:transform .2s,box-shadow .2s}.info-card:hover{transform:translateY(-2px);box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}.card-icon{width:48px;height:48px;border-radius:.5rem;display:flex;align-items:center;justify-content:center;flex-shrink:0}.card-icon.blue{background-color:#ebf4ff;color:#3182ce}.card-icon.red{background-color:#fff5f5;color:#e53e3e}.card-icon.green{background-color:#f0fff4;color:#38a169}.card-icon.purple{background-color:#faf5ff;color:#805ad5}.card-content{flex:1}.card-content h3{font-size:.875rem;color:#718096;margin-bottom:.5rem}.card-value{font-size:1.875rem;font-weight:700;color:#1a202c;margin-bottom:.25rem}.card-label{font-size:.75rem;color:#a0aec0}.info-banner{display:flex;gap:1rem;padding:1rem 1.5rem;background-color:#ebf4ff;border-left:4px solid #3182ce;border-radius:.5rem;color:#2c5282}.info-banner h4{font-size:.875rem;font-weight:600;margin-bottom:.25rem}.info-banner p{font-size:.875rem;line-height:1.5}.records-list{display:flex;flex-direction:column;gap:1rem}.record-card{background:#fff;border-radius:.75rem;padding:1.5rem;box-shadow:0 1px 3px #0000001a,0 1px 2px #0000000f}.record-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid #e2e8f0}.record-header h3{font-size:1.125rem;font-weight:600;color:#1a202c}.record-status{padding:.25rem .75rem;border-radius:9999px;font-size:.75rem;font-weight:600}.record-status.open{background-color:#c6f6d5;color:#22543d}.record-status.closed{background-color:#cbd5e0;color:#2d3748}.record-details{display:flex;flex-wrap:wrap;gap:1.5rem}.record-detail{display:flex;flex-direction:column;gap:.25rem}.record-detail .label{font-size:.75rem;color:#718096;font-weight:500}.record-detail .value{font-size:.875rem;color:#2d3748;font-weight:600}.list-items{display:flex;flex-direction:column;gap:.75rem}.list-item{display:flex;align-items:center;gap:1rem;padding:1rem;background:#fff;border-radius:.5rem;box-shadow:0 1px 3px #0000001a,0 1px 2px #0000000f}.item-icon{width:36px;height:36px;border-radius:.5rem;display:flex;align-items:center;justify-content:center;flex-shrink:0}.item-icon.red{background-color:#fff5f5;color:#e53e3e}.item-icon.green{background-color:#f0fff4;color:#38a169}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center;color:#a0aec0}.empty-state svg{opacity:.3;margin-bottom:1rem}.empty-state h3{font-size:1.125rem;font-weight:600;color:#4a5568;margin-bottom:.5rem}.empty-state p{font-size:.875rem;color:#718096;max-width:400px}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;gap:1rem;color:#4a5568}.loading-spinner{width:48px;height:48px;border:4px solid #e2e8f0;border-top-color:#667eea;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width: 768px){.dashboard-layout{flex-direction:column}.dashboard-sidebar{width:100%;border-right:none;border-bottom:1px solid #e2e8f0;padding:1rem 0}.sidebar-nav{flex-direction:row;overflow-x:auto;gap:.5rem}.nav-item{white-space:nowrap;min-width:auto}.dashboard-main{padding:1rem}.cards-grid{grid-template-columns:1fr}.section h2{font-size:1.5rem}}@media (max-width: 480px){.user-info{gap:.5rem}.btn-logout{padding:.5rem;gap:0}.btn-logout svg{margin:0}.btn-logout span{display:none}}.record-title-section{display:flex;align-items:center;gap:1rem}.record-icon{color:#667eea;flex-shrink:0}.record-title-section h3{font-size:1rem;font-weight:600;color:#1a202c;margin:0;text-transform:capitalize}.record-time{font-size:.875rem;color:#718096;margin:.25rem 0 0}.record-section{width:100%;padding:1rem;background-color:#f7fafc;border-radius:.5rem;margin-top:.75rem}.record-section h4{display:flex;align-items:center;gap:.5rem;font-size:.875rem;font-weight:600;color:#2d3748;margin:0 0 .75rem}.record-section h4 svg{color:#667eea}.badge{display:inline-block;padding:.25rem .75rem;background-color:#edf2f7;color:#4a5568;border-radius:9999px;font-size:.75rem;font-weight:600}.medications-list{display:flex;flex-wrap:wrap;gap:.5rem}.medication-tag{padding:.375rem .75rem;background-color:#ebf4ff;color:#3182ce;border-radius:.375rem;font-size:.75rem;font-weight:500}.clinical-note{font-size:.875rem;color:#4a5568;line-height:1.6;margin:0;font-style:italic}.no-details{font-size:.875rem;color:#a0aec0;text-align:center;margin:0}.patient-dashboard-container{max-width:1200px;margin:0 auto;padding:2rem}.patient-dashboard-header{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:16px;padding:2.5rem;margin-bottom:2.5rem;box-shadow:0 10px 40px #667eea4d}.patient-dashboard-header-content{display:flex;align-items:center;gap:2rem}.patient-dashboard-avatar{width:80px;height:80px;border-radius:50%;background:#fff;color:#667eea;display:flex;align-items:center;justify-content:center;font-size:2rem;font-weight:700;flex-shrink:0;box-shadow:0 4px 12px #00000026}.patient-dashboard-info h1{font-size:2rem;font-weight:700;color:#fff;margin:0 0 1rem}.patient-dashboard-contact{display:flex;flex-wrap:wrap;gap:1.5rem}.patient-dashboard-contact-item{display:flex;align-items:center;gap:.5rem;color:#fffffff2;font-size:.95rem}.patient-dashboard-contact-item svg{color:#fffc}.patient-dashboard-section-title{font-size:1.5rem;font-weight:700;color:#1a202c;margin:2.5rem 0 1.5rem;padding-bottom:.75rem;border-bottom:3px solid #667eea;display:inline-block}@media (max-width: 768px){.patient-dashboard-container{padding:1rem}.patient-dashboard-header{padding:1.5rem;margin-bottom:1.5rem}.patient-dashboard-header-content{flex-direction:column;text-align:center;gap:1.5rem}.patient-dashboard-avatar{width:64px;height:64px;font-size:1.5rem}.patient-dashboard-info h1{font-size:1.5rem}.patient-dashboard-contact{flex-direction:column;gap:.75rem;align-items:center}.patient-dashboard-section-title{font-size:1.25rem;margin:2rem 0 1rem}}.patient-dashboard-container .info-sections-grid,.patient-dashboard-container .info-section{margin-bottom:1.5rem}.patient-dashboard-container .appointments-list,.patient-dashboard-container .empty-section{margin-bottom:2rem}.app{min-height:100vh}
