/* Horizon Forms V4 — normalize every form surface to the BuilderKit component system. */
.horizon,
body.horizon{--hz-control-h:32px;--hz-control-r:8px;--hz-form-gap:16px;--hz-form-max:560px}

/* Base form typography + geometry */
.horizon form:not(.hz-auth-form),.horizon .hz-form{font-size:13px;color:var(--hz-text)}
.horizon .form-group,.horizon .form-field,.horizon .tcb-field,.horizon .admin-form-group{margin:0 0 var(--hz-form-gap)!important}
.horizon form label,.horizon .form-label,.horizon .control-label,.horizon .tcb-field label{display:block;margin:0 0 7px!important;color:var(--hz-text)!important;font-size:12px!important;line-height:16px!important;font-weight:550!important}
.horizon .form-text,.horizon .help-block,.horizon small.form-text,.horizon .text-muted{color:var(--hz-muted)!important;font-size:11px!important;line-height:17px!important}
.horizon form input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]),
.horizon form select,.horizon form textarea,.horizon .form-control,.horizon .form-select,.horizon .custom-select,.horizon .dataTable-input,.horizon .dataTable-selector{
 width:100%;min-height:var(--hz-control-h)!important;height:var(--hz-control-h);padding:5px 11px!important;border:1px solid var(--hz-border)!important;border-radius:var(--hz-control-r)!important;background:var(--hz-surface)!important;color:var(--hz-text)!important;box-shadow:0 1px 2px var(--hz-shadow)!important;font-size:13px!important;line-height:20px!important;outline:0!important;transition:border-color .12s ease,box-shadow .12s ease,background-color .12s ease
}
.horizon textarea,.horizon textarea.form-control{height:auto!important;min-height:76px!important;resize:vertical;padding-top:8px!important;padding-bottom:8px!important}
.horizon select,.horizon .form-select,.horizon .custom-select{padding-right:30px!important;background-color:var(--hz-surface)!important}
.horizon form input::placeholder,.horizon form textarea::placeholder{color:var(--hz-faint)!important;opacity:1}
.horizon form input:focus,.horizon form select:focus,.horizon form textarea:focus,.horizon .form-control:focus,.horizon .form-select:focus{border-color:var(--hz-accent,var(--ui-orange-500,#3e63dd))!important;box-shadow:0 0 0 2px color-mix(in srgb,var(--hz-accent,var(--ui-orange-500,#3e63dd)) 17%,transparent),0 1px 2px var(--hz-shadow)!important}
.horizon form input:disabled,.horizon form select:disabled,.horizon form textarea:disabled,.horizon .form-control:disabled,.horizon .form-control[readonly]{background:var(--hz-card)!important;color:var(--hz-muted)!important;opacity:1}

/* Checkbox / radio */
.horizon .form-check{display:flex!important;align-items:flex-start!important;gap:9px!important;padding:0!important;margin:4px 0 16px!important;min-height:20px}
.horizon .form-check-input,.horizon form input[type=checkbox],.horizon form input[type=radio]{position:static!important;float:none!important;margin:2px 0 0!important;width:16px!important;height:16px!important;min-width:16px!important;accent-color:var(--hz-accent,var(--ui-orange-500,#3e63dd));box-shadow:none!important}
.horizon .form-check-label{margin:0!important;font-size:12px!important;line-height:18px!important;font-weight:450!important;color:var(--hz-muted)!important}

/* Buttons: icons are always their own flex item, never over text */
.horizon .btn,.horizon form button:not(.swal2-styled):not(.hz-auth-control-action):not(.hz-auth-link),.horizon a.btn,.horizon .btn-gradient,.horizon .tcb-btn{
 min-height:32px!important;height:auto;padding:5px 11px!important;border-radius:8px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:8px!important;font-size:12px!important;line-height:20px!important;font-weight:550!important;box-shadow:0 1px 2px var(--hz-shadow)!important;transform:none!important;white-space:nowrap
}
.horizon .btn i,.horizon form button i,.horizon a.btn i,.horizon .btn-gradient i,.horizon .tcb-btn i,.horizon .page-title>i,.horizon .hz-title-icon,.horizon .hz-inline-icon{position:static!important;inset:auto!important;transform:none!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;flex:0 0 auto!important;width:16px!important;height:16px!important;line-height:16px!important;margin:0!important;font-size:15px!important}
.horizon .btn-gradient{width:auto!important;background:var(--hz-accent,var(--ui-orange-500,#3e63dd))!important;color:#fff!important;border:1px solid color-mix(in srgb,var(--hz-accent,var(--ui-orange-500,#3e63dd)) 82%,#000)!important}
.horizon .btn-gradient:hover{filter:brightness(.97);box-shadow:0 1px 3px var(--hz-shadow)!important}
.horizon .btn-primary,.horizon .tcb-btn-primary{background:var(--hz-accent,var(--ui-orange-500,#3e63dd))!important;color:#fff!important;border-color:color-mix(in srgb,var(--hz-accent,var(--ui-orange-500,#3e63dd)) 82%,#000)!important}
.horizon .btn-secondary,.horizon .btn-outline-secondary{background:var(--hz-surface)!important;color:var(--hz-text)!important;border:1px solid var(--hz-border)!important}
.horizon .btn-danger{background:#e5484d!important;color:#fff!important;border-color:#d64045!important}
.horizon .btn-warning{background:#f5a524!important;color:#201a0b!important;border-color:#e69a19!important}
.horizon .btn-sm{min-height:28px!important;padding:3px 8px!important}

/* Input groups: every icon/action gets a dedicated box/column. */
.horizon .input-group{display:flex!important;align-items:stretch!important;flex-wrap:nowrap!important;gap:0!important;width:100%}
.horizon .input-group>.form-control,.horizon .input-group>input,.horizon .input-group>select{min-width:0!important;flex:1 1 auto!important;border-radius:8px 0 0 8px!important}
.horizon .input-group>.btn,.horizon .input-group>.input-group-text,.horizon .input-group>.input-group-append .btn{position:static!important;flex:0 0 auto!important;border-radius:0!important;margin-left:-1px!important;box-shadow:none!important}
.horizon .input-group>:last-child,.horizon .input-group>.input-group-append:last-child .btn:last-child{border-radius:0 8px 8px 0!important}
.horizon .input-group-text{min-width:34px;display:flex!important;align-items:center!important;justify-content:center!important;padding:5px 9px!important;background:var(--hz-card)!important;color:var(--hz-muted)!important;border:1px solid var(--hz-border)!important;font-size:12px!important}
.horizon .account-token-control .btn{width:34px!important;padding:0!important}

/* Auth fields: icon is a separate 32px cell instead of being overlaid on the input. */
.hz-auth-control{display:grid!important;grid-template-columns:32px minmax(0,1fr)!important;align-items:stretch!important;position:static!important}
.hz-auth-control.has-action{grid-template-columns:32px minmax(0,1fr) 32px!important}
.hz-auth-control>i{position:static!important;inset:auto!important;transform:none!important;display:grid!important;place-items:center!important;width:32px!important;height:32px!important;color:var(--hz-muted)!important;background:var(--hz-card)!important;border:1px solid var(--hz-border)!important;border-right:0!important;border-radius:8px 0 0 8px!important;font-size:14px!important;z-index:auto!important}
.hz-auth-control>input{grid-column:2!important;height:32px!important;min-height:32px!important;padding:5px 10px!important;border-radius:0 8px 8px 0!important}
.hz-auth-control.has-action>input{border-radius:0!important;padding-right:10px!important}
.hz-auth-control>.hz-auth-control-action{position:static!important;inset:auto!important;transform:none!important;width:32px!important;height:32px!important;margin-left:-1px!important;border:1px solid var(--hz-border)!important;border-radius:0 8px 8px 0!important;background:var(--hz-card)!important;color:var(--hz-muted)!important;box-shadow:none!important}
.hz-auth-control>.hz-auth-control-action i{position:static!important;display:block!important;width:auto!important;height:auto!important;transform:none!important}

/* Compact bank / wallet connect forms */
.horizon .hz-connect-page{max-width:980px!important;margin:0 auto!important;padding:24px 24px 32px!important}
.horizon .hz-connect-page>.row{--bs-gutter-x:16px!important;--bs-gutter-y:16px!important;justify-content:center}
.horizon .hz-connect-page .hz-connect-form,.horizon .tcb-panel.hz-connect-form{max-width:620px!important;margin:0 auto!important;padding:4px!important;border:0!important;border-radius:12px!important;background:var(--hz-card)!important;box-shadow:none!important;overflow:hidden}
.horizon .hz-connect-page .hz-connect-form>*:not(.hz-connect-head),.horizon .tcb-panel .tcb-body{background:var(--hz-surface)!important}
.horizon .hz-connect-page .hz-connect-form{padding:20px!important;border:1px solid var(--hz-border)!important;background:var(--hz-surface)!important;box-shadow:0 1px 3px var(--hz-shadow),0 1px 2px -1px var(--hz-shadow)!important}
.horizon .hz-connect-page .glass-card:not(.hz-connect-form){max-width:620px!important;margin:16px auto 0!important;padding:16px!important;border:1px solid var(--hz-border)!important;border-radius:8px!important;background:var(--hz-surface)!important;box-shadow:0 1px 2px var(--hz-shadow)!important;transform:none!important}
.horizon .hz-connect-page .flex-between{gap:10px!important;margin-bottom:16px!important}
.horizon .hz-connect-page .page-title{display:flex!important;align-items:center!important;gap:8px!important;margin:12px 0 2px!important;font-size:18px!important;line-height:24px!important;letter-spacing:-.4px!important;font-weight:650!important}
.horizon .hz-connect-page .breadcrumb-glass{display:flex!important;align-items:center!important;gap:6px!important;margin:0!important;padding:0!important;list-style:none!important;color:var(--hz-muted)!important;font-size:11px!important;line-height:16px!important}
.horizon .hz-connect-page .breadcrumb-glass li:not(:last-child)::after{content:"/";margin-left:6px;color:var(--hz-faint)}
.horizon .hz-connect-page .breadcrumb-glass a{color:var(--hz-muted)!important;text-decoration:none!important}
.horizon .hz-connect-page .form-group{margin-bottom:14px!important}
.horizon .hz-connect-page .form-check{margin:2px 0 16px!important;padding:10px 12px!important;border:1px solid var(--hz-border)!important;border-radius:8px!important;background:var(--hz-card)!important}
.horizon .hz-connect-page .btn-gradient{width:100%!important}

/* Compact brand heading */
.horizon .bank-login-brand,.horizon .tcb-hero{display:flex!important;align-items:center!important;gap:12px!important;margin:0 0 4px!important;padding:0!important;background:transparent!important;border:0!important}
.horizon .bank-login-brand-logo,.horizon .tcb-logo{width:40px!important;height:40px!important;min-width:40px!important;max-width:40px!important;max-height:40px!important;object-fit:contain!important;padding:5px!important;border:1px solid var(--hz-border)!important;border-radius:8px!important;background:#fff!important;box-shadow:0 1px 2px var(--hz-shadow)!important}
.horizon .bank-login-brand h2,.horizon .tcb-title{margin:0!important;color:var(--hz-text)!important;font-size:14px!important;line-height:20px!important;font-weight:650!important}
.horizon .bank-login-brand p,.horizon .tcb-subtitle{margin:1px 0 0!important;color:var(--hz-muted)!important;font-size:11px!important;line-height:16px!important}

/* Inline notices become Horizon setting-note components */
.horizon .hz-connect-page [style*="border-radius:20px"],.horizon .tcb-notice{margin:0 0 16px!important;padding:10px 12px!important;border:1px solid var(--hz-border)!important;border-radius:8px!important;background:var(--hz-card)!important;color:var(--hz-muted)!important;font-size:11px!important;line-height:17px!important;box-shadow:none!important}
.horizon .hz-connect-page [style*="border-radius:20px"]>div:first-child{color:var(--hz-text)!important;font-size:12px!important;font-weight:600!important;display:flex!important;align-items:center!important;gap:7px!important}

/* Techcombank special page mapped to same pattern */
.horizon .tcb-page{max-width:980px!important;margin:0 auto!important;padding:24px!important}
.horizon .tcb-panel{border:1px solid var(--hz-border)!important;border-radius:12px!important;background:var(--hz-surface)!important;box-shadow:0 1px 3px var(--hz-shadow)!important}
.horizon .tcb-hero{padding:20px 20px 0!important}
.horizon .tcb-body{padding:16px 20px 20px!important}
.horizon .tcb-grid{display:grid!important;grid-template-columns:minmax(0,1fr) 190px!important;gap:20px!important;align-items:start!important}
.horizon .tcb-stat{padding:12px!important;border:1px solid var(--hz-border)!important;border-radius:8px!important;background:var(--hz-card)!important;color:var(--hz-muted)!important;font-size:11px!important;line-height:17px!important}
.horizon .tcb-stat strong{display:block;color:var(--hz-text)!important;font-size:12px!important;margin-bottom:4px}
.horizon .tcb-stat hr{margin:10px 0!important;border-color:var(--hz-border)!important}

/* Admin forms: BuilderKit settings geometry */
.horizon .admin-settings-form,.horizon .admin-form-grid,.horizon .admin-basic-card form{max-width:880px}
.horizon .admin-form-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:16px!important}
.horizon .admin-basic-card,.horizon .card{border:1px solid var(--hz-border)!important;border-radius:8px!important;background:var(--hz-surface)!important;box-shadow:0 1px 2px var(--hz-shadow)!important}
.horizon .modal-content{border:1px solid var(--hz-border)!important;border-radius:12px!important;background:var(--hz-surface)!important;color:var(--hz-text)!important;box-shadow:0 16px 60px #0004!important}
.horizon .modal-header,.horizon .modal-footer{border-color:var(--hz-border)!important;padding:14px 16px!important}.horizon .modal-body{padding:16px!important}

/* Tables / filters forms */
.horizon .dataTables_filter input,.horizon .dataTables_length select{display:inline-block!important;width:auto!important;min-width:72px!important;height:28px!important;min-height:28px!important;margin-left:6px!important}
.horizon .captcha-filter-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr)) auto!important;gap:10px!important;align-items:end!important}

/* Responsive */
@media(max-width:767px){
 .horizon .hz-connect-page,.horizon .tcb-page{padding:16px 12px 24px!important}
 .horizon .hz-connect-page .hz-connect-form{padding:16px!important}
 .horizon .tcb-grid{grid-template-columns:1fr!important}
 .horizon .tcb-hero,.horizon .tcb-body{padding-left:16px!important;padding-right:16px!important}
 .horizon .admin-form-grid,.horizon .captcha-filter-grid{grid-template-columns:1fr!important}
 .horizon .bank-login-brand-logo,.horizon .tcb-logo{width:36px!important;height:36px!important;min-width:36px!important}
}
/* Connection pages intentionally use one compact column; guidance sits below the form. */
.horizon .hz-connect-page>.row>.col-md-6,.horizon .hz-connect-page>.row>.col-lg-6,.horizon .hz-connect-page>.row>.col-xl-6{width:100%!important;max-width:620px!important;flex:0 0 100%!important}
.horizon .hz-connect-page .note-card{padding:0!important;border:0!important;background:transparent!important;color:var(--hz-muted)!important;font-size:11px!important;line-height:18px!important}
.horizon .hz-connect-page h5{display:flex!important;align-items:center!important;gap:7px!important;margin:0 0 8px!important;color:var(--hz-text)!important;font-size:12px!important;font-weight:650!important}

/* ========================================================================== */
/* Forms V4.1 — tighter bank/wallet cards + square app-icon assets.           */
/* ========================================================================== */
.horizon .hz-connect-page{max-width:900px!important;padding:18px 18px 26px!important}
.horizon .hz-connect-page .hz-connect-form,.horizon .tcb-panel.hz-connect-form{max-width:540px!important;margin:0 auto!important;padding:16px!important;border-radius:10px!important}
.horizon .hz-connect-page>.row>.col-md-6,.horizon .hz-connect-page>.row>.col-lg-6,.horizon .hz-connect-page>.row>.col-xl-6{max-width:540px!important}
.horizon .hz-connect-page .glass-card:not(.hz-connect-form){max-width:540px!important;margin:12px auto 0!important;padding:12px!important}
.horizon .hz-connect-page .flex-between{margin-bottom:12px!important}
.horizon .hz-connect-page .page-title{margin:7px 0 2px!important;font-size:15px!important;line-height:20px!important;gap:6px!important;letter-spacing:-.2px!important}
.horizon .hz-connect-page .breadcrumb-glass{font-size:10.5px!important;line-height:15px!important}
.horizon .hz-connect-page .form-group{margin-bottom:12px!important}
.horizon .hz-connect-page .form-check{margin:1px 0 12px!important;padding:8px 10px!important;gap:7px!important}
.horizon .hz-connect-page .form-check-label{font-size:10.75px!important;line-height:16px!important}
.horizon .hz-connect-page .btn-gradient{width:auto!important;min-width:92px!important}
.horizon .hz-connect-page .btn-group{display:flex!important;flex-wrap:wrap!important;gap:8px!important}

.horizon .bank-login-brand,.horizon .tcb-hero{gap:10px!important;margin:0 0 3px!important}
.horizon .bank-login-brand-logo,.horizon .tcb-logo{width:36px!important;height:36px!important;min-width:36px!important;max-width:36px!important;max-height:36px!important;padding:0!important;border:0!important;border-radius:9px!important;background:transparent!important;object-fit:cover!important;box-shadow:0 1px 2px var(--hz-shadow)!important}
.horizon .bank-login-brand h2,.horizon .tcb-title{font-size:13px!important;line-height:18px!important}
.horizon .bank-login-brand p,.horizon .tcb-subtitle{font-size:10.75px!important;line-height:15px!important}
.horizon .hz-connect-page [style*="border-radius:20px"],.horizon .tcb-notice{margin-bottom:12px!important;padding:8px 10px!important;font-size:10.75px!important;line-height:16px!important}
.horizon .hz-connect-page [style*="border-radius:20px"]>div:first-child{font-size:11.5px!important}

.horizon .tcb-page{max-width:900px!important;padding:18px!important}.horizon .tcb-panel{max-width:540px!important;margin:0 auto!important;border-radius:10px!important}.horizon .tcb-hero{padding:16px 16px 0!important}.horizon .tcb-body{padding:12px 16px 16px!important}.horizon .tcb-grid{grid-template-columns:minmax(0,1fr) 160px!important;gap:16px!important}.horizon .tcb-stat{padding:9px!important;font-size:10.5px!important;line-height:16px!important}

/* App icons are self-contained square artwork; don't add a second frame around them. */
.horizon :is(.bank-login-brand-logo,.tcb-logo,.bank-icon img,.admin-bank-item__logo img,.hz-bank-item img,.plan-bank-card__logo img,.bank-plan__logo img,.summary-brand__logo img,.admin-bank-logo img){object-fit:cover!important;border-radius:9px!important}
.horizon .bank-card-glass{flex:1 1 132px!important;max-width:160px!important;min-height:94px!important;padding:9px!important}
.horizon .bank-card-glass .bank-icon{width:38px!important;height:38px!important;margin:0 auto 5px!important;padding:0!important;border:0!important;border-radius:9px!important;background:transparent!important;box-shadow:none!important}
.horizon .bank-card-glass .bank-icon img{width:38px!important;height:38px!important;max-width:38px!important;max-height:38px!important}
.horizon .bank-card-glass .bank-name{font-size:11px!important}.horizon .bank-card-glass .bank-count{font-size:10px!important}
.horizon .admin-bank-item{min-height:56px!important;grid-template-columns:30px 1fr auto!important;gap:8px!important;padding:7px 8px!important}.horizon .admin-bank-item__logo{width:30px!important;height:30px!important;min-width:30px!important;padding:0!important;border:0!important;background:transparent!important}.horizon .admin-bank-item__logo img{width:30px!important;height:30px!important;max-width:30px!important;max-height:30px!important}
.horizon .hz-bank-grid{gap:8px!important;margin-top:18px!important}.horizon .hz-bank-item{height:58px!important;padding:8px!important}.horizon .hz-bank-item img{width:36px!important;height:36px!important;max-width:36px!important;max-height:36px!important}
.horizon .plan-bank-card__logo,.horizon .bank-plan__logo,.horizon .admin-bank-logo{width:34px!important;height:34px!important;min-width:34px!important;padding:0!important;border:0!important;border-radius:9px!important;background:transparent!important;overflow:hidden!important}.horizon .summary-brand__logo{width:40px!important;height:40px!important;min-width:40px!important;padding:0!important;border:0!important;border-radius:10px!important;background:transparent!important;overflow:hidden!important}.horizon :is(.plan-bank-card__logo,.bank-plan__logo,.summary-brand__logo,.admin-bank-logo)>img{width:100%!important;height:100%!important;max-width:100%!important;max-height:100%!important}
.horizon img.bank-logo{width:24px!important;height:24px!important;max-width:24px!important;max-height:24px!important;object-fit:contain!important;border-radius:6px!important;background:#fff!important}

@media(max-width:767px){
 .horizon .hz-connect-page,.horizon .tcb-page{padding:12px 10px 20px!important}
 .horizon .hz-connect-page .hz-connect-form{max-width:none!important;width:100%!important;padding:13px!important;border-radius:9px!important}
 .horizon .hz-connect-page .glass-card:not(.hz-connect-form){max-width:none!important;width:100%!important;padding:11px!important}
 .horizon .bank-login-brand-logo,.horizon .tcb-logo{width:32px!important;height:32px!important;min-width:32px!important;max-width:32px!important;max-height:32px!important;border-radius:8px!important}
 .horizon .bank-login-brand h2,.horizon .tcb-title{font-size:12.5px!important}.horizon .bank-login-brand p,.horizon .tcb-subtitle{font-size:10.5px!important}
 .horizon .hz-connect-page .page-title{font-size:14px!important;line-height:19px!important;margin-top:6px!important}
 .horizon .hz-connect-page .form-group{margin-bottom:11px!important}
 .horizon .tcb-panel{max-width:none!important;width:100%!important}.horizon .tcb-grid{grid-template-columns:1fr!important}.horizon .tcb-hero{padding:13px 13px 0!important}.horizon .tcb-body{padding:11px 13px 13px!important}
 .horizon .bank-card-glass{flex-basis:122px!important;max-width:none!important;min-height:88px!important;padding:8px!important}.horizon .bank-card-glass .bank-icon,.horizon .bank-card-glass .bank-icon img{width:34px!important;height:34px!important;max-width:34px!important;max-height:34px!important;border-radius:8px!important}
 .horizon .hz-bank-item{height:54px!important}.horizon .hz-bank-item img{width:32px!important;height:32px!important;max-width:32px!important;max-height:32px!important;border-radius:8px!important}
 .horizon .plan-bank-card__logo,.horizon .bank-plan__logo,.horizon .admin-bank-logo{width:32px!important;height:32px!important;min-width:32px!important}.horizon .summary-brand__logo{width:36px!important;height:36px!important;min-width:36px!important}
}

/* ========================================================================== */
/* Horizon V4.3 — supplied square logos + balanced form actions & typography. */
/* ========================================================================== */
.horizon,
body.horizon{
  --hz-control-h:34px;
  --hz-form-title:16px;
  --hz-form-body:12.5px;
  --hz-form-help:11.25px;
  --hz-form-label:11.75px;
}

/* Controls and action buttons share one visual rhythm. */
.horizon form input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]),
.horizon form select,
.horizon form textarea,
.horizon .form-control,
.horizon .form-select,
.horizon .custom-select,
.horizon .dataTable-input,
.horizon .dataTable-selector{
  min-height:var(--hz-control-h)!important;
  font-size:var(--hz-form-body)!important;
  line-height:20px!important;
}
.horizon form label,
.horizon .form-label,
.horizon .control-label,
.horizon .tcb-field label{
  margin-bottom:6px!important;
  font-size:var(--hz-form-label)!important;
  line-height:16px!important;
}
.horizon :is(.form-text,.help-block,small.form-text,.text-muted){
  font-size:var(--hz-form-help)!important;
  line-height:17px!important;
}
.horizon :is(.btn,.btn-gradient,.btn-gradient-sm,.btn-save,.btn-login,.btn-reset,.login-do-btn,.tcb-btn,.captcha-btn,.profile-btn-v3),
.horizon form button:not(.swal2-styled):not(.hz-auth-control-action):not(.hz-auth-link){
  min-height:var(--hz-control-h)!important;
  height:var(--hz-control-h)!important;
  padding:6px 12px!important;
  font-size:12px!important;
  line-height:20px!important;
  gap:7px!important;
}
.horizon :is(.btn,.btn-gradient,.tcb-btn) i,
.horizon form button i{
  width:16px!important;
  height:16px!important;
  min-width:16px!important;
  font-size:15px!important;
  line-height:16px!important;
}

/* Form copy is deliberately smaller than page/dashboard typography. */
.horizon .hz-connect-form .bank-login-brand{gap:9px!important;margin:0 0 8px!important}
.horizon .hz-connect-form .bank-login-brand-logo,
.horizon .tcb-logo{
  width:34px!important;height:34px!important;min-width:34px!important;max-width:34px!important;max-height:34px!important;flex-basis:34px!important;
  border-radius:8px!important;object-fit:cover!important
}
.horizon .hz-connect-form .bank-login-brand h2{
  margin:0!important;font-size:13px!important;line-height:17px!important;font-weight:650!important;letter-spacing:-.1px!important
}
.horizon .hz-connect-form .bank-login-brand p{
  margin:1px 0 0!important;font-size:11px!important;line-height:15px!important;color:var(--hz-muted)!important
}
.horizon .hz-connect-form .bank-login-brand + .page-title,
.horizon .hz-connect-page .page-title{
  margin:3px 0 0!important;font-size:var(--hz-form-title)!important;line-height:21px!important;letter-spacing:-.3px!important;font-weight:650!important
}
.horizon .hz-connect-form .page-title i,
.horizon .hz-connect-page .page-title i{width:16px!important;height:16px!important;font-size:15px!important}
.horizon .hz-connect-form .breadcrumb-glass,
.horizon .hz-connect-page .breadcrumb-glass{
  margin-top:3px!important;font-size:10.75px!important;line-height:15px!important
}
.horizon .hz-connect-form :is(p,li),
.horizon .tcb-panel :is(p,li){font-size:11.5px!important;line-height:17px!important}
.horizon .hz-connect-form :is(.note-card,.alert,[style*="rgba(var(--ui-accent-rgb)"]),
.horizon .tcb-notice,
.horizon .tcb-stat{
  font-size:11.25px!important;line-height:17px!important
}
.horizon .hz-connect-form .form-check-label{font-size:11.25px!important;line-height:16px!important}
.horizon .hz-connect-page>.row>.col-md-6:last-child>.glass-card :is(p,li,.note-card),
.horizon .hz-connect-page>.row>.col-lg-6:last-child>.glass-card :is(p,li,.note-card){font-size:11.25px!important;line-height:17px!important}
.horizon .hz-connect-page>.row>.col-md-6:last-child>.glass-card h5,
.horizon .hz-connect-page>.row>.col-lg-6:last-child>.glass-card h5{font-size:12.25px!important;line-height:18px!important}

/* Action rows use the width of the form, not arbitrary full-width/mini buttons. */
.horizon .hz-connect-form .form-group:has(>button){
  display:flex!important;align-items:center!important;justify-content:flex-end!important;gap:8px!important;
  max-width:480px!important;margin-top:17px!important;padding-top:12px!important;border-top:1px solid var(--hz-border)!important
}
.horizon .hz-connect-form .btn-group{
  display:flex!important;align-items:center!important;justify-content:flex-end!important;flex-wrap:wrap!important;gap:8px!important;
  max-width:480px!important;margin-top:17px!important;padding-top:12px!important;border-top:1px solid var(--hz-border)!important
}
.horizon .hz-connect-form .form-group>button,
.horizon .hz-connect-form .btn-group>.btn-gradient,
.horizon .hz-connect-form .btn-group>.btn,
.horizon .tcb-grid>div>.tcb-btn{
  width:auto!important;min-width:112px!important;max-width:100%!important;padding-left:14px!important;padding-right:14px!important
}
.horizon .tcb-grid>div{display:flex!important;flex-direction:column!important;min-width:0!important}
.horizon .tcb-grid>div>.tcb-btn{align-self:flex-end!important;margin-top:4px!important}
.horizon #tcbStatus .tcb-btn{width:auto!important;min-width:112px!important}

/* Auth uses the same control/button height and a calmer text scale. */
.hz-auth-title{font-size:19px!important;line-height:24px!important;letter-spacing:-.45px!important}
.hz-auth-subtitle{font-size:11.75px!important;line-height:18px!important;margin-bottom:20px!important}
.hz-auth-field>label{font-size:11.75px!important;line-height:16px!important;margin-bottom:6px!important}
.hz-auth-control{grid-template-columns:34px minmax(0,1fr)!important}
.hz-auth-control.has-action{grid-template-columns:34px minmax(0,1fr) 34px!important}
.hz-auth-control>i,.hz-auth-control>.hz-auth-control-action{width:34px!important;height:34px!important}
.hz-auth-control>input{height:34px!important;min-height:34px!important;font-size:12.5px!important}
.hz-auth-submit,.hz-auth-social{height:34px!important;min-height:34px!important;font-size:12px!important}
.hz-auth-footer,.hz-auth-link,.hz-auth-check label{font-size:11.5px!important}

/* Square supplied logos: artwork fills the app-icon box without distortion. */
.horizon :is(.bank-login-brand-logo,.tcb-logo,.bank-icon img,.admin-bank-item__logo img,.hz-bank-item img,.plan-bank-card__logo img,.bank-plan__logo img,.summary-brand__logo img,.admin-bank-logo img,.wallet-logo,.bank-card-logo){
  aspect-ratio:1/1!important;object-fit:cover!important;object-position:center!important
}
.horizon .bank-card-glass .bank-icon{width:36px!important;height:36px!important;margin-bottom:5px!important}
.horizon .bank-card-glass .bank-icon img{width:36px!important;height:36px!important;max-width:36px!important;max-height:36px!important}
.horizon .bank-card-glass{min-height:92px!important;padding:8px!important}
.horizon .bank-card-glass .bank-name{font-size:11.25px!important;line-height:15px!important}
.horizon .bank-card-glass .bank-count{font-size:10.25px!important;line-height:14px!important}

@media(max-width:767px){
  .horizon,body.horizon{--hz-control-h:38px;--hz-form-title:15px;--hz-form-body:13px;--hz-form-help:11.5px;--hz-form-label:12px}
  .horizon .hz-connect-page,.horizon .tcb-page{padding:10px 8px 18px!important}
  .horizon .hz-connect-page .hz-connect-form,.horizon .tcb-panel.hz-connect-form{padding:12px!important;border-radius:9px!important}
  .horizon .hz-connect-form .bank-login-brand-logo,.horizon .tcb-logo{width:32px!important;height:32px!important;min-width:32px!important;max-width:32px!important;max-height:32px!important;flex-basis:32px!important;border-radius:8px!important}
  .horizon .hz-connect-form .bank-login-brand h2{font-size:12.75px!important;line-height:17px!important}
  .horizon .hz-connect-form .bank-login-brand p{font-size:10.75px!important;line-height:15px!important}
  .horizon .hz-connect-form .bank-login-brand + .page-title,.horizon .hz-connect-page .page-title{font-size:15px!important;line-height:20px!important}
  .horizon .hz-connect-form .form-group{margin-bottom:11px!important}
  .horizon .hz-connect-form textarea.form-control{min-height:72px!important}
  .horizon .hz-connect-form .form-group:has(>button),.horizon .hz-connect-form .btn-group{width:100%!important;max-width:none!important;display:flex!important;flex-direction:column!important;align-items:stretch!important;padding-top:11px!important;margin-top:14px!important}
  .horizon .hz-connect-form .form-group>button,.horizon .hz-connect-form .btn-group>.btn-gradient,.horizon .hz-connect-form .btn-group>.btn,.horizon .tcb-grid>div>.tcb-btn,.horizon #tcbStatus .tcb-btn{width:100%!important;min-width:0!important;align-self:stretch!important;height:38px!important;min-height:38px!important;font-size:12.25px!important}
  .horizon :is(.btn,.btn-gradient,.btn-gradient-sm,.btn-save,.btn-login,.btn-reset,.login-do-btn,.tcb-btn,.captcha-btn,.profile-btn-v3),.horizon form button:not(.swal2-styled):not(.hz-auth-control-action):not(.hz-auth-link){min-height:38px!important;height:38px!important;font-size:12.25px!important}
  .horizon .bank-card-glass{flex-basis:118px!important;min-height:86px!important;padding:7px!important}
  .horizon .bank-card-glass .bank-icon,.horizon .bank-card-glass .bank-icon img{width:32px!important;height:32px!important;max-width:32px!important;max-height:32px!important;border-radius:8px!important}
  .horizon .bank-card-glass .bank-name{font-size:10.75px!important}.horizon .bank-card-glass .bank-count{font-size:10px!important}
  .hz-auth-title{font-size:18px!important;line-height:23px!important}.hz-auth-subtitle{font-size:11.5px!important;line-height:18px!important;margin-bottom:18px!important}
  .hz-auth-control{grid-template-columns:38px minmax(0,1fr)!important}.hz-auth-control.has-action{grid-template-columns:38px minmax(0,1fr) 38px!important}.hz-auth-control>i,.hz-auth-control>.hz-auth-control-action{width:38px!important;height:38px!important}.hz-auth-control>input,.hz-auth-submit,.hz-auth-social{height:38px!important;min-height:38px!important}
}

@media(min-width:768px) and (max-width:1100px){
  .horizon .hz-connect-page{max-width:820px!important;padding-left:16px!important;padding-right:16px!important}
  .horizon .hz-connect-page>.row{grid-template-columns:minmax(0,520px) minmax(190px,230px)!important;gap:18px!important}
}

/* Shared action rows outside connection forms (Admin settings, profile, edit forms). */
.horizon form :is(.form-actions,.admin-form-actions),
.horizon .profile-form-actions-v3,
.horizon .tcb-actions{
  display:flex!important;align-items:center!important;justify-content:flex-end!important;gap:8px!important;flex-wrap:wrap!important
}
.horizon form :is(.form-actions,.admin-form-actions) :is(.btn,button),
.horizon .profile-form-actions-v3 :is(.btn,button,a),
.horizon .tcb-actions :is(.tcb-btn,.btn,a){min-width:104px!important}
@media(max-width:575px){
  .horizon form :is(.form-actions,.admin-form-actions),
  .horizon .profile-form-actions-v3,
  .horizon .tcb-actions{flex-direction:column!important;align-items:stretch!important}
  .horizon form :is(.form-actions,.admin-form-actions) :is(.btn,button),
  .horizon .profile-form-actions-v3 :is(.btn,button,a),
  .horizon .tcb-actions :is(.tcb-btn,.btn,a){width:100%!important;min-width:0!important}
}
