/* =====================================================================
   fiscly · pantallas de acceso
   Entrar, salir, registro y recuperación de contraseña
   (plantillas registration/*, contrasena/*, publico/entrar.html y
   comun/base_referido.html). Se carga al final, sobre Conquer.
   El resto de la aplicación usa plataforma.css.
   ===================================================================== */

@font-face { font-family: "Fiscly Text"; src: url("../fonts/HelveticaNeue-Roman.otf"); font-weight: 400; font-display: swap; }
@font-face { font-family: "Fiscly Text"; src: url("../fonts/HelveticaNeue-Medium.otf"); font-weight: 500; font-display: swap; }
@font-face { font-family: "Fiscly Text"; src: url("../fonts/HelveticaNeue-Medium.otf"); font-weight: 600; font-display: swap; }
@font-face { font-family: "Fiscly Text"; src: url("../fonts/HelveticaNeue-Medium.otf"); font-weight: 700; font-display: swap; }
/* Milligram solo cubre letras; números y símbolos caen en Neue Medium. */
@font-face { font-family: "Fiscly Display"; src: url("../fonts/HelveticaNeue-Medium.otf"); font-weight: 500; font-display: swap; }
@font-face { font-family: "Fiscly Display"; src: url("../fonts/Milligram-Macro-Medium.ttf"); font-weight: 500; font-display: swap;
  unicode-range: U+0020, U+002C, U+002E, U+0041-005A, U+0061-007A, U+00C0-00FF; }

:root {
  --tinta: #1A1A1A;
  --pestana: #FF411D;
  --pestana-oscura: #E0320F;
  --pestana-suave: #FFE7E1;
  --hueso: #F5EEDC;
  --hueso-claro: #FBF8F1;
  --blanco: #FFFFFF;
  --grafito: #4A4640;
  --arena: #E6DCC3;
  --arena-suave: #EFE8D6;
  --niebla: #B9B4AC;
  --carbon-1: #242321;
  --carbon-2: #33312E;
  --ceniza: #7A756D;

  /* Semánticos (derivados de la paleta, sin salir de su temperatura) */
  --exito: #2F7A4B;
  --exito-suave: #E4F1E7;
  --peligro: #C42A12;
  --peligro-suave: #FDE4DE;
  --aviso: #B7791F;
  --aviso-suave: #FBF0D9;
  --info: #4A4640;
  --info-suave: #EFEBE3;

  --font-display: "Fiscly Display", "Fiscly Text", Helvetica, Arial, sans-serif;
  --font-text: "Fiscly Text", "Helvetica Neue", Helvetica, Arial, sans-serif;
  --font-mono: "IBM Plex Mono", SFMono-Regular, Menlo, Consolas, monospace;

  --r-btn: 6px;
  --r-card: 8px;
  --r-block: 12px;
  --ease-out: cubic-bezier(.2, .7, .2, 1);
  --dur-hover: .25s;

  --alto-header: 56px;
}

/* ---------------------------------------------------------------------
   Base
   --------------------------------------------------------------------- */
html, body { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
body {
  font-family: var(--font-text) !important;
  font-weight: 400;
  font-size: 13px; /* igual que Conquer: no alterar anchos de tablas y formularios */
  color: var(--tinta);
  background-color: var(--blanco);
}
/* Marco de la aplicación (header + menú lateral oscuros) */
body.page-header-fixed, body.page-boxed { background-color: var(--tinta) !important; }
body, input, button, select, textarea,
.btn, .form-control, .dropdown-menu, .popover, .tooltip, .modal, .table,
h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
  font-family: var(--font-text);
}
h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 { color: var(--tinta); font-weight: 500; letter-spacing: -0.01em; }
strong, b, th, label { font-weight: 500; }
a { color: var(--tinta); transition: color var(--dur-hover); }
a:hover, a:focus { color: var(--pestana); }
::selection { background: var(--pestana); color: var(--blanco); }
hr { border-top-color: var(--arena); }
code, kbd, pre, samp { font-family: var(--font-mono); }
code { color: var(--pestana-oscura); background: var(--hueso-claro); border-radius: 4px; }
.text-primary { color: var(--pestana) !important; }
.text-success { color: var(--exito) !important; }
.text-danger { color: var(--peligro) !important; }
.text-warning { color: var(--aviso) !important; }
.text-info { color: var(--grafito) !important; }
.text-muted { color: var(--ceniza) !important; }
.bg-primary { background-color: var(--pestana) !important; color: var(--blanco); }
.bg-success { background-color: var(--exito-suave) !important; }
.bg-danger { background-color: var(--peligro-suave) !important; }
.bg-warning { background-color: var(--aviso-suave) !important; }
.bg-info { background-color: var(--info-suave) !important; }

/* Cifras tabulares para RFC, folios y montos */
.table td, .table th, .numbers, .stats-overview .display, .badge, .label, .fiscly-cifra {
  font-variant-numeric: tabular-nums;
}

/* Clases utilitarias propias */
.fiscly-display { font-family: var(--font-display); letter-spacing: .015em; line-height: 1; }
.fiscly-punto { color: var(--pestana); }

/* ---------------------------------------------------------------------
   Tarjetas (portlet / panel / well)
   --------------------------------------------------------------------- */
.portlet {
  background: var(--blanco);
  border: 1px solid var(--arena);
  border-radius: var(--r-card);
  box-shadow: none;
}
.portlet > .portlet-title {
  background-color: var(--hueso-claro);
  border-bottom: 1px solid var(--arena);
  border-radius: var(--r-card) var(--r-card) 0 0;
  padding: 7px 10px 7px 14px;
  min-height: 48px;
  height: auto;
  /* Flex en lugar de floats: centra verticalmente título, acciones y herramientas
     sin importar la altura de cada botón (btn-sm, btn-md, btn-group). */
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 10px;
  box-sizing: border-box;
}
.portlet > .portlet-title:before,
.portlet > .portlet-title:after { display: none; }
.portlet > .portlet-title > * { float: none !important; }
.portlet > .portlet-title > .caption {
  order: 0;
  margin: 0 auto 0 0;
  display: flex;
  align-items: center;
  color: var(--tinta);
  font-weight: 500;
  font-size: 15px;
  line-height: 20px;
}
.portlet > .portlet-title > .caption > i { float: none; color: var(--pestana); margin: 0 8px 0 0; font-size: 14px; }
/* Mismo orden visual que antes: acciones a la izquierda del ícono de contraer */
.portlet > .portlet-title > .actions,
.portlet > .portlet-title > .pagination { order: 1; }
.portlet > .portlet-title > .tools { order: 2; }
.portlet > .portlet-title > .actions,
.portlet > .portlet-title > .tools {
  display: flex; /* sin !important: respeta .hide()/.show() de jQuery */
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  margin: 0;
  line-height: 1;
}
.portlet > .portlet-title > .actions > .btn,
.portlet > .portlet-title > .actions > .btn-group,
.portlet > .portlet-title > .actions > .btn-group > .btn,
.portlet > .portlet-title > .actions > .btn.btn-sm,
.portlet > .portlet-title > .actions > .btn-group > .btn-sm,
.portlet > .portlet-title > .pagination.pagination-sm { margin: 0 !important; }
.portlet > .portlet-title > .actions > .btn,
.portlet > .portlet-title > .actions > .btn-group > .btn {
  height: 30px;
  padding: 0 11px;
  font-size: 13px;
  line-height: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
}
.portlet > .portlet-title > .actions > .btn > i,
.portlet > .portlet-title > .actions > .btn-group > .btn > i { margin: 0; font-size: 13px; }
.portlet > .portlet-title > .actions > .btn-group { display: inline-flex; }
.portlet > .portlet-title > .actions > .btn-group > .dropdown-toggle { padding: 0 9px; }
.portlet > .portlet-title > .actions input[type="checkbox"],
.portlet > .portlet-title > .actions .checker { margin: 0 4px 0 6px; vertical-align: middle; }
.portlet > .portlet-title > .tools > a { margin: 0 0 0 4px; vertical-align: middle; }
.portlet > .portlet-body {
  background: var(--blanco);
  border-radius: 0 0 var(--r-card) var(--r-card);
  padding: 16px 14px;
}
.portlet.box > .portlet-body { padding: 16px 14px; }

/* «portlet box blue» y «portlet grey»: se conservan las clases, cambia el color */
.portlet.box.blue,
.portlet.box.blue > .portlet-title,
.portlet.box.blue > .portlet-body { border-color: var(--arena); }
.portlet.box.blue > .portlet-title { background: var(--tinta); border-bottom-color: var(--tinta); }
.portlet.box.blue > .portlet-title > .caption,
.portlet.box.blue > .portlet-title > .caption > a,
.portlet.box.blue > .portlet-title > .actions,
.portlet.box.blue > .portlet-title > .tools { color: var(--blanco); }
/* Texto suelto en acciones (p. ej. «Seleccionar Todos») legible sobre fondo oscuro */
.portlet.box.blue > .portlet-title > .actions { font-size: 13px; font-weight: 500; }
/* Botones claros sobre la barra oscura: borde sutil en lugar de arena */
.portlet.box.blue > .portlet-title > .actions .btn-default,
.portlet.box.blue > .portlet-title > .actions .btn-warning { border-color: transparent; }
/* Deshabilitado sobre la barra oscura: gris carbón en lugar de naranja translúcido */
.portlet.box.blue > .portlet-title > .actions .btn[disabled],
.portlet.box.blue > .portlet-title > .actions .btn.disabled {
  background-color: var(--carbon-2) !important;
  border-color: var(--carbon-2) !important;
  color: var(--ceniza) !important;
  opacity: 1;
}
.portlet.box.blue > .portlet-title > .caption > i { color: var(--pestana); }
.portlet.box.blue > .portlet-title > .tools > a { filter: invert(1) brightness(2); opacity: .8; }
.portlet.box.blue > .portlet-title > .tools > a:hover { opacity: 1; }
.portlet.grey > .portlet-title { background: var(--hueso-claro); }

.portlet-tabs > .nav-tabs > li > a { color: var(--grafito); border-radius: var(--r-btn) var(--r-btn) 0 0; }
.portlet-tabs > .nav-tabs > li.active > a,
.portlet-tabs > .nav-tabs > .active > a { color: var(--tinta); border-top: 2px solid var(--pestana) !important; }

.panel { border-radius: var(--r-card); box-shadow: none; border-color: var(--arena); }
.panel-default { border-color: var(--arena); }
.panel-default > .panel-heading,
.panel > .panel-heading {
  background: var(--hueso-claro);
  background-image: none;
  border-color: var(--arena);
  color: var(--tinta);
  border-radius: var(--r-card) var(--r-card) 0 0;
  font-weight: 500;
}
.panel-title { font-weight: 500; font-size: 15px; }
.panel-primary { border-color: var(--tinta); }
.panel-primary > .panel-heading { background: var(--tinta); border-color: var(--tinta); color: var(--blanco); }
.panel-primary > .panel-heading .panel-title, .panel-primary > .panel-heading a { color: var(--blanco); }
.panel-success > .panel-heading { background: var(--exito-suave); color: var(--exito); border-color: #C9E2D0; }
.panel-danger > .panel-heading { background: var(--peligro-suave); color: var(--peligro); border-color: #F6C3B8; }
.panel-warning > .panel-heading { background: var(--aviso-suave); color: var(--aviso); border-color: #EFD9A8; }
.panel-info > .panel-heading { background: var(--info-suave); color: var(--grafito); border-color: var(--arena); }
.panel-footer { background: var(--hueso-claro); border-color: var(--arena); }
.well { background: var(--hueso-claro); border: 1px solid var(--arena); border-radius: var(--r-card); box-shadow: none; }
.note { border-radius: var(--r-card); }
.note.note-info { background: var(--info-suave); border-color: var(--arena); }
.note.note-success { background: var(--exito-suave); border-color: #C9E2D0; }
.note.note-danger { background: var(--peligro-suave); border-color: #F6C3B8; }
.note.note-warning { background: var(--aviso-suave); border-color: #EFD9A8; }

/* Secciones de formularios */
h3.form-section, .form-section {
  font-family: var(--font-text);
  font-weight: 500;
  color: var(--tinta);
  border-bottom: 1px solid var(--arena);
}
.form-actions,
.form .form-actions,
.portlet-body.form .form-actions {
  background-color: var(--hueso-claro) !important;
  border-top: 1px solid var(--arena) !important;
  border-radius: 0 0 var(--r-card) var(--r-card);
}

/* ---------------------------------------------------------------------
   Botones
   --------------------------------------------------------------------- */
.btn {
  font-family: var(--font-text);
  font-weight: 500;
  border-radius: var(--r-btn) !important;
  border-width: 1px;
  box-shadow: none !important;
  text-shadow: none !important;
  background-image: none !important;
  filter: none !important;
  transition: background-color var(--dur-hover), color var(--dur-hover), border-color var(--dur-hover);
}
.btn:focus, .btn:active:focus, .btn.active:focus { outline: 2px solid rgba(255, 65, 29, .35); outline-offset: 1px; }
.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { border-radius: 0 !important; }
.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) { border-top-right-radius: 0 !important; border-bottom-right-radius: 0 !important; }
.btn-group > .btn:last-child:not(:first-child),
.btn-group > .dropdown-toggle:not(:first-child) { border-top-left-radius: 0 !important; border-bottom-left-radius: 0 !important; }
.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn { border-radius: 0 !important; }
.btn-xs { border-radius: 4px !important; }
.btn-circle { border-radius: 25px !important; }

.btn-default {
  background-color: var(--blanco);
  border-color: var(--arena);
  color: var(--tinta);
}
.btn-default:hover, .btn-default:focus, .btn-default:active, .btn-default.active, .open .dropdown-toggle.btn-default {
  background-color: var(--hueso);
  border-color: var(--arena);
  color: var(--tinta);
}

.btn-primary, .btn.blue, .btn-info, .btn.purple {
  background-color: var(--pestana);
  border-color: var(--pestana);
  color: var(--blanco);
}
.btn-primary:hover, .btn-primary:focus, .btn-primary:active, .btn-primary.active, .open .dropdown-toggle.btn-primary,
.btn.blue:hover, .btn.blue:focus, .btn.blue:active,
.btn-info:hover, .btn-info:focus, .btn-info:active, .btn-info.active, .open .dropdown-toggle.btn-info,
.btn.purple:hover, .btn.purple:focus {
  background-color: var(--tinta);
  border-color: var(--tinta);
  color: var(--blanco);
}

.btn-success, .btn.green {
  background-color: var(--tinta);
  border-color: var(--tinta);
  color: var(--blanco);
}
.btn-success:hover, .btn-success:focus, .btn-success:active, .btn-success.active, .open .dropdown-toggle.btn-success,
.btn.green:hover, .btn.green:focus {
  background-color: var(--pestana);
  border-color: var(--pestana);
  color: var(--blanco);
}

.btn-danger, .btn.red {
  background-color: var(--blanco);
  border-color: #F1B5A8;
  color: var(--peligro);
}
.btn-danger:hover, .btn-danger:focus, .btn-danger:active, .btn-danger.active, .open .dropdown-toggle.btn-danger,
.btn.red:hover, .btn.red:focus {
  background-color: var(--peligro);
  border-color: var(--peligro);
  color: var(--blanco);
}

.btn-warning, .btn.yellow {
  background-color: var(--hueso);
  border-color: var(--arena);
  color: var(--tinta);
}
.btn-warning:hover, .btn-warning:focus, .btn-warning:active, .btn-warning.active, .open .dropdown-toggle.btn-warning,
.btn.yellow:hover, .btn.yellow:focus {
  background-color: var(--arena);
  border-color: var(--arena);
  color: var(--tinta);
}
.btn.dark, .btn.default { background-color: var(--blanco); border-color: var(--arena); color: var(--tinta); }
/* Clases que no existen en Bootstrap 3 (se veían como botones sin estilo) */
.btn-secondary, .btn-neutral { background-color: var(--blanco); border-color: var(--arena); color: var(--tinta); }
.btn-secondary:hover, .btn-secondary:focus, .btn-neutral:hover, .btn-neutral:focus { background-color: var(--hueso); border-color: var(--arena); color: var(--tinta); }
.btn-inverse { background-color: var(--tinta); border-color: var(--tinta); color: var(--blanco); }
.btn-inverse:hover, .btn-inverse:focus { background-color: var(--pestana); border-color: var(--pestana); color: var(--blanco); }
.btn.dark:hover, .btn.default:hover { background-color: var(--hueso); color: var(--tinta); }
.btn-link { color: var(--tinta); text-decoration: underline; text-decoration-color: var(--pestana); text-underline-offset: 3px; }
.btn-link:hover, .btn-link:focus { color: var(--pestana); }

.btn[disabled], .btn.disabled, fieldset[disabled] .btn { opacity: .5; }
.btn-primary[disabled], .btn-primary.disabled, .btn-info[disabled], .btn-info.disabled,
.btn-primary[disabled]:hover, .btn-info[disabled]:hover { background-color: var(--pestana); border-color: var(--pestana); }
.btn-success[disabled], .btn-success.disabled, .btn-success[disabled]:hover { background-color: var(--tinta); border-color: var(--tinta); }
/* bootstrap-tour-comun.css (solo con el tutorial activo) fija «#agregar_concepto { background-color: green }» */
.btn#agregar_concepto { background-color: var(--tinta); border-color: var(--tinta); color: var(--blanco); }
.btn#agregar_concepto:hover, .btn#agregar_concepto:focus { background-color: var(--pestana); border-color: var(--pestana); color: var(--blanco); }

/* ---------------------------------------------------------------------
   Formularios
   --------------------------------------------------------------------- */
.form-control,
input[type="text"], input[type="email"], input[type="password"], input[type="number"],
input[type="search"], input[type="tel"], input[type="url"], input[type="date"],
select, textarea {
  border-color: var(--arena);
  border-radius: var(--r-btn);
  color: var(--tinta);
  box-shadow: none;
}
.form-control {
  height: 36px;
  padding: 7px 12px;
  background-color: var(--blanco);
  transition: border-color var(--dur-hover), box-shadow var(--dur-hover);
}
textarea.form-control, select[multiple].form-control, select[size].form-control { height: auto; }
.input-sm, .form-group-sm .form-control { height: 30px; padding: 5px 10px; }
.input-lg, .form-group-lg .form-control { height: 46px; }
.form-control:focus,
input[type="text"]:focus, input[type="email"]:focus, input[type="password"]:focus, input[type="number"]:focus,
select:focus, textarea:focus {
  border-color: var(--tinta) !important;
  box-shadow: 0 0 0 3px rgba(255, 65, 29, .14) !important;
  outline: none;
}
.form-control::-webkit-input-placeholder { color: var(--ceniza); }
.form-control::-moz-placeholder { color: var(--ceniza); opacity: 1; }
.form-control:-ms-input-placeholder { color: var(--ceniza); }
.form-control[disabled], .form-control[readonly], fieldset[disabled] .form-control {
  background-color: var(--hueso-claro);
  color: var(--grafito);
}
.control-label, label { color: var(--tinta); }
.form-group label, .control-label { font-size: 13px; }
.help-block { color: var(--ceniza); font-size: 12.5px; }
.input-group-addon {
  background-color: var(--hueso-claro);
  border-color: var(--arena);
  color: var(--grafito);
  border-radius: var(--r-btn);
}
.input-group .form-control:first-child, .input-group-addon:first-child, .input-group-btn:first-child > .btn { border-top-right-radius: 0 !important; border-bottom-right-radius: 0 !important; }
.input-group .form-control:last-child, .input-group-addon:last-child, .input-group-btn:last-child > .btn { border-top-left-radius: 0 !important; border-bottom-left-radius: 0 !important; }
.input-group .form-control:not(:first-child):not(:last-child), .input-group-addon:not(:first-child):not(:last-child) { border-radius: 0 !important; }
.has-error .form-control { border-color: var(--pestana) !important; }
.has-error .help-block, .has-error .control-label, .has-error .checkbox, .has-error .radio { color: var(--peligro); }
.has-success .form-control { border-color: var(--exito); }
.has-warning .form-control { border-color: var(--aviso); }
.errorlist, ul.errorlist { color: var(--peligro); padding-left: 16px; font-size: 12.5px; }

/* uniform.js (checkbox / radio) */
div.checker span.checked, div.radio span.checked { color: var(--pestana); }

/* Paginación */
.pagination > li > a, .pagination > li > span {
  color: var(--tinta);
  border-color: var(--arena);
  background: var(--blanco);
}
.pagination > li:first-child > a, .pagination > li:first-child > span { border-radius: var(--r-btn) 0 0 var(--r-btn); }
.pagination > li:last-child > a, .pagination > li:last-child > span { border-radius: 0 var(--r-btn) var(--r-btn) 0; }
.pagination > li > a:hover, .pagination > li > span:hover, .pagination > li > a:focus { background: var(--hueso); color: var(--tinta); border-color: var(--arena); }
.pagination > .active > a, .pagination > .active > span,
.pagination > .active > a:hover, .pagination > .active > span:hover,
.pagination > .active > a:focus, .pagination > .active > span:focus {
  background-color: var(--tinta);
  border-color: var(--tinta);
  color: var(--blanco);
}
.pagination > .disabled > a, .pagination > .disabled > span { color: var(--niebla); background: var(--blanco); border-color: var(--arena); }

/* ---------------------------------------------------------------------
   Tablas
   --------------------------------------------------------------------- */
.table { color: var(--tinta); }
.table > thead > tr > th,
table.dataTable thead th,
table.dataTable thead td {
  background-color: var(--hueso-claro);
  color: var(--grafito);
  font-weight: 500;
  font-size: 12.5px;
  border-bottom: 1px solid var(--arena) !important;
  vertical-align: middle;
}
.table > thead > tr > th, .table > tbody > tr > th, .table > tfoot > tr > th,
.table > thead > tr > td, .table > tbody > tr > td, .table > tfoot > tr > td { border-color: var(--arena-suave); }
.table-bordered,
.table-bordered > thead > tr > th, .table-bordered > tbody > tr > th, .table-bordered > tfoot > tr > th,
.table-bordered > thead > tr > td, .table-bordered > tbody > tr > td, .table-bordered > tfoot > tr > td { border-color: var(--arena) !important; }
.table-striped > tbody > tr:nth-child(odd) > td,
.table-striped > tbody > tr:nth-child(odd) > th,
.table-striped > tbody > tr:nth-of-type(odd) { background-color: #FDFBF6; }
.table-hover > tbody > tr:hover > td,
.table-hover > tbody > tr:hover > th,
.table-hover > tbody > tr:hover { background-color: var(--hueso) !important; }
.table > thead > tr > td.active, .table > tbody > tr > td.active, .table > tbody > tr.active > td { background-color: var(--hueso); }
.table > tbody > tr.success > td, .table > tbody > tr > td.success { background-color: var(--exito-suave); }
.table > tbody > tr.danger > td, .table > tbody > tr > td.danger { background-color: var(--peligro-suave); }
.table > tbody > tr.warning > td, .table > tbody > tr > td.warning { background-color: var(--aviso-suave); }
.table > tbody > tr.info > td, .table > tbody > tr > td.info { background-color: var(--info-suave); }
.table-responsive { border-color: var(--arena); }

/* DataTables */
.dataTables_wrapper .dataTables_filter input,
.dataTables_wrapper .dataTables_length select { border: 1px solid var(--arena); border-radius: var(--r-btn); padding: 4px 8px; }
.dataTables_wrapper .dataTables_paginate .paginate_button.current,
.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover {
  background: var(--tinta) !important;
  border-color: var(--tinta) !important;
  color: var(--blanco) !important;
  border-radius: var(--r-btn);
}
.dataTables_wrapper .dataTables_paginate .paginate_button:hover {
  background: var(--hueso) !important;
  border-color: var(--arena) !important;
  color: var(--tinta) !important;
  border-radius: var(--r-btn);
}
.dataTables_processing { border-radius: var(--r-card); border: 1px solid var(--arena) !important; background: var(--blanco) !important; color: var(--tinta); }

/* ---------------------------------------------------------------------
   Etiquetas, insignias, alertas
   --------------------------------------------------------------------- */
.label {
  font-weight: 500;
  border-radius: 4px;
  padding: .25em .6em .3em;
  text-shadow: none;
  letter-spacing: .01em;
}
/* !important: Conquer (style-conquer.css) fija estos fondos con !important
   (p. ej. .badge-primary/.label-primary en azul #428bca) */
.label-default, .badge-default { background-color: var(--info-suave) !important; color: var(--grafito); }
.label-primary, .badge-primary { background-color: var(--tinta) !important; color: var(--blanco); }
.label-success, .badge-success { background-color: var(--exito-suave) !important; color: var(--exito); }
.label-info, .badge-info { background-color: var(--hueso) !important; color: var(--tinta); }
.label-warning, .badge-warning { background-color: var(--aviso-suave) !important; color: var(--aviso); }
.label-danger, .badge-danger { background-color: var(--peligro-suave) !important; color: var(--peligro); }
.badge {
  font-weight: 500;
  text-shadow: none;
  border-radius: 10px !important;
  background-color: var(--grafito);
  color: var(--blanco);
  min-width: 20px;
  height: 20px;
  padding: 0 6px;
  line-height: 20px;
  font-size: 11px !important;
}
.badge-danger { background-color: var(--pestana) !important; color: var(--blanco); }

/* Contadores del menú lateral (Borradores, Autoguardados…): píldora naranja
   sobre el fondo oscuro; en la opción activa se invierte */
.page-sidebar-menu li > a > .badge,
.page-sidebar-menu li > a > .badge-primary {
  float: right;
  margin: 0 2px 0 8px;
  background-color: var(--pestana) !important;
  color: var(--blanco);
}
.page-sidebar-menu li.active > a > .badge,
.page-sidebar-menu > li.active > a > .badge-primary { background-color: var(--blanco) !important; color: var(--pestana); }
.page-sidebar-menu li > ul.sub-menu > li.active > a > .badge { background-color: var(--pestana) !important; color: var(--blanco); }

.alert {
  border-radius: var(--r-card);
  border-width: 1px;
  box-shadow: none;
  text-shadow: none;
  background-image: none;
  color: var(--tinta);
}
.alert-success { background-color: var(--exito-suave); border-color: #C9E2D0; }
.alert-success, .alert-success a, .alert-success .alert-link { color: #1F5B36; }
.alert-info { background-color: var(--hueso-claro); border-color: var(--arena); }
.alert-info, .alert-info a, .alert-info .alert-link { color: var(--tinta); }
.alert-warning { background-color: var(--aviso-suave); border-color: #EFD9A8; }
.alert-warning, .alert-warning a, .alert-warning .alert-link { color: #7A5112; }
.alert-danger, .alert-error { background-color: var(--peligro-suave); border-color: #F6C3B8; }
.alert-danger, .alert-danger a, .alert-danger .alert-link,
.alert-error, .alert-error a { color: #8E1F0D; }
.alert a, .alert .alert-link { text-decoration: underline; text-underline-offset: 3px; }
.alert .close { opacity: .5; text-shadow: none; }

/* ---------------------------------------------------------------------
   Pestañas y navegación
   --------------------------------------------------------------------- */
.nav-tabs { border-bottom-color: var(--arena); }
.nav-tabs > li > a {
  color: var(--grafito);
  border-radius: var(--r-btn) var(--r-btn) 0 0;
  font-weight: 500;
}
.nav-tabs > li > a:hover { background-color: var(--hueso-claro); border-color: transparent; color: var(--tinta); }
.nav-tabs > li.active > a,
.nav-tabs > li.active > a:hover,
.nav-tabs > li.active > a:focus {
  color: var(--tinta);
  background-color: var(--blanco);
  border-color: var(--arena) var(--arena) transparent;
  box-shadow: inset 0 2px 0 var(--pestana);
}
.tabbable-custom > .nav-tabs > li.active { border-top-color: var(--pestana) !important; }
.tabbable-custom > .tab-content { border-color: var(--arena); border-radius: 0 0 var(--r-card) var(--r-card); }
.nav-pills > li > a { border-radius: var(--r-btn); color: var(--grafito); }
.nav-pills > li.active > a, .nav-pills > li.active > a:hover, .nav-pills > li.active > a:focus { background-color: var(--pestana); color: var(--blanco); }
.nav > li > a:hover, .nav > li > a:focus { background-color: var(--hueso-claro); }
.list-group-item { border-color: var(--arena); }
.list-group-item.active, .list-group-item.active:hover, .list-group-item.active:focus { background-color: var(--tinta); border-color: var(--tinta); }

/* ---------------------------------------------------------------------
   Modales, popovers, tooltips
   --------------------------------------------------------------------- */
/* Modales: tarjeta blanca con mosaico de ícono (fiscly/js/modales.js), «X» cuadrada
   y fondo tinta desenfocado. Conquer fija el fondo (#333) y la «X» (PNG) con !important. */
.modal-backdrop,
.modal-backdrop.fade.in { background-color: var(--tinta) !important; }
.modal-backdrop.fade.in, .modal-backdrop.in { opacity: .5 !important; -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px); }

.modal-dialog { margin: 72px auto 32px; }
.modal.fade .modal-dialog {
  -webkit-transform: translateY(18px) scale(.98);
          transform: translateY(18px) scale(.98);
  transition: transform .35s var(--ease-out);
}
.modal.in .modal-dialog { -webkit-transform: none; transform: none; }
@media (prefers-reduced-motion: reduce) { .modal.fade .modal-dialog { transition: none; } }

.modal-content {
  border: 0;
  border-radius: 16px !important;
  box-shadow: 0 32px 90px rgba(26, 26, 26, .30);
}

.modal-header {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 18px 20px 16px 22px;
  border-bottom: 1px solid var(--arena-suave);
  border-radius: 16px 16px 0 0;
}
.modal-header:before, .modal-header:after { display: none; }
.fiscly-modal-icono {
  order: 1;
  flex: none;
  width: 42px;
  height: 38px;
  border-radius: var(--r-tile, 10px);
  background: var(--hueso);
  display: flex;
  align-items: center;
  justify-content: center;
}
.fiscly-modal-icono img { width: 22px; height: 22px; display: block; object-fit: contain; }
.modal-header .modal-title,
.modal-header h4,
.modal-header h3 {
  order: 2;
  flex: 1;
  min-width: 0;
  margin: 0;
  font-size: 18px;
  font-weight: 500;
  line-height: 1.25;
  letter-spacing: -0.01em;
  color: var(--tinta);
}
/* «X» cuadrada (el README de marca pide cerrar con X) */
.modal-header .close {
  order: 3;
  flex: none;
  position: relative;
  float: none;
  width: 34px;
  height: 32px;
  margin: 0 !important;
  padding: 0;
  border: 1px solid var(--arena);
  border-radius: var(--r-card);
  background: var(--hueso-claro) none !important;
  opacity: 1;
  text-indent: 0;
  font-size: 0;
  color: transparent;
  text-shadow: none;
  transition: background-color var(--dur-hover), border-color var(--dur-hover);
}
.modal-header .close > * { display: none; }
.modal-header .close:before,
.modal-header .close:after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 14px;
  height: 1.6px;
  margin: -0.8px 0 0 -7px;
  border-radius: 1px;
  background: var(--tinta);
  transform: rotate(45deg);
}
.modal-header .close:after { transform: rotate(-45deg); }
.modal-header .close:hover,
.modal-header .close:focus { background-color: var(--tinta) !important; border-color: var(--tinta); opacity: 1; outline: none; }
.modal-header .close:hover:before, .modal-header .close:hover:after,
.modal-header .close:focus:before, .modal-header .close:focus:after { background: var(--blanco); }

.modal-body { padding: 22px; color: var(--tinta); line-height: 1.55; }
.modal-body > p:last-child { margin-bottom: 0; }

.modal-footer {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: center;
  gap: 8px;
  padding: 14px 22px 18px;
  background: var(--blanco);
  border-top: 1px solid var(--arena-suave);
  border-radius: 0 0 16px 16px;
}
.modal-footer:before, .modal-footer:after { display: none; }
.modal-footer .btn + .btn { margin-left: 0; }
.modal-footer > .pull-left { margin-right: auto; }
.modal-footer .btn { min-height: 38px; padding-left: 16px; padding-right: 16px; }

/* Avisos dentro de los modales: ícono de marca a la izquierda */
.modal .note,
.modal .alert { position: relative; padding-left: 54px; border-left-width: 1px; border-radius: var(--r-card); }
.modal .note:before,
.modal .alert:before {
  content: "";
  position: absolute;
  left: 14px;
  top: 14px;
  width: 26px;
  height: 26px;
  border-radius: 7px;
  background: var(--blanco) url("../iconos/v2_pregunta.svg") center / 18px 18px no-repeat;
}
.modal .note.note-danger:before, .modal .alert-danger:before, .modal .alert-error:before { background-image: url("../iconos/estado_04_error.svg"); }
.modal .note.note-warning:before, .modal .alert-warning:before { background-image: url("../iconos/v2_s_alerta.svg"); }
.modal .note.note-success:before, .modal .alert-success:before { background-image: url("../iconos/v2_s_timbrada.svg"); }
.modal .note h4, .modal .note .block { margin: 2px 0 8px; font-size: 15px; font-weight: 500; color: var(--tinta); }
.modal .note.note-warning { background: var(--aviso-suave); border-color: #EFD9A8; }
.modal .note.note-danger { background: var(--peligro-suave); border-color: #F6C3B8; }

@media (max-width: 767px) {
  .modal-dialog { margin: 72px 12px 24px; }
  .modal-header { padding: 14px 14px 12px 16px; }
  .modal-body { padding: 16px; }
  .modal-footer { padding: 12px 16px 16px; }
}

.popover { border-color: var(--arena); border-radius: var(--r-card); box-shadow: 0 12px 32px rgba(26, 26, 26, .12); }
.popover-title { background: var(--hueso-claro); border-bottom-color: var(--arena); font-weight: 500; }
.tooltip-inner { background-color: var(--tinta); border-radius: var(--r-btn); font-size: 12.5px; padding: 6px 10px; }
.tooltip.top .tooltip-arrow { border-top-color: var(--tinta); }
.tooltip.bottom .tooltip-arrow { border-bottom-color: var(--tinta); }
.tooltip.left .tooltip-arrow { border-left-color: var(--tinta); }
.tooltip.right .tooltip-arrow { border-right-color: var(--tinta); }

/* Tour (bootstrap-tour) */
.tour-step-background { border-radius: var(--r-card); }
.popover.tour, .popover[class*="tour-"] { border-radius: var(--r-card); }

/* Barras de progreso */
.progress { background-color: var(--hueso); border-radius: 20px; box-shadow: none; }
.progress-bar { background-color: var(--pestana); box-shadow: none; }
.progress-bar-success { background-color: var(--exito); }
.progress-bar-info { background-color: var(--tinta); }
.progress-bar-warning { background-color: #E0A93B; }
.progress-bar-danger { background-color: var(--peligro); }

/* ---------------------------------------------------------------------
   Panel de inicio (stats-overview / stat-block / dashboard-stat)
   --------------------------------------------------------------------- */
.stats-overview {
  background: var(--hueso);
  border: 0;
  border-radius: var(--r-card);
  padding: 16px;
  margin-bottom: 12px;
  box-shadow: none;
}
.stats-overview .display { color: var(--tinta); }
.stats-overview .display .percent { color: var(--tinta); font-weight: 500; letter-spacing: -0.03em; }
.stats-overview .display.good .percent, .stats-overview .display.bad .percent, .stats-overview .display.ok .percent { color: var(--tinta); }
.stats-overview .details .title { color: var(--grafito); font-weight: 500; }
.stats-overview .details .title i { color: var(--pestana); }
.stats-overview .details .numbers { color: var(--tinta); font-weight: 500; }
.stats-overview-cont > div:nth-child(3n+2) .stats-overview { background: var(--tinta); }
.stats-overview-cont > div:nth-child(3n+2) .stats-overview .display,
.stats-overview-cont > div:nth-child(3n+2) .stats-overview .display .percent,
.stats-overview-cont > div:nth-child(3n+2) .stats-overview .details .numbers { color: var(--blanco); }
.stats-overview-cont > div:nth-child(3n+2) .stats-overview .details .title { color: var(--niebla); }
.dashboard-stat { border-radius: var(--r-card); overflow: hidden; }
.dashboard-stat .more { background: rgba(26, 26, 26, .12); }

/* ---------------------------------------------------------------------
   Plugins comunes
   --------------------------------------------------------------------- */
.datepicker table tr td.active, .datepicker table tr td.active:hover,
.datepicker table tr td.active.active, .datepicker table tr td span.active,
.datepicker table tr td.selected, .datepicker table tr td.range-start, .datepicker table tr td.range-end {
  background: var(--pestana) !important;
  background-image: none !important;
  color: var(--blanco) !important;
  text-shadow: none;
  border-color: var(--pestana) !important;
}
.datepicker table tr td.today, .datepicker table tr td.today:hover { background: var(--hueso) !important; background-image: none !important; color: var(--tinta) !important; }
.datepicker table tr td.range { background: var(--hueso-claro) !important; }
.datepicker.dropdown-menu { padding: 8px; }
.select2-container .select2-choice, .select2-container-multi .select2-choices, .select2-drop {
  border-color: var(--arena) !important;
  border-radius: var(--r-btn) !important;
  background-image: none !important;
}
.select2-results .select2-highlighted { background: var(--hueso) !important; color: var(--tinta) !important; }
.select2-container-active .select2-choice, .select2-container-active .select2-choices { border-color: var(--tinta) !important; box-shadow: none !important; }
.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary,
.has-switch span.switch-left, .has-switch .switch-on .switch-left { background: var(--pestana) !important; color: var(--blanco) !important; }
.toast, #toast-container > div { border-radius: var(--r-card) !important; box-shadow: 0 12px 32px rgba(26, 26, 26, .18) !important; opacity: 1; }
#toast-container > .toast-success { background-color: var(--tinta) !important; }
#toast-container > .toast-error { background-color: var(--peligro) !important; }
#toast-container > .toast-info { background-color: var(--grafito) !important; }
#toast-container > .toast-warning { background-color: var(--aviso) !important; }
.blockUI.blockMsg { border-radius: var(--r-card) !important; border: 1px solid var(--arena) !important; }

/* Íconos de estado definidos en comun.css */
.estilo_icono_success { color: var(--exito); }
.estilo_icono_warning { color: #E0A93B; }
.estilo_icono_danger { color: var(--peligro); }

/* ---------------------------------------------------------------------
   Pantallas de acceso (body.login): entrar, registro, contraseña
   --------------------------------------------------------------------- */
body.login {
  background-color: var(--blanco) !important;
  color: var(--tinta);
  min-height: 100vh;
  margin: 0;
}
.login .logo { margin: 0 auto; padding: 48px 16px 8px; text-align: center; }
.login .logo img { width: 140px !important; height: auto; }
.login .content {
  border: 0;
  background-color: var(--blanco);
  width: 100%;
  max-width: 440px;
  padding: 24px 24px 12px;
  box-sizing: border-box;
  border-radius: 0;
}
.login .content h3, .login .content .form-title {
  font-family: var(--font-text);
  font-size: clamp(30px, 3vw, 40px);
  font-weight: 500;
  letter-spacing: -0.02em;
  line-height: 1.05;
  color: var(--tinta);
  margin: 4px 0 24px;
}
.login .content .form-title:after { content: "."; color: var(--pestana); }
.login .content h4 { color: var(--tinta); font-size: 15px; font-weight: 500; }
.login .content p { color: var(--grafito); }
.login .content label, .login .content .control-label { font-size: 12px; color: var(--grafito); font-weight: 500; margin-bottom: 6px; }
.login .content .form-control,
.login .content input[type="text"], .login .content input[type="email"], .login .content input[type="password"] {
  height: 50px;
  border: 1.5px solid var(--grafito);
  border-radius: var(--r-card);
  padding: 0 16px;
  font-size: 16px;
}
.login .content select.form-control { padding: 0 12px; }
.login .content textarea.form-control { height: auto; padding: 12px 16px; }
.login .content .form-control:focus { border-color: var(--tinta) !important; }
.login .content table { width: 100%; }
.login .content .form-actions {
  background-color: transparent !important;
  border: 0 !important;
  border-bottom: 1px solid var(--arena) !important;
  border-radius: 0;
  padding: 8px 0 24px;
  margin: 0;
}
.login .content .form-actions .btn,
.login .content .btn-lg { height: 50px; padding: 0 26px; font-size: 16px; border-radius: var(--r-card) !important; }
.login .content .form-actions .checkbox { color: var(--grafito); font-size: 14px; margin-top: 14px; }
.login .content .forget-password { margin-top: 22px; }
.login .content .forget-password p a, .login .content a#forget-password,
.login .content p > a:not(.btn) {
  color: var(--tinta);
  text-decoration: underline;
  text-decoration-color: var(--pestana);
  text-underline-offset: 4px;
}
.login .content .create-account { border-top: 0; padding-top: 6px; margin-top: 10px; }
.login .content .create-account p { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.login .content .create-account a.btn { margin-top: 0; }
.login .copyright { color: var(--ceniza); font-size: 12px; padding: 24px 16px; }

/* Panel lateral oscuro (plantilla registration/comun/base.html) */
.fiscly-acceso-lado { display: none; }
@media (min-width: 992px) {
  body.login.fiscly-acceso-dividido { padding-left: 50% !important; }
  body.login.fiscly-acceso-dividido .logo { display: none; }
  body.login.fiscly-acceso-dividido .content { margin: 0 auto; padding-top: 12vh; }
  body.login.fiscly-acceso-dividido .fiscly-acceso-lado {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    position: fixed;
    top: 12px; left: 12px; bottom: 12px;
    width: calc(50% - 24px);
    background: var(--tinta);
    color: var(--blanco);
    border-radius: var(--r-block);
    padding: clamp(28px, 3vw, 48px);
    box-sizing: border-box;
    overflow: hidden;
    z-index: 1;
  }
  .fiscly-acceso-lado .fiscly-acceso-logo img { height: 30px; width: auto; display: block; }
  .fiscly-acceso-lado .fiscly-acceso-forma {
    position: absolute;
    right: -12%;
    top: 22%;
    width: min(70%, 440px);
    aspect-ratio: 1 / 1;
    border-radius: 22%;
    background: var(--pestana);
    transform: rotate(-8deg);
  }
  .fiscly-acceso-lado .fiscly-acceso-tarjeta {
    position: absolute;
    background: var(--blanco);
    color: var(--tinta);
    border-radius: var(--r-card);
    padding: 10px 14px;
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 13px;
    font-weight: 500;
    box-shadow: 0 18px 40px rgba(0, 0, 0, .25);
  }
  .fiscly-acceso-lado .fiscly-acceso-tarjeta img { width: 20px; height: 20px; }
  .fiscly-acceso-lado .fiscly-acceso-tarjeta.t1 { left: 12%; top: 34%; }
  .fiscly-acceso-lado .fiscly-acceso-tarjeta.t2 { left: 30%; top: 50%; background: var(--hueso); }
  .fiscly-acceso-lado .fiscly-acceso-texto { position: relative; max-width: 520px; }
  .fiscly-acceso-lado .fiscly-acceso-texto .fiscly-display { font-size: clamp(36px, 3.6vw, 60px); color: var(--blanco); margin: 0 0 16px; }
  .fiscly-acceso-lado .fiscly-acceso-texto p { font-size: 17px; line-height: 1.5; color: var(--niebla); margin: 0; }
}

/* Entrar (registration/login.html), réplica de fiscly-sitio/entrar.html */
body.fiscly-entrar .content { max-width: 468px; }
.fiscly-entrar .login-form, .fiscly-entrar .fiscly-entrar-salida { display: flex; flex-direction: column; }
.fiscly-entrar .fiscly-entrar-volver {
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 14px;
  color: var(--grafito);
  text-decoration: none;
  margin-bottom: 28px;
}
.fiscly-entrar .fiscly-entrar-volver span {
  width: 34px; height: 30px;
  border-radius: 7px;
  background: var(--hueso);
  color: var(--tinta);
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 16px;
  transition: background .2s, color .2s;
}
.fiscly-entrar .fiscly-entrar-volver:hover, .fiscly-entrar .fiscly-entrar-volver:focus { color: var(--tinta); text-decoration: none; }
.fiscly-entrar .fiscly-entrar-volver:hover span { background: var(--tinta); color: var(--blanco); }
.fiscly-entrar .login .content .form-title, body.fiscly-entrar .content .form-title { font-size: clamp(32px, 3vw, 44px); line-height: 1; margin: 0 0 10px; }
.fiscly-entrar .fiscly-entrar-cuenta { font-size: 15px; margin: 0 0 28px; }
.fiscly-entrar .fiscly-entrar-logo-texto { display: inline-block; height: 1.05em; width: auto; vertical-align: -0.2em; }
.fiscly-entrar .form-group { margin-bottom: 16px; }
.fiscly-entrar .form-group .control-label { display: block; margin-bottom: 7px; }
.fiscly-entrar .fiscly-entrar-etiqueta { display: flex !important; justify-content: space-between; align-items: baseline; }
body.fiscly-entrar .content a#forget-password { color: var(--grafito); text-decoration: none; }
body.fiscly-entrar .content a#forget-password:hover { color: var(--pestana); }
body.fiscly-entrar .content .form-control { height: 52px; border-color: var(--grafito); }
body.fiscly-entrar .content .form-control::placeholder { color: var(--ceniza); }
.fiscly-entrar .fiscly-entrar-clave { position: relative; }
body.fiscly-entrar .fiscly-entrar-clave .form-control { padding-right: 84px; }
.fiscly-entrar .fiscly-entrar-mostrar {
  position: absolute; right: 6px; top: 50%;
  transform: translateY(-50%);
  border: 0; background: transparent;
  padding: 8px 10px;
  font-size: 13px;
  color: var(--grafito);
  cursor: pointer;
}
.fiscly-entrar .fiscly-entrar-mostrar:hover { color: var(--tinta); }
.fiscly-entrar .help-block { color: var(--pestana-oscura); font-size: 13px; margin: 6px 0 0; }
.fiscly-entrar .fiscly-entrar-error, .fiscly-entrar .fiscly-entrar-aviso {
  display: flex; align-items: center; gap: 10px;
  background: var(--hueso);
  border-radius: 8px;
  padding: 12px 14px;
  font-size: 14px;
  color: var(--tinta);
  margin-bottom: 16px;
}
.fiscly-entrar .fiscly-entrar-error img, .fiscly-entrar .fiscly-entrar-aviso img { width: 20px; height: 20px; flex: none; }
body.fiscly-entrar .content .fiscly-entrar-enviar {
  height: 54px;
  margin-top: 12px;
  border: 0;
  border-radius: 8px !important;
  background: var(--pestana);
  color: var(--blanco);
  font-size: 16px;
  transition: background .25s;
}
body.fiscly-entrar .content a.fiscly-entrar-enviar { display: flex; align-items: center; justify-content: center; text-decoration: none; }
body.fiscly-entrar .content .fiscly-entrar-enviar:hover,
body.fiscly-entrar .content .fiscly-entrar-enviar:focus { background: var(--tinta); color: var(--blanco); }
.fiscly-entrar .fiscly-entrar-separador {
  display: flex; align-items: center; gap: 12px;
  margin: 28px 0;
  font-size: 13px;
  color: var(--grafito);
}
.fiscly-entrar .fiscly-entrar-separador:before,
.fiscly-entrar .fiscly-entrar-separador:after { content: ""; flex: 1; height: 1px; background: var(--arena); }
.fiscly-entrar .fiscly-entrar-seguro {
  display: flex; align-items: center; gap: 14px;
  border: 1px solid var(--arena);
  border-radius: 8px;
  padding: 14px 16px;
}
.fiscly-entrar .fiscly-entrar-seguro img { width: 26px; height: 26px; flex: none; }
body.fiscly-entrar .content .fiscly-entrar-seguro p { font-size: 14px; line-height: 1.4; margin: 0; }

/* Panel lateral de Entrar: teléfono con la app */
@media (min-width: 992px) {
  body.login.fiscly-entrar .content { padding-top: 0; }
  body.login.fiscly-entrar { display: flex; flex-direction: column; justify-content: center; }
  .fiscly-entrar .fiscly-entrar-escena {
    position: relative;
    flex: 1;
    display: flex; align-items: center; justify-content: center;
    padding: 32px 0;
  }
  .fiscly-entrar .fiscly-entrar-forma {
    position: absolute;
    width: min(78%, 460px);
    aspect-ratio: 1 / 1;
    border-radius: 22%;
    background: var(--pestana);
  }
  .fiscly-entrar .fiscly-entrar-telefono {
    position: relative;
    flex: none;
    width: 260px; height: 530px;
    border-radius: 42px;
    background: #2E2C29;
    padding: 8px;
    box-sizing: border-box;
  }
  .fiscly-entrar .fiscly-entrar-pantalla {
    height: 100%;
    border-radius: 34px;
    background: var(--blanco);
    color: var(--tinta);
    padding: 16px 16px 18px;
    box-sizing: border-box;
    display: flex; flex-direction: column; gap: 12px;
    overflow: hidden;
    font-size: 11px;
  }
  .fiscly-entrar .fiscly-entrar-estado, .fiscly-entrar .fiscly-entrar-app,
  .fiscly-entrar .fiscly-entrar-fila, .fiscly-entrar .fiscly-entrar-fila > div:last-child { display: flex; justify-content: space-between; align-items: center; }
  .fiscly-entrar .fiscly-entrar-isla { width: 64px; height: 18px; border-radius: 10px; background: var(--tinta); }
  .fiscly-entrar .fiscly-entrar-app { margin-top: 4px; }
  .fiscly-entrar .fiscly-entrar-app img { height: 16px; width: auto; }
  .fiscly-entrar .fiscly-entrar-app span { width: 30px; height: 26px; border-radius: 7px; background: var(--hueso); display: flex; align-items: center; justify-content: center; }
  .fiscly-entrar .fiscly-entrar-saludo { font-size: 24px; letter-spacing: -0.02em; line-height: 1; }
  .fiscly-entrar .fiscly-entrar-cifras { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
  .fiscly-entrar .fiscly-entrar-cifras div { background: var(--hueso); border-radius: 6px; padding: 10px; font-size: 20px; letter-spacing: -0.03em; line-height: 1.2; }
  .fiscly-entrar .fiscly-entrar-cifras div.oscura { background: var(--tinta); color: var(--blanco); }
  .fiscly-entrar .fiscly-entrar-cifras small { display: block; font-size: 10px; letter-spacing: 0; color: var(--grafito); margin-bottom: 4px; }
  .fiscly-entrar .fiscly-entrar-cifras .oscura small { color: var(--niebla); }
  .fiscly-entrar .fiscly-entrar-subtitulo { color: var(--grafito); margin-top: 2px; }
  .fiscly-entrar .fiscly-entrar-fila { padding: 7px 0; border-top: 1px solid var(--arena); }
  .fiscly-entrar .fiscly-entrar-fila code { display: block; padding: 0; border: 0; box-shadow: none; background: none; font-family: monospace; font-size: 9px; color: var(--grafito); }
  .fiscly-entrar .fiscly-entrar-fila > div:last-child { gap: 6px; }
  .fiscly-entrar .fiscly-entrar-fila img { width: 14px; height: 14px; }
  .fiscly-entrar .fiscly-entrar-boton { margin-top: auto; height: 40px; border-radius: 6px; background: var(--pestana); color: var(--blanco); display: flex; align-items: center; justify-content: center; font-size: 13px; }
  .fiscly-entrar .fiscly-acceso-lado .fiscly-acceso-tarjeta { box-shadow: none; }
  .fiscly-entrar .fiscly-acceso-lado .fiscly-acceso-tarjeta.t1 { left: 4%; top: 18%; }
  .fiscly-entrar .fiscly-acceso-lado .fiscly-acceso-tarjeta.t2 { left: auto; right: 2%; top: auto; bottom: 16%; }
}
/* El teléfono se reduce en pantallas bajas, como en el sitio */
@media (min-width: 992px) and (max-height: 900px) { .fiscly-entrar .fiscly-entrar-telefono { transform: scale(.85); margin: -40px 0; } }
@media (min-width: 992px) and (max-height: 800px) { .fiscly-entrar .fiscly-entrar-telefono { transform: scale(.72); margin: -74px 0; } }
@media (min-width: 992px) and (max-height: 700px) { .fiscly-entrar .fiscly-entrar-telefono { transform: scale(.6); margin: -106px 0; } }

/* Registro (registration/registration_form.html), réplica de fiscly-sitio/registro.html */
body.fiscly-registro .content { max-width: 488px; }
body.fiscly-registro > .logo { display: none; }
.fiscly-registro .fiscly-registro-barra { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-bottom: 32px; }
.fiscly-registro .fiscly-registro-barra .fiscly-entrar-volver { margin-bottom: 0; }
.fiscly-registro .fiscly-registro-barra img { height: 24px; width: auto; }
.fiscly-registro .register-form { display: flex !important; flex-direction: column; }
body.fiscly-registro .content .fiscly-registro-paso { font-size: 13px; margin: 0 0 10px; }
body.fiscly-registro .content .form-title { font-size: clamp(30px, 2.8vw, 42px); }
body.fiscly-registro .content .fiscly-entrar-cuenta { line-height: 1.45; margin-bottom: 24px; }
.fiscly-registro .fiscly-registro-pasos { display: flex; gap: 6px; margin-bottom: 24px; }
.fiscly-registro .fiscly-registro-pasos span { flex: 1; height: 4px; border-radius: 2px; background: var(--arena); transition: background .4s; }
.fiscly-registro .fiscly-registro-pasos span.completo { background: var(--pestana); }
.fiscly-registro .form-group { margin-bottom: 14px; }
.fiscly-registro .fiscly-registro-entrada { position: relative; }
body.fiscly-registro .fiscly-registro-entrada .form-control { padding-right: 44px; }
.fiscly-registro .fiscly-registro-palomita {
  position: absolute; right: 14px; top: 50%;
  transform: translateY(-50%) scale(.6);
  width: 20px; height: 17px;
  border-radius: 5px;
  background: var(--pestana) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12.5l4.6 4.6L19.2 7.4' stroke='%23fff' stroke-width='4' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") center / 11px no-repeat;
  opacity: 0;
  transition: opacity .2s, transform .2s;
  pointer-events: none;
}
.fiscly-registro .fiscly-registro-valido .fiscly-registro-palomita { opacity: 1; transform: translateY(-50%) scale(1); }
.fiscly-registro .has-error .fiscly-registro-palomita { display: none; }
body.fiscly-registro .content .fiscly-registro-valido .form-control { border-color: var(--tinta); }
body.fiscly-registro .content .has-error .form-control { border-color: var(--pestana); }
.fiscly-registro .fiscly-registro-nota { display: block; font-size: 12px; color: var(--grafito); margin-top: 6px; }
.fiscly-registro .fiscly-registro-reglas { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 14px; margin: 2px 0 18px; }
.fiscly-registro .fiscly-registro-reglas span { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--grafito); transition: color .3s; }
.fiscly-registro .fiscly-registro-reglas i,
.fiscly-registro .fiscly-registro-terminos input[type="checkbox"] {
  flex: none;
  width: 16px; height: 14px;
  border-radius: 4px;
  border: 1.5px solid var(--niebla);
  box-sizing: border-box;
  background: transparent center / 9px no-repeat;
  transition: background-color .3s, border-color .3s;
}
.fiscly-registro .fiscly-registro-reglas span.cumplida { color: var(--tinta); }
.fiscly-registro .fiscly-registro-reglas span.cumplida i,
.fiscly-registro .fiscly-registro-terminos input[type="checkbox"]:checked {
  background-color: var(--pestana);
  border-color: var(--pestana);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12.5l4.6 4.6L19.2 7.4' stroke='%23fff' stroke-width='4.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
}
.fiscly-registro .fiscly-registro-terminos label {
  display: flex; align-items: center; gap: 10px;
  padding: 13px 12px;
  border: 1.5px solid var(--arena);
  border-radius: 8px;
  font-size: 14px !important;
  color: var(--tinta) !important;
  cursor: pointer;
  margin: 0;
  transition: background .25s, border-color .25s;
}
.fiscly-registro .fiscly-registro-terminos label:has(input:checked) { border-color: var(--tinta); background: var(--hueso); }
.fiscly-registro .fiscly-registro-terminos input[type="checkbox"] { -webkit-appearance: none; appearance: none; margin: 0; cursor: pointer; }
.fiscly-registro .fiscly-registro-terminos input[type="checkbox"]:focus-visible { outline: 2px solid var(--tinta); outline-offset: 2px; }
.fiscly-registro .fiscly-registro-terminos.has-error label { border-color: var(--pestana); }
body.fiscly-registro .content .fiscly-entrar-enviar { display: flex; align-items: center; justify-content: center; gap: 10px; margin-top: 10px; }
body.fiscly-registro .content .fiscly-registro-entrar { font-size: 13px; margin: 24px 0 0; }

/* Panel lateral del registro: a la derecha, con oferta y beneficios */
@media (min-width: 992px) {
  body.login.fiscly-acceso-dividido.fiscly-registro { display: block; padding-left: 0 !important; padding-right: 50% !important; }
  body.login.fiscly-registro .content { padding-top: 40px; }
  body.login.fiscly-registro .fiscly-acceso-lado { left: auto; right: 12px; justify-content: flex-start; gap: clamp(32px, 5vh, 64px); overflow-y: auto; }
  .fiscly-registro .fiscly-acceso-lado > .fiscly-acceso-logo { display: none; }
  .fiscly-registro .fiscly-registro-encabezado { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; }
  .fiscly-registro .fiscly-registro-encabezado img { width: clamp(48px, 5vw, 72px); height: auto; display: block; }
  .fiscly-registro .fiscly-registro-oferta { background: var(--pestana); color: var(--tinta); border-radius: 10px; padding: 14px 18px; display: flex; align-items: baseline; gap: 10px; }
  .fiscly-registro .fiscly-registro-oferta b { font-weight: 500; font-size: 40px; letter-spacing: -0.05em; line-height: .9; }
  .fiscly-registro .fiscly-registro-oferta span { font-size: 14px; line-height: 1.3; }
  .fiscly-registro .fiscly-acceso-lado .fiscly-acceso-texto .fiscly-display { font-size: clamp(38px, 4vw, 68px); margin-bottom: 18px; }
  .fiscly-registro .fiscly-acceso-lado .fiscly-acceso-texto p { max-width: 440px; }
  .fiscly-registro .fiscly-registro-beneficios { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 18px; max-width: 480px; }
  .fiscly-registro .fiscly-registro-beneficios li { display: flex; align-items: flex-start; gap: 14px; }
  .fiscly-registro .fiscly-registro-beneficios li > span { width: 36px; height: 31px; border-radius: 8px; background: var(--blanco); display: flex; align-items: center; justify-content: center; flex: none; }
  .fiscly-registro .fiscly-registro-beneficios li > span img { width: 18px; height: 18px; }
  .fiscly-registro .fiscly-registro-beneficios li div { display: flex; flex-direction: column; gap: 3px; padding-top: 2px; font-size: 14px; line-height: 1.45; color: var(--niebla); }
  .fiscly-registro .fiscly-registro-beneficios li b { font-weight: 500; font-size: 16px; color: var(--blanco); }
  .fiscly-registro .fiscly-registro-cifrado { margin-top: auto; display: flex; align-items: center; gap: 10px; font-size: 13px; color: var(--niebla); }
  .fiscly-registro .fiscly-registro-cifrado img { width: 18px; height: 18px; filter: brightness(0) invert(1); }
}


/* Validar código del registro (registration/registro_validar_token.html): mismo marco que el registro */
body.fiscly-token .content .fiscly-token-campo { font-family: var(--font-mono); font-size: 15px; letter-spacing: .02em; }
body.fiscly-token .content .has-error .fiscly-token-campo { border-color: var(--pestana); }

/* Impresión: no imprimir el panel lateral oscuro */
@media print {
  body { background: #fff !important; }
  .fiscly-acceso-lado { display: none !important; }
}
