/* ============================================================
   Global Buttons · Forms · Modal Base
============================================================ */
.btn-primary{
    background:var(--blue);color:var(--white);
    padding:7px 16px;border:none;border-radius:var(--r);
    font-size:12.5px;font-weight:700;
    display:inline-flex;align-items:center;gap:5px;
    box-shadow:0 2px 8px rgba(0,0,255,.22);transition:all .13s;
}
.btn-primary:hover{background:var(--blue-dk);box-shadow:0 4px 14px rgba(0,0,255,.32)}
.btn-secondary{
    background:var(--white);color:var(--text);
    padding:7px 16px;border:1.5px solid var(--border2);
    border-radius:var(--r);font-size:12.5px;font-weight:600;
    display:inline-flex;align-items:center;gap:5px;transition:all .13s;
}
.btn-secondary:hover{background:var(--s3)}
.btn-full{width:100%;justify-content:center}

/* Modals */
.modal-overlay{
    position:fixed;inset:0;background:rgba(0,0,0,.38);
    backdrop-filter:blur(4px);z-index:9999;
    display:none;align-items:center;justify-content:center;
    animation:fadeIn .14s ease;
}
.modal-overlay.show{display:flex}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}

.modal{
    background:var(--white);border-radius:var(--r-lg);
    box-shadow:var(--sh-lg);border:1px solid var(--border);
    min-width:400px;max-width:92vw;max-height:92vh;
    display:flex;flex-direction:column;overflow:hidden;
    animation:popIn .18s cubic-bezier(.34,1.56,.64,1);
}
@keyframes popIn{from{opacity:0;transform:scale(.93) translateY(10px)}to{opacity:1;transform:none}}
.modal-wide{min-width:640px}

.modal-header{
    padding:14px 18px;border-bottom:1px solid var(--border);
    display:flex;align-items:center;justify-content:space-between;
    background:var(--s2);
}
.modal-header h3{font-size:14px;font-weight:800;color:var(--text)}
.modal-close{
    width:26px;height:26px;border:1px solid var(--border);
    background:var(--white);border-radius:var(--r);cursor:pointer;
    font-size:11px;color:var(--text3);
    display:flex;align-items:center;justify-content:center;transition:all .13s;
}
.modal-close:hover{background:#fff0f0;color:#cc0000;border-color:#fcc}
.modal-body{padding:18px 20px;overflow-y:auto;flex:1}
.modal-footer{
    padding:12px 18px;border-top:1px solid var(--border);
    display:flex;justify-content:flex-end;gap:7px;background:var(--s2);
}
