/* VISADO360 · sistema visual
   Concepto: el pasaporte. Azul marino con guilloché dorado (el trazado de seguridad de los documentos de viaje)
   en la navegación y en la tarjeta principal; el área de trabajo sobre papel azulado, limpia y ordenada.
   Layout: menú lateral fijo (barra superior + pestañas inferiores en móvil) + cabecera de página + tarjetas. */
:root {
  --marino: #1B2559; --marino-2: #121A45; --marino-3: #26336F;
  --oro: #C5A059; --oro-claro: #E8D6A6; --oro-tinta: #8A6A2F;
  --bg: #F3F5FA; --surface: #FFFFFF; --surface-2: #F7F8FC; --ink: #161C36; --muted: #5B6280; --line: #E1E5EF;
  --accent: #1B2559; --accent-ink: #FFFFFF; --accent-soft: #E8EBF7;
  --stamp: #8A6A2F; --stamp-soft: #F7F0E1; --gold: var(--oro);
  --ok: #2F7D5B; --ok-soft: #E3F2EA; --warn: #A8641A; --warn-soft: #FBF0DD; --crit: #B8402C; --crit-soft: #FBE7E2;
  --f-display: "Plus Jakarta Sans", "Segoe UI", system-ui, sans-serif;
  --f-body: "IBM Plex Sans", "Segoe UI", system-ui, sans-serif;
  --f-mono: "IBM Plex Mono", ui-monospace, Menlo, monospace;
  --r: 12px; --r-lg: 18px;
  --shadow: 0 1px 2px rgba(27, 37, 89, .05), 0 10px 28px -18px rgba(27, 37, 89, .35);
  --guilloche: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='320' height='120' fill='none' stroke='%23C5A059' stroke-width='.5' opacity='.22'%3E%3Cpath d='M0 6.0 L4 7.4 L8 8.8 L12 10.1 L16 11.3 L20 12.4 L24 13.3 L28 14.0 L32 14.6 L36 14.9 L40 15.0 L44 14.9 L48 14.6 L52 14.0 L56 13.3 L60 12.4 L64 11.3 L68 10.1 L72 8.8 L76 7.4 L80 6.0 L84 4.6 L88 3.2 L92 1.9 L96 0.7 L100 -0.4 L104 -1.3 L108 -2.0 L112 -2.6 L116 -2.9 L120 -3.0 L124 -2.9 L128 -2.6 L132 -2.0 L136 -1.3 L140 -0.4 L144 0.7 L148 1.9 L152 3.2 L156 4.6 L160 6.0 L164 7.4 L168 8.8 L172 10.1 L176 11.3 L180 12.4 L184 13.3 L188 14.0 L192 14.6 L196 14.9 L200 15.0 L204 14.9 L208 14.6 L212 14.0 L216 13.3 L220 12.4 L224 11.3 L228 10.1 L232 8.8 L236 7.4 L240 6.0 L244 4.6 L248 3.2 L252 1.9 L256 0.7 L260 -0.4 L264 -1.3 L268 -2.0 L272 -2.6 L276 -2.9 L280 -3.0 L284 -2.9 L288 -2.6 L292 -2.0 L296 -1.3 L300 -0.4 L304 0.7 L308 1.9 L312 3.2 L316 4.6 L320 6.0'/%3E%3Cpath d='M0 11.8 L4 12.0 L8 11.9 L12 11.4 L16 10.7 L20 9.7 L24 8.5 L28 7.1 L32 5.7 L36 4.3 L40 3.0 L44 1.9 L48 1.0 L52 0.4 L56 0.0 L60 0.0 L64 0.4 L68 1.0 L72 1.9 L76 3.1 L80 4.4 L84 5.8 L88 7.2 L92 8.5 L96 9.7 L100 10.7 L104 11.5 L108 11.9 L112 12.0 L116 11.8 L120 11.2 L124 10.4 L128 9.3 L132 8.1 L136 6.7 L140 5.3 L144 3.9 L148 2.6 L152 1.6 L156 0.8 L160 0.2 L164 0.0 L168 0.1 L172 0.6 L176 1.3 L180 2.3 L184 3.5 L188 4.9 L192 6.3 L196 7.7 L200 9.0 L204 10.1 L208 11.0 L212 11.6 L216 12.0 L220 12.0 L224 11.6 L228 11.0 L232 10.1 L236 8.9 L240 7.6 L244 6.2 L248 4.8 L252 3.5 L256 2.3 L260 1.3 L264 0.5 L268 0.1 L272 0.0 L276 0.2 L280 0.8 L284 1.6 L288 2.7 L292 3.9 L296 5.3 L300 6.7 L304 8.1 L308 9.4 L312 10.4 L316 11.2 L320 11.8'/%3E%3Cpath d='M0 25.0 L4 25.8 L8 26.4 L12 26.8 L16 27.0 L20 26.9 L24 26.7 L28 26.2 L32 25.5 L36 24.6 L40 23.6 L44 22.4 L48 21.1 L52 19.8 L56 18.4 L60 17.0 L64 15.6 L68 14.3 L72 13.0 L76 11.9 L80 11.0 L84 10.2 L88 9.6 L92 9.2 L96 9.0 L100 9.1 L104 9.3 L108 9.8 L112 10.5 L116 11.4 L120 12.4 L124 13.6 L128 14.9 L132 16.2 L136 17.6 L140 19.0 L144 20.4 L148 21.7 L152 23.0 L156 24.1 L160 25.0 L164 25.8 L168 26.4 L172 26.8 L176 27.0 L180 26.9 L184 26.7 L188 26.2 L192 25.5 L196 24.6 L200 23.6 L204 22.4 L208 21.1 L212 19.8 L216 18.4 L220 17.0 L224 15.6 L228 14.3 L232 13.0 L236 11.9 L240 11.0 L244 10.2 L248 9.6 L252 9.2 L256 9.0 L260 9.1 L264 9.3 L268 9.8 L272 10.5 L276 11.4 L280 12.4 L284 13.6 L288 14.9 L292 16.2 L296 17.6 L300 19.0 L304 20.4 L308 21.7 L312 23.0 L316 24.1 L320 25.0'/%3E%3Cpath d='M0 22.9 L4 21.9 L8 20.7 L12 19.4 L16 18.0 L20 16.6 L24 15.3 L28 14.1 L32 13.1 L36 12.5 L40 12.1 L44 12.0 L48 12.3 L52 12.9 L56 13.8 L60 14.9 L64 16.2 L68 17.5 L72 18.9 L76 20.3 L80 21.5 L84 22.6 L88 23.3 L92 23.8 L96 24.0 L100 23.8 L104 23.3 L108 22.6 L112 21.5 L116 20.3 L120 18.9 L124 17.5 L128 16.1 L132 14.9 L136 13.8 L140 12.9 L144 12.3 L148 12.0 L152 12.1 L156 12.5 L160 13.1 L164 14.1 L168 15.3 L172 16.6 L176 18.0 L180 19.4 L184 20.7 L188 21.9 L192 22.9 L196 23.5 L200 23.9 L204 24.0 L208 23.7 L212 23.1 L216 22.2 L220 21.1 L224 19.8 L228 18.5 L232 17.1 L236 15.7 L240 14.5 L244 13.4 L248 12.7 L252 12.2 L256 12.0 L260 12.2 L264 12.7 L268 13.4 L272 14.5 L276 15.7 L280 17.1 L284 18.5 L288 19.9 L292 21.1 L296 22.2 L300 23.1 L304 23.7 L308 24.0 L312 23.9 L316 23.5 L320 22.9'/%3E%3Cpath d='M0 38.8 L4 38.3 L8 37.7 L12 36.9 L16 35.9 L20 34.8 L24 33.5 L28 32.2 L32 30.8 L36 29.4 L40 28.0 L44 26.6 L48 25.3 L52 24.2 L56 23.2 L60 22.4 L64 21.7 L68 21.3 L72 21.0 L76 21.0 L80 21.2 L84 21.7 L88 22.3 L92 23.1 L96 24.1 L100 25.2 L104 26.5 L108 27.8 L112 29.2 L116 30.6 L120 32.0 L124 33.4 L128 34.7 L132 35.8 L136 36.8 L140 37.6 L144 38.3 L148 38.7 L152 39.0 L156 39.0 L160 38.8 L164 38.3 L168 37.7 L172 36.9 L176 35.9 L180 34.8 L184 33.5 L188 32.2 L192 30.8 L196 29.4 L200 28.0 L204 26.6 L208 25.3 L212 24.2 L216 23.2 L220 22.4 L224 21.7 L228 21.3 L232 21.0 L236 21.0 L240 21.2 L244 21.7 L248 22.3 L252 23.1 L256 24.1 L260 25.2 L264 26.5 L268 27.8 L272 29.2 L276 30.6 L280 32.0 L284 33.4 L288 34.7 L292 35.8 L296 36.8 L300 37.6 L304 38.3 L308 38.7 L312 39.0 L316 39.0 L320 38.8'/%3E%3Cpath d='M0 30.2 L4 28.8 L8 27.5 L12 26.3 L16 25.3 L20 24.6 L24 24.1 L28 24.0 L32 24.2 L36 24.8 L40 25.6 L44 26.7 L48 27.9 L52 29.3 L56 30.7 L60 32.1 L64 33.3 L68 34.4 L72 35.2 L76 35.8 L80 36.0 L84 35.9 L88 35.5 L92 34.7 L96 33.7 L100 32.5 L104 31.2 L108 29.8 L112 28.4 L116 27.1 L120 25.9 L124 25.0 L128 24.4 L132 24.0 L136 24.0 L140 24.4 L144 25.0 L148 25.9 L152 27.1 L156 28.4 L160 29.8 L164 31.2 L168 32.5 L172 33.7 L176 34.7 L180 35.4 L184 35.9 L188 36.0 L192 35.8 L196 35.2 L200 34.4 L204 33.3 L208 32.1 L212 30.7 L216 29.3 L220 27.9 L224 26.7 L228 25.6 L232 24.8 L236 24.2 L240 24.0 L244 24.1 L248 24.5 L252 25.3 L256 26.3 L260 27.5 L264 28.8 L268 30.2 L272 31.6 L276 32.9 L280 34.1 L284 35.0 L288 35.6 L292 36.0 L296 36.0 L300 35.6 L304 35.0 L308 34.1 L312 32.9 L316 31.6 L320 30.2'/%3E%3Cpath d='M0 45.8 L4 44.5 L8 43.1 L12 41.7 L16 40.3 L20 39.0 L24 37.7 L28 36.5 L32 35.5 L36 34.6 L40 33.9 L44 33.4 L48 33.1 L52 33.0 L56 33.2 L60 33.5 L64 34.1 L68 34.9 L72 35.8 L76 36.9 L80 38.2 L84 39.5 L88 40.9 L92 42.3 L96 43.7 L100 45.0 L104 46.3 L108 47.5 L112 48.5 L116 49.4 L120 50.1 L124 50.6 L128 50.9 L132 51.0 L136 50.8 L140 50.5 L144 49.9 L148 49.1 L152 48.2 L156 47.1 L160 45.8 L164 44.5 L168 43.1 L172 41.7 L176 40.3 L180 39.0 L184 37.7 L188 36.5 L192 35.5 L196 34.6 L200 33.9 L204 33.4 L208 33.1 L212 33.0 L216 33.2 L220 33.5 L224 34.1 L228 34.9 L232 35.8 L236 36.9 L240 38.2 L244 39.5 L248 40.9 L252 42.3 L256 43.7 L260 45.0 L264 46.3 L268 47.5 L272 48.5 L276 49.4 L280 50.1 L284 50.6 L288 50.9 L292 51.0 L296 50.8 L300 50.5 L304 49.9 L308 49.1 L312 48.2 L316 47.1 L320 45.8'/%3E%3Cpath d='M0 37.5 L4 36.7 L8 36.2 L12 36.0 L16 36.2 L20 36.6 L24 37.4 L28 38.4 L32 39.7 L36 41.0 L40 42.4 L44 43.8 L48 45.1 L52 46.2 L56 47.1 L60 47.7 L64 48.0 L68 47.9 L72 47.6 L76 46.9 L80 45.9 L84 44.8 L88 43.4 L92 42.0 L96 40.6 L100 39.3 L104 38.1 L108 37.2 L112 36.5 L116 36.1 L120 36.0 L124 36.3 L128 36.9 L132 37.7 L136 38.8 L140 40.1 L144 41.5 L148 42.9 L152 44.3 L156 45.5 L160 46.5 L164 47.3 L168 47.8 L172 48.0 L176 47.8 L180 47.4 L184 46.6 L188 45.6 L192 44.3 L196 43.0 L200 41.6 L204 40.2 L208 38.9 L212 37.8 L216 36.9 L220 36.3 L224 36.0 L228 36.1 L232 36.4 L236 37.1 L240 38.1 L244 39.2 L248 40.6 L252 42.0 L256 43.4 L260 44.7 L264 45.9 L268 46.8 L272 47.5 L276 47.9 L280 48.0 L284 47.7 L288 47.1 L292 46.3 L296 45.2 L300 43.9 L304 42.5 L308 41.1 L312 39.7 L316 38.5 L320 37.5'/%3E%3Cpath d='M0 50.0 L4 48.8 L8 47.7 L12 46.8 L16 46.0 L20 45.5 L24 45.1 L28 45.0 L32 45.1 L36 45.4 L40 45.9 L44 46.7 L48 47.6 L52 48.6 L56 49.8 L60 51.1 L64 52.5 L68 53.9 L72 55.3 L76 56.7 L80 58.0 L84 59.2 L88 60.3 L92 61.2 L96 62.0 L100 62.5 L104 62.9 L108 63.0 L112 62.9 L116 62.6 L120 62.1 L124 61.3 L128 60.4 L132 59.4 L136 58.2 L140 56.9 L144 55.5 L148 54.1 L152 52.7 L156 51.3 L160 50.0 L164 48.8 L168 47.7 L172 46.8 L176 46.0 L180 45.5 L184 45.1 L188 45.0 L192 45.1 L196 45.4 L200 45.9 L204 46.7 L208 47.6 L212 48.6 L216 49.8 L220 51.1 L224 52.5 L228 53.9 L232 55.3 L236 56.7 L240 58.0 L244 59.2 L248 60.3 L252 61.2 L256 62.0 L260 62.5 L264 62.9 L268 63.0 L272 62.9 L276 62.6 L280 62.1 L284 61.3 L288 60.4 L292 59.4 L296 58.2 L300 56.9 L304 55.5 L308 54.1 L312 52.7 L316 51.3 L320 50.0'/%3E%3Cpath d='M0 48.1 L4 48.5 L8 49.3 L12 50.2 L16 51.4 L20 52.8 L24 54.2 L28 55.6 L32 56.9 L36 58.0 L40 59.0 L44 59.6 L48 60.0 L52 60.0 L56 59.6 L60 59.0 L64 58.1 L68 57.0 L72 55.7 L76 54.3 L80 52.9 L84 51.5 L88 50.3 L92 49.3 L96 48.6 L100 48.1 L104 48.0 L108 48.2 L112 48.7 L116 49.6 L120 50.6 L124 51.9 L128 53.2 L132 54.7 L136 56.0 L140 57.3 L144 58.4 L148 59.2 L152 59.8 L156 60.0 L160 59.9 L164 59.5 L168 58.7 L172 57.8 L176 56.6 L180 55.2 L184 53.8 L188 52.4 L192 51.1 L196 50.0 L200 49.0 L204 48.4 L208 48.0 L212 48.0 L216 48.4 L220 49.0 L224 49.9 L228 51.0 L232 52.3 L236 53.7 L240 55.1 L244 56.5 L248 57.7 L252 58.7 L256 59.4 L260 59.9 L264 60.0 L268 59.8 L272 59.3 L276 58.4 L280 57.4 L284 56.1 L288 54.8 L292 53.3 L296 52.0 L300 50.7 L304 49.6 L308 48.8 L312 48.2 L316 48.0 L320 48.1'/%3E%3Cpath d='M0 57.2 L4 57.0 L8 57.0 L12 57.3 L16 57.8 L20 58.4 L24 59.3 L28 60.3 L32 61.5 L36 62.7 L40 64.1 L44 65.5 L48 66.9 L52 68.3 L56 69.6 L60 70.9 L64 72.0 L68 73.0 L72 73.8 L76 74.4 L80 74.8 L84 75.0 L88 75.0 L92 74.7 L96 74.2 L100 73.6 L104 72.7 L108 71.7 L112 70.5 L116 69.3 L120 67.9 L124 66.5 L128 65.1 L132 63.7 L136 62.4 L140 61.1 L144 60.0 L148 59.0 L152 58.2 L156 57.6 L160 57.2 L164 57.0 L168 57.0 L172 57.3 L176 57.8 L180 58.4 L184 59.3 L188 60.3 L192 61.5 L196 62.7 L200 64.1 L204 65.5 L208 66.9 L212 68.3 L216 69.6 L220 70.9 L224 72.0 L228 73.0 L232 73.8 L236 74.4 L240 74.8 L244 75.0 L248 75.0 L252 74.7 L256 74.2 L260 73.6 L264 72.7 L268 71.7 L272 70.5 L276 69.3 L280 67.9 L284 66.5 L288 65.1 L292 63.7 L296 62.4 L300 61.1 L304 60.0 L308 59.0 L312 58.2 L316 57.6 L320 57.2'/%3E%3Cpath d='M0 63.2 L4 64.5 L8 65.9 L12 67.3 L16 68.7 L20 69.8 L24 70.8 L28 71.5 L32 71.9 L36 72.0 L40 71.7 L44 71.2 L48 70.3 L52 69.2 L56 67.9 L60 66.5 L64 65.1 L68 63.8 L72 62.5 L76 61.5 L80 60.7 L84 60.2 L88 60.0 L92 60.1 L96 60.6 L100 61.4 L104 62.4 L108 63.6 L112 65.0 L116 66.4 L120 67.8 L124 69.1 L128 70.2 L132 71.1 L136 71.7 L140 72.0 L144 71.9 L148 71.6 L152 70.9 L156 70.0 L160 68.8 L164 67.5 L168 66.1 L172 64.7 L176 63.3 L180 62.2 L184 61.2 L188 60.5 L192 60.1 L196 60.0 L200 60.3 L204 60.8 L208 61.7 L212 62.8 L216 64.1 L220 65.5 L224 66.9 L228 68.2 L232 69.5 L236 70.5 L240 71.3 L244 71.8 L248 72.0 L252 71.9 L256 71.4 L260 70.6 L264 69.6 L268 68.4 L272 67.0 L276 65.6 L280 64.2 L284 62.9 L288 61.8 L292 60.9 L296 60.3 L300 60.0 L304 60.1 L308 60.4 L312 61.1 L316 62.0 L320 63.2'/%3E%3Cpath d='M0 71.0 L4 72.0 L8 73.2 L12 74.4 L16 75.7 L20 77.1 L24 78.5 L28 79.9 L32 81.3 L36 82.6 L40 83.7 L44 84.7 L48 85.6 L52 86.2 L56 86.7 L60 87.0 L64 87.0 L68 86.8 L72 86.4 L76 85.8 L80 85.0 L84 84.0 L88 82.8 L92 81.6 L96 80.3 L100 78.9 L104 77.5 L108 76.1 L112 74.7 L116 73.4 L120 72.3 L124 71.3 L128 70.4 L132 69.8 L136 69.3 L140 69.0 L144 69.0 L148 69.2 L152 69.6 L156 70.2 L160 71.0 L164 72.0 L168 73.2 L172 74.4 L176 75.7 L180 77.1 L184 78.5 L188 79.9 L192 81.3 L196 82.6 L200 83.7 L204 84.7 L208 85.6 L212 86.2 L216 86.7 L220 87.0 L224 87.0 L228 86.8 L232 86.4 L236 85.8 L240 85.0 L244 84.0 L248 82.8 L252 81.6 L256 80.3 L260 78.9 L264 77.5 L268 76.1 L272 74.7 L276 73.4 L280 72.3 L284 71.3 L288 70.4 L292 69.8 L296 69.3 L300 69.0 L304 69.0 L308 69.2 L312 69.6 L316 70.2 L320 71.0'/%3E%3Cpath d='M0 80.4 L4 81.6 L8 82.7 L12 83.4 L16 83.9 L20 84.0 L24 83.8 L28 83.3 L32 82.5 L36 81.4 L40 80.2 L44 78.8 L48 77.4 L52 76.0 L56 74.7 L60 73.7 L64 72.8 L68 72.3 L72 72.0 L76 72.1 L80 72.5 L84 73.2 L88 74.2 L92 75.4 L96 76.7 L100 78.1 L104 79.5 L108 80.9 L112 82.0 L116 82.9 L120 83.6 L124 83.9 L128 84.0 L132 83.7 L136 83.0 L140 82.1 L144 81.0 L148 79.7 L152 78.3 L156 76.9 L160 75.6 L164 74.4 L168 73.3 L172 72.6 L176 72.1 L180 72.0 L184 72.2 L188 72.7 L192 73.5 L196 74.6 L200 75.8 L204 77.2 L208 78.6 L212 80.0 L216 81.3 L220 82.3 L224 83.2 L228 83.7 L232 84.0 L236 83.9 L240 83.5 L244 82.8 L248 81.8 L252 80.6 L256 79.3 L260 77.9 L264 76.5 L268 75.1 L272 74.0 L276 73.1 L280 72.4 L284 72.1 L288 72.0 L292 72.3 L296 73.0 L300 73.9 L304 75.0 L308 76.3 L312 77.7 L316 79.1 L320 80.4'/%3E%3Cpath d='M0 90.2 L4 91.6 L8 92.9 L12 94.2 L16 95.4 L20 96.5 L24 97.4 L28 98.1 L32 98.6 L36 98.9 L40 99.0 L44 98.9 L48 98.5 L52 97.9 L56 97.2 L60 96.3 L64 95.2 L68 94.0 L72 92.6 L76 91.3 L80 89.8 L84 88.4 L88 87.1 L92 85.8 L96 84.6 L100 83.5 L104 82.6 L108 81.9 L112 81.4 L116 81.1 L120 81.0 L124 81.1 L128 81.5 L132 82.1 L136 82.8 L140 83.7 L144 84.8 L148 86.0 L152 87.4 L156 88.7 L160 90.2 L164 91.6 L168 92.9 L172 94.2 L176 95.4 L180 96.5 L184 97.4 L188 98.1 L192 98.6 L196 98.9 L200 99.0 L204 98.9 L208 98.5 L212 97.9 L216 97.2 L220 96.3 L224 95.2 L228 94.0 L232 92.6 L236 91.3 L240 89.8 L244 88.4 L248 87.1 L252 85.8 L256 84.6 L260 83.5 L264 82.6 L268 81.9 L272 81.4 L276 81.1 L280 81.0 L284 81.1 L288 81.5 L292 82.1 L296 82.8 L300 83.7 L304 84.8 L308 86.0 L312 87.4 L316 88.7 L320 90.2'/%3E%3Cpath d='M0 95.8 L4 96.0 L8 95.9 L12 95.4 L16 94.6 L20 93.6 L24 92.4 L28 91.0 L32 89.6 L36 88.3 L40 87.0 L44 85.8 L48 84.9 L52 84.3 L56 84.0 L60 84.1 L64 84.4 L68 85.1 L72 86.0 L76 87.2 L80 88.5 L84 89.9 L88 91.3 L92 92.6 L96 93.8 L100 94.8 L104 95.5 L108 95.9 L112 96.0 L116 95.7 L120 95.2 L124 94.3 L128 93.2 L132 92.0 L136 90.6 L140 89.2 L144 87.8 L148 86.6 L152 85.5 L156 84.7 L160 84.2 L164 84.0 L168 84.1 L172 84.6 L176 85.4 L180 86.4 L184 87.6 L188 89.0 L192 90.4 L196 91.7 L200 93.0 L204 94.2 L208 95.1 L212 95.7 L216 96.0 L220 95.9 L224 95.6 L228 94.9 L232 94.0 L236 92.8 L240 91.5 L244 90.1 L248 88.7 L252 87.4 L256 86.2 L260 85.2 L264 84.5 L268 84.1 L272 84.0 L276 84.3 L280 84.8 L284 85.7 L288 86.8 L292 88.0 L296 89.4 L300 90.8 L304 92.2 L308 93.4 L312 94.5 L316 95.3 L320 95.8'/%3E%3Cpath d='M0 109.1 L4 109.9 L8 110.5 L12 110.9 L16 111.0 L20 110.9 L24 110.6 L28 110.1 L32 109.4 L36 108.5 L40 107.5 L44 106.3 L48 105.0 L52 103.6 L56 102.2 L60 100.8 L64 99.4 L68 98.1 L72 96.9 L76 95.8 L80 94.9 L84 94.1 L88 93.5 L92 93.1 L96 93.0 L100 93.1 L104 93.4 L108 93.9 L112 94.6 L116 95.5 L120 96.5 L124 97.7 L128 99.0 L132 100.4 L136 101.8 L140 103.2 L144 104.6 L148 105.9 L152 107.1 L156 108.2 L160 109.1 L164 109.9 L168 110.5 L172 110.9 L176 111.0 L180 110.9 L184 110.6 L188 110.1 L192 109.4 L196 108.5 L200 107.5 L204 106.3 L208 105.0 L212 103.6 L216 102.2 L220 100.8 L224 99.4 L228 98.1 L232 96.9 L236 95.8 L240 94.9 L244 94.1 L248 93.5 L252 93.1 L256 93.0 L260 93.1 L264 93.4 L268 93.9 L272 94.6 L276 95.5 L280 96.5 L284 97.7 L288 99.0 L292 100.4 L296 101.8 L300 103.2 L304 104.6 L308 105.9 L312 107.1 L316 108.2 L320 109.1'/%3E%3Cpath d='M0 106.8 L4 105.8 L8 104.6 L12 103.3 L16 101.9 L20 100.5 L24 99.2 L28 98.0 L32 97.1 L36 96.4 L40 96.1 L44 96.0 L48 96.3 L52 96.9 L56 97.8 L60 99.0 L64 100.2 L68 101.6 L72 103.0 L76 104.4 L80 105.6 L84 106.6 L88 107.4 L92 107.9 L96 108.0 L100 107.8 L104 107.3 L108 106.5 L112 105.4 L116 104.2 L120 102.8 L124 101.4 L128 100.0 L132 98.8 L136 97.7 L140 96.8 L144 96.3 L148 96.0 L152 96.1 L156 96.5 L160 97.2 L164 98.2 L168 99.4 L172 100.7 L176 102.1 L180 103.5 L184 104.8 L188 106.0 L192 106.9 L196 107.6 L200 107.9 L204 108.0 L208 107.7 L212 107.1 L216 106.2 L220 105.0 L224 103.8 L228 102.4 L232 101.0 L236 99.6 L240 98.4 L244 97.4 L248 96.6 L252 96.1 L256 96.0 L260 96.2 L264 96.7 L268 97.5 L272 98.6 L276 99.8 L280 101.2 L284 102.6 L288 104.0 L292 105.2 L296 106.3 L300 107.2 L304 107.7 L308 108.0 L312 107.9 L316 107.5 L320 106.8'/%3E%3Cpath d='M0 122.7 L4 122.3 L8 121.6 L12 120.8 L16 119.8 L20 118.6 L24 117.4 L28 116.0 L32 114.6 L36 113.2 L40 111.8 L44 110.5 L48 109.2 L52 108.1 L56 107.1 L60 106.3 L64 105.6 L68 105.2 L72 105.0 L76 105.0 L80 105.3 L84 105.7 L88 106.4 L92 107.2 L96 108.2 L100 109.4 L104 110.6 L108 112.0 L112 113.4 L116 114.8 L120 116.2 L124 117.5 L128 118.8 L132 119.9 L136 120.9 L140 121.7 L144 122.4 L148 122.8 L152 123.0 L156 123.0 L160 122.7 L164 122.3 L168 121.6 L172 120.8 L176 119.8 L180 118.6 L184 117.4 L188 116.0 L192 114.6 L196 113.2 L200 111.8 L204 110.5 L208 109.2 L212 108.1 L216 107.1 L220 106.3 L224 105.6 L228 105.2 L232 105.0 L236 105.0 L240 105.3 L244 105.7 L248 106.4 L252 107.2 L256 108.2 L260 109.4 L264 110.6 L268 112.0 L272 113.4 L276 114.8 L280 116.2 L284 117.5 L288 118.8 L292 119.9 L296 120.9 L300 121.7 L304 122.4 L308 122.8 L312 123.0 L316 123.0 L320 122.7'/%3E%3Cpath d='M0 114.1 L4 112.7 L8 111.4 L12 110.2 L16 109.2 L20 108.5 L24 108.1 L28 108.0 L32 108.2 L36 108.8 L40 109.7 L44 110.7 L48 112.0 L52 113.4 L56 114.8 L60 116.2 L64 117.4 L68 118.5 L72 119.3 L76 119.8 L80 120.0 L84 119.9 L88 119.4 L92 118.7 L96 117.6 L100 116.4 L104 115.1 L108 113.7 L112 112.3 L116 111.0 L120 109.9 L124 109.0 L128 108.3 L132 108.0 L136 108.1 L140 108.4 L144 109.1 L148 110.0 L152 111.1 L156 112.5 L160 113.9 L164 115.3 L168 116.6 L172 117.8 L176 118.8 L180 119.5 L184 119.9 L188 120.0 L192 119.8 L196 119.2 L200 118.3 L204 117.3 L208 116.0 L212 114.6 L216 113.2 L220 111.8 L224 110.6 L228 109.5 L232 108.7 L236 108.2 L240 108.0 L244 108.1 L248 108.6 L252 109.3 L256 110.4 L260 111.6 L264 112.9 L268 114.3 L272 115.7 L276 117.0 L280 118.1 L284 119.0 L288 119.7 L292 120.0 L296 119.9 L300 119.6 L304 118.9 L308 118.0 L312 116.9 L316 115.5 L320 114.1'/%3E%3C/svg%3E");
  --side-w: 256px; color-scheme: light;
}
@media (prefers-color-scheme: dark) { :root {
  --bg: #0F1328; --surface: #161B36; --surface-2: #1B2142; --ink: #E9EBF5; --muted: #A1A7C2; --line: #2A3159;
  --accent: #A9B5F2; --accent-ink: #0F1328; --accent-soft: #232B57; --stamp: #E2C788; --stamp-soft: #362C17;
  --ok: #7CCBA3; --ok-soft: #173326; --warn: #E9B062; --warn-soft: #36290F; --crit: #F29A88; --crit-soft: #3B1C16;
  --shadow: 0 1px 2px rgba(0, 0, 0, .3), 0 10px 28px -18px rgba(0, 0, 0, .8); color-scheme: dark; } }

* { box-sizing: border-box; }
html, body { margin: 0; background: var(--bg); color: var(--ink); }
body { font: 15px/1.55 var(--f-body); -webkit-font-smoothing: antialiased; }
a { color: var(--accent); text-underline-offset: 3px; }
img { max-width: 100%; }
:focus-visible { outline: 2px solid var(--oro); outline-offset: 2px; border-radius: 6px; }
@media (prefers-reduced-motion: reduce) { * { transition: none !important; animation: none !important; } }
[hidden] { display: none !important; }
.ico { flex: none; display: block; }

/* ── Estructura de la aplicación ─────────────────────────────────── */
.app { display: grid; grid-template-columns: var(--side-w) minmax(0, 1fr); min-height: 100vh; }
.sidebar { position: sticky; top: 0; height: 100vh; overflow-y: auto; display: flex; flex-direction: column; gap: 18px;
  background: var(--guilloche) 0 0 / 320px 120px, linear-gradient(180deg, var(--marino) 0%, var(--marino-2) 100%);
  color: #DCE1F5; padding: 22px 14px 18px; }
.sidebar .brand { display: flex; align-items: center; gap: 10px; padding: 0 8px; text-decoration: none; color: #fff; }
.sidebar .brand img { width: 38px; height: 38px; border-radius: 10px; }
.brand b { font: 800 1.28rem/1 var(--f-display); letter-spacing: .02em; color: inherit; }
.brand b em { font-style: normal; color: var(--oro); }
.org-chip { margin: 0 4px; padding: 10px 12px; border-radius: 10px; background: rgba(255, 255, 255, .07); border: 1px solid rgba(197, 160, 89, .28); }
.org-chip small { display: block; font-size: .74rem; color: #AEB6D8; }
.org-chip b { display: block; font-weight: 600; color: #fff; font-size: .92rem; line-height: 1.3; }
.nav-group { display: flex; flex-direction: column; gap: 2px; }
.nav-group > span { font-size: .75rem; color: #8F98C2; padding: 6px 12px 4px; }
.sidebar nav a { display: flex; align-items: center; gap: 11px; padding: 9px 12px; border-radius: 9px; color: #DCE1F5; text-decoration: none;
  font-weight: 500; font-size: .93rem; position: relative; }
.sidebar nav a .ico { opacity: .85; }
.sidebar nav a:hover { background: rgba(255, 255, 255, .07); color: #fff; }
.sidebar nav a[aria-current="page"] { background: rgba(197, 160, 89, .16); color: #fff; font-weight: 600; }
.sidebar nav a[aria-current="page"]::before { content: ""; position: absolute; left: -14px; top: 8px; bottom: 8px; width: 3px; border-radius: 0 3px 3px 0; background: var(--oro); }
.sidebar nav a[aria-current="page"] .ico { color: var(--oro); opacity: 1; }
.sidebar .count { margin-left: auto; font: 600 .72rem var(--f-body); background: var(--crit); color: #fff; padding: 1px 7px; border-radius: 999px; }
.side-foot { margin-top: auto; display: flex; flex-direction: column; gap: 10px; }
.user-chip { display: flex; align-items: center; gap: 10px; padding: 10px; border-radius: 10px; background: rgba(0, 0, 0, .18); }
.avatar { width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; background: var(--oro); color: var(--marino-2); font: 700 .85rem var(--f-display); flex: none; }
.user-chip div { min-width: 0; flex: 1; }
.user-chip b { display: block; color: #fff; font-size: .88rem; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.user-chip small { color: #AEB6D8; font-size: .76rem; }
.icon-btn { background: transparent; border: 0; color: #DCE1F5; padding: 6px; border-radius: 8px; cursor: pointer; display: grid; place-items: center; }
.icon-btn:hover { background: rgba(255, 255, 255, .1); color: #fff; }
.sidebar .legal { font-size: .74rem; color: #8F98C2; padding: 0 8px; margin: 0; line-height: 1.45; }
.demo-pill { align-self: flex-start; margin: 0 8px; font-size: .74rem; font-weight: 600; padding: 2px 10px; border-radius: 999px; background: var(--oro); color: var(--marino-2); }

.content { min-width: 0; padding: 28px clamp(16px, 3.2vw, 44px) 72px; }
.content > main { max-width: 1180px; margin: 0 auto; }
.mobile-top, .tabbar { display: none; }

@media (max-width: 900px) {
  .app { grid-template-columns: minmax(0, 1fr); }
  .sidebar { display: none; }
  .mobile-top { display: flex; position: sticky; top: 0; z-index: 30; align-items: center; gap: 10px;
    background: var(--guilloche) 0 0 / 320px 120px, var(--marino); color: #fff;
    padding: calc(10px + env(safe-area-inset-top, 0px)) max(16px, env(safe-area-inset-right)) 10px max(16px, env(safe-area-inset-left)); }
  .mobile-top .brand { display: flex; align-items: center; gap: 8px; color: #fff; text-decoration: none; }
  .mobile-top .brand img { width: 30px; height: 30px; border-radius: 8px; }
  .mobile-top .brand b { font-size: 1.08rem; }
  .mobile-top .spacer { flex: 1; }
  .mobile-top small { color: #AEB6D8; font-size: .78rem; max-width: 40vw; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .content { padding: 18px max(16px, env(safe-area-inset-right)) calc(92px + env(safe-area-inset-bottom, 0px)) max(16px, env(safe-area-inset-left)); }
  .tabbar { display: flex; position: fixed; inset: auto 0 0 0; z-index: 30; background: var(--surface); border-top: 1px solid var(--line);
    padding: 6px max(6px, env(safe-area-inset-right)) calc(6px + env(safe-area-inset-bottom, 0px)) max(6px, env(safe-area-inset-left)); }
  .tabbar a { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 3px; padding: 6px 2px; font-size: .72rem; color: var(--muted); text-decoration: none; border-radius: 10px; }
  .tabbar a[aria-current="page"] { color: var(--accent); font-weight: 600; background: var(--accent-soft); }
}

/* Portal del cliente: misma marca, sin menú lateral */
.portal-top { background: var(--guilloche) 0 0 / 320px 120px, var(--marino); color: #fff; }
.portal-top .in { max-width: 860px; margin: 0 auto; display: flex; align-items: center; gap: 12px; padding: calc(12px + env(safe-area-inset-top, 0px)) max(16px, env(safe-area-inset-right)) 12px max(16px, env(safe-area-inset-left)); }
.portal-top .brand { display: flex; align-items: center; gap: 9px; color: #fff; text-decoration: none; }
.portal-top .brand img { width: 32px; height: 32px; border-radius: 8px; }
.portal-top .spacer { flex: 1; }
.portal-top small { color: #AEB6D8; }
.portal-top .btn.ghost { background: transparent; color: #fff; border-color: rgba(255, 255, 255, .45); }
.portal-top .btn.ghost:hover { background: rgba(255, 255, 255, .1); }
.portal-main { max-width: 860px; margin: 0 auto; padding: 24px max(16px, env(safe-area-inset-right)) 64px max(16px, env(safe-area-inset-left)); }

/* ── Tipografía ─────────────────────────────────────────────────── */
h1 { font: 800 clamp(1.55rem, 2.6vw, 2rem)/1.15 var(--f-display); letter-spacing: -.02em; margin: 0 0 6px; text-wrap: balance; }
h2 { font: 700 1.14rem/1.3 var(--f-display); letter-spacing: -.01em; margin: 0 0 10px; text-wrap: balance; }
h3 { font: 600 1rem/1.35 var(--f-body); margin: 0 0 4px; }
.lead { color: var(--muted); max-width: 68ch; margin: 0 0 20px; }
.eyebrow { font-size: .82rem; font-weight: 500; color: var(--muted); margin: 0 0 4px; }
.eyebrow a { color: var(--muted); }
.note { font-size: .86rem; color: var(--muted); }
.code { font: .8rem var(--f-mono); background: var(--accent-soft); color: var(--accent); padding: 1px 7px; border-radius: 5px; white-space: nowrap; }
.code.fee { background: var(--stamp-soft); color: var(--stamp); }
.page-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; flex-wrap: wrap; margin-bottom: 4px; }
.page-head h1 { margin: 0; }
.page-head p { margin: 4px 0 0; color: var(--muted); }

/* ── Bloques ────────────────────────────────────────────────────── */
.stack { display: flex; flex-direction: column; gap: 18px; }
.row { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.panel { background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-lg); padding: 22px; box-shadow: var(--shadow); }
.panel > h2:first-child, .panel .row:first-child h2 { margin-bottom: 0; }
.grid2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.grid3 { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 18px; }
.grid3 h3 { margin: 0 0 8px; font-size: .95rem; }
@media (max-width: 760px) { .grid2 { grid-template-columns: minmax(0, 1fr); } }
.callout { border: 1px solid color-mix(in srgb, var(--warn) 30%, transparent); background: var(--warn-soft); padding: 11px 14px; border-radius: 10px; font-size: .92rem; }
.callout.crit { border-color: color-mix(in srgb, var(--crit) 30%, transparent); background: var(--crit-soft); }
.callout.ok { border-color: color-mix(in srgb, var(--ok) 30%, transparent); background: var(--ok-soft); }
.callout:not(.crit):not(.ok):not(.warn)[role="status"] { border-color: var(--line); background: var(--surface-2); }
.empty { text-align: center; padding: 36px 16px; color: var(--muted); border: 1.5px dashed var(--line); border-radius: var(--r-lg); background: var(--surface-2); }

/* ── Controles ──────────────────────────────────────────────────── */
.btn { font: 600 .92rem var(--f-body); cursor: pointer; border-radius: 10px; padding: 9px 16px; border: 1px solid var(--accent); background: var(--accent); color: var(--accent-ink);
  text-decoration: none; display: inline-flex; align-items: center; justify-content: center; gap: 7px; transition: background-color .15s, box-shadow .15s; }
.btn:hover { box-shadow: 0 6px 16px -8px color-mix(in srgb, var(--accent) 80%, transparent); }
.btn.ghost { background: var(--surface); color: var(--accent); border-color: var(--line); }
.btn.ghost:hover { border-color: var(--accent); box-shadow: none; }
.btn.gold { background: var(--oro); border-color: var(--oro); color: var(--marino-2); }
.btn.danger { background: transparent; color: var(--crit); border-color: color-mix(in srgb, var(--crit) 45%, transparent); }
.btn.small { padding: 5px 11px; font-size: .84rem; border-radius: 8px; }
.btn[disabled] { opacity: .45; cursor: not-allowed; box-shadow: none; }
.badge { font-size: .76rem; font-weight: 600; padding: 2px 10px; border-radius: 999px; white-space: nowrap; border: 1px solid transparent; }
.badge.ok { background: var(--ok-soft); color: var(--ok); border-color: color-mix(in srgb, var(--ok) 25%, transparent); }
.badge.warn { background: var(--warn-soft); color: var(--warn); border-color: color-mix(in srgb, var(--warn) 25%, transparent); }
.badge.crit { background: var(--crit-soft); color: var(--crit); border-color: color-mix(in srgb, var(--crit) 25%, transparent); }
.badge.idle { background: var(--surface-2); color: var(--muted); border-color: var(--line); }
.badge.accent { background: var(--accent-soft); color: var(--accent); border-color: color-mix(in srgb, var(--accent) 18%, transparent); }

.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 18px; }
@media (max-width: 700px) { .form-grid { grid-template-columns: minmax(0, 1fr); } }
.field { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.field.wide { grid-column: 1 / -1; }
.field label { font-size: .83rem; font-weight: 600; color: var(--ink); }
.field .hint { font-size: .78rem; color: var(--muted); }
.field input, .field select, .field textarea { font: inherit; font-size: .94rem; padding: 10px 12px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface); color: var(--ink);
  width: 100%; min-width: 0; transition: border-color .15s, box-shadow .15s; }
.field input:hover, .field select:hover, .field textarea:hover { border-color: color-mix(in srgb, var(--accent) 35%, var(--line)); }
.field input:focus, .field select:focus, .field textarea:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-soft); }
.field input::placeholder, .field textarea::placeholder { color: color-mix(in srgb, var(--muted) 70%, transparent); }
.field input:user-invalid { border-color: var(--crit); }
.check { display: flex; gap: 10px; align-items: flex-start; font-size: .93rem; grid-column: 1 / -1; }
.check input { margin-top: 4px; width: 18px; height: 18px; accent-color: var(--accent); }
fieldset { border: 0; margin: 0; padding: 0; }
fieldset + fieldset { margin-top: 6px; padding-top: 18px; border-top: 1px solid var(--line); }
.section-title { font: 700 .95rem var(--f-display); color: var(--ink); margin: 0 0 12px; display: flex; align-items: center; gap: 8px; }
.section-title::before { content: ""; width: 4px; height: 16px; border-radius: 2px; background: var(--oro); }

.opts { display: flex; flex-wrap: wrap; gap: 6px; }
.opts label { border: 1px solid var(--line); border-radius: 999px; padding: 6px 14px; cursor: pointer; font-size: .9rem; background: var(--surface); }
.opts input { position: absolute; opacity: 0; pointer-events: none; }
.opts label:has(input:checked) { border-color: var(--accent); background: var(--accent); color: var(--accent-ink); font-weight: 600; }
.opts label:has(input:focus-visible) { outline: 2px solid var(--oro); outline-offset: 2px; }
.segment { display: inline-flex; padding: 3px; gap: 2px; border-radius: 11px; background: var(--surface); border: 1px solid var(--line); }
.segment label { border: 0; padding: 6px 12px; border-radius: 8px; }

/* ── Listas y tarjetas ──────────────────────────────────────────── */
.card { border: 1px solid var(--line); border-radius: var(--r); padding: 16px; background: var(--surface); display: flex; flex-direction: column; gap: 8px; }
.card header { display: flex; gap: 8px; align-items: flex-start; flex-wrap: wrap; }
.card header h3 { flex: 1 1 auto; min-width: 0; margin: 0; }
.card ul { margin: 2px 0 0; padding-left: 18px; font-size: .9rem; }
a.card { text-decoration: none; color: inherit; transition: border-color .15s; } a.card:hover { border-color: var(--accent); }
.salida { border-left: 4px solid var(--accent); }
.salida.irrev { border-left-color: var(--crit); } .salida.lawyer { border-left-color: var(--oro); }
.pros-cons { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; font-size: .88rem; }
.pros-cons b { font-size: .82rem; color: var(--muted); }
@media (max-width: 700px) { .pros-cons { grid-template-columns: 1fr; } }
.finding { padding: 14px 16px; border-radius: var(--r); font-size: .93rem; border: 1px solid var(--line); background: var(--surface); display: flex; flex-direction: column; gap: 4px; }
.finding.alta { background: var(--crit-soft); border-color: color-mix(in srgb, var(--crit) 25%, transparent); }
.finding.media { background: var(--warn-soft); border-color: color-mix(in srgb, var(--warn) 25%, transparent); }

.timeline { list-style: none; margin: 0; padding: 0; }
.timeline li { display: grid; grid-template-columns: 112px 18px minmax(0, 1fr) auto; gap: 10px; padding-bottom: 16px; position: relative; align-items: start; }
.timeline time { font: .8rem var(--f-mono); color: var(--muted); padding-top: 2px; font-variant-numeric: tabular-nums; }
.timeline .dot { width: 12px; height: 12px; border-radius: 50%; border: 2px solid var(--accent); background: var(--surface); margin-top: 5px; }
.timeline li.done .dot { background: var(--accent); }
.timeline li::after { content: ""; position: absolute; left: 127px; top: 20px; bottom: 0; width: 2px; background: var(--line); }
.timeline li:last-child::after { display: none; }
@media (max-width: 520px) { .timeline li { grid-template-columns: 84px 16px minmax(0, 1fr); } .timeline li > :last-child:not(div) { grid-column: 3; } .timeline li::after { left: 98px; } }

.doc { display: grid; grid-template-columns: 26px minmax(0, 1fr) auto; gap: 12px; align-items: start; padding: 14px 0; border-top: 1px solid var(--line); }
.doc:first-child { border-top: 0; }
.doc .chk { width: 22px; height: 22px; border-radius: 6px; border: 2px solid var(--line); display: grid; place-items: center; color: var(--surface); font-size: .8rem; margin-top: 2px; }
.doc.ok .chk { background: var(--ok); border-color: var(--ok); }
.doc p { margin: 2px 0 0; font-size: .88rem; color: var(--muted); }
.fname { font: .75rem var(--f-mono); color: var(--ok); word-break: break-all; }
.upload { position: relative; overflow: hidden; }
.upload input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.progress { height: 6px; background: var(--surface-2); border-radius: 999px; overflow: hidden; }
.progress i { display: block; height: 100%; background: var(--accent); border-radius: 999px; transition: width .3s; }

/* Pasos del expediente: como los sellos de entrada de un pasaporte */
.steps { display: flex; overflow-x: auto; padding: 4px 0 2px; }
.step { flex: 1 0 96px; display: flex; flex-direction: column; align-items: center; gap: 6px; font-size: .8rem; color: var(--muted); position: relative; text-align: center; padding: 0 4px; }
.step::before { content: ""; position: absolute; top: 15px; left: -50%; width: 100%; height: 2px; background: var(--line); }
.step:first-child::before { display: none; }
.step.done::before, .step.now::before { background: var(--oro); }
.step .n { width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center; font: 700 .82rem var(--f-display); background: var(--surface); border: 2px solid var(--line); position: relative; z-index: 1; }
.step.done .n { background: var(--marino); border-color: var(--marino); color: var(--oro-claro); }
.step.now .n { border-color: var(--oro); color: var(--marino); box-shadow: 0 0 0 4px var(--stamp-soft); }
.step.now { color: var(--ink); font-weight: 600; }

.tbl-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: var(--r-lg); background: var(--surface); box-shadow: var(--shadow); }
.panel .tbl-wrap { box-shadow: none; }
table { border-collapse: collapse; width: 100%; min-width: 640px; font-size: .9rem; }
th, td { text-align: left; padding: 11px 14px; border-top: 1px solid var(--line); vertical-align: top; }
thead th { border-top: 0; font-size: .8rem; font-weight: 600; color: var(--muted); background: var(--surface-2); }
tbody tr:hover td { background: color-mix(in srgb, var(--accent-soft) 45%, transparent); }

.toast { position: fixed; left: 50%; bottom: calc(24px + env(safe-area-inset-bottom, 0px)); transform: translateX(-50%); background: var(--marino); color: #fff; padding: 11px 18px;
  border-radius: 10px; font-weight: 600; z-index: 50; max-width: calc(100vw - 32px); box-shadow: 0 12px 30px -12px rgba(18, 26, 69, .6); border-left: 4px solid var(--oro); }
@media (max-width: 900px) { .toast { bottom: calc(86px + env(safe-area-inset-bottom, 0px)); } }

/* ── Acceso: panel de marca + formulario ────────────────────────── */
.auth-wrap { min-height: 100vh; display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); }
.auth-brand { background: var(--guilloche) 0 0 / 320px 120px, radial-gradient(120% 80% at 20% 10%, var(--marino-3) 0%, var(--marino) 45%, var(--marino-2) 100%);
  color: #fff; padding: clamp(28px, 6vw, 72px); display: flex; flex-direction: column; justify-content: space-between; gap: 32px; }
.auth-brand img { width: min(340px, 80%); height: auto; }
.auth-brand h2 { font: 800 clamp(1.6rem, 3vw, 2.4rem)/1.15 var(--f-display); letter-spacing: -.02em; color: #fff; max-width: 18ch; margin: 0; }
.auth-brand ul { list-style: none; margin: 18px 0 0; padding: 0; display: flex; flex-direction: column; gap: 10px; color: #DCE1F5; max-width: 46ch; }
.auth-brand li { display: flex; gap: 10px; align-items: flex-start; }
.auth-brand li .ico { color: var(--oro); margin-top: 2px; }
.mrz { font: 500 clamp(.62rem, 1.1vw, .8rem)/1.5 var(--f-mono); letter-spacing: .18em; color: rgba(232, 214, 166, .55); white-space: nowrap; overflow: hidden; }
.auth-form { display: flex; align-items: center; justify-content: center; padding: clamp(24px, 5vw, 56px) 16px; }
.auth-form > div { width: min(420px, 100%); }
.auth-form h1 { margin-bottom: 4px; }
@media (max-width: 900px) {
  .auth-wrap { grid-template-columns: minmax(0, 1fr); }
  .auth-brand { padding: 28px 20px 24px; gap: 18px; }
  .auth-brand img { width: min(220px, 60%); }
  .auth-brand ul, .auth-brand .mrz { display: none; }
}
.auth { max-width: 460px; margin: 6vh auto; padding: 0 16px; }
.auth-logo { display: block; width: min(240px, 70%); height: auto; margin: 0 auto 24px; }

/* ── Cuadro de mando ────────────────────────────────────────────── */
/* Tarjeta principal: la «página de datos» del pasaporte del despacho */
.pass { position: relative; overflow: hidden; border-radius: var(--r-lg); color: #fff; padding: 24px 26px 0;
  background: var(--guilloche) 0 0 / 320px 120px, linear-gradient(135deg, var(--marino-3) 0%, var(--marino) 55%, var(--marino-2) 100%);
  box-shadow: 0 18px 40px -24px rgba(18, 26, 69, .8); display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 8px 32px; }
.pass h2 { color: #fff; font-size: 1rem; font-weight: 600; margin: 0 0 14px; display: flex; align-items: center; gap: 8px; }
.pass h2 .ico { color: var(--oro); }
.pass .hero-num { display: flex; align-items: baseline; gap: 14px; }
.pass .hero-num b { font: 800 clamp(3rem, 6vw, 4.4rem)/.95 var(--f-display); letter-spacing: -.03em; color: var(--oro-claro); font-variant-numeric: tabular-nums; }
.pass .hero-num span { color: #DCE1F5; max-width: 22ch; }
.pass .sub { display: flex; gap: 22px; flex-wrap: wrap; margin-top: 18px; }
.pass .sub a { color: #fff; text-decoration: none; display: flex; flex-direction: column; padding: 8px 12px; border-radius: 10px; background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .1); min-width: 120px; }
.pass .sub a:hover { background: rgba(255, 255, 255, .12); }
.pass .sub b { font: 700 1.35rem var(--f-display); font-variant-numeric: tabular-nums; }
.pass .sub b.crit { color: #FFB4A6; }
.pass .sub small { color: #AEB6D8; font-size: .78rem; }
.pass .next { background: rgba(0, 0, 0, .18); border-radius: 12px; padding: 14px 16px; align-self: start; }
.pass .next h3 { color: var(--oro-claro); font-size: .85rem; font-weight: 600; margin: 0 0 8px; }
.pass .next ol { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.pass .next li { display: grid; grid-template-columns: 54px minmax(0, 1fr); gap: 10px; align-items: start; font-size: .88rem; }
.pass .next li time { font: 600 .78rem var(--f-mono); color: var(--oro-claro); padding-top: 1px; }
.pass .next li a { color: #fff; font-weight: 600; text-decoration: none; }
.pass .next li small { display: block; color: #AEB6D8; font-size: .78rem; }
.pass .mrz { grid-column: 1 / -1; margin: 18px -26px 0; padding: 10px 26px 12px; background: rgba(0, 0, 0, .22); border-top: 1px solid rgba(197, 160, 89, .25); }
@media (max-width: 900px) { .pass { grid-template-columns: minmax(0, 1fr); padding: 20px 18px 0; } .pass .mrz { margin: 12px -18px 0; padding-inline: 18px; } }

.big-num { font: 800 1.75rem/1.1 var(--f-display); font-variant-numeric: tabular-nums; letter-spacing: -.02em; }
.kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 14px; }
.kpi { border: 1px solid var(--line); border-radius: var(--r-lg); padding: 16px; background: var(--surface); box-shadow: var(--shadow); display: flex; flex-direction: column; gap: 4px; }
.kpi .eyebrow { margin: 0; display: flex; align-items: center; gap: 8px; color: var(--ink); font-weight: 600; font-size: .86rem; }
.kpi-ico { width: 32px; height: 32px; border-radius: 9px; display: grid; place-items: center; background: var(--accent-soft); color: var(--accent); flex: none; }
.kpi.crit .kpi-ico { background: var(--crit-soft); color: var(--crit); } .kpi.warn .kpi-ico { background: var(--warn-soft); color: var(--warn); }
.kpi.ok .kpi-ico { background: var(--ok-soft); color: var(--ok); } .kpi.gold .kpi-ico { background: var(--stamp-soft); color: var(--stamp); }
.kpi .big-num { margin-top: 6px; }
a.kpi { text-decoration: none; color: inherit; transition: border-color .15s; } a.kpi:hover { border-color: var(--accent); }

/* Embudo comercial y listas compactas */
.funnel { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; }
.funnel li { position: relative; background: var(--surface-2); border: 1px solid var(--line); border-radius: 12px; padding: 12px 14px; display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.funnel li b { font: 800 1.55rem/1.1 var(--f-display); font-variant-numeric: tabular-nums; }
.funnel li span { font-size: .8rem; color: var(--muted); line-height: 1.25; }
.funnel li.crit { background: var(--crit-soft); border-color: color-mix(in srgb, var(--crit) 25%, transparent); } .funnel li.crit b { color: var(--crit); }
.funnel li.ok { background: var(--ok-soft); border-color: color-mix(in srgb, var(--ok) 25%, transparent); } .funnel li.ok b { color: var(--ok); }
.funnel li:not(:last-child)::after { content: ""; position: absolute; right: -7px; top: 50%; width: 6px; height: 6px; border-top: 2px solid var(--muted); border-right: 2px solid var(--muted); transform: translateY(-50%) rotate(45deg); z-index: 1; opacity: .5; }
.mini { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
@media (max-width: 640px) { .funnel { grid-template-columns: repeat(2, minmax(0, 1fr)); } .funnel li::after { display: none; } }
.bar-row { text-decoration: none; color: inherit; display: flex; flex-direction: column; gap: 6px; padding: 6px 0; }
.bar-row:hover b { color: var(--accent); }
.progress.big { height: 10px; }

/* ── Seguimiento del cliente ────────────────────────────────────── */
.timeline.seg li.hito .dot { background: var(--warn); border-color: var(--warn); }
.timeline.seg li.today .dot { background: var(--oro); border-color: var(--oro); width: 14px; height: 14px; }
.timeline.seg li.today b { font-size: .86rem; color: var(--stamp); }
.timeline.seg li.next .dot { border-style: dashed; }
.timeline.seg li.next b { color: var(--muted); }
.notice { display: grid; grid-template-columns: 10px minmax(0, 1fr) auto; gap: 10px; padding: 10px 0; border-bottom: 1px solid var(--line); }
.notice:last-child { border-bottom: 0; }
.notice .pip { width: 8px; height: 8px; border-radius: 50%; background: var(--accent); margin-top: 7px; }
.notice.plazo .pip, .notice.preaviso .pip { background: var(--warn); }
.notice.read .pip { background: transparent !important; }
.upload-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.upload-list li { display: flex; justify-content: space-between; gap: 8px; font-size: .9rem; }
.read-box { border: 1px solid var(--line); border-radius: 10px; padding: 12px 14px; background: var(--surface-2); display: flex; flex-direction: column; gap: 4px; }
.pw-rules { list-style: none; margin: 4px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 4px 12px; font-size: .82rem; color: var(--muted); }
.pw-rules li.ok { color: var(--ok); }
details.clausula { border-bottom: 1px solid var(--line); padding: 8px 0; }
details.clausula summary { cursor: pointer; font-weight: 600; }
@media (max-width: 900px) { .hide-m { display: none !important; } }

/* Ficha del cliente: cabecera tipo documento de identidad */
.ficha { display: flex; gap: 18px; align-items: center; padding: 18px 20px; border-radius: var(--r-lg); background: var(--surface); border: 1px solid var(--line); box-shadow: var(--shadow); position: relative; overflow: hidden; }
.ficha::after { content: ""; position: absolute; inset: 0 0 0 auto; width: 38%; background: var(--guilloche) 0 0 / 320px 120px; opacity: .55; pointer-events: none;
  mask-image: linear-gradient(90deg, transparent, #000 60%); -webkit-mask-image: linear-gradient(90deg, transparent, #000 60%); }
.ficha-av { width: 64px; height: 64px; border-radius: 16px; display: grid; place-items: center; background: var(--marino); color: var(--oro-claro); font: 800 1.35rem var(--f-display); flex: none; }
.ficha-main { min-width: 0; position: relative; z-index: 1; }
.ficha-main h1 { margin: 0 0 8px; }
.ficha-datos { display: flex; flex-wrap: wrap; gap: 6px 26px; font-size: .9rem; }
.ficha-datos span { display: flex; flex-direction: column; }
.ficha-datos small { font-size: .76rem; color: var(--muted); }
.docnum { font: 600 .9rem var(--f-mono); letter-spacing: .04em; }
@media (max-width: 600px) { .ficha { align-items: flex-start; padding: 16px; } .ficha-av { width: 48px; height: 48px; border-radius: 12px; font-size: 1.05rem; } }

/* Pestañas */
.tabs { display: flex; gap: 2px; border-bottom: 1px solid var(--line); overflow-x: auto; scrollbar-width: none; }
.tabs a { padding: 10px 14px; color: var(--muted); text-decoration: none; font-weight: 600; font-size: .92rem; border-bottom: 2px solid transparent; margin-bottom: -1px; white-space: nowrap; display: flex; align-items: center; gap: 6px; }
.tabs a:hover { color: var(--ink); }
.tabs a[aria-current="page"] { color: var(--accent); border-bottom-color: var(--oro); }
.tab-count { font-size: .72rem; background: var(--crit); color: #fff; border-radius: 999px; padding: 0 7px; }

/* Enlaces dentro de tablas, listas y tarjetas: limpios, subrayado solo al pasar */
td a, .mini a, .card a, .finding a, .timeline a { text-decoration: none; font-weight: 600; }
td a:hover, .mini a:hover, .card a:hover, .finding a:hover, .timeline a:hover { text-decoration: underline; }
.pass .hero-num { align-items: center; }
.pass .hero-num span { max-width: 26ch; }
@media (max-width: 600px) { .pass .sub { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; } .pass .sub a { min-width: 0; padding: 8px; } .pass .sub small { font-size: .7rem; line-height: 1.2; } }

/* Grupos de plazos y lista de equipo */
.group-h { display: flex; align-items: center; gap: 8px; margin-bottom: 14px !important; }
.panel.group-crit { border-left: 4px solid var(--crit); }
.panel.group-warn { border-left: 4px solid var(--oro); }
.panel.group-accent { border-left: 4px solid var(--accent); }
.member { display: flex; gap: 14px; align-items: flex-start; padding: 14px 0; border-top: 1px solid var(--line); }
.member:first-of-type { border-top: 0; }
.member .avatar { background: var(--marino); color: var(--oro-claro); width: 40px; height: 40px; }
.member-main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
@media (max-width: 600px) { .member { flex-wrap: wrap; } }

/* Checklist por fases */
.chk-preview { border: 1px solid var(--line); border-radius: var(--r-lg); background: var(--surface-2); padding: 18px; display: flex; flex-direction: column; gap: 14px; }
.chk-preview > header { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; flex-wrap: wrap; }
.chk-preview h3 { font: 700 1.05rem var(--f-display); margin: 0; }
.fases { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; counter-reset: fase; }
.fase { background: var(--surface); border: 1px solid var(--line); border-radius: var(--r); padding: 14px 16px; counter-increment: fase; }
.fase h4 { display: flex; align-items: center; gap: 10px; margin: 0 0 10px; font: 700 .95rem var(--f-display); }
.fase h4::before { content: counter(fase); width: 24px; height: 24px; border-radius: 50%; display: grid; place-items: center; background: var(--marino); color: var(--oro-claro); font-size: .78rem; flex: none; }
.fase-ico { color: var(--muted); display: none; }
.fase ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.fase ul li { padding: 9px 0 9px 34px; border-top: 1px solid var(--line); position: relative; }
.fase ul li:first-child { border-top: 0; padding-top: 2px; }
.fase ul li::before { content: ""; position: absolute; left: 8px; top: 15px; width: 10px; height: 10px; border-radius: 3px; border: 1.5px solid var(--muted); }
.fase ul li:first-child::before { top: 8px; }
.fase-tasas ul li::before, .fase-presentacion ul li::before { border-radius: 50%; }
.doc-meta { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 6px; }
.doc-meta:empty { display: none; }
.badge.gold-b { background: var(--stamp-soft); color: var(--stamp); border-color: color-mix(in srgb, var(--oro) 35%, transparent); }
.fase-head { display: flex; align-items: center; gap: 10px; margin: 0; font: 700 1.05rem var(--f-display); }
.fase-head .n { width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; background: var(--marino); color: var(--oro-claro); font-size: .85rem; flex: none; }

/* ── Buscador público «¿Qué visado necesitas?» ─────────────────────────── */
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.pub { min-height: 100vh; display: flex; flex-direction: column; background: var(--bg); }
.pub-top { background: var(--marino-2); color: #fff; }
.pub-top .in, .pub-main, .pub-foot .in { width: 100%; max-width: 920px; margin: 0 auto; padding-left: max(16px, env(safe-area-inset-left)); padding-right: max(16px, env(safe-area-inset-right)); }
.pub-top .in { display: flex; align-items: center; gap: 12px; padding-top: 12px; padding-bottom: 12px; }
.pub-top .brand { display: flex; align-items: center; gap: 9px; color: #fff; text-decoration: none; }
.pub-top .brand img { border-radius: 8px; }
.pub-top .spacer { flex: 1; }
.pub-org { text-align: right; font-weight: 600; line-height: 1.2; }
.pub-org small { display: block; font-weight: 400; color: #AEB6D8; font-size: .74rem; }
.pub-link { color: #E8D6A6; font-size: .9rem; }
.pub-main { flex: 1; display: flex; flex-direction: column; gap: 22px; padding-top: 22px; padding-bottom: 40px; }
.pub-hero { border-radius: var(--r-lg); color: #fff; padding: clamp(22px, 5vw, 44px);
  background: var(--guilloche) 0 0 / 320px 120px, linear-gradient(160deg, var(--marino) 0%, var(--marino-2) 100%); }
.pub-hero h1 { color: #fff; font: 800 clamp(1.6rem, 4.6vw, 2.5rem)/1.12 var(--f-display); letter-spacing: -.01em; margin: 0 0 10px; max-width: 22ch; }
.pub-hero > p { color: #D4DAF0; max-width: 60ch; margin: 0 0 18px; }
.pub-hero .pub-intro { color: var(--oro-claro); font-weight: 500; }
.pub-seg { display: inline-flex; gap: 2px; padding: 3px; border-radius: 11px; background: rgba(255, 255, 255, .08); border: 1px solid rgba(197, 160, 89, .35); margin-bottom: 14px; }
.pub-seg button { border: 0; background: transparent; color: #DCE1F5; padding: 7px 14px; border-radius: 8px; font: 600 .9rem var(--f-body); cursor: pointer; }
.pub-seg button[aria-selected="true"] { background: var(--oro); color: var(--marino-2); }
.pub-search { display: flex; align-items: center; gap: 10px; background: #fff; color: var(--marino); border-radius: 14px; padding: 6px 8px 6px 14px; border: 2px solid transparent; }
.pub-search:focus-within { border-color: var(--oro); }
.pub-search input { flex: 1; border: 0; outline: 0; font: 500 1.05rem var(--f-body); padding: 12px 4px; background: transparent; color: var(--ink); min-width: 0; }
.pub-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.pub-chips button { border: 1px solid rgba(232, 214, 166, .45); background: transparent; color: #E8D6A6; border-radius: 999px; padding: 5px 12px; font: 500 .85rem var(--f-body); cursor: pointer; }
.pub-chips button:hover { background: rgba(232, 214, 166, .12); }
.pub-sec h2 { font: 700 1.2rem var(--f-display); margin: 0 0 12px; }
.pub-sec h3 { font: 700 1rem var(--f-display); margin: 18px 0 10px; }
.pub-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.pub-card { width: 100%; text-align: left; display: flex; flex-direction: column; gap: 6px; padding: 14px 16px; border-radius: var(--r); background: var(--surface);
  border: 1px solid var(--line); border-left: 4px solid var(--line); cursor: pointer; font: inherit; color: inherit; }
.pub-card:hover { border-color: var(--marino-3); border-left-color: var(--oro); }
.pub-card.best { border-left-color: var(--oro); }
.pub-card-h { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.pub-card-h b { font: 700 1.02rem var(--f-display); color: var(--marino); }
.pub-why { color: var(--ok); font-weight: 600; font-size: .9rem; }
.pub-meta { display: flex; flex-wrap: wrap; gap: 6px 14px; color: var(--muted); font-size: .84rem; }
.pub-q { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.pub-q li.dim { opacity: .55; }
.pub-q fieldset { border: 0; margin: 0; padding: 14px 16px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--r); }
.pub-q legend { font-weight: 700; display: flex; align-items: center; gap: 10px; padding: 0; margin-bottom: 10px; float: left; width: 100%; }
.pub-q .n { width: 24px; height: 24px; border-radius: 50%; display: grid; place-items: center; background: var(--marino); color: var(--oro-claro); font: 700 .78rem var(--f-display); flex: none; }
.pub-opts { clear: both; display: flex; flex-wrap: wrap; gap: 8px; }
.pub-opts label { display: flex; align-items: center; gap: 6px; border: 1px solid var(--line); border-radius: 999px; padding: 6px 14px; cursor: pointer; font-size: .92rem; background: var(--surface-2); }
.pub-opts label.on { border-color: var(--marino); background: var(--accent-soft); font-weight: 600; }
.pub-opts input { position: absolute; opacity: 0; pointer-events: none; }
.pub-opts label:focus-within { outline: 2px solid var(--oro); outline-offset: 2px; }
.pub-cat { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 6px 22px; }
.pub-cat ul { margin: 0; padding-left: 18px; display: grid; gap: 4px; font-size: .92rem; }
.pub-ficha { background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-lg); overflow: hidden; display: flex; flex-direction: column; gap: 18px; padding-bottom: 22px; }
.pub-ficha > :not(header) { margin-left: clamp(16px, 4vw, 28px); margin-right: clamp(16px, 4vw, 28px); }
.pub-ficha-h { color: #fff; padding: clamp(18px, 4vw, 28px); background: var(--guilloche) 0 0 / 320px 120px, var(--marino); }
.pub-ficha-h .code { color: var(--oro-claro); font: 500 .8rem var(--f-mono); letter-spacing: .14em; }
.pub-ficha-h h1 { color: #fff; font: 800 clamp(1.4rem, 3.6vw, 2rem)/1.15 var(--f-display); margin: 6px 0 8px; }
.pub-ficha-h p { color: #D4DAF0; margin: 0; max-width: 62ch; }
.pub-ficha h2 { font: 700 1.05rem var(--f-display); margin: 0 0 10px; }
.pub-datos { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; margin-top: 0; margin-bottom: 0; }
.pub-datos div { border-top: 2px solid var(--oro); padding-top: 8px; }
.pub-datos dt { font-size: .78rem; color: var(--muted); font-weight: 600; }
.pub-datos dd { margin: 2px 0 0; font-weight: 500; }
.pub-check, .pub-docs { margin: 0; padding-left: 20px; display: grid; gap: 6px; }
.pub-docs li { display: flex; flex-direction: column; }
.pub-cta { background: var(--surface); border: 1px solid var(--line); border-top: 4px solid var(--oro); border-radius: var(--r-lg); padding: clamp(16px, 4vw, 26px); display: flex; flex-direction: column; gap: 12px; }
.pub-cta h2 { font: 700 1.15rem var(--f-display); margin: 0; }
.pub-cta.ok { border-top-color: var(--ok); }
.pub-trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.pub-foot { border-top: 1px solid var(--line); background: var(--surface); }
.pub-foot .in { padding-top: 16px; padding-bottom: calc(16px + env(safe-area-inset-bottom, 0px)); font-size: .85rem; color: var(--muted); }
.pub-foot p { margin: 4px 0; }
.pub-ficha-h .code { background: rgba(255, 255, 255, .1); border: 1px solid rgba(232, 214, 166, .35); padding: 2px 8px; border-radius: 6px; display: inline-block; }
