/* =============================================================================
   3R SOFT · Sistema interno — UI VI v1.0 (2026-10-29)
   Mismo marco que la consola SaaS de 3R PROJECTS (App Store Connect / HIG):
   barra lateral fija y agrupada, títulos grandes, mucho aire, un ajuste por
   renglón y secciones con título + una línea que explica.
   Lo propio de 3R SOFT: azul VI #004698 para la interfaz, grises VI #6D6D6D /
   #939393, logo 3R SOFT, rótulos en versalitas espaciadas (como el VI) y la
   barra azul del VI. Verde, ámbar y rojo solo para el estado, siempre con texto.
   Uso: Bootstrap 5.3 + Font Awesome 6 + este archivo, y <body class="r3-ui">.
   Equivalencia con la consola: cs-* → r3-*, --cs-* → --r3-*, body.tr-console → body.r3-ui.
   ========================================================================== */
body.r3-ui{
  /* Marca (VI) */
  --r3-brand:#004698;--r3-black:#0C0C0C;--r3-grey:#6D6D6D;--r3-grey-2:#939393;
  /* Escala azul derivada del azul VI (600 = azul VI) */
  --r3-blue-50:#F2F6FB;--r3-blue-100:#E6EDF7;--r3-blue-200:#C4D4EA;--r3-blue-300:#8FAFD9;
  --r3-blue-400:#4F80C6;--r3-blue-500:#1D5FB8;--r3-blue-600:#004698;--r3-blue-700:#003B80;
  --r3-blue-800:#00316B;--r3-blue-900:#002450;
  /* Superficies y líneas */
  --r3-bg:#F4F5F7;--r3-surface:#FFFFFF;--r3-surface-2:#FAFBFC;--r3-fill:#EFF1F4;
  --r3-line:#E3E6EB;--r3-line-2:#CDD2DA;
  /* Texto */
  --r3-ink:#0C0C0C;--r3-ink-2:#3A3D42;--r3-muted:#6D6D6D;--r3-faint:#939393;
  /* Interfaz */
  --r3-primary:var(--r3-blue-600);--r3-primary-600:var(--r3-blue-700);--r3-primary-700:var(--r3-blue-800);
  --r3-primary-tint:var(--r3-blue-100);--r3-ring:rgba(0,70,152,.20);
  /* Estado (Bootstrap estándar, siempre con texto) */
  --r3-ok:#198754;--r3-ok-text:#0F5132;--r3-ok-bg:#D1E7DD;
  --r3-warn:#997404;--r3-warn-text:#664D03;--r3-warn-bg:#FFF3CD;
  --r3-danger:#DC3545;--r3-danger-text:#842029;--r3-danger-bg:#F8D7DA;
  --r3-info-text:#004698;--r3-info-bg:#E6EDF7;
  /* Gráficos: 8 colores en orden fijo (validados para daltonismo); 1 = azul gráfico */
  --r3-chart-1:#1D5FB8;--r3-chart-2:#EB6834;--r3-chart-3:#1BAF7A;--r3-chart-4:#EDA100;
  --r3-chart-5:#E87BA4;--r3-chart-6:#008300;--r3-chart-7:#6250D6;--r3-chart-8:#E34948;
  /* Medidas */
  --r3-r-sm:7px;--r3-r:10px;--r3-r-lg:14px;
  --r3-sidew:252px;
  /* Bootstrap */
  --bs-primary:#004698;--bs-primary-rgb:0,70,152;--bs-link-color:#004698;--bs-link-color-rgb:0,70,152;
  --bs-link-hover-color:#003B80;--bs-link-hover-color-rgb:0,59,128;--bs-border-color:var(--r3-line-2);
  --bs-body-color:var(--r3-ink);--bs-body-bg:var(--r3-bg);--bs-focus-ring-color:var(--r3-ring);
  margin:0;background:var(--r3-bg);color:var(--r3-ink);font-size:14px;line-height:1.47;
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Inter","Segoe UI",Roboto,"Helvetica Neue",Arial,"PingFang SC","Microsoft YaHei",sans-serif;
  -webkit-font-smoothing:antialiased;letter-spacing:-.005em;
}
body.r3-ui :focus-visible{outline:2px solid var(--r3-primary);outline-offset:2px}
body.r3-ui .num,body.r3-ui .tnum{font-variant-numeric:tabular-nums}
body.r3-ui .muted{color:var(--r3-muted)}
body.r3-ui a{color:var(--r3-primary)}
body.r3-ui a:hover{color:var(--r3-primary-600)}
body.r3-ui .text-primary{color:var(--r3-primary)!important}
/* Rótulo VI: versalitas azules y espaciadas (como «SPECIFICATION» en el manual) */
.r3-eyebrow{display:block;font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--r3-brand);line-height:1.3;margin-bottom:8px}

/* ---- Marco: barra lateral --------------------------------------------------- */
.r3-side{position:fixed;inset:0 auto 0 0;width:var(--r3-sidew);z-index:30;display:flex;flex-direction:column;
  background:var(--r3-surface-2);border-right:1px solid var(--r3-line)}
.r3-brand{display:flex;align-items:center;gap:11px;padding:24px 22px 18px;text-decoration:none;color:var(--r3-ink)}
.r3-brand:hover{color:var(--r3-ink)}
.r3-brand img{height:19px;width:auto;display:block}
.r3-brand span{font-size:12px;font-weight:600;color:var(--r3-muted);border-left:1px solid var(--r3-line-2);padding-left:11px;line-height:1.25;letter-spacing:.08em;text-transform:uppercase}
.r3-nav{flex:1 1 auto;overflow-y:auto;padding:4px 12px 16px}
.r3-nav .g{font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--r3-muted);padding:20px 10px 6px}
.r3-nav .g:first-child{padding-top:6px}
.r3-nav a{display:flex;align-items:center;gap:11px;padding:7px 10px;border-radius:var(--r3-r-sm);color:var(--r3-ink-2);text-decoration:none;font-size:14px;font-weight:500;margin-bottom:1px}
.r3-nav a i{width:18px;text-align:center;color:var(--r3-faint);font-size:14px}
.r3-nav a:hover{background:var(--r3-fill);color:var(--r3-ink)}
.r3-nav a.on{background:var(--r3-primary-tint);color:var(--r3-primary);font-weight:600}
.r3-nav a.on i{color:var(--r3-primary)}
.r3-nav a .bd{margin-left:auto;min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:var(--r3-danger);color:#fff;font-size:11px;font-weight:600;display:inline-grid;place-items:center}
.r3-lang{display:flex;align-items:center;gap:10px;margin:0;padding:10px 16px;border-top:1px solid var(--r3-line)}
.r3-lang>i{color:var(--r3-muted);font-size:15px;width:32px;text-align:center;flex:none}
.r3-lang .seg{display:flex;flex:1;min-width:0;background:var(--r3-fill);border-radius:var(--r3-r-sm);padding:2px}
.r3-lang .seg button{flex:1;min-width:0;border:0;background:none;color:var(--r3-ink-2);font-size:12px;line-height:1;padding:6px 2px;border-radius:5px;white-space:nowrap}
.r3-lang .seg button:hover{color:var(--r3-ink)}
.r3-lang .seg button.on{background:var(--r3-surface);color:var(--r3-ink);font-weight:600;box-shadow:0 1px 2px rgba(0,0,0,.1)}
.r3-me{display:flex;align-items:center;gap:10px;padding:14px 16px;border-top:1px solid var(--r3-line)}
.r3-me .who-link{display:flex;align-items:center;gap:10px;flex:1;min-width:0;color:inherit;text-decoration:none}
.r3-av{width:32px;height:32px;border-radius:50%;background:var(--r3-primary-tint);color:var(--r3-primary);display:grid;place-items:center;font-weight:600;font-size:12px;flex:none;letter-spacing:0}
.r3-av.is-lg{width:44px;height:44px;font-size:15px}
.r3-me .who{flex:1;min-width:0;line-height:1.25}
.r3-me .nm{font-size:13px;font-weight:600;color:var(--r3-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.r3-me .rl{font-size:12px;color:var(--r3-muted)}
.r3-me form{margin:0}
.r3-me button{border:0;background:none;color:var(--r3-muted);width:32px;height:32px;border-radius:var(--r3-r-sm);display:grid;place-items:center}
.r3-me button:hover{background:var(--r3-fill);color:var(--r3-ink)}

.r3-main{margin-left:var(--r3-sidew);min-height:100vh}
.r3-content{max-width:1120px;margin:0 auto;padding:36px 48px 72px}
.r3-top{display:none}
.r3-scrim{display:none}
/* Pie: el fabricante solo en letra chica (como «3R PROJECTS BY 3RSOFT») */
.r3-foot{display:flex;align-items:center;gap:12px;margin-top:56px;padding-top:16px;border-top:1px solid var(--r3-line);font-size:12px;color:var(--r3-muted)}
.r3-foot .sp{flex:1}

/* ---- Encabezado de página ------------------------------------------------- */
.r3-ph{display:flex;align-items:flex-end;justify-content:space-between;gap:16px 24px;flex-wrap:wrap;margin-bottom:28px}
.r3-ph .back{display:inline-flex;align-items:center;gap:6px;font-size:14px;text-decoration:none;margin-bottom:6px}
.r3-ph .back:hover{text-decoration:underline}
.r3-ph h1{font-size:30px;font-weight:700;letter-spacing:-.022em;line-height:1.15;margin:0;display:flex;align-items:center;gap:10px;flex-wrap:wrap;color:var(--r3-ink)}
.r3-ph h1 .n{font-size:17px;font-weight:500;color:var(--r3-faint);letter-spacing:0}
.r3-ph .sub{color:var(--r3-muted);font-size:15px;margin:6px 0 0;max-width:720px}
.r3-ph .act{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.r3-ph .act form{margin:0}
/* Formularios largos: el título y «Guardar» quedan a la vista al bajar. */
.r3-ph.is-sticky{position:sticky;top:0;z-index:15;margin:-36px -48px 28px;padding:28px 48px 16px;
  background:rgba(244,245,247,.86);-webkit-backdrop-filter:saturate(180%) blur(16px);backdrop-filter:saturate(180%) blur(16px);border-bottom:1px solid transparent}
.r3-ph.is-sticky.stuck{border-bottom-color:var(--r3-line)}

/* ---- Cifras --------------------------------------------------------------- */
.r3-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-bottom:32px}
.r3-kpi{background:var(--r3-surface);border:1px solid var(--r3-line);border-radius:var(--r3-r-lg);padding:16px 18px;min-width:0;color:inherit;text-decoration:none;display:block}
a.r3-kpi:hover{border-color:var(--r3-line-2);color:inherit}
.r3-kpi .k{font-size:13px;color:var(--r3-muted);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.r3-kpi .v{font-size:24px;font-weight:600;letter-spacing:-.02em;margin-top:4px;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--r3-ink)}
.r3-kpi .s{font-size:12px;color:var(--r3-muted);margin-top:2px}
.r3-kpi.is-ok .v{color:var(--r3-ok)}
.r3-kpi.is-info .v{color:var(--r3-primary)}
.r3-kpi.is-warn .v{color:var(--r3-warn)}
.r3-kpi.is-danger .v{color:var(--r3-danger)}
.r3-kpi .r3-meter{margin-top:10px}
.r3-kpi .d{font-size:12px;font-weight:500;margin-top:3px;color:var(--r3-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}
.r3-kpi .d.up{color:var(--r3-ok)}
.r3-kpi .d.down{color:var(--r3-danger)}
/* Gráficos (Chart.js): tarjetas en dos columnas, una en pantallas angostas */
.r3-charts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:40px}
.r3-charts>.r3-box.r3-chart{margin-top:0}
.r3-chart{padding:18px 20px 14px}
.r3-chart h3{font-size:15px;font-weight:600;letter-spacing:-.01em;margin:0}
.r3-chart p{color:var(--r3-muted);font-size:13px;margin:2px 0 0}
.r3-chart .cv{position:relative;height:240px;margin-top:12px}

/* ---- Secciones (título + una línea + caja blanca) ------------------------- */
.r3-sec{margin-bottom:40px;scroll-margin-top:130px}
.r3-sec>header{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:12px;flex-wrap:wrap}
.r3-sec>header h2{font-size:20px;font-weight:600;letter-spacing:-.015em;margin:0}
.r3-sec>header p{color:var(--r3-muted);margin:4px 0 0;max-width:680px;font-size:14px}
.r3-sec>header .act{display:flex;gap:8px;align-items:center}
.r3-box{background:var(--r3-surface);border:1px solid var(--r3-line);border-radius:var(--r3-r-lg);overflow:hidden}
.r3-box+.r3-box{margin-top:14px}
.r3-box>.foot{padding:14px 20px;border-top:1px solid var(--r3-line);background:var(--r3-surface-2);display:flex;gap:10px;align-items:center;justify-content:flex-end;flex-wrap:wrap}
.r3-box>.foot .sp{flex:1}
.r3-box>.note{padding:12px 20px;border-top:1px solid var(--r3-line);font-size:13px;color:var(--r3-muted);background:var(--r3-surface-2)}

/* Un ajuste por renglón: rótulo y explicación a la izquierda, el control a la derecha. */
.r3-row{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:8px 32px;align-items:center;padding:16px 20px;border-top:1px solid var(--r3-line)}
.r3-box>.r3-row:first-child,.r3-box>form>.r3-row:first-child{border-top:0}
.r3-row .lb{font-weight:500;color:var(--r3-ink)}
.r3-row .hint{font-size:13px;color:var(--r3-muted);margin-top:2px}
.r3-row .ctl{min-width:0;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.r3-row .ctl>.form-control,.r3-row .ctl>.form-select,.r3-row .ctl>.input-group{max-width:360px}
.r3-row .ctl.end{justify-content:flex-end}
.r3-row.is-top{align-items:start}
.r3-row.is-off .lb,.r3-row.is-off .ctl{opacity:.45}
/* Varios campos juntos (contacto, correo saliente): rótulo arriba, en rejilla. */
.r3-fields{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:18px 20px;padding:20px;border-top:1px solid var(--r3-line)}
.r3-box>.r3-fields:first-child,.r3-box>form>.r3-fields:first-child{border-top:0}
.r3-fields .wide{grid-column:1/-1}
.r3-fields .half{grid-column:span 2}

/* Datos (clave · valor) */
.r3-kv{margin:0}
.r3-kv>div{display:flex;justify-content:space-between;gap:16px;padding:12px 20px;border-top:1px solid var(--r3-line)}
.r3-kv>div:first-child{border-top:0}
.r3-kv dt{font-weight:400;color:var(--r3-muted)}
.r3-kv dd{margin:0;font-weight:500;text-align:right;min-width:0;overflow-wrap:anywhere}

/* Uso con tope */
.r3-meter{height:6px;border-radius:3px;background:var(--r3-fill);overflow:hidden}
.r3-meter>span{display:block;height:100%;background:var(--r3-primary);border-radius:3px}
.r3-meter.is-warn>span{background:#FFC107}
.r3-meter.is-danger>span{background:var(--r3-danger)}

/* ---- Barra de herramientas, segmentos, pestañas --------------------------- */
.r3-toolbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:12px 16px;border-bottom:1px solid var(--r3-line)}
.r3-toolbar .sp{flex:1}
.r3-search{position:relative;flex:0 1 320px;min-width:200px}
.r3-search i{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--r3-faint);font-size:13px;pointer-events:none}
.r3-search .form-control{padding-left:32px;background:var(--r3-fill);border-color:transparent}
.r3-search .form-control:focus{background:var(--r3-surface);border-color:var(--r3-primary)}
.r3-seg{display:inline-flex;gap:2px;padding:2px;border-radius:9px;background:var(--r3-fill);flex-wrap:wrap}
.r3-seg a,.r3-seg button,.r3-seg label{border:0;background:none;padding:5px 12px;border-radius:7px;font-size:13px;font-weight:500;color:var(--r3-ink-2);text-decoration:none;cursor:pointer;margin:0;white-space:nowrap}
.r3-seg a:hover,.r3-seg label:hover{color:var(--r3-ink)}
.r3-seg .on,.r3-seg label:has(input:checked){background:var(--r3-surface);color:var(--r3-ink);font-weight:600;box-shadow:0 1px 2px rgba(0,0,0,.08),0 0 0 .5px rgba(0,0,0,.04)}
.r3-seg input{position:absolute;opacity:0;pointer-events:none}
.r3-seg .c{color:var(--r3-faint);font-weight:500;margin-left:4px;font-variant-numeric:tabular-nums}
.r3-tabs{display:flex;gap:28px;border-bottom:1px solid var(--r3-line);margin:-8px 0 32px;overflow-x:auto}
.r3-tabs a{padding:10px 0 12px;text-decoration:none;color:var(--r3-muted);font-weight:500;font-size:15px;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap}
.r3-tabs a:hover{color:var(--r3-ink)}
.r3-tabs a.on{color:var(--r3-ink);font-weight:600;border-bottom-color:var(--r3-primary)}
.r3-tabs .c{font-size:12px;color:var(--r3-faint);margin-left:5px;font-weight:500}

/* Índice de una página larga (Ajustes): a la izquierda, se queda al bajar. */
.r3-split{display:grid;grid-template-columns:200px minmax(0,1fr);gap:40px;align-items:start}
.r3-index{position:sticky;top:120px;display:flex;flex-direction:column;gap:1px}
.r3-index a{padding:6px 10px;border-radius:var(--r3-r-sm);color:var(--r3-muted);text-decoration:none;font-size:14px;font-weight:500}
.r3-index a:hover{background:var(--r3-fill);color:var(--r3-ink)}
.r3-index a.on{color:var(--r3-ink);font-weight:600;background:var(--r3-fill)}

/* Opciones (permisos, avisos): interruptores en columnas. */
.r3-checks{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:0 24px;padding:2px 20px 0;margin-bottom:-1px}
.r3-checks .form-check{display:flex;align-items:center;gap:10px;padding:10px 0;margin:0;border-bottom:1px solid var(--r3-line);min-height:0}
.r3-checks .form-check .form-check-input{margin:0;float:none;flex:none}
.r3-checks .form-check-label{flex:1}

/* ---- Tablas --------------------------------------------------------------- */
body.r3-ui .table{--bs-table-bg:transparent;--bs-table-hover-bg:var(--r3-surface-2);--bs-table-color:var(--r3-ink);margin:0;font-size:14px;color:var(--r3-ink)}
body.r3-ui .table>:not(caption)>*>*{padding:13px 16px;border-bottom-color:var(--r3-line);vertical-align:middle}
body.r3-ui .table thead th{font-size:12px;font-weight:600;color:var(--r3-muted);background:var(--r3-surface-2);white-space:nowrap;padding-top:10px;padding-bottom:10px}
body.r3-ui .table tbody tr:last-child>*{border-bottom:0}
body.r3-ui .table .num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
body.r3-ui .table .sub{display:block;font-size:13px;color:var(--r3-muted);margin-top:1px}
body.r3-ui .table .nm{font-weight:600}
body.r3-ui .table td>a{text-decoration:none;font-weight:500}
body.r3-ui .table td>a:hover{text-decoration:underline}
body.r3-ui .table tr.row-link{cursor:pointer}
body.r3-ui .table tr.is-void td{color:var(--r3-faint)}
body.r3-ui .table tr.is-void td .nm,body.r3-ui .table tr.is-void td .amt{text-decoration:line-through}
body.r3-ui .table td.go{width:28px;color:var(--r3-faint);text-align:right;padding-left:0}
body.r3-ui .mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12.5px;letter-spacing:0}
.r3-empty{text-align:center;padding:48px 20px;color:var(--r3-muted)}
.r3-empty>i{font-size:28px;color:var(--r3-faint);display:block;margin:0 auto 12px}
.r3-empty h3{font-size:16px;font-weight:600;color:var(--r3-ink);margin:0 0 4px}
.r3-empty p{margin:0 auto;max-width:420px}
.r3-list{list-style:none;margin:0;padding:0}
.r3-list>li{display:flex;gap:16px;align-items:flex-start;justify-content:space-between;padding:14px 20px;border-top:1px solid var(--r3-line)}
.r3-list>li:first-child{border-top:0}
.r3-list>li .grow{flex:1;min-width:0}
.r3-list>li .meta{font-size:13px;color:var(--r3-muted);margin-top:2px}
.r3-list>li .ic{width:32px;height:32px;border-radius:var(--r3-r-sm);background:var(--r3-fill);color:var(--r3-ink-2);display:grid;place-items:center;flex:none;font-size:13px}
.r3-list>li .ic.is-ok{background:var(--r3-ok-bg);color:var(--r3-ok-text)}
.r3-list>li .ic.is-warn{background:var(--r3-warn-bg);color:var(--r3-warn-text)}
.r3-list>li .ic.is-danger{background:var(--r3-danger-bg);color:var(--r3-danger-text)}
.r3-list>li .ic.is-info{background:var(--r3-info-bg);color:var(--r3-info-text)}
.r3-list>li.is-void .grow{color:var(--r3-faint)}
.r3-list>li.is-void .grow b{text-decoration:line-through}
.r3-list form{margin:0}
/* Producto (etiqueta neutra, nunca de color de estado) */
.r3-chip{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:6px;border:1px solid var(--r3-line);background:var(--r3-surface-2);font-size:12px;font-weight:500;color:var(--r3-ink-2);white-space:nowrap;line-height:1.4}

/* ---- Estado (pastillas) --------------------------------------------------- */
body.r3-ui .badge{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:999px;font-size:12px;font-weight:600;line-height:1.35;letter-spacing:0;
  background:var(--r3-fill);color:var(--r3-ink-2);white-space:nowrap;vertical-align:middle}
body.r3-ui .badge.text-bg-success{background:var(--r3-ok-bg)!important;color:var(--r3-ok-text)!important}
body.r3-ui .badge.text-bg-warning{background:var(--r3-warn-bg)!important;color:var(--r3-warn-text)!important}
body.r3-ui .badge.text-bg-danger{background:var(--r3-danger-bg)!important;color:var(--r3-danger-text)!important}
body.r3-ui .badge.text-bg-primary,body.r3-ui .badge.text-bg-info{background:var(--r3-info-bg)!important;color:var(--r3-info-text)!important}
body.r3-ui .badge.text-bg-secondary,body.r3-ui .badge.text-bg-light,body.r3-ui .badge.text-bg-dark{background:var(--r3-fill)!important;color:var(--r3-ink-2)!important}
.r3-ph h1 .badge{font-size:13px;padding:4px 10px}

/* ---- Botones y formularios ------------------------------------------------ */
body.r3-ui .btn{border-radius:var(--r3-r-sm);font-weight:500;font-size:14px;padding:7px 15px;line-height:1.35;display:inline-flex;align-items:center;justify-content:center;gap:7px}
body.r3-ui .btn-sm{padding:5px 11px;font-size:13px}
body.r3-ui .btn-lg{padding:10px 20px;font-size:15px}
body.r3-ui .btn-primary{--bs-btn-bg:#004698;--bs-btn-border-color:#004698;--bs-btn-hover-bg:#003B80;--bs-btn-hover-border-color:#003B80;
  --bs-btn-active-bg:#00316B;--bs-btn-active-border-color:#00316B;--bs-btn-disabled-bg:#004698;--bs-btn-disabled-border-color:#004698;--bs-btn-focus-shadow-rgb:0,70,152}
body.r3-ui .btn-outline-primary{--bs-btn-color:#004698;--bs-btn-border-color:#004698;--bs-btn-hover-bg:#004698;--bs-btn-hover-border-color:#004698;--bs-btn-active-bg:#00316B;--bs-btn-active-border-color:#00316B}
body.r3-ui .btn-outline-secondary{background:var(--r3-surface);border-color:var(--r3-line-2);color:var(--r3-ink)}
body.r3-ui .btn-outline-secondary:hover{background:var(--r3-fill);border-color:var(--r3-line-2);color:var(--r3-ink)}
body.r3-ui .btn-outline-danger{background:var(--r3-surface)}
body.r3-ui .btn-link{text-decoration:none;padding-left:0;padding-right:0;color:var(--r3-primary)}
body.r3-ui .form-label{font-weight:500;font-size:13px;color:var(--r3-ink-2);margin-bottom:6px}
body.r3-ui .form-control,body.r3-ui .form-select{border-color:var(--r3-line-2);border-radius:var(--r3-r-sm);font-size:14px;min-height:36px;color:var(--r3-ink)}
body.r3-ui .form-control::placeholder{color:var(--r3-faint)}
body.r3-ui .form-control:focus,body.r3-ui .form-select:focus{border-color:var(--r3-primary);box-shadow:0 0 0 3px var(--r3-ring)}
body.r3-ui .form-control.is-invalid{border-color:var(--r3-danger)}
body.r3-ui .input-group-text{background:var(--r3-surface-2);border-color:var(--r3-line-2);color:var(--r3-muted);font-size:14px}
body.r3-ui .form-text{font-size:13px;color:var(--r3-muted)}
body.r3-ui .invalid-feedback{font-size:13px}
body.r3-ui .form-check-input:checked{background-color:#004698;border-color:#004698}
body.r3-ui .form-check-input:focus{border-color:var(--r3-blue-300);box-shadow:0 0 0 3px var(--r3-ring)}
body.r3-ui .form-switch .form-check-input{width:2.4em;height:1.35em;margin-top:0;cursor:pointer}
body.r3-ui .form-switch .form-check-input:focus:not(:checked){--bs-form-switch-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%238FAFD9'/%3e%3c/svg%3e")}
body.r3-ui .form-check-input{cursor:pointer}
body.r3-ui .alert{border-radius:var(--r3-r);font-size:14px;display:flex;gap:10px;align-items:flex-start}
body.r3-ui .alert>i{margin-top:3px}
body.r3-ui .alert-primary,body.r3-ui .alert-info{--bs-alert-bg:var(--r3-info-bg);--bs-alert-color:var(--r3-info-text);--bs-alert-border-color:var(--r3-blue-200)}
body.r3-ui textarea.form-control{min-height:96px}

/* ---- Barra VI (la del pie de cada página del manual) ---------------------- */
.r3-vibar{display:flex;gap:6px;align-items:flex-end;height:10px}
.r3-vibar>i{display:block;height:100%;background:var(--r3-brand)}
.r3-vibar>i:first-child{flex:1}
.r3-vibar>i:last-child{width:9%;min-width:36px}

/* ---- Entrada (login) ------------------------------------------------------ */
body.r3-ui.r3-auth{min-height:100vh;display:flex;flex-direction:column;position:relative;overflow:hidden}
.r3-auth .wm{position:fixed;right:-110px;bottom:-70px;width:620px;height:auto;pointer-events:none;z-index:0}
.r3-auth-wrap{flex:1;display:grid;place-items:center;padding:48px 16px;position:relative;z-index:1}
.r3-auth-card{width:100%;max-width:400px;background:var(--r3-surface);border:1px solid var(--r3-line);border-radius:18px;padding:36px 36px 30px;box-shadow:0 1px 2px rgba(12,12,12,.04),0 12px 40px rgba(12,12,12,.06)}
.r3-auth-card .logo{display:block;height:24px;width:auto;margin:0 0 30px}
.r3-auth-card h1{font-size:24px;font-weight:700;letter-spacing:-.02em;margin:0 0 6px}
.r3-auth-card .sub{color:var(--r3-muted);margin:0 0 24px}
.r3-auth-card .btn-primary{width:100%;min-height:42px;font-size:15px;font-weight:600}
.r3-auth-card .row-links{display:flex;justify-content:space-between;align-items:center;font-size:13px;margin:4px 0 20px}
.r3-auth-foot{position:relative;z-index:1;padding:0 32px 22px}
.r3-auth-foot .txt{display:flex;justify-content:space-between;gap:12px;font-size:12px;color:var(--r3-muted);margin-bottom:12px}

/* ---- Pantallas medianas y chicas ----------------------------------------- */
@media (max-width:1180px){
  .r3-content{padding:32px 32px 64px}
  .r3-ph.is-sticky{margin:-32px -32px 28px;padding:24px 32px 14px}
  .r3-split{grid-template-columns:1fr}
  .r3-index{display:none}
}
@media (max-width:960px){
  .r3-charts{grid-template-columns:minmax(0,1fr)}
  .r3-side{transform:translateX(-100%);transition:transform .22s ease;z-index:50;box-shadow:none}
  .r3-side.open{transform:none;box-shadow:0 10px 40px rgba(0,0,0,.18)}
  .r3-scrim.on{display:block;position:fixed;inset:0;background:rgba(0,0,0,.3);z-index:40}
  .r3-main{margin-left:0}
  .r3-top{display:flex;align-items:center;gap:12px;position:sticky;top:0;z-index:20;height:52px;padding:0 16px;
    background:rgba(250,251,252,.9);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid var(--r3-line)}
  .r3-top button{border:0;background:none;font-size:17px;color:var(--r3-ink);padding:6px;margin-left:-6px}
  .r3-top img{height:16px}
  .r3-top span{font-size:11px;font-weight:600;color:var(--r3-muted);letter-spacing:.08em;text-transform:uppercase;border-left:1px solid var(--r3-line-2);padding-left:10px}
  .r3-content{padding:24px 16px 56px}
  .r3-ph.is-sticky{position:static;margin:0 0 24px;padding:0;background:none;backdrop-filter:none;-webkit-backdrop-filter:none;border:0}
  .r3-ph h1{font-size:26px}
}
@media (max-width:640px){
  .r3-row{grid-template-columns:1fr;gap:10px}
  .r3-row .ctl.end{justify-content:flex-start}
  .r3-row.is-switch{grid-template-columns:1fr auto}
  .r3-row.is-switch .ctl.end{justify-content:flex-end}
  .r3-fields .half{grid-column:auto}
  .r3-kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .r3-kpi .v{font-size:21px}
  .r3-tabs{gap:20px}
  .r3-toolbar{padding:12px}
  .r3-search{flex:1 1 100%}
  .r3-toolbar .r3-seg{flex-wrap:nowrap;overflow-x:auto;max-width:100%;scrollbar-width:none}
  .r3-ph .act{width:100%}
  .r3-auth-card{padding:28px 22px 24px}
  .r3-auth .wm{width:420px;right:-120px;bottom:-60px}
  .r3-auth-foot{padding:0 16px 18px}
  .r3-hide-sm{display:none!important}
}
