.modal-overlay{backdrop-filter:blur(4px);z-index:200;padding:var(--space-4);background:rgba(0,0,0,.4);justify-content:center;align-items:center;animation:.15s fadeIn;display:flex;position:fixed;inset:0}.modal{background:var(--color-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);width:100%;max-width:540px;max-height:85vh;animation:.2s slideUp;overflow-y:auto}.modal-header{padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--color-border-light);justify-content:space-between;align-items:center;display:flex}.modal-header h2{font-size:var(--text-lg);color:var(--color-text);font-weight:650}.modal-close{border-radius:var(--radius);cursor:pointer;width:32px;height:32px;color:var(--color-text-tertiary);transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;font-size:18px;display:flex}.modal-close:hover{background:var(--color-surface-hover);color:var(--color-text)}.modal-expand{border-radius:var(--radius);cursor:pointer;width:32px;height:32px;color:var(--color-text-tertiary);transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;font-size:16px;display:flex}.modal-expand:hover{background:var(--color-surface-hover);color:var(--color-text)}.modal-header-actions{align-items:center;gap:var(--space-1);flex-shrink:0;display:flex}.modal-body{padding:var(--space-6)}.modal-body-capped{max-height:70vh;overflow-y:auto}:is(.modal-full,.modal-expanded) .modal-body-capped{max-height:none}.modal-footer{justify-content:flex-end;gap:var(--space-3);padding:var(--space-4) var(--space-6);border-top:1px solid var(--color-border-light);display:flex}.modal-alert{overflow:hidden}.modal-alert.danger{border-top:3px solid var(--color-danger)}.modal-alert.warning{border-top:3px solid var(--color-warning)}.modal-alert-body{gap:var(--space-4);padding:var(--space-6);align-items:flex-start;display:flex}.modal-alert-icon{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:20px;display:flex}.modal-alert.info .modal-alert-icon{background:var(--color-info-bg);color:var(--color-info)}.modal-alert.warning .modal-alert-icon{background:var(--color-warning-bg);color:var(--color-warning)}.modal-alert.danger .modal-alert-icon{background:var(--color-danger-bg);color:var(--color-danger)}.modal-alert-title{font-size:var(--text-lg);color:var(--color-text);margin-bottom:var(--space-2);font-weight:650}.modal-alert-message{font-size:var(--text-sm);color:var(--color-text-secondary);white-space:pre-line;word-break:break-word;line-height:1.7}.modal-alert-list{margin:var(--space-2) 0 0;padding-left:var(--space-4);font-size:var(--text-sm);color:var(--color-text-secondary);line-height:1.7}.modal-sm{max-width:360px}.modal-md{max-width:560px}.modal-lg{max-width:720px}.modal-xl{width:95vw;max-width:800px}.modal-full,.modal-expanded{border-radius:var(--radius-lg);flex-direction:column;max-width:95vw;max-height:95vh;display:flex;overflow:hidden}.modal-full .modal-header,.modal-expanded .modal-header{flex:none}.modal-full .modal-body,.modal-expanded .modal-body{flex:auto;overflow-y:auto}:is(.modal-full,.modal-expanded) .modal-body:has(>.form-group):not(.modal-body-plain){column-gap:var(--space-5);grid-template-columns:1fr;align-content:start;align-items:start;row-gap:0;display:grid}:is(.modal-full,.modal-expanded) .modal-body:has(>.form-group):not(.modal-body-plain)>*{grid-column:1/-1;min-width:0}:is(.modal-full,.modal-expanded) .modal-body:has(>.form-group):not(.modal-body-plain)>.form-group:has(>input.form-input){grid-column:auto}:is(.modal-full,.modal-expanded) .modal-body:has(>.form-group):not(.modal-body-plain)>.form-group:has(>select.form-select){grid-column:auto}:is(.modal-full,.modal-expanded) .modal-body:has(>.form-group):not(.modal-body-plain)>.form-group:has(>.select-wrap){grid-column:auto}:is(.modal-full,.modal-expanded) .modal-body:has(>.form-group):not(.modal-body-plain)>.form-row{grid-column:auto}:is(.modal-full,.modal-expanded) .modal-body:has(>.form-group):not(.modal-body-plain)>.form-grid-2col{grid-column:auto}@media (width>=900px){:is(.modal-full,.modal-expanded) .modal-body:has(>.form-group):not(.modal-body-plain){grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=1500px){:is(.modal-full,.modal-expanded) .modal-body:has(>.form-group):not(.modal-body-plain){grid-template-columns:repeat(3,minmax(0,1fr))}}.wizard-steps{padding:var(--space-6) var(--space-6) var(--space-4);justify-content:center;align-items:center;gap:0;display:flex}.wizard-step{align-items:center;gap:0;display:flex}.wizard-step-num{width:32px;height:32px;font-size:var(--text-sm);background:var(--color-border);color:var(--color-text-tertiary);transition:all var(--transition);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:650;display:flex}.wizard-step.active .wizard-step-num{background:var(--color-primary);color:var(--color-white)}.wizard-step.done .wizard-step-num{background:var(--color-success);color:var(--color-white)}.wizard-step-label{margin-left:var(--space-2);font-size:var(--text-sm);color:var(--color-text-tertiary);white-space:nowrap;font-weight:500}.wizard-step.active .wizard-step-label{color:var(--color-text);font-weight:600}.wizard-step.done .wizard-step-label{color:var(--color-text-secondary)}.wizard-step-line{background:var(--color-border);width:40px;height:1.5px;margin:0 var(--space-2);flex-shrink:0}.wizard-step.done+.wizard-step-line,.wizard-step-line.done{background:var(--color-success)}.toast-container{z-index:300;gap:var(--space-2);flex-direction:column;display:flex;position:fixed;top:20px;right:20px}.toast{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);font-size:var(--text-sm);align-items:center;gap:10px;max-width:380px;padding:12px 16px;animation:.25s slideIn;display:flex}.toast-success{border-left:3px solid var(--color-success)}.toast-error{border-left:3px solid var(--color-danger)}.toast-warning{border-left:3px solid var(--color-warning)}.toast .toast-icon{flex-shrink:0;font-size:16px}.toast .toast-msg{flex:1}.toast-info{border-left:3px solid var(--color-info)}.toast-info .toast-icon{color:var(--color-info)}.toast-dismiss{cursor:pointer;color:var(--color-text-tertiary);transition:all var(--transition-fast);background:0 0;border:none;border-radius:3px;flex-shrink:0;padding:2px;font-size:14px;line-height:1}.toast-dismiss:hover{color:var(--color-text);background:var(--color-surface-hover)}.toast.removing{animation:.2s forwards toastOut}