.toast-container[data-v-c6d69840]{position:fixed;top:1rem;right:1rem;z-index:9999;pointer-events:none}.toast-wrapper[data-v-c6d69840]{display:flex;flex-direction:column;gap:.75rem;max-width:400px}.toast[data-v-c6d69840]{position:relative;display:flex;align-items:flex-start;gap:.75rem;padding:1rem;background:#fff;border-radius:.75rem;box-shadow:0 10px 25px #0000001a,0 4px 6px #0000000d;border-left:4px solid;pointer-events:auto;overflow:hidden;min-width:320px;max-width:400px}.toast-success[data-v-c6d69840]{border-left-color:#10b981;background:linear-gradient(135deg,#f0fdf4,#ecfdf5)}.toast-error[data-v-c6d69840]{border-left-color:#ef4444;background:linear-gradient(135deg,#fef2f2 0% 100%)}.toast-warning[data-v-c6d69840]{border-left-color:#d3d3d3;background:linear-gradient(135deg,#fffbeb,#fefce8)}.toast-info[data-v-c6d69840]{border-left-color:#3b82f6;background:linear-gradient(135deg,#eff6ff,#dbeafe)}.toast-icon[data-v-c6d69840]{flex-shrink:0;width:24px;height:24px;margin-top:.125rem}.toast-success .toast-icon[data-v-c6d69840]{color:#10b981}.toast-error .toast-icon[data-v-c6d69840]{color:#ef4444}.toast-warning .toast-icon[data-v-c6d69840]{color:#d3d3d3}.toast-info .toast-icon[data-v-c6d69840]{color:#3b82f6}.toast-content[data-v-c6d69840]{flex:1;min-width:0}.toast-title[data-v-c6d69840]{font-weight:600;color:#1f2937;font-size:.875rem;margin-bottom:.25rem;line-height:1.25}.toast-message[data-v-c6d69840]{color:#4b5563;font-size:.875rem;line-height:1.4;word-wrap:break-word}.toast-close[data-v-c6d69840]{flex-shrink:0;width:20px;height:20px;background:none;border:none;cursor:pointer;color:#9ca3af;border-radius:.25rem;transition:all .2s;display:flex;align-items:center;justify-content:center;margin-top:.125rem}.toast-close[data-v-c6d69840]:hover{color:#6b7280;background:#0000000d}.toast-close svg[data-v-c6d69840]{width:16px;height:16px}.toast-progress[data-v-c6d69840]{position:absolute;bottom:0;left:0;height:3px;background:currentColor;opacity:.7;animation:toast-progress-c6d69840 linear;transform-origin:left}.toast-success .toast-progress[data-v-c6d69840]{color:#10b981}.toast-error .toast-progress[data-v-c6d69840]{color:#ef4444}.toast-warning .toast-progress[data-v-c6d69840]{color:#d3d3d3}.toast-info .toast-progress[data-v-c6d69840]{color:#3b82f6}@keyframes toast-progress-c6d69840{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.toast-enter-active[data-v-c6d69840],.toast-leave-active[data-v-c6d69840]{transition:all .3s cubic-bezier(.4,0,.2,1)}.toast-enter-from[data-v-c6d69840],.toast-leave-to[data-v-c6d69840]{opacity:0;transform:translate(100%) scale(.95)}.toast-move[data-v-c6d69840]{transition:transform .3s cubic-bezier(.4,0,.2,1)}@media(max-width:640px){.toast-container[data-v-c6d69840]{top:1rem;left:1rem;right:1rem}.toast[data-v-c6d69840]{min-width:auto;max-width:none}.toast-enter-from[data-v-c6d69840],.toast-leave-to[data-v-c6d69840]{transform:translateY(-100%) scale(.95)}}*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;background:#f8f9fa;color:#1f2937;line-height:1.6}#app{height:100vh;overflow:hidden}.global-loading{position:fixed;inset:0;background:#ffffffe6;display:flex;align-items:center;justify-content:center;z-index:9999;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.loading-spinner{text-align:center}.spinner{width:50px;height:50px;border:4px solid #e5e7eb;border-top:4px solid #667eea;border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 1rem}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-spinner p{color:#6b7280;font-weight:500}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-bold{font-weight:700}.font-semibold{font-weight:600}.font-medium{font-weight:500}.text-sm{font-size:.875rem}.text-xs{font-size:.75rem}.text-lg{font-size:1.125rem}.text-xl{font-size:1.25rem}.text-2xl{font-size:1.5rem}.mb-0{margin-bottom:0}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.mt-0{margin-top:0}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.p-0{padding:0}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-8{padding:2rem}button:focus,input:focus,select:focus,textarea:focus,a:focus{outline:2px solid #667eea;outline-offset:2px}*{transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}html,body{margin:0!important;padding:0!important;width:100%;height:100%;overflow-x:hidden}#app{margin:0!important;padding:0!important;width:100%;height:100%}.auth-page{min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2);position:relative;overflow:hidden;margin:0;padding:0}.auth-bg-decoration{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.auth-bg-circle{position:absolute;border-radius:50%;background:#ffffff1a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.auth-bg-circle.circle-1{width:300px;height:300px;top:-150px;right:-150px}.auth-bg-circle.circle-2{width:200px;height:200px;bottom:-100px;left:-100px}.auth-bg-circle.circle-3{width:150px;height:150px;top:50%;left:-75px}.auth-container{display:flex;min-height:100vh;position:relative;z-index:1;width:100%;margin:0;padding:0}.auth-branding-section{flex:1;padding:4rem;display:flex;align-items:center;justify-content:center;color:#fff;width:50%;min-width:0}.auth-branding-content{max-width:800px}.auth-logo-container{margin-bottom:2rem}.auth-brand-title{font-size:3rem;font-weight:700;margin-bottom:1rem;line-height:1.2}.auth-brand-subtitle{font-size:1.25rem;margin-bottom:3rem;opacity:.9}.auth-features{space-y:1.5rem}.auth-feature{display:flex;align-items:center;margin-bottom:1.5rem;font-size:1.1rem}.auth-feature-icon{width:24px;height:24px;margin-right:1rem;opacity:.8}.auth-form-section{flex:1;background:#fff;display:flex;align-items:center;justify-content:center;padding:2rem;width:50%;min-width:0}.auth-form-container{width:100%;max-width:450px}.auth-form-header{text-align:center;margin-bottom:2.5rem}.auth-form-title{font-size:2rem;font-weight:700;color:#1f2937;margin-bottom:.5rem}.auth-form-subtitle{color:#6b7280;font-size:1rem;line-height:1.5}.auth-form{margin-bottom:2rem}.auth-form-group{margin-bottom:1.5rem}.auth-form-label{display:block;font-weight:500;color:#374151;margin-bottom:.5rem;font-size:.875rem}.auth-input-wrapper{position:relative}.auth-input-icon{position:absolute;left:1rem;top:50%;transform:translateY(-50%);width:20px;height:20px;color:#9ca3af}.auth-form-input{width:100%;padding:.875rem 1rem .875rem 3rem;border:1px solid #d1d5db;border-radius:.75rem;font-size:1rem;transition:all .2s ease;background:#fafafa}.auth-form-input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;background:#fff}.auth-form-input.error{border-color:#ef4444;box-shadow:0 0 0 3px #ef44441a}.auth-form-input:disabled{opacity:.7;cursor:not-allowed}.auth-input-addon{position:absolute;right:1rem;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;width:20px;height:20px;color:#9ca3af;transition:color .2s ease}.auth-input-addon:hover:not(:disabled){color:#6b7280}.auth-input-addon:disabled{opacity:.5;cursor:not-allowed}.auth-error-message{color:#ef4444;font-size:.875rem;margin-top:.25rem;display:block}.auth-success-message{color:#10b981;font-size:.875rem;margin-top:.25rem;display:flex;align-items:center;gap:.25rem}.error-alert{display:flex;align-items:flex-start;gap:1rem;background:#fef2f2;border:1px solid #fecaca;border-left:4px solid #ef4444;border-radius:.75rem;padding:1rem;margin-bottom:1.5rem}.alert-icon{width:20px;height:20px;color:#ef4444;flex-shrink:0;margin-top:.1rem}.alert-content h4{font-size:.9rem;font-weight:600;color:#991b1b;margin:0 0 .25rem}.alert-content p{font-size:.875rem;color:#7f1d1d;margin:0;line-height:1.4}.auth-btn{width:100%;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:1rem 2rem;border-radius:.75rem;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease;margin-bottom:1.5rem;min-height:3.5rem;display:flex;align-items:center;justify-content:center}.auth-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 10px 25px #667eea4d}.auth-btn:disabled{opacity:.7;cursor:not-allowed;transform:none;box-shadow:none}.auth-btn-content{display:flex;align-items:center;gap:.5rem}.auth-btn-content svg{width:20px;height:20px}.auth-btn-loading{display:flex;align-items:center;gap:.5rem}.auth-spinner{width:20px;height:20px;animation:spin 1s linear infinite}.auth-spinner.small{width:16px;height:16px}.auth-info-box{background:#f8f9fa;border:1px solid #e9ecef;border-radius:.75rem;padding:1rem;margin-bottom:1.5rem}.auth-info-header{display:flex;align-items:center;margin-bottom:.75rem;font-size:.875rem;font-weight:500;color:#495057}.auth-info-header svg{width:16px;height:16px;margin-right:.5rem;color:#6c757d}.security-text{color:#6c757d;font-size:.875rem;margin:0;line-height:1.4}.auth-link{color:#667eea;text-decoration:none;font-weight:500;transition:color .2s ease}.auth-link:hover:not(:disabled){color:#4f46e5;text-decoration:underline}.auth-link:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.auth-bottom-section{text-align:center}.auth-bottom-text{color:#6b7280;font-size:.875rem}.step-content{animation:fadeIn .4s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.success-icon{width:4rem;height:4rem;background:linear-gradient(135deg,#10b981,#059669);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 1.5rem;box-shadow:0 4px 20px #10b9814d}.success-icon svg{width:2rem;height:2rem;color:#fff}.error-icon{width:4rem;height:4rem;background:linear-gradient(135deg,#ef4444,#dc2626);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 1.5rem;box-shadow:0 4px 20px #ef44444d}.error-icon svg{width:2rem;height:2rem;color:#fff}.auth-form-options{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;font-size:.875rem}.auth-checkbox-wrapper{display:flex;align-items:center;gap:.5rem;cursor:pointer}.auth-checkbox-wrapper input{cursor:pointer}.checkbox-label{color:#6b7280;cursor:pointer}.auth-checkmark{width:18px;height:18px;border:2px solid #d1d5db;border-radius:4px;margin-right:.5rem;position:relative;transition:all .2s ease}.auth-checkbox-wrapper input:checked+.auth-checkmark{background:#667eea;border-color:#667eea}.auth-checkbox-wrapper input:checked+.auth-checkmark:after{content:"";position:absolute;left:5px;top:2px;width:4px;height:8px;border:solid white;border-width:0 2px 2px 0;transform:rotate(45deg)}.auth-form-logo-container{text-align:center;margin-bottom:1rem;display:flex;justify-content:center;align-items:center}.auth-logo{height:160px;max-width:200px;object-fit:contain;filter:none}.auth-password-toggle{position:absolute;right:1rem;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;width:20px;height:20px;color:#9ca3af;transition:color .2s ease}.auth-password-toggle:hover:not(:disabled){color:#6b7280}.auth-password-toggle:disabled{opacity:.5;cursor:not-allowed}.auth-role-info{background:#f8f9fa;border:1px solid #e9ecef;border-radius:.75rem;padding:1rem;margin-bottom:1.5rem}.auth-role-info-header{display:flex;align-items:center;margin-bottom:.75rem;font-size:.875rem;font-weight:500;color:#495057}.auth-role-info-header svg{width:16px;height:16px;margin-right:.5rem;color:#6c757d}.auth-role-badges{display:flex;gap:.5rem;flex-wrap:wrap}.auth-role-badge{background:#e9ecef;color:#495057;padding:.25rem .75rem;border-radius:9999px;font-size:.75rem;font-weight:500}.auth-role-badge.nurse{background:#d1ecf1;color:#0c5460}.auth-role-badge.patient{background:#d4edda;color:#155724}.auth-role-badge.doctor{background:#fff3cd;color:#856404}.auth-role-badge.admin{background:#f8d7da;color:#721c24}.auth-email-instructions{margin:2rem 0}.auth-instruction-item{display:flex;align-items:flex-start;margin-bottom:1.5rem}.auth-instruction-number{width:2rem;height:2rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.875rem;margin-right:1rem;flex-shrink:0}.auth-instruction-text h4{margin:0 0 .25rem;font-size:1rem;font-weight:600;color:#1f2937}.auth-instruction-text p{margin:0;font-size:.875rem;color:#6b7280;line-height:1.4}.auth-resend-section{text-align:center;margin:2rem 0;padding:1.5rem;background:#f8f9fa;border-radius:.75rem;border:1px solid #e9ecef}.auth-resend-text{color:#6b7280;font-size:.875rem;margin:0 0 1rem}.auth-resend-actions{display:flex;align-items:center;justify-content:center;gap:1rem;flex-wrap:wrap}.auth-resend-actions .auth-link{display:inline-flex;align-items:center;gap:.5rem}.auth-separator{color:#d1d5db;font-weight:700}.auth-security-text{color:#6c757d;font-size:.875rem;margin:0;line-height:1.4}.auth-security-text .auth-link{color:#667eea;text-decoration:none}.auth-security-text .auth-link:hover{text-decoration:underline}.auth-password-strength{margin-top:.5rem}.auth-strength-label{font-size:.75rem;color:#6b7280;margin-bottom:.25rem}.auth-strength-bar{width:100%;height:4px;background:#e5e7eb;border-radius:2px;overflow:hidden;margin-bottom:.25rem}.auth-strength-fill{height:100%;border-radius:2px;transition:all .3s ease}.auth-strength-fill.weak{background:#ef4444}.auth-strength-fill.fair{background:#d3d3d3}.auth-strength-fill.good{background:#3b82f6}.auth-strength-fill.strong{background:#10b981}.auth-strength-text{font-size:.75rem;font-weight:500}.auth-strength-text.weak{color:#ef4444}.auth-strength-text.fair{color:#d3d3d3}.auth-strength-text.good{color:#3b82f6}.auth-strength-text.strong{color:#10b981}.auth-password-requirements{background:#f8f9fa;border:1px solid #e9ecef;border-radius:.75rem;padding:1rem;margin:1.5rem 0}.auth-requirements-title{font-size:.875rem;font-weight:600;color:#374151;margin:0 0 .75rem}.auth-requirements-list{list-style:none;margin:0;padding:0}.auth-requirements-list li{display:flex;align-items:center;font-size:.75rem;color:#6b7280;margin-bottom:.5rem;transition:color .2s ease}.auth-requirements-list li:last-child{margin-bottom:0}.auth-requirements-list li svg{width:14px;height:14px;margin-right:.5rem;color:#d1d5db;transition:color .2s ease}.auth-requirements-list li.met{color:#10b981}.auth-requirements-list li.met svg{color:#10b981}.auth-reset-icon{width:4rem;height:4rem;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 1.5rem;box-shadow:0 4px 20px #667eea4d}.auth-reset-icon svg{width:2rem;height:2rem;color:#fff}.auth-success-content,.auth-expired-content{text-align:center}.auth-success-message,.auth-expired-message{margin:1.5rem 0}.auth-success-message h4{font-size:1.125rem;font-weight:600;color:#1f2937;margin:0 0 .5rem}.auth-success-message p,.auth-expired-message{color:#6b7280;line-height:1.5;margin:0}.auth-match-icon{width:14px;height:14px}.auth-form-state{animation:fadeIn .4s ease-out}@media(max-width:1024px){.auth-container{flex-direction:column}.auth-branding-section{padding:2rem;text-align:center;width:100%}.auth-brand-title{font-size:2rem}.auth-form-section{padding:1rem;width:100%}.auth-features{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.auth-bg-circle.circle-3{display:none}}@media(max-width:768px){.auth-branding-section{display:none}.auth-brand-title{font-size:1.75rem}.auth-brand-subtitle{font-size:1rem;margin-bottom:2rem}.auth-features{grid-template-columns:1fr;gap:1rem}.auth-form-section{padding:1.5rem 1rem}.auth-form-container{max-width:100%}.auth-logo{height:120px;max-width:150px}.auth-form-title{font-size:1.5rem}.auth-form-options{flex-direction:column;align-items:flex-start;gap:1rem}.auth-link{align-self:center}.error-alert{gap:.75rem;padding:.875rem}.auth-bg-circle.circle-1{width:200px;height:200px;top:-100px;right:-100px}.auth-bg-circle.circle-2{width:150px;height:150px}}@media(max-width:640px){.auth-branding-section,.auth-form-section{padding:1rem}.auth-brand-title{font-size:1.5rem}.auth-brand-subtitle{font-size:.938rem}.auth-feature{font-size:1rem}.auth-feature-icon{width:20px;height:20px}.auth-logo{height:100px;max-width:130px}.auth-form-input{font-size:16px;padding:.75rem 1rem .75rem 2.75rem}.auth-btn{min-height:48px;padding:.875rem 1.5rem}.auth-instruction-item{align-items:center}.auth-instruction-number{margin-right:.75rem}.auth-resend-actions{flex-direction:column;gap:.5rem}.auth-separator{display:none}.auth-role-badges{justify-content:center}.auth-password-requirements{padding:.75rem;margin:1rem 0}.auth-requirements-list li{font-size:.7rem}}@media(max-width:480px){.auth-branding-section{padding:.75rem}.auth-brand-title{font-size:1.25rem}.auth-brand-subtitle{font-size:.875rem;margin-bottom:1.5rem}.auth-feature{font-size:.938rem}.auth-logo{height:80px;max-width:110px}.auth-form-title{font-size:1.25rem}.auth-form-subtitle{font-size:.875rem}}@media(max-height:600px)and (orientation:landscape){.auth-container{flex-direction:row}.auth-branding-section{width:40%;padding:1.5rem}.auth-form-section{width:60%}.auth-brand-title{font-size:1.5rem;margin-bottom:.5rem}.auth-brand-subtitle{font-size:.938rem;margin-bottom:1rem}.auth-features{gap:.75rem}.auth-feature{font-size:.875rem}.auth-form-header{margin-bottom:1rem}.auth-form-group{margin-bottom:.875rem}.auth-logo{height:60px;max-width:100px}}.auth-form-input:focus,.auth-btn:focus,.auth-link:focus,.auth-checkbox-wrapper:focus-within,.auth-input-addon:focus{outline:2px solid #667eea;outline-offset:2px}@media(prefers-contrast:high){.auth-form-input{border-width:2px}.auth-btn{border:2px solid transparent}.error-alert{border-width:2px}}@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.auth-btn:hover:not(:disabled){transform:none}.step-content{animation:none}}@media print{.auth-bg-decoration,.auth-branding-section{display:none}.auth-container{display:block}.auth-form-section{width:100%;background:#fff}}.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;border:none;border-radius:.5rem;font-weight:500;font-size:.875rem;cursor:pointer;transition:all .2s ease;text-decoration:none;white-space:nowrap;justify-content:center;min-height:44px}.btn:disabled{opacity:.6;cursor:not-allowed;transform:none!important;box-shadow:none!important}.btn svg{width:16px;height:16px;flex-shrink:0}.btn-primary{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;box-shadow:0 2px 4px #3b82f633}.btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #3b82f64d;background:linear-gradient(135deg,#2563eb,#1d4ed8)}.btn-secondary{background:#f8fafc;color:#475569;border:1px solid #e2e8f0;box-shadow:0 1px 3px #0000001a}.btn-secondary:hover:not(:disabled){background:#f1f5f9;border-color:#cbd5e1;transform:translateY(-1px);box-shadow:0 2px 6px #00000026}.btn-danger{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;box-shadow:0 2px 4px #ef444433}.btn-danger:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #ef44444d;background:linear-gradient(135deg,#dc2626,#b91c1c)}.btn-sm{padding:.5rem 1rem;font-size:.8125rem;min-height:40px}.btn-lg{padding:1rem 2rem;font-size:1rem;min-height:48px}@media(max-width:640px){.btn{padding:.75rem 1.25rem;font-size:.875rem}.btn-sm{padding:.625rem 1rem;font-size:.8125rem}}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal{background:#fff;border-radius:.75rem;max-width:500px;width:100%;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 10px 40px #00000026}.modal.modal-sm{max-width:400px}.modal.modal-lg,.modal.large{max-width:800px}.modal.delete-modal{max-width:600px}.modal.modal-xl{max-width:1200px}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid #e5e7eb;flex-shrink:0}.modal-header.modal-header-danger{background:linear-gradient(135deg,#fef2f2,#fee2e2);border-bottom-color:#fecaca}.modal-title{font-size:1.25rem;font-weight:600;color:#1f2937;margin:0;display:flex;align-items:center;gap:.75rem}.modal-header-danger .modal-title{color:#991b1b}.modal-icon{width:20px;height:20px;flex-shrink:0}.modal-icon-danger{color:#dc2626}.modal-close{background:none;border:none;cursor:pointer;padding:.5rem;border-radius:.375rem;transition:background-color .2s;color:#6b7280;display:flex;align-items:center;justify-content:center;min-width:44px;min-height:44px}.modal-close:hover{background:#f3f4f6}.modal-close svg{width:20px;height:20px}.modal form{display:flex;flex-direction:column;flex:1;min-height:0}.modal-body{padding:1.5rem;overflow-y:auto;flex:1;min-height:0}.modal-actions{display:flex;gap:1rem;justify-content:flex-end;padding:1.5rem;border-top:1px solid #e5e7eb;flex-shrink:0}@media(max-width:640px){.modal-overlay{padding:.5rem;align-items:flex-end}.modal{max-height:95vh;border-bottom-left-radius:0;border-bottom-right-radius:0}.modal.modal-sm,.modal.modal-lg,.modal.large,.modal.delete-modal,.modal.modal-xl{max-width:100%}.modal-header{padding:1.25rem}.modal-title{font-size:1.125rem}.modal-body{padding:1.25rem}.modal-actions{flex-direction:column-reverse;gap:.75rem;padding:1.25rem}.modal-actions .btn{width:100%}}@media(max-width:480px){.modal-header{padding:1rem}.modal-title{font-size:1rem}.modal-body,.modal-actions{padding:1rem}}.form-container{max-height:600px;overflow-y:auto}.form-group{margin-bottom:1.5rem}.form-group:last-child{margin-bottom:0}.form-group label{display:block;font-weight:500;color:#374151;margin-bottom:.5rem;font-size:.875rem}.form-group input,.form-group textarea,.form-group select{width:100%;padding:.75rem;border:1px solid #d1d5db;border-radius:.5rem;font-size:.875rem;transition:border-color .2s,box-shadow .2s;background:#fff;min-height:44px}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.form-group input:disabled,.form-group textarea:disabled,.form-group select:disabled{background:#f9fafb;color:#6b7280;cursor:not-allowed}.form-help{color:#6b7280;font-size:.8125rem;margin-top:.25rem;display:block}.form-error{color:#dc2626;font-size:.8125rem;margin-top:.25rem;display:block}.form-group.has-error input,.form-group.has-error textarea,.form-group.has-error select{border-color:#dc2626;box-shadow:0 0 0 3px #dc26261a}.form-group.has-success input,.form-group.has-success textarea,.form-group.has-success select{border-color:#10b981;box-shadow:0 0 0 3px #10b9811a}.photo-upload-container{display:flex;gap:24px;align-items:flex-start;padding:20px;background:#f8fafc;border-radius:12px;border:1px solid #e2e8f0}.photo-preview{flex-shrink:0}.filter-wrapper{min-width:200px;flex:1;max-width:300px}.filter-searchable{width:100%}.filters-group{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.filter-wrapper :deep(.searchable-select){min-width:200px}.filter-wrapper :deep(.searchable-select-trigger){padding:10px 14px;border:1px solid #e2e8f0;border-radius:10px;font-size:14px;font-weight:500;background:#fff;min-height:42px}.filter-wrapper :deep(.searchable-select-trigger:focus){border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.preview-image{width:120px;height:120px;border-radius:12px;object-fit:cover;border:3px solid #e2e8f0}.preview-placeholder{width:120px;height:120px;border-radius:12px;background:#e2e8f0;display:flex;flex-direction:column;align-items:center;justify-content:center;border:2px dashed #cbd5e1}.preview-placeholder svg{width:40px;height:40px;color:#94a3b8;margin-bottom:8px}.preview-placeholder p{font-size:12px;color:#94a3b8;font-weight:500;margin:0}.photo-controls{flex:1;display:flex;flex-direction:column;gap:12px}@media(max-width:768px){.form-group{margin-bottom:1.25rem}.photo-upload-container{flex-direction:column;align-items:center;text-align:center;padding:16px;gap:16px}.photo-controls{width:100%;align-items:center}.photo-controls .btn{width:100%;justify-content:center}}@media(max-width:480px){.form-group input,.form-group textarea,.form-group select{font-size:16px}.preview-image,.preview-placeholder{width:100px;height:100px}}.checkbox-label{display:flex;align-items:center;gap:10px;cursor:pointer;font-size:14px;font-weight:500;color:#334155;min-height:44px}.checkbox-label input[type=checkbox]{width:20px;height:20px;cursor:pointer;border-radius:6px;appearance:none;-webkit-appearance:none;-moz-appearance:none;background:#d8bfd8;position:relative;transition:all .2s;flex-shrink:0;min-width:20px;min-height:20px}.checkbox-label input[type=checkbox]:hover{border-color:#667eea}.checkbox-label input[type=checkbox]:checked{background:#667eea;border-color:#667eea}.checkbox-label input[type=checkbox]:checked:after{content:"";position:absolute;left:6px;top:2px;width:5px;height:10px;border:solid white;border-width:0 2px 2px 0;transform:rotate(45deg)}.checkbox-label input[type=checkbox]:focus{outline:none;box-shadow:0 0 0 3px #667eea1a}.checkbox-text{-webkit-user-select:none;user-select:none}@media(max-width:640px){.checkbox-label input[type=checkbox]{width:24px;height:24px;min-width:24px;min-height:24px}.checkbox-label input[type=checkbox]:checked:after{left:7px;top:3px}}.pagination-container{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-top:1px solid #e2e8f0;background:#f8fafc;flex-wrap:wrap;gap:16px}.pagination-info{font-size:14px;color:#64748b;font-weight:500}.pagination-controls{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.pagination-btn{display:flex;align-items:center;gap:6px;padding:8px 14px;background:#fff;border:1px solid #e2e8f0;border-radius:8px;font-size:14px;font-weight:500;color:#334155;cursor:pointer;transition:all .2s;min-height:40px;white-space:nowrap}.pagination-btn:hover:not(:disabled){background:#f8fafc;border-color:#cbd5e1}.pagination-btn:disabled{opacity:.5;cursor:not-allowed}.pagination-btn svg{width:16px;height:16px}.pagination-pages{display:flex;gap:4px}.pagination-page{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid #e2e8f0;border-radius:8px;font-size:14px;font-weight:600;color:#334155;cursor:pointer;transition:all .2s}.pagination-page:hover{background:#f8fafc;border-color:#cbd5e1}.pagination-page.active{background:#667eea;border-color:#667eea;color:#fff}@media(max-width:768px){.pagination-container{flex-direction:column;align-items:stretch;padding:16px}.pagination-info{text-align:center;width:100%}.pagination-controls{justify-content:center;width:100%}}@media(max-width:480px){.pagination-btn{padding:8px 12px;font-size:13px}.pagination-page{width:36px;height:36px;font-size:13px}.pagination-pages{gap:2px}}.dropdown{position:relative;display:inline-block}.dropdown-toggle{background:#f9fafb;border:1px solid #e5e7eb;border-radius:.375rem;padding:.5rem;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;min-width:40px;min-height:40px}.dropdown-toggle:hover{background:#f3f4f6;border-color:#d1d5db}.dropdown-toggle svg{width:16px;height:16px;color:#6b7280}.dropdown-menu{position:absolute;top:100%;right:0;background:#fff;border:1px solid #e5e7eb;border-radius:.5rem;box-shadow:0 4px 20px #0000001a;z-index:50;min-width:180px;margin-top:.25rem;overflow:hidden}.dropdown-menu.dropdown-menu-left{right:auto;left:0}.dropdown-item{width:100%;padding:.75rem 1rem;background:none;border:none;text-align:left;cursor:pointer;display:flex;align-items:center;gap:.5rem;color:#374151;font-size:.875rem;transition:background-color .1s;text-decoration:none;min-height:44px}.dropdown-item:hover{background:#f9fafb}.dropdown-item.dropdown-item-danger{color:#dc2626}.dropdown-item.dropdown-item-danger:hover{background:#fef2f2}.dropdown-item:disabled{color:#9ca3af;cursor:not-allowed}.dropdown-item:disabled:hover{background:none}.dropdown-item svg{width:14px;height:14px;flex-shrink:0}.dropdown-divider{height:1px;background:#e5e7eb;margin:.25rem 0}@media(max-width:640px){.dropdown-menu{min-width:160px;font-size:.875rem}.dropdown-item{padding:.875rem 1rem}}.badge{display:inline-flex;align-items:center;padding:.25rem .75rem;border-radius:9999px;font-size:.75rem;font-weight:500;white-space:nowrap}.badge-sm{padding:.125rem .5rem;font-size:.6875rem}.badge-lg{padding:.375rem 1rem;font-size:.875rem}.badge-primary{background:#dbeafe;color:#1e40af}.badge-secondary{background:#f3f4f6;color:#4b5563}.badge-success{background:#d1fae5;color:#065f46}.badge-warning{background:#fef3c7;color:#92400e}.badge-danger{background:#fee2e2;color:#991b1b}.badge-info{background:#e0f2fe;color:#0369a1}.badge-system{background:#fef3c7;color:#92400e}.badge-custom{background:#ddd6fe;color:#6b21a8}.badge-active{background:#d1fae5;color:#065f46}.badge-inactive{background:#fee2e2;color:#991b1b}.badge.system{background:#fef3c7;color:#92400e}.badge.custom{background:#ddd6fe;color:#6b21a8}.badge.status.active{background:#d1fae5;color:#065f46}.badge.status.inactive{background:#fee2e2;color:#991b1b}.badge.mini{font-size:.6875rem;padding:.125rem .5rem}.badge.mini-stat{background:#e0f2fe;color:#0369a1}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center}.loading-spinner{display:flex;flex-direction:column;align-items:center;gap:1rem}.loading-spinner svg{width:40px;height:40px;color:#3b82f6}.loading-spinner p{color:#6b7280;margin:0}.spinner{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.spinner-sm{width:16px;height:16px}.spinner-lg{width:24px;height:24px}@media(max-width:640px){.loading-container{padding:3rem 1.5rem}}.search-input{position:relative;display:flex;align-items:center}.search-input svg{position:absolute;left:1rem;top:50%;transform:translateY(-50%);width:18px;height:18px;color:#9ca3af;z-index:1}.search-input input{width:100%;padding:.75rem 1rem .75rem 2.5rem;border:1px solid #d1d5db;border-radius:.5rem;font-size:.875rem;transition:border-color .2s,box-shadow .2s;background:#fff;min-height:44px}.search-input input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.search-input input::placeholder{color:#9ca3af}@media(max-width:640px){.search-input input{font-size:16px}}.filter-buttons{display:flex;gap:.5rem;flex-wrap:wrap}.filter-btn{padding:.5rem 1rem;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:.375rem;font-size:.875rem;color:#4b5563;cursor:pointer;transition:all .2s;white-space:nowrap;text-decoration:none;display:inline-flex;align-items:center;gap:.25rem;min-height:40px}.filter-btn.filter-btn-active{background:#3b82f6;border-color:#3b82f6;color:#fff}.filter-btn:hover:not(.filter-btn-active){background:#e5e7eb;border-color:#d1d5db}@media(max-width:640px){.filter-buttons{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none}.filter-buttons::-webkit-scrollbar{display:none}.filter-btn{flex-shrink:0}}.tabs-container{border-bottom:1px solid #e5e7eb;margin-bottom:2rem}.tabs{display:flex;gap:2rem;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch}.tabs::-webkit-scrollbar{display:none}.tab{display:flex;align-items:center;gap:.5rem;padding:1rem 0;background:none;border:none;font-size:1rem;font-weight:500;color:#6b7280;cursor:pointer;border-bottom:2px solid transparent;transition:all .2s;white-space:nowrap;text-decoration:none;min-height:48px}.tab.tab-active{color:#3b82f6;border-bottom-color:#3b82f6}.tab:hover:not(.tab-active){color:#374151}.tab svg{width:18px;height:18px;flex-shrink:0}@media(max-width:640px){.tabs{gap:1rem}.tab{font-size:.875rem;padding:.875rem 0}}.page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:2rem;padding-bottom:2rem;border-bottom:1px solid #e5e7eb;gap:1rem}.header-content{flex:1;min-width:0}.header-actions{flex-shrink:0;display:flex;gap:.75rem;flex-wrap:wrap}.page-title{font-size:2rem;font-weight:700;color:#1f2937;margin:0 0 .75rem;line-height:1.2}.page-subtitle{color:#6b7280;margin:0;font-size:1rem;line-height:1.5}@media(max-width:768px){.page-header{flex-direction:column;align-items:stretch;margin-bottom:1.5rem;padding-bottom:1.5rem}.page-title{font-size:1.5rem}.page-subtitle{font-size:.875rem}.header-actions{width:100%}.header-actions .btn{flex:1}}@media(max-width:480px){.page-title{font-size:1.25rem}.page-header{margin-bottom:1.25rem;padding-bottom:1.25rem}.header-actions{flex-direction:column}.header-actions .btn{width:100%}}.users-page{min-height:100vh;background:#f8f9fa}.users-table-container{background:#fff;border-radius:.75rem;box-shadow:0 1px 3px #0000001a;border:1px solid #e5e7eb;max-width:100%}.users-table{width:100%;border-collapse:collapse}.users-table thead{background:#f9fafb}.users-table th{padding:.75rem 1.5rem;text-align:left;font-size:.75rem;font-weight:500;color:#6b7280;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid #e5e7eb}.users-table th:last-child{text-align:right}.users-table tbody{background:#fff;divide-y:1px solid #e5e7eb}.users-table tr{transition:background-color .15s}.users-table tbody tr:hover{background:#f9fafb}.users-table td{padding:1rem 1.5rem;white-space:nowrap;font-size:.875rem;border-bottom:1px solid #e5e7eb}.users-table td:last-child{text-align:right}@media(max-width:1024px){.users-table-container{overflow-x:auto;-webkit-overflow-scrolling:touch}.users-table{min-width:800px}}@media(max-width:768px){.users-table th,.users-table td{padding:.75rem 1rem;font-size:.8125rem}.users-table{min-width:700px}}@media(max-width:640px){.users-table th,.users-table td{padding:.625rem .75rem;font-size:.75rem}.users-table{min-width:600px}}.form-grid{display:grid;grid-template-columns:1fr;gap:1rem}@media(min-width:768px){.form-grid{grid-template-columns:repeat(2,1fr)}}.form-grid-full{grid-column:1 / -1}.fade-in{animation:fadeIn .3s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.slide-in-right{animation:slideInRight .3s ease-out}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.scale-in{animation:scaleIn .2s ease-out}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@media(hover:none){.btn:hover,.tab:hover,.filter-btn:hover,.dropdown-item:hover{transform:none}}@media(pointer:coarse){button,a,input[type=checkbox],input[type=radio],select{min-height:44px;min-width:44px}}html{scroll-behavior:smooth}html,body{overflow-x:hidden;max-width:100vw}*{box-sizing:border-box}@media(max-width:768px){body{-webkit-overflow-scrolling:touch}}@supports (padding: max(0px)){.page-header,.dashboard-container,.modal-overlay{padding-left:max(1rem,env(safe-area-inset-left));padding-right:max(1rem,env(safe-area-inset-right))}.modal-overlay{padding-bottom:max(1rem,env(safe-area-inset-bottom))}}
