/*
 * jamc-theme-admin.css — Panel admin (tenant): acento NARANJA + barra superior.
 *
 * Se carga DESPUES de jamc-theme-base.css (hereda toda la estructura, incluida la
 * seccion Dashboard, ahora la ultima de la base). Solo redefine el acento y estiliza
 * la topbar de ->topNavigation(). Clases .fi-topbar*/.fi-dropdown* verificadas (v3.3.47).
 */

/* El acento por defecto de la base ya es naranja; se reafirma explicito. */
:root {
    --jamc-accent: #f97316;
    --jamc-accent-strong: #ea580c;
    --jamc-accent-soft: rgba(249, 115, 22, 0.12);
    --jamc-accent-ring: rgba(249, 115, 22, 0.35);
}

/* Login /admin/login: las reglas de la card, foco de inputs, boton de entrar y
   lavado del fondo viven en jamc-theme-base.css y consumen var(--jamc-accent*);
   al cargar este panel esas variables son las de arriba → el login sale NARANJA
   sin duplicar selectores (punto unico: el acento fluye por variable). */

/* ====== Barra superior FLOTANTE (topNavigation) — estilo collectiveos ====== */
/* Estructura del vendor (topbar/index.blade.php):
     .fi-topbar  → wrapper sticky (top:0, z-20, overflow-x-clip), SIN fondo propio
     > nav       → la barra (bg-white/dark:bg-gray-900 + h-16 + shadow-sm + ring-1)
   Para que "flote": el wrapper toma el fondo del panel (Filament usa
   bg-gray-50 / dark:bg-gray-950) y asi enmascara el contenido que scrollea por
   detras en los margenes; el <nav> se separa de los bordes con padding, esquinas
   grandes tipo pildora y sombra de elevacion. Se conserva el sticky del vendor.
   Scopeado a .fi-topbar-with-navigation: solo cuando hay barra superior. */
.fi-topbar-with-navigation {
    background: #f9fafb !important; /* = bg-gray-50 del panel (claro) */
    padding: 0.75rem 0.75rem 0.85rem !important; /* margen flotante; algo mas abajo */
}

:root.dark .fi-topbar-with-navigation {
    background: #030712 !important; /* = dark:bg-gray-950 del panel */
}

.fi-topbar-with-navigation > nav {
    border-radius: 1.75rem !important; /* pildora grande */
    background: var(--jamc-surface) !important;
    box-shadow: var(--jamc-shadow-float) !important; /* elevacion suave */
    border: none !important; /* anula el ring-1 del vendor (era box-shadow) */
    transition: box-shadow 220ms var(--jamc-ease);
}

/* Cada grupo/enlace de la barra como pill con hover de acento suave. */
.fi-topbar-item-button {
    border-radius: var(--jamc-radius-pill) !important;
    transition:
        background-color 160ms var(--jamc-ease),
        color 160ms var(--jamc-ease);
}

.fi-topbar-item-button:hover {
    background-color: var(--jamc-accent-soft) !important;
}

/* Item activo: pill con relleno de acento suave + texto/icono de acento fuerte. */
.fi-topbar-item.fi-active .fi-topbar-item-button,
.fi-topbar-item-active .fi-topbar-item-button {
    background-color: var(--jamc-accent-soft) !important;
}

.fi-topbar-item.fi-active .fi-topbar-item-label,
.fi-topbar-item.fi-active .fi-topbar-item-icon {
    color: var(--jamc-accent-strong) !important;
}

/* El chevron del grupo acompaña la transicion (lo rota Alpine al abrir). */
.fi-topbar-group-toggle-icon {
    transition: transform 200ms var(--jamc-ease);
}

/* Refuerzo: los desplegables de grupo abren como tarjeta flotante redondeada.
   (La base ya lo aplica a .fi-dropdown-panel; aqui solo se reafirma el radio.) */
.fi-topbar .fi-dropdown-panel {
    border-radius: var(--jamc-radius-panel) !important;
}

/* ====== Reportes Contables (Libro Diario / Mayor / Balance) ====== */
/* Pantalla de LECTURA densa: la prioridad es legibilidad, no decoracion. Las
   tablas son Blade propio (resources/views/filament/pages/reportes/*), no del
   vendor; aqui solo vive su presentacion. Las cifras van en Outfit con digitos
   tabulares (no monoespaciada): alinean en columna y se leen mejor que el mono.
   Los codigos de cuenta y numeros de asiento SI van en mono (son identificadores). */

/* Selector de reporte: las 3 opciones del Radio como tarjetas elegibles. El
   vendor rinde `.fi-fo-radio` (grid con -mt-4) > div.pt-4 > label.flex.gap-x-3
   con un input.fi-radio-input. Se anula ese ritmo vertical y se maqueta en
   columnas fluidas. Scopeado por .jamc-report-picker → no toca otros Radio. */
.jamc-report-picker .fi-fo-radio {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)) !important;
    gap: 0.75rem !important;
    margin-top: 0 !important;
}

.jamc-report-picker .fi-fo-radio > div {
    padding-top: 0 !important;
}

.jamc-report-picker .fi-fo-radio label {
    align-items: center;
    padding: 0.85rem 1rem;
    border-radius: var(--jamc-radius-field);
    background: var(--jamc-surface-2);
    box-shadow: inset 0 0 0 1px var(--jamc-hairline);
    cursor: pointer;
    transition:
        box-shadow 180ms var(--jamc-ease),
        background-color 180ms var(--jamc-ease);
}

.jamc-report-picker .fi-fo-radio label:hover {
    box-shadow: inset 0 0 0 1px var(--jamc-accent-ring);
}

/* Opcion elegida: relleno + aro de acento. `:has()` es soportado por los
   navegadores actuales; si faltara, el propio radio marcado sigue indicando la
   seleccion (no se pierde informacion). */
.jamc-report-picker .fi-fo-radio label:has(input:checked) {
    background: var(--jamc-accent-soft);
    box-shadow: inset 0 0 0 1px var(--jamc-accent);
}

/* El label del radio trae `mt-1` del vendor; centrado con el texto de una linea. */
.jamc-report-picker .fi-fo-radio .fi-radio-input {
    margin-top: 0 !important;
}

/* Tabla de reporte (clase propia .jamc-rt en los partials). */
.jamc-rt {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.8125rem;
    line-height: 1.45;
    font-variant-numeric: tabular-nums;
}

.jamc-rt td,
.jamc-rt th {
    padding: 0.35rem 0.75rem;
    text-align: start;
}

/* Cabecera de columnas: etiqueta pequeña, no un titulo. */
.jamc-rt-head > th {
    padding-block: 0.5rem;
    font-size: 0.68rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--jamc-muted);
    border-bottom: 1px solid var(--jamc-hairline-strong);
}

/* Filas de datos: separador hairline + realce al pasar (lectura larga). */
.jamc-rt-row > td {
    border-top: 1px solid var(--jamc-hairline);
}

.jamc-rt-row {
    transition: background-color 140ms var(--jamc-ease);
}

.jamc-rt-row:hover {
    background-color: var(--jamc-row-hover);
}

/* Identificadores (codigo de cuenta, numero de asiento): monoespaciada. */
.jamc-rt-id {
    font-family: ui-monospace, 'SFMono-Regular', 'Cascadia Mono', Menlo, monospace;
    font-size: 0.78rem;
    white-space: nowrap;
}

/* Fechas: a la izquierda pero sin partirse en dos lineas. */
.jamc-rt-date {
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

/* Cifras: derecha, sin cortar, digitos de ancho fijo. */
.jamc-rt-num {
    text-align: end;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

/* Texto secundario (glosa de linea, apertura). */
.jamc-rt-dim {
    color: var(--jamc-muted);
}

/* Cabecera de un asiento en el Libro Diario: banda tenue que abre el bloque. */
.jamc-rt-entry > td {
    padding-block: 0.55rem;
    background: var(--jamc-surface-2);
    font-weight: 600;
}

.jamc-rt-entry .jamc-rt-glosa {
    font-weight: 400;
    color: var(--jamc-muted);
}

/* Fila de cierre (total del asiento, saldo final, TOTALES del balance):
   jerarquia por peso + regla superior con mas cuerpo, sin cambiar de color. */
.jamc-rt-total > td {
    padding-block: 0.5rem;
    border-top: 1.5px solid var(--jamc-hairline-strong);
    font-weight: 600;
}

.jamc-rt-total--grand > td {
    font-size: 0.875rem;
    font-weight: 700;
}

/* Bloques de asiento del Diario: aire entre uno y el siguiente. */
.jamc-rt-block:not(:first-of-type) > tr:first-child > td {
    padding-top: 1.1rem;
}

/* Veredicto del Balance: franja semantica (verde = cuadra), no una pildora larga. */
.jamc-report-flag {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    margin-top: 1rem;
    padding: 0.7rem 0.9rem;
    border-radius: var(--jamc-radius-field);
    font-size: 0.85rem;
    font-weight: 600;
    line-height: 1.45;
}

.jamc-report-flag--ok {
    background: var(--jamc-ok-soft);
    color: var(--jamc-ok-strong);
}

.jamc-report-flag--error {
    background: rgba(220, 38, 38, 0.12);
    color: #b91c1c;
}

:root.dark .jamc-report-flag--error {
    background: rgba(248, 113, 113, 0.13);
    color: #fca5a5;
}

/* Estado vacio de un reporte (rango sin movimientos). */
.jamc-report-empty {
    padding: 2.5rem 1rem;
    text-align: center;
    font-size: 0.875rem;
    color: var(--jamc-muted);
}

.jamc-report-empty svg {
    width: 2.5rem;
    height: 2.5rem;
    margin: 0 auto 0.75rem;
    opacity: 0.5;
}

/* ====== Plan de Cuentas: sangrado jerarquico por nivel ====== */
/* La columna "Cuenta" (AccountResource) expone el nivel como clase jamc-level-N
   (la pone extraAttributes en el wrapper .fi-ta-text, que ya trae px-3). El
   sangrado real vive aqui: padding-inline-start = base(0.75rem) + (N-1)*1.25rem.
   !important para ganarle al px-3 del vendor sin depender del orden de carga.
   Nivel 1 sin regla: conserva el px-3 por defecto. */
.jamc-level-2 { padding-inline-start: 2rem !important; }
.jamc-level-3 { padding-inline-start: 3.25rem !important; }
.jamc-level-4 { padding-inline-start: 4.5rem !important; }
.jamc-level-5 { padding-inline-start: 5.75rem !important; }
.jamc-level-6 { padding-inline-start: 7rem !important; }
.jamc-level-7 { padding-inline-start: 8.25rem !important; }
.jamc-level-8 { padding-inline-start: 9.5rem !important; }

/* ====== Caja de cuadre del asiento (JournalEntryResource) ====== */
/* El Placeholder "Cuadre" del formulario de asiento: caja de resultado tenue con
   cifras tabulares. Verde si cuadra / rojo si descuadra (clase --ok/--off que
   pone el Resource segun el balance en vivo). Tokens semanticos, claro y oscuro. */
.jamc-cuadre {
    margin-top: 0.25rem;
    padding: 0.7rem 0.9rem;
    border-radius: var(--jamc-radius-field);
    font-variant-numeric: tabular-nums;
    font-weight: 600;
    box-shadow: inset 0 0 0 1px var(--jamc-hairline);
    transition:
        background-color 180ms var(--jamc-ease),
        color 180ms var(--jamc-ease),
        box-shadow 180ms var(--jamc-ease);
}

.jamc-cuadre--ok {
    background: var(--jamc-ok-soft);
    color: var(--jamc-ok-strong);
    box-shadow: inset 0 0 0 1px rgba(22, 163, 74, 0.25);
}

.jamc-cuadre--off {
    background: rgba(220, 38, 38, 0.1);
    color: var(--jamc-danger-strong);
    box-shadow: inset 0 0 0 1px rgba(220, 38, 38, 0.28);
}

:root.dark .jamc-cuadre--off {
    background: rgba(248, 113, 113, 0.12);
    box-shadow: inset 0 0 0 1px rgba(248, 113, 113, 0.28);
}

/* ====== Totales de Factura / Nota de Credito ====== */
/* Inputs de solo lectura de la caja de totales (InvoiceResource / CreditNoteResource).
   Antes con estilos EN LINEA (colores fijos que se veian mal en oscuro); ahora por
   clase, con color semantico via tokens (variantes claro/oscuro incluidas). El color
   lleva !important porque el input esta :disabled y el vendor le fija su propio gris. */
.jamc-total-input {
    text-align: right;
    font-variant-numeric: tabular-nums;
    padding-top: 1px;
    padding-bottom: 1px;
    height: 2.1rem;
    font-size: 0.85rem;
}

/* Importe que resta (descuento; y el gran total de la NC, que reduce). */
.jamc-total-neg {
    color: var(--jamc-danger-strong) !important;
    font-weight: 500;
}

/* Gran total: mas cuerpo y tamaño; verde semantico (cobro) por defecto. */
.jamc-total-grand {
    text-align: right;
    font-variant-numeric: tabular-nums;
    padding-top: 1px;
    padding-bottom: 1px;
    height: 2.3rem;
    font-weight: 700;
    font-size: 1.1rem;
    color: var(--jamc-ok-strong) !important;
}

/* La NC combina ambas: gran total en rojo. Mayor especificidad → gana el color. */
.jamc-total-grand.jamc-total-neg {
    color: var(--jamc-danger-strong) !important;
    font-weight: 700;
}

/* ====== prefers-reduced-motion ====== */
@media (prefers-reduced-motion: reduce) {
    .fi-topbar-with-navigation > nav,
    .fi-topbar-item-button,
    .fi-topbar-group-toggle-icon,
    .jamc-report-picker .fi-fo-radio label,
    .jamc-rt-row,
    .jamc-cuadre {
        transition: none !important;
    }
}
