.ks-modal-overlay{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,0.45);opacity:0;transition:opacity 0.2s ease}.ks-modal-overlay--visible{opacity:1}.ks-modal{background:var(--knack-surface);border:1px solid var(--knack-border-soft);border-radius:var(--knack-radius-lg);box-shadow:var(--knack-shadow-lg,0 20px 60px rgba(0,0,0,0.15));max-width:420px;width:calc(100% - 32px);padding:var(--knack-space-lg);transform:translateY(8px);transition:transform 0.2s ease}.ks-modal-overlay--visible .ks-modal{transform:translateY(0)}.ks-modal-title{font-family:var(--knack-font-heading);font-size:1.0625rem;font-weight:700;color:var(--knack-text);margin-bottom:var(--knack-space-sm)}.ks-modal-body{font-size:0.875rem;color:var(--knack-text-secondary);line-height:1.55;margin-bottom:var(--knack-space-lg)}.ks-modal-actions{display:flex;justify-content:flex-end;gap:var(--knack-space-sm)}.ks-modal--danger .ks-modal-confirm{background:var(--knack-danger);border-color:var(--knack-danger);color:#fff}.ks-modal--danger .ks-modal-confirm:hover{opacity:0.9}.ks-modal .ks-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:40px;padding:9px 16px;border-radius:999px;border:1px solid transparent;background:var(--knack-accent,#60335e);color:var(--knack-btn-text,#fff);font-family:inherit;font-size:14px;font-weight:600;line-height:1;cursor:pointer;transition:opacity 0.15s ease}.ks-modal .ks-btn:hover{opacity:0.9}.ks-modal .ks-btn--outline{background:none;border-color:var(--knack-border,#e0e0e0);color:var(--knack-text,#111)}.ks-modal .ks-btn--outline:hover{background:var(--knack-surface-hover,rgba(0,0,0,0.05))}.ks-modal .ks-btn:focus-visible{outline:2px solid var(--knack-focus-ring,var(--knack-link));outline-offset:2px}@media (max-width:768px){.ks-modal .ks-btn{min-height:44px;padding:11px 18px}}