.rib-btn{font-family:var(--font-body);font-weight:600;font-size:14px;border-radius:var(--radius-pill);padding:10px 20px;border:1px solid transparent;cursor:pointer;transition:background var(--duration-fast) var(--ease-standard),opacity var(--duration-fast)}
.rib-btn--primary{background:var(--rib-blue);color:#fff}
.rib-btn--primary:hover{background:var(--rib-navy)}
.rib-btn--secondary{background:transparent;color:var(--rib-blue);border-color:var(--rib-blue)}
.rib-btn--secondary:hover{background:rgba(0,102,179,.08)}
.rib-btn--ghost{background:transparent;color:var(--rib-navy)}
.rib-btn--ghost:hover{background:rgba(14,29,66,.06)}
.rib-btn--gold{background:var(--rib-gold);color:var(--rib-navy)}
.rib-btn--gold:hover{opacity:.88}
.rib-btn:disabled{opacity:.4;cursor:not-allowed}
.rib-btn--sm{padding:6px 14px;font-size:12px}
.rib-btn--lg{padding:14px 28px;font-size:16px}
.rib-badge{display:inline-flex;align-items:center;gap:4px;font-family:var(--font-body);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.03em;padding:4px 10px;border-radius:var(--radius-pill)}
.rib-badge--navy{background:var(--rib-navy);color:#fff}
.rib-badge--blue{background:var(--rib-blue);color:#fff}
.rib-badge--gold{background:var(--rib-gold);color:var(--rib-navy)}
.rib-badge--outline{background:transparent;border:1px solid var(--rib-gray-light);color:var(--rib-navy)}
.rib-tag{display:inline-flex;align-items:center;font-family:var(--font-body);font-size:12px;font-weight:500;padding:3px 10px;border-radius:var(--radius-sm);background:var(--rib-gray-light);color:var(--rib-navy)}
.rib-card{background:#fff;border:1px solid var(--rib-gray-light);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:var(--space-4);font-family:var(--font-body)}
.rib-card--elevated{box-shadow:var(--shadow-md);border-color:transparent}
.rib-card h3{font-family:var(--font-display);color:var(--rib-navy);margin:0 0 6px}
.rib-field{display:flex;flex-direction:column;gap:6px;font-family:var(--font-body);font-size:13px;color:var(--rib-navy)}
.rib-input,.rib-select{font-family:var(--font-body);font-size:14px;padding:10px 12px;border:1px solid var(--rib-gray-light);border-radius:var(--radius-sm);background:#fff;color:var(--text-body)}
.rib-input:focus,.rib-select:focus{outline:none;border-color:var(--rib-blue);box-shadow:0 0 0 3px rgba(0,102,179,.15)}
.rib-checkbox,.rib-radio{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-body);font-size:13px;color:var(--text-body)}
.rib-checkbox input,.rib-radio input{width:16px;height:16px;accent-color:var(--rib-blue)}
.rib-switch{position:relative;display:inline-block;width:40px;height:22px}
.rib-switch input{opacity:0;width:0;height:0}
.rib-switch .track{position:absolute;inset:0;background:var(--rib-gray-light);border-radius:var(--radius-pill);transition:background var(--duration-fast)}
.rib-switch .track:before{content:"";position:absolute;width:16px;height:16px;left:3px;top:3px;background:#fff;border-radius:50%;transition:transform var(--duration-fast)}
.rib-switch input:checked+.track{background:var(--rib-blue)}
.rib-switch input:checked+.track:before{transform:translateX(18px)}
.rib-logo-lockup{position:relative;display:inline-block;font-family:var(--font-display)}
.rib-logo-lockup img{display:block;width:100%}
.rib-logo-lockup .rib-logo-name{position:absolute;right:2%;bottom:5%;font-weight:700;text-align:right;white-space:nowrap;color:var(--rib-blue);outline:none}
