/* Reformas Hernández — component styles. Classes prefixed rh- */
.rh-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--font-display);font-weight:700;text-transform:uppercase;letter-spacing:.06em;border-radius:var(--radius-md);border:1px solid transparent;cursor:pointer;white-space:nowrap;transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast),border-color var(--dur-fast),transform var(--dur-fast)}
.rh-btn:focus-visible{outline:none;box-shadow:var(--focus-ring)}
.rh-btn--sm{height:32px;padding:0 14px;font-size:15px}
.rh-btn--md{height:40px;padding:0 20px;font-size:17px}
.rh-btn--lg{height:48px;padding:0 26px;font-size:19px}
.rh-btn--primary{background:var(--accent);color:var(--text-on-accent)}
.rh-btn--primary:hover{background:var(--accent-hover)}
.rh-btn--primary:active{background:var(--accent-press);transform:translateY(1px)}
.rh-btn--secondary{background:transparent;border-color:var(--border-accent-strong);color:var(--text-accent)}
.rh-btn--secondary:hover{background:color-mix(in srgb, var(--accent) 12%, transparent)}
.rh-btn--secondary:active{background:color-mix(in srgb, var(--accent) 20%, transparent);transform:translateY(1px)}
.rh-btn--ghost{background:transparent;color:var(--text-body)}
.rh-btn--ghost:hover{color:var(--text-heading);background:color-mix(in srgb, var(--text-heading) 7%, transparent)}
.rh-btn--ghost:active{transform:translateY(1px)}
.rh-btn--danger{background:var(--danger-strong);color:#FFF}
.rh-btn--danger:hover{filter:brightness(1.1)}
.rh-btn[disabled]{opacity:.45;pointer-events:none}
.rh-iconbtn{display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-md);border:1px solid transparent;cursor:pointer;background:transparent;color:var(--text-body);transition:background var(--dur-fast),color var(--dur-fast),border-color var(--dur-fast)}
.rh-iconbtn:focus-visible{outline:none;box-shadow:var(--focus-ring)}
.rh-iconbtn--sm{width:32px;height:32px}.rh-iconbtn--md{width:40px;height:40px}.rh-iconbtn--lg{width:48px;height:48px}
.rh-iconbtn--outline{border-color:var(--border-hairline);color:var(--text-heading)}
.rh-iconbtn--outline:hover{border-color:var(--border-accent-strong);color:var(--text-accent)}
.rh-iconbtn--ghost:hover{color:var(--text-heading);background:color-mix(in srgb, var(--text-heading) 7%, transparent)}
.rh-iconbtn--accent{border-color:var(--border-accent-strong);color:var(--text-accent)}
.rh-iconbtn--accent:hover{background:var(--accent);color:var(--text-on-accent)}
.rh-iconbtn[disabled]{opacity:.45;pointer-events:none}
.rh-field{display:flex;flex-direction:column;gap:6px;font-family:var(--font-body)}
.rh-field__label{font-family:var(--font-display);font-size:var(--label-size);font-weight:var(--label-weight);letter-spacing:var(--label-tracking);text-transform:uppercase;color:var(--text-muted)}
.rh-field__hint{font-size:var(--text-xs);color:var(--text-faint)}
.rh-field--error .rh-field__hint{color:var(--danger)}
.rh-input,.rh-select,.rh-textarea{font-family:var(--font-body);font-size:var(--text-md);color:var(--text-heading);background:var(--surface-input);border:1px solid var(--border-input);border-radius:var(--radius-sm);transition:border-color var(--dur-fast),box-shadow var(--dur-fast);width:100%;box-sizing:border-box}
.rh-input,.rh-select{height:42px;padding:0 12px}
.rh-textarea{padding:10px 12px;min-height:96px;resize:vertical;line-height:var(--leading-body)}
.rh-input::placeholder,.rh-textarea::placeholder{color:var(--text-faint)}
.rh-input:hover,.rh-select:hover,.rh-textarea:hover{border-color:var(--text-faint)}
.rh-input:focus,.rh-select:focus,.rh-textarea:focus{outline:none;border-color:var(--border-accent-strong);box-shadow:0 0 0 1px var(--border-accent-strong)}
.rh-field--error .rh-input,.rh-field--error .rh-select,.rh-field--error .rh-textarea{border-color:var(--danger)}
.rh-selectwrap{position:relative}
.rh-selectwrap .rh-select{appearance:none;padding-right:36px}
.rh-selectwrap__chev{position:absolute;right:10px;top:50%;transform:translateY(-50%);pointer-events:none;color:var(--text-muted);display:flex}
.rh-check,.rh-radio{display:inline-flex;align-items:center;gap:10px;cursor:pointer;font-family:var(--font-body);font-size:var(--text-md);color:var(--text-body);position:relative}
.rh-check input,.rh-radio input,.rh-switch input{position:absolute;opacity:0;width:0;height:0}
.rh-check__box{width:18px;height:18px;border:1px solid var(--border-input);border-radius:var(--radius-sm);background:var(--surface-input);display:inline-flex;align-items:center;justify-content:center;transition:background var(--dur-fast),border-color var(--dur-fast);flex:none}
.rh-check__box::after{content:"";width:9px;height:5px;border-left:2px solid var(--text-on-accent);border-bottom:2px solid var(--text-on-accent);transform:rotate(-45deg) translate(1px,-1px);opacity:0}
.rh-check input:checked + .rh-check__box{background:var(--accent);border-color:var(--accent)}
.rh-check input:checked + .rh-check__box::after{opacity:1}
.rh-check input:focus-visible + .rh-check__box{box-shadow:var(--focus-ring)}
.rh-radio__dot{width:18px;height:18px;border:1px solid var(--border-input);border-radius:50%;background:var(--surface-input);display:inline-flex;align-items:center;justify-content:center;transition:border-color var(--dur-fast);flex:none}
.rh-radio__dot::after{content:"";width:8px;height:8px;border-radius:50%;background:var(--accent);transform:scale(0);transition:transform var(--dur-fast) var(--ease-out)}
.rh-radio input:checked + .rh-radio__dot{border-color:var(--accent)}
.rh-radio input:checked + .rh-radio__dot::after{transform:scale(1)}
.rh-radio input:focus-visible + .rh-radio__dot{box-shadow:var(--focus-ring)}
.rh-switch{display:inline-flex;align-items:center;gap:10px;cursor:pointer;font-family:var(--font-body);font-size:var(--text-md);color:var(--text-body);position:relative}
.rh-switch__track{width:40px;height:22px;border-radius:var(--radius-pill);background:var(--graphite-700);border:1px solid var(--border-hairline);position:relative;transition:background var(--dur-med) var(--ease-out),border-color var(--dur-med);flex:none}
[data-theme="light"] .rh-switch__track{background:#D8DCD4}
.rh-switch__track::after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:var(--silver-300);transition:transform var(--dur-med) var(--ease-out),background var(--dur-med)}
.rh-switch input:checked + .rh-switch__track{background:var(--accent);border-color:var(--accent)}
.rh-switch input:checked + .rh-switch__track::after{transform:translateX(18px);background:var(--on-lime)}
.rh-switch input:focus-visible + .rh-switch__track{box-shadow:var(--focus-ring)}
.rh-card{background:var(--surface-card);border:1px solid var(--border-accent);border-radius:var(--radius-lg);padding:var(--card-pad);box-shadow:var(--shadow-card)}
.rh-card--plain{border-color:var(--border-hairline)}
.rh-card--interactive{cursor:pointer;transition:border-color var(--dur-med) var(--ease-out),transform var(--dur-med) var(--ease-out)}
.rh-card--interactive:hover{border-color:var(--border-accent-strong);transform:translateY(-2px)}
.rh-card__eyebrow{font-family:var(--font-display);font-size:var(--label-size);font-weight:var(--label-weight);letter-spacing:var(--label-tracking);text-transform:uppercase;color:var(--text-accent);margin-bottom:8px}
.rh-card__icon{color:var(--text-accent);margin-bottom:14px;display:inline-flex}
.rh-card__title{font-family:var(--font-display);font-weight:var(--display-weight);text-transform:uppercase;font-size:var(--text-h3);line-height:var(--leading-heading);color:var(--text-heading);margin:0 0 8px}
.rh-card__body{color:var(--text-body);font-size:var(--text-sm);margin:0}
.rh-card__footer{margin-top:16px;padding-top:14px;border-top:var(--rule)}
.rh-badge{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 10px;border-radius:var(--radius-sm);font-family:var(--font-display);font-weight:700;font-size:13px;letter-spacing:.08em;text-transform:uppercase;border:1px solid transparent}
.rh-badge--lime{background:var(--accent);color:var(--text-on-accent)}
.rh-badge--outline{border-color:var(--border-accent-strong);color:var(--text-accent)}
.rh-badge--neutral{border-color:var(--border-hairline);color:var(--text-muted)}
.rh-badge--warning{border-color:var(--warning);color:var(--warning)}
.rh-badge--danger{border-color:var(--danger);color:var(--danger)}
.rh-tag{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 10px;border-radius:var(--radius-sm);border:1px solid var(--border-hairline);background:var(--surface-raised);color:var(--text-body);font-family:var(--font-body);font-size:var(--text-sm)}
[data-theme="light"] .rh-tag{background:var(--surface-card)}
.rh-tag__x{display:inline-flex;cursor:pointer;color:var(--text-faint);background:none;border:none;padding:0}
.rh-tag__x:hover{color:var(--text-heading)}
.rh-divider{border:none;border-top:var(--rule);margin:0}
.rh-divider--accent{border-top:var(--rule-accent)}
.rh-dividerlbl{display:flex;align-items:center;gap:14px;color:var(--text-faint);font-family:var(--font-display);font-size:var(--label-size);font-weight:var(--label-weight);letter-spacing:var(--label-tracking);text-transform:uppercase}
.rh-dividerlbl::before,.rh-dividerlbl::after{content:"";flex:1;border-top:var(--rule)}
.rh-tabs{display:flex;gap:4px;border-bottom:var(--rule)}
.rh-tab{font-family:var(--font-display);font-weight:600;text-transform:uppercase;letter-spacing:.05em;font-size:16px;color:var(--text-muted);background:none;border:none;border-bottom:2px solid transparent;padding:10px 14px;margin-bottom:-1px;cursor:pointer;transition:color var(--dur-fast)}
.rh-tab:hover{color:var(--text-heading)}
.rh-tab:focus-visible{outline:none;box-shadow:var(--focus-ring);border-radius:var(--radius-sm)}
.rh-tab--active{color:var(--text-heading);border-bottom-color:var(--accent)}
.rh-overlay{position:fixed;inset:0;background:var(--overlay);display:flex;align-items:center;justify-content:center;z-index:100;padding:24px}
.rh-dialog{background:var(--surface-raised);border:1px solid var(--border-hairline);border-radius:var(--radius-lg);box-shadow:var(--shadow-pop);width:100%;max-width:480px;padding:var(--sp-6)}
[data-theme="light"] .rh-dialog{box-shadow:var(--shadow-pop-light)}
.rh-dialog__head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:12px}
.rh-dialog__title{font-family:var(--font-display);font-weight:var(--display-weight);text-transform:uppercase;font-size:var(--text-h3);color:var(--text-heading);margin:0}
.rh-dialog__footer{display:flex;justify-content:flex-end;gap:10px;margin-top:24px;padding-top:16px;border-top:var(--rule)}
.rh-toast{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;border-radius:var(--radius-md);border:1px solid var(--border-hairline);background:var(--surface-elevated);color:var(--text-body);font-size:var(--text-sm);max-width:420px}
.rh-toast__icon{flex:none;display:flex;margin-top:1px}
.rh-toast--success .rh-toast__icon{color:var(--success)}
.rh-toast--error{border-color:var(--danger)}.rh-toast--error .rh-toast__icon{color:var(--danger)}
.rh-toast--warning .rh-toast__icon{color:var(--warning)}
.rh-toast--info .rh-toast__icon{color:var(--text-muted)}
.rh-toast__title{font-family:var(--font-display);font-weight:700;text-transform:uppercase;letter-spacing:.04em;font-size:15px;color:var(--text-heading);margin:0 0 2px}
.rh-tooltipwrap{position:relative;display:inline-flex}
.rh-tooltip{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%) translateY(2px);background:var(--graphite-700);color:var(--white-100);border:1px solid var(--border-hairline);font-family:var(--font-body);font-size:var(--text-xs);padding:5px 9px;border-radius:var(--radius-sm);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out);z-index:50}
[data-theme="light"] .rh-tooltip{background:#121512;border-color:#121512;color:#F4F6F1}
.rh-tooltipwrap:hover .rh-tooltip,.rh-tooltipwrap:focus-within .rh-tooltip{opacity:1;transform:translateX(-50%) translateY(0)}
