/**
 * Covatel Avisos — tokens y componentes base (sin border-radius).
 * Referencia: --covatel-accent (#006680)
 */
:root {
    --covatel-accent: #006680;
    --covatel-accent-dark: #005a70;
    --covatel-accent-deep: #003d4a;
    --covatel-surface: #ffffff;
    --covatel-text: #0f172a;
    --covatel-muted: #64748b;
    --covatel-border: #cbd5e1;
    --covatel-border-strong: #94a3b8;
    --covatel-radius: 0;
    --covatel-font: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", Inter, system-ui, sans-serif;
    --covatel-focus-ring: 0 0 0 2px #ffffff, 0 0 0 4px var(--covatel-accent);
    --covatel-header-h: 3rem;
    --covatel-brand-bar-h: calc(2.5rem + 1.875rem * 1.12);
    --covatel-sidebar-w: 16rem;
    --covatel-content-bg: #eef1f3;
    --covatel-sidebar-bg: #003240;
    --covatel-sidebar-bg-deep: #002a35;
    --covatel-sidebar-border: rgba(255, 255, 255, 0.08);
    --covatel-sidebar-label: rgba(255, 255, 255, 0.38);
    --covatel-sidebar-text: rgba(255, 255, 255, 0.68);
    --covatel-sidebar-text-strong: rgba(255, 255, 255, 0.92);
    --covatel-sidebar-active: #6ecde6;
    --covatel-sidebar-hover: rgba(255, 255, 255, 0.05);
    --covatel-sidebar-dot: #f59e0b;
    --covatel-sidebar-active-bg: rgba(255, 255, 255, 0.08);
    --covatel-chrome-h: 0;
    --covatel-page-gap: 0;
    --covatel-content-max: 64rem;
    --covatel-content-pad-x: 1rem;
    --covatel-green: #006b83;
    --covatel-green-hover: #005a70;
    --covatel-select-chevron: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%2394a3b8' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");
}

@media (min-width: 640px) {
    :root {
        --covatel-content-pad-x: 1.5rem;
    }
}

@media (max-width: 767px) {
    :root {
        --covatel-sidebar-w: 0px;
        --covatel-chrome-h: var(--covatel-header-h);
    }
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

/* Etiquetas flotantes bajo títulos de sección (deshabilitadas en toda la app) */
.section-title .tooltip {
    display: none !important;
}

.covatel-field {
    display: block;
    width: 100%;
    padding: 0.7rem 0.85rem;
    font-size: 0.9375rem;
    font-family: var(--covatel-font);
    color: var(--covatel-text);
    background: var(--covatel-surface);
    border: 1px solid var(--covatel-border-strong);
    border-radius: var(--covatel-radius);
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.covatel-field:focus {
    outline: none;
    border-color: var(--covatel-accent);
    border-width: 1px;
    box-shadow: none;
}

/* Foco global: borde verde web 1px (sin cambio de grosor ni halo) */
.covatel-app-shell .tech-input:focus,
.covatel-app-shell .client-input:focus,
.covatel-app-shell select.tech-input:focus,
.covatel-app-shell select.client-input:focus,
.covatel-app-shell textarea.tech-input:focus,
.covatel-app-shell textarea.client-input:focus,
.covatel-app-shell .tech-input-edit:focus,
.covatel-app-shell input.covatel-field:focus,
.covatel-app-shell select.covatel-field:focus,
.covatel-app-shell textarea.covatel-field:focus,
.covatel-app-shell input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="file"]):not([type="button"]):not([type="submit"]):not([type="reset"]):focus,
.covatel-app-shell select:focus,
.covatel-app-shell textarea:focus {
    outline: none !important;
    border-color: var(--covatel-accent) !important;
    border-width: 1px !important;
    box-shadow: none !important;
}

.covatel-app-shell .tech-input[readonly]:focus,
.covatel-app-shell .client-input[readonly]:focus,
.covatel-app-shell input[readonly]:focus:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]) {
    border-width: 1px !important;
    border-color: var(--covatel-border-strong) !important;
    box-shadow: none !important;
}

/* Desplegables nativos: solo hover verde web; la opción seleccionada sin resaltado */
.covatel-app-shell select option {
    background: #ffffff;
    color: var(--covatel-text);
}

.covatel-app-shell select option:hover {
    background: var(--covatel-accent);
    color: #ffffff;
}

.covatel-app-shell select option:checked,
.covatel-app-shell select option:focus,
.covatel-app-shell select option:active {
    background: #ffffff;
    color: var(--covatel-text);
}

.covatel-app-shell select option:checked:hover {
    background: var(--covatel-accent);
    color: #ffffff;
}

.covatel-field::placeholder {
    color: var(--covatel-muted);
}

.covatel-label {
    display: block;
    margin-bottom: 0.4rem;
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--covatel-text);
}

.covatel-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    width: 100%;
    padding: 0.8rem 1rem;
    font-family: var(--covatel-font);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #ffffff;
    background: var(--covatel-accent-deep);
    border: 1px solid var(--covatel-accent-deep);
    border-radius: var(--covatel-radius);
    cursor: pointer;
    transition: background 0.15s ease, border-color 0.15s ease;
}

.covatel-btn:hover {
    background: var(--covatel-accent-dark);
    border-color: var(--covatel-accent-dark);
}

.covatel-btn:focus-visible {
    outline: none;
    box-shadow: var(--covatel-focus-ring);
}

.covatel-link-muted {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--covatel-muted);
    text-decoration: none;
    transition: color 0.15s ease;
}

.covatel-link-muted:hover {
    color: var(--covatel-accent);
}

.covatel-alert-error {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    padding: 0.75rem 0.85rem;
    margin-bottom: 1rem;
    font-size: 0.8125rem;
    font-weight: 600;
    color: #991b1b;
    background: #fef2f2;
    border: 1px solid #fca5a5;
    border-left: 4px solid #dc2626;
    border-radius: var(--covatel-radius);
}

/* Shell de aplicación: sidebar izquierda + contenido */
.covatel-app-shell {
    display: flex;
    flex-direction: row;
    align-items: stretch;
    min-height: 100vh;
    min-height: 100dvh;
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

.covatel-main {
    flex: 1 1 auto;
    min-width: 0;
    min-height: 0;
    margin-left: 0;
    padding-top: var(--covatel-header-h);
    display: flex;
    flex-direction: column;
    animation: covatel-main-fade 0.22s ease;
}

@keyframes covatel-main-fade {
    from { opacity: 0; }
    to { opacity: 1; }
}

@keyframes covatel-main-ficha {
    from { opacity: 0; transform: translateX(12px); }
    to { opacity: 1; transform: none; }
}

@media (min-width: 768px) {
    body.covatel-app-shell.ga-body--partes .covatel-main,
    body.covatel-app-shell.ga-body--gestion-avisos .covatel-main {
        animation-name: covatel-main-ficha;
    }
}

@media (prefers-reduced-motion: reduce) {
    .covatel-main {
        animation: none;
    }
}

@media (min-width: 768px) {
    .covatel-main {
        margin-left: var(--covatel-sidebar-w);
        padding-top: 0;
        background: var(--covatel-content-bg);
    }

    .covatel-app-shell,
    .covatel-app-shell.inicio-body,
    .covatel-app-shell.index-body,
    .covatel-app-shell.ga-body {
        background: var(--covatel-content-bg);
    }

    .covatel-app-shell .covatel-main,
    .covatel-app-shell.inicio-body .inicio-page,
    .covatel-app-shell.index-body .index-page,
    .covatel-app-shell.ga-body .ga-page {
        background: var(--covatel-content-bg);
    }
}

.covatel-app-shell.index-body .covatel-main,
.covatel-app-shell.catalogo-body .covatel-main,
.covatel-app-shell.productos-body .covatel-main {
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
    position: relative;
}

/* Barra lateral (todas las páginas autenticadas) */
.covatel-sidebar {
    width: var(--covatel-sidebar-w);
    background: var(--covatel-sidebar-bg-deep);
    border-right: 1px solid var(--covatel-sidebar-border);
    font-family: var(--covatel-font);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
}

/* Menú lateral: tipografía fija, no hereda estilos del body de cada página */
.covatel-app-shell > .covatel-sidebar,
.covatel-app-shell > .covatel-sidebar *,
.covatel-app-shell > .covatel-sidebar *::before,
.covatel-app-shell > .covatel-sidebar *::after {
    font-family: var(--covatel-font) !important;
}

.covatel-sidebar-brand {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    min-height: var(--covatel-brand-bar-h);
    padding: 0 1rem;
    border-bottom: 1px solid var(--covatel-sidebar-border);
    background: var(--covatel-accent-deep);
}

.covatel-sidebar-brand-link {
    display: block;
    flex: 1 1 auto;
    min-width: 0;
    color: #ffffff;
    font-size: 1.875rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    text-decoration: none;
}

.covatel-app-shell > .covatel-sidebar .covatel-sidebar-brand-link {
    font-family: "Helvetica Neue", "HelveticaNeue-CondensedBold", "Arial Narrow", Helvetica, Arial, sans-serif !important;
}

.covatel-sidebar-brand-link:hover {
    color: rgba(255, 255, 255, 0.92);
}

.covatel-sidebar-brand-home {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    color: rgba(255, 255, 255, 0.72);
    text-decoration: none;
    transition: color 0.15s ease;
}

.covatel-sidebar-brand-home:hover {
    color: #ffffff;
}

.covatel-sidebar-brand-home i[data-lucide],
.covatel-sidebar-brand-home svg {
    width: 1.125rem;
    height: 1.125rem;
}

.covatel-sidebar-nav {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
    padding: 0.75rem 0 1rem;
    scrollbar-color: rgba(255, 255, 255, 0.15) transparent;
    scrollbar-width: thin;
}

.covatel-sidebar-nav::-webkit-scrollbar {
    width: 4px;
}

.covatel-sidebar-nav::-webkit-scrollbar-thumb {
    background: rgba(255, 255, 255, 0.15);
}

.covatel-sidebar-section-title {
    display: block;
    margin: 0.625rem 0 0.25rem;
    padding: 0.625rem 1rem 0.25rem;
    border-top: 1px solid var(--covatel-sidebar-border);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--covatel-sidebar-label);
    user-select: none;
}

.covatel-sidebar-group {
    margin: 0.5rem 0 0.625rem;
    padding: 0;
}

.covatel-sidebar-group + .covatel-sidebar-link,
.covatel-sidebar-group + .covatel-sidebar-group {
    margin-top: 0.375rem;
}

.covatel-sidebar-link--section-start {
    margin-top: 0.75rem;
    padding-top: 0.75rem;
    border-top: 1px solid var(--covatel-sidebar-border);
}

.covatel-sidebar-group--open .covatel-sidebar-group-heading {
    color: #ffffff;
}

.covatel-sidebar-group-heading {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    margin: 0.0625rem 0.625rem 0.375rem;
    padding: 0.5rem 0.625rem;
    font-size: 0.875rem;
    font-weight: 600;
    line-height: 1.25;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #ffffff;
    user-select: none;
}

.covatel-sidebar-group-heading .covatel-sidebar-link-icon {
    color: #ffffff;
}

.covatel-sidebar-group-items {
    display: flex;
    flex-direction: column;
    gap: 0.1875rem;
    margin: 0 0.625rem 0;
    padding: 0;
}

.covatel-sidebar-link {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    margin: 0.0625rem 0.625rem;
    padding: 0.5rem 0.625rem;
    font-size: 0.875rem;
    font-weight: 600;
    line-height: 1.25;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    text-decoration: none;
    color: #ffffff;
    position: relative;
}

.covatel-sidebar-link-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.2rem;
    height: 1.2rem;
    flex-shrink: 0;
    color: #ffffff;
}

.covatel-sidebar-link-icon svg {
    width: 1.125rem;
    height: 1.125rem;
    stroke-width: 2;
}

.covatel-sidebar-sublink {
    display: block;
    margin: 0;
    padding: 0.4375rem 0.625rem 0.4375rem 1.5rem;
    font-size: 0.8125rem;
    font-weight: 400;
    line-height: 1.35;
    letter-spacing: 0;
    text-transform: none;
    text-decoration: none;
    color: rgba(255, 255, 255, 0.55);
    position: relative;
}

.covatel-sidebar-link--loading,
.covatel-sidebar-sublink--loading,
.covatel-nav-link--loading {
    padding-right: 2rem;
}

.covatel-topbar-menu a[href] {
    position: relative;
}

.covatel-sidebar-nav-spinner,
.covatel-loader.covatel-loader--nav {
    position: absolute;
    right: 0.5rem;
    top: 50%;
    transform: translateY(-50%);
    pointer-events: none;
}

.covatel-topbar-menu .covatel-loader.covatel-loader--nav {
    right: 0.75rem;
}

/* Loader elegante — ondas (uso global) */
.covatel-loader {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.2rem;
    height: 1rem;
    vertical-align: middle;
    flex-shrink: 0;
    --loader-color: var(--covatel-accent, #006680);
}

.covatel-loader span {
    display: block;
    width: 0.1875rem;
    height: 0.625rem;
    border-radius: 999px;
    background: var(--loader-color);
    transform-origin: center center;
    animation: covatel-loader-wave 1.1s cubic-bezier(0.45, 0.05, 0.25, 1) infinite;
    will-change: transform, opacity;
}

.covatel-loader span:nth-child(1) { animation-delay: 0s; }
.covatel-loader span:nth-child(2) { animation-delay: 0.12s; }
.covatel-loader span:nth-child(3) { animation-delay: 0.24s; }
.covatel-loader span:nth-child(4) { animation-delay: 0.36s; }
.covatel-loader span:nth-child(5) { animation-delay: 0.48s; }

.covatel-loader--light {
    --loader-color: rgba(255, 255, 255, 0.95);
}

.covatel-loader--sm {
    height: 0.75rem;
    gap: 0.14rem;
}

.covatel-loader--sm span {
    width: 0.125rem;
    height: 0.4375rem;
}

.covatel-loader--lg {
    height: 1.375rem;
    gap: 0.28rem;
}

.covatel-loader--lg span {
    width: 0.25rem;
    height: 1rem;
}

.covatel-loader-row {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.625rem;
    padding: 0.75rem 1rem;
    margin: 0;
    color: var(--covatel-muted, #64748b);
    font-size: 0.8125rem;
    line-height: 1.35;
}

/* Indicador "Cargando..." en inputs de búsqueda (mano de obra, etc.) */
.covatel-input-loading-wrap {
    position: relative;
}
.covatel-input-loading-indicator {
    position: absolute;
    top: 50%;
    right: 0.4rem;
    transform: translateY(-50%);
    display: none;
    align-items: center;
    gap: 0.3rem;
    pointer-events: none;
    z-index: 5;
    background: inherit;
    padding-left: 0.25rem;
}
.covatel-input-loading-wrap.is-loading .covatel-input-loading-indicator {
    display: inline-flex;
}
.covatel-input-loading-indicator .covatel-loader {
    height: 0.75rem;
    --loader-color: var(--covatel-accent, #006680);
}
.covatel-input-loading-indicator .covatel-loader span {
    width: 0.125rem;
    height: 0.5rem;
}
.covatel-input-loading-indicator__text {
    font-size: 0.6875rem;
    color: var(--covatel-muted, #64748b);
    white-space: nowrap;
}

.productos-body .covatel-loader-row,
.clientes-body .covatel-loader-row,
.agentes-body .covatel-loader-row,
.productos-body .productos-list-empty.covatel-loader-row,
.clientes-body .catalogo-list-empty.covatel-loader-row,
.agentes-body .catalogo-list-empty.covatel-loader-row {
    color: rgba(255, 255, 255, 0.82);
}

@keyframes covatel-loader-wave {
    0%, 100% {
        transform: scaleY(0.32);
        opacity: 0.35;
    }
    35% {
        transform: scaleY(1);
        opacity: 1;
    }
    55% {
        transform: scaleY(0.62);
        opacity: 0.7;
    }
}

/* Overlay global: búsquedas / consultas a base de datos */
.covatel-busy-overlay {
    position: fixed;
    inset: 0;
    z-index: 9400;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    pointer-events: none;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.15s ease, visibility 0.15s ease;
}

.covatel-busy-overlay.is-visible {
    opacity: 1;
    visibility: visible;
}

.covatel-busy-overlay__panel {
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.8rem 1.15rem;
    background: rgba(255, 255, 255, 0.96);
    border: 1px solid #dbe3e8;
    box-shadow: 0 14px 36px rgba(15, 23, 42, 0.14);
    color: #475569;
    font-size: 0.8125rem;
    line-height: 1.35;
    pointer-events: auto;
}

.covatel-busy-overlay__message {
    font-weight: 600;
    letter-spacing: 0.01em;
}

[data-theme="dark"] .covatel-busy-overlay__panel {
    background: rgba(30, 41, 59, 0.96);
    border-color: #334155;
    color: #e2e8f0;
    box-shadow: 0 14px 36px rgba(0, 0, 0, 0.35);
}

.covatel-sidebar-link:hover {
    color: #ffffff;
    background: var(--covatel-sidebar-hover);
}

.covatel-sidebar-sublink:hover {
    color: rgba(255, 255, 255, 0.88);
    background: var(--covatel-sidebar-hover);
}

.covatel-sidebar-link--active {
    color: #ffffff;
    font-weight: 600;
    background: var(--covatel-sidebar-active-bg);
}

.covatel-sidebar-link--active .covatel-sidebar-link-icon {
    color: #ffffff;
}

.covatel-sidebar-sublink--active {
    color: #ffffff;
    font-weight: 600;
    background: var(--covatel-accent);
}

.covatel-sidebar-footer {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.875rem 1rem;
    border-top: 1px solid var(--covatel-sidebar-border);
    background: var(--covatel-accent-deep);
}

.covatel-sidebar-user {
    min-width: 0;
    flex: 1 1 auto;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0;
    text-transform: none;
    color: rgba(255, 255, 255, 0.85);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.covatel-sidebar-logout {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    padding: 0;
    font-size: 0.6875rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    text-decoration: none;
    color: rgba(255, 255, 255, 0.55);
    border: none;
    background: transparent;
}

.covatel-sidebar-logout:hover {
    color: #ffffff;
}

.covatel-sidebar-logout svg {
    width: 0.875rem;
    height: 0.875rem;
}

/* Compatibilidad con reglas legacy que apuntaban al header superior */
.covatel-topbar {
    height: var(--covatel-header-h);
    min-height: var(--covatel-header-h);
    max-height: var(--covatel-header-h);
    background: var(--covatel-accent-deep);
    border-bottom: 1px solid rgba(255, 255, 255, 0.2);
}

.covatel-topbar-mobile {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 10000;
}

.covatel-topbar-menu {
    background: var(--covatel-accent-deep);
}

.covatel-topbar-hover:hover {
    background: var(--covatel-accent);
}

.covatel-topbar-active {
    background: var(--covatel-accent);
}

.covatel-topbar-submenu {
    background: rgba(255, 255, 255, 0.08);
}

.covatel-app-shell > aside.covatel-sidebar,
.index-body > aside.covatel-sidebar,
.ga-body > aside.covatel-sidebar,
.catalogo-body > aside.covatel-sidebar,
.productos-body > aside.covatel-sidebar {
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    z-index: 10000;
}

.covatel-app-shell > header.covatel-topbar,
.covatel-app-shell > header.covatel-topbar-mobile,
.index-body > header.covatel-topbar,
.index-body > header.covatel-topbar-mobile,
.ga-body > header.covatel-topbar,
.ga-body > header.covatel-topbar-mobile,
.catalogo-body > header.covatel-topbar,
.catalogo-body > header.covatel-topbar-mobile,
.productos-body > header.covatel-topbar,
.productos-body > header.covatel-topbar-mobile {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 10000;
}

/*
 * Fallback del shell (sin depender del CDN de Tailwind).
 * No definir .hidden global: el sidebar usa "hidden md:flex" y quedaría oculto siempre.
 */
.covatel-app-shell > aside.covatel-sidebar {
    flex-direction: column;
}

.covatel-app-shell > header.covatel-topbar-mobile {
    display: block;
}

#menu-movil.hidden,
.covatel-topbar-menu.hidden {
    display: none !important;
}

.covatel-topbar-menu:not(.hidden) {
    display: flex;
    flex-direction: column;
}

.covatel-topbar-mobile .covatel-topbar-brand-nav a {
    color: #ffffff;
    font-weight: 700;
    font-size: 1rem;
    letter-spacing: -0.025em;
    text-transform: uppercase;
    text-decoration: none;
}

.covatel-topbar-mobile .covatel-topbar-user {
    display: flex;
    align-items: center;
    gap: 1rem;
    color: #ffffff;
}

.covatel-topbar-mobile .covatel-topbar-user span {
    font-size: 0.625rem;
    font-weight: 700;
    text-transform: uppercase;
}

@media (max-width: 767px) {
    .covatel-app-shell > aside.covatel-sidebar {
        display: none !important;
    }
}

@media (min-width: 768px) {
    .covatel-app-shell > aside.covatel-sidebar {
        display: flex !important;
    }

    .covatel-app-shell > header.covatel-topbar-mobile {
        display: none !important;
    }
}

/* Submenús flotantes del header (escritorio) — sin border-radius */
.covatel-nav-dropdown {
    transform-origin: top center;
}

.covatel-nav-dropdown-panel {
    border-radius: 0 !important;
    box-shadow: none;
}

.covatel-nav-dropdown-panel > a {
    border-radius: 0 !important;
}

@media (min-width: 768px) {
    .covatel-nav-dropdown-panel {
        padding: 0;
        display: flex;
        flex-direction: column;
        gap: 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    .covatel-nav-dropdown {
        transition: opacity 0.15s ease !important;
    }

    .covatel-nav-dropdown,
    .covatel-nav-chevron {
        transform: none !important;
    }
}

/* Contenedor centrado compartido: header, submenú y paneles principales */
.covatel-chrome-inner {
    width: 100%;
    max-width: var(--covatel-content-max);
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--covatel-content-pad-x);
    padding-right: var(--covatel-content-pad-x);
    box-sizing: border-box;
}

.covatel-topbar-inner {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    height: 100%;
    min-width: 0;
}

.covatel-topbar-brand-nav {
    flex: 1 1 auto;
    min-width: 0;
}

.covatel-topbar-nav {
    min-width: 0;
}

.covatel-topbar-user {
    flex: 0 0 auto;
    margin-left: auto;
}

@media (max-width: 639px) {
    .covatel-chrome-inner {
        max-width: none;
    }

    .covatel-topbar-inner {
        padding-left: 10px;
        padding-right: 10px;
    }
}

.covatel-app-shell.inicio-body .covatel-main {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    min-height: 0;
}

/* Inicio — panel de accesos directos */
.inicio-body {
    margin: 0;
    min-height: 100vh;
    min-height: 100dvh;
    padding-top: 0;
    box-sizing: border-box;
    background: var(--covatel-accent);
}

@media (min-width: 768px) {
    .inicio-body {
        background: var(--covatel-content-bg);
    }
}

.inicio-body *,
.inicio-body *::before,
.inicio-body *::after {
    border-radius: 0 !important;
}

.inicio-page {
    flex: 1 1 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    padding: 1.25rem;
    padding-bottom: calc(1.25rem + 24px);
    margin: 0;
    background: var(--covatel-accent);
}

@media (min-width: 768px) {
    .inicio-page {
        background: var(--covatel-content-bg);
    }
}

.inicio-panel {
    width: 100%;
    max-width: 540px;
    background: transparent;
    box-shadow: none;
}

.inicio-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
    padding: 1.25rem;
}

@media (min-width: 768px) {
    .inicio-panel {
        max-width: 42rem;
    }

    .inicio-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        grid-template-rows: repeat(3, minmax(0, 1fr));
    }

    .inicio-tile {
        min-height: 5.75rem;
    }

    .inicio-tile--desktop-only {
        display: flex;
    }
}

.inicio-tile {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.65rem;
    min-height: 6.5rem;
    padding: 0.85rem 0.5rem;
    text-decoration: none;
    color: var(--covatel-accent-deep);
    background: var(--covatel-surface);
    border: 1px solid var(--covatel-border-strong);
    border-radius: var(--covatel-radius);
    transition: border-color 0.15s ease, background 0.15s ease;
}

.inicio-tile:hover {
    border-color: var(--covatel-accent);
    background: #f1f5f9;
}

.inicio-tile-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    color: var(--covatel-accent-deep);
}

.inicio-tile-icon svg {
    width: 100%;
    height: 100%;
}

.inicio-tile-label {
    font-size: 0.625rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-align: center;
    text-transform: uppercase;
    line-height: 1.25;
    color: var(--covatel-accent-deep);
}

.inicio-tile--mobile-only {
    display: none;
}

@media (max-width: 767px) {
    .inicio-body {
        height: 100dvh;
        min-height: 100dvh;
        overflow: hidden;
    }

    .inicio-page {
        flex: 1 1 auto;
        display: flex;
        flex-direction: column;
        align-items: stretch;
        justify-content: stretch;
        padding: 0;
        min-height: 0;
    }

    .inicio-panel {
        flex: 1 1 auto;
        display: flex;
        flex-direction: column;
        min-height: 0;
        max-width: none;
        width: 100%;
    }

    .inicio-grid {
        flex: 1 1 auto;
        grid-template-rows: repeat(4, minmax(0, 1fr));
        align-content: stretch;
        padding: 10px;
        gap: 10px;
        min-height: 0;
        box-sizing: border-box;
    }

    .inicio-tile {
        min-height: 0;
        height: 100%;
        padding: 0.5rem 0.35rem;
    }

    .inicio-tile--mobile-only {
        display: flex;
    }

    .inicio-tile--desktop-only {
        display: none;
    }
}

@media (min-width: 1024px) {
    .inicio-page {
        padding: 1.5rem;
        padding-bottom: calc(1.5rem + 24px);
    }

    .inicio-grid {
        padding: 1.5rem;
        gap: 0.75rem;
    }
}

/* Index — listado de avisos */
.index-body {
    margin: 0;
    height: 100vh;
    height: 100dvh;
    max-height: 100dvh;
    box-sizing: border-box;
    padding: 0;
    font-family: var(--covatel-font);
    background: var(--covatel-accent);
    color: var(--covatel-text);
    overflow: hidden;
}

@media (min-width: 768px) {
    .index-body {
        background: var(--covatel-content-bg);
    }
}

.index-body *,
.index-body *::before,
.index-body *::after {
    border-radius: 0 !important;
}

/* Contenido principal bajo sidebar fija */
.index-page {
    flex: 1 1 0%;
    display: flex;
    flex-direction: column;
    min-height: 0;
    margin: 0;
    padding: 0;
    overflow: hidden;
}

.index-body > aside.covatel-sidebar {
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    z-index: 10000;
}

.index-body > header.covatel-topbar,
.index-body > header.covatel-topbar-mobile {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 10000;
}

.index-body .barra-busqueda-filtros > .covatel-chrome-inner {
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
}

@media (min-width: 768px) {
    .index-body .barra-busqueda-filtros {
        min-height: var(--covatel-brand-bar-h);
        display: flex;
        align-items: center;
    }

    .index-body .barra-busqueda-filtros > .covatel-chrome-inner {
        display: flex;
        align-items: center;
        width: 100%;
        padding-top: 0;
        padding-bottom: 0;
    }

    .index-body .barra-busqueda-filtros .index-search-layout {
        width: 100%;
        gap: 0.375rem;
    }
}

.index-body .index-search-field {
    width: 100%;
    max-width: 100%;
    flex: 0 0 auto;
}

.index-body .index-search-layout {
    flex: 0 0 auto;
}

.index-body .index-filtros-aplicados {
    width: 100%;
}

.index-main {
    flex: 1 1 0%;
    display: flex;
    flex-direction: column;
    min-height: 0;
    margin: 0;
    padding: 0;
    background: var(--covatel-surface);
    overflow: hidden;
}

.index-shell {
    flex: 1 1 0%;
    display: flex;
    flex-direction: column;
    min-height: 0;
    margin: 0;
    padding: 0;
    overflow: hidden;
}

.index-table-shell {
    flex: 1 1 0%;
    display: flex;
    flex-direction: column;
    min-height: 0;
    min-width: 0;
}

.index-table-head {
    flex-shrink: 0;
    overflow: hidden;
}

.index-body .tabla-avisos {
    table-layout: fixed;
    width: 100%;
    max-width: 100%;
    border-collapse: collapse;
    font-family: var(--covatel-font);
}

.index-body .tabla-avisos col.index-col-cliente { width: 14%; }
.index-body .tabla-avisos col.index-col-direccion { width: 22%; }
.index-body .tabla-avisos col.index-col-poblacion { width: 10%; }
.index-body .tabla-avisos col.index-col-tipo { width: 11%; }
.index-body .tabla-avisos col.index-col-estado { width: 15%; }
.index-body .tabla-avisos col.index-col-antiguedad { width: 7%; }
.index-body .tabla-avisos col.index-col-visita { width: 10%; }
.index-body .tabla-avisos col.index-col-origen { width: 12%; }
.index-body .tabla-avisos col.index-col-interacciones { width: 5%; }

.index-body .tabla-avisos th,
.index-body .tabla-avisos td {
    overflow: hidden;
    text-overflow: ellipsis;
    vertical-align: middle;
}

.index-body .tabla-avisos .index-td {
    padding: 0.625rem 0.75rem;
    font-size: 0.8125rem;
    font-weight: 400;
    line-height: 1.4;
    letter-spacing: 0;
    color: var(--covatel-text, var(--text));
}

.index-body .tabla-avisos .index-td-muted {
    color: var(--covatel-muted, var(--muted));
}

.index-body .tabla-avisos .index-td-nowrap {
    white-space: nowrap;
}

.index-body .tabla-avisos .index-td-estado {
    white-space: normal;
    overflow: visible;
    text-overflow: clip;
    line-height: 1.35;
}

.index-body .tabla-avisos td.index-td-muted:nth-child(2) {
    white-space: normal;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.index-body .tabla-avisos .index-estado-cell {
    max-width: 100%;
}

.index-body .tabla-avisos .index-estado-cell--con-visitas,
.index-body .mobile-card-estado-wrap.index-estado-cell--con-visitas {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto;
    column-gap: 0.375rem;
    align-items: start;
    max-width: 100%;
}

.index-body .tabla-avisos .index-estado-tags,
.index-body .mobile-card-estado-wrap .index-estado-tags {
    min-width: 0;
}

.index-body .tabla-avisos .covatel-estado-lista-wrap,
.index-body .mobile-card-estado-wrap .covatel-estado-lista-wrap {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.1875rem;
    max-width: 100%;
}

.index-body .covatel-estado-lista-tag {
    box-sizing: border-box;
    display: inline-flex !important;
    align-items: flex-start;
    max-width: 100%;
    padding: 0.125rem 0.375rem;
    font-size: 0.625rem;
    font-weight: 600;
    line-height: 1.25;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    text-align: left;
    white-space: normal !important;
    word-break: break-word;
    overflow-wrap: anywhere;
    border: 1px solid #e2e8f0;
    border-left-width: 3px;
    border-left-style: solid;
    background: #f8fafc !important;
    color: #475569 !important;
    border-left-color: #94a3b8;
}

.index-body .covatel-estado-lista-tag[data-estado-id="int_pendiente"] {
    background: #fef2f2 !important;
    border-color: #fecaca;
    border-left-color: #dc2626;
    color: #991b1b !important;
}

.index-body .covatel-estado-lista-tag[data-estado-id="int_citado"] {
    background: #eff6ff !important;
    border-color: #bfdbfe;
    border-left-color: #2563eb;
    color: #1e40af !important;
}

.index-body .covatel-estado-lista-tag[data-estado-id="int_visita_realizada"] {
    background: #ecfeff !important;
    border-color: #a5f3fc;
    border-left-color: #0891b2;
    color: #0e7490 !important;
}

.index-body .covatel-estado-lista-tag[data-estado-id="int_trabajo_real"],
.index-body .covatel-estado-lista-tag[data-estado-id="int_obra_fin"],
.index-body .covatel-estado-lista-tag[data-estado-id="adm_facturado"],
.index-body .covatel-estado-lista-tag[data-estado-id="adm_cobrado"] {
    background: #f0fdf4 !important;
    border-color: #bbf7d0;
    border-left-color: #16a34a;
    color: #166534 !important;
}

.index-body .covatel-estado-lista-tag[data-estado-id="int_trabajo_garantia"] {
    background: #f0fdf4 !important;
    border-color: #bbf7d0;
    border-left-color: #059669;
    color: #047857 !important;
}

.index-body .covatel-estado-lista-tag[data-estado-id="int_trabajo_pospuesto"] {
    background: #f8fafc !important;
    border-color: #e2e8f0;
    border-left-color: #64748b;
    color: #475569 !important;
}

.index-body .covatel-estado-lista-tag[data-estado-id="int_obra_proceso"] {
    background: #fffbeb !important;
    border-color: #fde68a;
    border-left-color: #d97706;
    color: #92400e !important;
}

.index-body .covatel-estado-lista-tag[data-estado-id="int_cancel_ok"],
.index-body .covatel-estado-lista-tag[data-estado-id="int_cancel_otros"] {
    background: #f4f4f5 !important;
    border-color: #d4d4d8;
    border-left-color: #52525b;
    color: #27272a !important;
}

.index-body .covatel-estado-lista-tag[data-estado-id="int_anulado"] {
    background: #fef2f2 !important;
    border-color: #fecaca;
    border-left-color: #991b1b;
    color: #991b1b !important;
}

.index-body .covatel-estado-lista-tag[data-estado-id="int_volver_agendar"] {
    background: #fdf4ff !important;
    border-color: #f5d0fe;
    border-left-color: #a21caf;
    color: #86198f !important;
}

.index-body .covatel-estado-lista-tag[data-estado-id="adm_pend_cobro"] {
    background: #faf5ff !important;
    border-color: #e9d5ff;
    border-left-color: #7e22ce;
    color: #6b21a8 !important;
}

.index-body .covatel-estado-lista-tag[data-estado-id="adm_pend_fact"],
.index-body .covatel-estado-lista-tag[data-estado-id="adm_fact_cobrar"] {
    background: #eff6ff !important;
    border-color: #bfdbfe;
    border-left-color: #1d4ed8;
    color: #1e3a8a !important;
}

.index-body .covatel-estado-lista-tag[data-estado-id="adm_pend_nuevo_pres"] {
    background: #fff7ed !important;
    border-color: #fed7aa;
    border-left-color: #ea580c;
    color: #9a3412 !important;
}

.index-body .covatel-estado-lista-tag[data-estado-id="adm_pres_leido"] {
    background: #f5f3ff !important;
    border-color: #ddd6fe;
    border-left-color: #6d28d9;
    color: #5b21b6 !important;
}

.index-body .covatel-estado-lista-tag[data-estado-id="adm_pres_no_leido"] {
    background: #faf5ff !important;
    border-color: #e9d5ff;
    border-left-color: #8b5cf6;
    color: #6d28d9 !important;
}

.index-body .covatel-estado-lista-tag[data-estado-id="adm_pres_aprobado"] {
    background: #fefce8 !important;
    border-color: #fde047;
    border-left-color: #ca8a04;
    color: #854d0e !important;
}

.index-body .covatel-estado-lista-tag[data-estado-id="legacy"] {
    background: #f8fafc !important;
    border-color: #e2e8f0;
    border-left-color: #64748b;
    color: #475569 !important;
}

.index-body .tabla-avisos .index-visita-badge,
.index-body .mobile-card-estado-wrap .index-visita-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.125rem;
    margin-left: 0;
    padding: 0.0625rem 0.25rem;
    font-size: 0.5625rem;
    font-weight: 600;
    color: #0369a1;
    background: #f0f9ff;
    border: 1px solid #bae6fd;
    vertical-align: middle;
    flex-shrink: 0;
}

.index-body .tabla-avisos .index-visita-badge-icon,
.index-body .mobile-card-estado-wrap .index-visita-badge-icon {
    width: 0.6875rem;
    height: 0.6875rem;
}

.index-body .tabla-avisos .index-col-interacciones-cell {
    width: 5%;
    padding-left: 0.15rem;
    padding-right: 0.15rem;
    white-space: nowrap;
    text-align: center !important;
    vertical-align: middle;
    overflow: visible;
}

.index-body .tabla-avisos .index-col-interacciones-cell .flex {
    width: 100%;
    justify-content: center;
}

.index-body .tabla-avisos tbody tr.aviso-row {
    border-bottom: 1px solid var(--covatel-border, var(--border));
}

.index-list {
    flex: 1 1 0%;
    min-height: 0;
    min-width: 0;
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    background: var(--covatel-surface);
    scrollbar-color: var(--covatel-accent) transparent;
    scrollbar-width: thin;
}

.index-list::-webkit-scrollbar {
    width: 8px;
}

.index-list::-webkit-scrollbar-track {
    background: transparent;
}

.index-list::-webkit-scrollbar-thumb {
    background: var(--covatel-accent);
    border-radius: 0;
}

.index-list::-webkit-scrollbar-thumb:hover {
    background: var(--covatel-accent-dark);
}

.index-body .barra-busqueda-filtros {
    flex: 0 0 auto;
    flex-shrink: 0;
    margin: 0 !important;
    padding: 0 !important;
    background: var(--covatel-accent);
    border-bottom: none;
    box-shadow: none;
}

.index-footer-count {
    flex-shrink: 0;
}

.index-body .buscador-avisos-input {
    background: #fff !important;
    border-width: 1px !important;
    border-color: rgba(255, 255, 255, 0.3) !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.06) !important;
    color: var(--covatel-text) !important;
}

.index-body .buscador-avisos-input:focus {
    border-color: #fff !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12), 0 0 0 2px rgba(255, 255, 255, 0.4) !important;
}

.index-body .buscador-filtro-toggle {
    color: #006680;
}

.index-body .buscador-filtro-toggle svg {
    color: #006680;
    stroke: #006680;
}

.index-body .buscador-filtro-toggle:hover {
    color: #003d4a;
    background: rgba(0, 102, 128, 0.1) !important;
}

.index-body .buscador-filtro-toggle:hover svg {
    color: #003d4a;
    stroke: #003d4a;
}

.index-body .index-search-field i[data-lucide="search"] {
    color: var(--covatel-muted) !important;
}

/* Panel filtros del buscador (index) — fuera del layout flex (hijo directo de body) */
.index-body #filtro-dropdown {
    position: fixed !important;
    z-index: 10001 !important;
    display: none !important;
    flex-direction: column;
    overflow: hidden;
    background: #f1f5f9 !important;
    border: 1px solid var(--covatel-border-strong) !important;
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.1);
    padding: 0;
    margin: 0;
    pointer-events: none;
}

.index-body #filtro-dropdown.is-open {
    display: flex !important;
    pointer-events: auto;
}

.index-body #filtro-dropdown .filtro-dropdown-body {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    padding: 1rem 1rem 0.75rem;
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
    background: #f1f5f9;
}

@media (min-width: 768px) {
    .index-body #filtro-dropdown .filtro-dropdown-body {
        grid-template-columns: 1fr 1fr;
        gap: 1rem 1.25rem;
        max-height: min(420px, 55vh);
    }
}

.index-body #filtro-dropdown .filtro-section-title {
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--covatel-accent);
    margin-bottom: 0.5rem;
    padding-bottom: 0.375rem;
    border-bottom: 1px solid var(--covatel-border);
}

.index-body #filtro-dropdown .filtro-section-title--static {
    cursor: default;
}

.index-body #filtro-dropdown .filtro-section-options {
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
    padding-left: 0.125rem;
}

.index-body #filtro-dropdown .filtro-section-options label span {
    font-size: 0.8125rem;
    color: var(--covatel-text);
}

.index-body #filtro-dropdown .filtro-dropdown-actions {
    flex-shrink: 0;
    display: flex;
    gap: 0.5rem;
    padding: 0.75rem 1rem;
    background: #f1f5f9;
    border-top: 1px solid var(--covatel-border);
    margin: 0;
}

.index-body #filtro-dropdown .filtro-dropdown-actions button {
    flex: 1;
}

.index-body #filtro-poblacion {
    width: 100%;
    padding: 0.5rem 0.625rem;
    font-size: 0.8125rem;
    border: 1px solid var(--covatel-border-strong);
    background: #fff;
    color: var(--covatel-text);
}

.index-body #filtro-poblacion:focus {
    outline: none;
    border-color: var(--covatel-accent);
    box-shadow: var(--covatel-focus-ring);
}

.index-body #filtro-dropdown input[type="checkbox"] {
    width: 1rem;
    height: 1rem;
    min-width: 1rem;
    min-height: 1rem;
    flex-shrink: 0;
    box-sizing: border-box;
    accent-color: var(--covatel-accent);
}

.index-body .filtro-chevron-tipo-intervencion,
.index-body .filtro-chevron-tipo-cliente,
.index-body .filtro-chevron-estado {
    transition: transform 0.2s ease;
}

.index-body #filtro-section-tipo-intervencion,
.index-body #filtro-section-tipo-cliente,
.index-body #filtro-section-estado {
    transition: opacity 0.2s ease, max-height 0.2s ease;
}

.index-body .contenedor-mobile-cards {
    background: var(--covatel-surface) !important;
    padding: 0 !important;
}

.index-body .mobile-card {
    border: none !important;
    border-radius: 0 !important;
    margin-bottom: 0 !important;
    box-shadow: none !important;
}

.index-body .mobile-card:last-child {
    border-bottom: none !important;
}

.index-body .mobile-card-header {
    background: var(--covatel-panel-teal);
    border-top: 1px solid var(--covatel-accent) !important;
    border-bottom: none !important;
}

.index-body .contenedor-mobile-cards .mobile-card-quick-actions .index-ico-interacciones {
    width: auto !important;
    height: auto !important;
    min-width: 0 !important;
    padding: 0.15rem !important;
    background: transparent !important;
    border: none !important;
    color: #000000 !important;
}

.index-body .contenedor-mobile-cards .mobile-card-quick-actions .index-ico-interacciones:hover,
.index-body .contenedor-mobile-cards .mobile-card-quick-actions .index-ico-interacciones:active {
    background: transparent !important;
    color: var(--covatel-accent) !important;
}

.index-body .contenedor-mobile-cards .mobile-card-quick-actions .index-ico-interacciones svg {
    width: 1.1rem !important;
    height: 1.1rem !important;
    stroke: currentColor;
}

.index-body .contenedor-mobile-cards .mobile-card-quick-actions .index-ico-interacciones.index-ico-star.index-ico-star--on {
    color: #f97316 !important;
}

.index-body .contenedor-mobile-cards .mobile-card-quick-actions .index-ico-interacciones.index-ico-star.index-ico-star--on svg {
    fill: #facc15;
    stroke: #fb923c;
}

.index-body .thead-avisos {
    background: var(--covatel-content-bg, #eef1f3) !important;
    border-bottom: none !important;
}

.index-body .thead-avisos th {
    padding: 0.625rem 0.75rem;
    font-size: 0.6875rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #1e293b !important;
    background: var(--covatel-content-bg, #eef1f3) !important;
    white-space: nowrap;
}

.index-body .thead-avisos .sortable-header:hover {
    background: #e5e9ec !important;
    color: #0f172a !important;
}

.index-body .thead-avisos th svg {
    color: #334155 !important;
    stroke: #334155 !important;
}

.index-body .thead-avisos th svg.opacity-30 {
    opacity: 0.55 !important;
}

.index-body .thead-avisos th.sortable-header .flex {
    min-width: 0;
}

.index-body .thead-avisos th.sortable-header .flex > span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    flex-shrink: 1;
    min-width: 0;
}

.index-body .thead-avisos th.sortable-header .flex svg {
    flex-shrink: 0;
}

.index-body .aviso-row {
    border-left: none !important;
}

.index-body .aviso-row:hover {
    background: #f8fafc !important;
}

.index-body .aviso-row td:first-child,
.index-body .thead-avisos th:first-child {
    padding-left: 0.75rem;
}

.index-body .tabla-avisos .index-col-interacciones-cell .index-ico-interacciones {
    border-radius: 0;
}

[data-theme="dark"] .index-body .thead-avisos {
    background: var(--field) !important;
    border-bottom: none !important;
}

[data-theme="dark"] .index-body .thead-avisos th {
    background: var(--field) !important;
    color: var(--text) !important;
}

[data-theme="dark"] .index-body .thead-avisos th svg {
    color: var(--muted) !important;
    stroke: var(--muted) !important;
}

[data-theme="dark"] .index-body .thead-avisos .sortable-header:hover {
    background: var(--panel) !important;
    color: var(--text) !important;
}

.index-body .index-footer-count {
    border-top: 1px solid var(--covatel-border);
    background: #f8fafc;
}

.index-body .toast {
    border-radius: 0 !important;
}

.index-body .flatpickr-calendar {
    border-radius: 0 !important;
}

/* Gestión de avisos */
.ga-body {
    margin: 0;
    min-height: 100vh;
    min-height: 100dvh;
    box-sizing: border-box;
    padding: 0 0 6rem;
    font-family: var(--covatel-font);
    background: var(--covatel-accent);
    color: var(--covatel-text);
}

@media (min-width: 768px) {
    .ga-body {
        background: var(--covatel-content-bg);
    }
}

.ga-body *,
.ga-body *::before,
.ga-body *::after {
    border-radius: 0 !important;
}

.ga-page {
    margin: 0;
    padding: var(--covatel-page-gap) 0 0;
}

.ga-body > aside.covatel-sidebar {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    bottom: 0 !important;
    z-index: 10000;
}

.ga-body > header.covatel-topbar,
.ga-body > header.covatel-topbar-mobile {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 10000;
}

/* Toast/progreso fuera del flujo del documento */
.ga-body > #toast-container {
    position: fixed;
    pointer-events: none;
}

.ga-body > .progress-bar {
    display: none !important;
}

.ga-main {
    width: 100%;
    max-width: var(--covatel-content-max);
    margin-left: auto;
    margin-right: auto;
    padding: 0 var(--covatel-content-pad-x) 2rem;
}

@media (min-width: 768px) {
    body.covatel-app-shell.ga-body,
    body.covatel-app-shell.index-body,
    body.covatel-app-shell.inicio-body,
    body.covatel-app-shell.firmas-body,
    body.covatel-app-shell.ia-body,
    body.covatel-app-shell.informes-body {
        background: var(--covatel-content-bg) !important;
    }

    .covatel-app-shell.ga-body .ga-page {
        width: 100%;
        max-width: none;
    }

    .covatel-app-shell.ga-body .ga-main {
        max-width: var(--covatel-content-max);
        width: 100%;
        margin-left: 0;
        margin-right: auto;
        padding: 0 0 2rem;
    }

    .covatel-app-shell.ga-body .ga-main--calendario {
        max-width: none;
        width: 100%;
    }

    .covatel-app-shell.ga-body .ga-main--presupuestos,
    .covatel-app-shell.firmas-body .firmas-main.ga-main {
        max-width: var(--covatel-content-max);
        width: 100%;
        margin-left: 0;
        margin-right: auto;
        padding-left: 0;
        padding-right: 0;
    }

    .covatel-app-shell.ga-body .ga-main--ultimospartes {
        max-width: none;
        width: 100%;
        margin: 0;
        padding: 0 0 2rem;
    }

    .covatel-app-shell.ia-body {
        height: 100dvh;
        max-height: 100dvh;
        overflow: hidden;
        padding-bottom: 0;
    }

    .covatel-app-shell.ia-body .covatel-main {
        flex: 1 1 auto;
        min-height: 0;
        overflow: hidden;
        padding: 0;
        display: flex;
        flex-direction: column;
    }

    .covatel-app-shell.ia-body .ia-page.ga-page,
    .covatel-app-shell.ia-body .ia-main.ga-main {
        flex: 1 1 auto;
        min-height: 0;
        max-width: none;
        width: 100%;
        margin: 0;
        padding: 0;
    }

    .covatel-app-shell.ia-body .importador-wrapper {
        gap: 0;
        height: 100%;
        min-height: 0;
        margin: 0;
        padding: 0;
        min-width: 0;
    }

    .covatel-app-shell.ia-body .importador-left {
        flex: 1 1 0;
        width: 50%;
        min-width: 240px;
        min-height: 0;
        display: flex;
        flex-direction: column;
    }

    .covatel-app-shell.ia-body .importador-left .importador-panel {
        border-top: none;
        border-left: none;
        border-right: none;
        border-bottom: none;
        border-radius: 0;
        height: 100%;
    }

    .covatel-app-shell.ia-body .importador-right {
        flex: 1 1 0;
        width: 50%;
        max-width: none;
        min-width: 460px;
        overflow: hidden;
        display: flex;
        flex-direction: column;
        border-left: 1px solid var(--covatel-border-strong);
        container-type: inline-size;
        container-name: importador-form-col;
    }

    .covatel-app-shell.ia-body .importador-form-panel.gestion-avisos-form-panel.importador-form-page-panel {
        border-top: none !important;
        border-left: none !important;
        border-right: none !important;
        border-radius: 0;
        height: 100%;
        padding: 0 !important;
        background: transparent !important;
    }

    .covatel-app-shell.ga-body .presupuestos-panel,
    .covatel-app-shell.ga-body .calendario-panel,
    .covatel-app-shell.firmas-body .firmas-panel.gestion-avisos-form-panel {
        border-left: none !important;
    }

    .covatel-app-shell.ga-body .ultimospartes-panel {
        border-left: none !important;
        border-right: none !important;
        max-width: none;
        width: 100%;
    }

    .covatel-app-shell.index-body .barra-busqueda-filtros {
        background: var(--covatel-accent);
        border-bottom: none;
    }

    .covatel-app-shell.informes-body .ga-main,
    .covatel-app-shell.informes-body .informes-page {
        max-width: var(--covatel-content-max);
        width: 100%;
        margin-left: 0;
        margin-right: auto;
        padding: 1.5rem 0 2rem;
        background: var(--covatel-content-bg);
    }
}

@media (min-width: 640px) {
    .ga-main {
        padding-bottom: 2rem;
    }
}

@media (max-width: 639px) {
    .ga-body {
        background: var(--covatel-surface);
        padding-bottom: 5rem;
    }

    .ga-main {
        padding: 0 !important;
        max-width: none !important;
    }

    .ga-body .gestion-avisos-form-panel {
        --ga-panel-pad: 1rem;
        border: none !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }
}

.ga-body .gestion-avisos-form-panel {
    background: var(--covatel-surface) !important;
    border: 1px solid var(--covatel-border-strong) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}

.ga-body .ga-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 0;
}

.ga-body .ga-toolbar .search-container {
    flex: 1 1 14rem;
    min-width: 0;
    max-width: none;
}

.ga-body .ga-toolbar .search-container .relative {
    position: relative;
}

.ga-body .ga-toolbar .search-container .relative > i,
.ga-body .ga-toolbar .search-container .relative > svg {
    position: absolute;
    right: 0.75rem;
    top: 50%;
    transform: translateY(-50%);
    pointer-events: none;
    color: var(--covatel-muted);
}

.ga-body .tech-input,
.ga-body .client-input,
.ga-body select.tech-input {
    border-radius: 0 !important;
    border-color: var(--covatel-border-strong) !important;
    box-shadow: none !important;
}

.ga-body .tech-input:focus,
.ga-body .client-input:focus,
.ga-body select.tech-input:focus {
    border-color: var(--covatel-accent) !important;
    box-shadow: var(--covatel-focus-ring) !important;
}

/* Selects nativos: flecha derecha unificada */
.ga-body select.tech-input,
.ga-body select.client-input {
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    cursor: pointer;
    padding-right: 2.5rem !important;
    background-image: var(--covatel-select-chevron);
    background-position: right 0.5rem center;
    background-repeat: no-repeat;
    background-size: 1.25em 1.25em;
}

.ga-body select.tech-input:focus,
.ga-body select.client-input:focus {
    background-image: var(--covatel-select-chevron);
    background-position: right 0.5rem center;
    background-repeat: no-repeat;
    background-size: 1.25em 1.25em;
}

.ga-body .card-section {
    border-radius: 0 !important;
    box-shadow: none !important;
}

.ga-body .toast,
.ga-body .flatpickr-calendar,
.ga-body .search-results {
    border-radius: 0 !important;
}

.ga-body .progress-bar {
    display: none !important;
    top: 0;
    z-index: 9998;
}

/* =============================================================================
   Panel de formulario de avisos (gestión + nuevo aviso + futuras páginas)
   Fuente única de verdad visual — no duplicar en vistas PHP.
   ============================================================================= */

:root {
    --covatel-panel-teal: #d0e7ed;
    --covatel-panel-gray: #f9fafb;
    --covatel-panel-gray-alt: #eef1f3;
    --covatel-panel-header-title-py: 0.5rem;
    --covatel-panel-header-title-px: 0.75rem;
    --covatel-btn-orange: #f59e0b;
    --covatel-btn-orange-hover: #d97706;
    --covatel-btn-danger: #c62828;
    --covatel-btn-danger-hover: #b91c1c;
}

/* --- Secciones del formulario --- */
.ga-body .gestion-avisos-form-panel .card-section {
    box-sizing: border-box;
    border-radius: 0 !important;
    box-shadow: none !important;
}

.ga-body .gestion-avisos-form-panel .card-section[data-section="parte"]:not(.aviso-meta-seccion-panel),
.ga-body .gestion-avisos-form-panel .gestion-bloque-datos-aviso:not(.aviso-meta-seccion-panel) {
    background: var(--covatel-panel-teal);
    border: 1px solid var(--covatel-accent);
}

/* Paneles unificados (fila superior + cliente + incidencia): borde verde, cabecera accent, cuerpo blanco */
.ga-body .aviso-meta-seccion-panel {
    background: #ffffff !important;
    border: 1px solid var(--covatel-accent) !important;
    padding: 0 !important;
    overflow: hidden;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    min-height: 0;
}

.ga-body .aviso-meta-seccion-panel__header {
    display: flex;
    align-items: center;
    background: var(--covatel-panel-teal);
    color: var(--covatel-accent);
    padding: 0 !important;
    margin: 0;
    min-height: 0;
    flex-shrink: 0;
    width: 100%;
    box-sizing: border-box;
}

.ga-body .aviso-meta-seccion-panel__header > .aviso-meta-seccion-panel__title {
    padding: var(--covatel-panel-header-title-py) var(--covatel-panel-header-title-px) !important;
    flex: 1 1 auto;
    min-width: 0;
    line-height: 1.2 !important;
    color: var(--covatel-accent) !important;
}

.ga-body .aviso-meta-seccion-panel__header.gestion-cita-cabecera {
    justify-content: space-between;
    gap: 0;
}

.ga-body .aviso-meta-seccion-panel__header.gestion-cita-cabecera > .cita-send-btn {
    flex-shrink: 0;
    align-self: center;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.5rem;
    min-width: 1.5rem;
    height: 1.5rem;
    margin: 0 3px 0 0 !important;
    padding: 0 !important;
    border-radius: 2px;
    background: var(--covatel-accent) !important;
    border: none !important;
    border-left: 1px solid var(--covatel-accent-dark) !important;
    color: #ffffff !important;
}

.ga-body .aviso-meta-seccion-panel__header.gestion-cita-cabecera > .cita-send-btn:hover {
    background: var(--covatel-accent-dark) !important;
}

.ga-body .aviso-meta-seccion-panel__header.gestion-partes-cabecera {
    flex-wrap: nowrap;
    justify-content: space-between;
    gap: 0;
    margin-bottom: 0 !important;
}

.ga-body .aviso-meta-seccion-panel__header.gestion-partes-cabecera > .gestion-partes-toolbar {
    flex-shrink: 0;
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: flex-end;
    gap: 0.35rem;
    margin: 0 !important;
    padding: 3px !important;
    padding-left: 0 !important;
}

.ga-body .aviso-meta-seccion-panel__header.gestion-partes-cabecera .gestion-partes-toolbar #visita-badge-gestion {
    padding: 0.2rem 0.5rem !important;
    font-size: 0.5625rem !important;
    line-height: 1.2 !important;
    border-color: rgba(251, 191, 36, 0.85) !important;
    background: rgba(255, 251, 235, 0.95) !important;
}

.ga-body .aviso-meta-seccion-panel__header.gestion-partes-cabecera .gestion-partes-toolbar #btn-nueva-visita-gestion {
    padding: 0.2rem 0.5rem !important;
    font-size: 0.5625rem !important;
    line-height: 1.2 !important;
    min-height: 0 !important;
    background: var(--covatel-accent) !important;
    border: 1px solid var(--covatel-accent-dark) !important;
    color: #ffffff !important;
}

.ga-body .aviso-meta-seccion-panel__header.gestion-partes-cabecera .gestion-partes-toolbar #btn-nueva-visita-gestion:hover {
    background: var(--covatel-accent-dark) !important;
    border-color: var(--covatel-accent-deep) !important;
}

.ga-body .aviso-meta-seccion-panel__title {
    margin: 0 !important;
    color: var(--covatel-accent) !important;
    font-size: 0.72rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    gap: 0 !important;
    display: flex !important;
    align-items: center !important;
}

.ga-body .gestion-avisos-form-panel .aviso-meta-seccion-panel__title.section-title {
    margin-bottom: 0 !important;
}

.ga-body .aviso-meta-seccion-panel__header.gestion-cita-cabecera > .cita-send-btn i[data-lucide],
.ga-body .aviso-meta-seccion-panel__header.gestion-cita-cabecera > .cita-send-btn i[data-lucide] svg {
    color: #ffffff !important;
    stroke: #ffffff !important;
}

.ga-body .aviso-meta-seccion-panel__body {
    padding: 0.85rem;
    background: #ffffff;
    flex: 1 1 auto;
    min-height: 0;
    box-sizing: border-box;
}

.ga-body .aviso-meta-seccion-panel.gestion-bloque-partes-aviso {
    display: flex;
    flex-direction: column;
    min-height: 0;
}

.ga-body .aviso-meta-seccion-panel.gestion-bloque-partes-aviso .aviso-meta-seccion-panel__body {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    padding: 0;
}

.ga-body .aviso-meta-seccion-panel__title i[data-lucide] {
    display: none !important;
}

.ga-body .ga-page--gestion-avisos .aviso-meta-seccion-panel__body .tech-input:not(select),
.ga-body .ga-page--gestion-avisos .aviso-meta-seccion-panel__body .client-input:not(select),
.ga-body .ga-page--gestion-avisos .aviso-meta-seccion-panel__body .campo-fecha-cita input,
.ga-body .ga-page--gestion-avisos .aviso-meta-seccion-panel__body .campo-fecha-cita input.flatpickr-input {
    background-color: #f4f4f4 !important;
    border: 1px solid transparent !important;
    box-shadow: none !important;
}

.ga-body .ga-page--gestion-avisos .aviso-meta-seccion-panel__body select.tech-input,
.ga-body .ga-page--gestion-avisos .aviso-meta-seccion-panel__body select.client-input {
    background-color: #f4f4f4 !important;
    background-image: var(--covatel-select-chevron) !important;
    background-position: right 0.5rem center !important;
    background-repeat: no-repeat !important;
    background-size: 1.25em 1.25em !important;
    border: 1px solid transparent !important;
    box-shadow: none !important;
    padding-right: 2.5rem !important;
    appearance: none !important;
    -webkit-appearance: none !important;
    cursor: pointer;
}

.ga-body .ga-page--gestion-avisos .aviso-meta-seccion-panel__body .tech-input[readonly]:not(.cita-fecha-has-value) {
    color: var(--covatel-muted);
}

.ga-body .ga-page--gestion-avisos .gestion-bloque-cita-aviso .aviso-meta-seccion-panel__body .campo-fecha-cita input[readonly].cita-fecha-has-value,
.ga-body .ga-page--gestion-avisos .gestion-bloque-cita-aviso .campo-fecha-cita input#cita_fecha.cita-fecha-has-value,
.ga-body .ga-page--gestion-avisos .gestion-bloque-cita-aviso .campo-fecha-cita input.flatpickr-input.cita-fecha-has-value {
    color: #000000 !important;
    -webkit-text-fill-color: #000000 !important;
    font-weight: 700 !important;
    opacity: 1 !important;
}

.ga-body .ga-page--gestion-avisos .gestion-bloque-cita-aviso .campo-fecha-cita input#cita_fecha:placeholder-shown,
.ga-body .ga-page--gestion-avisos .gestion-bloque-cita-aviso .campo-fecha-cita input.flatpickr-input:placeholder-shown {
    color: #b0bcc9 !important;
    font-weight: 400 !important;
}

.ga-body .ga-page--gestion-avisos .aviso-meta-seccion-panel__body .tech-input:not(select):focus,
.ga-body .ga-page--gestion-avisos .aviso-meta-seccion-panel__body select.tech-input:focus,
.ga-body .ga-page--gestion-avisos .aviso-meta-seccion-panel__body .campo-fecha-cita input:focus {
    background-color: #f4f4f4 !important;
    border-color: var(--covatel-accent) !important;
    border-width: 1px !important;
    box-shadow: none !important;
}

.ga-body .aviso-meta-seccion-panel #aviso_num::placeholder {
    color: var(--covatel-muted);
    opacity: 1;
    font-weight: 400;
}

.ga-body .aviso-meta-seccion-panel #aviso_num:not(:placeholder-shown) {
    border-color: transparent !important;
    font-weight: 600 !important;
    color: #000000 !important;
}

.ga-body .gestion-avisos-form-panel .card-section[data-section="parte"]:not(.aviso-meta-seccion-panel) .tech-input[readonly],
.ga-body .gestion-avisos-form-panel .gestion-bloque-datos-aviso:not(.aviso-meta-seccion-panel) .tech-input[readonly] {
    color: var(--covatel-muted);
}

.ga-body .gestion-avisos-form-panel .card-section[data-section="parte"]:not(.aviso-meta-seccion-panel) #aviso_num::placeholder,
.ga-body .gestion-avisos-form-panel .gestion-bloque-datos-aviso:not(.aviso-meta-seccion-panel) #aviso_num::placeholder {
    color: var(--covatel-muted);
    opacity: 1;
    font-weight: 400;
}

.ga-body .gestion-avisos-form-panel .card-section[data-section="parte"]:not(.aviso-meta-seccion-panel) #aviso_num:not(:placeholder-shown),
.ga-body .gestion-avisos-form-panel .gestion-bloque-datos-aviso:not(.aviso-meta-seccion-panel) #aviso_num:not(:placeholder-shown) {
    border-color: #000000 !important;
    font-weight: 600 !important;
    color: #000000 !important;
}

.ga-body .gestion-avisos-form-panel .card-section[data-section="parte"]:not(.aviso-meta-seccion-panel) .tech-input {
    border: 1px solid #9a9a9a;
    background: #ffffff;
}

.ga-body .gestion-avisos-form-panel .card-section[data-section="cliente"],
.ga-body .gestion-avisos-form-panel .card-section[data-section="detalle"] {
    background: var(--covatel-panel-gray);
    border: 1px solid #b0b5bd;
}

/* Nuevo aviso / Gestión / Importador: sin caja blanca exterior; cliente/detalle sobre fondo página */
.ga-body .gestion-avisos-form-panel.nuevo-aviso-form-panel,
.ga-body .gestion-avisos-form-panel.gestion-avisos-page-panel,
.ga-body .gestion-avisos-form-panel.importador-form-page-panel,
.ga-body .gestion-avisos-form-panel.calendario-page-panel,
.ga-body .gestion-avisos-form-panel.partes-page-panel,
.ga-body .gestion-avisos-form-panel.ultimospartes-page-panel,
.ga-body .gestion-avisos-form-panel.firmas-page-panel,
.ga-body .gestion-avisos-form-panel.presupuestos-page-panel {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
}

.ga-body .gestion-avisos-form-panel.ga-aviso-form-panel .card-section[data-section="cliente"]:not(.cliente-seccion-panel),
.ga-body .gestion-avisos-form-panel.ga-aviso-form-panel .card-section[data-section="detalle"]:not(.incidencia-seccion-panel) {
    background: transparent !important;
    border: none !important;
}

/* Nuevo aviso / Gestión avisos: bloque cliente con cabecera y borde verde web */
.ga-body .ga-page--nuevo-aviso .card-section.cliente-seccion-panel[data-section="cliente"],
.ga-body .ga-page--gestion-avisos .card-section.cliente-seccion-panel[data-section="cliente"],
.ga-body .ga-page--partes .card-section.cliente-seccion-panel[data-section="cliente"] {
    background: #ffffff !important;
    border: 1px solid var(--covatel-accent) !important;
    padding: 0 !important;
    overflow: visible;
    position: relative;
    z-index: 3;
}

.ga-body .ga-page--nuevo-aviso .cliente-seccion-panel__body,
.ga-body .ga-page--gestion-avisos .cliente-seccion-panel__body,
.ga-body .ga-page--partes .cliente-seccion-panel__body {
    overflow: visible;
}

.ga-body .cliente-seccion-panel__header,
.ga-body .incidencia-seccion-panel__header {
    display: flex;
    align-items: stretch;
    background: var(--covatel-accent);
    color: #ffffff;
    padding: 0;
    min-height: 0;
}

.ga-body .cliente-seccion-panel__header > .cliente-seccion-panel__title,
.ga-body .incidencia-seccion-panel__header > .incidencia-seccion-panel__title {
    padding: var(--covatel-panel-header-title-py) var(--covatel-panel-header-title-px) !important;
    flex: 1 1 auto;
    min-width: 0;
    align-self: center;
    line-height: 1.2 !important;
}

.ga-body .cliente-seccion-panel__title,
.ga-body .incidencia-seccion-panel__title {
    margin: 0 !important;
    color: #ffffff !important;
    font-size: 0.72rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    gap: 0.35rem !important;
    display: flex !important;
    align-items: center !important;
}

.ga-body .gestion-avisos-form-panel .cliente-seccion-panel__title.section-title,
.ga-body .gestion-avisos-form-panel .incidencia-seccion-panel__title.section-title {
    margin-bottom: 0 !important;
}

.ga-body .cliente-seccion-panel__title i[data-lucide],
.ga-body .cliente-seccion-panel__title i[data-lucide] svg,
.ga-body .incidencia-seccion-panel__title i[data-lucide],
.ga-body .incidencia-seccion-panel__title i[data-lucide] svg {
    color: #ffffff !important;
    stroke: #ffffff !important;
    width: 0.85rem !important;
    height: 0.85rem !important;
    display: inline-flex;
    align-items: center;
    flex-shrink: 0;
}

.ga-body .cliente-seccion-panel__body {
    padding: 0.85rem;
    background: #ffffff;
}

.ga-body .ga-page--nuevo-aviso .cliente-seccion-panel__body .tech-input:not(select),
.ga-body .ga-page--nuevo-aviso .cliente-seccion-panel__body .client-input:not(select),
.ga-body .ga-page--gestion-avisos .cliente-seccion-panel__body .tech-input:not(select),
.ga-body .ga-page--gestion-avisos .cliente-seccion-panel__body .client-input:not(select),
.ga-body .ga-page--partes .cliente-seccion-panel__body .tech-input:not(select),
.ga-body .ga-page--partes .cliente-seccion-panel__body .client-input:not(select),
.ga-body .ga-page--nuevo-aviso .incidencia-seccion-panel__body .tech-input:not(select):not(.origen-aviso-dropdown__agentes-input),
.ga-body .ga-page--nuevo-aviso .incidencia-seccion-panel__body .client-input:not(select),
.ga-body .ga-page--nuevo-aviso .incidencia-seccion-panel__body textarea.tech-input,
.ga-body .ga-page--nuevo-aviso .incidencia-seccion-panel__body #origen_aviso_display,
.ga-body .ga-page--gestion-avisos .incidencia-seccion-panel__body .tech-input:not(select):not(.origen-aviso-dropdown__agentes-input),
.ga-body .ga-page--gestion-avisos .incidencia-seccion-panel__body .client-input:not(select),
.ga-body .ga-page--gestion-avisos .incidencia-seccion-panel__body textarea.tech-input,
.ga-body .ga-page--gestion-avisos .incidencia-seccion-panel__body #origen_aviso_display,
.ga-body .ga-page--partes .incidencia-seccion-panel__body .tech-input:not(select):not(.origen-aviso-dropdown__agentes-input),
.ga-body .ga-page--partes .incidencia-seccion-panel__body .client-input:not(select),
.ga-body .ga-page--partes .incidencia-seccion-panel__body textarea.tech-input,
.ga-body .ga-page--partes .incidencia-seccion-panel__body #origen_display {
    background-color: #f4f4f4 !important;
    border: 1px solid transparent !important;
    box-shadow: none !important;
}

.ga-body .ga-page--nuevo-aviso .cliente-seccion-panel__body select.tech-input,
.ga-body .ga-page--nuevo-aviso .cliente-seccion-panel__body select.client-input,
.ga-body .ga-page--gestion-avisos .cliente-seccion-panel__body select.tech-input,
.ga-body .ga-page--gestion-avisos .cliente-seccion-panel__body select.client-input,
.ga-body .ga-page--partes .cliente-seccion-panel__body select.tech-input,
.ga-body .ga-page--partes .cliente-seccion-panel__body select.client-input,
.ga-body .ga-page--nuevo-aviso .incidencia-seccion-panel__body select.tech-input,
.ga-body .ga-page--nuevo-aviso .incidencia-seccion-panel__body select.client-input,
.ga-body .ga-page--gestion-avisos .incidencia-seccion-panel__body select.tech-input,
.ga-body .ga-page--gestion-avisos .incidencia-seccion-panel__body select.client-input,
.ga-body .ga-page--partes .incidencia-seccion-panel__body select.tech-input,
.ga-body .ga-page--partes .incidencia-seccion-panel__body select.client-input {
    background-color: #f4f4f4 !important;
    background-image: var(--covatel-select-chevron) !important;
    background-position: right 0.5rem center !important;
    background-repeat: no-repeat !important;
    background-size: 1.25em 1.25em !important;
    border: 1px solid transparent !important;
    box-shadow: none !important;
    padding-right: 2.5rem !important;
    appearance: none !important;
    -webkit-appearance: none !important;
    cursor: pointer;
}

.ga-body .ga-page--nuevo-aviso .incidencia-seccion-panel__body #origen_aviso_display,
.ga-body .ga-page--gestion-avisos .incidencia-seccion-panel__body #origen_aviso_display {
    padding-right: 2.5rem !important;
}

.ga-body .ga-page--nuevo-aviso .cliente-seccion-panel__body .tech-input:not(select):focus,
.ga-body .ga-page--nuevo-aviso .cliente-seccion-panel__body .client-input:not(select):focus,
.ga-body .ga-page--gestion-avisos .cliente-seccion-panel__body .tech-input:not(select):focus,
.ga-body .ga-page--gestion-avisos .cliente-seccion-panel__body .client-input:not(select):focus,
.ga-body .ga-page--partes .cliente-seccion-panel__body .tech-input:not(select):focus,
.ga-body .ga-page--partes .cliente-seccion-panel__body .client-input:not(select):focus,
.ga-body .ga-page--nuevo-aviso .incidencia-seccion-panel__body .tech-input:not(select):not(.origen-aviso-dropdown__agentes-input):focus,
.ga-body .ga-page--nuevo-aviso .incidencia-seccion-panel__body .client-input:not(select):focus,
.ga-body .ga-page--nuevo-aviso .incidencia-seccion-panel__body textarea.tech-input:focus,
.ga-body .ga-page--nuevo-aviso .incidencia-seccion-panel__body #origen_aviso_display:focus,
.ga-body .ga-page--gestion-avisos .incidencia-seccion-panel__body .tech-input:not(select):not(.origen-aviso-dropdown__agentes-input):focus,
.ga-body .ga-page--gestion-avisos .incidencia-seccion-panel__body .client-input:not(select):focus,
.ga-body .ga-page--gestion-avisos .incidencia-seccion-panel__body textarea.tech-input:focus,
.ga-body .ga-page--gestion-avisos .incidencia-seccion-panel__body #origen_aviso_display:focus,
.ga-body .ga-page--partes .incidencia-seccion-panel__body .tech-input:not(select):not(.origen-aviso-dropdown__agentes-input):focus,
.ga-body .ga-page--partes .incidencia-seccion-panel__body .client-input:not(select):focus,
.ga-body .ga-page--partes .incidencia-seccion-panel__body textarea.tech-input:focus,
.ga-body .ga-page--partes .incidencia-seccion-panel__body #origen_display:focus {
    background-color: #f4f4f4 !important;
    border-color: var(--covatel-accent) !important;
    border-width: 1px !important;
    box-shadow: none !important;
}

.ga-body .ga-page--nuevo-aviso .cliente-seccion-panel__body select.tech-input:focus,
.ga-body .ga-page--nuevo-aviso .cliente-seccion-panel__body select.client-input:focus,
.ga-body .ga-page--gestion-avisos .cliente-seccion-panel__body select.tech-input:focus,
.ga-body .ga-page--gestion-avisos .cliente-seccion-panel__body select.client-input:focus,
.ga-body .ga-page--partes .cliente-seccion-panel__body select.tech-input:focus,
.ga-body .ga-page--partes .cliente-seccion-panel__body select.client-input:focus,
.ga-body .ga-page--nuevo-aviso .incidencia-seccion-panel__body select.tech-input:focus,
.ga-body .ga-page--nuevo-aviso .incidencia-seccion-panel__body select.client-input:focus,
.ga-body .ga-page--gestion-avisos .incidencia-seccion-panel__body select.tech-input:focus,
.ga-body .ga-page--gestion-avisos .incidencia-seccion-panel__body select.client-input:focus,
.ga-body .ga-page--partes .incidencia-seccion-panel__body select.tech-input:focus,
.ga-body .ga-page--partes .incidencia-seccion-panel__body select.client-input:focus {
    background-color: #f4f4f4 !important;
    background-image: var(--covatel-select-chevron) !important;
    background-position: right 0.5rem center !important;
    background-repeat: no-repeat !important;
    background-size: 1.25em 1.25em !important;
    border-color: var(--covatel-accent) !important;
    border-width: 1px !important;
    box-shadow: none !important;
}

.ga-body .ga-page--nuevo-aviso .incidencia-seccion-panel__body textarea#historial_avisos_cliente:focus,
.ga-body .ga-page--gestion-avisos .incidencia-seccion-panel__body textarea#historial_avisos_cliente:focus,
.ga-body .ga-page--partes .incidencia-seccion-panel__body textarea#historial_avisos_cliente:focus {
    border-color: #7c3aed !important;
}

.ga-body .ga-page--nuevo-aviso .incidencia-seccion-panel__body textarea#mensaje.mensaje-textarea:focus,
.ga-body .ga-page--gestion-avisos .incidencia-seccion-panel__body textarea#mensaje.mensaje-textarea:focus,
.ga-body .ga-page--partes .incidencia-seccion-panel__body textarea#descripcion.mensaje-textarea:focus {
    border-color: #ef4444 !important;
}

.ga-body .ga-page--nuevo-aviso .cliente-seccion-panel__body .tech-input[readonly]:not(select),
.ga-body .ga-page--nuevo-aviso .cliente-seccion-panel__body .client-input[readonly]:not(select),
.ga-body .ga-page--gestion-avisos .cliente-seccion-panel__body .tech-input[readonly]:not(select),
.ga-body .ga-page--gestion-avisos .cliente-seccion-panel__body .client-input[readonly]:not(select),
.ga-body .ga-page--nuevo-aviso .incidencia-seccion-panel__body .tech-input[readonly]:not(select),
.ga-body .ga-page--nuevo-aviso .incidencia-seccion-panel__body .client-input[readonly]:not(select),
.ga-body .ga-page--nuevo-aviso .incidencia-seccion-panel__body #origen_aviso_display[readonly],
.ga-body .ga-page--gestion-avisos .incidencia-seccion-panel__body .tech-input[readonly]:not(select),
.ga-body .ga-page--gestion-avisos .incidencia-seccion-panel__body .client-input[readonly]:not(select),
.ga-body .ga-page--gestion-avisos .incidencia-seccion-panel__body #origen_aviso_display[readonly] {
    background-color: #f4f4f4 !important;
    border-color: transparent !important;
    opacity: 1;
}

.ga-body .ga-page--nuevo-aviso .cliente-seccion-panel__body .tech-input[readonly]:focus,
.ga-body .ga-page--nuevo-aviso .cliente-seccion-panel__body .client-input[readonly]:focus,
.ga-body .ga-page--gestion-avisos .cliente-seccion-panel__body .tech-input[readonly]:focus,
.ga-body .ga-page--gestion-avisos .cliente-seccion-panel__body .client-input[readonly]:focus,
.ga-body .ga-page--nuevo-aviso .incidencia-seccion-panel__body .tech-input[readonly]:focus,
.ga-body .ga-page--nuevo-aviso .incidencia-seccion-panel__body .client-input[readonly]:focus,
.ga-body .ga-page--nuevo-aviso .incidencia-seccion-panel__body #origen_aviso_display[readonly]:focus,
.ga-body .ga-page--gestion-avisos .incidencia-seccion-panel__body .tech-input[readonly]:focus,
.ga-body .ga-page--gestion-avisos .incidencia-seccion-panel__body .client-input[readonly]:focus,
.ga-body .ga-page--gestion-avisos .incidencia-seccion-panel__body #origen_aviso_display[readonly]:focus {
    border-color: transparent !important;
    box-shadow: none !important;
}

/* Nuevo aviso / Gestión avisos: bloque incidencia — cabecera verde, cuerpo blanco, campos grises (como cliente) */
.ga-body .ga-page--nuevo-aviso .card-section.incidencia-seccion-panel[data-section="detalle"],
.ga-body .ga-page--gestion-avisos .card-section.incidencia-seccion-panel[data-section="detalle"],
.ga-body .ga-page--partes .card-section.incidencia-seccion-panel[data-section="detalle"] {
    background: #ffffff !important;
    border: 1px solid var(--covatel-accent) !important;
    padding: 0 !important;
    overflow: visible;
    position: relative;
    z-index: 2;
}

/* Partes: borde exterior verde web en Cliente + Incidencia */
.ga-body .ga-page--partes .gestion-avisos-form-panel.partes-form-panel.partes-page-panel .card-section.cliente-seccion-panel[data-section="cliente"],
.ga-body .ga-page--partes .gestion-avisos-form-panel.partes-form-panel.partes-page-panel .card-section.incidencia-seccion-panel[data-section="detalle"] {
    border: 1px solid var(--covatel-accent) !important;
    box-shadow: none !important;
}

/* Partes: Datos del aviso + lista de partes (sin columna cita reservada en gestión) */
.ga-body .ga-page--partes .gestion-datos-partes-fila {
    gap: 0.75rem;
}

@media (min-width: 768px) {
    .ga-body .ga-page--partes .gestion-datos-partes-fila {
        display: grid !important;
        grid-template-columns: minmax(0, max-content) minmax(0, 1fr) !important;
        grid-template-areas: "datos partes" !important;
        column-gap: 0.75rem !important;
        row-gap: 0;
        align-items: stretch;
    }

    .ga-body .ga-page--partes .gestion-datos-partes-fila > .gestion-bloque-datos-aviso {
        grid-area: datos;
        flex: 0 0 auto !important;
        width: auto !important;
        max-width: min(100%, 15rem) !important;
    }

    .ga-body .ga-page--partes .gestion-datos-partes-fila > .gestion-partes-columna {
        grid-area: partes;
        width: 100% !important;
        min-width: 0;
    }
}

.ga-body .ga-page--nuevo-aviso .incidencia-seccion-panel__body,
.ga-body .ga-page--gestion-avisos .incidencia-seccion-panel__body,
.ga-body .ga-page--partes .incidencia-seccion-panel__body {
    overflow: visible;
}

.ga-page--nuevo-aviso .incidencia-fila-campos__item--origen .origen-aviso-wrapper,
.ga-page--nuevo-aviso .incidencia-fila-campos__item--origen .origen-aviso-wrapper > div,
.ga-page--gestion-avisos .incidencia-fila-campos__item--origen .origen-aviso-wrapper,
.ga-page--gestion-avisos .incidencia-fila-campos__item--origen .origen-aviso-wrapper > div,
.ga-page--partes .incidencia-fila-campos__item--origen .origen-aviso-wrapper,
.ga-page--partes .incidencia-fila-campos__item--origen .origen-aviso-wrapper > div {
    overflow: visible !important;
}

.ga-page--nuevo-aviso #origen_aviso_dropdown,
.ga-page--gestion-avisos #origen_aviso_dropdown,
.ga-page--partes #origen_dropdown {
    z-index: 10150 !important;
}

.ga-page--nuevo-aviso #suggestions,
.ga-page--nuevo-aviso #suggestions.suggestions--floating,
.ga-page--gestion-avisos #suggestions,
.ga-page--gestion-avisos #suggestions.suggestions--floating,
.ga-page--partes #suggestions,
.ga-page--partes #suggestions.suggestions--floating {
    z-index: 10100 !important;
}

.ga-body .incidencia-seccion-panel__body {
    padding: 0.85rem;
    background: #ffffff;
}

/* Nuevo aviso / Gestión avisos / Partes: fila compacta tipo / prioridad / horario / origen */
.ga-page--nuevo-aviso .incidencia-fila-campos,
.ga-page--gestion-avisos .incidencia-fila-campos,
.ga-page--partes .incidencia-fila-campos {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.45rem;
    align-items: start;
}

@media (min-width: 768px) {
    .ga-page--nuevo-aviso .incidencia-fila-campos,
    .ga-page--gestion-avisos .incidencia-fila-campos,
    .ga-page--partes .incidencia-fila-campos {
        grid-template-columns: auto auto auto minmax(0, 1fr);
    }

    .ga-page--nuevo-aviso .incidencia-fila-campos__item--tipo,
    .ga-page--gestion-avisos .incidencia-fila-campos__item--tipo,
    .ga-page--partes .incidencia-fila-campos__item--tipo {
        width: 11rem;
    }

    .ga-page--nuevo-aviso .incidencia-fila-campos__item--prioridad,
    .ga-page--gestion-avisos .incidencia-fila-campos__item--prioridad,
    .ga-page--partes .incidencia-fila-campos__item--prioridad {
        width: 8.75rem;
    }

    .ga-page--nuevo-aviso .incidencia-fila-campos__item--horario,
    .ga-page--gestion-avisos .incidencia-fila-campos__item--horario,
    .ga-page--partes .incidencia-fila-campos__item--horario {
        width: fit-content;
        max-width: 100%;
    }

    .ga-page--nuevo-aviso .incidencia-fila-campos__item--horario .tech-label,
    .ga-page--gestion-avisos .incidencia-fila-campos__item--horario .tech-label,
    .ga-page--partes .incidencia-fila-campos__item--horario .tech-label {
        white-space: nowrap;
    }

    .ga-page--nuevo-aviso .incidencia-fila-campos__item--tipo select,
    .ga-page--nuevo-aviso .incidencia-fila-campos__item--prioridad select,
    .ga-page--nuevo-aviso .incidencia-fila-campos__item--horario select,
    .ga-page--gestion-avisos .incidencia-fila-campos__item--tipo select,
    .ga-page--gestion-avisos .incidencia-fila-campos__item--prioridad select,
    .ga-page--gestion-avisos .incidencia-fila-campos__item--horario select,
    .ga-page--partes .incidencia-fila-campos__item--tipo select,
    .ga-page--partes .incidencia-fila-campos__item--prioridad select,
    .ga-page--partes .incidencia-fila-campos__item--horario select {
        width: 100%;
        max-width: 100%;
    }

    .ga-page--nuevo-aviso .incidencia-fila-campos__item--origen,
    .ga-page--gestion-avisos .incidencia-fila-campos__item--origen,
    .ga-page--partes .incidencia-fila-campos__item--origen {
        min-width: 0;
    }
}

/* Nuevo aviso / Gestión avisos / Partes: descripción arriba (100%) + historial abajo (mitad alto) */
.ga-page--nuevo-aviso .incidencia-fila-textareas,
.ga-page--gestion-avisos .incidencia-fila-textareas,
.ga-page--partes .incidencia-fila-textareas {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    margin-top: 1.75rem !important;
    padding-top: 0.35rem;
    align-items: stretch;
}

.ga-page--nuevo-aviso .incidencia-fila-textareas__item,
.ga-page--gestion-avisos .incidencia-fila-textareas__item,
.ga-page--partes .incidencia-fila-textareas__item {
    min-width: 0;
    width: 100%;
}

.ga-page--nuevo-aviso .incidencia-fila-textareas .incidencia-textarea-label,
.ga-page--gestion-avisos .incidencia-fila-textareas .incidencia-textarea-label,
.ga-page--partes .incidencia-fila-textareas .incidencia-textarea-label {
    display: block;
    margin-bottom: 0.35rem !important;
}

.ga-page--nuevo-aviso .incidencia-textarea-label__inner,
.ga-page--gestion-avisos .incidencia-textarea-label__inner,
.ga-page--partes .incidencia-textarea-label__inner {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}

.ga-page--nuevo-aviso .incidencia-textarea-label__icon,
.ga-page--gestion-avisos .incidencia-textarea-label__icon {
    width: 0.95rem;
    height: 0.95rem;
    flex-shrink: 0;
}

.ga-page--nuevo-aviso .incidencia-textarea-label__icon--descripcion,
.ga-page--nuevo-aviso .incidencia-textarea-label__icon--descripcion svg,
.ga-page--gestion-avisos .incidencia-textarea-label__icon--descripcion,
.ga-page--gestion-avisos .incidencia-textarea-label__icon--descripcion svg {
    color: #ef4444;
    stroke: #ef4444;
}

.ga-page--nuevo-aviso .incidencia-textarea-label__icon--historial,
.ga-page--nuevo-aviso .incidencia-textarea-label__icon--historial svg,
.ga-page--gestion-avisos .incidencia-textarea-label__icon--historial,
.ga-page--gestion-avisos .incidencia-textarea-label__icon--historial svg {
    color: #7c3aed;
    stroke: #7c3aed;
}

.ga-page--nuevo-aviso .incidencia-fila-textareas__item--descripcion textarea,
.ga-page--gestion-avisos .incidencia-fila-textareas__item--descripcion textarea,
.ga-page--partes .incidencia-fila-textareas__item--descripcion textarea {
    min-height: 180px;
}

.ga-page--nuevo-aviso .incidencia-fila-textareas__item--historial textarea,
.ga-page--gestion-avisos .incidencia-fila-textareas__item--historial textarea,
.ga-page--partes .incidencia-fila-textareas__item--historial textarea {
    min-height: 90px;
}

/* Tabla vecinos (comunitario) — verde claro oficial + borde verde web */
.ga-body .vecinos-card {
    border-color: var(--covatel-accent) !important;
}

.ga-body .vecinos-table thead th {
    background: var(--covatel-panel-teal) !important;
    border-bottom-color: var(--covatel-accent) !important;
}

.ga-body .vecinos-table tbody td {
    border-bottom-color: rgba(0, 102, 128, 0.22) !important;
}

.ga-body .vecinos-table tbody tr:nth-child(even) td {
    background: #ffffff !important;
}

.ga-body .vecinos-table .vc-input:focus,
.ga-body .vecinos-table .vc-input-puerta:focus,
.ga-body .vecinos-table .vc-input-tel:focus,
.ga-body .vecinos-table .vc-notas:focus {
    border-color: var(--covatel-accent) !important;
    box-shadow: 0 0 0 2px rgba(0, 102, 128, 0.15) !important;
}

.ga-body .vecinos-table .vc-btn-tel-plus {
    border-color: var(--covatel-accent) !important;
    color: var(--covatel-accent) !important;
}

.ga-body .vecinos-table .vc-btn-tel-plus:hover {
    background: rgba(0, 102, 128, 0.1) !important;
}

.ga-body .vecinos-table .vc-btn-del {
    border-color: var(--covatel-accent) !important;
    background: var(--covatel-panel-teal) !important;
    color: var(--covatel-accent) !important;
}

.ga-body .vecinos-table .vc-btn-del:hover {
    background: #b8dce6 !important;
    color: var(--covatel-accent-dark) !important;
}

/* Origen del aviso: buscador agentes (verde claro) + desplegable modal */
.ga-page--nuevo-aviso .origen-aviso-dropdown__agentes,
.ga-page--gestion-avisos .origen-aviso-dropdown__agentes {
    background: var(--covatel-panel-teal);
    padding: 0.55rem 0.65rem;
    border-bottom: 1px solid rgba(0, 102, 128, 0.12);
}

.ga-page--nuevo-aviso .origen-aviso-dropdown__agentes-busqueda,
.ga-page--gestion-avisos .origen-aviso-dropdown__agentes-busqueda {
    position: relative;
}

.ga-body .ga-page--nuevo-aviso .incidencia-seccion-panel__body .origen-aviso-dropdown__agentes-input,
.ga-page--nuevo-aviso .origen-aviso-dropdown__agentes-input,
.ga-body .ga-page--gestion-avisos .incidencia-seccion-panel__body .origen-aviso-dropdown__agentes-input,
.ga-page--gestion-avisos .origen-aviso-dropdown__agentes-input {
    background: #ffffff !important;
    background-color: #ffffff !important;
    border: 1px solid transparent !important;
    border-radius: 0 !important;
    box-sizing: border-box;
    padding: 0.45rem 0.55rem !important;
    font-size: 0.8125rem !important;
    font-weight: 500 !important;
    color: var(--covatel-text) !important;
}

.ga-body .ga-page--nuevo-aviso .incidencia-seccion-panel__body .origen-aviso-dropdown__agentes-input::placeholder,
.ga-page--nuevo-aviso .origen-aviso-dropdown__agentes-input::placeholder,
.ga-body .ga-page--gestion-avisos .incidencia-seccion-panel__body .origen-aviso-dropdown__agentes-input::placeholder,
.ga-page--gestion-avisos .origen-aviso-dropdown__agentes-input::placeholder {
    color: #64748b;
    font-weight: 500;
    opacity: 1;
}

.ga-body .ga-page--nuevo-aviso .incidencia-seccion-panel__body .origen-aviso-dropdown__agentes-input:focus,
.ga-page--nuevo-aviso .origen-aviso-dropdown__agentes-input:focus,
.ga-body .ga-page--gestion-avisos .incidencia-seccion-panel__body .origen-aviso-dropdown__agentes-input:focus,
.ga-page--gestion-avisos .origen-aviso-dropdown__agentes-input:focus {
    outline: none !important;
    border-color: var(--covatel-accent) !important;
    box-shadow: none !important;
    background: #ffffff !important;
    background-color: #ffffff !important;
}

.ga-page--nuevo-aviso .origen-aviso-dropdown__agentes-resultados,
.ga-page--gestion-avisos .origen-aviso-dropdown__agentes-resultados {
    display: none;
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    right: 0;
    z-index: 10200;
    background: #ffffff;
    border: 1px solid var(--covatel-border-strong);
    box-shadow: 0 10px 28px rgba(15, 23, 42, 0.14);
    max-height: 11rem;
    overflow-y: auto;
    padding: 0.2rem 0;
}

.ga-page--nuevo-aviso .origen-aviso-dropdown__agentes-resultados.is-visible,
.ga-page--gestion-avisos .origen-aviso-dropdown__agentes-resultados.is-visible {
    display: block;
}

.ga-page--nuevo-aviso .origen-aviso-dropdown__agentes-resultados .resultado-agente,
.ga-page--gestion-avisos .origen-aviso-dropdown__agentes-resultados .resultado-agente {
    padding: 0.45rem 0.65rem;
}

.ga-page--nuevo-aviso .origen-aviso-dropdown__agentes-resultados .resultado-agente:hover,
.ga-page--nuevo-aviso .origen-aviso-dropdown__agentes-resultados .resultado-agente.active,
.ga-page--gestion-avisos .origen-aviso-dropdown__agentes-resultados .resultado-agente:hover,
.ga-page--gestion-avisos .origen-aviso-dropdown__agentes-resultados .resultado-agente.active {
    background: var(--covatel-panel-teal);
    color: var(--covatel-accent);
}

.ga-page--nuevo-aviso .origen-aviso-dropdown__opciones-estandar,
.ga-page--gestion-avisos .origen-aviso-dropdown__opciones-estandar {
    padding: 0.45rem 0.5rem 0.55rem;
}

.ga-page--nuevo-aviso .origen-aviso-dropdown .origen-opcion:hover,
.ga-page--gestion-avisos .origen-aviso-dropdown .origen-opcion:hover {
    background: var(--covatel-panel-teal);
    color: var(--covatel-accent);
}

/* Cabecera de página (fondo blanco a ancho completo, altura barra Covatel del sidebar) */
.ga-body .ga-page--nuevo-aviso,
.ga-body .ga-page--gestion-avisos,
.ga-body .ga-page--calendario,
.ga-body .ga-page--partes,
.ga-body .ga-page--ultimospartes,
.ga-body .ga-page--firmas,
.ga-body .ga-page--presupuestos {
    width: 100%;
    max-width: none;
    --ga-panel-pad: 1.25rem;
}

.ga-body .ga-form-page-header {
    box-sizing: border-box;
    width: 100%;
    min-height: var(--covatel-brand-bar-h);
    height: var(--covatel-brand-bar-h);
    background: var(--covatel-surface);
    border-bottom: 1px solid var(--covatel-border);
    display: flex;
    align-items: center;
    flex-shrink: 0;
}

.ga-body .ga-form-page-header__inner {
    box-sizing: border-box;
    width: 100%;
    max-width: var(--covatel-content-max);
    min-width: 0;
    margin: 0;
}

@media (max-width: 639px) {
    .ga-body .ga-page--nuevo-aviso,
    .ga-body .ga-page--gestion-avisos,
    .ga-body .ga-page--calendario,
    .ga-body .ga-page--partes,
    .ga-body .ga-page--ultimospartes,
    .ga-body .ga-page--firmas,
    .ga-body .ga-page--presupuestos {
        --ga-panel-pad: 1rem;
    }
}

@media (min-width: 640px) {
    .ga-body .ga-page--nuevo-aviso,
    .ga-body .ga-page--gestion-avisos,
    .ga-body .ga-page--calendario,
    .ga-body .ga-page--partes,
    .ga-body .ga-page--ultimospartes,
    .ga-body .ga-page--firmas,
    .ga-body .ga-page--presupuestos {
        --ga-panel-pad: 1.5rem;
    }
}

.ga-body .ga-page--nuevo-aviso .ga-form-page-header__inner,
.ga-body .ga-page--gestion-avisos .ga-form-page-header__inner,
.ga-body .ga-page--partes .ga-form-page-header__inner,
.ga-body .ga-page--firmas .ga-form-page-header__inner,
.ga-body .ga-page--presupuestos .ga-form-page-header__inner {
    max-width: var(--covatel-content-max);
    margin-left: 0;
    margin-right: auto;
    padding-left: var(--ga-panel-pad);
    padding-right: var(--ga-panel-pad);
}

.ga-body .ga-page--ultimospartes .ga-form-page-header__inner,
.ga-body .ga-page--calendario .ga-form-page-header__inner {
    max-width: none;
    margin-left: 0;
    margin-right: auto;
    padding-left: var(--ga-panel-pad);
    padding-right: var(--ga-panel-pad);
}

.ga-body .ga-main--nuevo-aviso,
.ga-body .ga-main--gestion-avisos,
.ga-body .ga-main--calendario,
.ga-body .ga-main--partes,
.ga-body .ga-main--ultimospartes,
.ga-body .ga-main--firmas,
.ga-body .ga-main--presupuestos {
    padding-top: 0 !important;
}

.ga-body .ga-form-page-header .ga-page-heading {
    margin-bottom: 0 !important;
    padding-bottom: 0;
}

.ga-body .ga-form-page-header h1.text-2xl {
    font-size: 1.15rem !important;
    margin-bottom: 0 !important;
    line-height: 1.15 !important;
    color: var(--covatel-text);
}

.ga-body .ga-form-page-header h1 + p {
    font-size: 0.72rem !important;
    margin-top: 0.12rem !important;
    margin-bottom: 0 !important;
    line-height: 1.25 !important;
    color: var(--covatel-muted);
}

/* Nuevo aviso / Gestión avisos / Partes: cabecera fija (fondo blanco) */
.ga-body .ga-form-page-header--nuevo-aviso-sticky,
.ga-body .ga-form-page-header--gestion-avisos-sticky,
.ga-body .ga-form-page-header--partes-sticky {
    position: sticky;
    top: 0;
    z-index: 9000;
    background: var(--covatel-surface);
}

@media (max-width: 767px) {
    .ga-body .ga-form-page-header--nuevo-aviso-sticky,
    .ga-body .ga-form-page-header--gestion-avisos-sticky,
    .ga-body .ga-form-page-header--partes-sticky {
        top: var(--covatel-header-h);
    }
}

.ga-body .ga-page--nuevo-aviso .ga-form-page-header__inner--nuevo-aviso {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
    width: 100%;
}

.ga-body .ga-page--nuevo-aviso .ga-form-page-header__copy {
    min-width: 0;
    flex: 1 1 auto;
}

.ga-body .ga-page--nuevo-aviso .nv-aviso-progress {
    display: flex;
    align-items: center;
    flex-shrink: 0;
    margin-left: auto;
    padding-bottom: 0.02rem;
    --nv-progress-active: #14b8a6;
}

.ga-body .ga-page--nuevo-aviso .nv-aviso-progress__node {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.5rem;
    height: 1.5rem;
    color: #cbd5e1;
    transition: color 0.2s ease;
}

.ga-body .ga-page--nuevo-aviso .nv-aviso-progress__node svg,
.ga-body .ga-page--nuevo-aviso .nv-aviso-progress__node [data-lucide] {
    width: 1.05rem;
    height: 1.05rem;
    stroke-width: 2;
}

.ga-body .ga-page--nuevo-aviso .nv-aviso-progress__step.is-complete .nv-aviso-progress__node {
    color: var(--nv-progress-active);
}

.ga-body .ga-page--nuevo-aviso .nv-aviso-progress__connector {
    display: block;
    width: 2.25rem;
    height: 0;
    margin: 0 0.2rem;
    border: 0;
    border-top: 2px dotted #e2e8f0;
    background: transparent;
    flex-shrink: 0;
    align-self: center;
    transition: border-color 0.2s ease;
}

.ga-body .ga-page--nuevo-aviso .nv-aviso-progress__connector.is-complete {
    border-top-color: var(--nv-progress-active);
    background: transparent;
}

@media (max-width: 767px) {
    .ga-body .ga-page--nuevo-aviso .nv-aviso-progress {
        display: none !important;
    }
}

/* Nuevo aviso: textos placeholder de selects e inputs en gris claro */
.ga-body .ga-page--nuevo-aviso {
    --nv-field-placeholder: #b0bcc9;
}

.ga-body .ga-page--nuevo-aviso select.tech-input option,
.ga-body .ga-page--nuevo-aviso select.client-input option {
    color: var(--covatel-text);
}

.ga-body .ga-page--nuevo-aviso select.tech-input:has(option[value=""]:checked),
.ga-body .ga-page--nuevo-aviso select.client-input:has(option[value=""]:checked) {
    color: var(--nv-field-placeholder);
}

.ga-body .ga-page--nuevo-aviso #origen_aviso_display:placeholder-shown {
    color: var(--nv-field-placeholder) !important;
}

.ga-body .ga-page--nuevo-aviso .campo-fecha-cita input:placeholder-shown,
.ga-body .ga-page--nuevo-aviso .campo-fecha-cita input.flatpickr-input:placeholder-shown {
    color: var(--nv-field-placeholder) !important;
}

.ga-body .ga-main--nuevo-aviso .gestion-avisos-form-panel.nuevo-aviso-form-panel,
.ga-body .ga-main--calendario .gestion-avisos-form-panel.calendario-page-panel,
.ga-body .ga-main--partes .gestion-avisos-form-panel.partes-page-panel,
.ga-body .ga-main--ultimospartes .gestion-avisos-form-panel.ultimospartes-page-panel,
.ga-body .ga-main--firmas .gestion-avisos-form-panel.firmas-page-panel,
.ga-body .ga-main--presupuestos .gestion-avisos-form-panel.presupuestos-page-panel {
    padding-top: var(--ga-panel-pad, 1rem) !important;
}

.ga-body .ga-main--gestion-avisos .gestion-avisos-form-panel.gestion-avisos-page-panel.ga-aviso-form-panel {
    padding-top: 0 !important;
}

/* Fondo gris en móvil (nuevo aviso + gestión + calendario + partes + últimos partes + firmas) */
@media (max-width: 639px) {
    body.covatel-app-shell.ga-body--nuevo-aviso,
    body.covatel-app-shell.ga-body--nuevo-aviso .covatel-main,
    body.covatel-app-shell.ga-body--nuevo-aviso .ga-page--nuevo-aviso,
    body.covatel-app-shell.ga-body--nuevo-aviso .ga-main--nuevo-aviso,
    body.covatel-app-shell.ga-body--nuevo-aviso .gestion-avisos-form-panel.nuevo-aviso-form-panel,
    body.covatel-app-shell.ga-body--gestion-avisos,
    body.covatel-app-shell.ga-body--gestion-avisos .covatel-main,
    body.covatel-app-shell.ga-body--gestion-avisos .ga-page--gestion-avisos,
    body.covatel-app-shell.ga-body--gestion-avisos .ga-main--gestion-avisos,
    body.covatel-app-shell.ga-body--gestion-avisos .gestion-avisos-form-panel.gestion-avisos-page-panel,
    body.covatel-app-shell.ga-body--calendario,
    body.covatel-app-shell.ga-body--calendario .covatel-main,
    body.covatel-app-shell.ga-body--calendario .ga-page--calendario,
    body.covatel-app-shell.ga-body--calendario .ga-main--calendario,
    body.covatel-app-shell.ga-body--calendario .gestion-avisos-form-panel.calendario-page-panel,
    body.covatel-app-shell.ga-body--partes,
    body.covatel-app-shell.ga-body--partes .covatel-main,
    body.covatel-app-shell.ga-body--partes .ga-page--partes,
    body.covatel-app-shell.ga-body--partes .ga-main--partes,
    body.covatel-app-shell.ga-body--partes .gestion-avisos-form-panel.partes-page-panel,
    body.covatel-app-shell.ga-body--ultimospartes,
    body.covatel-app-shell.ga-body--ultimospartes .covatel-main,
    body.covatel-app-shell.ga-body--ultimospartes .ga-page--ultimospartes,
    body.covatel-app-shell.ga-body--ultimospartes .ga-main--ultimospartes,
    body.covatel-app-shell.ga-body--ultimospartes .gestion-avisos-form-panel.ultimospartes-page-panel,
    body.covatel-app-shell.ga-body--firmas,
    body.covatel-app-shell.ga-body--firmas .covatel-main,
    body.covatel-app-shell.ga-body--firmas .ga-page--firmas,
    body.covatel-app-shell.ga-body--firmas .ga-main--firmas,
    body.covatel-app-shell.ga-body--firmas .gestion-avisos-form-panel.firmas-page-panel,
    body.covatel-app-shell.ga-body--presupuestos,
    body.covatel-app-shell.ga-body--presupuestos .covatel-main,
    body.covatel-app-shell.ga-body--presupuestos .ga-page--presupuestos,
    body.covatel-app-shell.ga-body--presupuestos .ga-main--presupuestos,
    body.covatel-app-shell.ga-body--presupuestos .gestion-avisos-form-panel.presupuestos-page-panel {
        background: var(--covatel-content-bg) !important;
    }
}

.ga-body .gestion-avisos-form-panel .card-section[data-section="cita-aviso"]:not(.aviso-meta-seccion-panel),
.ga-body .gestion-avisos-form-panel .gestion-bloque-partes-aviso:not(.aviso-meta-seccion-panel) {
    background: var(--covatel-panel-teal);
    border: 1px solid var(--covatel-accent);
}

/* Cita compacta en fila superior (gestión) */
.ga-body .gestion-bloque-cita-aviso.aviso-meta-seccion-panel {
    position: relative;
    z-index: 7000;
    overflow: visible !important;
}

.ga-body .gestion-cita-cabecera {
    justify-content: space-between;
    gap: 0.35rem 0.5rem;
}

.ga-body .gestion-cita-cabecera .aviso-meta-seccion-panel__title {
    flex: 1 1 auto;
    min-width: 0;
}

.ga-body .gestion-cita-campos {
    width: 100%;
    min-width: 0;
}

.ga-body .gestion-cita-horas-fila {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 0.45rem;
    width: 100%;
    min-width: 0;
}

.ga-body .ga-page--gestion-avisos .gestion-bloque-cita-aviso .campo-fecha-cita {
    position: relative;
    z-index: 7500;
}

.ga-body .ga-page--gestion-avisos .gestion-bloque-cita-aviso .aviso-meta-seccion-panel__body .tech-input:not(select),
.ga-body .ga-page--gestion-avisos .gestion-bloque-cita-aviso .aviso-meta-seccion-panel__body select.tech-input,
.ga-body .ga-page--gestion-avisos .gestion-bloque-cita-aviso .aviso-meta-seccion-panel__body .campo-fecha-cita input,
.ga-body .ga-page--gestion-avisos .gestion-bloque-cita-aviso .aviso-meta-seccion-panel__body .campo-fecha-cita input.flatpickr-input {
    background-color: #f4f4f4 !important;
    border: 1px solid transparent !important;
    box-shadow: none !important;
}

.ga-body .ga-page--gestion-avisos .gestion-bloque-cita-aviso .aviso-meta-seccion-panel__body select.tech-input {
    background-image: var(--covatel-select-chevron) !important;
    background-position: right 0.5rem center !important;
    background-repeat: no-repeat !important;
    background-size: 1.25em 1.25em !important;
    padding-right: 2.5rem !important;
    appearance: none !important;
    -webkit-appearance: none !important;
}

.ga-body .ga-page--gestion-avisos .gestion-bloque-cita-aviso .aviso-meta-seccion-panel__body .tech-input:not(select):focus,
.ga-body .ga-page--gestion-avisos .gestion-bloque-cita-aviso .aviso-meta-seccion-panel__body select.tech-input:focus,
.ga-body .ga-page--gestion-avisos .gestion-bloque-cita-aviso .aviso-meta-seccion-panel__body .campo-fecha-cita input:focus {
    background-color: #f4f4f4 !important;
    border-color: var(--covatel-accent) !important;
    border-width: 1px !important;
    box-shadow: none !important;
}

/* Datos del aviso junto a cita y partes (gestión) */
.ga-body .gestion-datos-partes-fila > .gestion-bloque-datos-aviso {
    box-sizing: border-box;
    flex: 0 0 20%;
    width: 20%;
    max-width: 20%;
    min-width: 0;
}

.ga-body .gestion-datos-partes-fila > .gestion-bloque-cita-aviso {
    box-sizing: border-box;
    flex: 0 1 auto;
    width: min(100%, 14.5rem);
    max-width: 14.5rem;
    min-width: 10.5rem;
}

@media (max-width: 767px) {
    .ga-body .gestion-datos-partes-fila > .gestion-bloque-datos-aviso,
    .ga-body .gestion-datos-partes-fila > .gestion-bloque-cita-aviso {
        flex: 1 1 100%;
        width: 100%;
        max-width: 100%;
        min-width: 0;
    }
}

/* Nuevo aviso (bloque solo): ancho completo y campos en fila */
.ga-body .gestion-avisos-form-panel .ga-datos-aviso-campos {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.55rem;
    width: 100%;
    min-width: 0;
}

@media (min-width: 640px) {
    .ga-body .gestion-avisos-form-panel .ga-datos-aviso-campos {
        grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr) minmax(0, 0.8fr);
    }
}

/* Fila Datos del aviso + Cita + Partes (solo gestión) */
.ga-body .gestion-datos-partes-fila {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 1.5rem;
    width: 100%;
}

.ga-body .gestion-datos-partes-fila > .aviso-meta-seccion-panel,
.ga-body .gestion-datos-partes-fila > .gestion-partes-columna {
    display: flex;
    flex-direction: column;
    min-height: 0;
    align-self: stretch;
}

.ga-body .gestion-datos-partes-fila > .gestion-partes-columna > .gestion-bloque-partes-aviso {
    flex: 1 1 auto;
    min-height: 0;
    height: 100%;
}

.ga-body .gestion-datos-partes-fila > .card-section {
    margin-top: 0;
}

.ga-body .gestion-partes-columna {
    flex: 1 1 0%;
    min-width: 0;
    min-height: 0;
    display: flex;
    flex-direction: column;
    width: 100%;
}

.ga-body .gestion-bloque-partes-aviso {
    flex: 1 1 auto;
    min-width: 0;
    min-height: 0;
    width: 100%;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    box-sizing: border-box;
}

.ga-body .gestion-partes-cabecera:not(.aviso-meta-seccion-panel__header) {
    flex-shrink: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.35rem 0.5rem;
    margin-bottom: 0.45rem;
}

.ga-body .aviso-meta-seccion-panel__header.gestion-partes-cabecera {
    flex-shrink: 0;
}

.ga-body .gestion-partes-cabecera .section-title {
    margin-bottom: 0 !important;
    flex: 1 1 auto;
    min-width: 0;
}

.ga-body .gestion-partes-lista-wrap {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.ga-body .gestion-partes-lista-shell {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    border-radius: 0;
    border: none;
    background: #ffffff;
    overflow: hidden;
}

/* Lista de partes: altura acotada (JS) + scroll minimalista superpuesto */
.ga-body .gestion-partes-lista-scroll {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
    scrollbar-gutter: auto;
    background: #ffffff;
    scrollbar-width: thin;
    scrollbar-color: rgba(0, 102, 128, 0.32) transparent;
}

.ga-body .gestion-partes-lista-scroll::-webkit-scrollbar {
    width: 4px;
    height: 4px;
    background: transparent;
}

.ga-body .gestion-partes-lista-scroll::-webkit-scrollbar-button {
    display: none;
    width: 0;
    height: 0;
}

.ga-body .gestion-partes-lista-scroll::-webkit-scrollbar-track {
    background: transparent;
}

.ga-body .gestion-partes-lista-scroll::-webkit-scrollbar-thumb {
    background: rgba(0, 102, 128, 0.32);
    border-radius: 0;
}

.ga-body .gestion-partes-lista-scroll::-webkit-scrollbar-thumb:hover {
    background: rgba(0, 102, 128, 0.52);
}

.ga-body .gestion-partes-cabecera:not(.aviso-meta-seccion-panel__header) .gestion-partes-toolbar {
    flex-shrink: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 0.35rem;
    margin-bottom: 0 !important;
    padding: 0.35rem 0.75rem;
}

@media (min-width: 768px) {
    .ga-body .gestion-datos-partes-fila {
        display: grid;
        grid-template-columns: minmax(0, 20%) minmax(10.5rem, 14.5rem) minmax(0, 1fr);
        grid-template-areas: "datos cita partes";
        column-gap: 1.5rem;
        row-gap: 0;
        align-items: start;
    }

    .ga-body .gestion-datos-partes-fila .gestion-bloque-datos-aviso {
        grid-area: datos;
        width: 100%;
        max-width: 100%;
        margin-top: 0 !important;
        height: auto;
    }

    .ga-body .gestion-datos-partes-fila > .gestion-bloque-cita-aviso {
        grid-area: cita;
        width: 100%;
        max-width: 100%;
        min-width: 0;
        margin-top: 0 !important;
        height: auto;
    }

    .ga-body .gestion-partes-columna {
        grid-area: partes;
        display: flex;
        flex-direction: column;
        min-height: 0;
        min-width: 0;
        width: auto;
        height: auto;
        max-height: none;
        overflow: hidden;
    }

    .ga-body .gestion-bloque-partes-aviso {
        flex: 1 1 auto;
        min-height: 0;
        height: auto;
        max-height: none;
        overflow: hidden;
    }

    .ga-body .gestion-partes-cabecera:not(.aviso-meta-seccion-panel__header) {
        flex-wrap: nowrap;
        margin-bottom: 0.4rem;
    }

    .ga-body .aviso-meta-seccion-panel__header.gestion-partes-cabecera {
        flex-wrap: nowrap;
        margin-bottom: 0 !important;
    }

    .ga-body .gestion-partes-cabecera .section-title {
        flex: 1 1 0%;
    }

    .ga-body .gestion-partes-toolbar {
        flex: 0 0 auto;
    }
}

/* --- Modo compacto del panel --- */
.ga-body .gestion-avisos-form-panel {
    --ga-panel-pad: 1.25rem;
    padding: var(--ga-panel-pad) !important;
}

@media (min-width: 640px) {
    .ga-body .gestion-avisos-form-panel {
        --ga-panel-pad: 1.5rem;
    }
}

@media (max-width: 639px) {
    .ga-body .gestion-avisos-form-panel {
        --ga-panel-pad: 1rem;
    }
}

.ga-body .gestion-avisos-form-panel .ga-toolbar:not(.ga-page-heading) {
    margin-bottom: 0 !important;
}

.ga-body .gestion-avisos-form-panel #contact-form:not(.is-hidden) {
    margin-top: 0 !important;
}

.ga-body .gestion-avisos-form-panel .ga-toolbar:not(.ga-page-heading) + #contact-form:not(.is-hidden) {
    margin-top: 0.75rem !important;
}

.ga-body .gestion-avisos-page-panel.ga-aviso-form-panel .ga-toolbar.ga-busqueda-avisos + #contact-form:not(.is-hidden) {
    margin-top: 0 !important;
}

.ga-body .gestion-avisos-form-panel h1.text-2xl {
    font-size: 1.15rem !important;
    margin-bottom: 0 !important;
    line-height: 1.15 !important;
}

.ga-body .gestion-avisos-form-panel h1 + p {
    font-size: 0.72rem !important;
    margin-top: 0.12rem !important;
    margin-bottom: 0 !important;
    line-height: 1.25 !important;
}

/* Cabecera de página: mismo aire bajo el subtítulo que sobre el título */
.ga-body .gestion-avisos-form-panel .ga-page-heading:not(.ga-form-page-header__inner) {
    margin-bottom: var(--ga-panel-pad) !important;
    padding-bottom: 0;
}

.ga-body .gestion-avisos-form-panel .ga-page-heading + #contact-form,
.ga-body .gestion-avisos-form-panel .ga-page-heading + .ga-toolbar {
    margin-top: 0 !important;
}

.ga-body .gestion-avisos-form-panel .card-section:not(.aviso-meta-seccion-panel):not(.cliente-seccion-panel):not(.incidencia-seccion-panel):not(.trabajo-realizado-panel) {
    padding: 0.85rem !important;
    margin-top: 0.75rem !important;
}

.ga-body .ga-page--partes .gestion-avisos-form-panel.ga-aviso-form-panel #form-container .card-section.trabajo-realizado-panel {
    margin-top: var(--ga-block-gap, 1.5rem) !important;
}

.ga-body .gestion-avisos-form-panel .card-section:first-child:not(.trabajo-realizado-panel) {
    margin-top: 0 !important;
}

.ga-body .gestion-avisos-form-panel .card-section[data-section="parte"]:not(.aviso-meta-seccion-panel),
.ga-body .gestion-avisos-form-panel .gestion-bloque-datos-aviso:not(.aviso-meta-seccion-panel),
.ga-body .gestion-avisos-form-panel .gestion-bloque-partes-aviso:not(.aviso-meta-seccion-panel),
.ga-body .gestion-avisos-form-panel .card-section[data-section="cita-aviso"]:not(.aviso-meta-seccion-panel) {
    padding: 0.85rem !important;
    margin-top: 0 !important;
}

.ga-body .gestion-avisos-form-panel .card-section.aviso-meta-seccion-panel,
.ga-body .gestion-avisos-form-panel #contact-form .card-section.aviso-meta-seccion-panel {
    padding: 0 !important;
    margin-top: 0 !important;
}

.ga-body .gestion-avisos-form-panel .card-section[data-section="cliente"]:not(.cliente-seccion-panel),
.ga-body .gestion-avisos-form-panel .card-section[data-section="detalle"]:not(.incidencia-seccion-panel) {
    padding: 0.85rem !important;
    margin-top: 0.85rem !important;
}

.ga-body .gestion-avisos-form-panel .section-title:not(.aviso-meta-seccion-panel__title):not(.cliente-seccion-panel__title):not(.incidencia-seccion-panel__title) {
    font-size: 0.82rem !important;
    padding-bottom: 0.35rem !important;
    margin-bottom: 0 !important;
    gap: 0.35rem !important;
}

/* Cabeceras panel (cliente, incidencia, fila superior) */
.ga-body .cliente-seccion-panel__header > .cliente-seccion-panel__title,
.ga-body .incidencia-seccion-panel__header > .incidencia-seccion-panel__title,
.ga-body .aviso-meta-seccion-panel__header > .aviso-meta-seccion-panel__title {
    padding: var(--covatel-panel-header-title-py) var(--covatel-panel-header-title-px) !important;
    line-height: 1.2 !important;
}

.ga-body .gestion-avisos-form-panel .section-title i[data-lucide] {
    width: 0.95rem !important;
    height: 0.95rem !important;
}

.ga-body .gestion-avisos-form-panel .tech-label {
    font-size: 0.7rem !important;
    font-weight: 600 !important;
    margin-bottom: 0.2rem !important;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: #1d1d1f !important;
}

.ga-body .gestion-avisos-form-panel .tech-input,
.ga-body .gestion-avisos-form-panel .client-input,
.ga-body .gestion-avisos-form-panel select.tech-input,
.ga-body .gestion-avisos-form-panel select.client-input,
.ga-body .gestion-avisos-form-panel textarea.tech-input,
.ga-body .gestion-avisos-form-panel textarea.client-input {
    padding: 0.35rem 0.55rem !important;
    font-size: 0.78rem !important;
    min-height: 0 !important;
    border-radius: 0 !important;
    line-height: 1.35 !important;
}

.ga-body .gestion-avisos-form-panel .cobro-vivienda-grupo-viv-input.tech-input,
.ga-body .gestion-avisos-form-panel input.cobro-vivienda-grupo-viv-input.cobro-vivienda-input {
    padding: 0 0.25rem !important;
    line-height: 1.2 !important;
}

.ga-body .gestion-avisos-form-panel .cobro-vivienda-grupo-viv-input.tech-input:focus,
.ga-body .gestion-avisos-form-panel input.cobro-vivienda-grupo-viv-input.cobro-vivienda-input:focus {
    padding: 0 0.25rem !important;
    border: none !important;
    border-right: 1px solid #c7c7c7 !important;
    box-shadow: none !important;
}

.ga-body .gestion-avisos-form-panel .tech-input:focus,
.ga-body .gestion-avisos-form-panel .client-input:focus,
.ga-body .gestion-avisos-form-panel select.tech-input:focus,
.ga-body .gestion-avisos-form-panel select.client-input:focus,
.ga-body .gestion-avisos-form-panel textarea.tech-input:focus,
.ga-body .gestion-avisos-form-panel textarea.client-input:focus {
    outline: none !important;
    border-color: var(--covatel-accent) !important;
    border-width: 1px !important;
    box-shadow: none !important;
}

.ga-body .gestion-avisos-form-panel textarea.tech-input.interacciones-input {
    padding: 0.35rem 2.75rem 0.35rem 0.55rem !important;
    min-height: 48px !important;
    height: 48px !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
    scrollbar-width: none !important;
}

.ga-body .gestion-avisos-form-panel textarea.tech-input.interacciones-input::-webkit-scrollbar {
    display: none;
}

.ga-body .gestion-avisos-form-panel .text-xs {
    font-size: 0.66rem !important;
}

.ga-body .gestion-avisos-form-panel .text-sm {
    font-size: 0.78rem !important;
}

.ga-body .gestion-avisos-form-panel .space-y-2 > * + * { margin-top: 0.4rem !important; }
.ga-body .gestion-avisos-form-panel .space-y-3 > * + * { margin-top: 0.5rem !important; }
.ga-body .gestion-avisos-form-panel .space-y-4 > * + * { margin-top: 0.55rem !important; }
.ga-body .gestion-avisos-form-panel .space-y-5 > * + * { margin-top: 0.65rem !important; }
.ga-body .gestion-avisos-form-panel .gap-3 { gap: 0.45rem !important; }
.ga-body .gestion-avisos-form-panel .grid.gap-3 { gap: 0.45rem !important; }
.ga-body .gestion-avisos-form-panel .gap-4 { gap: 0.55rem !important; }
.ga-body .gestion-avisos-form-panel .grid.gap-4 { gap: 0.55rem !important; }

.ga-body .gestion-avisos-form-panel p.text-xs,
.ga-body .gestion-avisos-form-panel p.text-\[var\(--muted\)\],
.ga-body .gestion-avisos-form-panel .tech-input + p.text-xs,
.ga-body .gestion-avisos-form-panel .client-input + p.text-xs {
    font-size: 0.62rem !important;
    margin-top: 0.15rem !important;
    line-height: 1.2 !important;
}

.ga-body .gestion-avisos-form-panel .w-6.h-6.border-2 {
    width: 22px !important;
    height: 22px !important;
    border-width: 1.5px !important;
    border-radius: 0 !important;
}

.ga-body .gestion-avisos-form-panel .w-6.h-6.border-2 i[data-lucide] {
    width: 12px !important;
    height: 12px !important;
}

.ga-body .gestion-avisos-form-panel #buscador-avisos {
    padding-left: 0.55rem !important;
    padding-right: 2.25rem !important;
}

.ga-body .gestion-avisos-form-panel textarea#mensaje,
.ga-body .gestion-avisos-form-panel textarea#historial_avisos_cliente {
    overflow: hidden !important;
    overflow-y: hidden !important;
}

/* --- Adjuntar fotos --- */
.ga-body .gestion-avisos-form-panel .card-section[data-section="fotos"] {
    background: var(--covatel-panel-gray) !important;
    border: 1px solid #b0b5bd !important;
    padding: 0.85rem !important;
    margin-top: 1rem !important;
    border-radius: 0 !important;
}

.ga-body .gestion-avisos-form-panel .card-section[data-section="fotos"] .mobile-only {
    display: none !important;
}

.ga-body .gestion-avisos-form-panel .card-section[data-section="fotos"] .section-title {
    font-size: 0.78rem !important;
    margin: 0 !important;
    padding-bottom: 0 !important;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #1d1d1f !important;
}

.ga-body .gestion-avisos-form-panel .card-section[data-section="fotos"] .drop-zone {
    background: transparent !important;
    border: none !important;
    padding: 0 !important;
    margin: 0 !important;
    min-height: 0 !important;
}

.ga-body .gestion-avisos-form-panel .card-section[data-section="fotos"] .drop-hint {
    display: none !important;
}

.ga-body .gestion-avisos-form-panel .card-section[data-section="fotos"] #file-list {
    display: flex !important;
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    gap: 6px !important;
    padding: 2px 0 !important;
    grid-template-columns: none !important;
}

.ga-body .gestion-avisos-form-panel .card-section[data-section="fotos"] #file-list:empty {
    display: none !important;
}

.ga-body .gestion-avisos-form-panel .card-section[data-section="fotos"] #file-list:not(:empty) {
    margin-top: 0.5rem !important;
}

.ga-body .gestion-avisos-form-panel .card-section[data-section="fotos"] .file-preview {
    flex: 0 0 auto !important;
    width: 54px !important;
    height: 54px !important;
    border-radius: 0 !important;
}

.ga-body .gestion-avisos-form-panel .card-section[data-section="fotos"] .file-preview .remove-btn {
    width: 16px !important;
    height: 16px !important;
    top: 2px !important;
    right: 2px !important;
    border-radius: 0 !important;
}

.ga-body .gestion-avisos-form-panel .card-section[data-section="fotos"] .file-meta {
    display: none !important;
}

/* --- Botones: rectos, color plano, sin degradado ni sombra decorativa --- */
.ga-body .gestion-avisos-form-panel .photo-action-btn,
.ga-body .gestion-avisos-form-panel .cita-send-btn,
.ga-body .gestion-avisos-form-panel #btn-nueva-visita-gestion,
.ga-body .gestion-avisos-form-panel .interacciones-enviar-btn,
.ga-body .gestion-avisos-form-panel .interacciones-btn-adjuntar,
.ga-body .gestion-avisos-form-panel .nv-btn-crear-aviso,
.ga-body .gestion-avisos-form-panel .btn-submit.bg-covatel,
.ga-body .gestion-avisos-form-panel button[onclick="addVecino()"],
.ga-body #contact-form.ga-estado-fab-scope .parte-fab--guardar,
.ga-body #contact-form.ga-estado-fab-scope .parte-fab--borrar,
.ga-body #gestion-aviso-floating-actions .parte-fab--guardar,
.ga-body #gestion-aviso-floating-actions .parte-fab--borrar {
    border-radius: 0 !important;
    background-image: none !important;
    box-shadow: none !important;
    filter: none !important;
    transform: none !important;
    border: 1px solid transparent !important;
    transition: background-color 0.15s ease, border-color 0.15s ease, opacity 0.15s ease !important;
}

.ga-body .gestion-avisos-form-panel .photo-action-btn,
.ga-body .gestion-avisos-form-panel .cita-send-btn,
.ga-body .gestion-avisos-form-panel #btn-nueva-visita-gestion,
.ga-body .gestion-avisos-form-panel .btn-submit.bg-covatel,
.ga-body .gestion-avisos-form-panel button[onclick="addVecino()"],
.ga-body #contact-form.ga-estado-fab-scope .parte-fab--guardar,
.ga-body #gestion-aviso-floating-actions .parte-fab--guardar {
    background: var(--covatel-accent) !important;
    border-color: var(--covatel-accent) !important;
    color: #fff !important;
}

.ga-body .gestion-avisos-form-panel .photo-action-btn:hover,
.ga-body .gestion-avisos-form-panel .cita-send-btn:hover,
.ga-body .gestion-avisos-form-panel #btn-nueva-visita-gestion:hover,
.ga-body .gestion-avisos-form-panel .btn-submit.bg-covatel:hover,
.ga-body .gestion-avisos-form-panel button[onclick="addVecino()"]:hover,
.ga-body #contact-form.ga-estado-fab-scope .parte-fab--guardar:hover:not(:disabled),
.ga-body #gestion-aviso-floating-actions .parte-fab--guardar:hover:not(:disabled) {
    background: var(--covatel-accent-dark) !important;
    border-color: var(--covatel-accent-dark) !important;
    transform: none !important;
    filter: none !important;
    box-shadow: none !important;
}

.ga-body .gestion-avisos-form-panel #btn-nueva-visita-gestion.gestion-btn-nuevo-parte--destacado {
    outline: 2px solid #4ade80;
    outline-offset: 1px;
}

.ga-body .gestion-avisos-form-panel .interacciones-enviar-btn,
.ga-body .gestion-avisos-form-panel .interacciones-btn-adjuntar {
    background: var(--covatel-btn-orange) !important;
    border-color: var(--covatel-btn-orange) !important;
    color: #fff !important;
}

.ga-body .gestion-avisos-form-panel .interacciones-enviar-btn:hover,
.ga-body .gestion-avisos-form-panel .interacciones-btn-adjuntar:hover {
    background: var(--covatel-btn-orange-hover) !important;
    border-color: var(--covatel-btn-orange-hover) !important;
    transform: none !important;
    filter: none !important;
    box-shadow: none !important;
}

.ga-body #contact-form.ga-estado-fab-scope .parte-fab--borrar,
.ga-body #gestion-aviso-floating-actions .parte-fab--borrar {
    background: var(--covatel-btn-danger) !important;
    border-color: var(--covatel-btn-danger) !important;
    color: #fff !important;
}

.ga-body #contact-form.ga-estado-fab-scope .parte-fab--borrar:hover:not(:disabled),
.ga-body #gestion-aviso-floating-actions .parte-fab--borrar:hover:not(:disabled) {
    background: var(--covatel-btn-danger-hover) !important;
    border-color: var(--covatel-btn-danger-hover) !important;
}

.ga-body .gestion-avisos-form-panel .photo-action-btn {
    width: 34px !important;
    height: 34px !important;
    padding: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.ga-body .gestion-avisos-form-panel .photo-action-btn i[data-lucide],
.ga-body .gestion-avisos-form-panel .photo-action-btn i[data-lucide] svg {
    width: 0.8rem !important;
    height: 0.8rem !important;
    color: #fff !important;
    filter: none !important;
}

.ga-body .gestion-avisos-form-panel .interacciones-acciones-fila {
    align-items: flex-start !important;
}

.ga-body .gestion-avisos-form-panel .interacciones-btn-adjuntar {
    width: 48px !important;
    min-width: 48px !important;
    max-width: 48px !important;
    height: 48px !important;
    min-height: 48px !important;
    max-height: 48px !important;
    padding: 0 !important;
    gap: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.ga-body .gestion-avisos-form-panel #bloque-interacciones-cliente .interacciones-enviar-btn {
    top: 7px !important;
    right: 6px !important;
    transform: none !important;
}

.ga-body .gestion-avisos-form-panel .cita-send-btn {
    width: 1.5rem !important;
    height: 1.5rem !important;
    min-height: 0 !important;
    padding: 0 !important;
    align-self: center !important;
    margin: 0 3px 0 0 !important;
    border: 1px solid rgba(255, 255, 255, 0.5) !important;
    background: rgba(255, 255, 255, 0.12) !important;
    border-radius: 2px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
    transition: background 0.15s ease !important;
}

.ga-body .gestion-avisos-form-panel .cita-send-btn:hover {
    background: rgba(255, 255, 255, 0.25) !important;
}

.ga-body .aviso-meta-seccion-panel__header.gestion-cita-cabecera > .cita-send-btn {
    width: 1.5rem !important;
    height: 1.5rem !important;
    margin: 0 3px 0 0 !important;
}

.ga-body .gestion-avisos-form-panel .nv-btn-crear-aviso {
    height: 2.125rem;
    min-height: 2.125rem;
    padding: 0 0.9rem;
    font-size: 0.6875rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0;
    white-space: nowrap;
    background: var(--covatel-accent-dark) !important;
    border-color: var(--covatel-accent-dark) !important;
    color: #fff !important;
}

.ga-body .gestion-avisos-form-panel .nv-btn-crear-aviso:hover {
    background: var(--covatel-accent-deep) !important;
    border-color: var(--covatel-accent-deep) !important;
}

.ga-body .gestion-avisos-form-panel .nv-btn-crear-aviso:disabled {
    opacity: 1 !important;
    cursor: wait !important;
    pointer-events: auto;
}

/* Selector estado del trabajo — sin radius; panel y ticks verde web */
.ga-body [data-covatel-estado-picker] .covatel-estado-trigger {
    border-radius: 0 !important;
}

.ga-body [data-covatel-estado-picker] .covatel-estado-panel {
    border: 1px solid var(--covatel-accent) !important;
    border-radius: 0 !important;
}

.ga-body [data-covatel-estado-picker] .covatel-estado-panel-hint,
.ga-body [data-covatel-estado-picker] .covatel-estado-panel > p:last-child {
    background: #d0e7ed !important;
    color: var(--covatel-accent) !important;
}

.ga-body [data-covatel-estado-picker] .covatel-estado-cb {
    accent-color: var(--covatel-accent);
}

.ga-body [data-covatel-estado-picker] .covatel-estado-cb:checked {
    accent-color: var(--covatel-accent);
}

/* Campo teléfonos: label + enlace "+ Añadir" sin desalinear el input respecto a la fila */
.ga-body .gestion-avisos-form-panel .ga-phone-block {
    position: relative;
}

.ga-body .gestion-avisos-form-panel .ga-phone-block > .tech-label {
    display: block;
    margin-bottom: 0.2rem !important;
    min-height: 1.05rem;
}

.ga-body .gestion-avisos-form-panel .ga-phone-add-btn {
    display: none;
}

.ga-phone-list {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.ga-phone-row {
    display: flex;
    align-items: center;
    gap: 0;
}

.ga-phone-row > input.client-input {
    flex: 1 1 0%;
    min-width: 0;
    margin: 0 !important;
}

.ga-phone-row-btn {
    flex: 0 0 auto;
    width: 24px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: none;
    background: none;
    cursor: pointer;
    font-size: 1.4rem;
    font-weight: 700;
    line-height: 1;
    padding: 0;
    transition: opacity 0.15s;
}

.ga-phone-row-btn:hover {
    opacity: 0.7;
}

.ga-phone-row-btn--add {
    color: var(--covatel-accent, #16a34a);
}

.ga-phone-row-btn--remove {
    color: #dc2626;
}

.ga-phone-row-btn:disabled {
    opacity: 0.4;
    cursor: not-allowed;
    pointer-events: none;
}

.ga-body .gestion-avisos-form-panel .interacciones-enviar-btn i[data-lucide],
.ga-body .gestion-avisos-form-panel .cita-send-btn i[data-lucide],
.ga-body .gestion-avisos-form-panel .parte-fab__icon svg {
    filter: none !important;
}

/* Cita del aviso (bloques fuera de la fila compacta) */
.ga-body .gestion-avisos-form-panel .card-section[data-section="cita-aviso"]:not(.aviso-meta-seccion-panel) {
    padding: 0.85rem !important;
    position: relative;
    z-index: 7000;
    overflow: visible !important;
}

.ga-body .gestion-avisos-form-panel .card-section[data-section="cita-aviso"]:not(.aviso-meta-seccion-panel) .section-title {
    margin-bottom: 0.85rem !important;
    padding-bottom: 0 !important;
}

.ga-body .gestion-avisos-form-panel .cita-aviso-fila .campo-fecha-cita {
    position: relative;
    z-index: 7500;
}

.ga-body .ga-page--nuevo-aviso .card-section[data-section="cita-aviso"] .tech-input,
.ga-body .ga-page--nuevo-aviso .card-section[data-section="cita-aviso"] select.tech-input {
    border: 1px solid transparent !important;
    box-shadow: none !important;
}

.ga-body .ga-page--nuevo-aviso .card-section[data-section="cita-aviso"] .tech-input:focus,
.ga-body .ga-page--nuevo-aviso .card-section[data-section="cita-aviso"] select.tech-input:focus {
    border: 1px solid transparent !important;
    box-shadow: none !important;
}

.ga-body .ga-page--nuevo-aviso .card-section[data-section="cita-aviso"] .tech-input,
.ga-body .ga-page--nuevo-aviso .card-section[data-section="cita-aviso"] select.tech-input,
.ga-body .ga-page--nuevo-aviso .card-section[data-section="cita-aviso"] .campo-fecha-cita input,
.ga-body .ga-page--nuevo-aviso .card-section[data-section="cita-aviso"] .campo-fecha-cita input.flatpickr-input,
.ga-body .ga-page--nuevo-aviso .card-section[data-section="cita-aviso"] .tech-input[readonly],
.ga-body .ga-page--nuevo-aviso .card-section[data-section="cita-aviso"] .tech-input[readonly]:focus {
    background-color: #ffffff !important;
}

.ga-body .ga-page--nuevo-aviso .card-section[data-section="cita-aviso"] select.tech-input,
.ga-body .ga-page--nuevo-aviso .card-section[data-section="cita-aviso"] select.tech-input:focus {
    background-image: var(--covatel-select-chevron);
    background-position: right 0.5rem center;
    background-repeat: no-repeat;
    background-size: 1.25em 1.25em;
}

/* Estado del trabajo */
.ga-body .gestion-avisos-form-panel .card-section.parte-estado-inline[data-section="estado-trabajo"],
.ga-body .gestion-avisos-form-panel .nv-estado-nuevo-aviso[data-section="estado-trabajo"] {
    padding: 0.85rem !important;
}

.ga-body .partes-form-panel .card-section.parte-estado-inline[data-section="estado-trabajo"] {
    background: var(--covatel-panel-gray) !important;
    border: 1px solid #b0b5bd !important;
    border-radius: 0 !important;
    margin-top: 2.25rem !important;
}

/* Formulario aviso plano: padding exterior (panel) + interior en bloques con borde */
.ga-body .gestion-avisos-form-panel.ga-aviso-form-panel {
    padding-left: var(--ga-panel-pad, 1rem) !important;
    padding-right: var(--ga-panel-pad, 1rem) !important;
    padding-top: 0 !important;
    padding-bottom: var(--ga-panel-pad, 1rem) !important;
    --ga-block-gap: 1.5rem;
}

/* Separación vertical entre bloques principales (anula space-y-0 del formulario) */
.ga-body .gestion-avisos-form-panel.ga-aviso-form-panel .gestion-datos-partes-fila {
    margin-bottom: var(--ga-block-gap) !important;
}

.ga-body .gestion-avisos-form-panel.ga-aviso-form-panel #contact-form > .card-section + .card-section,
.ga-body .gestion-avisos-form-panel.ga-aviso-form-panel #form-parte > .card-section + .card-section,
.ga-body .gestion-avisos-form-panel.ga-aviso-form-panel #form-container > .card-section + .card-section,
.ga-body .gestion-avisos-form-panel.ga-aviso-form-panel .gestion-bloque-datos-aviso.aviso-meta-seccion-panel + .cliente-seccion-panel {
    margin-top: var(--ga-block-gap) !important;
}

.ga-body .gestion-avisos-form-panel.ga-aviso-form-panel #contact-form .card-section,
.ga-body .gestion-avisos-form-panel.ga-aviso-form-panel .nuevo-aviso-estado-fila .card-section {
    width: 100% !important;
    max-width: none !important;
    box-sizing: border-box !important;
}

/* Cliente / detalle: sin padding horizontal extra (solo el del panel) */
.ga-body .gestion-avisos-form-panel.ga-aviso-form-panel #contact-form .card-section[data-section="cliente"],
.ga-body .gestion-avisos-form-panel.ga-aviso-form-panel #contact-form .card-section[data-section="detalle"] {
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* Bloques con borde o fondo: padding interior */
.ga-body .gestion-avisos-form-panel.ga-aviso-form-panel #contact-form .card-section[data-section="parte"]:not(.aviso-meta-seccion-panel),
.ga-body .gestion-avisos-form-panel.ga-aviso-form-panel #contact-form .gestion-bloque-datos-aviso:not(.aviso-meta-seccion-panel),
.ga-body .gestion-avisos-form-panel.ga-aviso-form-panel #contact-form .gestion-bloque-partes-aviso:not(.aviso-meta-seccion-panel),
.ga-body .gestion-avisos-form-panel.ga-aviso-form-panel #contact-form .card-section[data-section="cita-aviso"]:not(.aviso-meta-seccion-panel),
.ga-body .gestion-avisos-form-panel.ga-aviso-form-panel #contact-form .card-section[data-section="interacciones"],
.ga-body .gestion-avisos-form-panel.ga-aviso-form-panel #contact-form .card-section[data-section="partes-realizados"],
.ga-body .gestion-avisos-form-panel.ga-aviso-form-panel #contact-form .card-section[data-section="fotos"],
.ga-body .gestion-avisos-form-panel.ga-aviso-form-panel #contact-form .card-section[data-section="estado-trabajo"],
.ga-body .gestion-avisos-form-panel.ga-aviso-form-panel .nuevo-aviso-estado-fila .card-section[data-section="estado-trabajo"] {
    padding: 0.85rem !important;
}

.ga-body .gestion-avisos-form-panel.ga-aviso-form-panel #contact-form textarea#mensaje,
.ga-body .gestion-avisos-form-panel.ga-aviso-form-panel #contact-form textarea#historial_avisos_cliente,
.ga-body .gestion-avisos-form-panel.ga-aviso-form-panel #contact-form .tech-input,
.ga-body .gestion-avisos-form-panel.ga-aviso-form-panel #contact-form .client-input,
.ga-body .gestion-avisos-form-panel.ga-aviso-form-panel #contact-form select.tech-input,
.ga-body .gestion-avisos-form-panel.ga-aviso-form-panel #contact-form select.client-input {
    width: 100% !important;
    max-width: none !important;
    box-sizing: border-box !important;
}

/* Gestión: buscador sobre fondo gris (debajo de la cabecera blanca) */
.ga-body .gestion-avisos-page-panel.ga-aviso-form-panel > .ga-busqueda-avisos {
    width: 100%;
    padding-top: var(--ga-block-gap, 1.5rem);
    padding-bottom: var(--ga-block-gap, 1.5rem);
    margin-bottom: 0 !important;
    box-sizing: border-box;
}

.ga-body .gestion-avisos-page-panel.ga-aviso-form-panel > .ga-busqueda-avisos + #contact-form:not(.is-hidden) {
    margin-top: 0 !important;
}

/* Partes: buscador sobre fondo gris (debajo de la cabecera blanca) */
.ga-body .partes-page-panel > .partes-toolbar-search {
    width: 100%;
    margin-bottom: 0.75rem;
    box-sizing: border-box;
}

.ga-body .partes-page-panel > .partes-toolbar-search + .partes-link-nuevo-aviso {
    margin-top: 0.65rem !important;
    padding-top: 0.15rem;
}

.ga-body .partes-page-panel > .partes-link-nuevo-aviso + #form-parte {
    margin-top: 0 !important;
}

/* Partes: mismas reglas de panel plano que gestión/nuevo aviso (#form-parte) */
.ga-body .gestion-avisos-form-panel.ga-aviso-form-panel #form-parte .card-section,
.ga-body .gestion-avisos-form-panel.ga-aviso-form-panel #form-container .card-section {
    width: 100% !important;
    max-width: none !important;
    box-sizing: border-box !important;
}

.ga-body .gestion-avisos-form-panel.ga-aviso-form-panel #form-parte .card-section[data-section="cliente"]:not(.cliente-seccion-panel),
.ga-body .gestion-avisos-form-panel.ga-aviso-form-panel #form-parte .card-section[data-section="detalle"]:not(.incidencia-seccion-panel),
.ga-body .gestion-avisos-form-panel.ga-aviso-form-panel #form-container .card-section[data-section="cliente"]:not(.cliente-seccion-panel),
.ga-body .gestion-avisos-form-panel.ga-aviso-form-panel #form-container .card-section[data-section="detalle"]:not(.incidencia-seccion-panel) {
    padding-left: 0 !important;
    padding-right: 0 !important;
    background: transparent !important;
    border: none !important;
}

/* Partes: borde verde web (vence reglas #form-parte / #form-container anteriores) */
.ga-body .ga-page--partes .gestion-avisos-form-panel.ga-aviso-form-panel #form-parte .card-section.cliente-seccion-panel[data-section="cliente"],
.ga-body .ga-page--partes .gestion-avisos-form-panel.ga-aviso-form-panel #form-parte .card-section.incidencia-seccion-panel[data-section="detalle"],
.ga-body .ga-page--partes .gestion-avisos-form-panel.ga-aviso-form-panel #form-container .card-section.cliente-seccion-panel[data-section="cliente"],
.ga-body .ga-page--partes .gestion-avisos-form-panel.ga-aviso-form-panel #form-container .card-section.incidencia-seccion-panel[data-section="detalle"] {
    background: #ffffff !important;
    border: 1px solid var(--covatel-accent) !important;
    padding: 0 !important;
    box-shadow: none !important;
    overflow: visible !important;
}

.ga-body .gestion-avisos-form-panel.ga-aviso-form-panel #form-parte .card-section[data-section="parte"]:not(.aviso-meta-seccion-panel),
.ga-body .gestion-avisos-form-panel.ga-aviso-form-panel #form-parte .gestion-bloque-datos-aviso:not(.aviso-meta-seccion-panel),
.ga-body .gestion-avisos-form-panel.ga-aviso-form-panel #form-parte .gestion-bloque-partes-aviso:not(.aviso-meta-seccion-panel),
.ga-body .gestion-avisos-form-panel.ga-aviso-form-panel #form-parte .card-section[data-section="fotos"],
.ga-body .gestion-avisos-form-panel.ga-aviso-form-panel #form-parte .card-section[data-section="estado-trabajo"],
.ga-body .gestion-avisos-form-panel.ga-aviso-form-panel #form-container .gestion-bloque-datos-aviso:not(.aviso-meta-seccion-panel),
.ga-body .gestion-avisos-form-panel.ga-aviso-form-panel #form-container .gestion-bloque-partes-aviso:not(.aviso-meta-seccion-panel),
.ga-body .gestion-avisos-form-panel.ga-aviso-form-panel #form-container .card-section[data-section="fotos"],
.ga-body .gestion-avisos-form-panel.ga-aviso-form-panel #form-container .card-section.parte-estado-inline[data-section="estado-trabajo"] {
    padding: 0.85rem !important;
}

.ga-body .gestion-avisos-form-panel.ga-aviso-form-panel #form-parte .tech-input,
.ga-body .gestion-avisos-form-panel.ga-aviso-form-panel #form-parte .client-input,
.ga-body .gestion-avisos-form-panel.ga-aviso-form-panel #form-parte select.tech-input,
.ga-body .gestion-avisos-form-panel.ga-aviso-form-panel #form-parte select.client-input,
.ga-body .gestion-avisos-form-panel.ga-aviso-form-panel #form-container .tech-input,
.ga-body .gestion-avisos-form-panel.ga-aviso-form-panel #form-container .client-input,
.ga-body .gestion-avisos-form-panel.ga-aviso-form-panel #form-container select.tech-input,
.ga-body .gestion-avisos-form-panel.ga-aviso-form-panel #form-container select.client-input {
    width: 100% !important;
    max-width: none !important;
    box-sizing: border-box !important;
}

@media (max-width: 640px) {
    html.ga-html-scroll-lock,
    html,
    body.ga-body {
        overflow-x: hidden !important;
        max-width: 100vw !important;
    }

    main.ga-main {
        padding: 0 !important;
        overflow-x: clip !important;
    }

    .ga-body .gestion-avisos-form-panel {
        border: none !important;
        max-width: 100% !important;
    }
}

/* --- Partes de trabajo (extiende panel compartido) --- */
.ga-body .gestion-avisos-form-panel.partes-form-panel.partes-page-panel {
    padding-bottom: var(--ga-panel-pad, 1rem) !important;
}

.ga-body .gestion-avisos-form-panel.partes-form-panel .partes-link-nuevo-aviso {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    margin-top: 0.75rem;
}

.ga-body .gestion-avisos-form-panel.partes-form-panel.partes-page-panel .partes-link-nuevo-aviso,
.ga-body .gestion-avisos-form-panel.partes-form-panel.partes-page-panel .partes-toolbar-search + .partes-link-nuevo-aviso {
    margin-top: 0.65rem;
    padding-top: 0.15rem;
}

.ga-body .gestion-avisos-form-panel.partes-form-panel:not(.partes-page-panel) .partes-toolbar-search + .partes-link-nuevo-aviso {
    margin-top: 0.75rem;
}

.ga-body .gestion-avisos-form-panel.partes-form-panel #form-container:not(.is-hidden) {
    margin-top: 0.75rem;
}

.ga-body .gestion-avisos-form-panel.partes-form-panel #buscador-avisos {
    padding-left: 0.55rem !important;
    padding-right: 2.25rem !important;
}

/* FAB partes: planos, sin degradado */
.ga-body .partes-form-panel .parte-fab,
.ga-body #parte-floating-actions .parte-fab,
.ga-body #btn-confirmar-nuevo-parte-partes,
.ga-body #btn-borrar-parte-final {
    border-radius: 0 !important;
    background-image: none !important;
    box-shadow: none !important;
    filter: none !important;
    transform: none !important;
    transition: background-color 0.15s ease, border-color 0.15s ease !important;
}

.ga-body .partes-form-panel .parte-fab--guardar,
.ga-body #parte-floating-actions .parte-fab--guardar,
.ga-body #btn-confirmar-nuevo-parte-partes {
    background: var(--covatel-accent) !important;
    border: 1px solid var(--covatel-accent) !important;
    color: #fff !important;
}

.ga-body .partes-form-panel .parte-fab--guardar:hover:not(:disabled),
.ga-body #parte-floating-actions .parte-fab--guardar:hover:not(:disabled),
.ga-body #btn-confirmar-nuevo-parte-partes:hover:not(:disabled) {
    background: var(--covatel-accent-dark) !important;
    border-color: var(--covatel-accent-dark) !important;
}

.ga-body .partes-form-panel .parte-fab--borrar,
.ga-body #parte-floating-actions .parte-fab--borrar,
.ga-body #btn-borrar-parte-final {
    background: var(--covatel-btn-danger) !important;
    border: 1px solid var(--covatel-btn-danger) !important;
    color: #fff !important;
}

.ga-body .partes-form-panel .parte-fab--borrar:hover:not(:disabled),
.ga-body #parte-floating-actions .parte-fab--borrar:hover:not(:disabled),
.ga-body #btn-borrar-parte-final:hover:not(:disabled) {
    background: var(--covatel-btn-danger-hover) !important;
    border-color: var(--covatel-btn-danger-hover) !important;
}

.ga-body .partes-form-panel .parte-fab--cerrar,
.ga-body #parte-floating-actions .parte-fab--cerrar {
    background: #15803d !important;
    border: 1px solid #15803d !important;
    color: #fff !important;
}

.ga-body .partes-form-panel .parte-fab--cerrar:hover:not(:disabled),
.ga-body #parte-floating-actions .parte-fab--cerrar:hover:not(:disabled) {
    background: #16a34a !important;
    border-color: #16a34a !important;
}

.ga-body .partes-form-panel #btn-crear-nuevo-parte,
.ga-body .partes-form-panel button[onclick="addVecino()"],
.ga-body .partes-form-panel #btn-cobro-vivienda-toggle {
    border-radius: 0 !important;
    background-image: none !important;
    box-shadow: none !important;
    filter: none !important;
    transform: none !important;
}

.ga-body .partes-form-panel #btn-crear-nuevo-parte,
.ga-body .partes-form-panel button[onclick="addVecino()"] {
    background: var(--covatel-accent) !important;
    border: 1px solid var(--covatel-accent) !important;
    color: #fff !important;
}

.ga-body .partes-form-panel #btn-crear-nuevo-parte:hover,
.ga-body .partes-form-panel button[onclick="addVecino()"]:hover {
    background: var(--covatel-accent-dark) !important;
    border-color: var(--covatel-accent-dark) !important;
}

.ga-body .partes-form-panel #btn-crear-nuevo-parte.gestion-btn-nuevo-parte--destacado {
    outline: 2px solid #4ade80;
    outline-offset: 1px;
}

/* --- Calendario --- */
.ga-body .ga-main--calendario {
    max-width: none;
    width: 100%;
}

.ga-body .calendario-panel.calendario-page-panel {
    padding-left: var(--ga-panel-pad, 1rem) !important;
    padding-right: var(--ga-panel-pad, 1rem) !important;
    padding-bottom: var(--ga-panel-pad, 1rem) !important;
    width: 100%;
    max-width: none;
    box-sizing: border-box;
}

.ga-body .calendario-toolbar {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    margin-bottom: 0.75rem;
    width: 100%;
    min-width: 0;
}

.ga-body .calendario-toolbar-fila--nav {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem 0.35rem;
    width: 100%;
    min-width: 0;
}

.ga-body .calendario-toolbar-cluster-derecha {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    flex: 0 0 auto;
    margin-left: auto;
    min-width: 0;
}

.ga-body .calendario-nav-grupo {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    min-width: 0;
}

.ga-body .calendario-nav-fecha {
    flex: 1 1 0%;
    min-width: 0;
}

.ga-body .calendario-nav-vista {
    flex: 0 0 auto;
}

.ga-body .calendario-nav-google {
    flex: 0 0 auto;
}

.ga-body .calendario-shell {
    background: #ffffff;
    border: 1px solid var(--covatel-border-strong);
    overflow: hidden;
    width: 100%;
}

.ga-body .calendario-panel .cal-tb-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2rem;
    padding: 0.35rem 0.55rem;
    font-size: 0.625rem;
    line-height: 1;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    border: 1px solid var(--covatel-border-strong);
    background: #ffffff;
    color: var(--covatel-text);
    cursor: pointer;
    transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
    white-space: nowrap;
}

.ga-body .calendario-panel .cal-tb-btn:hover {
    background: #f1f5f9;
    border-color: var(--covatel-accent);
    color: var(--covatel-accent);
}

.ga-body .calendario-panel .cal-tb-btn.pointer-events-none {
    cursor: default;
}

.ga-body .calendario-panel .cal-tb-btn svg {
    stroke: currentColor;
}

.ga-body .calendario-panel .cal-tb-btn--icon {
    flex: 0 0 2rem;
    width: 2rem;
    min-width: 2rem;
    padding-left: 0;
    padding-right: 0;
}

.ga-body .calendario-panel .cal-tb-btn--fecha {
    flex: 1 1 auto;
    min-width: 0;
    max-width: 11rem;
    padding-left: 0.45rem;
    padding-right: 0.45rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: clamp(0.5rem, 2.8vw, 0.6875rem);
}

.ga-body .calendario-panel .cal-tb-btn--vista {
    flex: 0 0 auto;
    min-width: 3rem;
    padding-left: 0.45rem;
    padding-right: 0.45rem;
    font-size: clamp(0.5rem, 2.5vw, 0.625rem);
}

.ga-body .calendario-panel #btn-today {
    min-width: 0;
}

.ga-body .calendario-panel #view-label {
    min-width: 3rem;
}

@media (max-width: 380px) {
    .ga-body .calendario-panel .cal-tb-btn {
        min-height: 1.75rem;
        padding-top: 0.25rem;
        padding-bottom: 0.25rem;
    }

    .ga-body .calendario-panel .cal-tb-btn--icon {
        flex-basis: 1.75rem;
        width: 1.75rem;
        min-width: 1.75rem;
    }

    .ga-body .calendario-panel .cal-tb-btn--fecha {
        max-width: 7.5rem;
    }

    .ga-body .calendario-panel .cal-tb-btn--vista,
    .ga-body .calendario-panel #view-label {
        min-width: 2.35rem;
    }
}

@media (min-width: 769px) {
    .ga-body .calendario-toolbar-fila--nav {
        flex-wrap: nowrap;
    }

    .ga-body .calendario-toolbar-cluster-derecha {
        margin-left: auto;
    }

    .ga-body .calendario-panel #google-cal-wrapper {
        width: auto;
    }

    .ga-body .calendario-panel #btn-connect-google {
        width: auto;
    }
}

.ga-body .calendario-panel #btn-connect-google {
    background: var(--covatel-green) !important;
    border-color: var(--covatel-green) !important;
    color: #ffffff !important;
}

.ga-body .calendario-panel #btn-connect-google:hover {
    background: var(--covatel-green-hover) !important;
    border-color: var(--covatel-green-hover) !important;
    color: #ffffff !important;
}

.ga-body .calendario-panel #btn-connect-google.bg-red-50 {
    background: #fef2f2 !important;
    border-color: #fecaca !important;
    color: #b91c1c !important;
}

.ga-body .calendario-panel #btn-connect-google.bg-red-50:hover {
    background: #fee2e2 !important;
    border-color: #fca5a5 !important;
    color: #991b1b !important;
}

@media (max-width: 768px) {
    .ga-body .calendario-toolbar-fila--nav {
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
        gap: 0.25rem 0.35rem;
        align-items: center;
    }

    .ga-body .calendario-nav-fecha {
        grid-column: 1;
        grid-row: 1;
        min-width: 0;
        max-width: none;
    }

    .ga-body .calendario-toolbar-cluster-derecha {
        display: contents;
    }

    .ga-body .calendario-nav-vista {
        grid-column: 2;
        grid-row: 1;
        min-width: 0;
        width: 100%;
    }

    .ga-body .calendario-panel #google-cal-wrapper {
        grid-column: 1 / -1;
        grid-row: 2;
        width: 100%;
    }

    .ga-body .calendario-panel #btn-connect-google {
        width: 100%;
    }

    .ga-body .calendario-panel .cal-tb-btn {
        min-height: 1.75rem;
        padding: 0.25rem 0.3rem;
    }

    .ga-body .calendario-panel .cal-tb-btn--icon {
        flex: 0 0 1.65rem;
        width: 1.65rem;
        min-width: 1.65rem;
        padding-left: 0;
        padding-right: 0;
    }

    .ga-body .calendario-panel .cal-tb-btn--fecha {
        max-width: none;
        flex: 1 1 auto;
        min-width: 0;
        padding-left: 0.2rem;
        padding-right: 0.2rem;
        font-size: clamp(0.45rem, 2.4vw, 0.6rem);
    }

    .ga-body .calendario-panel .cal-tb-btn--vista,
    .ga-body .calendario-panel #view-label {
        min-width: 0;
        flex: 1 1 auto;
        padding-left: 0.2rem;
        padding-right: 0.2rem;
        font-size: clamp(0.45rem, 2.2vw, 0.6rem);
    }

    .ga-body .calendario-nav-grupo {
        gap: 0.125rem;
        width: 100%;
    }
}

.ga-body #aviso-cita-modal-overlay .bg-white {
    border: 1px solid var(--covatel-border-strong);
    box-shadow: 0 10px 30px rgba(15, 23, 42, 0.12);
}

.ga-body #aviso-cita-modal-save {
    background: var(--covatel-accent) !important;
    border: 1px solid var(--covatel-accent) !important;
    color: #ffffff !important;
}

.ga-body #aviso-cita-modal-save:hover {
    background: var(--covatel-accent-dark) !important;
    border-color: var(--covatel-accent-dark) !important;
}

/* --- Últimos partes --- */
.ga-body .ga-main--ultimospartes {
    max-width: none;
    width: 100%;
}

.ga-body .ultimospartes-panel.ultimospartes-page-panel {
    padding-left: var(--ga-panel-pad, 1rem) !important;
    padding-right: var(--ga-panel-pad, 1rem) !important;
    padding-bottom: var(--ga-panel-pad, 1rem) !important;
    max-width: none;
    width: 100%;
    box-sizing: border-box;
}

.ga-body .ultimospartes-panel:not(.ultimospartes-page-panel) {
    --ga-panel-pad: 1.25rem;
    padding: var(--ga-panel-pad) !important;
    max-width: none;
    width: 100%;
    box-sizing: border-box;
}

@media (min-width: 640px) {
    .ga-body .ultimospartes-panel:not(.ultimospartes-page-panel) {
        --ga-panel-pad: 1.5rem;
    }
}

.ga-body .ultimospartes-toolbar {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    margin-bottom: 1rem;
    width: 100%;
    min-width: 0;
}

@media (min-width: 640px) {
    .ga-body .ultimospartes-toolbar {
        flex-direction: row;
        flex-wrap: nowrap;
        align-items: flex-end;
        justify-content: space-between;
        gap: 1rem;
    }
}

.ga-body .ultimospartes-week-nav {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 0.35rem;
    min-width: 0;
    flex: 1 1 auto;
}

.ga-body .ultimospartes-filtro {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    flex: 0 0 auto;
    min-width: 0;
    width: 100%;
}

@media (min-width: 640px) {
    .ga-body .ultimospartes-filtro {
        flex-direction: row;
        align-items: center;
        gap: 0.5rem;
        width: auto;
    }
}

.ga-body .ultimospartes-filtro-label {
    font-size: 0.625rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--covatel-muted);
    white-space: nowrap;
}

.ga-body .ultimospartes-filtro-select {
    width: 100%;
    min-width: 0;
    padding: 0.45rem 0.65rem;
    font-size: 0.8125rem;
    font-family: var(--covatel-font);
    color: var(--covatel-text);
    background: #ffffff;
    border: 1px solid var(--covatel-border-strong);
}

@media (min-width: 640px) {
    .ga-body .ultimospartes-filtro-select {
        width: auto;
        min-width: 12rem;
    }
}

.ga-body .ultimospartes-panel .ultimos-tb-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.25rem;
    min-height: 2rem;
    padding: 0.35rem 0.55rem;
    font-size: clamp(0.5rem, 2.2vw, 0.625rem);
    line-height: 1;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    text-decoration: none;
    border: 1px solid var(--covatel-border-strong);
    background: #ffffff;
    color: var(--covatel-accent);
    cursor: pointer;
    transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
    white-space: nowrap;
    flex-shrink: 0;
}

.ga-body .ultimospartes-panel .ultimos-tb-btn:hover {
    background: #f1f5f9;
    border-color: var(--covatel-accent);
    color: var(--covatel-accent-dark);
}

.ga-body .ultimospartes-panel .ultimos-tb-btn svg {
    stroke: currentColor;
    flex-shrink: 0;
}

.ga-body .ultimospartes-panel .ultimos-tb-btn-label--short {
    display: inline;
}

.ga-body .ultimospartes-panel .ultimos-tb-btn-label--long {
    display: none;
}

@media (min-width: 768px) {
    .ga-body .ultimospartes-panel .ultimos-tb-btn-label--short {
        display: none;
    }

    .ga-body .ultimospartes-panel .ultimos-tb-btn-label--long {
        display: inline;
    }
}

.ga-body .ultimospartes-dia-titulo {
    font-size: 1rem !important;
    margin-bottom: 0.75rem !important;
    color: var(--covatel-accent) !important;
}

.ga-body .ultimospartes-dia-seccion {
    border-bottom: none !important;
}

.ga-body .ultimos-tecnico-bloque {
    margin-bottom: 1rem;
}

.ga-body .ultimos-tecnico-bloque:last-child {
    margin-bottom: 0;
}

.ga-body .ultimos-tech-bar {
    border-radius: 0 !important;
}

.ga-body .ultimospartes-panel .ultimos-acceso-ico {
    background: transparent !important;
    border: none !important;
    color: #000000 !important;
}

.ga-body .ultimospartes-panel .ultimos-acceso-ico:hover,
.ga-body .ultimospartes-panel .ultimos-acceso-ico:active {
    background: transparent !important;
    color: var(--covatel-accent) !important;
}

.ga-body .ultimospartes-panel .ultimos-acceso-ico svg {
    stroke: currentColor;
}

@media (max-width: 767.98px) {
    .ga-body .ultimos-mobile-item {
        border-top: 1px solid var(--covatel-accent) !important;
        border-bottom: none !important;
    }

    .ga-body .ultimos-mobile-item .ultimos-tech-bar {
        background: var(--covatel-panel-teal) !important;
        color: var(--covatel-text) !important;
    }
}

.ga-body .ultimospartes-empty {
    border-radius: 0 !important;
}

@media (max-width: 639px) {
    .ga-body {
        padding-bottom: 5rem;
    }

    .ga-body .ultimospartes-panel:not(.ultimospartes-page-panel) {
        border-left: none !important;
        border-right: none !important;
    }
}

/* --- Presupuestos --- */
.ga-body .ga-main--presupuestos {
    max-width: 64rem;
    width: 100%;
}

.ga-body .presupuestos-panel.presupuestos-page-panel {
    padding-left: var(--ga-panel-pad, 1rem) !important;
    padding-right: var(--ga-panel-pad, 1rem) !important;
    padding-bottom: var(--ga-panel-pad, 1rem) !important;
    max-width: none;
    width: 100%;
    box-sizing: border-box;
}

.ga-body .presupuestos-panel:not(.presupuestos-page-panel) {
    --ga-panel-pad: 1.25rem;
    padding: var(--ga-panel-pad) !important;
    max-width: none;
    width: 100%;
    box-sizing: border-box;
}

@media (min-width: 640px) {
    .ga-body .presupuestos-panel:not(.presupuestos-page-panel) {
        --ga-panel-pad: 1.5rem;
    }
}

.ga-body .presupuestos-panel .section-title {
    font-size: 0.875rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: var(--covatel-text);
    margin-bottom: 0.75rem;
}

.ga-body .presupuestos-panel .section-title svg,
.ga-body .presupuestos-panel .section-title i {
    color: var(--covatel-accent);
    stroke: var(--covatel-accent);
}

.ga-body .presupuestos-panel .card-section {
    padding: 0 !important;
    margin-top: 1.25rem !important;
}

.ga-body .presupuestos-panel .card-section:first-of-type {
    margin-top: 0 !important;
}

.ga-body .presupuestos-panel .presupuesto-total-input {
    font-size: 0.9375rem;
    font-weight: 700;
    color: var(--covatel-text);
}

@media (max-width: 639px) {
    .ga-body .presupuestos-panel:not(.presupuestos-page-panel) {
        border-left: none !important;
        border-right: none !important;
    }
}

/* --- Catálogo maestro-detalle (Materiales, Clientes, Agentes) --- */
.catalogo-body,
.productos-body {
    margin: 0;
    position: relative;
    height: 100dvh;
    max-height: 100dvh;
    padding: 0 !important;
    overflow: hidden;
    background: var(--covatel-accent);
    font-family: var(--covatel-font);
    color: var(--covatel-text);
    box-sizing: border-box;
}

.catalogo-body.ga-body,
.productos-body.ga-body {
    min-height: 0;
    padding: 0 !important;
}

.catalogo-body *,
.productos-body *,
.catalogo-body *::before,
.productos-body *::before,
.catalogo-body *::after,
.productos-body *::after {
    border-radius: 0 !important;
}

.catalogo-body > aside.covatel-sidebar,
.productos-body > aside.covatel-sidebar {
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    z-index: 10000;
}

.catalogo-body > header.covatel-topbar,
.catalogo-body > header.covatel-topbar-mobile,
.productos-body > header.covatel-topbar,
.productos-body > header.covatel-topbar-mobile {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 10000;
}

.catalogo-main,
.productos-main {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    display: flex;
    min-height: 0;
    overflow: hidden;
    margin: 0;
    padding: 0;
    width: 100%;
}

.catalogo-list-panel,
.productos-list-panel {
    width: 35%;
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    min-height: 0;
    background: var(--covatel-accent);
    border-right: 1px solid rgba(255, 255, 255, 0.18);
}

.catalogo-detail-panel,
.productos-detail-panel {
    flex: 1 1 auto;
    min-width: 0;
    min-height: 0;
    display: flex;
    flex-direction: column;
    background: #e8ecef;
}

.catalogo-detail-scroll,
.productos-detail-scroll {
    height: 100%;
    overflow-y: auto;
    width: 100%;
    background: #e8ecef;
}

.catalogo-search-bar,
.productos-search-bar {
    padding: 0.5rem 1rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    background: var(--covatel-accent);
    flex-shrink: 0;
}

.catalogo-body #buscador-productos,
.productos-body #buscador-productos,
.catalogo-body #buscador-clientes,
.catalogo-body #buscador-agentes {
    background: #fff !important;
    border-color: rgba(255, 255, 255, 0.35) !important;
    color: var(--covatel-text) !important;
    padding-top: 0.5rem !important;
    padding-bottom: 0.5rem !important;
    padding-left: 2.25rem !important;
    padding-right: 0.75rem !important;
}

.productos-body #buscador-productos {
    padding-right: 0.75rem !important;
}

.catalogo-body #buscador-productos::placeholder,
.productos-body #buscador-productos::placeholder,
.catalogo-body #buscador-clientes::placeholder,
.catalogo-body #buscador-agentes::placeholder {
    color: var(--covatel-muted);
}

.catalogo-body #buscador-productos:focus,
.productos-body #buscador-productos:focus,
.catalogo-body #buscador-clientes:focus,
.catalogo-body #buscador-agentes:focus {
    border-color: #fff !important;
    box-shadow: var(--covatel-focus-ring) !important;
}

.catalogo-body .btn-añadir-producto-circulo,
.productos-body .btn-añadir-producto-circulo,
.catalogo-body .btn-añadir-cliente-circulo,
.catalogo-body .btn-añadir-agente-circulo {
    border-color: #fff !important;
    color: #fff !important;
    background: transparent;
}

.catalogo-body .btn-añadir-producto-circulo:hover,
.productos-body .btn-añadir-producto-circulo:hover,
.catalogo-body .btn-añadir-cliente-circulo:hover,
.catalogo-body .btn-añadir-agente-circulo:hover {
    background: rgba(255, 255, 255, 0.12);
}

.productos-body #marca-seleccionada {
    background: rgba(255, 255, 255, 0.92) !important;
    color: var(--covatel-text) !important;
}

.catalogo-body .catalogo-search-bar .absolute.left-3 i,
.catalogo-body .catalogo-search-bar .absolute.left-3 svg,
.productos-body .productos-search-bar .absolute.left-3 i,
.productos-body .productos-search-bar .absolute.left-3 svg {
    color: var(--covatel-muted) !important;
    stroke: var(--covatel-muted) !important;
}

.catalogo-body #lista-productos,
.productos-body #lista-productos,
.catalogo-body #lista-clientes,
.catalogo-body #lista-agentes {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    background: var(--covatel-accent);
    scrollbar-color: rgba(255, 255, 255, 0.3) transparent;
    scrollbar-width: thin;
}

.catalogo-body #lista-productos::-webkit-scrollbar,
.productos-body #lista-productos::-webkit-scrollbar,
.catalogo-body #lista-clientes::-webkit-scrollbar,
.catalogo-body #lista-agentes::-webkit-scrollbar {
    width: 5px;
}

.catalogo-body #lista-productos::-webkit-scrollbar-track,
.productos-body #lista-productos::-webkit-scrollbar-track,
.catalogo-body #lista-clientes::-webkit-scrollbar-track,
.catalogo-body #lista-agentes::-webkit-scrollbar-track {
    background: transparent;
}

.catalogo-body #lista-productos::-webkit-scrollbar-thumb,
.productos-body #lista-productos::-webkit-scrollbar-thumb,
.catalogo-body #lista-clientes::-webkit-scrollbar-thumb,
.catalogo-body #lista-agentes::-webkit-scrollbar-thumb {
    background: rgba(255, 255, 255, 0.3);
    border-radius: 0;
}

.catalogo-body #lista-productos::-webkit-scrollbar-thumb:hover,
.productos-body #lista-productos::-webkit-scrollbar-thumb:hover,
.catalogo-body #lista-clientes::-webkit-scrollbar-thumb:hover,
.catalogo-body #lista-agentes::-webkit-scrollbar-thumb:hover {
    background: rgba(255, 255, 255, 0.48);
}

.catalogo-body .catalogo-list-empty,
.productos-body .productos-list-empty {
    color: rgba(255, 255, 255, 0.72);
    text-align: center;
    padding: 2rem 1rem;
}

.catalogo-body .producto-item,
.productos-body .producto-item,
.catalogo-body .cliente-item,
.catalogo-body .agente-item {
    padding: 0.75rem 1rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.14);
    cursor: pointer;
    transition: background 0.15s ease;
}

.catalogo-body .producto-item:not(.selected):hover,
.productos-body .producto-item:not(.selected):hover,
.catalogo-body .cliente-item:not(.selected):hover,
.catalogo-body .agente-item:not(.selected):hover {
    background: rgba(255, 255, 255, 0.08);
}

.catalogo-body .producto-item.selected,
.productos-body .producto-item.selected,
.catalogo-body .cliente-item.selected,
.catalogo-body .agente-item.selected,
.catalogo-body .producto-item.selected:hover,
.productos-body .producto-item.selected:hover,
.catalogo-body .cliente-item.selected:hover,
.catalogo-body .agente-item.selected:hover {
    background: var(--covatel-panel-teal, #d0e7ed) !important;
    border-left: 3px solid var(--covatel-accent) !important;
    border-bottom-color: rgba(0, 102, 128, 0.18) !important;
}

.catalogo-body .catalogo-item-title,
.productos-body .producto-item-ref {
    font-weight: 600;
    color: rgba(255, 255, 255, 0.96);
}

.catalogo-body .catalogo-item-meta,
.productos-body .producto-item-art {
    color: rgba(255, 255, 255, 0.65);
    font-weight: 500;
}

.catalogo-body .catalogo-item-sub,
.productos-body .producto-item-desc {
    font-size: 0.875rem;
    color: rgba(255, 255, 255, 0.72);
    margin-top: 0.25rem;
}

.productos-body .producto-item-precio {
    font-size: 0.875rem;
    font-weight: 600;
    color: #d0e7ed;
    margin-top: 0.25rem;
}

.catalogo-body .producto-item.selected .producto-item-ref,
.productos-body .producto-item.selected .producto-item-ref,
.catalogo-body .producto-item.selected .producto-item-art,
.productos-body .producto-item.selected .producto-item-art,
.catalogo-body .producto-item.selected .producto-item-desc,
.productos-body .producto-item.selected .producto-item-desc,
.catalogo-body .cliente-item.selected .catalogo-item-title,
.catalogo-body .cliente-item.selected .catalogo-item-meta,
.catalogo-body .cliente-item.selected .catalogo-item-sub,
.catalogo-body .agente-item.selected .catalogo-item-title,
.catalogo-body .agente-item.selected .catalogo-item-meta,
.catalogo-body .agente-item.selected .catalogo-item-sub {
    color: var(--covatel-text);
}

.catalogo-body .producto-item.selected .producto-item-art,
.productos-body .producto-item.selected .producto-item-art,
.catalogo-body .cliente-item.selected .catalogo-item-meta,
.catalogo-body .agente-item.selected .catalogo-item-meta {
    color: var(--covatel-muted);
}

.productos-body .producto-item.selected .producto-item-precio {
    color: var(--covatel-accent);
}

/* Productos — panel lista estilo explorador (fondo blanco, filas compactas) */
.productos-body .productos-list-panel {
    background: #fff;
    border-right: 1px solid #d4d4d4;
}

.productos-body .productos-search-bar {
    background: #f3f3f3;
    border-bottom: 1px solid #d4d4d4;
    padding: 0 0.5rem;
    box-sizing: border-box;
}

.productos-body .productos-search-bar .relative {
    position: relative;
    flex: 1 1 auto;
    min-width: 0;
}

.productos-body .productos-search-bar .absolute {
    position: absolute;
}

.productos-body .productos-search-bar .left-3 {
    left: 0.75rem;
}

.productos-body .productos-search-bar .right-3 {
    right: 0.75rem;
}

.productos-body .productos-search-bar .right-10 {
    right: 2.5rem;
}

.productos-body .productos-search-bar .top-1\/2 {
    top: 50%;
}

.productos-body .productos-search-bar .-translate-y-1\/2 {
    transform: translateY(-50%);
}

@media (min-width: 769px) {
    .productos-body .productos-search-bar {
        min-height: var(--covatel-brand-bar-h);
        height: var(--covatel-brand-bar-h);
    }
}

.productos-body .btn-añadir-producto-circulo {
    border-color: var(--covatel-accent) !important;
    color: var(--covatel-accent) !important;
    background: #fff;
}

.productos-body .btn-añadir-producto-circulo:hover {
    background: #e8f4f8;
}

.productos-body #buscador-productos {
    border-color: #c8c8c8 !important;
    padding-top: 0.35rem !important;
    padding-bottom: 0.35rem !important;
}

.productos-body #buscador-productos:focus {
    border-color: var(--covatel-accent) !important;
    box-shadow: 0 0 0 1px var(--covatel-accent) !important;
}

.productos-body #lista-productos {
    background: #fff;
    scrollbar-color: #c8c8c8 transparent;
}

.productos-body #lista-productos::-webkit-scrollbar-thumb {
    background: #c8c8c8;
}

.productos-body #lista-productos::-webkit-scrollbar-thumb:hover {
    background: #a8a8a8;
}

.productos-body .productos-list-empty {
    color: var(--covatel-muted);
}

.productos-body .producto-item {
    padding: 0;
    border-bottom: 1px solid #ebebeb;
}

.productos-body .producto-item:not(.selected):hover {
    background: #f5f5f5;
}

.productos-body .producto-item.selected,
.productos-body .producto-item.selected:hover {
    background: #e8f4fc !important;
    border-left: 2px solid var(--covatel-accent) !important;
    border-bottom-color: #d0e7ed !important;
}

.productos-body .producto-item-ref {
    font-weight: 400;
    font-size: 0.8125rem;
    line-height: 1.25;
    color: #222;
}

.productos-body .producto-item-art {
    color: #888;
    font-weight: 400;
}

.productos-body .producto-item-desc {
    font-size: 0.75rem;
    color: #666;
    margin-top: 0;
    line-height: 1.2;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.productos-body .producto-item-desc.producto-item-title {
    font-size: 0.8125rem;
    font-weight: 600;
    color: #222;
}

.productos-body .producto-item-ref.producto-item-meta {
    font-weight: 400;
    font-size: 0.75rem;
    color: #888;
    margin-top: 0.05rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.productos-body .producto-item.selected .producto-item-desc.producto-item-title {
    color: #111;
}

.productos-body .producto-item.selected .producto-item-ref.producto-item-meta {
    color: #666;
}

.productos-body .producto-item.selected .producto-item-art,
.productos-body .producto-item.selected .producto-item-desc:not(.producto-item-title) {
    color: #555;
}

.productos-body .list-row-compact {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    padding: 0.2rem 0.55rem 0.2rem 0.65rem;
    min-height: 1.375rem;
    font-size: 0.8125rem;
    line-height: 1.25;
}

.productos-body .list-row-name {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: #222;
}

.productos-body .list-row-count {
    flex-shrink: 0;
    color: #888;
    font-size: 0.75rem;
    font-variant-numeric: tabular-nums;
    min-width: 2.5rem;
    text-align: right;
}

.productos-body .producto-item.selected .list-row-name {
    color: #111;
    font-weight: 500;
}

.productos-body .producto-item.selected .list-row-count {
    color: var(--covatel-accent);
}

.productos-body .list-panel-header {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.3rem 0.55rem;
    border-bottom: 1px solid #d4d4d4;
    background: #f3f3f3;
    cursor: pointer;
    font-size: 0.8125rem;
    line-height: 1.25;
    color: #333;
    flex-shrink: 0;
}

.productos-body .list-panel-header:hover {
    background: #eaeaea;
}

.productos-body .list-panel-header-static {
    cursor: default;
}

.productos-body .list-panel-header-static:hover {
    background: #f3f3f3;
}

.productos-body .list-panel-header-title {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-weight: 500;
}

.productos-body .list-panel-header-count {
    flex-shrink: 0;
    color: #888;
    font-size: 0.75rem;
    font-variant-numeric: tabular-nums;
}

.productos-body .list-row-articulo {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.22rem 0.5rem 0.22rem 0.55rem;
}

.productos-body .producto-thumb-sm {
    width: 28px;
    height: 28px;
    flex-shrink: 0;
    object-fit: contain;
    border: 1px solid #e0e0e0;
    background: #fff;
}

.productos-body .list-row-articulo .producto-info {
    flex: 1;
    min-width: 0;
}

.productos-body .producto-item-precio-inline {
    float: right;
    font-weight: 600;
    color: var(--covatel-accent);
    font-size: 0.75rem;
    margin-left: 0.35rem;
}

.productos-body .producto-item.selected .producto-item-precio-inline {
    color: var(--covatel-accent);
}

/* Clientes — panel lista estilo explorador (igual que productos) */
.clientes-body .clientes-list-panel,
.clientes-body .catalogo-list-panel {
    background: #fff;
    border-right: 1px solid #d4d4d4;
}

.clientes-body .clientes-search-bar,
.clientes-body .catalogo-search-bar {
    background: #f3f3f3;
    border-bottom: 1px solid #d4d4d4;
    padding: 0 0.5rem;
    box-sizing: border-box;
}

@media (min-width: 769px) {
    .clientes-body .clientes-search-bar,
    .clientes-body .catalogo-search-bar {
        min-height: var(--covatel-brand-bar-h);
        height: var(--covatel-brand-bar-h);
    }
}

.clientes-body .btn-añadir-cliente-circulo {
    border-color: var(--covatel-accent) !important;
    color: var(--covatel-accent) !important;
    background: #fff;
}

.clientes-body #buscador-clientes {
    border-color: #c8c8c8 !important;
    padding-right: 0.75rem !important;
}

.clientes-body #lista-clientes {
    background: #fff;
    scrollbar-color: #c8c8c8 transparent;
}

.clientes-body #lista-clientes::-webkit-scrollbar-thumb {
    background: #c8c8c8;
}

.clientes-body .clientes-list-empty,
.clientes-body .catalogo-list-empty {
    color: var(--covatel-muted);
}

.clientes-body .cliente-item {
    padding: 0;
    border-bottom: 1px solid #ebebeb;
}

.clientes-body .cliente-item:not(.selected):hover {
    background: #f5f5f5;
}

.clientes-body .cliente-item.selected,
.clientes-body .cliente-item.selected:hover {
    background: #e8f4fc !important;
    border-left: 2px solid var(--covatel-accent) !important;
    border-bottom-color: #d0e7ed !important;
}

.clientes-body .list-row-compact {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    padding: 0.2rem 0.55rem 0.2rem 0.65rem;
    min-height: 1.375rem;
    font-size: 0.8125rem;
    line-height: 1.25;
}

.clientes-body .list-row-name {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: #222;
}

.clientes-body .list-row-count {
    flex-shrink: 0;
    color: #888;
    font-size: 0.75rem;
    font-variant-numeric: tabular-nums;
    min-width: 2.5rem;
    text-align: right;
}

.clientes-body .cliente-item.selected .list-row-name {
    color: #111;
    font-weight: 500;
}

.clientes-body .cliente-item.selected .list-row-count {
    color: var(--covatel-accent);
}

/* Agentes — mismo layout de lista que clientes */
.agentes-body .agentes-list-panel,
.agentes-body .catalogo-list-panel {
    background: #fff;
    border-right: 1px solid #d4d4d4;
}

.agentes-body .agentes-search-bar,
.agentes-body .catalogo-search-bar {
    background: #f3f3f3;
    border-bottom: 1px solid #d4d4d4;
    padding: 0 0.5rem;
    box-sizing: border-box;
}

@media (min-width: 769px) {
    .agentes-body .agentes-search-bar,
    .agentes-body .catalogo-search-bar {
        min-height: var(--covatel-brand-bar-h);
        height: var(--covatel-brand-bar-h);
    }
}

.agentes-body .btn-añadir-agente-circulo {
    border-color: var(--covatel-accent) !important;
    color: var(--covatel-accent) !important;
    background: #fff;
}

.agentes-body #buscador-agentes {
    border-color: #c8c8c8 !important;
    padding-right: 0.75rem !important;
}

.agentes-body #lista-agentes {
    background: #fff;
    scrollbar-color: #c8c8c8 transparent;
}

.agentes-body #lista-agentes::-webkit-scrollbar-thumb {
    background: #c8c8c8;
}

.agentes-body .agentes-list-empty,
.agentes-body .catalogo-list-empty {
    color: var(--covatel-muted);
}

.agentes-body .agente-item {
    padding: 0;
    border-bottom: 1px solid #ebebeb;
}

.agentes-body .agente-item:not(.selected):hover {
    background: #f5f5f5;
}

.agentes-body .agente-item.selected,
.agentes-body .agente-item.selected:hover {
    background: #e8f4fc !important;
    border-left: 2px solid var(--covatel-accent) !important;
    border-bottom-color: #d0e7ed !important;
}

.agentes-body .list-row-compact {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    padding: 0.2rem 0.55rem 0.2rem 0.65rem;
    min-height: 1.375rem;
    font-size: 0.8125rem;
    line-height: 1.25;
}

.agentes-body .list-row-name {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: #222;
}

.agentes-body .list-row-count {
    flex-shrink: 0;
    color: #888;
    font-size: 0.75rem;
    font-variant-numeric: tabular-nums;
    min-width: 2.5rem;
    text-align: right;
}

.agentes-body .agente-item.selected .list-row-name {
    color: #111;
    font-weight: 500;
}

.agentes-body .agente-item.selected .list-row-count {
    color: var(--covatel-accent);
}

.catalogo-body .ficha-producto,
.productos-body .ficha-producto,
.catalogo-body .ficha-cliente,
.clientes-body .ficha-cliente,
.catalogo-body .ficha-agente {
    padding: 0.875rem 1rem;
    width: 100%;
    min-height: 100%;
    background: #e8ecef;
}

.catalogo-body .ficha-producto-vacia,
.productos-body .ficha-producto-vacia,
.catalogo-body .ficha-cliente-vacia,
.clientes-body .ficha-cliente-vacia,
.catalogo-body .ficha-agente-vacia {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    min-height: 10rem;
    color: var(--covatel-muted);
    font-size: 0.8125rem;
    background: #e8ecef;
}

/* Ficha detalle — contenido sobre fondo gris (sin caja blanca) */
.catalogo-ficha-card {
    background: transparent;
    border: none;
    box-shadow: none;
    padding: 0;
    max-width: 920px;
}

.catalogo-ficha-header {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    padding-bottom: 0.75rem;
    margin-bottom: 0.75rem;
    border-bottom: 1px solid #d5dbe1;
}

.catalogo-ficha-thumb,
.imagen-producto-small {
    width: 8.5rem;
    height: 8.5rem;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0.375rem;
    position: relative;
    background: #fff;
    border: 1px solid #d5dbe1;
    border-radius: 0.25rem;
    overflow: hidden;
}

.catalogo-ficha-thumb img,
.imagen-producto-small img {
    max-width: 100%;
    max-height: 100%;
    width: 100%;
    height: 100%;
    object-fit: contain;
    background: #fff;
}

.catalogo-ficha-thumb .catalogo-ficha-thumb-empty,
.imagen-producto-small .catalogo-ficha-thumb-empty {
    text-align: center;
    color: var(--covatel-muted);
}

.catalogo-ficha-thumb .catalogo-ficha-thumb-empty i,
.catalogo-ficha-thumb .catalogo-ficha-thumb-empty svg,
.imagen-producto-small .catalogo-ficha-thumb-empty i,
.imagen-producto-small .catalogo-ficha-thumb-empty svg {
    width: 1.25rem;
    height: 1.25rem;
    margin: 0 auto 0.25rem;
    opacity: 0.55;
}

.catalogo-ficha-thumb .catalogo-ficha-thumb-empty p,
.imagen-producto-small .catalogo-ficha-thumb-empty p {
    font-size: 0.6875rem;
    margin: 0;
}

.catalogo-ficha-summary {
    flex: 1;
    min-width: 0;
    padding-top: 0.125rem;
}

.catalogo-ficha-title {
    font-size: 0.9375rem;
    font-weight: 600;
    line-height: 1.35;
    color: var(--covatel-text);
    margin: 0 0 0.25rem;
}

.catalogo-ficha-meta {
    font-size: 0.75rem;
    line-height: 1.45;
    color: var(--covatel-muted);
}

.catalogo-ficha-meta + .catalogo-ficha-meta {
    margin-top: 0.125rem;
}

.catalogo-ficha-meta .catalogo-ficha-meta-accent {
    color: var(--covatel-accent);
    font-weight: 600;
}

.catalogo-ficha-form {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.catalogo-ficha-grid {
    display: grid;
    gap: 0.5rem 0.625rem;
}

.catalogo-ficha-grid--2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.catalogo-ficha-grid--3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.catalogo-ficha-grid--4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.catalogo-ficha-grid--12 {
    grid-template-columns: repeat(12, minmax(0, 1fr));
}

.catalogo-ficha-span-8 {
    grid-column: span 8;
}

.catalogo-ficha-span-6 {
    grid-column: span 6;
}

.catalogo-ficha-span-2 {
    grid-column: span 2;
}

.catalogo-ficha-span-12 {
    grid-column: span 12;
}

.catalogo-ficha-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin-top: 0.625rem;
    padding-top: 0.75rem;
    border-top: 1px solid #d5dbe1;
}

.catalogo-ficha-botones-edicion {
    display: none;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
}

.catalogo-ficha-botones-edicion.is-visible {
    display: flex;
}

.catalogo-ficha-actions.is-editing .catalogo-ficha-btn-editar {
    opacity: 0.42;
    pointer-events: none;
}

.catalogo-ficha-btn-editar {
    transition: opacity 0.15s ease;
}

.catalogo-ficha-card .tech-label,
.productos-body .catalogo-ficha-card .tech-label,
.clientes-body .catalogo-ficha-card .tech-label {
    display: block;
    font-size: 0.625rem;
    font-weight: 600;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: #64748b;
    margin-bottom: 0.25rem;
}

.catalogo-ficha-card .tech-input-view,
.productos-body .catalogo-ficha-card .tech-input-view,
.clientes-body .catalogo-ficha-card .tech-input-view {
    border: 1px solid #d5dbe1;
    background: #fff;
    padding: 0.3125rem 0.5rem;
    min-height: 1.75rem;
    font-size: 0.8125rem;
    line-height: 1.35;
    color: var(--covatel-text);
    border-radius: 0.125rem;
}

.catalogo-ficha-card .tech-input-view--textarea {
    min-height: 2.75rem;
    white-space: pre-wrap;
}

.catalogo-ficha-card .tech-input-view--table {
    padding: 0;
    overflow: hidden;
}

.catalogo-ficha-card .tech-input-edit,
.catalogo-ficha-card .tech-input,
.productos-body .catalogo-ficha-card .tech-input-edit,
.productos-body .catalogo-ficha-card .tech-input,
.clientes-body .catalogo-ficha-card .tech-input-edit,
.clientes-body .catalogo-ficha-card .tech-input {
    width: 100%;
    padding: 0.3125rem 0.5rem;
    font-size: 0.8125rem;
    line-height: 1.35;
    font-weight: 400;
    border-radius: 0.125rem;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
    background: #fff !important;
    border: 1px solid #cbd5e1 !important;
    color: var(--covatel-text) !important;
}

.catalogo-ficha-card .tech-input:focus,
.catalogo-ficha-card .tech-input-edit:focus,
.productos-body .catalogo-ficha-card .tech-input:focus,
.productos-body .catalogo-ficha-card .tech-input-edit:focus,
.clientes-body .catalogo-ficha-card .tech-input:focus,
.clientes-body .catalogo-ficha-card .tech-input-edit:focus {
    border-color: var(--covatel-accent) !important;
    box-shadow: var(--covatel-focus-ring) !important;
}

.catalogo-ficha-card .avisos-cliente-table th,
.catalogo-ficha-card .avisos-cliente-table td {
    padding: 0.375rem 0.5rem;
    font-size: 0.75rem;
}

.catalogo-ficha-thumb .btn-eliminar-imagen,
.imagen-producto-small .btn-eliminar-imagen {
    position: absolute;
    top: 3px;
    right: 3px;
    width: 20px;
    height: 20px;
    border-radius: 0.125rem;
    background: rgba(0, 0, 0, 0.72);
    color: #fff;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 10;
}

.catalogo-ficha-thumb .btn-eliminar-imagen.danger,
.imagen-producto-small .btn-eliminar-imagen.danger {
    background: #ef4444;
}

.catalogo-ficha-thumb .btn-eliminar-imagen i,
.catalogo-ficha-thumb .btn-eliminar-imagen svg,
.imagen-producto-small .btn-eliminar-imagen i,
.imagen-producto-small .btn-eliminar-imagen svg {
    width: 12px;
    height: 12px;
}

.catalogo-ficha-thumb .btn-subir-imagen,
.imagen-producto-small .btn-subir-imagen {
    position: absolute;
    top: 3px;
    left: 3px;
    width: 22px;
    height: 22px;
    border-radius: 0.125rem;
    background: rgba(0, 102, 128, 0.88);
    color: #fff;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 10;
    padding: 0;
}

.catalogo-ficha-thumb .btn-subir-imagen i,
.catalogo-ficha-thumb .btn-subir-imagen svg,
.imagen-producto-small .btn-subir-imagen i,
.imagen-producto-small .btn-subir-imagen svg {
    width: 13px;
    height: 13px;
}

.catalogo-ficha-thumb .btn-subir-imagen i,
.catalogo-ficha-thumb .btn-subir-imagen svg,
.imagen-producto-small .btn-subir-imagen i,
.imagen-producto-small .btn-subir-imagen svg {
    width: 13px;
    height: 13px;
}

.catalogo-ficha-grid--3 .catalogo-ficha-span-2 {
    grid-column: span 2;
}

.catalogo-ficha-img-btn {
    position: absolute;
    display: flex;
    align-items: center;
    justify-content: center;
    border: none;
    cursor: pointer;
    color: #fff;
    z-index: 10;
}

.catalogo-ficha-img-btn--upload {
    top: 3px;
    left: 3px;
    width: 22px;
    height: 22px;
    border-radius: 0.125rem;
    background: rgba(0, 102, 128, 0.88);
}

.catalogo-ficha-img-btn--delete {
    top: 3px;
    right: 3px;
    width: 20px;
    height: 20px;
    border-radius: 0.125rem;
    background: #ef4444;
}

.catalogo-ficha-img-btn i,
.catalogo-ficha-img-btn svg {
    width: 12px;
    height: 12px;
}

.catalogo-ficha-card .avisos-cliente-table thead {
    background: #f1f5f9;
}

.catalogo-ficha-card .avisos-cliente-table th {
    color: #64748b;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-size: 0.625rem;
}

@media (max-width: 768px) {
    .catalogo-ficha-grid--3,
    .catalogo-ficha-grid--4 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .catalogo-ficha-grid--3 .catalogo-ficha-span-2,
    .catalogo-ficha-grid--12,
    .catalogo-ficha-span-8,
    .catalogo-ficha-span-6,
    .catalogo-ficha-span-2 {
        grid-column: span 12;
    }
}

.catalogo-body .tech-label,
.productos-body .tech-label,
.clientes-body .tech-label {
    display: block;
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--covatel-muted);
    margin-bottom: 0.375rem;
}

.catalogo-body .tech-input-view,
.productos-body .tech-input-view {
    border: 1px solid var(--covatel-border);
    background: #fff;
    padding: 0.625rem 0.75rem;
    color: var(--covatel-text);
}

.catalogo-body .tech-input-edit,
.catalogo-body .tech-input,
.productos-body .tech-input-edit,
.productos-body .tech-input {
    width: 100%;
    padding: 0.625rem 0.75rem;
    font-size: 0.9375rem;
    font-weight: 400;
    border-radius: 0;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
    background: #fff !important;
    border: 1px solid var(--covatel-border-strong) !important;
    color: var(--covatel-text) !important;
}

.catalogo-body .tech-input::placeholder,
.productos-body .tech-input::placeholder {
    color: var(--covatel-muted);
}

.catalogo-body .tech-input:focus,
.catalogo-body .tech-input-edit:focus,
.productos-body .tech-input:focus,
.productos-body .tech-input-edit:focus {
    outline: none !important;
    border-color: var(--covatel-accent) !important;
    border-width: 1px !important;
    box-shadow: none !important;
}

.catalogo-btn-primary,
.productos-btn-primary,
.catalogo-body .catalogo-btn-primary,
.productos-body .productos-btn-primary,
.clientes-body .catalogo-btn-primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.3125rem 0.75rem;
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    background: var(--covatel-accent);
    color: #fff;
    border: 1px solid var(--covatel-accent);
    cursor: pointer;
    transition: background 0.15s ease, border-color 0.15s ease;
}

.catalogo-btn-primary:hover,
.productos-btn-primary:hover,
.catalogo-body .catalogo-btn-primary:hover,
.productos-body .productos-btn-primary:hover {
    background: var(--covatel-accent-dark);
    border-color: var(--covatel-accent-dark);
}

.catalogo-btn-secondary,
.productos-btn-secondary,
.catalogo-body .catalogo-btn-secondary,
.productos-body .productos-btn-secondary,
.clientes-body .catalogo-btn-secondary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.3125rem 0.75rem;
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    background: #fff;
    color: var(--covatel-text);
    border: 1px solid var(--covatel-border-strong);
    cursor: pointer;
    transition: background 0.15s ease;
}

.catalogo-btn-secondary:hover,
.productos-btn-secondary:hover,
.catalogo-body .catalogo-btn-secondary:hover,
.productos-body .productos-btn-secondary:hover {
    background: #f8fafc;
}

.catalogo-btn-danger,
.productos-btn-danger,
.catalogo-body .catalogo-btn-danger,
.productos-body .productos-btn-danger,
.clientes-body .catalogo-btn-danger {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.3125rem 0.75rem;
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    background: #dc2626;
    color: #fff;
    border: 1px solid #dc2626;
    cursor: pointer;
}

.catalogo-btn-danger:hover,
.productos-btn-danger:hover,
.catalogo-body .catalogo-btn-danger:hover,
.productos-body .productos-btn-danger:hover {
    background: #b91c1c;
    border-color: #b91c1c;
}

@media (max-width: 768px) {
    .catalogo-body,
    .productos-body {
        height: auto;
        max-height: none;
        overflow: auto;
    }

    .catalogo-main,
    .productos-main {
        position: relative;
        top: auto;
        left: auto;
        right: auto;
        bottom: auto;
        margin-top: 0;
        min-height: 100dvh;
        flex-direction: column;
        overflow: visible;
    }

    .catalogo-list-panel,
    .productos-list-panel,
    .catalogo-detail-panel,
    .productos-detail-panel {
        width: 100% !important;
    }

    .catalogo-list-panel,
    .productos-list-panel {
        border-right: none;
        border-bottom: 1px solid rgba(255, 255, 255, 0.18);
    }

    .catalogo-search-bar,
    .productos-search-bar {
        padding: 0.5rem 1rem;
    }

    .catalogo-body .ficha-producto,
    .productos-body .ficha-producto,
    .catalogo-body .ficha-cliente,
    .catalogo-body .ficha-agente {
        padding: 1rem;
        padding-right: 1rem;
    }

    .catalogo-body #ficha-producto-container,
    .productos-body #ficha-producto-container,
    .catalogo-body #ficha-cliente-container,
    .catalogo-body #ficha-agente-container,
    .catalogo-body #lista-productos,
    .productos-body #lista-productos,
    .catalogo-body #lista-clientes,
    .catalogo-body #lista-agentes {
        height: auto !important;
        max-height: none !important;
        overflow: visible !important;
    }

    .productos-body .producto-thumb {
        display: block;
    }
}

@media (min-width: 769px) {
    .productos-body .producto-thumb:not(.producto-thumb-sm) {
        display: none;
    }

    .productos-body .producto-thumb-sm {
        display: block;
    }
}

/* =============================================================================
   Importador de avisos
   ============================================================================= */
.covatel-app-shell.ia-body {
    padding: 0;
}

.ia-body .ia-page.ga-page {
    margin: 0;
    padding: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
}

.ia-body .ia-main.ga-main {
    max-width: none;
    width: 100%;
    margin: 0;
    padding: 0;
    flex: 1 1 auto;
    min-height: 0;
    box-sizing: border-box;
}

.ia-body .importador-left {
    margin: 0;
    padding: 0;
    flex: 1 1 auto;
    min-width: 240px;
    min-height: 0;
    display: flex;
    flex-direction: column;
}

.ia-body .importador-wrapper {
    display: flex;
    gap: 0;
    align-items: stretch;
    height: 100%;
    min-height: 520px;
    margin: 0;
    padding: 0;
    min-width: 0;
}

.ia-body .importador-right {
    flex: 0 0 680px;
    max-width: 680px;
    min-width: 480px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    background: var(--covatel-content-bg);
    container-type: inline-size;
    container-name: importador-form-col;
}

.ia-body .importador-form-panel.gestion-avisos-form-panel.importador-form-page-panel {
    --ga-panel-pad: 1rem;
    height: 100%;
    display: flex;
    flex-direction: column;
    min-height: 0;
    min-width: 0;
    max-width: 100%;
    width: 100%;
    box-sizing: border-box;
    padding: 0 !important;
    background: transparent !important;
    border: none !important;
}

@media (min-width: 640px) {
    .ia-body .importador-form-panel.gestion-avisos-form-panel.importador-form-page-panel {
        --ga-panel-pad: 1.25rem;
    }
}

.ia-body .importador-form-page-panel .ga-form-page-header {
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    min-height: var(--covatel-brand-bar-h);
    height: var(--covatel-brand-bar-h);
    display: flex;
    align-items: center;
    flex-shrink: 0;
}

.ia-body .importador-form-page-panel .ga-form-page-header__inner {
    max-width: none;
    padding-left: var(--ga-panel-pad);
    padding-right: var(--ga-panel-pad);
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
    min-width: 0;
    width: 100%;
    box-sizing: border-box;
}

.ia-body .importador-form-page-panel .ga-form-page-header h1.text-2xl,
.ia-body .importador-form-page-panel .ga-form-page-header h1 + p {
    margin-bottom: 0 !important;
}

.ia-body .importador-form-page-panel .importador-form-scroll {
    flex: 1 1 auto;
    overflow-x: auto;
    overflow-y: auto;
    min-height: 0;
    min-width: 0;
    max-width: 100%;
    padding: var(--ga-panel-pad) var(--ga-panel-pad) 1rem;
    box-sizing: border-box;
    scrollbar-color: var(--covatel-accent) transparent;
    scrollbar-width: thin;
}

.ia-body .importador-form-scroll #contact-form,
.ia-body .importador-form-scroll #contact-form > .grid,
.ia-body .importador-form-scroll .card-section,
.ia-body .importador-form-scroll .card-section .grid {
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
}

@container importador-form-col (max-width: 1100px) {
    .ia-body .importador-form-panel .grid.sm\:grid-cols-4,
    .ia-body .importador-form-panel .grid.sm\:grid-cols-\[minmax\(0\,1\.1fr\)_minmax\(0\,1fr\)_minmax\(0\,1fr\)_minmax\(0\,1\.6fr\)\] {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

@container importador-form-col (max-width: 820px) {
    .ia-body .importador-form-panel .grid.sm\:grid-cols-2,
    .ia-body .importador-form-panel .grid.sm\:grid-cols-3,
    .ia-body .importador-form-panel .grid.sm\:grid-cols-4,
    .ia-body .importador-form-panel .grid.sm\:grid-cols-\[1\.2fr_1fr_0\.8fr\],
    .ia-body .importador-form-panel .grid.sm\:grid-cols-\[220px_minmax\(0\,1fr\)\],
    .ia-body .importador-form-panel .grid.sm\:grid-cols-\[minmax\(0\,1fr\)_minmax\(0\,100px\)_minmax\(0\,100px\)\],
    .ia-body .importador-form-panel .grid.sm\:grid-cols-\[7fr_3fr\],
    .ia-body .importador-form-panel .grid.sm\:grid-cols-\[minmax\(0\,1\.1fr\)_minmax\(0\,1fr\)_minmax\(0\,1fr\)_minmax\(0\,1\.6fr\)\],
    .ia-body .importador-form-panel .grid.sm\:grid-cols-\[minmax\(0\,1fr\)_auto\],
    .ia-body .importador-form-panel .card-section > .grid {
        grid-template-columns: minmax(0, 1fr) !important;
    }
}

/* Cabecera lista de emails: altura barra Covatel (título + buscador) */
.ia-body .importador-panel-header {
    box-sizing: border-box;
    min-height: var(--covatel-brand-bar-h);
    height: var(--covatel-brand-bar-h);
    padding: 0 0.75rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 0.22rem;
    flex-shrink: 0;
}

.ia-body .importador-panel-title {
    font-size: 0.7rem;
    line-height: 1.15;
    margin: 0;
}

.ia-body .importador-search {
    margin-top: 0;
}

.ia-body .importador-search input {
    padding: 0.28rem 0.5rem;
    font-size: 0.72rem;
    line-height: 1.2;
    min-height: 1.5rem;
}

.ia-body .importador-form-panel.gestion-avisos-form-panel:not(.importador-form-page-panel) {
    height: 100%;
    display: flex;
    flex-direction: column;
    min-height: 0;
    padding: 1rem 1.25rem !important;
}

.ia-body .importador-form-scroll {
    flex: 1 1 auto;
    overflow-y: auto;
    min-height: 0;
    scrollbar-color: var(--covatel-accent) transparent;
    scrollbar-width: thin;
}

.ia-body .importador-form-scroll::-webkit-scrollbar {
    width: 8px;
}

.ia-body .importador-form-scroll::-webkit-scrollbar-thumb {
    background: var(--covatel-accent);
    border-radius: 0;
}

.ia-body .email-list {
    scrollbar-color: var(--covatel-accent) transparent;
    scrollbar-width: thin;
}

.ia-body .email-list::-webkit-scrollbar {
    width: 8px;
}

.ia-body .email-list::-webkit-scrollbar-thumb {
    background: var(--covatel-accent);
    border-radius: 0;
}

.ia-body .importador-email-load-sentinel {
    display: none;
    min-height: 72px;
    background: #ffffff;
    border-top: 1px solid #e2e8f0;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.ia-body .importador-email-load-sentinel.is-visible {
    display: flex;
}

.ia-body .importador-email-load-sentinel.is-loading .covatel-loader {
    opacity: 1;
}

.ia-body .importador-email-load-sentinel .covatel-loader {
    opacity: 0;
    transition: opacity 0.15s ease;
}

.ia-body .importador-email-spinner {
    display: none;
}

.ia-body .email-row {
    border-bottom-color: var(--covatel-border);
}

.ia-body .email-row.is-active,
.ia-body .email-row.active {
    background: #f1f5f9 !important;
}

.ia-body .email-row-actions button,
.ia-body .email-action-btn {
    border-radius: 0 !important;
    border-color: var(--covatel-border-strong) !important;
}

.ia-body .email-import-btn {
    background: var(--covatel-accent) !important;
    border-color: var(--covatel-accent) !important;
}

.ia-body .email-import-btn:hover {
    background: var(--covatel-accent-dark) !important;
    border-color: var(--covatel-accent-dark) !important;
}

@media (max-width: 1024px) {
    .ia-body .importador-wrapper {
        flex-direction: column;
        height: auto;
        min-height: unset;
    }

    .ia-body .importador-left,
    .ia-body .importador-right {
        max-width: 100%;
        min-width: 0;
        width: 100%;
        flex: 1 1 auto;
    }

    .ia-body .importador-panel {
        height: auto;
        min-height: 320px;
    }

    .ia-body .importador-form-panel.gestion-avisos-form-panel.importador-form-page-panel {
        min-height: 480px;
        padding: 0 !important;
    }

    .ia-body .importador-form-scroll {
        max-height: none;
    }
}

/* =============================================================================
   Firmas (partes)
   ============================================================================= */
.firmas-body .firmas-page.ga-page {
    margin: 0;
    padding: 0;
}

.firmas-body .firmas-main.ga-main {
    max-width: var(--covatel-content-max);
    padding-bottom: 2rem;
}

.ga-body .firmas-panel.firmas-page-panel {
    padding-left: var(--ga-panel-pad, 1rem) !important;
    padding-right: var(--ga-panel-pad, 1rem) !important;
    padding-bottom: var(--ga-panel-pad, 1rem) !important;
    max-width: none;
    width: 100%;
    box-sizing: border-box;
}

.firmas-body .firmas-panel.gestion-avisos-form-panel:not(.firmas-page-panel) {
    padding: 1rem 1.25rem !important;
}

.firmas-body .firmas-section.card-section {
    background: var(--covatel-panel-gray);
    border: 1px solid #b0b5bd;
    padding: 0.85rem 1rem !important;
    margin-top: 0.75rem !important;
}

.firmas-body .firmas-section.card-section:first-of-type {
    margin-top: 0.75rem !important;
}

.firmas-body .firmas-zona-firma-recuadro {
    border: 2px dashed var(--covatel-border-strong);
    background: #fff;
    box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.04);
}

.firmas-body .firmas-zona-firma-recuadro:hover {
    border-color: var(--covatel-accent);
    background: #f8fafc;
}

.firmas-body .firmas-search-input {
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.06);
}

.firmas-body .firmas-search-input:focus {
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12), var(--covatel-focus-ring);
}

.firmas-body .thead-firmas {
    background: var(--covatel-accent) !important;
    border-bottom-color: var(--covatel-accent-dark) !important;
}

.firmas-body .thead-firmas th {
    color: #fff !important;
    background: var(--covatel-accent) !important;
}

.firmas-body .firmas-tabla-wrap {
    scrollbar-color: var(--covatel-accent) transparent;
    scrollbar-width: thin;
}

.firmas-body .firmas-tabla-wrap::-webkit-scrollbar {
    height: 8px;
}

.firmas-body .firmas-tabla-wrap::-webkit-scrollbar-thumb {
    background: var(--covatel-accent);
}

.firmas-body .firmas-tabla-row.firmas-row-selected,
.firmas-body .firmas-card.firmas-card-selected {
    background: #f1f5f9 !important;
    outline: 2px solid var(--covatel-accent);
    outline-offset: -2px;
}

.firmas-body .firmas-tabla {
    table-layout: auto;
    width: 100%;
}

.firmas-body .firmas-dd-panel {
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
}

.firmas-body #modal-firma-firmas .firma-modal-panel {
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);
}

.firmas-body .catalogo-btn-primary:disabled,
.firmas-body .catalogo-btn-secondary:disabled,
.firmas-body .catalogo-btn-danger:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

@media (max-width: 639px) {
    .firmas-body {
        padding-bottom: 5rem;
    }

    .firmas-body .firmas-main.ga-main {
        padding-left: 0;
        padding-right: 0;
        max-width: none;
    }

    .firmas-body .firmas-panel.gestion-avisos-form-panel:not(.firmas-page-panel) {
        border-left: none !important;
        border-right: none !important;
    }
}

/* --- Notificaciones toast (global) --- */
.toast-container {
    position: fixed !important;
    top: auto !important;
    left: auto !important;
    right: max(1rem, env(safe-area-inset-right, 0px)) !important;
    bottom: max(1rem, env(safe-area-inset-bottom, 0px)) !important;
    z-index: 10050 !important;
    display: flex !important;
    flex-direction: column-reverse !important;
    align-items: flex-end !important;
    gap: 0.65rem !important;
    width: auto !important;
    max-width: min(22rem, calc(100vw - 2rem)) !important;
    pointer-events: none !important;
}

@media (max-width: 767px) {
    body.pb-24 .toast-container,
    .covatel-app-shell.pb-24 .toast-container {
        bottom: max(5.25rem, calc(env(safe-area-inset-bottom, 0px) + 4.75rem)) !important;
    }
}

.toast-container .toast {
    pointer-events: auto !important;
}

.toast {
    box-sizing: border-box !important;
    width: min(22rem, calc(100vw - 2rem)) !important;
    min-width: 0 !important;
    max-width: min(22rem, calc(100vw - 2rem)) !important;
    border: 1px solid #000000 !important;
    border-radius: 0 !important;
    background: #ffffff !important;
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.18) !important;
    overflow: hidden !important;
    padding: 0 !important;
    display: block !important;
    animation: covatel-toast-in 0.35s cubic-bezier(0.22, 1, 0.36, 1) !important;
}

.toast-header {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 0.5rem !important;
    padding: 0.5rem 0.6rem !important;
    background: var(--covatel-accent, #006680) !important;
    color: #ffffff !important;
}

.toast-title {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    font-size: 0.8125rem !important;
    font-weight: 700 !important;
    line-height: 1.3 !important;
    color: #ffffff !important;
    margin: 0 !important;
}

.toast-close {
    flex: 0 0 auto !important;
    width: 1.35rem !important;
    height: 1.35rem !important;
    padding: 0 !important;
    margin: 0 !important;
    border: none !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: #ffffff !important;
    cursor: pointer !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    opacity: 0.92 !important;
}

.toast-close:hover {
    opacity: 1 !important;
}

.toast-body {
    padding: 0.6rem 0.65rem !important;
    background: #ffffff !important;
}

.toast-message {
    font-size: 0.75rem !important;
    line-height: 1.45 !important;
    font-weight: 400 !important;
    color: #000000 !important;
    margin: 0 !important;
    opacity: 1 !important;
}

.toast .toast-icon,
.toast .toast-content {
    display: none !important;
}

.toast.success .toast-header,
.toast.error .toast-header,
.toast.warning .toast-header,
.toast.info .toast-header,
[data-theme="dark"] .toast .toast-header {
    background: var(--covatel-accent, #006680) !important;
}

[data-theme="dark"] .toast {
    background: #ffffff !important;
    border-color: #000000 !important;
}

[data-theme="dark"] .toast-body,
[data-theme="dark"] .toast-message {
    background: #ffffff !important;
    color: #000000 !important;
}

[data-theme="dark"] .toast-title,
[data-theme="dark"] .toast-close {
    color: #ffffff !important;
}

@keyframes covatel-toast-in {
    from {
        opacity: 0;
        transform: translateY(1.25rem);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes covatel-toast-out {
    from {
        opacity: 1;
        transform: translateY(0);
    }
    to {
        opacity: 0;
        transform: translateY(1.25rem);
    }
}

.toast.removing {
    animation: covatel-toast-out 0.3s ease-in forwards !important;
}

/* ========= Inicio — tiles (pantalla principal) ========= */
.inicio-page {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: calc(100dvh - var(--covatel-header-h, 3rem));
    padding: 2rem 1rem;
}

.inicio-panel {
    width: 100%;
    max-width: 720px;
}

.inicio-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
}

.inicio-tile {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    padding: 2.5rem 1rem;
    background: #ffffff;
    border: 1px solid #cbd5e1;
    text-decoration: none;
    color: var(--covatel-accent);
    transition: border-color 0.15s, box-shadow 0.15s, transform 0.1s;
    cursor: pointer;
}

.inicio-tile:hover {
    border-color: var(--covatel-accent);
    box-shadow: 0 4px 12px rgba(0, 102, 128, 0.1);
    transform: translateY(-2px);
}

.inicio-tile-icon {
    display: flex;
    align-items: center;
    justify-content: center;
}

.inicio-tile-icon svg {
    width: 2.5rem;
    height: 2.5rem;
    stroke-width: 1.5;
    color: var(--covatel-accent);
}

.inicio-tile-label {
    font-size: 0.8125rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--covatel-text, #0f172a);
    text-align: center;
}

.inicio-tile--desktop-only {
    display: none;
}

@media (min-width: 768px) {
    .inicio-panel {
        max-width: 860px;
    }

    .inicio-grid {
        gap: 1.25rem;
    }

    .inicio-tile {
        padding: 3.5rem 1.5rem;
        gap: 1rem;
    }

    .inicio-tile-icon svg {
        width: 3rem;
        height: 3rem;
    }

    .inicio-tile-label {
        font-size: 0.875rem;
    }

    .inicio-tile--desktop-only {
        display: flex;
    }
}

@media (max-width: 767px) {
    .inicio-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 0.75rem;
    }

    .inicio-tile {
        padding: 1.75rem 0.75rem;
    }

    .inicio-tile-icon svg {
        width: 2rem;
        height: 2rem;
    }

    .inicio-tile-label {
        font-size: 0.6875rem;
    }
}
