.modal-overlay{position:fixed;inset:0;background:var(--color-surface-overlay);display:grid;place-items:center;z-index:var(--z-modal);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fadeIn var(--transition-fast) ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.modal{background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-xl);padding:var(--spacing-lg);min-width:0;max-width:min(520px,90vw);width:100%;max-height:85vh;overflow-y:auto;box-shadow:var(--shadow-xl);animation:slideUp var(--transition-base) ease}.modal h3{margin-bottom:var(--space-5);font-size:var(--font-size-lg)}.modal label{display:block;margin-bottom:var(--space-3);font-size:var(--text-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.modal label.checkbox-label{display:flex}.modal label.checkbox-label input[type=checkbox]{width:auto;margin-top:0}.modal label .required-indicator{color:var(--color-danger);margin-left:var(--spacing-xs)}.modal input,.modal select,.modal textarea{display:block;width:100%;margin-top:var(--spacing-xs);padding:var(--spacing-sm) var(--space-3);border:var(--border-width) solid var(--color-input-border);border-radius:var(--radius-md);font-size:var(--text-sm);font-family:inherit;background:var(--color-input-bg);color:var(--color-text);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.modal input:focus,.modal select:focus,.modal textarea:focus{border-color:var(--color-input-focus);box-shadow:0 0 0 var(--ring-width) var(--ring-color);outline:none}.modal input[aria-invalid=true],.modal select[aria-invalid=true],.modal textarea[aria-invalid=true]{border-color:var(--color-danger)}.modal input[aria-invalid=true]:focus,.modal textarea[aria-invalid=true]:focus{box-shadow:0 0 0 var(--ring-width) var(--color-error-bg)}.modal textarea{min-height:80px;resize:vertical}.checkbox-field{display:flex;align-items:center;gap:var(--spacing-sm);margin-top:var(--spacing-xs);min-height:44px}.checkbox-field input[type=checkbox]{width:18px;height:18px;accent-color:var(--color-primary);margin:0}.field-error{color:var(--color-danger)}.field-error,.field-help{display:block;font-size:var(--font-size-xs);margin-top:var(--spacing-xs)}.field-help{color:var(--color-text-muted)}.form-actions{display:flex;justify-content:flex-end;gap:var(--spacing-sm);margin-top:var(--space-5)}.form-actions button{padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);border:var(--border-width) solid var(--color-border);background:var(--color-surface);color:var(--color-text);cursor:pointer;font-size:var(--text-sm);font-weight:var(--font-weight-medium);transition:all var(--transition-fast)}.form-actions button:hover{border-color:var(--color-border-hover)}.form-actions button[type=submit]{background:var(--color-primary);color:var(--color-text-inverse);border-color:var(--color-primary)}.form-actions button[type=submit]:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.form-actions button[type=submit]:disabled{opacity:.6;cursor:default}.confirm-dialog{max-width:420px}.confirm-dialog__message{color:var(--color-text-secondary);margin:var(--space-4) 0}.confirm-btn.danger{background:var(--color-danger);color:var(--color-text-inverse);border-color:var(--color-danger)}.confirm-btn.danger:hover{background:var(--color-danger-hover);border-color:var(--color-danger-hover)}.confirm-btn.primary{background:var(--color-primary);color:var(--color-text-inverse);border-color:var(--color-primary)}.confirm-btn.primary:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.error{display:flex;align-items:flex-start;gap:var(--spacing-sm);background:var(--color-danger-light);color:var(--color-danger-text);padding:var(--spacing-sm) var(--space-3);border-radius:var(--radius-md);border:var(--border-width) solid color-mix(in srgb,var(--color-danger) 35%,transparent);border-left:3px solid var(--color-danger);margin-bottom:var(--space-3);font-size:var(--text-sm);line-height:var(--line-height-normal);text-align:left}.error:before{content:"!";flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:var(--radius-full);background:var(--color-danger);color:var(--color-text-inverse);font-size:.7rem;font-weight:var(--font-weight-bold);line-height:1}[data-theme=dark] .error{border-color:var(--color-error-bg)}.toast-container{position:fixed;top:calc(var(--header-height) + var(--space-3));right:var(--spacing-md);z-index:var(--z-toast);display:flex;flex-direction:column;gap:var(--spacing-sm);pointer-events:none;max-width:calc(100vw - var(--spacing-lg))}.toast{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--spacing-md);border-radius:var(--radius-lg);background:var(--color-surface);border:var(--border-width) solid var(--color-border);box-shadow:var(--shadow-lg);font-size:var(--text-sm);min-width:280px;max-width:420px;pointer-events:all;animation:toastIn var(--transition-base) ease}.toast.toast-exit{animation:toastOut var(--transition-fast) ease forwards}@keyframes toastIn{0%{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0)}}@keyframes toastOut{0%{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(20px)}}.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-info{border-left:3px solid var(--color-primary)}.toast-message{flex:1 1}.toast-close{background:none;border:none;color:var(--color-text-muted);cursor:pointer;padding:var(--spacing-xs);font-size:var(--font-size-md);line-height:1}.toast-close:hover{background:var(--color-bg-hover)}.toast-close:focus-visible{outline:2px solid var(--color-accent-bg);outline-offset:2px}.btn-primary{background:var(--color-accent-primary);color:var(--color-accent-text);border:var(--border-width) solid var(--color-accent-primary);border-radius:var(--radius-md);padding:var(--space-2) var(--space-4);font-size:var(--text-sm);font-weight:var(--font-medium);cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast)}.btn-primary:hover:not(:disabled){background:var(--color-accent-hover);border-color:var(--color-accent-hover)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{background:var(--color-bg-secondary);color:var(--color-text-primary);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-2) var(--space-4);font-size:var(--text-sm);font-weight:var(--font-medium);cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast)}.btn-secondary:hover:not(:disabled){background:var(--color-bg-hover);border-color:var(--color-border-hover)}.btn-secondary:disabled{opacity:.6;cursor:not-allowed}.btn-primary:focus-visible,.btn-secondary:focus-visible{outline:none;box-shadow:var(--shadow-focus)}