/* =============================================================
 * Integra Core — Frontend stylesheet
 * Estilos compartidos para todos los shortcodes públicos:
 *   .ic-informes-diarios, .ic-informes-semanales,
 *   .ic-informes-mensuales, .ic-informes-tecnicos,
 *   .ic-documentos, .ic-users-admin
 *
 * Diseño basado en el prototipo "Nova Buxos Intranet.html".
 * ============================================================= */

/* -- 1. Tokens (alcance acotado a los wrappers del plugin) -- */
.ic-informes-diarios,
.ic-informes-semanales,
.ic-informes-mensuales,
.ic-informes-tecnicos,
.ic-documentos,
.ic-users-admin {
    --ic-sb-bg: oklch(0.20 0.08 148);
    --ic-g500: oklch(0.50 0.16 148);
    --ic-g600: oklch(0.42 0.14 148);
    --ic-g100: oklch(0.94 0.04 148);
    --ic-g50:  oklch(0.975 0.02 148);
    --ic-bg:   oklch(0.972 0.008 85);
    --ic-sur:  #ffffff;
    --ic-bdr:    oklch(0.88 0.008 240);
    --ic-bdr-lt: oklch(0.93 0.005 240);
    --ic-tx:   oklch(0.17 0.015 240);
    --ic-tx-m: oklch(0.50 0.01 240);
    --ic-tx-l: oklch(0.68 0.008 240);
    --ic-red:    oklch(0.50 0.20 22);
    --ic-red-h:  oklch(0.42 0.20 22);
    --ic-red-bg: oklch(0.97 0.03 22);
    --ic-warn:    oklch(0.65 0.14 65);
    --ic-warn-bg: oklch(0.97 0.04 65);
    --ic-sh-sm: 0 1px 3px rgba(0,0,0,.07), 0 1px 2px rgba(0,0,0,.04);
    --ic-sh-md: 0 4px 14px rgba(0,0,0,.08), 0 2px 6px rgba(0,0,0,.04);
    --ic-sh-lg: 0 8px 32px rgba(0,0,0,.12), 0 4px 12px rgba(0,0,0,.06);
    --ic-r:    10px;
    --ic-r-sm: 6px;
    --ic-r-lg: 14px;

    color: var(--ic-tx);
    font-size: 14px;
    line-height: 1.5;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}

.ic-informes-diarios *,
.ic-informes-semanales *,
.ic-informes-mensuales *,
.ic-informes-tecnicos *,
.ic-documentos *,
.ic-users-admin * { box-sizing: border-box; }

/* =============================================================
 * 2. Tipografía y cabeceras de página
 * ============================================================= */
.ic-informes-diarios h1,
.ic-informes-semanales h1,
.ic-informes-mensuales h1,
.ic-informes-tecnicos h1,
.ic-documentos h1,
.ic-users-admin h1 {
    font-family: 'Outfit', 'Inter', sans-serif;
    font-size: 26px;
    font-weight: 700;
    letter-spacing: -0.02em;
    color: var(--ic-tx);
    margin: 0 0 22px;
    line-height: 1.25;
}

.ic-informes-diarios h2,
.ic-informes-semanales h2,
.ic-informes-mensuales h2,
.ic-informes-tecnicos h2,
.ic-documentos h2,
.ic-users-admin h2 {
    font-family: 'Outfit', 'Inter', sans-serif;
    font-weight: 700;
    font-size: 16px;
}

/* =============================================================
 * 3. Botones
 * ============================================================= */
.ic-informes-diarios .ic-btn,
.ic-informes-semanales .ic-btn,
.ic-informes-mensuales .ic-btn,
.ic-informes-tecnicos .ic-btn,
.ic-documentos .ic-btn,
.ic-users-admin .ic-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 8px 16px;
    font-size: 13px;
    font-weight: 500;
    font-family: inherit;
    line-height: 1.2;
    border: 1px solid transparent;
    border-radius: var(--ic-r-sm);
    cursor: pointer;
    text-decoration: none;
    transition: background-color .15s, border-color .15s, color .15s, box-shadow .15s, transform .05s;
    white-space: nowrap;
}
.ic-informes-diarios .ic-btn:active,
.ic-informes-semanales .ic-btn:active,
.ic-informes-mensuales .ic-btn:active,
.ic-informes-tecnicos .ic-btn:active,
.ic-documentos .ic-btn:active,
.ic-users-admin .ic-btn:active { transform: translateY(1px); }

.ic-informes-diarios .ic-btn:disabled,
.ic-informes-semanales .ic-btn:disabled,
.ic-informes-mensuales .ic-btn:disabled,
.ic-informes-tecnicos .ic-btn:disabled,
.ic-documentos .ic-btn:disabled,
.ic-users-admin .ic-btn:disabled { opacity: .55; cursor: not-allowed; }

/* Primary (verde) */
.ic-informes-diarios .ic-btn-primary,
.ic-informes-semanales .ic-btn-primary,
.ic-informes-mensuales .ic-btn-primary,
.ic-informes-tecnicos .ic-btn-primary,
.ic-documentos .ic-btn-primary,
.ic-users-admin .ic-btn-primary {
    background: var(--ic-g500);
    color: #fff;
    border-color: transparent;
}
.ic-informes-diarios .ic-btn-primary:hover,
.ic-informes-semanales .ic-btn-primary:hover,
.ic-informes-mensuales .ic-btn-primary:hover,
.ic-informes-tecnicos .ic-btn-primary:hover,
.ic-documentos .ic-btn-primary:hover,
.ic-users-admin .ic-btn-primary:hover { background: var(--ic-g600); }

/* Secondary (blanco con borde) */
.ic-informes-diarios .ic-btn-secondary,
.ic-informes-semanales .ic-btn-secondary,
.ic-informes-mensuales .ic-btn-secondary,
.ic-informes-tecnicos .ic-btn-secondary,
.ic-documentos .ic-btn-secondary,
.ic-users-admin .ic-btn-secondary {
    background: var(--ic-sur);
    color: var(--ic-tx);
    border-color: var(--ic-bdr);
}
.ic-informes-diarios .ic-btn-secondary:hover,
.ic-informes-semanales .ic-btn-secondary:hover,
.ic-informes-mensuales .ic-btn-secondary:hover,
.ic-informes-tecnicos .ic-btn-secondary:hover,
.ic-documentos .ic-btn-secondary:hover,
.ic-users-admin .ic-btn-secondary:hover { background: var(--ic-bg); border-color: var(--ic-bdr); }

/* Danger (rojo) */
.ic-informes-diarios .ic-btn-danger,
.ic-informes-semanales .ic-btn-danger,
.ic-informes-mensuales .ic-btn-danger,
.ic-informes-tecnicos .ic-btn-danger,
.ic-documentos .ic-btn-danger,
.ic-users-admin .ic-btn-danger {
    background: var(--ic-red);
    color: #fff;
}
.ic-informes-diarios .ic-btn-danger:hover,
.ic-informes-semanales .ic-btn-danger:hover,
.ic-informes-mensuales .ic-btn-danger:hover,
.ic-informes-tecnicos .ic-btn-danger:hover,
.ic-documentos .ic-btn-danger:hover,
.ic-users-admin .ic-btn-danger:hover { background: var(--ic-red-h); }

/* Outline (verde sobre transparente) */
.ic-informes-diarios .ic-btn-outline,
.ic-informes-semanales .ic-btn-outline,
.ic-informes-mensuales .ic-btn-outline,
.ic-informes-tecnicos .ic-btn-outline,
.ic-documentos .ic-btn-outline,
.ic-users-admin .ic-btn-outline {
    background: transparent;
    color: var(--ic-g500);
    border-color: var(--ic-g500);
}
.ic-informes-diarios .ic-btn-outline:hover,
.ic-informes-semanales .ic-btn-outline:hover,
.ic-informes-mensuales .ic-btn-outline:hover,
.ic-informes-tecnicos .ic-btn-outline:hover,
.ic-documentos .ic-btn-outline:hover,
.ic-users-admin .ic-btn-outline:hover { background: var(--ic-g50); }

/* Link / Ghost */
.ic-informes-diarios .ic-btn-link,
.ic-informes-semanales .ic-btn-link,
.ic-informes-mensuales .ic-btn-link,
.ic-informes-tecnicos .ic-btn-link,
.ic-documentos .ic-btn-link,
.ic-users-admin .ic-btn-link {
    background: transparent;
    color: var(--ic-g500);
    border-color: transparent;
    padding: 8px 8px;
    text-decoration: none;
    font-weight: 500;
}
.ic-informes-diarios .ic-btn-link:hover,
.ic-informes-semanales .ic-btn-link:hover,
.ic-informes-mensuales .ic-btn-link:hover,
.ic-informes-tecnicos .ic-btn-link:hover,
.ic-documentos .ic-btn-link:hover,
.ic-users-admin .ic-btn-link:hover { color: var(--ic-g600); text-decoration: underline; }

/* Tamaño pequeño para botones de tabla / filtros */
.ic-informes-diarios .ic-btn-sm,
.ic-informes-semanales .ic-btn-sm,
.ic-informes-mensuales .ic-btn-sm,
.ic-informes-tecnicos .ic-btn-sm,
.ic-documentos .ic-btn-sm,
.ic-users-admin .ic-btn-sm { padding: 5px 11px; font-size: 12px; }

/* =============================================================
 * 4. Toolbar superior (acción "Nuevo …")
 * ============================================================= */
.ic-informes-diarios .ic-toolbar,
.ic-informes-semanales .ic-toolbar,
.ic-informes-mensuales .ic-toolbar,
.ic-informes-tecnicos .ic-toolbar,
.ic-documentos .ic-toolbar,
.ic-users-admin .ic-toolbar {
    display: flex;
    gap: 8px;
    justify-content: flex-end;
    margin: 0 0 14px;
    flex-wrap: wrap;
}

/* =============================================================
 * 5. Selector de cliente (autocomplete)
 * ============================================================= */
.ic-informes-diarios .ic-cliente-selector,
.ic-informes-semanales .ic-cliente-selector,
.ic-informes-mensuales .ic-cliente-selector,
.ic-documentos .ic-cliente-selector { margin-bottom: 14px; }

.ic-informes-diarios .ic-cliente-search-wrap,
.ic-informes-semanales .ic-cliente-search-wrap,
.ic-informes-mensuales .ic-cliente-search-wrap,
.ic-documentos .ic-cliente-search-wrap {
    position: relative;
    display: inline-block;
    min-width: 320px;
    max-width: 100%;
}
.ic-informes-diarios .ic-cliente-search-wrap label,
.ic-informes-semanales .ic-cliente-search-wrap label,
.ic-informes-mensuales .ic-cliente-search-wrap label,
.ic-documentos .ic-cliente-search-wrap label {
    display: block;
    font-size: 11.5px;
    font-weight: 600;
    color: var(--ic-tx-m);
    letter-spacing: 0.03em;
    text-transform: uppercase;
    margin-bottom: 6px;
}
.ic-informes-diarios .ic-cliente-input-wrap,
.ic-informes-semanales .ic-cliente-input-wrap,
.ic-informes-mensuales .ic-cliente-input-wrap,
.ic-documentos .ic-cliente-input-wrap {
    position: relative;
    display: flex;
    align-items: center;
}
.ic-informes-diarios .ic-cliente-search,
.ic-informes-semanales .ic-cliente-search,
.ic-informes-mensuales .ic-cliente-search,
.ic-documentos .ic-cliente-search {
    width: 100%;
    padding: 8px 32px 8px 12px;
    border: 1px solid var(--ic-bdr);
    border-radius: var(--ic-r-sm);
    background: var(--ic-sur);
    color: var(--ic-tx);
    font-size: 13px;
    font-family: inherit;
    outline: none;
    transition: border-color .15s, box-shadow .15s;
}
.ic-informes-diarios .ic-cliente-search:focus,
.ic-informes-semanales .ic-cliente-search:focus,
.ic-informes-mensuales .ic-cliente-search:focus,
.ic-documentos .ic-cliente-search:focus {
    border-color: var(--ic-g500);
    box-shadow: 0 0 0 3px color-mix(in oklch, var(--ic-g500) 18%, transparent);
}
.ic-informes-diarios .ic-cliente-clear,
.ic-informes-semanales .ic-cliente-clear,
.ic-informes-mensuales .ic-cliente-clear,
.ic-documentos .ic-cliente-clear {
    position: absolute;
    right: 6px;
    top: 50%;
    transform: translateY(-50%);
    background: transparent;
    border: 0;
    font-size: 18px;
    line-height: 1;
    color: var(--ic-tx-m);
    cursor: pointer;
    width: 24px;
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
}
.ic-informes-diarios .ic-cliente-clear:hover,
.ic-informes-semanales .ic-cliente-clear:hover,
.ic-informes-mensuales .ic-cliente-clear:hover,
.ic-documentos .ic-cliente-clear:hover { background: var(--ic-bg); color: var(--ic-tx); }

.ic-informes-diarios .ic-cliente-list,
.ic-informes-semanales .ic-cliente-list,
.ic-informes-mensuales .ic-cliente-list,
.ic-documentos .ic-cliente-list {
    position: absolute;
    left: 0;
    right: 0;
    top: calc(100% + 4px);
    margin: 0;
    padding: 4px 0;
    list-style: none;
    background: var(--ic-sur);
    border: 1px solid var(--ic-bdr);
    border-radius: var(--ic-r-sm);
    max-height: 280px;
    overflow-y: auto;
    z-index: 200;
    box-shadow: var(--ic-sh-md);
    display: none;
}
.ic-informes-diarios .ic-cliente-list li,
.ic-informes-semanales .ic-cliente-list li,
.ic-informes-mensuales .ic-cliente-list li,
.ic-documentos .ic-cliente-list li {
    padding: 9px 14px;
    cursor: pointer;
    font-size: 13px;
    border-bottom: 1px solid var(--ic-bdr-lt);
    color: var(--ic-tx);
}
.ic-informes-diarios .ic-cliente-list li:last-child,
.ic-informes-semanales .ic-cliente-list li:last-child,
.ic-informes-mensuales .ic-cliente-list li:last-child,
.ic-documentos .ic-cliente-list li:last-child { border-bottom: 0; }
.ic-informes-diarios .ic-cliente-list li:hover,
.ic-informes-semanales .ic-cliente-list li:hover,
.ic-informes-mensuales .ic-cliente-list li:hover,
.ic-documentos .ic-cliente-list li:hover { background: var(--ic-bg); }
.ic-informes-diarios .ic-cliente-list li.selected,
.ic-informes-semanales .ic-cliente-list li.selected,
.ic-informes-mensuales .ic-cliente-list li.selected,
.ic-documentos .ic-cliente-list li.selected {
    background: var(--ic-g50);
    color: var(--ic-g500);
    font-weight: 600;
}
.ic-informes-diarios .ic-cliente-no-results,
.ic-informes-semanales .ic-cliente-no-results,
.ic-informes-mensuales .ic-cliente-no-results,
.ic-documentos .ic-cliente-no-results {
    padding: 10px 14px;
    color: var(--ic-tx-l);
    font-style: italic;
    cursor: default;
}

/* Selector específico de informes técnicos (clases distintas) */
.ic-informes-tecnicos .ic-filtros { margin: 0 0 14px; }
.ic-informes-tecnicos .ic-filtros-row {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: flex-end;
    background: var(--ic-sur);
    border: 1px solid var(--ic-bdr);
    border-radius: var(--ic-r-sm);
    padding: 12px 14px;
    box-shadow: var(--ic-sh-sm);
}
.ic-informes-tecnicos .ic-search-wrap {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 5px;
    min-width: 240px;
}
.ic-informes-tecnicos .ic-search-wrap label {
    font-size: 11.5px;
    font-weight: 600;
    color: var(--ic-tx-m);
    letter-spacing: 0.03em;
    text-transform: uppercase;
}
.ic-informes-tecnicos .ic-search-input-wrap {
    position: relative;
    display: flex;
    align-items: center;
}
.ic-informes-tecnicos .ic-search-input-wrap input[type="text"] {
    width: 100%;
    padding: 8px 32px 8px 12px;
    border: 1px solid var(--ic-bdr);
    border-radius: var(--ic-r-sm);
    background: var(--ic-sur);
    color: var(--ic-tx);
    font-size: 13px;
    outline: none;
    transition: border-color .15s, box-shadow .15s;
}
.ic-informes-tecnicos .ic-search-input-wrap input[type="text"]:focus {
    border-color: var(--ic-g500);
    box-shadow: 0 0 0 3px color-mix(in oklch, var(--ic-g500) 18%, transparent);
}
.ic-informes-tecnicos .ic-search-clear {
    position: absolute;
    right: 6px;
    top: 50%;
    transform: translateY(-50%);
    background: transparent;
    border: 0;
    font-size: 18px;
    line-height: 1;
    color: var(--ic-tx-m);
    cursor: pointer;
    width: 24px;
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
}
.ic-informes-tecnicos .ic-search-clear:hover { background: var(--ic-bg); color: var(--ic-tx); }
.ic-informes-tecnicos .ic-search-list {
    position: absolute;
    left: 0;
    right: 0;
    top: calc(100% + 4px);
    margin: 0;
    padding: 4px 0;
    list-style: none;
    background: var(--ic-sur);
    border: 1px solid var(--ic-bdr);
    border-radius: var(--ic-r-sm);
    max-height: 280px;
    overflow-y: auto;
    z-index: 200;
    box-shadow: var(--ic-sh-md);
    display: none;
}
.ic-informes-tecnicos .ic-search-list li {
    padding: 9px 14px;
    cursor: pointer;
    font-size: 13px;
    border-bottom: 1px solid var(--ic-bdr-lt);
}
.ic-informes-tecnicos .ic-search-list li:last-child { border-bottom: 0; }
.ic-informes-tecnicos .ic-search-list li:hover { background: var(--ic-bg); }

/* Modal search dropdowns (técnico/cliente inside modal form) */
.ic-informes-tecnicos .ic-modal-search { position: relative; }
.ic-informes-tecnicos .ic-modal-search input[type="text"] {
    width: 100%;
    padding: 8px 12px;
    border: 1px solid var(--ic-bdr);
    border-radius: var(--ic-r-sm);
    font-size: 13.5px;
    font-family: inherit;
    background: var(--ic-sur);
    color: var(--ic-tx);
    outline: none;
    box-sizing: border-box;
    transition: border-color .15s, box-shadow .15s;
}
.ic-informes-tecnicos .ic-modal-search input[type="text"]:focus {
    border-color: var(--ic-g500);
    box-shadow: 0 0 0 3px color-mix(in oklch, var(--ic-g500) 18%, transparent);
}
.ic-informes-tecnicos .ic-modal-search-list {
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    margin: 3px 0 0;
    padding: 4px 0;
    list-style: none;
    background: var(--ic-sur);
    border: 1px solid var(--ic-bdr);
    border-radius: var(--ic-r-sm);
    max-height: 200px;
    overflow-y: auto;
    z-index: 10000;
    box-shadow: var(--ic-sh-md);
    display: none;
}
.ic-informes-tecnicos .ic-modal-search-list li {
    padding: 8px 14px;
    cursor: pointer;
    font-size: 13px;
    border-bottom: 1px solid var(--ic-bdr-lt);
}
.ic-informes-tecnicos .ic-modal-search-list li:last-child { border-bottom: 0; }
.ic-informes-tecnicos .ic-modal-search-list li:hover { background: var(--ic-bg); }
.ic-informes-tecnicos .ic-modal-search-list .ic-search-no-results {
    color: var(--ic-tx-m);
    font-style: italic;
    cursor: default;
}

/* Filter fields for select/date inside tecnicos & otros */
.ic-informes-tecnicos .ic-filter-field,
.ic-informes-diarios .ic-filtro-field,
.ic-informes-semanales .ic-filtro-field,
.ic-informes-mensuales .ic-filtro-field {
    display: flex;
    flex-direction: column;
    gap: 5px;
}
.ic-informes-tecnicos .ic-filter-field label,
.ic-informes-diarios .ic-filtro-field label,
.ic-informes-semanales .ic-filtro-field label,
.ic-informes-mensuales .ic-filtro-field label {
    font-size: 11.5px;
    font-weight: 600;
    color: var(--ic-tx-m);
    letter-spacing: 0.03em;
    text-transform: uppercase;
}
.ic-informes-tecnicos .ic-filter-field input,
.ic-informes-tecnicos .ic-filter-field select,
.ic-informes-diarios .ic-filtro-field input,
.ic-informes-semanales .ic-filtro-field input,
.ic-informes-mensuales .ic-filtro-field input {
    padding: 8px 12px;
    border: 1px solid var(--ic-bdr);
    border-radius: var(--ic-r-sm);
    background: var(--ic-sur);
    color: var(--ic-tx);
    font-size: 13px;
    font-family: inherit;
    outline: none;
    transition: border-color .15s, box-shadow .15s;
}
.ic-informes-tecnicos .ic-filter-field input:focus,
.ic-informes-tecnicos .ic-filter-field select:focus,
.ic-informes-diarios .ic-filtro-field input:focus,
.ic-informes-semanales .ic-filtro-field input:focus,
.ic-informes-mensuales .ic-filtro-field input:focus {
    border-color: var(--ic-g500);
    box-shadow: 0 0 0 3px color-mix(in oklch, var(--ic-g500) 18%, transparent);
}

/* Reset específico para select en filtros de informes técnicos */
.ic-informes-tecnicos .ic-filter-field select {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 10px center;
    padding-right: 30px;
}

/* Reset específico para select del header de mediciones en informes técnicos */
.ic-informes-tecnicos .ic-medicion-item-header select {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 10px center;
    padding: 8px 30px 8px 12px;
    border: 1px solid var(--ic-bdr);
    border-radius: var(--ic-r-sm);
    background-color: var(--ic-sur);
    color: var(--ic-tx);
    font-size: 13px;
    font-family: inherit;
}

.ic-informes-tecnicos .ic-filter-actions,
.ic-informes-diarios .ic-filtro-actions,
.ic-informes-semanales .ic-filtro-actions,
.ic-informes-mensuales .ic-filtro-actions {
    display: flex;
    gap: 8px;
    align-items: center;
}

/* Caja del filtro de fechas (estilo prototipo DateBar) */
.ic-informes-diarios .ic-filtro-fechas,
.ic-informes-semanales .ic-filtro-fechas,
.ic-informes-mensuales .ic-filtro-fechas {
    background: var(--ic-sur);
    border: 1px solid var(--ic-bdr);
    border-radius: var(--ic-r-sm);
    padding: 12px 16px;
    margin: 0 0 14px;
    box-shadow: var(--ic-sh-sm);
}
.ic-informes-diarios .ic-filtro-fechas-inner,
.ic-informes-semanales .ic-filtro-fechas-inner,
.ic-informes-mensuales .ic-filtro-fechas-inner {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    align-items: flex-end;
}

/* =============================================================
 * 5.b Título de la vista (h1 dentro del shortcode)
 * ============================================================= */
.ic-informes-diarios .ic-page-title,
.ic-informes-semanales .ic-page-title,
.ic-informes-mensuales .ic-page-title,
.ic-informes-tecnicos .ic-page-title,
.ic-documentos .ic-page-title,
.ic-users-admin .ic-page-title {
    font-family: var(--ic-font-display, 'Outfit'), sans-serif;
    font-size: 26px;
    font-weight: 700;
    letter-spacing: -0.02em;
    color: var(--ic-tx);
    margin: 0 0 22px;
    line-height: 1.2;
}

/* =============================================================
 * 6. Tablas
 * ============================================================= */
 @media (max-width: 768px) {
    #ic-table-users_wrapper{
    width: 100%; 
    overflow-x: auto; 
    -webkit-overflow-scrolling: touch; 
    padding-bottom: 20px;
}
#ic-table-users {
    width: 100%; /* Hace que la tabla ocupe el 100% del ancho disponible */
    min-width: 600px; /* Ajusta este valor según el tamaño mínimo de la tabla */
}
}
.ic-informes-diarios .ic-table,
.ic-informes-semanales .ic-table,
.ic-informes-mensuales .ic-table,
.ic-informes-tecnicos .ic-table,
.ic-documentos .ic-table,
.ic-users-admin .ic-table {
    width: 100%;
    border-collapse: collapse;
    background: var(--ic-sur);
    border: 1px solid var(--ic-bdr);
    border-radius: var(--ic-r);
    overflow: hidden;
    box-shadow: var(--ic-sh-sm);
}
.ic-informes-diarios .ic-table thead th,
.ic-informes-semanales .ic-table thead th,
.ic-informes-mensuales .ic-table thead th,
.ic-informes-tecnicos .ic-table thead th,
.ic-documentos .ic-table thead th,
.ic-users-admin .ic-table thead th {
    background: oklch(0.955 0.018 148);
    border-bottom: 1px solid var(--ic-bdr);
    padding: 11px 16px;
    text-align: left;
    font-size: 11px;
    font-weight: 700;
    color: var(--ic-tx-m);
    letter-spacing: 0.06em;
    text-transform: uppercase;
}
.ic-informes-diarios .ic-table tbody td,
.ic-informes-semanales .ic-table tbody td,
.ic-informes-mensuales .ic-table tbody td,
.ic-informes-tecnicos .ic-table tbody td,
.ic-documentos .ic-table tbody td,
.ic-users-admin .ic-table tbody td {
    padding: 13px 16px;
    font-size: 13px;
    color: var(--ic-tx);
    border-top: 0;
    border-left: 0;
    border-right: 0;
    border-bottom: 1px solid var(--ic-bdr-lt);
    vertical-align: middle;
}
/* Defensa frente a estilos de DataTables/tema que añaden bordes laterales */
.ic-informes-diarios .ic-table th,
.ic-informes-semanales .ic-table th,
.ic-informes-mensuales .ic-table th,
.ic-informes-tecnicos .ic-table th,
.ic-documentos .ic-table th,
.ic-users-admin .ic-table th { border-left: 0; border-right: 0; border-top: 0; }
.ic-informes-diarios table.dataTable tbody td,
.ic-informes-semanales table.dataTable tbody td,
.ic-informes-mensuales table.dataTable tbody td,
.ic-informes-tecnicos table.dataTable tbody td,
.ic-documentos table.dataTable tbody td,
.ic-users-admin table.dataTable tbody td { border-top: 0 !important; border-left: 0 !important; border-right: 0 !important; }
.ic-informes-diarios .ic-table tbody tr:last-child td,
.ic-informes-semanales .ic-table tbody tr:last-child td,
.ic-informes-mensuales .ic-table tbody tr:last-child td,
.ic-informes-tecnicos .ic-table tbody tr:last-child td,
.ic-documentos .ic-table tbody tr:last-child td,
.ic-users-admin .ic-table tbody tr:last-child td { border-bottom: 0; }

/* Sin zebra: filas blancas, sólo separador horizontal */
.ic-informes-diarios .ic-table tbody tr,
.ic-informes-semanales .ic-table tbody tr,
.ic-informes-mensuales .ic-table tbody tr,
.ic-informes-tecnicos .ic-table tbody tr,
.ic-documentos .ic-table tbody tr,
.ic-users-admin .ic-table tbody tr { background: var(--ic-sur); }
.ic-informes-diarios table.dataTable.stripe tbody tr.odd,
.ic-informes-diarios table.dataTable.stripe tbody tr.even,
.ic-informes-diarios table.dataTable.display tbody tr.odd,
.ic-informes-diarios table.dataTable.display tbody tr.even,
.ic-informes-semanales table.dataTable.stripe tbody tr.odd,
.ic-informes-semanales table.dataTable.stripe tbody tr.even,
.ic-informes-semanales table.dataTable.display tbody tr.odd,
.ic-informes-semanales table.dataTable.display tbody tr.even,
.ic-informes-mensuales table.dataTable.stripe tbody tr.odd,
.ic-informes-mensuales table.dataTable.stripe tbody tr.even,
.ic-informes-mensuales table.dataTable.display tbody tr.odd,
.ic-informes-mensuales table.dataTable.display tbody tr.even,
.ic-informes-tecnicos table.dataTable.stripe tbody tr.odd,
.ic-informes-tecnicos table.dataTable.stripe tbody tr.even,
.ic-informes-tecnicos table.dataTable.display tbody tr.odd,
.ic-informes-tecnicos table.dataTable.display tbody tr.even,
.ic-documentos table.dataTable.stripe tbody tr.odd,
.ic-documentos table.dataTable.stripe tbody tr.even,
.ic-documentos table.dataTable.display tbody tr.odd,
.ic-documentos table.dataTable.display tbody tr.even,
.ic-users-admin table.dataTable.stripe tbody tr.odd,
.ic-users-admin table.dataTable.stripe tbody tr.even,
.ic-users-admin table.dataTable.display tbody tr.odd,
.ic-users-admin table.dataTable.display tbody tr.even { background: var(--ic-sur) !important; }

.ic-informes-diarios .ic-table tbody tr:hover,
.ic-informes-semanales .ic-table tbody tr:hover,
.ic-informes-mensuales .ic-table tbody tr:hover,
.ic-informes-tecnicos .ic-table tbody tr:hover,
.ic-documentos .ic-table tbody tr:hover,
.ic-users-admin .ic-table tbody tr:hover,
.ic-informes-diarios table.dataTable tbody tr.odd:hover,
.ic-informes-diarios table.dataTable tbody tr.even:hover,
.ic-informes-semanales table.dataTable tbody tr.odd:hover,
.ic-informes-semanales table.dataTable tbody tr.even:hover,
.ic-informes-mensuales table.dataTable tbody tr.odd:hover,
.ic-informes-mensuales table.dataTable tbody tr.even:hover,
.ic-informes-tecnicos table.dataTable tbody tr.odd:hover,
.ic-informes-tecnicos table.dataTable tbody tr.even:hover,
.ic-documentos table.dataTable tbody tr.odd:hover,
.ic-documentos table.dataTable tbody tr.even:hover,
.ic-users-admin table.dataTable tbody tr.odd:hover,
.ic-users-admin table.dataTable tbody tr.even:hover { background: oklch(0.984 0.01 148) !important; }

.ic-informes-diarios .ic-table .hidden-col,
.ic-informes-semanales .ic-table .hidden-col,
.ic-informes-mensuales .ic-table .hidden-col,
.ic-informes-tecnicos .ic-table .hidden-col,
.ic-documentos .ic-table .hidden-col,
.ic-users-admin .ic-table .hidden-col { display: none; }

/* Botones de acción dentro de la tabla */
.ic-informes-diarios .ic-table td .ic-btn,
.ic-informes-semanales .ic-table td .ic-btn,
.ic-informes-mensuales .ic-table td .ic-btn,
.ic-informes-tecnicos .ic-table td .ic-btn,
.ic-documentos .ic-table td .ic-btn,
.ic-users-admin .ic-table td .ic-btn { padding: 5px 11px; font-size: 12px; margin-right: 4px; }

/* Celda de acciones (varios botones agrupados) */
.ic-informes-diarios .ic-actions-cell,
.ic-informes-semanales .ic-actions-cell,
.ic-informes-mensuales .ic-actions-cell,
.ic-informes-tecnicos .ic-actions-cell,
.ic-documentos .ic-actions-cell,
.ic-users-admin .ic-actions-cell {
    white-space: nowrap;
    text-align: right;
}
.ic-informes-diarios .ic-actions-cell .ic-btn,
.ic-informes-semanales .ic-actions-cell .ic-btn,
.ic-informes-mensuales .ic-actions-cell .ic-btn,
.ic-informes-tecnicos .ic-actions-cell .ic-btn,
.ic-documentos .ic-actions-cell .ic-btn,
.ic-users-admin .ic-actions-cell .ic-btn { margin: 0 0 0 6px; }
.ic-informes-diarios .ic-actions-cell .ic-btn:first-child,
.ic-informes-semanales .ic-actions-cell .ic-btn:first-child,
.ic-informes-mensuales .ic-actions-cell .ic-btn:first-child,
.ic-informes-tecnicos .ic-actions-cell .ic-btn:first-child,
.ic-documentos .ic-actions-cell .ic-btn:first-child,
.ic-users-admin .ic-actions-cell .ic-btn:first-child { margin-left: 0; }

/* Botón sólo icono (cuadrado) */
.ic-informes-diarios .ic-btn-icon,
.ic-informes-semanales .ic-btn-icon,
.ic-informes-mensuales .ic-btn-icon,
.ic-informes-tecnicos .ic-btn-icon,
.ic-documentos .ic-btn-icon,
.ic-users-admin .ic-btn-icon {
    padding: 0;
    width: 30px;
    height: 30px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.ic-informes-diarios .ic-btn-icon svg,
.ic-informes-semanales .ic-btn-icon svg,
.ic-informes-mensuales .ic-btn-icon svg,
.ic-informes-tecnicos .ic-btn-icon svg,
.ic-documentos .ic-btn-icon svg,
.ic-users-admin .ic-btn-icon svg { width: 14px; height: 14px; }

/* Iconos vía currentColor en SVG inline (referenciados en el markup) */
.ic-informes-diarios .ic-btn svg,
.ic-informes-semanales .ic-btn svg,
.ic-informes-mensuales .ic-btn svg,
.ic-informes-tecnicos .ic-btn svg,
.ic-documentos .ic-btn svg,
.ic-users-admin .ic-btn svg { width: 13px; height: 13px; flex-shrink: 0; }

/* Variante "ghost" igual al prototipo: transparente con borde sutil */
.ic-informes-diarios .ic-btn-ghost,
.ic-informes-semanales .ic-btn-ghost,
.ic-informes-mensuales .ic-btn-ghost,
.ic-informes-tecnicos .ic-btn-ghost,
.ic-documentos .ic-btn-ghost,
.ic-users-admin .ic-btn-ghost {
    background: transparent;
    color: var(--ic-tx-m);
    border: 1px solid var(--ic-bdr);
}
.ic-informes-diarios .ic-btn-ghost:hover,
.ic-informes-semanales .ic-btn-ghost:hover,
.ic-informes-mensuales .ic-btn-ghost:hover,
.ic-informes-tecnicos .ic-btn-ghost:hover,
.ic-documentos .ic-btn-ghost:hover,
.ic-users-admin .ic-btn-ghost:hover { background: var(--ic-bg); color: var(--ic-tx); }

/* Estado pill (badge) */
.ic-informes-diarios .ic-status,
.ic-informes-semanales .ic-status,
.ic-informes-mensuales .ic-status,
.ic-informes-tecnicos .ic-status,
.ic-documentos .ic-status,
.ic-users-admin .ic-status {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 3px 9px;
    border-radius: 20px;
    font-size: 11.5px;
    font-weight: 500;
    background: var(--ic-bdr-lt);
    color: var(--ic-tx-m);
    white-space: nowrap;
}
.ic-informes-diarios .ic-status::before,
.ic-informes-semanales .ic-status::before,
.ic-informes-mensuales .ic-status::before,
.ic-informes-tecnicos .ic-status::before,
.ic-documentos .ic-status::before,
.ic-users-admin .ic-status::before {
    content: '';
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: currentColor;
}
.ic-informes-diarios .ic-status-success,
.ic-informes-semanales .ic-status-success,
.ic-informes-mensuales .ic-status-success,
.ic-informes-tecnicos .ic-status-success { background: oklch(0.93 0.06 148); color: var(--ic-g600); }
.ic-informes-diarios .ic-status-warning,
.ic-informes-semanales .ic-status-warning,
.ic-informes-mensuales .ic-status-warning,
.ic-informes-tecnicos .ic-status-warning { background: var(--ic-warn-bg); color: var(--ic-warn); }
.ic-informes-diarios .ic-status-danger,
.ic-informes-semanales .ic-status-danger,
.ic-informes-mensuales .ic-status-danger,
.ic-informes-tecnicos .ic-status-danger { background: var(--ic-red-bg); color: var(--ic-red); }

/* Pill .ic-estado / .ic-estado-pendiente / .ic-estado-completado (informes técnicos) */
.ic-informes-diarios .ic-estado,
.ic-informes-semanales .ic-estado,
.ic-informes-mensuales .ic-estado,
.ic-informes-tecnicos .ic-estado,
.ic-documentos .ic-estado,
.ic-users-admin .ic-estado {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 3px 9px;
    border-radius: 20px;
    font-size: 11.5px;
    font-weight: 500;
    background: var(--ic-bdr-lt);
    color: var(--ic-tx-m);
    white-space: nowrap;
}
.ic-informes-diarios .ic-estado::before,
.ic-informes-semanales .ic-estado::before,
.ic-informes-mensuales .ic-estado::before,
.ic-informes-tecnicos .ic-estado::before,
.ic-documentos .ic-estado::before,
.ic-users-admin .ic-estado::before {
    content: '';
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: currentColor;
}
.ic-informes-diarios .ic-estado-completado,
.ic-informes-semanales .ic-estado-completado,
.ic-informes-mensuales .ic-estado-completado,
.ic-informes-tecnicos .ic-estado-completado { background: oklch(0.93 0.06 148); color: var(--ic-g600); }
.ic-informes-diarios .ic-estado-pendiente,
.ic-informes-semanales .ic-estado-pendiente,
.ic-informes-mensuales .ic-estado-pendiente,
.ic-informes-tecnicos .ic-estado-pendiente { background: var(--ic-warn-bg); color: var(--ic-warn); }

/* =============================================================
 *  DataTables overrides (CSS por defecto del CDN)
 * ============================================================= */
.ic-informes-diarios .dataTables_wrapper,
.ic-informes-semanales .dataTables_wrapper,
.ic-informes-mensuales .dataTables_wrapper,
.ic-informes-tecnicos .dataTables_wrapper,
.ic-documentos .dataTables_wrapper,
.ic-users-admin .dataTables_wrapper {
    font-size: 13px;
    color: var(--ic-tx);
    position: relative;
}

/* Toolbar superior (Buttons + Search) en una misma línea, alineados a los bordes. */
.ic-informes-diarios .dataTables_wrapper .dt-buttons,
.ic-informes-semanales .dataTables_wrapper .dt-buttons,
.ic-informes-mensuales .dataTables_wrapper .dt-buttons,
.ic-informes-tecnicos .dataTables_wrapper .dt-buttons,
.ic-documentos .dataTables_wrapper .dt-buttons,
.ic-users-admin .dataTables_wrapper .dt-buttons {
    float: left;
    margin: 0 0 12px;
    display: flex;
    gap: 6px;
}
.ic-informes-diarios .dataTables_wrapper .dataTables_filter,
.ic-informes-semanales .dataTables_wrapper .dataTables_filter,
.ic-informes-mensuales .dataTables_wrapper .dataTables_filter,
.ic-informes-tecnicos .dataTables_wrapper .dataTables_filter,
.ic-documentos .dataTables_wrapper .dataTables_filter,
.ic-users-admin .dataTables_wrapper .dataTables_filter {
    float: right;
    margin: 0 0 12px;
    text-align: right;
}
.ic-informes-diarios .dataTables_wrapper > .clear:first-of-type,
.ic-informes-semanales .dataTables_wrapper > .clear:first-of-type,
.ic-informes-mensuales .dataTables_wrapper > .clear:first-of-type,
.ic-informes-tecnicos .dataTables_wrapper > .clear:first-of-type,
.ic-documentos .dataTables_wrapper > .clear:first-of-type,
.ic-users-admin .dataTables_wrapper > .clear:first-of-type { clear: both; }

/* Botón Exportar CSV (variante ghost con icono download) */
.ic-informes-diarios .dt-buttons .ic-btn,
.ic-informes-semanales .dt-buttons .ic-btn,
.ic-informes-mensuales .dt-buttons .ic-btn,
.ic-informes-tecnicos .dt-buttons .ic-btn,
.ic-documentos .dt-buttons .ic-btn,
.ic-users-admin .dt-buttons .ic-btn {
    background: transparent !important;
    color: var(--ic-tx-m) !important;
    border: 1px solid var(--ic-bdr) !important;
    border-radius: var(--ic-r-sm) !important;
    padding: 5px 11px !important;
    font-size: 12px !important;
    font-weight: 500 !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px;
    box-shadow: none;
}
.ic-informes-diarios .dt-buttons .ic-btn:hover,
.ic-informes-semanales .dt-buttons .ic-btn:hover,
.ic-informes-mensuales .dt-buttons .ic-btn:hover,
.ic-informes-tecnicos .dt-buttons .ic-btn:hover,
.ic-documentos .dt-buttons .ic-btn:hover,
.ic-users-admin .dt-buttons .ic-btn:hover {
    background: var(--ic-bg) !important;
    color: var(--ic-tx) !important;
}
.ic-informes-diarios .dt-buttons .ic-btn::before,
.ic-informes-semanales .dt-buttons .ic-btn::before,
.ic-informes-mensuales .dt-buttons .ic-btn::before,
.ic-informes-tecnicos .dt-buttons .ic-btn::before,
.ic-documentos .dt-buttons .ic-btn::before,
.ic-users-admin .dt-buttons .ic-btn::before {
    content: '';
    display: inline-block;
    width: 13px;
    height: 13px;
    background: currentColor;
    -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'/><polyline points='7 10 12 15 17 10'/><line x1='12' y1='15' x2='12' y2='3'/></svg>") center / contain no-repeat;
            mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'/><polyline points='7 10 12 15 17 10'/><line x1='12' y1='15' x2='12' y2='3'/></svg>") center / contain no-repeat;
}

/* Buscador con icono dentro y sin label visible */
.ic-informes-diarios .dataTables_wrapper .dataTables_filter label,
.ic-informes-semanales .dataTables_wrapper .dataTables_filter label,
.ic-informes-mensuales .dataTables_wrapper .dataTables_filter label,
.ic-informes-tecnicos .dataTables_wrapper .dataTables_filter label,
.ic-documentos .dataTables_wrapper .dataTables_filter label,
.ic-users-admin .dataTables_wrapper .dataTables_filter label {
    font-size: 0;
    color: transparent;
    margin: 0;
    position: relative;
    display: inline-block;
}
.ic-informes-diarios .dataTables_wrapper .dataTables_filter label::before,
.ic-informes-semanales .dataTables_wrapper .dataTables_filter label::before,
.ic-informes-mensuales .dataTables_wrapper .dataTables_filter label::before,
.ic-informes-tecnicos .dataTables_wrapper .dataTables_filter label::before,
.ic-documentos .dataTables_wrapper .dataTables_filter label::before,
.ic-users-admin .dataTables_wrapper .dataTables_filter label::before {
    content: '';
    position: absolute;
    left: 11px;
    top: 50%;
    transform: translateY(-50%);
    width: 13px;
    height: 13px;
    background: var(--ic-tx-m);
    -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='11' cy='11' r='8'/><line x1='21' y1='21' x2='16.65' y2='16.65'/></svg>") center / contain no-repeat;
            mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='11' cy='11' r='8'/><line x1='21' y1='21' x2='16.65' y2='16.65'/></svg>") center / contain no-repeat;
    pointer-events: none;
    z-index: 2;
}
.ic-informes-diarios .dataTables_wrapper .dataTables_filter input,
.ic-informes-semanales .dataTables_wrapper .dataTables_filter input,
.ic-informes-mensuales .dataTables_wrapper .dataTables_filter input,
.ic-informes-tecnicos .dataTables_wrapper .dataTables_filter input,
.ic-documentos .dataTables_wrapper .dataTables_filter input,
.ic-users-admin .dataTables_wrapper .dataTables_filter input {
    padding: 7px 12px 7px 30px;
    border-radius: var(--ic-r-sm);
    border: 1px solid var(--ic-bdr);
    background: var(--ic-sur);
    color: var(--ic-tx);
    font-size: 13px;
    font-family: inherit;
    outline: none;
    margin-left: 0;
    min-width: 220px;
}
.ic-informes-diarios .dataTables_wrapper .dataTables_filter input:focus,
.ic-informes-semanales .dataTables_wrapper .dataTables_filter input:focus,
.ic-informes-mensuales .dataTables_wrapper .dataTables_filter input:focus,
.ic-informes-tecnicos .dataTables_wrapper .dataTables_filter input:focus,
.ic-documentos .dataTables_wrapper .dataTables_filter input:focus,
.ic-users-admin .dataTables_wrapper .dataTables_filter input:focus {
    border-color: var(--ic-g500);
    box-shadow: 0 0 0 3px color-mix(in oklch, var(--ic-g500) 18%, transparent);
}
.ic-informes-diarios .dataTables_wrapper .dataTables_length select,
.ic-informes-semanales .dataTables_wrapper .dataTables_length select,
.ic-informes-mensuales .dataTables_wrapper .dataTables_length select,
.ic-informes-tecnicos .dataTables_wrapper .dataTables_length select,
.ic-documentos .dataTables_wrapper .dataTables_length select,
.ic-users-admin .dataTables_wrapper .dataTables_length select {
    padding: 5px 8px;
    border-radius: var(--ic-r-sm);
    border: 1px solid var(--ic-bdr);
    background: var(--ic-sur);
    margin: 0 4px;
}

/* Footer (Info + Paginación) */
.ic-informes-diarios .dataTables_wrapper .dataTables_info,
.ic-informes-semanales .dataTables_wrapper .dataTables_info,
.ic-informes-mensuales .dataTables_wrapper .dataTables_info,
.ic-informes-tecnicos .dataTables_wrapper .dataTables_info,
.ic-documentos .dataTables_wrapper .dataTables_info,
.ic-users-admin .dataTables_wrapper .dataTables_info {
    color: var(--ic-tx-m);
    font-size: 13px;
    padding-top: 14px;
}
.ic-informes-diarios .dataTables_wrapper .dataTables_paginate,
.ic-informes-semanales .dataTables_wrapper .dataTables_paginate,
.ic-informes-mensuales .dataTables_wrapper .dataTables_paginate,
.ic-informes-tecnicos .dataTables_wrapper .dataTables_paginate,
.ic-documentos .dataTables_wrapper .dataTables_paginate,
.ic-users-admin .dataTables_wrapper .dataTables_paginate {
    padding-top: 14px;
}

/* Botones de paginación: redondeados, con borde sutil */
.ic-informes-diarios .dataTables_wrapper .dataTables_paginate .paginate_button,
.ic-informes-semanales .dataTables_wrapper .dataTables_paginate .paginate_button,
.ic-informes-mensuales .dataTables_wrapper .dataTables_paginate .paginate_button,
.ic-informes-tecnicos .dataTables_wrapper .dataTables_paginate .paginate_button,
.ic-documentos .dataTables_wrapper .dataTables_paginate .paginate_button,
.ic-users-admin .dataTables_wrapper .dataTables_paginate .paginate_button {
    background: var(--ic-sur) !important;
    color: var(--ic-tx-m) !important;
    border: 1px solid var(--ic-bdr) !important;
    border-radius: var(--ic-r-sm) !important;
    padding: 4px 10px !important;
    margin: 0 3px !important;
    font-size: 12.5px !important;
    min-width: 30px;
    line-height: 22px;
    text-align: center;
}
.ic-informes-diarios .dataTables_wrapper .dataTables_paginate .paginate_button.current,
.ic-informes-semanales .dataTables_wrapper .dataTables_paginate .paginate_button.current,
.ic-informes-mensuales .dataTables_wrapper .dataTables_paginate .paginate_button.current,
.ic-informes-tecnicos .dataTables_wrapper .dataTables_paginate .paginate_button.current,
.ic-documentos .dataTables_wrapper .dataTables_paginate .paginate_button.current,
.ic-users-admin .dataTables_wrapper .dataTables_paginate .paginate_button.current,
.ic-informes-diarios .dataTables_wrapper .dataTables_paginate .paginate_button.current:hover,
.ic-informes-semanales .dataTables_wrapper .dataTables_paginate .paginate_button.current:hover,
.ic-informes-mensuales .dataTables_wrapper .dataTables_paginate .paginate_button.current:hover,
.ic-informes-tecnicos .dataTables_wrapper .dataTables_paginate .paginate_button.current:hover,
.ic-documentos .dataTables_wrapper .dataTables_paginate .paginate_button.current:hover,
.ic-users-admin .dataTables_wrapper .dataTables_paginate .paginate_button.current:hover {
    background: var(--ic-g500) !important;
    color: #fff !important;
    border-color: var(--ic-g500) !important;
    font-weight: 700;
}
.ic-informes-diarios .dataTables_wrapper .dataTables_paginate .paginate_button:hover,
.ic-informes-semanales .dataTables_wrapper .dataTables_paginate .paginate_button:hover,
.ic-informes-mensuales .dataTables_wrapper .dataTables_paginate .paginate_button:hover,
.ic-informes-tecnicos .dataTables_wrapper .dataTables_paginate .paginate_button:hover,
.ic-documentos .dataTables_wrapper .dataTables_paginate .paginate_button:hover,
.ic-users-admin .dataTables_wrapper .dataTables_paginate .paginate_button:hover {
    background: var(--ic-bg) !important;
    color: var(--ic-tx) !important;
    border-color: var(--ic-bdr) !important;
}
.ic-informes-diarios .dataTables_wrapper .dataTables_paginate .paginate_button.disabled,
.ic-informes-semanales .dataTables_wrapper .dataTables_paginate .paginate_button.disabled,
.ic-informes-mensuales .dataTables_wrapper .dataTables_paginate .paginate_button.disabled,
.ic-informes-tecnicos .dataTables_wrapper .dataTables_paginate .paginate_button.disabled,
.ic-documentos .dataTables_wrapper .dataTables_paginate .paginate_button.disabled,
.ic-users-admin .dataTables_wrapper .dataTables_paginate .paginate_button.disabled {
    opacity: .45;
    cursor: not-allowed;
}

.ic-informes-diarios table.dataTable thead th,
.ic-informes-semanales table.dataTable thead th,
.ic-informes-mensuales table.dataTable thead th,
.ic-informes-tecnicos table.dataTable thead th,
.ic-documentos table.dataTable thead th,
.ic-users-admin table.dataTable thead th { border-bottom-color: var(--ic-bdr); }

/* =============================================================
 * 7. Avisos / mensajes
 * ============================================================= */
.ic-informes-diarios .ic-info,
.ic-informes-semanales .ic-info,
.ic-informes-mensuales .ic-info,
.ic-informes-tecnicos .ic-info,
.ic-documentos .ic-info,
.ic-users-admin .ic-info {
    padding: 12px 16px;
    background: var(--ic-g50);
    border-left: 3px solid var(--ic-g500);
    border-radius: var(--ic-r-sm);
    color: var(--ic-g600);
    font-size: 13px;
    margin: 0 0 14px;
}
.ic-informes-diarios .ic-warning,
.ic-informes-semanales .ic-warning,
.ic-informes-mensuales .ic-warning,
.ic-informes-tecnicos .ic-warning,
.ic-documentos .ic-warning,
.ic-users-admin .ic-warning {
    background: var(--ic-warn-bg);
    border-left-color: var(--ic-warn);
    color: oklch(0.40 0.13 65);
}

/* =============================================================
 * 8. Modal (común a todos los shortcodes)
 * ============================================================= */
.ic-informes-diarios .ic-modal,
.ic-informes-semanales .ic-modal,
.ic-informes-mensuales .ic-modal,
.ic-informes-tecnicos .ic-modal,
.ic-documentos .ic-modal,
.ic-users-admin .ic-modal {
    position: fixed;
    inset: 0;
    display: none;
    z-index: 9999;
}
.ic-informes-diarios .ic-modal.open,
.ic-informes-semanales .ic-modal.open,
.ic-informes-mensuales .ic-modal.open,
.ic-informes-tecnicos .ic-modal.open,
.ic-documentos .ic-modal.open,
.ic-users-admin .ic-modal.open { display: block; }

.ic-informes-diarios .ic-modal-backdrop,
.ic-informes-semanales .ic-modal-backdrop,
.ic-informes-mensuales .ic-modal-backdrop,
.ic-informes-tecnicos .ic-modal-backdrop,
.ic-documentos .ic-modal-backdrop,
.ic-users-admin .ic-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,.45);
}
.ic-informes-diarios .ic-modal-dialog,
.ic-informes-semanales .ic-modal-dialog,
.ic-informes-mensuales .ic-modal-dialog,
.ic-informes-tecnicos .ic-modal-dialog,
.ic-documentos .ic-modal-dialog,
.ic-users-admin .ic-modal-dialog {
    position: relative;
    background: var(--ic-sur);
    max-width: 620px;
    width: calc(100% - 48px);
    margin: 5vh auto;
    border-radius: var(--ic-r-lg);
    box-shadow: var(--ic-sh-lg);
    max-height: 90vh;
    display: flex;
    flex-direction: column;
}
.ic-informes-diarios .ic-modal-header,
.ic-informes-semanales .ic-modal-header,
.ic-informes-mensuales .ic-modal-header,
.ic-informes-tecnicos .ic-modal-header,
.ic-documentos .ic-modal-header,
.ic-users-admin .ic-modal-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 18px 24px;
    border-bottom: 1px solid var(--ic-bdr-lt);
}
.ic-informes-diarios .ic-modal-title,
.ic-informes-semanales .ic-modal-title,
.ic-informes-mensuales .ic-modal-title,
.ic-informes-tecnicos .ic-modal-title,
.ic-documentos .ic-modal-title,
.ic-users-admin .ic-modal-title {
    font-family: 'Outfit', 'Inter', sans-serif;
    font-size: 16px;
    font-weight: 700;
    margin: 0;
}
.ic-informes-diarios .ic-modal-close,
.ic-informes-semanales .ic-modal-close,
.ic-informes-mensuales .ic-modal-close,
.ic-informes-tecnicos .ic-modal-close,
.ic-documentos .ic-modal-close,
.ic-users-admin .ic-modal-close {
    background: transparent;
    border: 0;
    font-size: 22px;
    line-height: 1;
    cursor: pointer;
    color: var(--ic-tx-m);
    padding: 4px 8px;
    border-radius: var(--ic-r-sm);
}
.ic-informes-diarios .ic-modal-close:hover,
.ic-informes-semanales .ic-modal-close:hover,
.ic-informes-mensuales .ic-modal-close:hover,
.ic-informes-tecnicos .ic-modal-close:hover,
.ic-documentos .ic-modal-close:hover,
.ic-users-admin .ic-modal-close:hover { background: var(--ic-bg); color: var(--ic-tx); }
.ic-informes-diarios .ic-modal-body,
.ic-informes-semanales .ic-modal-body,
.ic-informes-mensuales .ic-modal-body,
.ic-informes-tecnicos .ic-modal-body,
.ic-documentos .ic-modal-body,
.ic-users-admin .ic-modal-body {
    padding: 22px 24px;
    overflow-y: auto;
}
.ic-informes-diarios .ic-modal-footer,
.ic-informes-semanales .ic-modal-footer,
.ic-informes-mensuales .ic-modal-footer,
.ic-informes-tecnicos .ic-modal-footer,
.ic-documentos .ic-modal-footer,
.ic-users-admin .ic-modal-footer {
    display: flex;
    gap: 8px;
    justify-content: flex-end;
    padding: 14px 0 0;
    margin-top: 14px;
    border-top: 1px solid var(--ic-bdr-lt);
}

/* =============================================================
 * 9. Formulario
 * ============================================================= */
.ic-informes-diarios .ic-field,
.ic-informes-semanales .ic-field,
.ic-informes-mensuales .ic-field,
.ic-informes-tecnicos .ic-field,
.ic-documentos .ic-field,
.ic-users-admin .ic-field { margin-bottom: 14px; }

.ic-informes-diarios .ic-field label,
.ic-informes-semanales .ic-field label,
.ic-informes-mensuales .ic-field label,
.ic-informes-tecnicos .ic-field label,
.ic-documentos .ic-field label,
.ic-users-admin .ic-field label {
    display: block;
    font-size: 11.5px;
    font-weight: 600;
    color: var(--ic-tx-m);
    letter-spacing: 0.03em;
    text-transform: uppercase;
    margin-bottom: 6px;
}
.ic-informes-diarios .ic-field input[type="text"],
.ic-informes-diarios .ic-field input[type="number"],
.ic-informes-diarios .ic-field input[type="email"],
.ic-informes-diarios .ic-field input[type="password"],
.ic-informes-diarios .ic-field input[type="date"],
.ic-informes-diarios .ic-field input[type="time"],
.ic-informes-diarios .ic-field input[type="datetime-local"],
.ic-informes-diarios .ic-field select,
.ic-informes-diarios .ic-field textarea,
.ic-informes-semanales .ic-field input[type="text"],
.ic-informes-semanales .ic-field input[type="number"],
.ic-informes-semanales .ic-field input[type="email"],
.ic-informes-semanales .ic-field input[type="password"],
.ic-informes-semanales .ic-field input[type="date"],
.ic-informes-semanales .ic-field input[type="time"],
.ic-informes-semanales .ic-field input[type="datetime-local"],
.ic-informes-semanales .ic-field select,
.ic-informes-semanales .ic-field textarea,
.ic-informes-mensuales .ic-field input[type="text"],
.ic-informes-mensuales .ic-field input[type="number"],
.ic-informes-mensuales .ic-field input[type="email"],
.ic-informes-mensuales .ic-field input[type="password"],
.ic-informes-mensuales .ic-field input[type="date"],
.ic-informes-mensuales .ic-field input[type="time"],
.ic-informes-mensuales .ic-field input[type="datetime-local"],
.ic-informes-mensuales .ic-field select,
.ic-informes-mensuales .ic-field textarea,
.ic-informes-tecnicos .ic-field input[type="text"],
.ic-informes-tecnicos .ic-field input[type="number"],
.ic-informes-tecnicos .ic-field input[type="email"],
.ic-informes-tecnicos .ic-field input[type="password"],
.ic-informes-tecnicos .ic-field input[type="date"],
.ic-informes-tecnicos .ic-field input[type="time"],
.ic-informes-tecnicos .ic-field input[type="datetime-local"],
.ic-informes-tecnicos .ic-field select,
.ic-informes-tecnicos .ic-field textarea,
.ic-documentos .ic-field input,
.ic-documentos .ic-field select,
.ic-documentos .ic-field textarea,
.ic-users-admin .ic-field input[type="text"],
.ic-users-admin .ic-field input[type="number"],
.ic-users-admin .ic-field input[type="email"],
.ic-users-admin .ic-field input[type="password"],
.ic-users-admin .ic-field input[type="tel"],
.ic-users-admin .ic-field select,
.ic-users-admin .ic-field textarea {
    width: 100%;
    padding: 9px 12px;
    border: 1px solid var(--ic-bdr);
    border-radius: var(--ic-r-sm);
    background: var(--ic-sur);
    color: var(--ic-tx);
    font-size: 13px;
    font-family: inherit;
    outline: none;
    transition: border-color .15s, box-shadow .15s;
    box-sizing: border-box;
}

/* Reset específico para selects - igualar grosor de borde a inputs */
.ic-informes-diarios .ic-field select,
.ic-informes-semanales .ic-field select,
.ic-informes-mensuales .ic-field select,
.ic-informes-tecnicos .ic-field select {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    border: 1px solid var(--ic-bdr);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 10px center;
    padding-right: 30px;
}

.ic-informes-diarios .ic-field input:focus,
.ic-informes-diarios .ic-field select:focus,
.ic-informes-diarios .ic-field textarea:focus,
.ic-informes-semanales .ic-field input:focus,
.ic-informes-semanales .ic-field select:focus,
.ic-informes-semanales .ic-field textarea:focus,
.ic-informes-mensuales .ic-field input:focus,
.ic-informes-mensuales .ic-field select:focus,
.ic-informes-mensuales .ic-field textarea:focus,
.ic-informes-tecnicos .ic-field input:focus,
.ic-informes-tecnicos .ic-field select:focus,
.ic-informes-tecnicos .ic-field textarea:focus,
.ic-documentos .ic-field input:focus,
.ic-documentos .ic-field select:focus,
.ic-documentos .ic-field textarea:focus,
.ic-users-admin .ic-field input:focus,
.ic-users-admin .ic-field select:focus,
.ic-users-admin .ic-field textarea:focus {
    border-color: var(--ic-g500);
    box-shadow: 0 0 0 3px color-mix(in oklch, var(--ic-g500) 18%, transparent);
}

.ic-informes-diarios .ic-field-error,
.ic-informes-semanales .ic-field-error,
.ic-informes-mensuales .ic-field-error,
.ic-informes-tecnicos .ic-field-error,
.ic-documentos .ic-field-error,
.ic-users-admin .ic-field-error {
    display: block;
    color: var(--ic-red);
    font-size: 12px;
    margin-top: 4px;
    min-height: 1em;
}

.ic-informes-diarios .ic-field.is-readonly select,
.ic-informes-diarios .ic-field.is-readonly input,
.ic-informes-semanales .ic-field.is-readonly select,
.ic-informes-semanales .ic-field.is-readonly input,
.ic-informes-mensuales .ic-field.is-readonly select,
.ic-informes-mensuales .ic-field.is-readonly input,
.ic-informes-tecnicos .ic-field.is-readonly select,
.ic-informes-tecnicos .ic-field.is-readonly input { display: none; }

.ic-informes-tecnicos .ic-readonly-display {
    display: none;
    padding: 9px 12px;
    border-radius: var(--ic-r-sm);
    background: var(--ic-bg);
    color: var(--ic-tx);
    font-size: 13px;
    font-weight: 500;
}
.ic-informes-tecnicos .ic-field.is-readonly .ic-readonly-display { display: block; }

/* Form grid de informes técnicos (técnico/cliente y fecha/estado en 2 cols) */
.ic-informes-tecnicos .ic-form-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
}
@media (min-width: 520px) {
    .ic-informes-tecnicos .ic-form-grid { grid-template-columns: 1fr 1fr; }
}

.ic-informes-diarios .ic-form-feedback,
.ic-informes-semanales .ic-form-feedback,
.ic-informes-mensuales .ic-form-feedback,
.ic-informes-tecnicos .ic-form-feedback,
.ic-documentos .ic-form-feedback,
.ic-users-admin .ic-form-feedback {
    margin-bottom: 14px;
    border-radius: var(--ic-r-sm);
    font-size: 13px;
}
.ic-informes-diarios .ic-form-feedback.success,
.ic-informes-semanales .ic-form-feedback.success,
.ic-informes-mensuales .ic-form-feedback.success,
.ic-informes-tecnicos .ic-form-feedback.success,
.ic-documentos .ic-form-feedback.success,
.ic-users-admin .ic-form-feedback.success {
    padding: 10px 14px;
    background: oklch(0.93 0.06 148);
    color: var(--ic-g600);
    border-left: 3px solid var(--ic-g500);
}
.ic-informes-diarios .ic-form-feedback.error,
.ic-informes-semanales .ic-form-feedback.error,
.ic-informes-mensuales .ic-form-feedback.error,
.ic-informes-tecnicos .ic-form-feedback.error,
.ic-documentos .ic-form-feedback.error,
.ic-users-admin .ic-form-feedback.error {
    padding: 10px 14px;
    background: var(--ic-red-bg);
    color: oklch(0.30 0.18 22);
    border-left: 3px solid var(--ic-red);
}

/* =============================================================
 * 10. Mediciones (informes diarios/semanales/mensuales/tecnicos)
 * ============================================================= */
.ic-informes-diarios .ic-mediciones,
.ic-informes-semanales .ic-mediciones,
.ic-informes-mensuales .ic-mediciones,
.ic-informes-tecnicos .ic-mediciones {
    background: var(--ic-bg);
    border: 1px solid var(--ic-bdr-lt);
    border-radius: var(--ic-r-sm);
    padding: 14px 16px;
    margin-bottom: 14px;
}
.ic-informes-diarios .ic-mediciones legend,
.ic-informes-semanales .ic-mediciones legend,
.ic-informes-mensuales .ic-mediciones legend,
.ic-informes-tecnicos .ic-mediciones legend {
    padding: 0 6px;
    font-family: 'Outfit', 'Inter', sans-serif;
    font-weight: 700;
    font-size: 11px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--ic-tx-m);
}
/* Espacio entre el último item y el botón Añadir punto */
#ic-add-device {
    margin-top: 12px;
}
.ic-informes-diarios .ic-medicion,
.ic-informes-semanales .ic-medicion,
.ic-informes-mensuales .ic-medicion {
    margin-bottom: 12px;
    padding-bottom: 10px;
    border-bottom: 1px dashed var(--ic-bdr-lt);
}
.ic-informes-diarios .ic-medicion:last-child,
.ic-informes-semanales .ic-medicion:last-child,
.ic-informes-mensuales .ic-medicion:last-child {
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: 0;
}
.ic-informes-diarios .ic-medicion-title,
.ic-informes-semanales .ic-medicion-title,
.ic-informes-mensuales .ic-medicion-title {
    margin: 0 0 8px;
    font-family: 'Outfit', 'Inter', sans-serif;
    font-size: 13px;
    font-weight: 600;
    color: var(--ic-g600);
}
.ic-informes-diarios .ic-medicion-grid,
.ic-informes-semanales .ic-medicion-grid,
.ic-informes-mensuales .ic-medicion-grid,
.ic-informes-tecnicos .ic-medicion-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 8px;
}
@media (min-width: 520px) {
    .ic-informes-diarios .ic-medicion-grid,
    .ic-informes-semanales .ic-medicion-grid,
    .ic-informes-mensuales .ic-medicion-grid,
    .ic-informes-tecnicos .ic-medicion-grid {
        grid-template-columns: 1fr 1fr;
    }
    /* En informes diarios: Punto ocupa toda la fila, pH y Cloro en la segunda fila */
    .ic-informes-diarios .ic-medicion-grid .ic-field:first-child {
        grid-column: 1 / -1;
    }
    /* En informes mensuales: Estado y Observaciones ocupan toda la fila */
    .ic-informes-mensuales .ic-medicion-grid .ic-field:nth-child(3),
    .ic-informes-mensuales .ic-medicion-grid .ic-field:last-child {
        grid-column: 1 / -1;
    }
    /* En informes técnicos: Estado y Observaciones ocupan toda la fila */
    .ic-informes-tecnicos .ic-medicion-grid .ic-field:nth-child(3),
    .ic-informes-tecnicos .ic-medicion-grid .ic-field:last-child {
        grid-column: 1 / -1;
    }
}

/* Items de medición (informes técnicos) */
.ic-informes-tecnicos .ic-medicion-item {
    background: var(--ic-sur);
    border: 1px solid var(--ic-bdr-lt);
    border-radius: var(--ic-r-sm);
    padding: 12px 14px;
    margin-bottom: 12px;
}
.ic-informes-tecnicos .ic-medicion-item:last-child { margin-bottom: 0; }
.ic-informes-tecnicos .ic-medicion-item-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
    margin-bottom: 12px;
}
.ic-informes-tecnicos .ic-medicion-item-header strong {
    font-family: 'Outfit', 'Inter', sans-serif;
    font-size: 13px;
    font-weight: 600;
    color: var(--ic-tx);
}
.ic-informes-tecnicos .ic-no-devices {
    padding: 14px;
    color: var(--ic-tx-l);
    font-style: italic;
    text-align: center;
    background: var(--ic-sur);
    border: 1px dashed var(--ic-bdr);
    border-radius: var(--ic-r-sm);
}

/* =============================================================
 * 11. Documentos (explorador de archivos)
 *    Markup: .ic-docs-explorer > .ic-docs-toolbar + nav.ic-docs-breadcrumb
 *           + .ic-docs-feedback + table.ic-docs-table
 * ============================================================= */
.ic-documentos .ic-docs-explorer {
    background: var(--ic-sur);
    border: 1px solid var(--ic-bdr);
    border-radius: var(--ic-r);
    overflow: hidden;
    box-shadow: var(--ic-sh-sm);
}
.ic-documentos .ic-docs-toolbar {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 10px 12px;
    background: var(--ic-sur);
    border-bottom: 1px solid var(--ic-bdr-lt);
    flex-wrap: wrap;
}
.ic-documentos .ic-docs-toolbar .ic-btn {
    background: var(--ic-sur);
    color: var(--ic-tx-m);
    border: 1px solid var(--ic-bdr);
    padding: 6px 11px;
    font-size: 12px;
    font-weight: 500;
    gap: 6px;
}
.ic-documentos .ic-docs-toolbar .ic-btn svg {
    width: 13px;
    height: 13px;
    flex-shrink: 0;
}
.ic-documentos .ic-docs-toolbar .ic-btn:hover:not(:disabled) {
    background: var(--ic-bg);
    color: var(--ic-tx);
    border-color: var(--ic-bdr);
}
.ic-documentos .ic-docs-toolbar .ic-btn:disabled { opacity: .45; }

/* Breadcrumb (ol/li) */
.ic-documentos .ic-docs-breadcrumb {
    padding: 9px 16px;
    background: oklch(0.978 0.012 148);
    border-bottom: 1px solid var(--ic-bdr-lt);
    font-size: 12.5px;
    color: var(--ic-tx-m);
}
.ic-documentos .ic-docs-breadcrumb ol {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px;
}
.ic-documentos .ic-docs-breadcrumb li {
    display: flex;
    align-items: center;
    gap: 4px;
}
.ic-documentos .ic-docs-breadcrumb li + li::before {
    content: '\203A';
    color: var(--ic-tx-l);
    margin: 0 2px;
}
.ic-documentos .ic-docs-breadcrumb a {
    color: var(--ic-g500);
    text-decoration: none;
    cursor: pointer;
}
.ic-documentos .ic-docs-breadcrumb a:hover { text-decoration: underline; }
.ic-documentos .ic-docs-breadcrumb .current {
    color: var(--ic-tx);
    font-weight: 600;
}

.ic-documentos .ic-docs-feedback {
    padding: 0;
    color: var(--ic-tx-m);
    font-size: 13px;
}
.ic-documentos .ic-docs-feedback:not(:empty) { padding: 10px 16px; }
.ic-documentos .ic-docs-feedback.loading { color: var(--ic-tx-m); font-style: italic; }
.ic-documentos .ic-docs-feedback.empty   { color: var(--ic-tx-l); font-style: italic; text-align: center; padding: 28px 16px; }
.ic-documentos .ic-docs-feedback.error   { color: var(--ic-red); background: var(--ic-red-bg); }

.ic-documentos .ic-docs-table {
    width: 100%;
    border-collapse: collapse;
    background: var(--ic-sur);
}
.ic-documentos .ic-docs-table thead th {
    background: oklch(0.955 0.018 148);
    border-top: 0;
    border-left: 0;
    border-right: 0;
    border-bottom: 1px solid var(--ic-bdr);
    padding: 11px 16px;
    text-align: left;
    font-size: 11px;
    font-weight: 700;
    color: var(--ic-tx-m);
    letter-spacing: 0.06em;
    text-transform: uppercase;
}
.ic-documentos .ic-docs-table tbody td {
    padding: 13px 16px;
    font-size: 13px;
    color: var(--ic-tx);
    border-top: 0;
    border-left: 0;
    border-right: 0;
    border-bottom: 1px solid var(--ic-bdr-lt);
    vertical-align: middle;
}
.ic-documentos .ic-docs-table tbody tr:last-child td { border-bottom: 0; }
.ic-documentos .ic-docs-table tbody tr.is-folder { cursor: pointer; }
.ic-documentos .ic-docs-table tbody tr:hover { background: oklch(0.984 0.01 148); }

.ic-documentos .ic-docs-table .ic-col-actions { text-align: right; width: 140px; white-space: nowrap; }
.ic-documentos .ic-docs-table .ic-col-size,
.ic-documentos .ic-docs-table .ic-col-modified,
.ic-documentos .ic-docs-table .ic-col-type { white-space: nowrap; color: var(--ic-tx-m); font-size: 12.5px; }

.ic-documentos .ic-docs-table .ic-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    margin-right: 8px;
    color: var(--ic-tx-l);
    vertical-align: middle;
    font-size: 14px;
}
.ic-documentos .ic-docs-table tr.is-folder .ic-icon { color: oklch(0.62 0.14 60); }
.ic-documentos .ic-docs-table .ic-name { color: var(--ic-tx); }
.ic-documentos .ic-docs-table tr.is-folder .ic-name { color: var(--ic-g500); font-weight: 500; }
.ic-documentos .ic-docs-table tr.is-folder:hover .ic-name { text-decoration: underline; }

/* =============================================================
 * 12. Helpers comunes
 * ============================================================= */
.ic-informes-diarios .ic-grid-2,
.ic-informes-semanales .ic-grid-2,
.ic-informes-mensuales .ic-grid-2,
.ic-informes-tecnicos .ic-grid-2,
.ic-documentos .ic-grid-2,
.ic-users-admin .ic-grid-2 {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
}
@media (min-width: 520px) {
    .ic-informes-diarios .ic-grid-2,
    .ic-informes-semanales .ic-grid-2,
    .ic-informes-mensuales .ic-grid-2,
    .ic-informes-tecnicos .ic-grid-2,
    .ic-documentos .ic-grid-2,
    .ic-users-admin .ic-grid-2 { grid-template-columns: 1fr 1fr; }
}

.ic-informes-diarios .ic-flex-row,
.ic-informes-semanales .ic-flex-row,
.ic-informes-mensuales .ic-flex-row,
.ic-informes-tecnicos .ic-flex-row,
.ic-documentos .ic-flex-row,
.ic-users-admin .ic-flex-row {
    display: flex;
    gap: 6px;
    align-items: center;
    flex-wrap: wrap;
}

/* =============================================================
 * 13. Filtros técnicos: fila de fechas dentro del mismo cuadro
 * ============================================================= */
.ic-informes-tecnicos .ic-filtros-dates-row {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: flex-end;
    width: 100%;
    padding-top: 12px;
    margin-top: 10px;
    border-top: 1px solid var(--ic-bdr-lt);
}
.ic-informes-tecnicos .ic-filtros-dates-row .ic-filter-field { min-width: 160px; }

/* =============================================================
 * 14. Mediciones: header con input de nombre y botón papelera
 * ============================================================= */
.ic-informes-tecnicos .ic-medicion-item-header > div {
    flex: 1 1 auto;
    min-width: 0;
}
.ic-informes-tecnicos .ic-medicion-item-header strong {
    font-weight: 600;
    color: var(--ic-tx);
    font-size: 13px;
    flex: 0 0 auto;
}
.ic-informes-tecnicos .ic-medicion-item-header input[type="text"],
.ic-informes-tecnicos .ic-medicion-name-input {
    width: 100%;
    padding: 8px 12px;
    border: 1px solid var(--ic-bdr);
    border-radius: var(--ic-r-sm);
    background: var(--ic-sur);
    color: var(--ic-tx);
    font-size: 13px;
    font-family: inherit;
    font-weight: 400;
    line-height: 1.4;
    box-sizing: border-box;
    outline: none;
    transition: border-color .15s, box-shadow .15s;
}
.ic-informes-tecnicos .ic-medicion-item-header input[type="text"]:focus,
.ic-informes-tecnicos .ic-medicion-name-input:focus {
    border-color: var(--ic-g500);
    box-shadow: 0 0 0 3px var(--ic-g50);
}
/* Botón papelera dentro del header de medición */
.ic-informes-tecnicos .ic-medicion-item-header .ic-btn-icon {
    flex: 0 0 auto;
}

/* Scrollbar suave para los wrappers (mejor en macOS) */
.ic-informes-diarios ::-webkit-scrollbar,
.ic-informes-semanales ::-webkit-scrollbar,
.ic-informes-mensuales ::-webkit-scrollbar,
.ic-informes-tecnicos ::-webkit-scrollbar,
.ic-documentos ::-webkit-scrollbar,
.ic-users-admin ::-webkit-scrollbar { width: 6px; height: 6px; }
.ic-informes-diarios ::-webkit-scrollbar-thumb,
.ic-informes-semanales ::-webkit-scrollbar-thumb,
.ic-informes-mensuales ::-webkit-scrollbar-thumb,
.ic-informes-tecnicos ::-webkit-scrollbar-thumb,
.ic-documentos ::-webkit-scrollbar-thumb,
.ic-users-admin ::-webkit-scrollbar-thumb { background: var(--ic-bdr); border-radius: 3px; }

/* =============================================================
 * 15. Dashboard [ic_dashboard]
 * ============================================================= */
.ic-dashboard {
    --ic-sb-bg: oklch(0.20 0.08 148);
    --ic-g500: oklch(0.50 0.16 148);
    --ic-g600: oklch(0.42 0.14 148);
    --ic-g100: oklch(0.94 0.04 148);
    --ic-g50:  oklch(0.975 0.02 148);
    --ic-bg:   oklch(0.972 0.008 85);
    --ic-sur:  #ffffff;
    --ic-bdr:    oklch(0.88 0.008 240);
    --ic-bdr-lt: oklch(0.93 0.005 240);
    --ic-tx:   oklch(0.17 0.015 240);
    --ic-tx-m: oklch(0.50 0.01 240);
    --ic-tx-l: oklch(0.68 0.008 240);
    --ic-sh-sm: 0 1px 3px rgba(0,0,0,.07), 0 1px 2px rgba(0,0,0,.04);
    --ic-sh-md: 0 4px 14px rgba(0,0,0,.08), 0 2px 6px rgba(0,0,0,.04);
    --ic-r:    10px;
    --ic-r-sm: 6px;
    --ic-r-lg: 14px;

    color: var(--ic-tx);
    font-size: 14px;
    line-height: 1.5;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}

.ic-dashboard * { box-sizing: border-box; }

/* ── Hero banner ── */
.ic-dash-hero {
    background: linear-gradient(135deg, oklch(0.21 0.08 148) 0%, oklch(0.31 0.11 148) 100%);
    border-radius: var(--ic-r-lg);
    padding: 30px 34px;
    margin-bottom: 28px;
    color: #fff;
    position: relative;
    overflow: hidden;
}

.ic-dash-hero::before,
.ic-dash-hero::after {
    content: '';
    position: absolute;
    border-radius: 50%;
    pointer-events: none;
}
.ic-dash-hero::before {
    width: 160px;
    height: 160px;
    left: -20px;
    bottom: -20px;
    background: oklch(1 0 0 / 0.05);
}
.ic-dash-hero::after {
    width: 100px;
    height: 100px;
    right: 30px;
    top: -20px;
    background: oklch(1 0 0 / 0.07);
}

.ic-dash-hero-date {
    font-size: 12px;
    opacity: .65;
    margin-bottom: 6px;
    position: relative;
    z-index: 1;
}

.ic-dash-hero-title {
    font-family: 'Outfit', 'Inter', sans-serif;
    font-size: 27px;
    font-weight: 800;
    letter-spacing: -0.02em;
    position: relative;
    z-index: 1;
    line-height: 1.2;
}

.ic-dash-hero-subtitle {
    font-size: 13.5px;
    opacity: .72;
    margin-top: 5px;
    position: relative;
    z-index: 1;
}

/* ── Section ── */
.ic-dash-section { margin-bottom: 28px; }

.ic-dash-section-title {
    font-family: 'Outfit', 'Inter', sans-serif;
    font-size: 13px;
    font-weight: 700;
    color: var(--ic-tx-m);
    letter-spacing: 0.07em;
    text-transform: uppercase;
    margin: 0 0 14px;
}

/* ── Quick-link cards grid ── */
.ic-dash-links {
    display: grid;
    grid-template-columns: repeat(var(--cols, 4), 1fr);
    gap: 12px;
}

@media (max-width: 860px) {
    .ic-dash-links { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 480px) {
    .ic-dash-links { grid-template-columns: 1fr; }
    .ic-dash-hero  { padding: 22px 20px; }
    .ic-dash-hero-title { font-size: 22px; }
}

.ic-dash-link-card {
    display: flex;
    flex-direction: column;
    gap: 10px;
    background: var(--ic-sur);
    border: 1px solid var(--ic-bdr);
    border-radius: var(--ic-r);
    padding: 20px 18px;
    cursor: pointer;
    text-decoration: none;
    color: var(--ic-tx);
    box-shadow: var(--ic-sh-sm);
    transition: border-color .15s, transform .15s, box-shadow .15s;
}

.ic-dash-link-card:hover {
    border-color: var(--ic-g500);
    transform: translateY(-2px);
    box-shadow: var(--ic-sh-md);
    text-decoration: none;
    color: var(--ic-tx);
}

.ic-dash-link-icon {
    width: 40px;
    height: 40px;
    border-radius: 9px;
    background: var(--ic-g100);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--ic-g500);
    flex-shrink: 0;
}

.ic-dash-link-icon svg { width: 20px; height: 20px; }

.ic-dash-link-label {
    font-size: 13.5px;
    font-weight: 600;
    color: var(--ic-tx);
    line-height: 1.3;
}

.ic-dash-link-go {
    display: flex;
    align-items: center;
    gap: 2px;
    font-size: 11.5px;
    font-weight: 500;
    color: var(--ic-g500);
}

.ic-dash-link-go svg { flex-shrink: 0; }

/* =============================================================
 * 16. Login page [ic_login]
 * ============================================================= */
.ic-login-page {
    position: fixed;
    inset: 0;
    width: 100vw;
    height: 100vh;
    background: linear-gradient(145deg, oklch(0.18 0.08 148) 0%, oklch(0.25 0.09 150) 55%, oklch(0.20 0.06 160) 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    overflow: hidden auto;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    font-size: 14px;
    line-height: 1.5;
    z-index: 99999;
}

.ic-login-page * { box-sizing: border-box; }

/* ── Decorative circles ── */
.ic-lp-circle {
    position: absolute;
    border-radius: 50%;
    pointer-events: none;
}
.ic-lp-circle--a {
    width: 300px; height: 300px;
    left: -120px; bottom: -80px;
    background: oklch(1 0 0 / 0.06);
}
.ic-lp-circle--b {
    width: 200px; height: 200px;
    right: -100px; top: -100px;
    background: oklch(1 0 0 / 0.04);
}
.ic-lp-circle--c {
    width: 400px; height: 400px;
    left: 60%; bottom: 60%;
    background: oklch(1 0 0 / 0.03);
}

/* ── Card ── */
.ic-lp-card {
    background: #ffffff;
    border-radius: 20px;
    box-shadow: 0 24px 64px oklch(0 0 0 / .35);
    width: 100%;
    max-width: 420px;
    padding: 44px 40px;
    position: relative;
    z-index: 1;
}

/* ── Brand ── */
.ic-lp-brand {
    text-align: center;
    margin-bottom: 34px;
}
.ic-lp-logo {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 68px;
    height: 68px;
    border-radius: 50%;
    background: linear-gradient(135deg, oklch(0.22 0.09 148), oklch(0.35 0.13 148));
    margin-bottom: 14px;
    box-shadow: 0 4px 16px oklch(0.22 0.09 148 / .4);
    color: #ffffff;
}
.ic-lp-brand-name {
    font-family: 'Outfit', 'Inter', sans-serif;
    font-weight: 800;
    font-size: 22px;
    color: oklch(0.17 0.015 240);
    letter-spacing: -0.03em;
}
.ic-lp-brand-sub {
    font-size: 13px;
    color: oklch(0.50 0.01 240);
    margin-top: 3px;
}

/* ── Form ── */
.ic-lp-form {
    display: flex;
    flex-direction: column;
    gap: 14px;
}
.ic-lp-field {
    display: flex;
    flex-direction: column;
    gap: 5px;
}
.ic-lp-label {
    font-size: 12.5px;
    font-weight: 500;
    color: oklch(0.35 0.01 240);
}
.ic-lp-input {
    width: 100%;
    padding: 9px 13px;
    border: 1px solid oklch(0.88 0.008 240);
    border-radius: 8px;
    font-size: 13.5px;
    font-family: inherit;
    color: oklch(0.17 0.015 240);
    background: #ffffff;
    outline: none;
    transition: border-color .15s, box-shadow .15s;
    -webkit-appearance: none;
    appearance: none;
}
.ic-lp-input:focus {
    border-color: oklch(0.50 0.16 148);
    box-shadow: 0 0 0 3px oklch(0.50 0.16 148 / .12);
}
.ic-lp-input::placeholder { color: oklch(0.70 0.008 240); }

/* password wrapper */
.ic-lp-pwd-wrap {
    position: relative;
}
.ic-lp-pwd-wrap .ic-lp-input {
    padding-right: 42px;
}
.ic-lp-eye {
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
    background: none;
    border: none;
    cursor: pointer;
    padding: 4px;
    color: oklch(0.60 0.01 240);
    display: flex;
    align-items: center;
}
.ic-lp-eye:hover { color: oklch(0.35 0.01 240); }

/* error message */
.ic-lp-error {
    font-size: 12.5px;
    color: oklch(0.50 0.20 22);
    text-align: center;
    background: oklch(0.97 0.03 22);
    border: 1px solid oklch(0.90 0.06 22);
    border-radius: 7px;
    padding: 8px 12px;
    margin: 0;
}

/* submit button */
.ic-lp-submit {
    margin-top: 6px;
    width: 100%;
    padding: 11px 24px;
    background: oklch(0.50 0.16 148);
    color: #ffffff;
    border: none;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 600;
    font-family: inherit;
    cursor: pointer;
    transition: background .15s;
}
.ic-lp-submit:hover  { background: oklch(0.42 0.14 148); }
.ic-lp-submit:active { background: oklch(0.38 0.13 148); }

/* footer note */
.ic-lp-footer-note {
    font-size: 11px;
    color: oklch(0.68 0.008 240);
    text-align: center;
    margin-top: 18px;
    margin-bottom: 0;
}

@media (max-width: 480px) {
    .ic-lp-card { padding: 32px 24px; }
}

/* =============================================================
 * ic-nav — Menú lateral [ic_menu]
 * Look & feel basado en la sidebar del prototipo HTML.
 * Fondo: oklch(0.20 0.08 148) — verde oscuro Nova Buxos.
 * ============================================================= */

.ic-nav {
    display: block;
    background: oklch(0.20 0.08 148);
    padding: 12px 0;
    box-sizing: border-box;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    font-size: 13.5px;
    line-height: 1.4;
}

.ic-nav * { box-sizing: border-box; }

/* Lista raíz */
.ic-nav__list {
    list-style: none;
    margin: 0;
    padding: 0;
}

/* Etiqueta de grupo */
.ic-nav__group-label {
    padding: 16px 20px 5px;
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: oklch(0.55 0.05 148);
    user-select: none;
    list-style: none;
}

/* Separador entre secciones */
.ic-nav__separator {
    height: 1px;
    background: oklch(0.28 0.07 148);
    margin: 8px 16px;
    list-style: none;
}
.ic-nav__separator:last-child { display: none; }

/* Ítem */
.ic-nav__item { list-style: none; }

/* Enlace */
.ic-nav__link {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 9px 16px;
    margin: 2px 8px;
    border-radius: 7px;
    color: oklch(0.78 0.05 148);
    text-decoration: none;
    font-weight: 400;
    transition: background .14s, color .14s;
    cursor: pointer;
}

.ic-nav__link:hover {
    background: oklch(0.26 0.09 148);
    color: oklch(0.90 0.04 148);
    text-decoration: none;
}

/* Estado activo */
.ic-nav__link--active,
.ic-nav__link--active:hover {
    background: oklch(0.32 0.11 148);
    color: #ffffff;
    font-weight: 600;
    box-shadow: inset 3px 0 0 oklch(0.50 0.16 148);
}

/* Icono */
.ic-nav__icon {
    display: flex;
    align-items: center;
    flex-shrink: 0;
    color: inherit;
    opacity: 0.85;
}

.ic-nav__link--active .ic-nav__icon { opacity: 1; }

/* Texto del enlace */
.ic-nav__label {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* =============================================================
 * ic-logout-btn — Botón de cierre de sesión [ic_logout_link]
 * Coincide con el botón del prototipo HTML: borde gris, hover rojo.
 * ============================================================= */

.ic-logout-btn {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    background: none;
    border: 1px solid oklch(0.88 0.008 240);
    border-radius: 6px;
    padding: 6px 12px;
    cursor: pointer;
    font-size: 12px;
    font-family: inherit;
    font-weight: 500;
    color: oklch(0.50 0.01 240);
    text-decoration: none;
    line-height: 1.4;
    transition: background .15s, color .15s, border-color .15s;
    white-space: nowrap;
    box-sizing: border-box;
}

.ic-logout-btn:hover,
.ic-logout-btn:focus-visible {
    background: oklch(0.97 0.03 22);
    color: oklch(0.50 0.20 22);
    border-color: oklch(0.50 0.20 22);
    text-decoration: none;
    outline: none;
}

.ic-logout-btn__icon {
    flex-shrink: 0;
    display: block;
}
