/* ═══ CUSTOM MODAL ═══ */
.qm-overlay{position:fixed;inset:0;background:rgba(0,0,0,.6);display:none;align-items:center;justify-content:center;z-index:var(--z-call);padding:var(--sp-4);backdrop-filter:blur(4px)}
.qm-overlay.open{display:flex}
.qm-card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--r-xl);width:min(360px,100%);animation:qmSlide .18s var(--ease-out);overflow:hidden;box-shadow:var(--shadow-xl)}
@keyframes qmSlide{from{opacity:0;transform:scale(.96) translateY(8px)}to{opacity:1;transform:none}}
.qm-body{padding:var(--sp-5) var(--sp-5) var(--sp-3);text-align:center}
.qm-icon{width:44px;height:44px;border-radius:var(--r-lg);display:inline-flex;align-items:center;justify-content:center;margin-bottom:var(--sp-3)}
.qm-danger .qm-icon{background:rgba(224,80,80,.12);color:var(--error)}
.qm-default .qm-icon{background:rgba(56,161,105,.1);color:var(--primary)}
.qm-info .qm-icon{background:rgba(64,128,224,.1);color:var(--info)}
.qm-title{font-size:var(--text-md);font-weight:var(--weight-bold);color:var(--text);margin-bottom:var(--sp-1);line-height:var(--leading-snug)}
.qm-desc{font-size:var(--text-sm);color:var(--text-secondary);line-height:var(--leading-normal);margin-bottom:var(--sp-2)}
.qm-input{width:100%;padding:var(--sp-2) var(--sp-3);background:var(--surface-0);border:1px solid var(--border);border-radius:var(--r-md);color:var(--text);font-size:var(--text-base);font-family:var(--font);margin-top:var(--sp-2);outline:none;transition:border-color var(--dur-fast)}
.qm-input:focus{border-color:var(--primary)}
.qm-actions{display:flex;gap:var(--sp-2);padding:var(--sp-3) var(--sp-5) var(--sp-5);justify-content:flex-end}
.qm-btn{padding:var(--sp-2) var(--sp-4);border-radius:var(--r-md);font-size:var(--text-sm);font-weight:var(--weight-semi);font-family:var(--font);cursor:pointer;border:1px solid var(--border);transition:background var(--dur-fast),color var(--dur-fast),border-color var(--dur-fast);min-height:36px;min-width:80px}
.qm-cancel{background:var(--surface-0);color:var(--text-secondary)}
.qm-cancel:hover{background:var(--surface-hover);color:var(--text)}
.qm-confirm.qm-danger{background:var(--error);color:#fff;border-color:var(--error)}
.qm-confirm.qm-danger:hover{background:#c53030;border-color:#c53030}
.qm-confirm.qm-default{background:var(--primary);color:#fff;border-color:var(--primary)}
.qm-confirm.qm-default:hover{background:var(--primary-hover);border-color:var(--primary-hover)}
.qm-confirm.qm-info{background:var(--info);color:#fff;border-color:var(--info)}
.qm-confirm.qm-info:hover{background:#3070c8;border-color:#3070c8}

/* Light mode */
[data-theme="light"] .qm-overlay{background:rgba(0,0,0,.35)}
[data-theme="light"] .qm-card{background:var(--bg2);box-shadow:0 8px 32px rgba(0,0,0,.12)}
[data-theme="light"] .qm-input{background:var(--bg)}
