/* ==========================================================================
   DETALLE DE GUÍAS (#fedex-batch-modal) y MONITOR OPERATIVO (#fedex-view-tracking)
   Ventana emergente de lote, ciclo y búsqueda por estatus. Los tokens --gd-* también
   los usa fedex-monitor.css en la pantalla del Monitor Operativo.

   - Paleta "jade" del portal cliente (templates/portal.html): verde y verde oscuro.
   - Tipografía: Sora (títulos y cifras), Manrope (texto), JetBrains Mono (datos).
   - MARCA FEDEX: todo botón o superficie de FedEx es rojo (--fedex-red, definido
     en components.css). Nunca morado. El rojo no se usa como acento general:
     excepción, incidencia y eliminar van en naranja (--gd-alert).
   - Sin píldoras de color: el estatus es un punto + texto.
   - Los controles de ícono (copiar, editar, mover) siempre están visibles y viven
     dentro de su columna, nunca sobre el borde entre dos columnas.
   - Un botón con estado activo (acuse cargado, carta porte capturada, incidencia
     abierta, guía oculta o archivada) se muestra RELLENO; sin estado, es fantasma.
   ========================================================================== */

/* ---------- Tokens ---------- */
:is(#fedex-batch-modal, #fedex-view-tracking) {
    /* Escala jade del portal cliente */
    --gd-jade-900: #022c22;
    --gd-jade-800: #064e3b;
    --gd-jade-700: #065f46;
    --gd-jade-600: #047857;
    --gd-jade-500: #059669;
    --gd-jade-300: #34d399;
    --gd-jade-200: #6ee7b7;
    --gd-jade-100: #d1fae5;
    --gd-jade-50: #ecfdf5;

    --gd-paper: #f0fdf4;
    --gd-card: #ffffff;
    --gd-ink: #0f172a;
    --gd-ink-2: #475569;
    --gd-ink-3: #64748b;
    --gd-line: #d1fae5;
    --gd-line-2: #e6f6ec;
    --gd-row-hover: #f3fbf6;
    --gd-row-muted: #f6f8f7;

    --gd-accent: #065f46;          /* texto y acento sobre fondo claro */
    --gd-accent-bright: #059669;   /* subrayados y rellenos */
    --gd-accent-soft: #ecfdf5;

    --gd-head-bg: #064e3b;
    --gd-head-ink: #ecfdf5;
    --gd-head-mute: #6ee7b7;

    /* Estatus (texto y relleno cumplen contraste AA sobre blanco) */
    --gd-st-delivered: #047857;
    --gd-st-exception: #c2410c;
    --gd-st-transit: #0369a1;
    --gd-st-picked: #0e7490;
    --gd-st-generated: #64748b;
    --gd-st-archived: #64748b;
    --gd-alert: #c2410c;           /* excepción, incidencia, eliminar (nunca rojo) */

    /* Botón con estado activo (relleno) */
    --gd-fill-ok: #047857;
    --gd-fill-ok-ink: #ffffff;
    --gd-fill-alert: #c2410c;
    --gd-fill-alert-ink: #ffffff;
    --gd-fill-neutral: #475569;
    --gd-fill-neutral-ink: #ffffff;

    --gd-shadow: 0 1px 0 rgba(2, 44, 34, .05), 0 24px 60px rgba(2, 44, 34, .32);

    --gd-sans: "Manrope", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
    --gd-display: "Sora", "Manrope", ui-sans-serif, system-ui, sans-serif;
    --gd-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}

body.dark-mode :is(#fedex-batch-modal, #fedex-view-tracking) {
    --gd-paper: #04150f;
    --gd-card: #0a1f18;
    --gd-ink: #ecfdf5;
    --gd-ink-2: #a3c2b5;
    --gd-ink-3: #7fa595;
    --gd-line: #14392c;
    --gd-line-2: #0f2c22;
    --gd-row-hover: #0e2b22;
    --gd-row-muted: #08190f;

    --gd-accent: #34d399;
    --gd-accent-bright: #10b981;
    --gd-accent-soft: #0f3328;

    --gd-head-bg: #022c22;
    --gd-head-ink: #ecfdf5;
    --gd-head-mute: #34d399;

    --gd-st-delivered: #34d399;
    --gd-st-exception: #f0834f;
    --gd-st-transit: #38bdf8;
    --gd-st-picked: #22d3ee;
    --gd-st-generated: #94a3b8;
    --gd-st-archived: #94a3b8;
    --gd-alert: #f0834f;

    --gd-fill-ok: #34d399;
    --gd-fill-ok-ink: #022c22;
    --gd-fill-alert: #f0834f;
    --gd-fill-alert-ink: #2b1103;
    --gd-fill-neutral: #94a3b8;
    --gd-fill-neutral-ink: #0b1220;

    --gd-shadow: 0 24px 60px rgba(0, 0, 0, .7);
}

/* ---------- Ventana ---------- */
:is(#fedex-batch-modal, #fedex-view-tracking) .gd-dialog {
    width: min(1660px, 100%);
    max-height: 100%;
    display: flex;
    pointer-events: auto;
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-sheet {
    display: flex;
    flex-direction: column;
    width: 100%;
    /* 96px de margen vertical: el widget fijo "Recibir impresiones" (abajo a la derecha) no tapa el pie */
    max-height: calc(100vh - 96px);
    background: var(--gd-paper);
    color: var(--gd-ink);
    border-radius: 16px;
    overflow: hidden;
    box-shadow: var(--gd-shadow);
    font-family: var(--gd-sans);
    font-size: 13px;
    line-height: 1.45;
    -webkit-font-smoothing: antialiased;
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-sheet *,
:is(#fedex-batch-modal, #fedex-view-tracking) .gd-sheet *::before,
:is(#fedex-batch-modal, #fedex-view-tracking) .gd-sheet *::after {
    box-sizing: border-box;
}

:is(#fedex-batch-modal, #fedex-view-tracking) kbd {
    font: 600 10.5px var(--gd-mono);
    padding: 0 5px;
    border: 1px solid var(--gd-line);
    border-radius: 4px;
    background: var(--gd-card);
    color: var(--gd-ink-2);
    box-shadow: none;
}

/* ---------- Cabecera (verde oscuro del portal) ---------- */
:is(#fedex-batch-modal, #fedex-view-tracking) .gd-head {
    flex: 0 0 auto;
    display: flex;
    align-items: flex-start;
    gap: 16px;
    padding: 18px 28px 16px;
    background: var(--gd-head-bg);
    color: var(--gd-head-ink);
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-head__id {
    flex: 1 1 auto;
    min-width: 0;
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-eyebrow {
    font: 600 10.5px/1.2 var(--gd-display);
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--gd-head-mute);
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-title {
    margin: 4px 0 0;
    font: 600 20px/1.25 var(--gd-display);
    letter-spacing: -.01em;
    color: inherit;
    overflow-wrap: anywhere;
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-title--mono {
    font-family: var(--gd-mono);
    letter-spacing: -.02em;
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-close {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    height: 32px;
    padding: 0 10px 0 12px;
    border-radius: 8px;
    border: 1px solid rgba(255, 255, 255, .24);
    background: rgba(255, 255, 255, .08);
    color: var(--gd-head-ink);
    font: 600 12px var(--gd-sans);
    cursor: pointer;
    transition: background .15s, border-color .15s;
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-close:hover {
    background: rgba(255, 255, 255, .16);
    border-color: rgba(255, 255, 255, .42);
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-close kbd {
    background: rgba(255, 255, 255, .1);
    border-color: rgba(255, 255, 255, .25);
    color: var(--gd-head-ink);
}

/* ---------- Resumen: avance + pestañas de estatus ---------- */
:is(#fedex-batch-modal, #fedex-view-tracking) .gd-pulse {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: 24px;
    padding: 16px 28px 8px;
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-pulse:empty {
    display: none;
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-pulse__pct {
    flex: 0 0 auto;
    font: 700 30px/1 var(--gd-display);
    letter-spacing: -.03em;
    color: var(--gd-accent);
    white-space: nowrap;
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-pulse__pct small {
    margin-left: 10px;
    font: 500 12px var(--gd-sans);
    letter-spacing: 0;
    color: var(--gd-ink-3);
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-bar {
    flex: 1 1 auto;
    display: flex;
    gap: 2px;
    height: 5px;
    border-radius: 3px;
    overflow: hidden;
    background: var(--gd-line);
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-bar i {
    display: block;
    height: 100%;
    transition: flex .25s ease;
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-tabs {
    flex: 0 0 auto;
    display: flex;
    flex-wrap: wrap;
    gap: 26px;
    padding: 0 28px;
    border-bottom: 1px solid var(--gd-line);
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-tabs:empty {
    display: none;
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-tab {
    display: inline-flex;
    align-items: baseline;
    gap: 7px;
    margin-bottom: -1px;
    padding: 10px 0;
    border: 0;
    border-bottom: 2px solid transparent;
    background: none;
    color: var(--gd-ink-2);
    font: 500 13px var(--gd-sans);
    cursor: pointer;
    transition: color .15s, border-color .15s;
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-tab b {
    font: 500 12px var(--gd-mono);
    color: var(--gd-count, var(--gd-ink-3));
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-tab:hover {
    color: var(--gd-ink);
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-tab.is-active {
    color: var(--gd-ink);
    font-weight: 700;
    border-bottom-color: var(--gd-accent-bright);
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-tab.is-active b {
    font-weight: 700;
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-tab.is-zero:not(.is-active) {
    opacity: .5;
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-tab--delivered { --gd-count: var(--gd-st-delivered); }
:is(#fedex-batch-modal, #fedex-view-tracking) .gd-tab--exception { --gd-count: var(--gd-st-exception); }
:is(#fedex-batch-modal, #fedex-view-tracking) .gd-tab--in_transit { --gd-count: var(--gd-st-transit); }
:is(#fedex-batch-modal, #fedex-view-tracking) .gd-tab--picked_up { --gd-count: var(--gd-st-picked); }
:is(#fedex-batch-modal, #fedex-view-tracking) .gd-tab--generated { --gd-count: var(--gd-st-generated); }
:is(#fedex-batch-modal, #fedex-view-tracking) .gd-tab--archived { --gd-count: var(--gd-st-archived); }
:is(#fedex-batch-modal, #fedex-view-tracking) .gd-tab.is-active.gd-tab--total b { color: var(--gd-accent); }

/* ---------- Herramientas: búsqueda y contador ---------- */
:is(#fedex-batch-modal, #fedex-view-tracking) .gd-tools {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px 28px 12px;
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-search {
    flex: 1 1 auto;
    max-width: 500px;
    display: flex;
    align-items: center;
    gap: 8px;
    height: 36px;
    padding: 0 6px 0 12px;
    margin: 0;
    background: var(--gd-card);
    border: 1px solid var(--gd-line);
    border-radius: 9px;
    color: var(--gd-ink-3);
    transition: border-color .15s, box-shadow .15s;
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-search:focus-within {
    border-color: var(--gd-accent-bright);
    box-shadow: 0 0 0 3px var(--gd-accent-soft);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--gd-accent-bright) 22%, transparent);
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-search svg {
    flex: 0 0 auto;
    width: 15px;
    height: 15px;
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-search input {
    flex: 1 1 auto;
    min-width: 0;
    height: 100%;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--gd-ink);
    font: 500 13px var(--gd-sans);
    outline: 0;
    box-shadow: none;
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-search input::placeholder {
    color: var(--gd-ink-3);
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-search__clear {
    flex: 0 0 auto;
    display: inline-grid;
    place-items: center;
    width: 26px;
    height: 26px;
    padding: 0;
    border: 0;
    border-radius: 7px;
    background: transparent;
    color: var(--gd-ink-3);
    cursor: pointer;
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-search__clear:hover {
    background: var(--gd-accent-soft);
    color: var(--gd-accent);
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-count {
    flex: 0 0 auto;
    color: var(--gd-ink-3);
    font-size: 12px;
    white-space: nowrap;
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-count b {
    color: var(--gd-ink);
    font-weight: 700;
}

/* ---------- Tabla ---------- */
:is(#fedex-batch-modal, #fedex-view-tracking) .gd-table-wrap {
    flex: 1 1 auto;
    min-height: 0;
    margin: 0 28px;
    overflow: auto;
    background: var(--gd-card);
    border: 1px solid var(--gd-line);
    border-radius: 12px;
    scrollbar-width: thin;
    scrollbar-color: var(--gd-ink-3) transparent;
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-table-wrap::-webkit-scrollbar { width: 9px; height: 10px; }
:is(#fedex-batch-modal, #fedex-view-tracking) .gd-table-wrap::-webkit-scrollbar-track { background: transparent; }
:is(#fedex-batch-modal, #fedex-view-tracking) .gd-table-wrap::-webkit-scrollbar-thumb {
    background: var(--gd-ink-3);
    background: color-mix(in srgb, var(--gd-ink-3) 55%, transparent);
    border-radius: 6px;
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-table {
    width: 100%;
    min-width: 1578px;
    table-layout: fixed;
    border-collapse: separate;
    border-spacing: 0;
    background: transparent;
    color: var(--gd-ink);
    font-size: 13px;
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-table thead {
    background: transparent;
    border: 0;
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-table th {
    position: sticky;
    top: 0;
    z-index: 2;
    padding: 11px 16px 11px 12px;
    background: var(--gd-card);
    border: 0;
    border-bottom: 1px solid var(--gd-line);
    color: var(--gd-ink-3);
    font: 600 10.5px/1.3 var(--gd-display);
    letter-spacing: .04em;
    text-align: left;
    text-transform: none;
    white-space: normal;
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-table td {
    padding: 15px 16px 15px 12px;   /* 16px a la derecha: ningún control toca el borde de columna */
    border: 0;
    border-bottom: 1px solid var(--gd-line-2);
    background: transparent;
    color: var(--gd-ink);
    font-size: 13px;
    vertical-align: top;
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-table tbody tr {
    transition: background-color .15s;
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-table tbody tr:last-child > td {
    border-bottom: 0;
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-table tbody tr.gd-row:hover > td {
    background: var(--gd-row-hover);
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-table td.gd-n,
:is(#fedex-batch-modal, #fedex-view-tracking) .gd-table th.gd-n {
    padding-left: 4px;
    padding-right: 4px;
    text-align: center;
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-table td.gd-n {
    padding-top: 18px;
    color: var(--gd-ink-3);
    font: 500 12px var(--gd-mono);
}

/* Columna de acciones fija a la derecha: en pantallas angostas los botones nunca quedan fuera de vista */
:is(#fedex-batch-modal, #fedex-view-tracking) .gd-table th:last-child,
:is(#fedex-batch-modal, #fedex-view-tracking) .gd-table td.gd-acts-cell {
    position: sticky;
    right: 0;
    border-left: 1px solid var(--gd-line-2);
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-table th:last-child {
    z-index: 3;
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-table td.gd-acts-cell {
    z-index: 1;
    background: var(--gd-card);
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-table tbody tr.gd-row:hover > td.gd-acts-cell {
    background: var(--gd-row-hover);
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-row--hidden > td.gd-acts-cell {
    background: var(--gd-row-muted);
}

/* Filas con estado */
:is(#fedex-batch-modal, #fedex-view-tracking) .gd-row--exception > td.gd-n {
    box-shadow: inset 3px 0 0 var(--gd-st-exception);
    color: var(--gd-st-exception);
    font-weight: 700;
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-row--hidden > td {
    background: var(--gd-row-muted);
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-row--hidden > td.gd-n {
    box-shadow: inset 3px 0 0 var(--gd-ink-3);
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-row--archived > td:not(.gd-acts-cell) {
    opacity: .62;
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-row--archived > td.gd-n {
    box-shadow: inset 3px 0 0 var(--gd-line);
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-row--multi {
    cursor: pointer;
}

/* Celda Guía & Servicio */
:is(#fedex-batch-modal, #fedex-view-tracking) .gd-guide {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-guide__line {
    display: flex;
    align-items: center;
    gap: 4px;
    min-width: 0;
    white-space: nowrap;
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-code {
    font: 600 14px var(--gd-mono);
    letter-spacing: .01em;
    font-variant-numeric: tabular-nums;
    color: var(--gd-ink);
    user-select: all;
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-code--empty {
    color: var(--gd-ink-3);
    font-weight: 500;
    user-select: none;
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-ref {
    display: inline-flex;
    align-items: baseline;
    gap: 6px;
    color: var(--gd-ink-2);
    font: 500 12.5px var(--gd-mono);
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-ref__tag {
    font: 700 9.5px var(--gd-display);
    letter-spacing: .08em;
    color: var(--gd-ink-3);
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-svc {
    color: var(--gd-ink-3);
    font-size: 12px;
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-pieces-toggle {
    display: inline-flex;
    align-items: center;
    align-self: flex-start;
    gap: 5px;
    margin: 3px 0 0 -4px;
    padding: 3px 6px 3px 4px;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: var(--gd-accent);
    font: 600 11.5px var(--gd-sans);
    cursor: pointer;
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-pieces-toggle:hover {
    background: var(--gd-accent-soft);
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-pieces-toggle svg {
    width: 12px;
    height: 12px;
    transition: transform .15s;
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-pieces-toggle[aria-expanded="true"] svg {
    transform: rotate(180deg);
}

/* Controles de ícono: siempre visibles, dentro de su celda, pegados a lo que afectan */
:is(#fedex-batch-modal, #fedex-view-tracking) .gd-ib {
    position: relative;
    flex: 0 0 auto;
    display: inline-grid;
    place-items: center;
    width: 26px;
    height: 26px;
    padding: 0;
    border: 1px solid transparent;
    border-radius: 7px;
    background: transparent;
    color: var(--gd-ink-2);
    cursor: pointer;
    vertical-align: middle;
    text-decoration: none;
    transition: background-color .15s, color .15s, border-color .15s;
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-ib svg {
    width: 14px;
    height: 14px;
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-ib:hover,
:is(#fedex-batch-modal, #fedex-view-tracking) .gd-ib:focus-visible {
    background: var(--gd-accent-soft);
    border-color: var(--gd-line);
    border-color: color-mix(in srgb, var(--gd-accent) 35%, transparent);
    color: var(--gd-accent);
    outline: 0;
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-ib .gd-ib__ok { display: none; }
:is(#fedex-batch-modal, #fedex-view-tracking) .gd-ib.is-copied {
    background: var(--gd-fill-ok);
    border-color: var(--gd-fill-ok);
    color: var(--gd-fill-ok-ink);
}
:is(#fedex-batch-modal, #fedex-view-tracking) .gd-ib.is-copied .gd-ib__copy { display: none; }
:is(#fedex-batch-modal, #fedex-view-tracking) .gd-ib.is-copied .gd-ib__ok { display: block; }

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-link {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    margin: 5px 0 0 -4px;
    padding: 3px 7px 3px 5px;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: var(--gd-ink-2);
    font: 600 11.5px var(--gd-sans);
    cursor: pointer;
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-link svg {
    width: 13px;
    height: 13px;
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-link:hover,
:is(#fedex-batch-modal, #fedex-view-tracking) .gd-link:focus-visible {
    background: var(--gd-accent-soft);
    color: var(--gd-accent);
    outline: 0;
}

/* Celda Ciclo */
:is(#fedex-batch-modal, #fedex-view-tracking) .gd-cycle__name {
    display: block;
    font: 600 12px/1.35 var(--gd-display);
    overflow-wrap: anywhere;
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-cycle__code {
    display: block;
    margin-top: 1px;
    font: 500 11px var(--gd-mono);
    color: var(--gd-ink-3);
    overflow-wrap: anywhere;
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-cycle__code--solo {
    margin-top: 0;
    color: var(--gd-ink);
    font-weight: 600;
}

/* Celda Destinatario */
:is(#fedex-batch-modal, #fedex-view-tracking) .gd-name {
    font: 700 12.5px/1.35 var(--gd-display);
    letter-spacing: -.005em;
    overflow-wrap: anywhere;
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-name__edit {
    white-space: nowrap;
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-place {
    margin-top: 1px;
    color: var(--gd-ink-2);
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-place .gd-mono {
    font: 500 11.5px var(--gd-mono);
    color: var(--gd-ink-3);
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-addr {
    margin-top: 2px;
    color: var(--gd-ink-3);
    font-size: 12px;
    line-height: 1.4;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-warn {
    display: flex;
    align-items: flex-start;
    gap: 5px;
    margin-top: 3px;
    color: var(--gd-alert);
    font-size: 12px;
    font-weight: 600;
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-warn svg {
    flex: 0 0 auto;
    width: 13px;
    height: 13px;
    margin-top: 2px;
}

/* Celda Remitente */
:is(#fedex-batch-modal, #fedex-view-tracking) .gd-sender__name {
    font: 700 12.5px/1.35 var(--gd-display);
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-sender__line {
    color: var(--gd-ink-3);
    font-size: 12px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-sender__line b {
    color: var(--gd-ink);
    font-weight: 600;
}

/* Fechas */
:is(#fedex-batch-modal, #fedex-view-tracking) .gd-date {
    font: 500 12px/1.4 var(--gd-mono);
    white-space: nowrap;
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-date span {
    display: block;
    color: var(--gd-ink-3);
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-date--empty {
    color: var(--gd-ink-3);
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-date--inline span {
    display: inline;
}

/* Estatus: punto + texto, sin relleno */
:is(#fedex-batch-modal, #fedex-view-tracking) .gd-status {
    --gd-c: var(--gd-st-generated);
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin-top: 1px;
    color: var(--gd-c);
    font-weight: 700;
    white-space: nowrap;
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-status::before {
    content: "";
    flex: 0 0 auto;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: currentColor;
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-status--delivered { --gd-c: var(--gd-st-delivered); }
:is(#fedex-batch-modal, #fedex-view-tracking) .gd-status--in_transit { --gd-c: var(--gd-st-transit); }
:is(#fedex-batch-modal, #fedex-view-tracking) .gd-status--picked_up { --gd-c: var(--gd-st-picked); }
:is(#fedex-batch-modal, #fedex-view-tracking) .gd-status--generated,
:is(#fedex-batch-modal, #fedex-view-tracking) .gd-status--pending { --gd-c: var(--gd-st-generated); }
:is(#fedex-batch-modal, #fedex-view-tracking) .gd-status--archived { --gd-c: var(--gd-st-archived); }
:is(#fedex-batch-modal, #fedex-view-tracking) .gd-status--exception { --gd-c: var(--gd-st-exception); }

/* La excepción lleva triángulo en vez de punto: no depende solo del color */
:is(#fedex-batch-modal, #fedex-view-tracking) .gd-status--exception::before {
    width: 0;
    height: 0;
    border-radius: 0;
    background: none;
    border-left: 5px solid transparent;
    border-right: 5px solid transparent;
    border-bottom: 9px solid currentColor;
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-flag {
    display: flex;
    align-items: center;
    gap: 5px;
    margin-top: 4px;
    color: var(--gd-ink-2);
    font-size: 11.5px;
    font-weight: 600;
    white-space: nowrap;
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-flag svg {
    width: 13px;
    height: 13px;
}

/* Aviso de carta porte de la API de clientes: naranja de excepciones, nunca el rojo de FedEx */
:is(#fedex-batch-modal, #fedex-view-tracking) .gd-flag--aviso {
    color: var(--gd-st-exception);
}

/* ---------- Acciones: 4 casillas fijas, mismos 8 botones ---------- */
:is(#fedex-batch-modal, #fedex-view-tracking) .gd-acts {
    --gd-s1: 112px;
    --gd-s2: 90px;
    --gd-s3: 106px;
    --gd-s4: 108px;
    display: flex;
    flex-direction: column;
    gap: 2px;
    margin-top: -3px;
}

/* Todas las filas comparten las mismas casillas: "Eliminar" siempre cae en la misma columna */
:is(#fedex-batch-modal, #fedex-view-tracking) .gd-acts__row {
    display: grid;
    grid-template-columns: var(--gd-s1) var(--gd-s2) var(--gd-s3) var(--gd-s4);
    gap: 2px;
    justify-content: start;
}

/* Acuse con lápiz: el lápiz comparte la primera casilla */
:is(#fedex-batch-modal, #fedex-view-tracking) .gd-acts__pod {
    display: flex;
    align-items: center;
    gap: 2px;
    min-width: 0;
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-act {
    --gd-bc: var(--gd-ink-2);
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    gap: 6px;
    height: 30px;
    min-width: 0;
    padding: 0 9px;
    border: 1px solid transparent;
    border-radius: 7px;
    background: transparent;
    color: var(--gd-bc);
    font: 600 12px/1 var(--gd-sans);
    text-decoration: none;
    white-space: nowrap;
    cursor: pointer;
    transition: background-color .15s, color .15s, border-color .15s;
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-act svg {
    flex: 0 0 auto;
    width: 14px;
    height: 14px;
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-act:hover,
:is(#fedex-batch-modal, #fedex-view-tracking) .gd-act:focus-visible {
    background: var(--gd-line-2);
    background: color-mix(in srgb, var(--gd-bc) 13%, transparent);
    color: var(--gd-bc);
    text-decoration: none;
    outline: 0;
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-act:focus-visible {
    border-color: var(--gd-bc);
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-act--track { --gd-bc: var(--gd-ink); font-weight: 700; }
:is(#fedex-batch-modal, #fedex-view-tracking) .gd-act--fedex { --gd-bc: var(--fedex-red-ink, #C4111A); }     /* FedEx = rojo siempre */
:is(#fedex-batch-modal, #fedex-view-tracking) .gd-act--warn { --gd-bc: var(--gd-alert); }
:is(#fedex-batch-modal, #fedex-view-tracking) .gd-act--danger { --gd-bc: var(--gd-alert); }
:is(#fedex-batch-modal, #fedex-view-tracking) .gd-act--ok { --gd-bc: var(--gd-st-delivered); }
:is(#fedex-batch-modal, #fedex-view-tracking) .gd-act--neutral { --gd-bc: var(--gd-ink-2); }

/* Estado activo = botón relleno */
:is(#fedex-batch-modal, #fedex-view-tracking) .gd-act.is-set {
    border-color: transparent;
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-act--ok.is-set {
    background: var(--gd-fill-ok);
    color: var(--gd-fill-ok-ink);
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-act--warn.is-set {
    background: var(--gd-fill-alert);
    color: var(--gd-fill-alert-ink);
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-act--neutral.is-set {
    background: var(--gd-fill-neutral);
    color: var(--gd-fill-neutral-ink);
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-act.is-set:hover,
:is(#fedex-batch-modal, #fedex-view-tracking) .gd-act.is-set:focus-visible {
    filter: brightness(1.08);
    color: inherit;
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-act--ok.is-set:hover,
:is(#fedex-batch-modal, #fedex-view-tracking) .gd-act--ok.is-set:focus-visible { background: var(--gd-fill-ok); color: var(--gd-fill-ok-ink); }
:is(#fedex-batch-modal, #fedex-view-tracking) .gd-act--warn.is-set:hover,
:is(#fedex-batch-modal, #fedex-view-tracking) .gd-act--warn.is-set:focus-visible { background: var(--gd-fill-alert); color: var(--gd-fill-alert-ink); }
:is(#fedex-batch-modal, #fedex-view-tracking) .gd-act--neutral.is-set:hover,
:is(#fedex-batch-modal, #fedex-view-tracking) .gd-act--neutral.is-set:focus-visible { background: var(--gd-fill-neutral); color: var(--gd-fill-neutral-ink); }

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-act--icon {
    width: 30px;
    padding: 0;
    justify-content: center;
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-act-note {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 30px;
    padding: 0 9px;
    color: var(--gd-ink-3);
    font-size: 12px;
    font-weight: 600;
    white-space: nowrap;
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-act-note svg {
    width: 14px;
    height: 14px;
}

/* ---------- Piezas de una guía multicaja ---------- */
:is(#fedex-batch-modal, #fedex-view-tracking) tr.gd-pieces > td {
    padding: 0;
    background: var(--gd-paper);
    border-bottom: 1px solid var(--gd-line);
}

:is(#fedex-batch-modal, #fedex-view-tracking) tr.gd-pieces[hidden] {
    display: none;
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-table--nested {
    min-width: 0;
    table-layout: auto;
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-table--nested th {
    position: static;
    padding: 8px 14px;
    background: transparent;
    border-bottom: 1px solid var(--gd-line);
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-table--nested td {
    padding: 8px 14px;
    vertical-align: middle;
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-piece-n {
    font: 500 12px var(--gd-mono);
    color: var(--gd-ink-3);
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-acts--inline {
    display: flex;
    flex-wrap: nowrap;
    gap: 2px;
    margin: 0;
}

/* ---------- Grupos por ciclo (acordeón de la vista por estatus) ---------- */
:is(#fedex-batch-modal, #fedex-view-tracking) tr.gd-group-head > td {
    padding: 11px 16px 11px 12px;
    background: var(--gd-accent-soft);
    border-bottom: 1px solid var(--gd-line);
    cursor: pointer;
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-group-head__in {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-group-head__name {
    font: 700 13px var(--gd-display);
    color: var(--gd-ink);
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-group-head__meta {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    color: var(--gd-ink-2);
    font-size: 12px;
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-group-head__meta b {
    color: var(--gd-accent);
}

:is(#fedex-batch-modal, #fedex-view-tracking) tr.gd-group-body > td {
    padding: 0;
    border-bottom: 1px solid var(--gd-line);
}

:is(#fedex-batch-modal, #fedex-view-tracking) tr.gd-group-body[hidden] {
    display: none;
}

:is(#fedex-batch-modal, #fedex-view-tracking) tr.gd-row.is-collapsed,
:is(#fedex-batch-modal, #fedex-view-tracking) tr.gd-pieces.is-collapsed {
    display: none;
}

/* ---------- Estados vacíos y de carga ---------- */
:is(#fedex-batch-modal, #fedex-view-tracking) .gd-state > td {
    padding: 44px 16px;
    text-align: center;
    color: var(--gd-ink-3);
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-state--error > td {
    color: var(--gd-alert);
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-spinner {
    display: inline-block;
    width: 16px;
    height: 16px;
    margin-right: 8px;
    border: 2px solid var(--gd-line);
    border-top-color: var(--gd-accent-bright);
    border-radius: 50%;
    vertical-align: -3px;
    animation: gd-spin .8s linear infinite;
}

@keyframes gd-spin { to { transform: rotate(360deg); } }

/* ---------- Pie ---------- */
:is(#fedex-batch-modal, #fedex-view-tracking) .gd-foot {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 14px 28px 16px;
    color: var(--gd-ink-3);
    font-size: 12px;
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-foot__actions {
    display: flex;
    align-items: center;
    gap: 8px;
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-btn {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    height: 34px;
    padding: 0 14px;
    border: 1px solid var(--gd-line);
    border-radius: 8px;
    background: var(--gd-card);
    color: var(--gd-ink);
    font: 600 12.5px var(--gd-sans);
    cursor: pointer;
    text-decoration: none;
    transition: border-color .15s, background-color .15s, filter .15s;
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-btn svg {
    width: 15px;
    height: 15px;
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-btn:hover {
    border-color: var(--gd-accent-bright);
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-btn--outline {
    color: var(--gd-accent);
    border-color: var(--gd-accent);
    border-color: color-mix(in srgb, var(--gd-accent) 45%, var(--gd-line));
}

/* Botón FedEx = rojo fijo (nunca morado) */
:is(#fedex-batch-modal, #fedex-view-tracking) .gd-btn--fedex {
    background: var(--fedex-red, #D9141E);
    border-color: var(--fedex-red, #D9141E);
    color: var(--fedex-on-red, #ffffff);
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-btn--fedex:hover {
    background: var(--fedex-red-hover, #B8101A);
    border-color: var(--fedex-red-hover, #B8101A);
    filter: none;
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-btn--fedex:disabled {
    opacity: .7;
    cursor: wait;
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-btn--text {
    height: auto;
    padding: 0;
    border: 0;
    background: none;
    color: var(--gd-alert);
    text-decoration: underline;
    text-underline-offset: 3px;
}

:is(#fedex-batch-modal, #fedex-view-tracking) .gd-btn:focus-visible,
:is(#fedex-batch-modal, #fedex-view-tracking) .gd-tab:focus-visible,
:is(#fedex-batch-modal, #fedex-view-tracking) .gd-close:focus-visible,
:is(#fedex-batch-modal, #fedex-view-tracking) .gd-pieces-toggle:focus-visible {
    outline: 2px solid var(--gd-accent-bright);
    outline-offset: 2px;
}

/* Pantallas muy angostas: la columna de acciones deja de estar fija (ocuparía todo el ancho) */
@media (max-width: 900px) {
    :is(#fedex-batch-modal, #fedex-view-tracking) .gd-table th:last-child,
    :is(#fedex-batch-modal, #fedex-view-tracking) .gd-table td.gd-acts-cell {
        position: static;
        border-left: 0;
    }

    :is(#fedex-batch-modal, #fedex-view-tracking) .gd-head,
    :is(#fedex-batch-modal, #fedex-view-tracking) .gd-pulse,
    :is(#fedex-batch-modal, #fedex-view-tracking) .gd-tabs,
    :is(#fedex-batch-modal, #fedex-view-tracking) .gd-tools,
    :is(#fedex-batch-modal, #fedex-view-tracking) .gd-foot {
        padding-left: 16px;
        padding-right: 16px;
    }

    :is(#fedex-batch-modal, #fedex-view-tracking) .gd-table-wrap {
        margin: 0 16px;
    }

    :is(#fedex-batch-modal, #fedex-view-tracking) .gd-foot {
        flex-wrap: wrap;
    }
}

@media (prefers-reduced-motion: reduce) {
    :is(#fedex-batch-modal, #fedex-view-tracking) * {
        transition: none !important;
        animation-duration: .01ms !important;
    }
}
