/* Nikolai UI v2 (Healthence) — Fase 3: biblioteca de componentes.
   Solo activo con html[data-ui="v2"]. Usa los tokens de nikolai-v2.css (Fase 1).
   Clases canonicas: .v2-*  |  Mapeo de clases legacy -> variantes: seccion 16. */

/* ---------- 1. Botones: 4 variantes x 2 tamaños (32 = default, 40 = .v2-btn--lg) ---------- */
html[data-ui="v2"] .v2-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  height:32px;min-height:32px;padding:0 12px;border:1px solid transparent;border-radius:var(--r-lg);
  font:500 var(--fs-sm)/1 var(--font);white-space:nowrap;text-decoration:none;cursor:pointer;
  transition:background .15s,border-color .15s,color .15s,box-shadow .15s;
  -webkit-appearance:none;appearance:none;box-sizing:border-box;
}
html[data-ui="v2"] .v2-btn svg{width:16px;height:16px;flex:none}
html[data-ui="v2"] .v2-btn--lg{height:40px;min-height:40px;padding:0 16px;font-size:var(--fs-md)}
html[data-ui="v2"] .v2-btn--block{display:flex;width:100%}
html[data-ui="v2"] .v2-btn--primary{background:var(--pri);color:var(--on-pri)}
html[data-ui="v2"] .v2-btn--primary:hover{background:var(--pri-hover)}
html[data-ui="v2"] .v2-btn--secondary{background:var(--card);color:var(--text);border-color:var(--border-ctl)}
html[data-ui="v2"] .v2-btn--secondary:hover{background:var(--pri-soft);border-color:var(--pri);color:var(--az-text)}
html[data-ui="v2"] .v2-btn--ghost{background:transparent;color:var(--sub)}
html[data-ui="v2"] .v2-btn--ghost:hover{background:var(--bg2);color:var(--text)}
html[data-ui="v2"] .v2-btn--danger{background:var(--err-fill);color:#fff}
html[data-ui="v2"] .v2-btn--danger:hover{filter:brightness(.9)}
html[data-ui="v2"] .v2-btn:active{transform:translateY(1px)}
html[data-ui="v2"] .v2-btn:disabled,
html[data-ui="v2"] .v2-btn[aria-disabled="true"]{opacity:.5;cursor:not-allowed;transform:none;filter:none}

/* ---------- 2. Boton de icono 32 / 24 ---------- */
html[data-ui="v2"] .v2-icon-btn{
  display:inline-flex;align-items:center;justify-content:center;flex:none;
  width:32px;height:32px;padding:0;border:1px solid var(--border-ctl);border-radius:var(--r-lg);
  background:var(--card);color:var(--sub);cursor:pointer;box-sizing:border-box;
  transition:background .15s,color .15s,border-color .15s;
}
html[data-ui="v2"] .v2-icon-btn svg{width:16px;height:16px}
html[data-ui="v2"] .v2-icon-btn:hover{background:var(--pri-soft);color:var(--az-text);border-color:var(--pri)}
html[data-ui="v2"] .v2-icon-btn--sm{width:24px;height:24px;border-radius:var(--r-md)}
html[data-ui="v2"] .v2-icon-btn--sm svg{width:14px;height:14px}
html[data-ui="v2"] .v2-icon-btn--bare{border-color:transparent;background:transparent}

/* ---------- 3. Dropdown "opcion + chevron" ---------- */
html[data-ui="v2"] .v2-dd{display:inline-flex;align-items:stretch;height:32px;border:1px solid var(--border-ctl);border-radius:var(--r-lg);background:var(--card);overflow:hidden}
html[data-ui="v2"] .v2-dd__opt{display:inline-flex;align-items:center;padding:0 12px;font:500 var(--fs-sm)/1 var(--font);color:var(--text);background:transparent;border:0;cursor:pointer}
html[data-ui="v2"] .v2-dd__chev{display:inline-flex;align-items:center;justify-content:center;width:32px;border:0;border-left:1px solid var(--border);background:var(--bg2);color:var(--sub);cursor:pointer}
html[data-ui="v2"] .v2-dd__chev svg{width:16px;height:16px}
html[data-ui="v2"] .v2-dd__opt:hover,
html[data-ui="v2"] .v2-dd__chev:hover{background:var(--pri-soft);color:var(--az-text)}
html[data-ui="v2"] .v2-menu{min-width:180px;padding:4px;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--card);box-shadow:var(--shadow)}
html[data-ui="v2"] .v2-menu__item{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;border:0;border-radius:var(--r-md);background:transparent;color:var(--text);font:400 var(--fs-sm)/1.2 var(--font);text-align:left;cursor:pointer}
html[data-ui="v2"] .v2-menu__item:hover{background:var(--bg2)}
html[data-ui="v2"] .v2-menu__item[aria-selected="true"]{background:var(--pri-soft);color:var(--az-text);font-weight:500}

/* ---------- 4. Campos: input / select / textarea / date ---------- */
html[data-ui="v2"] .v2-field{display:flex;flex-direction:column;gap:6px}
html[data-ui="v2"] .v2-label{font:500 var(--fs-xs)/1.2 var(--font);color:var(--sub);letter-spacing:.01em}
html[data-ui="v2"] .v2-hint{font:400 var(--fs-xs)/1.4 var(--font);color:var(--sub)}
html[data-ui="v2"] .v2-hint--err{color:var(--err)}
html[data-ui="v2"] .v2-input,
html[data-ui="v2"] .v2-select,
html[data-ui="v2"] .v2-textarea{
  width:100%;height:40px;padding:0 12px;border:1px solid var(--border-ctl);border-radius:var(--r-lg);
  background:var(--inp);color:var(--text);font:400 var(--fs-md)/1.4 var(--font);box-sizing:border-box;
  transition:border-color .15s,box-shadow .15s;
}
html[data-ui="v2"] .v2-input--sm,
html[data-ui="v2"] .v2-select--sm{height:32px;font-size:var(--fs-sm)}
html[data-ui="v2"] .v2-textarea{height:auto;min-height:88px;padding:10px 12px;resize:vertical}
html[data-ui="v2"] .v2-select{
  -webkit-appearance:none;appearance:none;padding-right:36px;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%238b9298' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M6 9l6 6l6-6'/></svg>");
  background-repeat:no-repeat;background-position:right 10px center;
}
html[data-ui="v2"] .v2-input::placeholder,
html[data-ui="v2"] .v2-textarea::placeholder{color:var(--sub);opacity:.85}
html[data-ui="v2"] .v2-input:hover,
html[data-ui="v2"] .v2-select:hover,
html[data-ui="v2"] .v2-textarea:hover{border-color:var(--sub)}
html[data-ui="v2"] .v2-input:focus,
html[data-ui="v2"] .v2-select:focus,
html[data-ui="v2"] .v2-textarea:focus{outline:2px solid var(--accent);outline-offset:0;border-color:var(--accent);box-shadow:0 0 0 4px var(--focus-halo)}
html[data-ui="v2"] .v2-input.is-error,
html[data-ui="v2"] .v2-select.is-error,
html[data-ui="v2"] .v2-textarea.is-error{border-color:var(--err)}
html[data-ui="v2"] .v2-input:disabled,
html[data-ui="v2"] .v2-select:disabled,
html[data-ui="v2"] .v2-textarea:disabled{background:var(--bg2);color:var(--sub);cursor:not-allowed}
html[data-ui="v2"] .v2-input-wrap{position:relative;display:flex;align-items:center}
html[data-ui="v2"] .v2-input-wrap>svg{position:absolute;left:12px;width:16px;height:16px;color:var(--sub);pointer-events:none}
html[data-ui="v2"] .v2-input-wrap>.v2-input{padding-left:36px}

/* ---------- 5. Checkbox / radio / switch ---------- */
html[data-ui="v2"] .v2-check,
html[data-ui="v2"] .v2-radio{
  -webkit-appearance:none;appearance:none;flex:none;width:18px;height:18px;margin:0;
  border:1.5px solid var(--border-ctl);background:var(--inp);cursor:pointer;position:relative;
  transition:background .15s,border-color .15s;
}
html[data-ui="v2"] .v2-check{border-radius:var(--r-sm)}
html[data-ui="v2"] .v2-radio{border-radius:50%}
html[data-ui="v2"] .v2-check:checked,
html[data-ui="v2"] .v2-radio:checked{background:var(--pri);border-color:var(--pri)}
html[data-ui="v2"] .v2-check:checked::after{content:"";position:absolute;left:5px;top:1px;width:5px;height:10px;border:solid var(--on-pri);border-width:0 2px 2px 0;transform:rotate(45deg)}
html[data-ui="v2"] .v2-radio:checked::after{content:"";position:absolute;inset:4px;border-radius:50%;background:var(--on-pri)}
html[data-ui="v2"] .v2-check:disabled,
html[data-ui="v2"] .v2-radio:disabled{opacity:.5;cursor:not-allowed}
html[data-ui="v2"] .v2-opt{display:inline-flex;align-items:center;gap:8px;font:400 var(--fs-md)/1.3 var(--font);color:var(--text);cursor:pointer}
html[data-ui="v2"] .v2-switch{
  -webkit-appearance:none;appearance:none;flex:none;width:36px;height:20px;margin:0;border-radius:999px;
  background:var(--border-ctl);position:relative;cursor:pointer;transition:background .15s;
}
html[data-ui="v2"] .v2-switch::after{content:"";position:absolute;left:2px;top:2px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform .15s;box-shadow:0 1px 2px rgba(0,0,0,.25)}
html[data-ui="v2"] .v2-switch:checked{background:var(--pri)}
html[data-ui="v2"] .v2-switch:checked::after{transform:translateX(16px)}
html[data-ui="v2"] .v2-switch:disabled{opacity:.5;cursor:not-allowed}

/* ---------- 6. Tabs ---------- */
html[data-ui="v2"] .v2-tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);overflow-x:auto}
html[data-ui="v2"] .v2-tab{
  position:relative;padding:10px 14px;border:0;background:transparent;color:var(--sub);
  font:500 var(--fs-md)/1.2 var(--font);white-space:nowrap;cursor:pointer;
}
html[data-ui="v2"] .v2-tab:hover{color:var(--text)}
html[data-ui="v2"] .v2-tab[aria-selected="true"]{color:var(--az-text)}
html[data-ui="v2"] .v2-tab[aria-selected="true"]::after{content:"";position:absolute;left:8px;right:8px;bottom:-1px;height:2px;border-radius:2px 2px 0 0;background:var(--accent)}

/* ---------- 7. Insignias de estado (texto oscurecido -> AA) y pildoras de variacion ---------- */
html[data-ui="v2"] .v2-badge{
  display:inline-flex;align-items:center;gap:4px;height:22px;padding:0 8px;border-radius:999px;
  font:500 var(--fs-xs)/1 var(--font);white-space:nowrap;background:var(--bg2);color:var(--sub);
}
html[data-ui="v2"] .v2-badge::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}
html[data-ui="v2"] .v2-badge--ok{background:var(--ok-soft);color:var(--ok)}
html[data-ui="v2"] .v2-badge--warn{background:var(--warn-soft);color:var(--warn)}
html[data-ui="v2"] .v2-badge--err{background:var(--err-soft);color:var(--err)}
html[data-ui="v2"] .v2-badge--info{background:var(--info-soft);color:var(--info)}
html[data-ui="v2"] .v2-badge--plain::before{display:none}
html[data-ui="v2"] .v2-pill{display:inline-flex;align-items:center;gap:2px;height:20px;padding:0 6px;border-radius:var(--r-md);font:500 var(--fs-xs)/1 var(--font);font-variant-numeric:tabular-nums}
html[data-ui="v2"] .v2-pill svg{width:12px;height:12px}
html[data-ui="v2"] .v2-pill--up{background:var(--ok-soft);color:var(--ok)}
html[data-ui="v2"] .v2-pill--down{background:var(--err-soft);color:var(--err)}

/* ---------- 8. Tarjeta base y tarjeta KPI ---------- */
html[data-ui="v2"] .v2-card{background:var(--card);border:1px solid var(--border);border-radius:var(--r-lg);padding:16px;box-shadow:var(--shadow)}
html[data-ui="v2"] .v2-card__head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
html[data-ui="v2"] .v2-card__title{margin:0;font:600 var(--fs-lg)/1.3 var(--font);color:var(--text)}
html[data-ui="v2"] .v2-kpi{display:flex;flex-direction:column;gap:8px;min-width:0}
html[data-ui="v2"] .v2-kpi__label{display:flex;align-items:center;gap:8px;font:500 var(--fs-sm)/1.2 var(--font);color:var(--sub)}
html[data-ui="v2"] .v2-kpi__label svg{width:16px;height:16px;color:var(--accent)}
html[data-ui="v2"] .v2-kpi__value{font:600 var(--fs-2xl)/1.1 var(--font);letter-spacing:-.02em;color:var(--text);font-variant-numeric:tabular-nums}
html[data-ui="v2"] .v2-kpi__foot{display:flex;align-items:center;gap:8px;font:400 var(--fs-xs)/1.3 var(--font);color:var(--sub)}

/* ---------- 9. Avatar ---------- */
html[data-ui="v2"] .v2-avatar{display:inline-flex;align-items:center;justify-content:center;flex:none;width:32px;height:32px;border-radius:50%;background:var(--pri-soft);color:var(--az-text);font:600 var(--fs-xs)/1 var(--font);overflow:hidden;text-transform:uppercase}
html[data-ui="v2"] .v2-avatar img{width:100%;height:100%;object-fit:cover}
html[data-ui="v2"] .v2-avatar--lg{width:40px;height:40px;font-size:var(--fs-sm)}
html[data-ui="v2"] .v2-avatar--xl{width:64px;height:64px;font-size:var(--fs-lg)}

/* ---------- 10. Tabla ---------- */
html[data-ui="v2"] .v2-table{width:100%;border-collapse:collapse;font-size:var(--fs-md);color:var(--text)}
html[data-ui="v2"] .v2-table th{padding:0 16px;height:40px;text-align:left;font:500 var(--fs-xs)/1 var(--font);color:var(--sub);background:var(--bg2);border-bottom:1px solid var(--border);white-space:nowrap}
html[data-ui="v2"] .v2-table td{padding:0 16px;height:52px;border-bottom:1px solid var(--border);vertical-align:middle}
html[data-ui="v2"] .v2-table tbody tr:hover td{background:var(--bg2)}
html[data-ui="v2"] .v2-table .num{text-align:right}
html[data-ui="v2"] .v2-table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--card)}
html[data-ui="v2"] .v2-table-wrap>.v2-table tbody tr:last-child td{border-bottom:0}

/* ---------- 11. Paginacion ---------- */
html[data-ui="v2"] .v2-pager{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;font:400 var(--fs-sm)/1.2 var(--font);color:var(--sub)}
html[data-ui="v2"] .v2-pager__nav{display:flex;align-items:center;gap:4px}
html[data-ui="v2"] .v2-pager__btn{min-width:32px;height:32px;padding:0 8px;border:1px solid transparent;border-radius:var(--r-lg);background:transparent;color:var(--text);font:500 var(--fs-sm)/1 var(--font);cursor:pointer;font-variant-numeric:tabular-nums}
html[data-ui="v2"] .v2-pager__btn:hover{background:var(--bg2)}
html[data-ui="v2"] .v2-pager__btn[aria-current="page"]{background:var(--pri);color:var(--on-pri)}
html[data-ui="v2"] .v2-pager__btn:disabled{opacity:.4;cursor:not-allowed}

/* ---------- 12. Modal ---------- */
html[data-ui="v2"] .v2-overlay{position:fixed;inset:0;z-index:500;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(11,15,20,.55)}
html[data-ui="v2"] .v2-modal{width:min(480px,100%);max-height:calc(100vh - 32px);overflow:auto;background:var(--card);color:var(--text);border:1px solid var(--border);border-radius:12px;box-shadow:0 12px 40px rgba(0,0,0,.28)}
html[data-ui="v2"] .v2-modal__head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;border-bottom:1px solid var(--border)}
html[data-ui="v2"] .v2-modal__title{margin:0;font:600 var(--fs-lg)/1.3 var(--font)}
html[data-ui="v2"] .v2-modal__body{padding:20px;font-size:var(--fs-md);line-height:1.5}
html[data-ui="v2"] .v2-modal__foot{display:flex;justify-content:flex-end;gap:8px;padding:12px 20px;border-top:1px solid var(--border)}

/* ---------- 13. Toast ---------- */
html[data-ui="v2"] .v2-toast{display:flex;align-items:flex-start;gap:12px;max-width:380px;padding:12px 14px;border:1px solid var(--border);border-left:4px solid var(--info);border-radius:var(--r-lg);background:var(--card);color:var(--text);box-shadow:var(--shadow);font:400 var(--fs-sm)/1.4 var(--font)}
html[data-ui="v2"] .v2-toast svg{width:18px;height:18px;flex:none;color:var(--info)}
html[data-ui="v2"] .v2-toast--ok{border-left-color:var(--ok)} html[data-ui="v2"] .v2-toast--ok svg{color:var(--ok)}
html[data-ui="v2"] .v2-toast--warn{border-left-color:var(--warn)} html[data-ui="v2"] .v2-toast--warn svg{color:var(--warn)}
html[data-ui="v2"] .v2-toast--err{border-left-color:var(--err)} html[data-ui="v2"] .v2-toast--err svg{color:var(--err)}

/* ---------- 14. Tooltip (CSS puro: data-tip) ---------- */
html[data-ui="v2"] [data-tip]{position:relative}
html[data-ui="v2"] [data-tip]::after{
  content:attr(data-tip);position:absolute;left:50%;bottom:calc(100% + 6px);transform:translateX(-50%);
  padding:6px 8px;border-radius:var(--r-md);background:var(--text);color:var(--bg);
  font:500 var(--fs-xs)/1.2 var(--font);white-space:nowrap;pointer-events:none;opacity:0;visibility:hidden;
  transition:opacity .12s;z-index:600;
}
html[data-ui="v2"] [data-tip]:hover::after,
html[data-ui="v2"] [data-tip]:focus-visible::after{opacity:1;visibility:visible}

/* ---------- 15. Estado vacio ---------- */
html[data-ui="v2"] .v2-empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:48px 16px;text-align:center;color:var(--sub)}
html[data-ui="v2"] .v2-empty__icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:50%;background:var(--pri-soft);color:var(--az-text)}
html[data-ui="v2"] .v2-empty__icon svg{width:24px;height:24px}
html[data-ui="v2"] .v2-empty__title{margin:0;font:600 var(--fs-lg)/1.3 var(--font);color:var(--text)}
html[data-ui="v2"] .v2-empty__text{margin:0;max-width:42ch;font:400 var(--fs-md)/1.5 var(--font)}

/* ================================================================
   16. MAPEO de clases legacy -> variantes canonicas (solo v2).
   Mismo CSS, sin tocar HTML ni logica. La limpieza de clases va en Fase 6.
   Especificidad (0,2,1) > regla legacy (0,1,0): sin !important.
   ================================================================ */

/* 16.1 primario: btn-new, btn-save, btn-save-primary, btn-preview-rpt, btn-nueva-cons, btn-send-rpt */
html[data-ui="v2"] .btn-new,
html[data-ui="v2"] .btn-save,
html[data-ui="v2"] .btn-save-primary,
html[data-ui="v2"] .btn-preview-rpt,
html[data-ui="v2"] .btn-nueva-cons,
html[data-ui="v2"] .btn-send-rpt{
  background:var(--pri);color:var(--on-pri);border:1px solid transparent;border-radius:var(--r-lg);
  min-height:32px;padding:7px 14px;font-size:var(--fs-sm);font-weight:500;line-height:1.2;box-shadow:none;
  transition:background .15s,box-shadow .15s;
}
html[data-ui="v2"] .btn-new:hover,
html[data-ui="v2"] .btn-save:hover,
html[data-ui="v2"] .btn-save-primary:hover,
html[data-ui="v2"] .btn-preview-rpt:hover,
html[data-ui="v2"] .btn-nueva-cons:hover,
html[data-ui="v2"] .btn-send-rpt:hover{background:var(--pri-hover);color:var(--on-pri)}
html[data-ui="v2"] .btn-save-primary{min-height:40px;padding:10px 18px;font-size:var(--fs-md)}
html[data-ui="v2"] .btn-new{margin:10px}

/* 16.2 secundario: btn-icon (boton con borde), btn-secondary, btn-archivo */
html[data-ui="v2"] .btn-icon,
html[data-ui="v2"] .btn-secondary,
html[data-ui="v2"] .btn-archivo{
  background:var(--card);color:var(--text);border:1px solid var(--border-ctl);border-radius:var(--r-lg);
  min-height:32px;padding:6px 12px;font-size:var(--fs-sm);font-weight:500;line-height:1.2;
  transition:background .15s,border-color .15s,color .15s;
}
html[data-ui="v2"] .btn-icon:hover,
html[data-ui="v2"] .btn-secondary:hover,
html[data-ui="v2"] .btn-archivo:hover{background:var(--pri-soft);border-color:var(--pri);color:var(--az-text)}

/* 16.3 icono 32: btn-modal-x */
html[data-ui="v2"] .btn-modal-x{
  width:32px;height:32px;min-width:32px;min-height:32px;padding:0;border-radius:var(--r-lg);
  color:var(--sub);font-size:18px;line-height:1;
}
html[data-ui="v2"] .btn-modal-x:hover{background:var(--bg2);color:var(--text)}

/* 16.4 peligro */
html[data-ui="v2"] .btn-danger{
  background:var(--err-fill);color:#fff;border:1px solid transparent;border-radius:var(--r-lg);
  min-height:32px;padding:7px 14px;font-size:var(--fs-sm);font-weight:500;
}
html[data-ui="v2"] .btn-danger:hover{filter:brightness(.9)}

/* 16.5 ghost: btn-add-dr-new (borde punteado) */
html[data-ui="v2"] .btn-add-dr-new{border-radius:var(--r-lg);min-height:32px;font-size:var(--fs-sm);font-weight:500}

/* 16.6 formularios (.fi / .fl) */
html[data-ui="v2"] .fl{font-size:var(--fs-xs);font-weight:500;text-transform:none;letter-spacing:.01em;color:var(--sub)}
html[data-ui="v2"] .fi{border-radius:var(--r-lg);padding:8px 12px;font-size:var(--fs-md);background:var(--inp);color:var(--text)}
html[data-ui="v2"] .fi.error{border-color:var(--err)}
html[data-ui="v2"] input[type="checkbox"],
html[data-ui="v2"] input[type="radio"]{accent-color:var(--pri)}

/* 16.7 tabs legacy */
html[data-ui="v2"] .tabs{border-bottom:1px solid var(--border)}
html[data-ui="v2"] .tab{padding:10px 16px;font-size:var(--fs-md);font-weight:500;color:var(--sub)}
html[data-ui="v2"] .tab:hover{color:var(--text)}
html[data-ui="v2"] .tab.active{border-bottom-color:var(--accent)}

/* 16.8 modal legacy */
html[data-ui="v2"] .modal-overlay{background:rgba(11,15,20,.55)}
html[data-ui="v2"] .modal-box{background:var(--card);color:var(--text);border:1px solid var(--border);border-radius:12px;box-shadow:0 12px 40px rgba(0,0,0,.28)}
/* Paneles embebidos en el dashboard (Agenda/Censo): no son modales flotantes */
html[data-ui="v2"] .modal-overlay.dash-embedded{background:none}
html[data-ui="v2"] .modal-overlay.dash-embedded .modal-box{background:none;border:none;box-shadow:none;border-radius:0}

/* 16.9 toast legacy */
html[data-ui="v2"] .toast{background:var(--card);color:var(--text);border:1px solid var(--border);border-left:4px solid var(--info);border-radius:var(--r-lg);box-shadow:var(--shadow);font-size:var(--fs-sm)}
html[data-ui="v2"] .toast-success{background:var(--card);color:var(--text);border-left-color:var(--ok)}
html[data-ui="v2"] .toast-error{background:var(--card);color:var(--text);border-left-color:var(--err)}

/* 16.10 insignias legacy */
html[data-ui="v2"] .sec-badge,
html[data-ui="v2"] .tipo-badge{border-radius:999px;font-weight:500}
