/* =====================================================================
   Oxton Lab — avisos e modais.
   - Sucesso/informação: aviso discreto no canto superior direito (some sozinho).
   - Erro/alerta/confirmação: modal central, cartão plano com borda fina.
   Sem animações, sem desfoque; cores por tokens (tema claro/escuro).
   ===================================================================== */

/* Barra de progresso da navegação parcial (sidebar estável) */
.ox-navbar{position:fixed;top:0;left:0;height:2px;width:0;background:#1E5EFF;z-index:10000;opacity:0;transition:width .2s ease,opacity .2s ease;pointer-events:none}
.ox-navbar.is-on{opacity:1}

/* ---------------- Avisos (toasts) ---------------- */
.oxt-host{position:fixed;top:76px;right:20px;z-index:9998;display:flex;flex-direction:column;gap:8px;width:min(380px,calc(100vw - 32px));pointer-events:none}
.oxt{pointer-events:auto;display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:start;padding:12px 12px 12px 14px;
  background:var(--card,#fff);border:1px solid var(--line,#dde3ee);border-left:3px solid var(--k,#1E5EFF);border-radius:var(--r,12px);color:var(--txt,#1a2030)}
.oxt--ok{--k:#12805c}.oxt--info{--k:#1E5EFF}
.oxt__ico{width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;color:var(--k)}
.oxt__ico svg{width:20px;height:20px}
.oxt__txt{display:flex;flex-direction:column;gap:1px;min-width:0}
.oxt__txt strong{font-size:.86rem;font-weight:700}
.oxt__txt span{font-size:.82rem;line-height:1.45;color:var(--txt2,#5b6577);overflow-wrap:anywhere}
.oxt__x{background:none;border:0;color:var(--txt3,#8a93a6);cursor:pointer;padding:2px;line-height:0;border-radius:6px}
.oxt__x:hover{color:var(--txt,#1a2030)}
.oxt__x:focus-visible{outline:2px solid #1E5EFF;outline-offset:2px}
@media (max-width:560px){.oxt-host{top:auto;bottom:16px;right:16px}}

/* ---------------- Modal ---------------- */
.oxm-overlay{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(10,17,36,.45)}
.oxm{position:relative;width:100%;max-width:440px;background:var(--card,#fff);border:1px solid var(--line,#dde3ee);border-radius:var(--r,12px);overflow:hidden;color:var(--txt,#1a2030)}
.oxm__x{position:absolute;top:10px;right:10px;background:none;border:0;color:var(--txt3,#8a93a6);cursor:pointer;padding:4px;line-height:0;border-radius:6px}
.oxm__x:hover{color:var(--txt,#1a2030);background:var(--card2,#eef1f7)}
.oxm__x:focus-visible{outline:2px solid #1E5EFF;outline-offset:2px}

.oxm__body{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:start;padding:22px 44px 6px 22px}
.oxm__ico{width:40px;height:40px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center}
.oxm__ico svg{width:22px;height:22px}
.oxm__ico--ok{background:#e8f6ee;color:#12805c}
.oxm__ico--danger{background:#fdecee;color:#c62b3f}
.oxm__ico--warn{background:#fff4e2;color:#b45309}
.oxm__ico--info,.oxm__ico--confirm{background:var(--brand-soft,#e7edff);color:var(--blue,#2f5bff)}
.oxm__txt{min-width:0;padding-top:1px}
.oxm__title{font-size:1rem;font-weight:700;color:var(--txt,#1a2030);margin:0 0 4px}
.oxm__msg{font-size:.88rem;line-height:1.55;color:var(--txt2,#5b6577);margin:0;white-space:pre-line}

.oxm__foot{display:flex;gap:8px;justify-content:flex-end;padding:16px 22px 18px}
.oxm__btn{font:inherit;font-size:.86rem;font-weight:600;height:38px;padding:0 1rem;border-radius:var(--r-sm,8px);border:1px solid transparent;cursor:pointer}
.oxm__btn--primary{background:var(--blue,#2f5bff);border-color:var(--blue,#2f5bff);color:#fff}
.oxm__btn--primary:hover{background:var(--blue2,#1c3ad1);border-color:var(--blue2,#1c3ad1)}
.oxm__btn--danger{background:#c62b3f;border-color:#c62b3f;color:#fff}
.oxm__btn--ghost{background:var(--card,#fff);border-color:var(--line,#dde3ee);color:var(--txt,#1a2030)}
.oxm__btn--ghost:hover{background:var(--card2,#eef1f7)}
.oxm__btn:focus-visible{outline:2px solid #1E5EFF;outline-offset:2px}
:root[data-theme="dark"] .oxm__ico--ok{background:rgba(61,212,160,.12);color:#3dd4a0}
:root[data-theme="dark"] .oxm__ico--danger{background:rgba(255,107,125,.12);color:#ff6b7d}
:root[data-theme="dark"] .oxm__ico--warn{background:rgba(240,180,94,.12);color:#f0b45e}

/* ---- Modal de formulário (botões "Novo X") ---- */
.oxm--form{max-width:560px}
.oxm__bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;border-bottom:1px solid var(--line,#dde3ee)}
.oxm__bar .oxm__x{position:static}
.oxm__title-bar{font-size:.95rem;font-weight:700;color:var(--txt,#1a2030)}
.oxm__formbody{padding:18px 20px 20px;text-align:left;max-height:78vh;overflow:auto}
.oxm__formbody .adm-pop__panel{position:static;width:auto !important;max-width:none;border:0;box-shadow:none;padding:0;background:transparent;display:flex;flex-direction:column;gap:.45rem}
.oxm__formbody .adm-pop__title{display:none}
.oxm__formbody .adm-field{margin-bottom:.7rem}
.oxm__formbody .adm-form__foot,.oxm__formbody .q-submit{position:sticky;bottom:0;background:var(--card,#fff);padding-top:.6rem;margin-top:.4rem}

@media (max-width:480px){
  .oxm__body{grid-template-columns:1fr;padding:22px 20px 6px}
  .oxm__foot{flex-direction:column-reverse}
  .oxm__foot .oxm__btn{width:100%}
}
