.tfa-settings { max-width: 1100px; margin: 0 auto 2rem; font-size: 1rem; line-height: 1.5; }
.tfa-section { padding: 1.25rem 0.5rem; }
.tfa-section + .tfa-section { border-top: 1px solid var(--dm-border, #e3e6f0); }
.tfa-section:first-of-type { padding-top: 0.5rem; }
.tfa-actions { display: flow-root; margin: 0.5rem -0.75rem -0.75rem; padding-top: 0.25rem; border-top: 1px solid var(--dm-border, #e3e6f0); }
.tfa-card-head { margin: 0 0 1rem; }
.tfa-title { margin: 0; font-size: 1.25rem; font-weight: 700; line-height: 1.3; }
.tfa-text { margin: 0.25rem 0 0; }
.tfa-muted { opacity: .8; }
.tfa-loading { display: flex; align-items: center; justify-content: center; gap: 0.75rem; padding: 2.5rem 1.5rem; }

.tfa-notice { display: flex; align-items: flex-start; gap: 0.75rem; margin: 0 0 1rem; padding: 0.875rem 1rem; background: rgba(54, 185, 204, .1); border: 1px solid rgba(54, 185, 204, .45); border-radius: 0.35rem; }
.tfa-notice .fas { margin-top: 0.2rem; color: #36b9cc; }
.tfa-notice.is-error { background: rgba(231, 74, 59, .08); border-color: rgba(231, 74, 59, .45); }
.tfa-notice.is-error .fas { color: #e74a3b; }

.tfa-status { display: flex; align-items: center; gap: 1.25rem; }
.tfa-status-icon { flex: 0 0 auto; display: flex; align-items: center; justify-content: center; width: 3.5rem; height: 3.5rem; border-radius: 50%; font-size: 1.75rem; }
.tfa-status.is-on .tfa-status-icon { background: rgba(28, 200, 138, .14); color: #1cc88a; }
.tfa-status.is-off .tfa-status-icon { background: rgba(246, 194, 62, .18); color: #d1a630; }
.tfa-status-body { flex: 1 1 auto; min-width: 0; }
.tfa-status-head { display: flex; align-items: center; flex-wrap: wrap; gap: 0.625rem; }
.tfa-status-action { flex: 0 0 auto; }

.tfa-pill { display: inline-flex; align-items: center; gap: 0.375rem; padding: 0.125rem 0.75rem; border-radius: 0.35rem; font-size: 1rem; font-weight: 700; line-height: 1.5; }
.tfa-pill::before { content: ''; width: 0.5rem; height: 0.5rem; border-radius: 50%; background: currentColor; }
.tfa-pill.is-on { background: rgba(28, 200, 138, .14); }
.tfa-pill.is-on::before { background: #1cc88a; }
.tfa-pill.is-off { background: rgba(246, 194, 62, .2); }
.tfa-pill.is-off::before { background: #d1a630; }

.tfa-list { border: 1px solid var(--dm-border, #e3e6f0); border-radius: 0.35rem; overflow: hidden; }
.tfa-row { display: flex; align-items: center; flex-wrap: wrap; gap: 0.75rem 1rem; padding: 1rem 1.25rem; transition: background-color .15s ease; }
.tfa-list .tfa-row + .tfa-row { border-top: 1px solid var(--dm-border, #e3e6f0); }
.tfa-list .tfa-row.is-selected { background: var(--dm-surface-2, #e8f1f7); }
.tfa-row.is-plain { padding: 0; }
.tfa-row-main { flex: 1 1 18rem; display: flex; align-items: center; gap: 1rem; min-width: 0; margin: 0; font-weight: 400; cursor: pointer; }
.tfa-row-main.is-disabled, .tfa-row.is-plain .tfa-row-main { cursor: default; }
.tfa-row-main.is-disabled .tfa-row-icon { opacity: .5; }
.tfa-row-icon { flex: 0 0 auto; display: flex; align-items: center; justify-content: center; width: 2.75rem; height: 2.75rem; border-radius: 0.35rem; background: rgba(0, 163, 211, .12); color: #00a3d3; font-size: 1.25rem; }
.tfa-row-text { display: flex; flex-direction: column; min-width: 0; }
.tfa-row-name { display: flex; align-items: center; flex-wrap: wrap; gap: 0.5rem; font-weight: 700; }
.tfa-row-detail { overflow-wrap: anywhere; }
.tfa-row-detail .fas { margin-right: 0.375rem; color: #d1a630; }
.tfa-row-actions { flex: 0 0 auto; display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 0.75rem; margin-left: auto; }
.tfa-row-actions .custom-switch { margin: 0; }

.tfa-tag { display: inline-block; padding: 0 0.5rem; border-radius: 0.2rem; background: rgba(0, 163, 211, .14); font-size: 1rem; font-weight: 700; line-height: 1.6; }
.tfa-tag.is-neutral { background: var(--dm-surface-3, #eaecf4); font-weight: 400; }
.tfa-tag.is-warning { margin-left: 0.25rem; background: rgba(246, 194, 62, .25); }





@media (max-width: 576px) {
  .tfa-section { padding-left: 0; padding-right: 0; }
  .tfa-status { flex-wrap: wrap; }
  .tfa-status-action { width: 100%; }
  .tfa-status-action .btn { width: 100%; }
  .tfa-row { padding: 1rem; }
  .tfa-row-actions { width: 100%; margin-left: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .tfa-row { transition: none; }
}
.tfa-row-links { display: flex; flex-wrap: wrap; gap: 0 1.25rem; margin-top: 0.25rem; }
.tfa-row-links .btn-link { padding: 0; border: 0; font-size: 1rem; text-decoration: underline; text-underline-offset: 3px; }
.tfa-row-actions .custom-control-label { line-height: 1.5rem; }
.tfa-row-actions .custom-control-input:disabled ~ .custom-control-label { cursor: default; }
.tfa-method-toggle { flex: 0 0 auto; min-height: 1.5rem; margin: 0; padding-left: 2.25rem; }
.tfa-method-toggle .custom-control-label { width: 0 !important; }
.tfa-company-list { margin: 0 0 1.75rem; }
.tfa-users-head { margin-top: 0.25rem; }
#tblTfaCompanyUsers_wrapper .custom-switch { margin: 0; }
@media (max-width: 576px) {
  .tfa-row-icon { display: none; }
  .tfa-row-main { gap: 0.875rem; }
}
.tfa-method-email, .tfa-method-sms { border-left: 4px solid var(--tfa-method-color); }
.tfa-method-email { --tfa-method-color: #1cc88a; --tfa-method-text: #12805a; --tfa-method-tint: rgba(28, 200, 138, .14); }
.tfa-method-sms { --tfa-method-color: #6f42c1; --tfa-method-text: #6f42c1; --tfa-method-tint: rgba(111, 66, 193, .14); }
.dark-mode .tfa-method-email { --tfa-method-text: #3ddc9f; }
.dark-mode .tfa-method-sms { --tfa-method-color: #9d7be0; --tfa-method-text: #b89cf0; --tfa-method-tint: rgba(157, 123, 224, .2); }
.tfa-method-email .tfa-row-icon, .tfa-method-sms .tfa-row-icon { width: 3.25rem; height: 3.25rem; background: var(--tfa-method-tint); color: var(--tfa-method-color); font-size: 1.6rem; }
.tfa-method-email .tfa-row-name, .tfa-method-sms .tfa-row-name { font-size: 1.25rem; color: var(--tfa-method-text); }
.tfa-method-email .tfa-row-detail, .tfa-method-sms .tfa-row-detail { font-size: 1.05rem; }
.tfa-method-email .tfa-row-main.is-disabled .tfa-row-icon, .tfa-method-sms .tfa-row-main.is-disabled .tfa-row-icon { opacity: .7; }
html.dark-mode .tfa-method-email .tfa-row-name, html.dark-mode .tfa-method-sms .tfa-row-name { color: var(--tfa-method-text); }
html.dark-mode .tfa-method-email .tfa-row-icon, html.dark-mode .tfa-method-sms .tfa-row-icon { color: var(--tfa-method-color); }
