/* Iconos locales CABNA V69: sin webfont ni CDN. */
.ti{display:inline-flex;align-items:center;justify-content:center;width:1.15em;height:1.15em;line-height:1;font-style:normal;font-family:"Segoe UI Symbol","Arial Unicode MS",system-ui,sans-serif;font-weight:600;vertical-align:-.12em;flex:0 0 auto}
.ti::before{content:"•"}
.ti-alert-circle::before{content:"!"}
.ti-alert-triangle::before{content:"⚠"}
.ti-arrow-left::before{content:"←"}
.ti-arrow-right::before{content:"→"}
.ti-ball-football::before{content:"●"}
.ti-bell::before{content:"♢"}
.ti-bell-off::before{content:"×"}
.ti-bolt::before{content:"ϟ"}
.ti-brand-whatsapp::before{content:"◉"}
.ti-broom::before{content:"⌁"}
.ti-building-bank::before{content:"▥"}
.ti-building-community::before{content:"▦"}
.ti-calculator::before{content:"▤"}
.ti-calendar::before{content:"▣"}
.ti-calendar-dollar::before{content:"$"}
.ti-calendar-event::before{content:"▣"}
.ti-camera::before{content:"▧"}
.ti-cash::before{content:"$"}
.ti-category::before{content:"▦"}
.ti-chart-bar::before{content:"▥"}
.ti-chart-donut::before{content:"◔"}
.ti-check::before{content:"✓"}
.ti-chevron-left::before{content:"‹"}
.ti-chevron-right::before{content:"›"}
.ti-circle-check::before{content:"✓"}
.ti-clock::before{content:"◷"}
.ti-clock-play::before{content:"▷"}
.ti-copy::before{content:"▣"}
.ti-credit-card::before{content:"▭"}
.ti-database::before{content:"▱"}
.ti-database-cog::before{content:"⚙"}
.ti-database-exclamation::before{content:"!"}
.ti-database-plus::before{content:"+"}
.ti-device-floppy::before{content:"▣"}
.ti-device-mobile::before{content:"▯"}
.ti-device-mobile-check::before{content:"✓"}
.ti-device-mobile-down::before{content:"↓"}
.ti-devices::before{content:"▯"}
.ti-door-enter::before{content:"↪"}
.ti-door-exit::before{content:"↩"}
.ti-download::before{content:"↓"}
.ti-edit::before{content:"✎"}
.ti-file-check::before{content:"✓"}
.ti-file-dollar::before{content:"$"}
.ti-file-spreadsheet::before{content:"▦"}
.ti-filter::before{content:"▽"}
.ti-gift::before{content:"◇"}
.ti-heartbeat::before{content:"⌁"}
.ti-help-circle::before{content:"?"}
.ti-history::before{content:"↶"}
.ti-history-off::before{content:"×"}
.ti-home::before{content:"⌂"}
.ti-id-badge::before{content:"▣"}
.ti-info-circle::before{content:"i"}
.ti-key::before{content:"⚿"}
.ti-list::before{content:"☷"}
.ti-list-details::before{content:"☷"}
.ti-loader::before{content:"◌"}
.ti-loader-2::before{content:"◌"}
.ti-lock::before{content:"▣"}
.ti-lock-check::before{content:"✓"}
.ti-login::before{content:"↪"}
.ti-logout::before{content:"↩"}
.ti-mail::before{content:"✉"}
.ti-mail-check::before{content:"✓"}
.ti-mail-cog::before{content:"⚙"}
.ti-mail-off::before{content:"×"}
.ti-mail-x::before{content:"×"}
.ti-menu-2::before{content:"☰"}
.ti-percentage::before{content:"%"}
.ti-photo::before{content:"▧"}
.ti-player-play::before{content:"▶"}
.ti-player-stop::before{content:"■"}
.ti-plus::before{content:"+"}
.ti-power::before{content:"⏻"}
.ti-printer::before{content:"▤"}
.ti-qrcode::before{content:"▦"}
.ti-receipt::before{content:"▤"}
.ti-receipt-off::before{content:"×"}
.ti-refresh::before{content:"↻"}
.ti-scan::before{content:"⌗"}
.ti-search::before{content:"⌕"}
.ti-send::before{content:"➤"}
.ti-settings::before{content:"⚙"}
.ti-share::before{content:"↗"}
.ti-share-3::before{content:"↗"}
.ti-shield-check::before{content:"✓"}
.ti-shield-lock::before{content:"▣"}
.ti-speakerphone::before{content:"◁"}
.ti-table::before{content:"▦"}
.ti-tool::before{content:"⚒"}
.ti-trash::before{content:"⌫"}
.ti-trophy::before{content:"☆"}
.ti-upload::before{content:"↑"}
.ti-user::before{content:"♙"}
.ti-user-check::before{content:"✓"}
.ti-user-circle::before{content:"♙"}
.ti-user-cog::before{content:"⚙"}
.ti-user-plus::before{content:"+"}
.ti-user-search::before{content:"⌕"}
.ti-user-shield::before{content:"♙"}
.ti-user-x::before{content:"×"}
.ti-users::before{content:"♙"}
.ti-world::before{content:"◎"}
.ti-x::before{content:"×"}
.ti-circle-x::before{content:"×"}
.ti-user-off::before{content:"×"}
/* CABNA V69 — iconos usados por todos los módulos */
.ti-adjustments::before{content:"⚙"}
.ti-layout-dashboard::before{content:"▦"}
.ti-barbell::before{content:"↔"}
.ti-basketball::before{content:"◉"}
.ti-bike::before{content:"◇"}
.ti-cake::before{content:"▥"}
.ti-circle-check-filled::before{content:"✓"}
.ti-circle-x-filled::before{content:"×"}
.ti-hash::before{content:"#"}
.ti-heart-rate-monitor::before{content:"⌁"}
.ti-id::before{content:"▣"}
.ti-ping-pong::before{content:"◉"}
.ti-run::before{content:"➤"}
.ti-swimming::before{content:"≈"}
.ti-tag::before{content:"◇"}
.ti-tennis::before{content:"●"}
.ti-yoga::before{content:"△"}

/* V69 — pictogramas SVG reales para actividades */
.ti-trophy::before{content:"";display:block;width:1em;height:1em;background:currentColor;-webkit-mask:url("/assets/icons/activities/trophy.svg") center/contain no-repeat;mask:url("/assets/icons/activities/trophy.svg") center/contain no-repeat}
.ti-swimming::before{content:"";display:block;width:1em;height:1em;background:currentColor;-webkit-mask:url("/assets/icons/activities/swimming.svg") center/contain no-repeat;mask:url("/assets/icons/activities/swimming.svg") center/contain no-repeat}
.ti-ball-football::before{content:"";display:block;width:1em;height:1em;background:currentColor;-webkit-mask:url("/assets/icons/activities/football.svg") center/contain no-repeat;mask:url("/assets/icons/activities/football.svg") center/contain no-repeat}
.ti-tennis::before{content:"";display:block;width:1em;height:1em;background:currentColor;-webkit-mask:url("/assets/icons/activities/tennis.svg") center/contain no-repeat;mask:url("/assets/icons/activities/tennis.svg") center/contain no-repeat}
.ti-basketball::before{content:"";display:block;width:1em;height:1em;background:currentColor;-webkit-mask:url("/assets/icons/activities/basketball.svg") center/contain no-repeat;mask:url("/assets/icons/activities/basketball.svg") center/contain no-repeat}
.ti-ping-pong::before{content:"";display:block;width:1em;height:1em;background:currentColor;-webkit-mask:url("/assets/icons/activities/ping-pong.svg") center/contain no-repeat;mask:url("/assets/icons/activities/ping-pong.svg") center/contain no-repeat}
.ti-run::before{content:"";display:block;width:1em;height:1em;background:currentColor;-webkit-mask:url("/assets/icons/activities/run.svg") center/contain no-repeat;mask:url("/assets/icons/activities/run.svg") center/contain no-repeat}
.ti-bike::before{content:"";display:block;width:1em;height:1em;background:currentColor;-webkit-mask:url("/assets/icons/activities/bike.svg") center/contain no-repeat;mask:url("/assets/icons/activities/bike.svg") center/contain no-repeat}
.ti-barbell::before{content:"";display:block;width:1em;height:1em;background:currentColor;-webkit-mask:url("/assets/icons/activities/barbell.svg") center/contain no-repeat;mask:url("/assets/icons/activities/barbell.svg") center/contain no-repeat}
.ti-yoga::before{content:"";display:block;width:1em;height:1em;background:currentColor;-webkit-mask:url("/assets/icons/activities/yoga.svg") center/contain no-repeat;mask:url("/assets/icons/activities/yoga.svg") center/contain no-repeat}
.ti-heart-rate-monitor::before{content:"";display:block;width:1em;height:1em;background:currentColor;-webkit-mask:url("/assets/icons/activities/heart-rate-monitor.svg") center/contain no-repeat;mask:url("/assets/icons/activities/heart-rate-monitor.svg") center/contain no-repeat}
.ti-heartbeat::before{content:"";display:block;width:1em;height:1em;background:currentColor;-webkit-mask:url("/assets/icons/activities/heartbeat.svg") center/contain no-repeat;mask:url("/assets/icons/activities/heartbeat.svg") center/contain no-repeat}
.ti-users::before{content:"";display:block;width:1em;height:1em;background:currentColor;-webkit-mask:url("/assets/icons/activities/users.svg") center/contain no-repeat;mask:url("/assets/icons/activities/users.svg") center/contain no-repeat}
.ti-building-community::before{content:"";display:block;width:1em;height:1em;background:currentColor;-webkit-mask:url("/assets/icons/activities/building-community.svg") center/contain no-repeat;mask:url("/assets/icons/activities/building-community.svg") center/contain no-repeat}
.ti-calendar-event::before{content:"";display:block;width:1em;height:1em;background:currentColor;-webkit-mask:url("/assets/icons/activities/calendar-event.svg") center/contain no-repeat;mask:url("/assets/icons/activities/calendar-event.svg") center/contain no-repeat}
.ti-cake::before{content:"";display:block;width:1em;height:1em;background:currentColor;-webkit-mask:url("/assets/icons/activities/cake.svg") center/contain no-repeat;mask:url("/assets/icons/activities/cake.svg") center/contain no-repeat}
.ti-speakerphone::before{content:"";display:block;width:1em;height:1em;background:currentColor;-webkit-mask:url("/assets/icons/activities/speakerphone.svg") center/contain no-repeat;mask:url("/assets/icons/activities/speakerphone.svg") center/contain no-repeat}
.ti-bolt::before{content:"";display:block;width:1em;height:1em;background:currentColor;-webkit-mask:url("/assets/icons/activities/bolt.svg") center/contain no-repeat;mask:url("/assets/icons/activities/bolt.svg") center/contain no-repeat}
.ti-gift::before{content:"";display:block;width:1em;height:1em;background:currentColor;-webkit-mask:url("/assets/icons/activities/gift.svg") center/contain no-repeat;mask:url("/assets/icons/activities/gift.svg") center/contain no-repeat}
.ti-category::before{content:"";display:block;width:1em;height:1em;background:currentColor;-webkit-mask:url("/assets/icons/activities/category.svg") center/contain no-repeat;mask:url("/assets/icons/activities/category.svg") center/contain no-repeat}

/* V71 — iconos deportivos adicionales */
.ti-ball-volleyball::before{content:"";display:block;width:1em;height:1em;background:currentColor;-webkit-mask:url("/assets/icons/activities/volleyball.svg") center/contain no-repeat;mask:url("/assets/icons/activities/volleyball.svg") center/contain no-repeat}
.ti-hockey::before{content:"";display:block;width:1em;height:1em;background:currentColor;-webkit-mask:url("/assets/icons/activities/hockey.svg") center/contain no-repeat;mask:url("/assets/icons/activities/hockey.svg") center/contain no-repeat}
.ti-roller-skating::before{content:"";display:block;width:1em;height:1em;background:currentColor;-webkit-mask:url("/assets/icons/activities/roller-skating.svg") center/contain no-repeat;mask:url("/assets/icons/activities/roller-skating.svg") center/contain no-repeat}

/* V76: ningún icono queda visualmente vacío aunque se agregue una clase nueva. */
.ti[class*=" ti-"]::before{min-width:1em;text-align:center}
