/* Utilidades generadas para CSP sin unsafe-inline: sustituyen los style="" inline
   de las vistas. Cargado tras styles.css. Editar la vista, no este fichero. */
.u1 { align-self: flex-start; }
.u2 { border-left: 3px solid var(--pico-secondary); background: var(--pico-secondary-background, #f0f0f0); padding: 0.75rem 1rem; }
.u3 { color: var(--coral); }
.u4 { color: var(--coral-dark); background: var(--coral-soft); border: 1px solid rgba(231,76,92,0.25); padding: 0.55rem 0.8rem; border-radius: var(--radius); font-size: 0.88rem; }
.u5 { color: var(--danger); }
.u6 { color: var(--success); }
.u7 { color: var(--text-muted); }
.u8 { color: var(--text-muted); font-size: 0.85rem; }
.u9 { color: var(--text-muted); font-size: 0.85rem; padding: 1rem 0; }
.u10 { color: var(--text-muted); font-size: 0.9rem; }
.u11 { color: var(--text-muted); font-size:0.9rem; margin-top:0.2rem; }
.u12 { color: var(--text-muted); margin-top: 1.5rem; font-size: 0.85rem; }
.u13 { color: var(--text-muted); margin-top: 1rem; font-size: 0.85rem; }
.u14 { color: var(--text-muted); margin-top: 2rem; }
.u15 { color: var(--text-muted); margin-top: 2rem; font-size: 0.85rem; }
.u16 { color:var(--text-muted); }
.u17 { display: flex; gap: 0.5rem; align-items: center; flex-wrap: wrap; }
.u18 { display: flex; gap: 0.5rem; flex-wrap: wrap; align-items: center; }
.u19 { display: flex; gap: 0.75rem; flex-wrap: wrap; align-items: end; margin-bottom: 1.25rem; padding: 0.9rem 1rem; border: 1px solid var(--border); border-radius: 10px; background: var(--bg-soft); }
.u20 { display: flex; gap: 1.5rem; align-items: center; flex-wrap: wrap; }
.u21 { display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap; align-items: flex-start; }
.u22 { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 0.75rem; align-items: end; margin-bottom: 0.5rem; }
.u23 { display:flex; gap: 0.5rem; align-items: center; flex-wrap: wrap; }
.u24 { display:flex; gap: 0.5rem; align-items:center; margin-top: 0.75rem; }
.u25 { display:flex; gap:0.3rem; }
.u26 { display:flex; gap:0.5rem; align-items:center; flex-wrap:wrap; }
.u27 { display:flex; gap:0.8rem; align-items:flex-start; flex-wrap:wrap; }
.u28 { display:flex; justify-content: space-between; align-items: center; gap: 1rem; }
.u29 { display:flex; justify-content: space-between; align-items: flex-start; gap: 1rem; flex-wrap: wrap; }
.u30 { display:flex; margin-top: 0.5rem; }
.u31 { display:grid; grid-template-columns: 2fr 1fr auto; gap:0.5rem; margin-bottom:1rem; }
.u32 { display:inline-flex; gap:0.35rem; align-items:center; }
.u33 { flex: 1 1 240px; margin: 0; }
.u34 { flex: 1; min-width: 240px; display: flex; flex-direction: column; gap: 0.6rem; }
.u35 { flex:1; min-width:0; }
.u36 { font-size:0.85rem; color:var(--text-muted); }
.u37 { font-variant-numeric: tabular-nums; }
.u38 { list-style:none; padding-left:0; margin:0; }
.u39 { margin-bottom: 0.25rem; }
.u40 { margin-bottom: 0.25rem; }
.u41 { margin-bottom: 1.25rem; display: flex; gap: 0.5rem; flex-wrap: wrap; }
.u42 { margin-bottom: 1.4rem; }
.u43 { margin-bottom: 1.5rem; }
.u44 { margin-bottom: 1rem; }
.u45 { margin-bottom: 1rem; display:flex; gap: 0.4rem; flex-wrap: wrap; }
.u46 { margin-bottom:0; }
.u47 { margin-bottom:1rem; color: var(--text-muted); font-size: 0.9rem; }
.u48 { margin-left: auto; }
.u49 { margin-left:0.4rem; }
.u50 { margin-left:0.4rem; color: var(--text-muted); }
.u51 { margin-left:0.4rem; font-variant-numeric: tabular-nums; }
.u52 { margin-top: 0.6rem; }
.u53 { margin-top: 1.25rem; }
.u54 { margin-top: 1.4rem; }
.u55 { margin-top: 1.5rem; }
.u56 { margin-top: 1.5rem; }
.u57 { margin-top: 1.5rem; font-size: 0.8rem; color: var(--text-muted); }
.u58 { margin-top: 1rem; }
.u59 { margin-top: 2.5rem; }
.u60 { margin-top: 2rem; }
.u61 { margin-top: 2rem; color: var(--text-muted); font-size: 0.9rem; }
.u62 { margin: 0 0 0.2rem; color: var(--text-muted); font-size: 0.72rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.09em; }
.u63 { margin: 0 0 0.35rem; }
.u64 { margin: 0 0 1rem; color: var(--text-muted); }
.u65 { margin: 0.4rem 0 0; }
.u66 { margin: 0; }
.u67 { margin: 0; color: var(--text-muted); }
.u68 { margin: 0; color: var(--text-soft); font-size: 0.92rem; max-width: 60ch; }
.u69 { margin: 0; color: var(--text-soft); font-size: 0.92rem; max-width: 70ch; }
.u70 { margin: 0; display: flex; flex-direction: column; gap: 0.5rem; }
.u71 { margin: 2rem 0 1rem; }
.u72 { margin:0; }
.u73 { margin:0.4rem 0 0.4rem 1.1rem; padding:0; }
.u74 { max-width: 100%; border: 1px solid var(--border); border-radius: 8px; }
.u75 { max-width: 180px; max-height: 90px; object-fit: contain; background: #ffffff; padding: 0.6rem; border-radius: 8px; border: 1px solid var(--border); }
.u76 { max-width: 460px; margin: 3.5rem auto 1rem; }
.u77 { max-width:340px; margin:0; }
.u78 { min-width: 140px; }
.u79 { min-width:220px; }
.u80 { min-width:8rem; color: var(--text-muted); font-size:0.85rem; }
.u81 { overflow-x:auto; }
.u82 { padding: 0.15rem 0.45rem; font-size: 0.72rem; }
.u83 { padding: 0.25rem 0.6rem; font-size: 0.78rem; }
.u84 { padding: 0.3rem 0.7rem; font-size: 0.82rem; margin: 0; }
.u85 { padding:0.2rem 0.5rem; }
.u86 { padding:0.2rem 0.6rem; }
.u87 { padding:0.2rem 0.6rem; margin:0; }
.u88 { padding:0.3rem 0.7rem;font-size:0.78rem; }
.u89 { padding:0.7rem 0; border-bottom:1px solid var(--border, var(--pico-muted-border-color)); }
.u90 { position:absolute;width:0;height:0;overflow:hidden; }
.u91 { text-align: center; color: var(--text-muted); font-size: 0.78rem; margin: 1rem auto 3rem; max-width: 460px; }
.u92 { text-align:right; }
.u93 { text-align:right; font-variant-numeric: tabular-nums; }
.u94 { text-align:right; width:90px; }
.u95 { white-space: pre-wrap; }
.u96 { white-space: pre-wrap; margin: 0; }
.u97 { width: 100%; }
.u98 { width: 50px; height: 50px; object-fit: cover; border-radius: 4px; }
.u99 { width:100%; height:340px; border-radius:0.5rem; margin-bottom:1.25rem; z-index:0; }
.u100 { width:100px; }
.u101 { width:100px; text-align:right; }
.u102 { width:110px; }
.u103 { width:110px; text-align:right; }
.u104 { width:120px; }
.u105 { width:120px; text-align:right; }
.u106 { width:130px; }
.u107 { width:140px; }
.u108 { width:140px; text-align:right; }
.u109 { width:160px; }
.u110 { width:160px; text-align:right; }
.u111 { width:170px; }
.u112 { width:180px; }
.u113 { width:200px; }
.u114 { width:60px; }
.u115 { width:80px; text-align:right; }
.u116 { width:90px; }
.u117 { width:90px; text-align:right; }
.u118 { width:auto; }

/* Clases semánticas (antes style="" dinámico). Avisos de gasto/perfil. */
.aviso { margin-bottom: 1rem; border-left: 3px solid; padding: 0.75rem 1rem; }
.aviso-success { border-left-color: var(--success); background: var(--success-soft); }
.aviso-success strong { color: var(--success); }
.aviso-danger { border-left-color: var(--danger); background: var(--danger-soft); }
.aviso-danger strong { color: var(--danger); }
.aviso-navy { border-left-color: var(--navy); background: var(--navy-soft); }
.aviso-navy strong { color: var(--navy); }

/* Popup del mapa de notas (antes style="" inline en el HTML inyectado por Leaflet). */
.map-popup { max-width: 240px; }
.map-popup-meta { margin: 0 0 .35rem 0; font-size: .85rem; color: #666; }
.map-popup-text { margin: 0 0 .5rem 0; }
