/* ==========================================================================
   ASSISTENTE · ADMIN POLISH 1.6.1
   ------------------------------------------------------------------------
   Ajustes puramente visuais/de feedback no Painel Administrativo (#modal).
   Não redefine nada além do que está listado aqui; carregado por último no
   <head>, então vence os empates de especificidade sem precisar reescrever
   nenhuma regra existente. Seguro para remover: basta tirar o <link> do
   index.html — nada mais depende deste arquivo.
   ========================================================================== */

/* --- Dock de abas: um único estado visual, sem tremidas/rotação no hover --- */
#modal .admin-dock{ gap:6px!important; }
#modal .admin-dock .secondary{
  transform:none!important;
  transition:background .15s ease,border-color .15s ease,color .15s ease!important;
}
#modal .admin-dock .secondary:hover{ transform:none!important; }
#modal .admin-dock .secondary:hover .admin-tab-icon{ transform:none!important; }
#modal .admin-dock .secondary.active{
  background:color-mix(in srgb,var(--blue) 14%,var(--panel-strong) 86%)!important;
  border-color:color-mix(in srgb,var(--blue) 38%,var(--admin-border,var(--line)) 62%)!important;
  box-shadow:none!important;
}
#modal .admin-tab-copy small{ opacity:.68; }

/* --- Biblioteca lateral: lista mais respirada, botão "+ Novo" com destaque --- */
#modal .admin-nav-head #newModel{
  box-shadow:0 4px 14px color-mix(in srgb,var(--blue) 28%,transparent)!important;
}
#modal .admin-list{ gap:7px!important; }
#modal .admin-item{ transition:transform .15s ease,background .15s ease!important; }
#modal .admin-item:hover{ transform:translateX(2px); }

/* Pulso temporário no item que acabou de ser guardado */
@keyframes adminItemSavedPulse{
  0%{ box-shadow:0 0 0 0 color-mix(in srgb,var(--green,#2f9e5e) 55%,transparent); }
  100%{ box-shadow:0 0 0 10px color-mix(in srgb,var(--green,#2f9e5e) 0%,transparent); }
}
#modal .admin-item-just-saved{
  animation:adminItemSavedPulse 900ms ease-out;
  border-color:color-mix(in srgb,var(--green,#2f9e5e) 55%,var(--admin-border,var(--line)) 45%)!important;
}

/* --- Botão "Guardar modelo": estado de carregamento visível --- */
#saveModel.is-busy{
  color:transparent!important;
  pointer-events:none;
  position:relative;
}
#saveModel.is-busy::after{
  content:"Guardando…";
  position:absolute; inset:0;
  display:flex; align-items:center; justify-content:center;
  color:#fff;
}

/* --- Confirmação inline após guardar um modelo --- */
.model-save-confirm{
  display:flex; align-items:center; gap:10px;
  margin:0; padding:0 14px;
  border-radius:12px;
  border:1px solid color-mix(in srgb,var(--green,#2f9e5e) 38%,var(--admin-border,var(--line)) 62%);
  background:color-mix(in srgb,var(--green,#2f9e5e) 12%,var(--panel-strong) 88%);
  color:var(--ink);
  font-size:12.5px;
  font-weight:650;
  opacity:0;
  max-height:0;
  overflow:hidden;
  transition:opacity .22s ease,max-height .28s ease,margin .28s ease,padding .28s ease;
}
.model-save-confirm.show{
  opacity:1;
  max-height:70px;
  margin:0 0 14px;
  padding:11px 14px;
}
.model-save-confirm-icon{
  flex:0 0 auto;
  width:20px; height:20px; border-radius:50%;
  display:grid; place-items:center;
  background:var(--green,#2f9e5e); color:#fff; font-size:12px; font-weight:900;
}
.model-save-confirm-text{ flex:1 1 auto; }
.model-save-confirm-new{
  flex:0 0 auto;
  border:1px solid color-mix(in srgb,var(--blue) 40%,var(--admin-border,var(--line)) 60%);
  background:var(--panel);
  color:var(--blue);
  font-weight:800;
  font-size:11.5px;
  border-radius:8px;
  padding:7px 10px;
  cursor:pointer;
}
.model-save-confirm-new:hover{ background:color-mix(in srgb,var(--blue) 10%,var(--panel) 90%); }

@media(max-width:800px){
  .model-save-confirm{ flex-wrap:wrap; }
  .model-save-confirm-new{ width:100%; }
}
