/* ============================================================================
   NexoPrice Admin — complementos sobre el sistema visual del panel
   (style.css se sirve desde el panel de clientes vía /asset.php).
   ============================================================================ */

/* ── Marca y menú ── */
.admin-sidebar .sidebar-brand { display: flex; align-items: center; gap: 10px; }
.admin-brand-tag {
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--dark);
    background: var(--brand);
    padding: 2px 6px;
    border-radius: var(--r-xs);
}
.admin-sidebar .sidebar-link { display: flex; justify-content: space-between; align-items: center; }
.admin-sidebar-foot { display: flex; flex-direction: column; gap: 6px; }

/* ── Estados ── */
.badge.st-ok    { background: var(--ok-tint);   color: var(--ok);   border: 1px solid var(--ok-line); }
.badge.st-warn  { background: var(--warn-tint); color: var(--warn); border: 1px solid var(--warn-line); }
.badge.st-bad   { background: var(--bad-tint);  color: var(--bad);  border: 1px solid var(--bad-line); }
.badge.st-muted { background: var(--chip);      color: var(--muted); border: 1px solid var(--line); }

/* ── Escritorio ── */
.admin-kpis { margin-bottom: 18px; }
.kpi-sub { margin-top: 6px; }
.admin-kpi-alerta { border-color: var(--brand); background: var(--brand-soft); }

.admin-lista { list-style: none; margin: 0; padding: 0; }
.admin-lista li { padding: 9px 0; border-bottom: 1px solid var(--line-fine); }
.admin-lista li:last-child { border-bottom: 0; }

/* ── Fichas ── */
.admin-dl { display: grid; grid-template-columns: minmax(120px, max-content) 1fr; gap: 6px 18px; margin: 0; }
.admin-dl dt { color: var(--muted); font-size: 13px; }
.admin-dl dd { margin: 0; overflow-wrap: anywhere; }

.admin-tabs { display: flex; gap: 2px; flex-wrap: wrap; border-bottom: 1px solid var(--line); margin: 0 0 18px; }
.admin-tabs a {
    padding: 9px 14px;
    color: var(--muted);
    text-decoration: none;
    border-bottom: 2px solid transparent;
    margin-bottom: -1px;
    font-size: 14px;
}
.admin-tabs a:hover { color: var(--ink); }
.admin-tabs a.is-active { color: var(--ink); border-bottom-color: var(--brand); font-weight: 600; }

.admin-acciones { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.admin-acciones form { margin: 0; }
.admin-fila { display: flex; gap: 10px; flex-wrap: wrap; align-items: flex-end; }
.admin-fila .form-label { flex: 1 1 180px; }
.admin-fila .form-label.fld-xs { flex: 0 1 110px; }

.admin-secreto {
    font-family: var(--font-mono);
    background: var(--brand-tint);
    border: 1px dashed var(--brand);
    padding: 10px 12px;
    border-radius: var(--r-sm);
    user-select: all;
    word-break: break-all;
}

/* ── Mensajería (la base está en style.css) ── */
.bandeja-fila--nueva td:first-child { box-shadow: inset 3px 0 0 var(--brand); }

/* ── Editor de contenido ── */
.form-input.is-code, textarea.is-code { font-family: var(--font-mono); font-size: 13px; }
textarea.form-input { min-height: 90px; resize: vertical; }
textarea.form-input.alto { min-height: 340px; }
.preview-email { border: 1px solid var(--line); border-radius: var(--r-md); padding: 16px; background: #fff; }
.vars { font-family: var(--font-mono); font-size: 12px; color: var(--muted); }

.medios-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 12px; }
.medio { border: 1px solid var(--line); border-radius: var(--r-md); background: var(--vellum); padding: 8px; display: flex; flex-direction: column; gap: 6px; }
.medio img { width: 100%; height: 120px; object-fit: contain; background: var(--paper-2); border-radius: var(--r-sm); }
.medio code { font-size: 11px; word-break: break-all; }

.bloques-pagina { margin-bottom: 26px; }
.bloque { padding: 12px 0; border-bottom: 1px solid var(--line-fine); }

/* ── Avisos (vista previa) ── */
.aviso-prev { border-left: 3px solid var(--ok); padding: 10px 14px; background: var(--paper-2); }
.aviso-prev--aviso { border-left-color: var(--warn); }
.aviso-prev--critico { border-left-color: var(--bad); }

.texto-derecha { text-align: right; }
.nowrap { white-space: nowrap; }
.mt-0 { margin-top: 0; }
.mb-0 { margin-bottom: 0; }

@media (max-width: 720px) {
    .admin-dl { grid-template-columns: 1fr; }
    .admin-dl dt { margin-top: 8px; }
}
.admin-flex1 { flex: 1; }
.admin-sep { border: 0; border-top: 1px solid var(--line); margin: 18px 0; }
.admin-prose { max-width: 760px; line-height: 1.65; }
.admin-prose img { max-width: 100%; height: auto; }
.admin-prose blockquote { margin-left: 0; padding-left: 14px; border-left: 3px solid var(--brand); color: var(--muted); }
