/*
  Tema de International Medical Solutions (rediseño 2026).
  Se carga DESPUÉS de CoreUI, Syncfusion y monolibs: ajusta su apariencia sin tocar las vistas.
  Colores tomados del logo (azul marino del globo). Modo oscuro con [data-theme="dark"] en <html>.
*/

:root {
  --ims-brand: #1f2a80;
  --ims-brand-hover: #283596;
  --ims-brand-soft: #eef0fb;
  --ims-brand-ring: #dde1f6;
  --ims-link: #1f2a80;
  --ims-bg: #f5f6fa;
  --ims-surface: #ffffff;
  --ims-surface-2: #f9fafc;
  --ims-border: #e3e6ef;
  --ims-text: #161a2e;
  --ims-muted: #5d6480;
  --ims-sidebar: #1f2a80;
  --ims-sidebar-text: #c9cff0;
  --ims-sidebar-active: rgba(255, 255, 255, .12);
  --ims-ok: #0f7a4f; --ims-ok-bg: #e3f5ec;
  --ims-warn: #8a5a00; --ims-warn-bg: #fff3d6;
  --ims-bad: #b42335; --ims-bad-bg: #fde8eb;
  --ims-info: #1f5fbf; --ims-info-bg: #e5effd;
  --ims-shadow: 0 1px 2px rgba(20, 24, 60, .06), 0 4px 16px rgba(20, 24, 60, .05);
  --ims-radius: 12px;
  --ims-chart-1: #3b4cc4; /* procesados / serie principal (validado: contraste y daltonismo) */
  --ims-chart-2: #b8740c; /* pendientes */
  --ims-hover: rgba(31, 42, 128, .05);
  --ims-font: Inter, system-ui, -apple-system, "Segoe UI", sans-serif;
  --ims-font-brand: Ubuntu, Inter, system-ui, sans-serif;
  color-scheme: light;
}

:root[data-theme="dark"] {
  --ims-brand: #4352cc;
  --ims-brand-hover: #5262dc;
  --ims-brand-soft: #20264a;
  --ims-brand-ring: #2a3160;
  --ims-link: #a7b1ff;
  --ims-bg: #0f1222;
  --ims-surface: #171b30;
  --ims-surface-2: #1c2139;
  --ims-border: #2a3050;
  --ims-text: #e8eaf6;
  --ims-muted: #9aa1c2;
  --ims-sidebar: #12163a;
  --ims-sidebar-text: #b4bbe6;
  --ims-sidebar-active: rgba(142, 155, 255, .16);
  --ims-ok: #5fd3a0; --ims-ok-bg: #133227;
  --ims-warn: #f2c25c; --ims-warn-bg: #3a2d10;
  --ims-bad: #ff8a99; --ims-bad-bg: #3b1820;
  --ims-info: #8ab8ff; --ims-info-bg: #182a48;
  --ims-shadow: 0 1px 2px rgba(0, 0, 0, .3), 0 4px 16px rgba(0, 0, 0, .25);
  --ims-chart-1: #6a7af0;
  --ims-chart-2: #c08020;
  --ims-hover: rgba(255, 255, 255, .04);
  color-scheme: dark;
}

/* ---------- Base ---------- */
html, body.ims { background: var(--ims-bg); }
body.ims { font-family: var(--ims-font); font-size: 14px; color: var(--ims-text); line-height: 1.45; }
body.ims a { color: var(--ims-link); }
body.ims :focus-visible { outline: 2px solid var(--ims-link); outline-offset: 2px; }
.ims .text-muted { color: var(--ims-muted) !important; }
.ims .text-primary { color: var(--ims-link) !important; }
.ims .text-danger { color: var(--ims-bad) !important; }
.ims hr { border-color: var(--ims-border); }
.ims-icon { width: 18px; height: 18px; stroke: currentColor; fill: none; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; flex: none; }
.sr-only-focusable:focus { position: fixed; top: 8px; left: 8px; z-index: 2000; background: var(--ims-surface); padding: 8px 12px; border-radius: 8px; }

/* ---------- Armazón ---------- */
.ims-app { display: grid; grid-template-columns: 252px minmax(0, 1fr); min-height: 100vh; background: linear-gradient(to right, var(--ims-sidebar) 252px, transparent 252px); }
.ims-sidebar { background: var(--ims-sidebar); color: var(--ims-sidebar-text); padding: 16px 12px 24px; position: sticky; top: 0; height: 100vh; overflow-y: auto; z-index: 1030; }
.ims-brand { display: flex; align-items: center; gap: 10px; padding: 4px 8px 18px; color: #fff !important; text-decoration: none !important; }
.ims-brand svg { width: 34px; height: 34px; flex: none; }
.ims-brand span { font-family: var(--ims-font-brand); font-weight: 700; line-height: 1.05; font-size: 13.5px; }
.ims-nav { list-style: none; margin: 0; padding: 0; }
.ims-nav-title { text-transform: uppercase; letter-spacing: .08em; font-size: 10.5px; color: rgba(201, 207, 240, .6); margin: 18px 10px 6px; }
.ims-nav a { display: flex; gap: 10px; align-items: center; padding: 8px 10px; border-radius: 8px; color: var(--ims-sidebar-text) !important; text-decoration: none !important; }
.ims-nav a:hover { background: rgba(255, 255, 255, .07); color: #fff !important; }
.ims-nav a[aria-current="page"] { background: var(--ims-sidebar-active); color: #fff !important; font-weight: 600; }
.ims-main { min-width: 0; display: flex; flex-direction: column; }
.ims-topbar { height: 60px; display: flex; align-items: center; gap: 8px; padding: 0 24px; background: var(--ims-surface); border-bottom: 1px solid var(--ims-border); position: sticky; top: 0; z-index: 1020; }
.ims-topbar .ims-spacer { flex: 1; }
.ims-icon-btn { width: 40px; height: 40px; display: inline-grid; place-items: center; border-radius: 10px; border: 0; background: transparent; cursor: pointer; color: var(--ims-muted); }
.ims-icon-btn:hover { background: var(--ims-surface-2); color: var(--ims-text); }
.ims-menu-btn { display: none; }
.ims-user { display: flex; align-items: center; gap: 10px; padding: 4px 8px; border-radius: 10px; border: 0; background: transparent; color: var(--ims-text); cursor: pointer; text-align: left; }
.ims-user:hover { background: var(--ims-surface-2); }
.ims-avatar { width: 34px; height: 34px; border-radius: 50%; background: var(--ims-brand-ring); color: var(--ims-link); display: grid; place-items: center; font-weight: 700; font-size: 13px; flex: none; }
.ims-user b { display: block; font-weight: 600; }
.ims-user small { display: block; color: var(--ims-muted); font-size: 12px; }
.ims-content { padding: 24px; flex: 1; width: 100%; max-width: 1600px; }
.ims-footer { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px; padding: 16px 24px; color: var(--ims-muted); font-size: 12.5px; border-top: 1px solid var(--ims-border); }
.ims-footer a { color: var(--ims-muted) !important; }
.ims-backdrop { display: none; }

/* Título de página: las vistas usan <h4>Título<br><small class="text-muted">…</small></h4> */
.ims-content > .fade-in > h4:first-child,
.ims-content > .fade-in > h1:first-child { font-size: 24px; font-weight: 700; letter-spacing: -.01em; margin: 0 0 20px; color: var(--ims-text); }
.ims-content > .fade-in > h4:first-child small { display: block; font-size: 14px; font-weight: 400; margin-top: 4px; }

/* ---------- Componentes Bootstrap / CoreUI ---------- */
.ims .card { background: var(--ims-surface); border: 1px solid var(--ims-border); border-radius: var(--ims-radius); box-shadow: var(--ims-shadow); color: var(--ims-text); }
.ims .card-header, .ims .card-footer { background: transparent; border-color: var(--ims-border); }
.ims .btn { border-radius: 10px; font-weight: 500; }
.ims .btn-sm { border-radius: 8px; }
.ims .btn-primary { background: var(--ims-brand); border-color: var(--ims-brand); color: #fff; }
.ims .btn-primary:hover, .ims .btn-primary:focus { background: var(--ims-brand-hover); border-color: var(--ims-brand-hover); color: #fff; }
.ims .btn-light, .ims .btn-secondary { background: var(--ims-surface); border: 1px solid var(--ims-border); color: var(--ims-text); }
.ims .btn-light:hover, .ims .btn-secondary:hover { background: var(--ims-surface-2); color: var(--ims-text); border-color: var(--ims-border); }
.ims .btn-link { color: var(--ims-link); }
.ims .form-control, .ims .custom-select, .ims select.form-control { border-radius: 10px; border-color: var(--ims-border); background-color: var(--ims-surface); color: var(--ims-text); min-height: 38px; }
.ims .form-control:focus { border-color: var(--ims-link); box-shadow: 0 0 0 3px var(--ims-brand-ring); outline: none; }
.ims .form-control:disabled, .ims .form-control[readonly] { background-color: var(--ims-surface-2); }
.ims .input-group-text { background: var(--ims-surface-2); border-color: var(--ims-border); color: var(--ims-muted); }
.ims .input-group > .input-group-prepend > .input-group-text { border-radius: 10px 0 0 10px; }
.ims .input-group > .input-group-prepend + .form-control { border-radius: 0 10px 10px 0; }
.ims label { font-weight: 500; font-size: 13px; margin-bottom: 6px; }
.ims .modal-content { background: var(--ims-surface); border: 1px solid var(--ims-border); border-radius: 14px; color: var(--ims-text); box-shadow: 0 20px 60px rgba(10, 14, 40, .25); }
.ims .modal-header, .ims .modal-footer { border-color: var(--ims-border); }
.ims .modal-title { font-weight: 600; }
.ims .close { color: var(--ims-text); text-shadow: none; }
.ims .dropdown-menu { background: var(--ims-surface); border: 1px solid var(--ims-border); border-radius: 10px; box-shadow: var(--ims-shadow); padding: 6px; }
.ims .dropdown-item { border-radius: 6px; color: var(--ims-text); padding: 7px 10px; }
.ims .dropdown-item:hover, .ims .dropdown-item:focus { background: var(--ims-surface-2); color: var(--ims-text); }
.ims .table { color: var(--ims-text); }
.ims .table th, .ims .table td { border-color: var(--ims-border); }
.ims .table thead th { background: var(--ims-surface-2); color: var(--ims-muted); font-size: 12px; font-weight: 600; border-bottom-width: 1px; }
.ims .badge { border-radius: 999px; font-weight: 600; padding: .3em .7em; }
.ims .alert { border-radius: 10px; }
.ims .nav-tabs { border-color: var(--ims-border); }
.ims .nav-tabs .nav-link.active { background: var(--ims-surface); border-color: var(--ims-border) var(--ims-border) var(--ims-surface); color: var(--ims-text); }
.ims .select2-container--default .select2-selection--single,
.ims .select2-container--default .select2-selection--multiple { border-color: var(--ims-border); border-radius: 10px; min-height: 38px; background: var(--ims-surface); }
.ims .select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 36px; color: var(--ims-text); }
.ims .select2-container--default .select2-selection--single .select2-selection__arrow { height: 36px; }
.ims .select2-dropdown { background: var(--ims-surface); border-color: var(--ims-border); color: var(--ims-text); }

/* Formularios de claim y draft (paginas completas): titulos de seccion con separador */
.ims .card-body h3 { font-size: 17px; font-weight: 600; color: var(--ims-text); margin: 28px 0 14px; padding-top: 20px; border-top: 1px solid var(--ims-border); }
.ims .card-body h3:first-child, .ims .card-body > form > h3:first-of-type { margin-top: 0; padding-top: 0; border-top: 0; }
.ims .card-header { font-weight: 600; color: var(--ims-text); }

/* Campos de archivo (PDF de claims dentales, cheques): ancho suficiente para ver el nombre del archivo */
.ims input[type="file"] { min-width: min(340px, 100%); height: auto; padding: 5px 6px; font-size: 13px; }
.ims input[type="file"]::file-selector-button { border: 1px solid var(--ims-border); background: var(--ims-surface-2); color: var(--ims-text); border-radius: 8px; padding: 5px 10px; margin-right: 10px; cursor: pointer; font: inherit; }

/* Contenedor de grids (29 vistas usan .datatable-container) */
.ims .datatable-container { margin-top: 16px; background: var(--ims-surface); border: 1px solid var(--ims-border); border-radius: var(--ims-radius); box-shadow: var(--ims-shadow); overflow-x: auto; }

/* ---------- Syncfusion EJ2 (tema bootstrap4) ---------- */
.ims .e-grid { border: 0; font-family: var(--ims-font); background: var(--ims-surface); }
.ims .e-grid .e-gridheader { border-color: var(--ims-border); background: var(--ims-surface-2); }
.ims .e-grid .e-headercell, .ims .e-grid .e-detailheadercell { background: var(--ims-surface-2); }
.ims .e-grid .e-headercelldiv, .ims .e-grid .e-headertext { color: var(--ims-muted); font-size: 12px; font-weight: 600; }
.ims .e-grid .e-content, .ims .e-grid .e-gridcontent { background: var(--ims-surface); }
.ims .e-grid .e-rowcell { color: var(--ims-text); border-color: var(--ims-border); font-size: 14px; padding-top: 10px; padding-bottom: 10px; }
.ims .e-grid .e-row { background: var(--ims-surface); }
.ims .e-grid .e-altrow { background: var(--ims-surface); }
.ims .e-grid .e-row:hover .e-rowcell { background: var(--ims-surface-2) !important; color: var(--ims-text) !important; }
.ims .e-grid td.e-active { background: var(--ims-brand-soft); color: var(--ims-text); }
.ims .e-grid .e-emptyrow td { color: var(--ims-muted); text-align: center; padding: 40px 16px; }
.ims .e-grid .e-toolbar, .ims .e-grid .e-toolbar .e-toolbar-items { background: var(--ims-surface); border-color: var(--ims-border); }
.ims .e-grid .e-toolbar { border-bottom: 1px solid var(--ims-border); padding: 6px 8px; min-height: 52px; }
.ims .e-toolbar .e-tbar-btn { border-radius: 9px; background: var(--ims-surface); border: 1px solid var(--ims-border); color: var(--ims-text); }
.ims .e-toolbar .e-tbar-btn:hover { background: var(--ims-surface-2); }
.ims .e-toolbar .e-tbar-btn .e-icons, .ims .e-toolbar .e-tbar-btn .e-tbar-btn-text { color: var(--ims-text); }
.ims .e-grid .e-search, .ims .e-input-group, .ims .e-input-group.e-control-wrapper { border-radius: 9px; border-color: var(--ims-border); background: var(--ims-surface); }
.ims .e-input-group input.e-input, .ims .e-input-group.e-control-wrapper input.e-input { color: var(--ims-text); background: transparent; }
.ims .e-input-group .e-input-group-icon { background: transparent; color: var(--ims-muted); border-color: var(--ims-border); }
.ims .e-pager { background: var(--ims-surface); border-color: var(--ims-border); color: var(--ims-muted); }
.ims .e-pager .e-numericitem, .ims .e-pager .e-pagercontainer, .ims .e-pager .e-icons { background: var(--ims-surface); color: var(--ims-text); border-color: var(--ims-border); }
.ims .e-pager .e-currentitem, .ims .e-pager .e-currentitem:hover { background: var(--ims-brand) !important; color: #fff !important; border-radius: 8px; }
.ims .e-pager .e-numericitem { border-radius: 8px; }
.ims .e-pager .e-pagecountmsg, .ims .e-pager .e-parentmsgbar { color: var(--ims-muted); }

/* Tarjetas de totales de los reportes (monolibs las pinta con azul gris y fondo blanco fijo) */
.ims .report-card { background: var(--ims-surface); border: 1px solid var(--ims-border); border-radius: var(--ims-radius); box-shadow: var(--ims-shadow); padding: 12px 4px; }
.ims .report-inside-card { background: transparent; border-left: 4px solid var(--ims-brand); border-radius: 4px; }

/* ---------- Tablero ---------- */
.ims-page-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; flex-wrap: wrap; margin-bottom: 20px; }
.ims-page-head h1 { font-size: 24px; font-weight: 700; margin: 0; letter-spacing: -.01em; }
.ims-page-head p { margin: 4px 0 0; color: var(--ims-muted); }
.ims-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 16px; margin-bottom: 16px; }
.ims-kpi { padding: 16px 18px; margin-bottom: 0; }
.ims-show-dark { display: none; }
:root[data-theme="dark"] .ims-show-dark { display: block; }
:root[data-theme="dark"] .ims-show-light { display: none; }
.ims-kpi .lbl { color: var(--ims-muted); font-size: 13px; display: flex; gap: 8px; align-items: center; }
.ims-kpi .lbl .ims-icon { color: var(--ims-link); }
.ims-kpi .val { font-size: 28px; font-weight: 700; margin: 6px 0 2px; letter-spacing: -.02em; font-variant-numeric: tabular-nums; color: var(--ims-text); }
.ims-kpi .delta { font-size: 12.5px; color: var(--ims-muted); }
.ims-up { color: var(--ims-ok); font-weight: 600; }
.ims-down { color: var(--ims-bad); font-weight: 600; }
.ims-grid-2 { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 16px; margin-bottom: 16px; }
.ims-card-h { display: flex; justify-content: space-between; align-items: center; padding: 16px 18px 0; gap: 8px; }
.ims-card-h h2 { font-size: 15px; font-weight: 600; margin: 0; }
.ims-card-b { padding: 16px 18px 18px; }
.ims-chart-box { position: relative; }
.ims-chart { width: 100%; height: 240px; display: block; }
.ims-chart text { fill: var(--ims-muted); font-size: 11px; font-family: var(--ims-font); font-variant-numeric: tabular-nums; }
.ims-chart text.lbl { fill: var(--ims-text); font-size: 12.5px; }
.ims-chart text.val { fill: var(--ims-text); font-size: 12px; font-weight: 600; }
.ims-chart .grid { stroke: var(--ims-border); stroke-width: 1; }
.ims-chart .s1, .ims-legend .s1, .ims-tip .s1 { fill: var(--ims-chart-1); background: var(--ims-chart-1); }
.ims-chart .s2, .ims-legend .s2, .ims-tip .s2 { fill: var(--ims-chart-2); background: var(--ims-chart-2); }
.ims-legend { display: flex; gap: 14px; color: var(--ims-muted); font-size: 12.5px; flex-wrap: wrap; }
.ims-legend i, .ims-tip i { display: inline-block; width: 10px; height: 10px; border-radius: 3px; margin-right: 6px; vertical-align: -1px; }
.ims-tip { position: absolute; z-index: 5; pointer-events: none; background: var(--ims-surface); color: var(--ims-text); border: 1px solid var(--ims-border); border-radius: 8px; box-shadow: var(--ims-shadow); padding: 8px 10px; font-size: 12.5px; white-space: nowrap; }
.ims-tip .tot { border-top: 1px solid var(--ims-border); margin-top: 4px; padding-top: 4px; }
.ims-seg { display: inline-flex; border: 1px solid var(--ims-border); border-radius: 10px; padding: 2px; background: var(--ims-surface); }
.ims-seg a { padding: 5px 12px; border-radius: 8px; color: var(--ims-muted) !important; text-decoration: none !important; font-size: 13px; font-weight: 500; }
.ims-seg a[aria-current="true"] { background: var(--ims-brand-soft); color: var(--ims-link) !important; }
.ims-details summary { cursor: pointer; color: var(--ims-link); font-size: 12.5px; margin-top: 10px; }
.ims-details .ims-table { margin-top: 8px; font-size: 13px; }
.ims-grid-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-bottom: 16px; }
.ims-grid-3 > .card, .ims-grid-2 > .card { margin-bottom: 0; }
.ims-attn { list-style: none; margin: 0; padding: 0; }
.ims-attn li { display: flex; gap: 12px; padding: 12px 0; border-top: 1px solid var(--ims-border); align-items: flex-start; }
.ims-attn li:first-child { border-top: 0; padding-top: 4px; }
.ims-attn .ic { width: 34px; height: 34px; border-radius: 9px; display: grid; place-items: center; flex: none; }
.ims-attn a { color: var(--ims-text) !important; font-weight: 600; display: block; }
.ims-attn span { color: var(--ims-muted); font-size: 12.5px; }
.ims-tone-bad { background: var(--ims-bad-bg); color: var(--ims-bad); }
.ims-tone-warn { background: var(--ims-warn-bg); color: var(--ims-warn); }
.ims-tone-info { background: var(--ims-info-bg); color: var(--ims-info); }
.ims-tone-ok { background: var(--ims-ok-bg); color: var(--ims-ok); }
.ims-status { display: inline-flex; align-items: center; gap: 6px; padding: 2px 9px; border-radius: 999px; font-size: 12px; font-weight: 600; white-space: nowrap; }
.ims-status::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.ims-empty { text-align: center; padding: 40px 16px; color: var(--ims-muted); }
.ims-empty .ic { width: 52px; height: 52px; margin: 0 auto 10px; border-radius: 14px; background: var(--ims-brand-soft); color: var(--ims-link); display: grid; place-items: center; }
.ims-empty b { display: block; color: var(--ims-text); font-size: 15px; margin-bottom: 4px; }
.ims-table { width: 100%; border-collapse: collapse; }
.ims-table th, .ims-table td { text-align: left; padding: 10px 16px; border-bottom: 1px solid var(--ims-border); white-space: nowrap; }
.ims-table th { font-size: 12px; font-weight: 600; color: var(--ims-muted); background: var(--ims-surface-2); }
.ims-table td.num, .ims-table th.num { text-align: right; font-variant-numeric: tabular-nums; }
.ims-table tbody tr:hover { background: var(--ims-surface-2); }
.ims-table-wrap { overflow-x: auto; }
.ims-claimno { font-weight: 600; font-variant-numeric: tabular-nums; }

/* ---------- Login ---------- */
.ims-login { min-height: 100vh; display: grid; grid-template-columns: 1.1fr 1fr; }
.ims-login-art { background: linear-gradient(150deg, #1f2a80 0%, #2c3aa8 60%, #3b4cc4 100%); color: #fff; padding: 48px; display: flex; flex-direction: column; justify-content: space-between; position: relative; overflow: hidden; }
.ims-login-art h1 { font-family: var(--ims-font-brand); font-weight: 700; font-size: 34px; line-height: 1.15; margin: 0 0 12px; max-width: 440px; }
.ims-login-art p { color: #d5daf7; max-width: 420px; margin: 0; }
.ims-login-art ul { list-style: none; padding: 0; margin: 28px 0 0; display: grid; gap: 10px; color: #e3e6fb; }
.ims-login-art li { display: flex; gap: 10px; align-items: center; }
.ims-login-art small { color: #b9c0ee; }
.ims-login-art .globe { position: absolute; right: -120px; bottom: -120px; width: 460px; height: 460px; opacity: .14; color: #fff; }
.ims-login-panel { display: grid; place-items: center; padding: 32px 16px; background: var(--ims-surface); }
.ims-login-card { width: 100%; max-width: 380px; }
.ims-login-card .logo { width: 230px; max-width: 100%; display: block; margin-bottom: 28px; }
:root[data-theme="dark"] .ims-login-card .logo { background: #fff; border-radius: 10px; padding: 8px 12px; }
.ims-login-card h1 { font-size: 22px; font-weight: 700; margin: 0 0 4px; }
.ims-login-card .sub { color: var(--ims-muted); margin: 0 0 24px; }
.ims-login-card .form-control { height: 42px; }
.ims-login-card .btn-block { height: 44px; }
.ims-login-card .validation-summary-errors ul { list-style: none; margin: 0 0 16px; padding: 10px 12px; border-radius: 10px; background: var(--ims-bad-bg); color: var(--ims-bad); font-size: 13px; }
.ims-login-card .validation-summary-valid { display: none; }
.ims-alert { display: flex; gap: 10px; align-items: flex-start; padding: 10px 12px; border-radius: 10px; font-size: 13.5px; }
.ims-alert .ims-icon { margin-top: 1px; }
.ims-login-card .text-danger.small { display: block; margin-top: 4px; }
.ims-public .container { max-width: 1100px; padding-top: 32px; padding-bottom: 32px; }
.ims-public footer.row { margin: 0; padding: 0 15px; gap: 8px; color: var(--ims-muted); font-size: 13px; }
.ims-login-foot { margin-top: 28px; color: var(--ims-muted); font-size: 12px; display: flex; justify-content: space-between; gap: 8px; flex-wrap: wrap; }
.ims-login-foot a { color: var(--ims-muted) !important; }

/* ---------- Modo oscuro: componentes de terceros con colores fijos ---------- */
:root[data-theme="dark"] .ims .form-control::placeholder { color: var(--ims-muted); }
:root[data-theme="dark"] .ims .e-grid .e-rowcell, :root[data-theme="dark"] .ims .e-grid .e-headercell { border-color: var(--ims-border); }
:root[data-theme="dark"] .ims .e-dialog, :root[data-theme="dark"] .ims .e-popup { background: var(--ims-surface); color: var(--ims-text); }
:root[data-theme="dark"] .ims .datepicker { background: var(--ims-surface); color: var(--ims-text); }
:root[data-theme="dark"] .ims .modal-backdrop.show { opacity: .7; }

/* ---------- Responsivo ---------- */
@media (max-width: 1100px) {
  .ims-grid-2, .ims-grid-3 { grid-template-columns: 1fr; }
}
@media (max-width: 991.98px) {
  .ims-app { grid-template-columns: minmax(0, 1fr); background: none; }
  .ims-sidebar { position: fixed; left: 0; top: 0; width: 272px; transform: translateX(-100%); transition: transform .2s ease; }
  .ims-sidebar-open .ims-sidebar { transform: none; }
  .ims-sidebar-open .ims-backdrop { display: block; position: fixed; inset: 0; background: rgba(5, 8, 25, .45); z-index: 1025; }
  .ims-menu-btn { display: inline-grid; }
  .ims-topbar { padding: 0 12px; }
  .ims-user .ims-user-text { display: none; }
  .ims-content { padding: 16px; }
  .ims-login { grid-template-columns: 1fr; }
  .ims-login-art { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .ims-sidebar { transition: none; }
}

/* ---------- Impresión ---------- */
@media print {
  .ims-sidebar, .ims-topbar, .ims-footer, .NonPrintable { display: none !important; }
  .ims-app { display: block; }
  .ims-content { padding: 0; }
}

/* ---------- Crédito "Desarrollado por Monobits" (logo color en claro, blanco en oscuro) ---------- */
.hecho-por { display: inline-flex; align-items: center; gap: 8px; opacity: .85; text-decoration: none !important; }
.hecho-por:hover, .hecho-por:focus-visible { opacity: 1; }
.hecho-por img { display: block; height: 18px; width: auto; }
.hecho-por-pie img { height: 16px; }
.hecho-por .hecho-por-oscuro { display: none; }
:root[data-theme="dark"] .hecho-por .hecho-por-claro { display: none; }
:root[data-theme="dark"] .hecho-por .hecho-por-oscuro { display: block; }
