.modal-backdrop{position:fixed;inset:0;background:rgba(3,4,6,.7);backdrop-filter:blur(3px);display:none;align-items:center;justify-content:center;z-index:500;padding:20px;}
.modal-backdrop.show{display:flex;}
.modal-backdrop.closing .modal{animation:modalOut .15s ease forwards;}
.modal-backdrop.closing{animation:backdropOut .15s ease forwards;}
.modal{width:100%;max-width:420px;background:var(--bg2);border:1px solid var(--border2);border-radius:16px;padding:26px 24px 22px;animation:modalIn .18s cubic-bezier(.2,.8,.3,1);box-shadow:0 24px 60px rgba(0,0,0,.5);}
.modal.modal-form{max-width:440px;}
@keyframes modalIn{from{opacity:0;transform:translateY(10px) scale(.98);}to{opacity:1;transform:translateY(0) scale(1);}}
@keyframes modalOut{from{opacity:1;transform:translateY(0) scale(1);}to{opacity:0;transform:translateY(6px) scale(.98);}}
@keyframes backdropOut{from{opacity:1;}to{opacity:0;}}
.modal-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px;}
.modal-icon{width:42px;height:42px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.modal-icon.danger{background:var(--red-soft);color:var(--red);}
.modal-icon.neutral{background:var(--blue-soft);color:var(--blue);}
.modal-icon.success{background:var(--green-soft);color:var(--green);}
.modal-close{background:none;border:none;color:var(--dim);cursor:pointer;padding:6px;border-radius:8px;display:flex;align-items:center;justify-content:center;transition:all .15s;flex-shrink:0;margin:-6px -6px 0 0;}
.modal-close:hover{color:var(--white);background:var(--bg4);}
.modal h2{font-size:16.5px;color:var(--white);font-weight:700;letter-spacing:-.1px;margin-bottom:8px;}
.modal .modal-body{font-size:13.5px;color:var(--muted);line-height:1.6;margin-bottom:22px;}
.modal .modal-body strong{color:var(--text);font-weight:600;}
.modal-highlight{background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:12px 14px;margin-bottom:20px;display:flex;align-items:center;gap:12px;}
.modal-highlight .hl-icon{width:32px;height:32px;border-radius:9px;background:var(--bg3);display:flex;align-items:center;justify-content:center;color:var(--muted);flex-shrink:0;}
.modal-highlight .hl-name{font-size:13px;color:var(--white);font-weight:600;}
.modal-highlight .hl-sub{font-size:11.5px;color:var(--dim);margin-top:1px;}
.modal-actions{display:flex;gap:10px;justify-content:flex-end;}
.modal-actions .btn{padding:10px 16px;font-size:13px;}
.btn-cancel{background:var(--bg4);color:var(--text);border:1px solid var(--border2);}
.btn-cancel:hover{border-color:var(--border3);color:var(--white);}
.btn-confirm-danger{background:#8f3540;color:#fff;border:none;border-radius:9px;padding:10px 16px;font-size:13px;font-weight:700;cursor:pointer;font-family:var(--font-body);transition:all .15s;display:inline-flex;align-items:center;gap:7px;}
.btn-confirm-danger:hover{background:#a53d49;}
.btn-confirm-neutral{background:#0f7a5a;color:#fff;border:none;border-radius:9px;padding:10px 16px;font-size:13px;font-weight:700;cursor:pointer;font-family:var(--font-body);transition:all .15s;display:inline-flex;align-items:center;gap:7px;}
.btn-confirm-neutral:hover{background:#128a67;}
.btn-confirm-danger.loading,.btn-confirm-neutral.loading{opacity:.8;pointer-events:none;}
.spinner-sm{width:13px;height:13px;border-radius:50%;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;animation:spin .7s linear infinite;display:none;}
.loading .spinner-sm{display:inline-block;}
