/* ═══════════════════════════════════════════════════════════════════════════
   CatalyseR ERP — In-app modal / toast / confirm helper
   Replaces browser alert() / confirm() / prompt() everywhere.
   Used via window.AxModal — see assets/app_modal.js for the API.
   Loaded once from includes/header.php (admin) + student_header.php (student).
   ═══════════════════════════════════════════════════════════════════════════ */

.axm-backdrop{
  position:fixed;inset:0;z-index:9999;
  background:rgba(15,23,42,.55);
  backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);
  display:flex;align-items:center;justify-content:center;
  opacity:0;transition:opacity .18s ease;
  padding:20px;box-sizing:border-box;
}
.axm-backdrop.show{opacity:1}

.axm-modal{
  background:var(--white);border-radius:14px;
  box-shadow:0 20px 50px -12px rgba(15,23,42,.45), 0 0 0 1px rgba(15,23,42,.05);
  max-width:460px;width:100%;
  overflow:hidden;
  transform:translateY(8px) scale(.97);
  transition:transform .18s ease;
  font-family:inherit;
}
.axm-backdrop.show .axm-modal{transform:translateY(0) scale(1)}

.axm-head{
  display:flex;align-items:flex-start;gap:14px;
  padding:20px 22px 6px;
}
.axm-icon{
  flex-shrink:0;width:42px;height:42px;border-radius:11px;
  display:inline-flex;align-items:center;justify-content:center;font-size:20px;line-height:1;
}
.axm-icon.info{background:var(--blue-100);color:var(--blue-strong)}
.axm-icon.success{background:#d1fae5;color:var(--green-dark)}
.axm-icon.warn{background:var(--amber-50);color:var(--amber-text)}
.axm-icon.error{background:var(--red-100);color:var(--red-strong)}
.axm-icon.question{background:#ede9fe;color:#5b21b6}

.axm-titleg{flex:1;min-width:0;padding-top:2px}
.axm-title{font-size:16px;font-weight:700;color:var(--gray-900);line-height:1.3;margin:0}
.axm-msg{font-size:13.5px;color:var(--gray-600);line-height:1.55;padding:8px 22px 18px;white-space:pre-wrap}

.axm-input-wrap{padding:0 22px 18px}
.axm-input{
  width:100%;padding:10px 12px;
  border:1.5px solid var(--gray-200);border-radius:8px;
  font-size:14px;color:var(--gray-900);background:var(--white);
  font-family:inherit;box-sizing:border-box;
  transition:border-color .15s,box-shadow .15s;
}
.axm-input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px rgba(30,58,110,.12)}

.axm-foot{
  display:flex;gap:8px;justify-content:flex-end;
  padding:14px 22px;
  background:var(--gray-50);border-top:1px solid var(--gray-200);
}
.axm-btn{
  padding:9px 18px;border-radius:8px;border:1.5px solid transparent;
  font-size:13px;font-weight:600;cursor:pointer;line-height:1;
  font-family:inherit;
  display:inline-flex;align-items:center;gap:6px;
  transition:all .15s;
}
.axm-btn.primary{background:var(--brand);color:var(--white);border-color:var(--brand)}
.axm-btn.primary:hover{background:var(--brand-hover);transform:translateY(-1px);box-shadow:0 4px 12px rgba(30,58,110,.3)}
.axm-btn.ghost{background:var(--white);color:var(--gray-600);border-color:var(--gray-300)}
.axm-btn.ghost:hover{background:var(--gray-50);border-color:var(--gray-400);color:var(--gray-900)}
.axm-btn.danger{background:var(--red);color:var(--white);border-color:var(--red)}
.axm-btn.danger:hover{background:#b91c1c;box-shadow:0 4px 12px rgba(220,38,38,.3)}
.axm-btn.success{background:var(--green-bright);color:var(--white);border-color:var(--green-bright)}
.axm-btn.success:hover{background:#15803d}

/* ── Toasts (top-right, auto-dismiss) ──────────────────────────────────────── */
.axm-toast-stack{
  position:fixed;top:18px;right:18px;z-index:10000;
  display:flex;flex-direction:column;gap:8px;
  max-width:380px;pointer-events:none;
}
.axm-toast{
  background:var(--white);border-radius:10px;
  box-shadow:0 10px 28px -6px rgba(15,23,42,.25),0 0 0 1px rgba(15,23,42,.05);
  padding:13px 16px;
  display:flex;align-items:flex-start;gap:11px;
  font-size:13px;color:var(--gray-900);line-height:1.45;
  border-left:3.5px solid var(--blue-strong);
  transform:translateX(110%);opacity:0;
  transition:transform .25s ease, opacity .25s ease;
  pointer-events:auto;
  min-width:240px;font-family:inherit;
}
.axm-toast.show{transform:translateX(0);opacity:1}
.axm-toast.info{border-left-color:var(--blue-strong)}
.axm-toast.success{border-left-color:var(--green-bright)}
.axm-toast.warn{border-left-color:var(--amber)}
.axm-toast.error{border-left-color:var(--red)}
.axm-toast-icon{font-size:16px;line-height:1.2;flex-shrink:0}
.axm-toast-msg{flex:1;min-width:0;word-wrap:break-word}
.axm-toast-close{
  background:none;border:none;color:var(--gray-400);cursor:pointer;
  font-size:18px;line-height:1;padding:0;margin-left:6px;flex-shrink:0;
}
.axm-toast-close:hover{color:var(--gray-600)}

@media (max-width:520px){
  .axm-modal{max-width:100%}
  .axm-toast-stack{top:8px;right:8px;left:8px;max-width:none}
}
