.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;z-index:9999;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:white;border-radius:16px;box-shadow:0 20px 60px rgba(0,0,0,.3);max-width:500px;width:90%;max-height:90vh;overflow-y:auto;animation:slideUp .3s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.5rem 2rem;border-bottom:1px solid #e2e8f0}.modal-header h2{margin:0;font-size:1.5rem;color:#1e293b;font-weight:600}.modal-close{background:none;border:none;font-size:2rem;color:#94a3b8;cursor:pointer;padding:0;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:8px;transition:all .2s ease;line-height:1}.modal-close:hover{background:#f1f5f9;color:#64748b}.modal-body{padding:2rem}.form-group{margin-bottom:1.5rem}.form-group:last-child{margin-bottom:0}.form-group label{display:block;margin-bottom:.5rem;font-weight:500;color:#334155;font-size:.95rem}.form-group label .required{color:#ef4444;margin-left:.25rem}.form-group input[type=text],.form-group textarea{width:100%;padding:.75rem 1rem;border:2px solid #e2e8f0;border-radius:8px;font-size:.95rem;font-family:inherit;transition:all .2s ease;box-sizing:border-box}.form-group input[type=text]:focus,.form-group textarea:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px rgba(102,126,234,.1)}.form-group input[type=text]:disabled,.form-group textarea:disabled{background:#f1f5f9;cursor:not-allowed;opacity:.6}.form-group textarea{resize:vertical;min-height:80px}.form-hint{display:block;margin-top:.5rem;font-size:.85rem;color:#64748b}.checkbox-group{margin-bottom:1.5rem}.checkbox-label{display:flex;align-items:flex-start;gap:.75rem;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.checkbox-label input[type=checkbox]{margin-top:.25rem;width:18px;height:18px;cursor:pointer;flex-shrink:0}.checkbox-label input[type=checkbox]:disabled{cursor:not-allowed;opacity:.5}.checkbox-label span{font-weight:500;color:#334155}.error-banner{padding:1rem;background:#fee2e2;border:1px solid #fecaca;border-radius:8px;color:#991b1b;margin-bottom:1.5rem;font-size:.9rem;gap:.5rem}.error-banner,.modal-footer{display:flex;align-items:center}.modal-footer{justify-content:flex-end;gap:1rem;padding:1.5rem 2rem;border-top:1px solid #e2e8f0}.btn-primary,.btn-secondary{padding:.75rem 1.5rem;border-radius:8px;font-size:.95rem;font-weight:500;cursor:pointer;transition:all .2s ease;border:none;display:inline-flex;align-items:center;gap:.5rem}.btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:white}.btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px rgba(102,126,234,.4)}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:white;color:#475569;border:2px solid #e2e8f0}.btn-secondary:hover:not(:disabled){background:#f8fafc;border-color:#cbd5e0}.btn-secondary:disabled{opacity:.5;cursor:not-allowed}@media (max-width:768px){.modal-overlay{align-items:flex-start;padding:0}.modal-content{width:100%!important;max-width:100%!important;max-height:100vh!important;height:100vh!important;border-radius:0!important;margin:0!important}.modal-header{padding:.75rem 1rem!important}.modal-header h2{font-size:1.1rem!important;line-height:1.3!important}.modal-close{font-size:1.5rem!important;width:32px!important;height:32px!important}.modal-body{padding:1rem!important;font-size:.875rem!important}.modal-footer{padding:.75rem 1rem!important;flex-direction:column-reverse;gap:.5rem!important}.modal-footer .btn-primary,.modal-footer .btn-secondary{width:100%;justify-content:center;padding:.625rem 1rem!important;font-size:.875rem!important}.form-group{margin-bottom:1rem!important}.form-group label{font-size:.875rem!important;margin-bottom:.375rem!important}.form-group input[type=text],.form-group textarea{padding:.625rem .75rem!important;font-size:.875rem!important}.form-hint{font-size:.75rem!important}.error-banner{padding:.75rem!important;font-size:.8125rem!important}}.modal-content::-webkit-scrollbar{width:8px}.modal-content::-webkit-scrollbar-track{background:#f1f5f9}.modal-content::-webkit-scrollbar-thumb{background:#cbd5e0;border-radius:4px}.modal-content::-webkit-scrollbar-thumb:hover{background:#94a3b8}