.ui-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 20px;border:1.5px solid transparent;border-radius:var(--radius-btn);font-family:inherit;font-size:.95rem;font-weight:700;line-height:1.2;text-align:center;text-decoration:none;cursor:pointer;transition:filter .15s,background-color .15s,border-color .15s,color .15s}.ui-btn--sm{min-height:36px;padding:6px 14px;font-size:.875rem}.ui-btn--block{width:100%}.ui-btn--primary{background:var(--gradient-cta);color:#fff}.ui-btn--primary:hover{filter:brightness(1.06);color:#fff}.ui-btn--secondary{background:var(--white);border-color:var(--violet);color:var(--navy)}.ui-btn--secondary:hover{background:var(--violet-tint-2);color:var(--navy)}.ui-btn--ghost{background:transparent;color:var(--violet-dark)}.ui-btn--ghost:hover{background:var(--violet-tint-2);color:var(--violet-dark)}.ui-btn--danger{background:#b42318;color:#fff}.ui-btn--danger:hover{background:#9a1d14;color:#fff}.ui-btn:disabled,.ui-btn[aria-disabled=true]:not([aria-busy=true]){background:var(--border);border-color:var(--border);color:#6d6791;cursor:not-allowed;filter:none}.ui-btn[aria-busy=true]{cursor:progress}.ui-btn__icon{display:inline-flex;flex:none}.ui-btn__spinner{width:1em;height:1em;flex:none;border:2px solid;border-right:2px solid transparent;border-radius:50%;animation:ui-spin .8s linear infinite}@keyframes ui-spin{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.ui-btn__spinner{animation-duration:2.4s}}.ui-dialog__overlay{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:16px 16px calc(16px + env(safe-area-inset-bottom));background:rgba(21,11,69,.55);overflow-y:auto}.ui-dialog{position:relative;width:100%;max-width:560px;max-height:calc(100dvh - 32px);overflow-y:auto;display:flex;flex-direction:column;gap:14px;padding:24px 22px 20px;background:var(--white);color:var(--text-primary);border-radius:var(--radius-card);box-shadow:0 18px 60px rgba(21,11,69,.35)}.ui-dialog--sm{max-width:460px}.ui-dialog--lg{max-width:720px}.ui-dialog:focus{outline:none}.ui-dialog__head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.ui-dialog__title{margin:0;font-family:var(--font-display);font-size:1.25rem;line-height:1.25;color:var(--navy)}.ui-dialog__close{flex:none;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;margin:-6px -6px 0 0;border:0;border-radius:50%;background:transparent;color:var(--text-secondary);font-size:1.5rem;line-height:1;cursor:pointer}.ui-dialog__close:hover{background:var(--violet-tint-2);color:var(--navy)}.ui-dialog__desc{font-size:.95rem;line-height:1.55;color:var(--text-secondary)}.ui-dialog__desc p+p{margin-top:8px}.ui-dialog__body{display:flex;flex-direction:column;gap:14px}.ui-dialog__footer{display:flex;flex-wrap:wrap-reverse;justify-content:flex-end;gap:10px;margin-top:4px}@media (max-width:480px){.ui-dialog__footer>*{flex:1 1 100%}}.ui-field{display:flex;flex-direction:column;gap:6px}.ui-field__label{font-size:.875rem;font-weight:600;color:var(--navy)}.ui-field__optional{font-weight:400;color:var(--text-secondary)}.ui-field input:not([type=checkbox]):not([type=radio]),.ui-field select,.ui-field textarea,.ui-input{width:100%;min-height:44px;padding:10px 14px;background:var(--white);border:1px solid #c9c4e3;border-radius:var(--radius-btn);font-family:inherit;font-size:1rem;color:var(--navy)}.ui-field textarea{min-height:96px;resize:vertical}.ui-field input:focus,.ui-field select:focus,.ui-field textarea:focus,.ui-input:focus{border-color:var(--violet);outline:2px solid var(--violet);outline-offset:0}.ui-field--error .ui-input,.ui-input[aria-invalid=true]{border-color:#b42318}.ui-field__hint{color:var(--text-secondary)}.ui-field__error,.ui-field__hint{margin:0;font-size:.8125rem;line-height:1.45}.ui-field__error{font-weight:600;color:#a8201a}.ui-alert{margin:0;padding:10px 12px;border-radius:var(--radius-btn);font-size:.875rem;line-height:1.45}.ui-alert--error{background:#fdecea;color:#a8201a;font-weight:600}.ui-alert--info{background:var(--violet-tint);color:var(--badge-accent-text)}.ui-alert--success{background:#e6f4ea;color:#1e6b3a}.ui-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--radius-pill);font-size:.8125rem;font-weight:600;line-height:1.3;white-space:nowrap}.ui-chip__dot{width:7px;height:7px;flex:none;border-radius:50%;background:currentColor}.ui-chip--neutral{background:var(--violet-tint-2);color:#4a4570}.ui-chip--info{background:var(--violet-tint);color:#4b3cc4}.ui-chip--progress{background:#e8f1ff;color:#1d4f91}.ui-chip--success{background:#e6f4ea;color:#1e6b3a}.ui-chip--warning{background:#fff4e0;color:#8a4b00}.ui-chip--danger{background:#fdecea;color:#a8201a}.ui-empty{display:flex;flex-direction:column;align-items:center;gap:10px;padding:36px 20px;text-align:center;border:1px dashed var(--border);border-radius:var(--radius-card);background:var(--bg-alt)}.ui-empty__icon{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:var(--violet-tint);color:var(--violet-dark)}.ui-empty__title{margin:0;font-family:var(--font-display);font-size:1.1rem;color:var(--navy)}.ui-empty__desc{max-width:480px;font-size:.95rem;line-height:1.55;color:var(--text-secondary)}.ui-empty__action{margin-top:6px}.ui-toasts{position:fixed;z-index:1100;left:16px;right:16px;bottom:calc(16px + env(safe-area-inset-bottom));flex-direction:column;gap:8px;pointer-events:none}.ui-toast,.ui-toasts{display:flex;align-items:center}.ui-toast{pointer-events:auto;gap:12px;max-width:560px;width:-moz-fit-content;width:fit-content;padding:12px 10px 12px 16px;border-radius:12px;background:var(--navy);color:#fff;font-family:var(--font-body);font-size:.93rem;line-height:1.4;box-shadow:0 10px 30px rgba(21,11,69,.3)}.ui-toast--error{background:#a8201a}.ui-toast__cerrar{flex:none;width:32px;height:32px;border:none;border-radius:8px;background:rgba(255,255,255,.14);color:#fff;font-size:1.1rem;line-height:1;cursor:pointer}.ui-toast__cerrar:focus-visible{outline:2px solid #fff;outline-offset:2px}.ui-menu{position:relative;display:inline-block}.ui-menu__boton{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:10px;border:1px solid transparent;background:transparent;color:var(--text-secondary);cursor:pointer}.ui-menu__boton:hover,.ui-menu__boton[aria-expanded=true]{background:var(--violet-tint);color:var(--navy)}.ui-menu__lista{position:fixed;z-index:150;min-width:236px;max-width:calc(100vw - 16px);font-family:var(--font-body);list-style:none;margin:0;padding:6px;background:var(--white);border:1px solid var(--border);border-radius:12px;box-shadow:0 14px 40px rgba(21,11,69,.18);text-align:left}.ui-menu__separado{border-top:1px solid var(--border);margin-top:4px;padding-top:4px}.ui-menu__item{display:block;width:100%;min-height:40px;padding:9px 12px;border:none;border-radius:8px;background:none;font:inherit;font-size:.93rem;color:var(--text-primary);text-align:left;cursor:pointer;white-space:nowrap}.ui-menu__item:focus,.ui-menu__item:hover{background:var(--violet-tint-2);outline:none}.ui-menu__item:focus-visible{box-shadow:inset 0 0 0 2px var(--violet)}.ui-menu__item--peligro{color:#a8201a}