.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-lg);font-size:var(--text-sm);font-weight:var(--font-semibold);line-height:1.5;text-decoration:none;border:2px solid transparent;border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;position:relative;overflow:hidden}.btn:disabled,.btn[disabled]{opacity:0.7;cursor:not-allowed;pointer-events:none}.btn-primary{background:linear-gradient(135deg,var(--primary) 0%,var(--accent) 100%);color:white;border-color:transparent;box-shadow:var(--shadow-primary)}.btn-primary:hover{transform:translateY(-2px);box-shadow:var(--shadow-primary-lg);filter:brightness(1.05)}.btn-primary:active{transform:translateY(0)}.btn-secondary{background:var(--bg-surface);color:var(--text-primary);border-color:var(--border-default)}.btn-secondary:hover{background:var(--color-gray-50);border-color:var(--primary);color:var(--primary)}.btn-outline{background:transparent;color:var(--primary);border-color:var(--primary)}.btn-outline:hover{background:var(--primary);color:white}.btn-outline-visible{background:rgba(255,255,255,0.1);color:white;border-color:rgba(255,255,255,0.6)}.btn-outline-visible:hover{background:white;color:var(--primary);border-color:white}.btn-ghost{background:transparent;color:var(--text-secondary);border-color:transparent}.btn-ghost:hover{background:var(--color-gray-100);color:var(--text-primary)}.btn-success{background:var(--success);color:white;border-color:transparent}.btn-success:hover{background:var(--color-success-dark);transform:translateY(-2px)}.btn-danger{background:var(--danger);color:white;border-color:transparent}.btn-danger:hover{background:var(--color-error-dark);transform:translateY(-2px)}.btn-sm{padding:var(--spacing-xs) var(--spacing-md);font-size:var(--text-xs)}.btn-lg{padding:var(--spacing-md) var(--spacing-xl);font-size:var(--text-base)}.btn-xl{padding:var(--spacing-lg) var(--spacing-2xl);font-size:var(--text-lg)}.btn-block{display:flex;width:100%}.btn-glow{position:relative}.btn-glow::before{content:'';position:absolute;inset:-2px;background:linear-gradient(135deg,var(--primary),var(--accent),var(--primary));border-radius:inherit;opacity:0;filter:blur(10px);transition:opacity var(--transition-normal);z-index:-1}.btn-glow:hover::before{opacity:0.6}.btn-shine{position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient( 90deg,transparent,rgba(255,255,255,0.4),transparent );animation:shine 3s infinite}.btn-hero{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-2xl);font-size:var(--text-lg);font-weight:var(--font-bold);color:var(--color-gray-900);background:white;border:none;border-radius:var(--radius-full);box-shadow:0 4px 20px rgba(255,255,255,0.3);cursor:pointer;transition:all var(--transition-normal);text-decoration:none}.btn-hero:hover{transform:translateY(-3px);box-shadow:0 8px 30px rgba(255,255,255,0.4)}.btn-white-solid{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-xl);font-size:var(--text-base);font-weight:var(--font-semibold);color:var(--primary);background:white;border:2px solid white;border-radius:var(--radius-full);cursor:pointer;transition:all var(--transition-normal);text-decoration:none}.btn-white-solid:hover{background:transparent;color:white;transform:translateY(-2px)}.btn-group{display:flex;flex-wrap:wrap;gap:var(--spacing-md);justify-content:center;align-items:center}.animate-pulse-glow{animation:pulseGlow 2s ease-in-out infinite}@keyframes pulseGlow{0%,100%{box-shadow:0 4px 20px rgba(255,255,255,0.3)}50%{box-shadow:0 4px 30px rgba(255,255,255,0.5),0 0 40px rgba(212,175,55,0.3)}}.btn-icon{width:40px;height:40px;padding:0;border-radius:var(--radius-full)}.btn-icon.btn-sm{width:44px;height:44px}@media (min-width:768px){.btn-icon.btn-sm{width:32px;height:32px}}.btn-icon.btn-lg{width:48px;height:48px}.card{background:var(--bg-surface);border:2px solid var(--border-default);border-radius:var(--radius-xl);padding:var(--spacing-lg);transition:all var(--transition-normal);position:relative;overflow:hidden}.card-hover:hover{border-color:var(--primary);box-shadow:var(--shadow-lg);transform:translateY(-4px)}.card-gradient{border-top:4px solid transparent;border-image:linear-gradient(90deg,var(--primary),var(--accent)) 1}.card-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:var(--spacing-md);margin-bottom:var(--spacing-md);border-bottom:1px solid var(--border-default)}.card-title{font-size:var(--text-lg);font-weight:var(--font-bold);color:var(--text-primary);margin:0}.card-body{padding:var(--spacing-md) 0}.card-footer{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md);padding-top:var(--spacing-md);margin-top:var(--spacing-md);border-top:1px solid var(--border-default)}.pricing-card{text-align:center;padding:var(--spacing-xl);position:relative}.pricing-card.featured{border-color:var(--primary);box-shadow:var(--shadow-primary-lg);transform:scale(1.02)}.pricing-card.featured::before{content:'';position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--primary),var(--accent))}.pricing-value{font-size:var(--text-4xl);font-weight:var(--font-black);color:var(--primary);line-height:1}.pricing-period{font-size:var(--text-sm);color:var(--text-secondary);font-weight:var(--font-normal)}.feature-list{text-align:left;margin:var(--spacing-lg) 0}.feature-list li{display:flex;align-items:flex-start;gap:var(--spacing-sm);padding:var(--spacing-xs) 0;color:var(--text-secondary);font-size:var(--text-sm)}.feature-list li i{color:var(--success);font-size:var(--text-base);flex-shrink:0;margin-top:2px}.card-problem,.card-solution{padding:var(--spacing-xl);text-align:center}.card-problem{background:linear-gradient(135deg,rgba(229,90,43,0.03) 0%,rgba(229,90,43,0.08) 100%)}.card-solution{background:linear-gradient(135deg,rgba(212,175,55,0.03) 0%,rgba(255,140,66,0.08) 100%)}.scooter-card{display:flex;flex-direction:column;overflow:hidden}.scooter-card-image{aspect-ratio:4/3;overflow:hidden;border-radius:var(--radius-lg);margin-bottom:var(--spacing-md)}.scooter-card-image img{width:100%;height:100%;object-fit:cover;transition:transform var(--transition-slow)}.scooter-card:hover .scooter-card-image img{transform:scale(1.05)}.form-group{display:flex;flex-direction:column;gap:var(--spacing-xs);margin-bottom:var(--spacing-md)}.form-label{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--text-primary)}.form-label .required{color:var(--danger);margin-left:2px}.input-wrapper{position:relative;display:flex;align-items:center}.input-wrapper i:first-child{position:absolute;left:var(--spacing-md);color:var(--text-tertiary);z-index:1;pointer-events:none}.input-wrapper .form-control{padding-left:calc(var(--spacing-md) * 2 + 1em)}.form-control{width:100%;padding:var(--spacing-sm) var(--spacing-md);font-size:var(--text-base);color:var(--text-primary);background:var(--bg-surface);border:2px solid var(--border-default);border-radius:var(--radius-md);transition:all var(--transition-fast)}.form-control::placeholder{color:var(--text-tertiary)}.form-control:hover{border-color:var(--border-hover)}.form-control:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 4px rgba(212,175,55,0.15)}.form-control:valid:not(:placeholder-shown):not(:focus){border-color:var(--success)}.form-control:invalid:not(:placeholder-shown):not(:focus){border-color:var(--danger)}.form-control.is-invalid{border-color:var(--danger)}.form-control.is-valid{border-color:var(--success)}select.form-control{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%239E9E9E'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M19 9l-7 7-7-7'%3E%3C/path%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--spacing-md) center;background-size:1.25em;padding-right:calc(var(--spacing-md) * 2 + 1.25em)}textarea.form-control{resize:vertical;min-height:100px}.form-check{display:flex;align-items:flex-start;gap:var(--spacing-sm);cursor:pointer}.form-check input[type="checkbox"],.form-check input[type="radio"]{width:18px;height:18px;margin-top:2px;accent-color:var(--primary);cursor:pointer}.form-check-label{font-size:var(--text-sm);color:var(--text-secondary);line-height:1.5}.form-check-label a{color:var(--primary);font-weight:var(--font-semibold)}.form-error{font-size:var(--text-xs);color:var(--danger);margin-top:var(--spacing-xs)}.form-help{font-size:var(--text-xs);color:var(--text-tertiary);margin-top:var(--spacing-xs)}.password-strength{height:4px;background:var(--color-gray-200);border-radius:var(--radius-full);margin-top:var(--spacing-xs);overflow:hidden}.password-strength-bar{height:100%;border-radius:var(--radius-full);transition:all var(--transition-normal)}.password-strength-bar.strength-weak{width:25%;background:var(--danger)}.password-strength-bar.strength-fair{width:50%;background:var(--warning)}.password-strength-bar.strength-good{width:75%;background:var(--accent)}.password-strength-bar.strength-strong{width:100%;background:var(--success)}.code-input-group{display:flex;justify-content:center;gap:var(--spacing-sm)}.code-input{width:48px;height:56px;text-align:center;font-size:var(--text-2xl);font-weight:var(--font-bold);border:2px solid var(--border-default);border-radius:var(--radius-md);transition:all var(--transition-fast)}.code-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 4px rgba(212,175,55,0.15)}.toggle-group{display:flex;background:var(--color-gray-100);border-radius:var(--radius-lg);padding:4px;gap:var(--spacing-xs)}.toggle-btn{flex:1;padding:var(--spacing-sm) var(--spacing-md);font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--text-secondary);background:transparent;border:none;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.toggle-btn:hover{color:var(--text-primary)}.toggle-btn.active{background:linear-gradient(135deg,var(--primary),var(--accent));color:white;box-shadow:var(--shadow-sm)}.badge{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-md);font-size:var(--text-xs);font-weight:var(--font-bold);text-transform:uppercase;letter-spacing:0.05em;border-radius:var(--radius-full);white-space:nowrap}.badge-primary{background:linear-gradient(135deg,rgba(212,175,55,0.15),rgba(212,175,55,0.25));color:var(--primary-dark);border:1px solid rgba(212,175,55,0.3)}.badge-accent{background:linear-gradient(135deg,rgba(229,90,43,0.1),rgba(229,90,43,0.2));color:var(--color-orange-600);border:1px solid rgba(229,90,43,0.25)}.badge-success{background:var(--color-success-light);color:var(--color-success-dark);border:1px solid rgba(16,185,129,0.25)}.badge-warning{background:var(--color-warning-light);color:var(--color-warning-dark);border:1px solid rgba(245,158,11,0.25)}.badge-danger{background:var(--color-error-light);color:var(--color-error-dark);border:1px solid rgba(239,68,68,0.25)}.badge-info{background:var(--color-info-light);color:var(--color-info-dark);border:1px solid rgba(59,130,246,0.25)}.badge-neutral{background:var(--color-gray-100);color:var(--color-gray-700);border:1px solid var(--color-gray-300)}.status-badge{padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--font-bold);text-transform:uppercase;letter-spacing:0.05em}.status-active{background:linear-gradient(135deg,rgba(16,185,129,0.15),rgba(16,185,129,0.25));color:var(--success);border:2px solid rgba(16,185,129,0.3)}.status-pending{background:linear-gradient(135deg,rgba(245,158,11,0.15),rgba(245,158,11,0.25));color:var(--warning);border:2px solid rgba(245,158,11,0.3)}.status-inactive{background:var(--color-gray-100);color:var(--color-gray-600);border:2px solid var(--color-gray-300)}.status-repair{background:linear-gradient(135deg,rgba(255,140,66,0.15),rgba(255,140,66,0.25));color:var(--accent-dark);border:2px solid rgba(255,140,66,0.3)}.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.5);backdrop-filter:blur(4px);z-index:var(--z-modal);display:flex;align-items:center;justify-content:center;padding:var(--spacing-lg);opacity:0;visibility:hidden;transition:all var(--transition-normal)}.modal-overlay.active{opacity:1;visibility:visible}.modal-overlay .modal{position:relative;background:var(--bg-surface);border-radius:var(--radius-2xl);max-width:500px;width:100%;max-height:90vh;overflow:hidden;box-shadow:var(--shadow-2xl);transform:scale(0.95) translateY(20px);transition:transform var(--transition-normal)}.modal:not(.modal-overlay .modal){display:none;position:fixed;inset:0;z-index:9999;background:rgba(0,0,0,0.5);backdrop-filter:blur(4px);align-items:center;justify-content:center;opacity:0;visibility:hidden}.modal:not(.modal-overlay .modal).active{display:flex !important;opacity:1 !important;visibility:visible !important}.modal-overlay.active .modal{transform:scale(1) translateY(0)}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-lg);border-bottom:1px solid var(--border-default)}.modal-title{font-size:var(--text-xl);font-weight:var(--font-bold);color:var(--text-primary);margin:0}.modal-close{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-full);color:var(--text-secondary);transition:all var(--transition-fast)}.modal-close:hover{background:var(--color-gray-100);color:var(--text-primary)}.modal-body{padding:var(--spacing-lg);overflow-y:auto;max-height:calc(90vh - 140px)}.modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--spacing-md);padding:var(--spacing-lg);border-top:1px solid var(--border-default)}.modal-sm{max-width:400px}.modal-lg{max-width:700px}.modal-xl{max-width:900px}.modal-full{max-width:calc(100vw - var(--spacing-xl) * 2)}.toast-container{position:fixed;bottom:var(--spacing-lg);right:var(--spacing-lg);display:flex;flex-direction:column;gap:var(--spacing-sm);z-index:var(--z-toast)}.toast{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-lg);background:var(--bg-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);min-width:300px;max-width:400px;transform:translateX(120%);opacity:0;transition:all var(--transition-normal)}.toast.show{transform:translateX(0);opacity:1}.toast i{font-size:var(--text-lg);flex-shrink:0}.toast span{flex:1;font-size:var(--text-sm);font-weight:var(--font-medium)}.toast-close{padding:var(--spacing-xs);color:var(--text-tertiary);transition:color var(--transition-fast)}.toast-close:hover{color:var(--text-primary)}.toast-success{border-left:4px solid var(--success)}.toast-success i{color:var(--success)}.toast-error{border-left:4px solid var(--danger)}.toast-error i{color:var(--danger)}.toast-warning{border-left:4px solid var(--warning)}.toast-warning i{color:var(--warning)}.toast-info{border-left:4px solid var(--info)}.toast-info i{color:var(--info)}.alert{display:flex;align-items:flex-start;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--radius-lg);margin-bottom:var(--spacing-md)}.alert i{font-size:var(--text-lg);margin-top:2px;flex-shrink:0}.alert-content{flex:1}.alert-title{font-weight:var(--font-bold);margin-bottom:var(--spacing-xs)}.alert-message{font-size:var(--text-sm);margin:0}.alert-success{background:var(--color-success-light);border:1px solid rgba(16,185,129,0.25);color:var(--color-success-dark)}.alert-error{background:var(--color-error-light);border:1px solid rgba(239,68,68,0.25);color:var(--color-error-dark)}.alert-warning{background:var(--color-warning-light);border:1px solid rgba(245,158,11,0.25);color:var(--color-warning-dark)}.alert-info{background:var(--color-info-light);border:1px solid rgba(59,130,246,0.25);color:var(--color-info-dark)}.global-alert{position:fixed;top:100px;left:50%;transform:translateX(-50%);padding:var(--spacing-md) var(--spacing-xl);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);z-index:var(--z-toast);display:none;font-weight:var(--font-semibold);max-width:500px;text-align:center;animation:fadeInDown var(--duration-normal) var(--ease-out)}.global-alert.show{display:block}.loader{width:40px;height:40px;border:3px solid var(--color-gray-200);border-top-color:var(--primary);border-radius:50%;animation:spin 1s linear infinite}.loader-sm{width:20px;height:20px;border-width:2px}.loader-lg{width:60px;height:60px;border-width:4px}.loader-container{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-md);padding:var(--spacing-2xl);color:var(--text-secondary)}.loader-container p{margin:0;font-size:var(--text-sm)}.loading-spinner{display:flex;align-items:center;justify-content:center;gap:var(--spacing-md);padding:var(--spacing-2xl);color:var(--text-secondary)}.loading-spinner i{font-size:var(--text-2xl);color:var(--primary);animation:spin 1s linear infinite}.skeleton{background:linear-gradient( 90deg,var(--color-gray-200) 25%,var(--color-gray-100) 50%,var(--color-gray-200) 75% );background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:var(--radius-md)}.skeleton-text{height:1em;margin-bottom:var(--spacing-sm)}.skeleton-text:last-child{width:60%}.skeleton-circle{border-radius:50%}.skeleton-card{height:200px}.table-container{background:var(--bg-surface);border-radius:var(--radius-xl);overflow:hidden;box-shadow:var(--shadow-sm);border:1px solid var(--border-default)}.table{width:100%;border-collapse:collapse}.table thead{background:linear-gradient(135deg,var(--primary),var(--accent));color:white}.table th{padding:var(--spacing-md);text-align:left;font-size:var(--text-xs);font-weight:var(--font-bold);text-transform:uppercase;letter-spacing:0.05em}.table td{padding:var(--spacing-md);font-size:var(--text-sm);color:var(--text-primary);border-bottom:1px solid var(--border-default)}.table tbody tr:hover{background:rgba(212,175,55,0.05)}.table tbody tr:last-child td{border-bottom:none}@media (max-width:767px){.table-responsive thead{display:none}.table-responsive tbody tr{display:block;margin-bottom:var(--spacing-md);border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:var(--spacing-md)}.table-responsive td{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm) 0;border-bottom:1px solid var(--border-default)}.table-responsive td:last-child{border-bottom:none}.table-responsive td::before{content:attr(data-label);font-weight:var(--font-semibold);color:var(--text-secondary)}}.icon-box{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:var(--radius-lg);background:linear-gradient(135deg,rgba(212,175,55,0.1),rgba(255,140,66,0.15));color:var(--primary);flex-shrink:0}.icon-box i{font-size:var(--text-xl)}.icon-box-sm{width:36px;height:36px}.icon-box-sm i{font-size:var(--text-base)}.icon-box-lg{width:64px;height:64px}.icon-box-lg i{font-size:var(--text-2xl)}.icon-box-xl{width:80px;height:80px}.icon-box-xl i{font-size:var(--text-3xl)}.icon-box-outline{background:transparent;border:2px solid var(--primary)}.icon-box-success{background:var(--color-success-light);color:var(--success)}.icon-box-warning{background:var(--color-warning-light);color:var(--warning)}.icon-box-danger{background:var(--color-error-light);color:var(--danger)}.glass{background:rgba(255,255,255,0.7);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,0.3)}.glass-dark{background:rgba(0,0,0,0.3);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,0.1);color:white}.glass-primary{background:linear-gradient( 135deg,rgba(212,175,55,0.1) 0%,rgba(255,140,66,0.1) 100% );backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(212,175,55,0.2)}.shadow-gold{box-shadow:0 4px 20px rgba(212,175,55,0.15),0 8px 40px rgba(255,140,66,0.1)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-3xl);text-align:center}.empty-state i{font-size:4rem;color:var(--color-gray-300);margin-bottom:var(--spacing-lg)}.empty-state h3{font-size:var(--text-xl);color:var(--text-primary);margin-bottom:var(--spacing-sm)}.empty-state p{color:var(--text-secondary);max-width:400px;margin-bottom:var(--spacing-lg)}.divider{display:flex;align-items:center;text-align:center;color:var(--text-tertiary);font-size:var(--text-sm);margin:var(--spacing-lg) 0}.divider::before,.divider::after{content:'';flex:1;height:1px;background:var(--border-default)}.divider span{padding:0 var(--spacing-lg)}.progress{height:8px;background:var(--color-gray-200);border-radius:var(--radius-full);overflow:hidden}.progress-bar{height:100%;background:linear-gradient(90deg,var(--primary),var(--accent));border-radius:var(--radius-full);transition:width var(--transition-slow)}.progress-sm{height:4px}.progress-lg{height:12px}.avatar{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--primary),var(--accent));color:white;font-weight:var(--font-bold);font-size:var(--text-sm);flex-shrink:0;text-transform:uppercase}.avatar-sm{width:32px;height:32px;font-size:var(--text-xs)}.avatar-lg{width:56px;height:56px;font-size:var(--text-lg)}.avatar-xl{width:80px;height:80px;font-size:var(--text-2xl)}.avatar img{width:100%;height:100%;object-fit:cover;border-radius:50%}.avatar-group{display:flex}.avatar-group .avatar{margin-left:-10px;border:2px solid white}.avatar-group .avatar:first-child{margin-left:0}.onboarding-checklist{background:var(--bg-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);overflow:hidden;border:2px solid var(--border-default)}.onboarding-header{background:linear-gradient(135deg,var(--primary) 0%,var(--accent) 100%);color:white;padding:var(--spacing-lg)}.onboarding-header h3{margin:0 0 var(--spacing-xs);font-size:var(--text-lg);color:white}.onboarding-header p{margin:0;font-size:var(--text-sm);opacity:0.9;color:white}.onboarding-progress{display:flex;align-items:center;gap:var(--spacing-md);margin-top:var(--spacing-md)}.onboarding-progress-bar{flex:1;height:8px;background:rgba(255,255,255,0.3);border-radius:var(--radius-full);overflow:hidden}.onboarding-progress-fill{height:100%;background:white;border-radius:var(--radius-full);transition:width 0.5s var(--ease-out)}.onboarding-progress-text{font-size:var(--text-sm);font-weight:var(--font-bold);white-space:nowrap}.onboarding-items{padding:var(--spacing-md)}.onboarding-item{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast)}.onboarding-item:hover{background:rgba(212,175,55,0.05)}.onboarding-item.completed{opacity:0.6}.onboarding-item.completed .onboarding-check{background:var(--success);border-color:var(--success)}.onboarding-item.completed .onboarding-check i{opacity:1}.onboarding-check{width:28px;height:28px;border-radius:50%;border:2px solid var(--border-default);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all var(--transition-fast)}.onboarding-check i{color:white;font-size:var(--text-sm);opacity:0;transition:opacity var(--transition-fast)}.onboarding-item-content{flex:1}.onboarding-item-title{font-weight:var(--font-semibold);color:var(--text-primary);margin-bottom:2px}.onboarding-item-desc{font-size:var(--text-sm);color:var(--text-secondary)}.onboarding-item-action{opacity:0;transition:opacity var(--transition-fast)}.onboarding-item:hover .onboarding-item-action{opacity:1}.tooltip-wrapper{position:relative;display:inline-flex}.tooltip{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%) translateY(10px);background:var(--color-gray-900);color:white;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);font-size:var(--text-xs);white-space:nowrap;opacity:0;visibility:hidden;transition:all var(--transition-fast);z-index:var(--z-tooltip);box-shadow:var(--shadow-lg)}.tooltip::after{content:'';position:absolute;top:100%;left:50%;transform:translateX(-50%);border:6px solid transparent;border-top-color:var(--color-gray-900)}.tooltip-wrapper:hover .tooltip,.tooltip.show{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}.tooltip-right{bottom:auto;left:calc(100% + 8px);top:50%;transform:translateY(-50%) translateX(-10px)}.tooltip-right::after{top:50%;left:auto;right:100%;transform:translateY(-50%);border:6px solid transparent;border-right-color:var(--color-gray-900)}.tooltip-wrapper:hover .tooltip-right{transform:translateY(-50%) translateX(0)}.hotspot{position:relative}.hotspot-dot{position:absolute;top:-4px;right:-4px;width:12px;height:12px;background:var(--accent);border-radius:50%;animation:pulse 2s infinite;cursor:pointer;z-index:var(--z-tooltip)}.hotspot-dot::before{content:'';position:absolute;inset:-4px;border-radius:50%;background:var(--accent);opacity:0.3;animation:pulse 2s infinite 0.2s}.hotspot-content{position:absolute;top:calc(100% + 12px);left:50%;transform:translateX(-50%) scale(0.9);background:var(--bg-surface);border:2px solid var(--primary);border-radius:var(--radius-xl);padding:var(--spacing-lg);width:280px;opacity:0;visibility:hidden;transition:all var(--transition-normal);z-index:var(--z-popover);box-shadow:var(--shadow-xl)}.hotspot-content::before{content:'';position:absolute;bottom:100%;left:50%;transform:translateX(-50%);border:10px solid transparent;border-bottom-color:var(--primary)}.hotspot.active .hotspot-content{opacity:1;visibility:visible;transform:translateX(-50%) scale(1)}.hotspot-content h4{font-size:var(--text-base);margin-bottom:var(--spacing-xs);color:var(--text-primary)}.hotspot-content p{font-size:var(--text-sm);color:var(--text-secondary);margin-bottom:var(--spacing-md)}.steps-indicator{display:flex;align-items:center;justify-content:center;gap:var(--spacing-xs)}.step-dot{width:10px;height:10px;border-radius:50%;background:var(--color-gray-300);transition:all var(--transition-fast)}.step-dot.active{background:var(--primary);transform:scale(1.2)}.step-dot.completed{background:var(--success)}.steps-numbered{display:flex;align-items:center;gap:var(--spacing-lg)}.step-numbered{display:flex;align-items:center;gap:var(--spacing-sm)}.step-number{width:32px;height:32px;border-radius:50%;background:var(--color-gray-200);color:var(--text-secondary);display:flex;align-items:center;justify-content:center;font-weight:var(--font-bold);font-size:var(--text-sm);transition:all var(--transition-fast)}.step-numbered.active .step-number{background:linear-gradient(135deg,var(--primary),var(--accent));color:white}.step-numbered.completed .step-number{background:var(--success);color:white}.step-label{font-size:var(--text-sm);color:var(--text-secondary);transition:color var(--transition-fast)}.step-numbered.active .step-label{color:var(--text-primary);font-weight:var(--font-semibold)}.step-connector{flex:1;height:2px;background:var(--color-gray-200);min-width:40px}.step-connector.completed{background:var(--success)}.floating-action-btn{position:fixed;bottom:var(--spacing-lg);right:var(--spacing-lg);width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,var(--primary),var(--accent));color:white;display:flex;align-items:center;justify-content:center;font-size:var(--text-xl);box-shadow:var(--shadow-primary-lg);cursor:pointer;transition:all var(--transition-fast);z-index:var(--z-fixed)}.floating-action-btn:hover{transform:scale(1.1);box-shadow:0 8px 30px rgba(212,175,55,0.4)}.floating-action-btn:active{transform:scale(0.95)}.floating-action-btn-menu{position:absolute;bottom:calc(100% + var(--spacing-md));right:0;display:flex;flex-direction:column;gap:var(--spacing-sm);opacity:0;visibility:hidden;transform:translateY(10px);transition:all var(--transition-normal)}.floating-action-btn.active .floating-action-btn-menu{opacity:1;visibility:visible;transform:translateY(0)}.floating-action-btn-menu-item{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-surface);border-radius:var(--radius-full);box-shadow:var(--shadow-md);white-space:nowrap;font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--text-primary);cursor:pointer;transition:all var(--transition-fast)}.floating-action-btn-menu-item:hover{background:var(--color-gray-50);transform:translateX(-4px)}.floating-action-btn-menu-item i{width:24px;height:24px;display:flex;align-items:center;justify-content:center;color:var(--primary)}.success-checkmark{width:80px;height:80px;margin:var(--spacing-lg) auto}.success-checkmark .checkmark-circle{stroke:var(--success);stroke-width:3;fill:none;stroke-dasharray:166;stroke-dashoffset:166;stroke-linecap:round;animation:stroke-circle 0.6s cubic-bezier(0.65,0,0.45,1) forwards}.success-checkmark .checkmark{stroke:var(--success);stroke-width:3;fill:none;stroke-dasharray:48;stroke-dashoffset:48;stroke-linecap:round;animation:stroke-check 0.3s cubic-bezier(0.65,0,0.45,1) 0.6s forwards}@keyframes stroke-circle{100%{stroke-dashoffset:0}}@keyframes stroke-check{100%{stroke-dashoffset:0}}.feature-modal{text-align:center}.feature-modal-icon{width:80px;height:80px;margin:0 auto var(--spacing-lg);background:linear-gradient(135deg,rgba(212,175,55,0.1),rgba(255,140,66,0.15));border-radius:var(--radius-2xl);display:flex;align-items:center;justify-content:center;animation:bounceIn 0.6s var(--ease-bounce)}.feature-modal-icon i{font-size:2.5rem;color:var(--primary)}.feature-modal h2{font-size:var(--text-2xl);margin-bottom:var(--spacing-sm)}.feature-modal p{color:var(--text-secondary);margin-bottom:var(--spacing-xl)}.feature-modal-image{border-radius:var(--radius-lg);margin-bottom:var(--spacing-xl);overflow:hidden}.feature-modal-image img{width:100%;height:auto}.quick-actions{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm);background:var(--bg-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-md)}.quick-action{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-md);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast);min-width:80px}.quick-action:hover{background:rgba(212,175,55,0.08)}.quick-action i{font-size:var(--text-xl);color:var(--primary)}.quick-action span{font-size:var(--text-xs);color:var(--text-secondary);font-weight:var(--font-medium)}.notification-badge{position:relative}.notification-badge::after{content:attr(data-count);position:absolute;top:-6px;right:-6px;min-width:18px;height:18px;padding:0 5px;background:var(--danger);color:white;font-size:10px;font-weight:var(--font-bold);border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;animation:bounceIn 0.3s var(--ease-bounce)}.notification-badge[data-count="0"]::after{display:none}.stat-card{background:var(--bg-surface);border-radius:var(--radius-xl);padding:var(--spacing-lg);border:2px solid var(--border-default);transition:all var(--transition-fast)}.stat-card:hover{border-color:var(--primary);box-shadow:var(--shadow-primary)}.stat-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-sm)}.stat-card-icon{width:40px;height:40px;border-radius:var(--radius-lg);background:linear-gradient(135deg,rgba(212,175,55,0.1),rgba(255,140,66,0.15));display:flex;align-items:center;justify-content:center;color:var(--primary)}.stat-card-trend{display:flex;align-items:center;gap:4px;font-size:var(--text-xs);font-weight:var(--font-semibold)}.stat-card-trend.up{color:var(--success)}.stat-card-trend.down{color:var(--danger)}.stat-card-value{font-size:var(--text-3xl);font-weight:var(--font-black);color:var(--text-primary);line-height:1.2}.stat-card-label{font-size:var(--text-sm);color:var(--text-secondary)}.spotlight-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.6);backdrop-filter:blur(8px);z-index:var(--z-modal);display:flex;align-items:flex-start;justify-content:center;padding-top:15vh;opacity:0;visibility:hidden;transition:all var(--transition-normal)}.spotlight-overlay.active{opacity:1;visibility:visible}.spotlight{background:var(--bg-surface);border-radius:var(--radius-2xl);width:100%;max-width:600px;box-shadow:var(--shadow-2xl);overflow:hidden;transform:scale(0.95) translateY(-20px);transition:transform var(--transition-normal)}.spotlight-overlay.active .spotlight{transform:scale(1) translateY(0)}.spotlight-input-wrapper{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-lg);border-bottom:1px solid var(--border-default)}.spotlight-input-wrapper i{color:var(--text-tertiary);font-size:var(--text-xl)}.spotlight-input{flex:1;border:none;background:none;font-size:var(--text-lg);color:var(--text-primary);outline:none}.spotlight-input::placeholder{color:var(--text-tertiary)}.spotlight-results{max-height:400px;overflow-y:auto}.spotlight-group{padding:var(--spacing-sm) var(--spacing-lg)}.spotlight-group-title{font-size:var(--text-xs);font-weight:var(--font-bold);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:0.05em;margin-bottom:var(--spacing-xs)}.spotlight-item{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast)}.spotlight-item:hover,.spotlight-item.selected{background:rgba(212,175,55,0.1)}.spotlight-item-icon{width:36px;height:36px;border-radius:var(--radius-md);background:var(--color-gray-100);display:flex;align-items:center;justify-content:center;color:var(--text-secondary)}.spotlight-item:hover .spotlight-item-icon,.spotlight-item.selected .spotlight-item-icon{background:var(--primary);color:white}.spotlight-item-content{flex:1}.spotlight-item-title{font-weight:var(--font-medium);color:var(--text-primary)}.spotlight-item-desc{font-size:var(--text-xs);color:var(--text-tertiary)}.spotlight-shortcut{display:flex;gap:4px}.spotlight-shortcut kbd{padding:2px 6px;background:var(--color-gray-100);border:1px solid var(--border-default);border-radius:var(--radius-sm);font-size:var(--text-xs);font-family:var(--font-family-mono);color:var(--text-secondary)}.confetti-container{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:var(--z-max);overflow:hidden}.confetti-piece{position:absolute;width:10px;height:10px;animation:confetti 3s ease-out forwards}.tabs-animated{position:relative;display:inline-flex;background:var(--color-gray-100);border-radius:var(--radius-lg);padding:4px}.tabs-animated-indicator{position:absolute;top:4px;left:4px;height:calc(100% - 8px);background:var(--bg-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);transition:all 0.3s var(--ease-bounce)}.tab-animated{position:relative;padding:var(--spacing-sm) var(--spacing-lg);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--text-secondary);background:transparent;border:none;cursor:pointer;z-index:1;transition:color var(--transition-fast)}.tab-animated.active{color:var(--text-primary)}.tab-animated:hover:not(.active){color:var(--text-primary)}.inline-edit{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-md);cursor:text;transition:background var(--transition-fast)}.inline-edit:hover{background:var(--color-gray-50)}.inline-edit-input{border:none;background:none;font:inherit;color:inherit;padding:0;width:100%;outline:none}.inline-edit-icon{opacity:0;color:var(--text-tertiary);font-size:var(--text-sm);transition:opacity var(--transition-fast)}.inline-edit:hover .inline-edit-icon{opacity:1}.inline-edit:focus-within{background:var(--bg-surface);box-shadow:0 0 0 2px var(--primary)}.inline-edit:focus-within .inline-edit-icon{opacity:0}

/* ============================================
   ADDRESS SEARCH COMPONENT
   ============================================ */
.address-search-component{width:100%}
.address-search-wrapper{position:relative}
.address-search-input-wrapper{position:relative;display:flex;align-items:center}
.address-search-icon{position:absolute;left:14px;color:var(--text-tertiary);font-size:14px;pointer-events:none;z-index:1}
.address-search-input{width:100%;padding:12px 40px 12px 40px;font-size:15px;color:var(--text-primary);background:var(--bg-surface);border:2px solid var(--border-default);border-radius:var(--radius-lg);transition:all var(--transition-fast)}
.address-search-input:hover{border-color:var(--border-hover)}
.address-search-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 4px rgba(212,175,55,0.15)}
.address-search-input::placeholder{color:var(--text-tertiary)}
.address-search-loader{position:absolute;right:14px;color:var(--primary)}
.address-suggestions{position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--bg-surface);border:2px solid var(--border-default);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:100;max-height:280px;overflow-y:auto;opacity:0;visibility:hidden;transform:translateY(-8px);transition:all var(--transition-fast)}
.address-suggestions.show{opacity:1;visibility:visible;transform:translateY(0)}
.address-suggestion-item{display:flex;align-items:center;gap:12px;padding:12px 16px;cursor:pointer;transition:background var(--transition-fast);border-bottom:1px solid var(--border-light)}
.address-suggestion-item:last-child{border-bottom:none}
.address-suggestion-item:hover,.address-suggestion-item.active{background:rgba(212,175,55,0.08)}
.address-suggestion-item i{color:var(--primary);font-size:14px;flex-shrink:0}
.address-suggestion-item span{font-size:14px;color:var(--text-primary);line-height:1.4}
.address-suggestion-item.loading,.address-suggestion-item.no-results{cursor:default;color:var(--text-secondary);justify-content:center}
.address-suggestion-item.loading:hover,.address-suggestion-item.no-results:hover{background:transparent}
.address-suggestion-item.loading i{animation:spin 1s linear infinite}
.address-selected{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;background:linear-gradient(135deg,rgba(212,175,55,0.08) 0%,rgba(255,140,66,0.05) 100%);border:2px solid rgba(212,175,55,0.3);border-radius:var(--radius-lg)}
.address-selected-content{display:flex;align-items:center;gap:12px;flex:1;min-width:0}
.address-selected-icon{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--primary),var(--accent));color:white;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.address-selected-icon i{font-size:14px}
.address-selected-text{min-width:0}
.address-selected-line1{display:block;font-weight:600;color:var(--text-primary);font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.address-selected-line2{display:block;font-size:13px;color:var(--text-secondary);margin-top:2px}
.address-clear-btn{width:32px;height:32px;border-radius:50%;background:rgba(239,68,68,0.1);color:var(--danger);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--transition-fast);border:none;flex-shrink:0}
.address-clear-btn:hover{background:var(--danger);color:white}
.address-map-container{margin-top:12px;border-radius:var(--radius-lg);overflow:hidden;border:2px solid var(--border-default)}
.address-map{width:100%;border-radius:var(--radius-lg) var(--radius-lg) 0 0}
.address-map-hint{display:flex;align-items:center;justify-content:center;gap:8px;padding:8px 12px;background:var(--bg-secondary);font-size:12px;color:var(--text-secondary)}
.address-map-hint i{color:var(--primary)}
@media (max-width:575px){.address-search-input{font-size:16px;padding:14px 40px}.address-selected{flex-direction:column;align-items:flex-start;gap:8px}.address-clear-btn{align-self:flex-end}}

/* ============================================
   UNIFIED MODAL SYSTEM - Tadam 2026
   Classes CSS unifiees pour toutes les modales
   IMPORTANT: Tous les modals doivent etre en position
   fixed au centre de l'ecran, independamment du parent
   ============================================ */

/* REGLE UNIVERSELLE - Force TOUS les modals en position fixed */
/* Note: [class*="-modal"]:not([class*="-modal-"]) exclut les enfants
   comme .tadam-modal-content, .tadam-modal-header, etc. */
.modal,
[id$="Modal"],
[class*="-modal"]:not([class*="-modal-"]),
.fmd-attestation-preview-modal,
.confirm-modal,
.tadam-modal {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  width: 100vw !important;
  height: 100vh !important;
  z-index: 9999 !important;
  display: none;
  align-items: center;
  justify-content: center;
  background: rgba(15, 23, 42, 0.7);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  padding: 20px;
  margin: 0 !important;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
  /* Retirer de tout flux parent */
  transform: none !important;
}

/* Etat actif pour tous les modals */
.modal.active,
[id$="Modal"].active,
[class*="-modal"].active:not([class*="-modal-"]),
.fmd-attestation-preview-modal[style*="display: flex"],
.tadam-modal.active {
  display: flex !important;
  opacity: 1 !important;
  visibility: visible !important;
}

/* Contenu du modal - toujours centre */
.modal > .modal-content,
[id$="Modal"] > .modal-content,
.modal > div:first-child:not(.modal-content),
.fmd-attestation-preview-content,
.tadam-modal-content {
  position: relative !important;
  margin: auto !important;
  max-width: min(550px, calc(100vw - 40px));
  max-height: calc(100vh - 40px);
  background: var(--bg-light);
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 25px 80px -12px rgba(0, 0, 0, 0.35),
              0 10px 30px -10px rgba(0, 0, 0, 0.2);
}

/* Overlay/backdrop de la modale */
.tadam-modal {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: none;
  align-items: center;
  justify-content: center;
  background: rgba(15, 23, 42, 0.85);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  padding: 20px;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}

.tadam-modal.active {
  display: flex !important;
  opacity: 1 !important;
  visibility: visible !important;
}

/* Contenu de la modale - flottant et independant */
.tadam-modal-content {
  position: relative;
  background: var(--bg-light);
  border-radius: 20px;
  width: 100%;
  height: auto !important;
  max-height: calc(100vh - 40px);
  overflow: hidden;
  box-shadow: 0 25px 80px -12px rgba(0, 0, 0, 0.35),
              0 10px 30px -10px rgba(0, 0, 0, 0.2);
  transform: scale(0.9) translateY(30px);
  transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
  display: flex;
  flex-direction: column;
  opacity: 1;
  visibility: visible;
  padding: 0;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

.tadam-modal.active .tadam-modal-content {
  transform: scale(1) translateY(0);
}

/* Tailles de modales */
.tadam-modal-content.modal-xs { max-width: 360px; }
.tadam-modal-content.modal-sm { max-width: 420px; }
.tadam-modal-content.modal-md { max-width: 550px; }
.tadam-modal-content.modal-lg { max-width: 700px; }
.tadam-modal-content.modal-xl { max-width: 900px; }
.tadam-modal-content.modal-full { max-width: calc(100vw - 40px); }

/* Header de la modale */
.tadam-modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 24px;
  border-bottom: 1px solid var(--gray-200);
  background: linear-gradient(135deg, rgba(212, 175, 55, 0.05), rgba(255, 140, 66, 0.03));
  flex-shrink: 0;
}

.tadam-modal-title {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--text-primary);
  margin: 0;
}

.tadam-modal-title i {
  color: #D4AF37;
  font-size: 1.1em;
}

/* Bouton fermer */
.tadam-modal-close {
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: none;
  background: var(--bg-light-tertiary);
  border-radius: 50%;
  color: var(--text-secondary);
  cursor: pointer;
  transition: all 0.2s ease;
  flex-shrink: 0;
}

.tadam-modal-close:hover {
  background: var(--gray-200);
  color: var(--text-primary);
  transform: rotate(90deg);
}

.tadam-modal-close:active {
  transform: rotate(90deg) scale(0.95);
}

/* Corps de la modale */
.tadam-modal-body {
  padding: 24px;
  overflow-y: auto;
  flex: 1;
  min-height: 0;
}

/* Footer de la modale */
.tadam-modal-footer {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
  padding: 16px 24px;
  border-top: 1px solid var(--gray-200);
  background: var(--bg-light-secondary);
  flex-shrink: 0;
}

.tadam-modal-footer.footer-spread {
  justify-content: space-between;
}

.tadam-modal-footer.footer-center {
  justify-content: center;
}

/* Scrollbar personnalisee pour le body */
.tadam-modal-body::-webkit-scrollbar {
  width: 6px;
}

.tadam-modal-body::-webkit-scrollbar-track {
  background: #f1f5f9;
  border-radius: 3px;
}

.tadam-modal-body::-webkit-scrollbar-thumb {
  background: #cbd5e1;
  border-radius: 3px;
}

.tadam-modal-body::-webkit-scrollbar-thumb:hover {
  background: #94a3b8;
}

/* Animation d'entree */
@keyframes modalSlideIn {
  from {
    opacity: 0;
    transform: scale(0.9) translateY(30px);
  }
  to {
    opacity: 1;
    transform: scale(1) translateY(0);
  }
}

@keyframes modalFadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

/* Responsive */
@media (max-width: 640px) {
  .tadam-modal {
    padding: 10px;
  }

  .tadam-modal-content {
    max-height: calc(100vh - 20px);
    border-radius: 16px;
  }

  .tadam-modal-content.modal-xs,
  .tadam-modal-content.modal-sm,
  .tadam-modal-content.modal-md {
    max-width: 100%;
  }

  .tadam-modal-header {
    padding: 16px 20px;
  }

  .tadam-modal-title {
    font-size: 1.1rem;
  }

  .tadam-modal-body {
    padding: 20px;
  }

  .tadam-modal-footer {
    padding: 14px 20px;
    flex-wrap: wrap;
  }

  .tadam-modal-footer .btn {
    flex: 1;
    min-width: 120px;
  }
}

/* Dark mode support */
@media (prefers-color-scheme: dark) {
  .tadam-modal-content {
    background: #1e293b;
    box-shadow: 0 25px 80px -12px rgba(0, 0, 0, 0.6);
  }

  .tadam-modal-header {
    background: linear-gradient(135deg, rgba(212, 175, 55, 0.1), rgba(255, 140, 66, 0.05));
    border-color: #334155;
  }

  .tadam-modal-title {
    color: #f1f5f9;
  }

  .tadam-modal-close {
    background: #334155;
    color: #94a3b8;
  }

  .tadam-modal-close:hover {
    background: #475569;
    color: #f1f5f9;
  }

  .tadam-modal-footer {
    background: #0f172a;
    border-color: #334155;
  }

  .tadam-modal-body::-webkit-scrollbar-track {
    background: #1e293b;
  }

  .tadam-modal-body::-webkit-scrollbar-thumb {
    background: #475569;
  }
}

/* ============================================
   TADAM MODAL - FORM ELEMENTS
   Styles pour les formulaires dans les modales
   ============================================ */

.tadam-form-group {
  margin-bottom: 20px;
}

.tadam-form-group:last-child {
  margin-bottom: 0;
}

.tadam-form-group label {
  display: block;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--text-primary);
  margin-bottom: 8px;
}

.tadam-form-group label .required {
  color: #ef4444;
  margin-left: 2px;
}

.tadam-input,
.tadam-select,
.tadam-textarea {
  width: 100%;
  padding: 12px 16px;
  font-size: 0.9375rem;
  color: var(--text-primary);
  background: var(--bg-light);
  border: 2px solid var(--gray-200);
  border-radius: 10px;
  transition: all 0.2s ease;
  outline: none;
}

.tadam-input:hover,
.tadam-select:hover,
.tadam-textarea:hover {
  border-color: #cbd5e1;
}

.tadam-input:focus,
.tadam-select:focus,
.tadam-textarea:focus {
  border-color: #D4AF37;
  box-shadow: 0 0 0 4px rgba(212, 175, 55, 0.15);
}

.tadam-input::placeholder,
.tadam-textarea::placeholder {
  color: var(--text-muted);
}

.tadam-select {
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%2394a3b8'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M19 9l-7 7-7-7'%3E%3C/path%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
  background-size: 18px;
  padding-right: 44px;
  cursor: pointer;
}

.tadam-textarea {
  min-height: 100px;
  resize: vertical;
  line-height: 1.5;
}

/* Input avec icone */
.tadam-input-icon {
  position: relative;
}

.tadam-input-icon i {
  position: absolute;
  left: 14px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--text-muted);
  pointer-events: none;
}

.tadam-input-icon .tadam-input {
  padding-left: 44px;
}

/* Etat d'erreur */
.tadam-input.error,
.tadam-select.error,
.tadam-textarea.error {
  border-color: #ef4444;
}

.tadam-input.error:focus,
.tadam-select.error:focus,
.tadam-textarea.error:focus {
  box-shadow: 0 0 0 4px rgba(239, 68, 68, 0.15);
}

.tadam-form-error {
  font-size: 0.8125rem;
  color: #ef4444;
  margin-top: 6px;
}

/* Help text */
.tadam-form-help {
  font-size: 0.8125rem;
  color: var(--text-secondary);
  margin-top: 6px;
}

/* Checkbox et radio */
.tadam-checkbox,
.tadam-radio {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  cursor: pointer;
}

.tadam-checkbox input,
.tadam-radio input {
  width: 18px;
  height: 18px;
  margin-top: 2px;
  accent-color: #D4AF37;
  cursor: pointer;
}

.tadam-checkbox span,
.tadam-radio span {
  font-size: 0.875rem;
  color: var(--text-secondary);
  line-height: 1.5;
}

/* Empty state */
.tadam-empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 40px 20px;
  text-align: center;
}

.tadam-empty-state i {
  font-size: 3rem;
  color: #cbd5e1;
  margin-bottom: 16px;
}

.tadam-empty-state h4 {
  font-size: 1.125rem;
  font-weight: 600;
  color: var(--text-primary);
  margin: 0 0 8px;
}

.tadam-empty-state p {
  font-size: 0.875rem;
  color: var(--text-secondary);
  margin: 0;
  max-width: 300px;
}

/* Document/item card dans une modale */
.tadam-item-card {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 16px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  margin-bottom: 12px;
  transition: all 0.2s ease;
}

.tadam-item-card:last-child {
  margin-bottom: 0;
}

.tadam-item-card:hover {
  background: #f1f5f9;
  border-color: #D4AF37;
}

.tadam-item-card-icon {
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, rgba(212, 175, 55, 0.1), rgba(255, 140, 66, 0.1));
  border-radius: 10px;
  flex-shrink: 0;
}

.tadam-item-card-icon i {
  font-size: 1.25rem;
  color: #D4AF37;
}

.tadam-item-card-content {
  flex: 1;
  min-width: 0;
}

.tadam-item-card-title {
  font-size: 0.9375rem;
  font-weight: 600;
  color: #1e293b;
  margin-bottom: 4px;
}

.tadam-item-card-subtitle {
  font-size: 0.8125rem;
  color: var(--text-secondary);
}

.tadam-item-card-actions {
  display: flex;
  gap: 8px;
  flex-shrink: 0;
}

/* Status badges dans modales */
.tadam-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 12px;
  font-size: 0.75rem;
  font-weight: 600;
  border-radius: 20px;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.tadam-badge-pending {
  background: rgba(245, 158, 11, 0.15);
  color: #d97706;
}

.tadam-badge-verified,
.tadam-badge-success {
  background: rgba(16, 185, 129, 0.15);
  color: #059669;
}

.tadam-badge-rejected,
.tadam-badge-error {
  background: rgba(239, 68, 68, 0.15);
  color: #dc2626;
}

.tadam-badge-info {
  background: rgba(59, 130, 246, 0.15);
  color: #2563eb;
}

/* Dark mode pour les form elements */
@media (prefers-color-scheme: dark) {
  .tadam-form-group label {
    color: #e2e8f0;
  }

  .tadam-input,
  .tadam-select,
  .tadam-textarea {
    background: #1e293b;
    border-color: #334155;
    color: #f1f5f9;
  }

  .tadam-input:hover,
  .tadam-select:hover,
  .tadam-textarea:hover {
    border-color: #475569;
  }

  .tadam-input::placeholder,
  .tadam-textarea::placeholder {
    color: #64748b;
  }

  .tadam-empty-state i {
    color: #475569;
  }

  .tadam-empty-state h4 {
    color: #e2e8f0;
  }

  .tadam-empty-state p {
    color: #94a3b8;
  }

  .tadam-item-card {
    background: #0f172a;
    border-color: #334155;
  }

  .tadam-item-card:hover {
    background: #1e293b;
  }

  .tadam-item-card-title {
    color: #f1f5f9;
  }

  .tadam-item-card-subtitle {
    color: #94a3b8;
  }
}
