/*
 * Final Horizon system layer.
 * Loaded after all page-local CSS so the user supplied Horizon clone is the visual source of truth.
 */
@font-face{font-family:Inter;src:url('/assets/fonts/horizon/InterVariable.woff2') format('woff2');font-style:normal;font-weight:100 900;font-display:swap}
@font-face{font-family:'Commit Mono';src:url('/assets/fonts/horizon/CommitMonoVariable.woff2') format('woff2');font-style:normal;font-weight:100 900;font-display:swap}

.horizon{
  --hz-primary:var(--ui-accent,#3e63dd);
  --hz-primary-rgb:var(--ui-accent-rgb,62,99,221);
  --hz-success:#29a383;
  --hz-danger:#e5484d;
  --hz-warning:#ffc53d;
  --hz-info:#0091ff;
  --hz-font:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --ui-bg:var(--hz-bg);--ui-surface:var(--hz-surface);--ui-card:var(--hz-surface);--ui-surface-soft:var(--hz-card);
  --ui-text:var(--hz-text);--ui-text-soft:var(--hz-muted);--ui-text-muted:var(--hz-muted);--ui-text-faint:var(--hz-faint);--ui-border:var(--hz-border);
  --admin-canvas:var(--hz-bg);--admin-paper:var(--hz-surface);--admin-paper-2:var(--hz-card);--admin-ink:var(--hz-text);--admin-muted:var(--hz-muted);--admin-line:var(--hz-border);
  font-family:var(--hz-font)!important;font-size:13px!important;line-height:20px!important;font-weight:450!important;
}
html,body{min-height:100%}html{background:var(--hz-bg,#f7f7f8)!important}body.horizon{margin:0!important;background:var(--hz-bg)!important;color:var(--hz-text)!important;overflow-x:hidden}
body.horizon *,body.horizon *::before,body.horizon *::after{box-sizing:border-box}
body.horizon a{color:inherit}body.horizon a:hover{color:var(--hz-primary)}
body.horizon :is(h1,h2,h3,h4,h5,h6){font-family:var(--hz-font)!important;color:var(--hz-text)!important;font-weight:650!important;letter-spacing:-.018em}
body.horizon :is(p,small,.text-muted,.text-secondary){color:var(--hz-muted)!important}
body.horizon code,body.horizon pre,body.horizon kbd{font-family:'Commit Mono',ui-monospace,SFMono-Regular,Menlo,monospace!important}
body.horizon img{max-width:100%}

/* Horizon's blue is replaced only by the color configured in Admin; geometry remains exact. */
.horizon :is(.hz-primary-button,.btn-primary,.btn-gradient,.btn-gradient-sm,.btn-save,.login-do-btn,.btn-login,.btn-reset){background:var(--hz-primary)!important;border-color:color-mix(in srgb,var(--hz-primary) 82%,#000)!important;color:#fff!important}
.horizon :is(.hz-primary-button,.btn-primary,.btn-gradient,.btn-gradient-sm,.btn-save,.login-do-btn,.btn-login,.btn-reset):hover{background:color-mix(in srgb,var(--hz-primary) 88%,#000)!important;border-color:color-mix(in srgb,var(--hz-primary) 74%,#000)!important;color:#fff!important}
.horizon :is(button,a,input,select,textarea):focus-visible{outline-color:var(--hz-primary)!important}
.horizon .hz-settings>nav a.active{border-bottom-color:var(--hz-primary)!important}.horizon .hz-toggle.on{background:var(--hz-primary)!important}

/* ===== Exact shell mapping ===== */
.hz-site-sidebar{scrollbar-width:none}.hz-site-sidebar::-webkit-scrollbar{display:none}
.hz-brand-link{display:flex;align-items:center;gap:10px;min-width:0;color:var(--hz-text)!important;text-decoration:none!important}
.hz-brand-link>img{width:30px!important;height:30px!important;max-width:30px!important;max-height:30px!important;object-fit:contain;flex:0 0 30px;border-radius:6px}
.hz-brand-copy{display:flex;flex-direction:column;min-width:0;line-height:16px}.hz-brand-copy strong{font-size:15px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hz-brand-copy small{font-size:10px!important;color:var(--hz-muted)!important}
.hz-nav-section-label{padding:0 6px 4px;color:var(--hz-muted);font-size:11px;line-height:16px;font-weight:550}
.hz-site-sidebar .hz-nav-row{border:0;background:transparent;font:inherit;width:100%}.hz-site-sidebar .hz-nav-row.is-active{background:var(--hz-card);color:var(--hz-text)!important}.hz-site-sidebar .hz-nav-row.is-active>.hz-nav-label{font-weight:650}
.hz-site-sidebar .hz-nav-row :is(.ti,.fas,.fa){width:20px;text-align:center;color:var(--hz-muted);font-size:15px}.hz-site-sidebar .hz-nav-row.is-active :is(.ti,.fas,.fa){color:var(--hz-primary)}
.hz-site-sidebar .hz-nav-caret{margin-left:auto!important;width:14px!important;transition:transform .2s}.hz-site-sidebar .hz-nav-dropdown.is-open>.hz-nav-row .hz-nav-caret{transform:rotate(90deg)}
.hz-site-sidebar .hz-subnav{display:none;padding:2px 0 3px 24px}.hz-site-sidebar .hz-nav-dropdown.is-open>.hz-subnav{display:block}.hz-site-sidebar .hz-subnav a{min-height:30px;display:flex;align-items:center;padding:5px 9px;border-radius:6px;text-decoration:none;color:var(--hz-muted);font-size:12px}.hz-site-sidebar .hz-subnav a:hover,.hz-site-sidebar .hz-subnav a.is-active{background:var(--hz-card);color:var(--hz-text)}
.hz-sidebar-promo{margin:0 14px;padding:20px;min-height:148px;background:var(--hz-border);border:1px solid var(--hz-border);border-radius:8px;position:relative;overflow:hidden}.hz-sidebar-promo strong{display:block;font-weight:650}.hz-sidebar-promo p{margin:8px 0 0!important;color:var(--hz-muted)!important;font-size:12px!important;line-height:18px}
.hz-site-sidebar .hz-user{padding:16px}.hz-site-sidebar .hz-user-button{border:0;background:transparent;color:inherit}.hz-site-sidebar .hz-avatar{filter:none!important}.hz-user-actions{display:flex;gap:4px}.hz-user-actions .hz-icon-button{width:28px;height:28px}
.hz-backdrop-site{display:none;position:fixed;inset:0;z-index:35;background:#0006;border:0}
.hz-mobile-brand{margin-right:auto;display:flex;align-items:center;gap:8px;font-weight:650;min-width:0;color:inherit!important;text-decoration:none!important}.hz-mobile-brand img{width:26px!important;height:26px!important;object-fit:contain;border-radius:5px}.hz-mobile-bar>.hz-icon-button:first-of-type{margin-right:0!important}
.hz-app-content{max-width:1280px;margin:0 auto;padding:8px 24px 24px;min-height:calc(100vh - 56px)}
.hz-app-content>:is(.dashboard-container,.main-content-wrapper,.dash-container,.page-block,.content-wrapper,.admin-content-wrapper,.admin-dashboard,.admin-basic-page,.container-fluid){width:100%!important;max-width:none!important;margin:0!important;padding:0!important;background:transparent!important;min-height:0!important}
body.client-app.horizon :is(.main-header,.main-sidebar,.api-shell-header,.api-shell-sidebar),body.admin-basic.horizon :is(.main-header,.main-sidebar,.admin-topbar,.admin-sidebar){display:none!important}

/* ===== Exact Horizon typography/header rhythm ===== */
.horizon :is(.page-header,.dashboard-header,.admin-header,.admin-page-heading,.flex-between){display:flex!important;align-items:center!important;justify-content:space-between!important;gap:16px!important;margin:0 0 24px!important;padding:0!important;background:transparent!important;border:0!important;box-shadow:none!important}
.horizon :is(.page-title,.dashboard-title,.admin-title,.admin-page-heading h1){margin:0!important;font-size:20px!important;line-height:24px!important;font-weight:650!important;letter-spacing:-.6px!important}
.horizon :is(.page-subtitle,.dashboard-subtitle,.admin-subtitle){margin:2px 0 0!important;font-size:13px!important;line-height:20px!important;color:var(--hz-muted)!important}
.horizon :is(.breadcrumb-glass,.breadcrumb,.breadcrumb-modern){display:flex!important;align-items:center!important;gap:5px!important;list-style:none!important;margin:4px 0 0!important;padding:0!important;background:transparent!important;border:0!important;font-size:12px!important;color:var(--hz-muted)!important}.horizon :is(.breadcrumb-glass,.breadcrumb,.breadcrumb-modern) a{color:var(--hz-muted)!important;text-decoration:none!important}

/* ===== Horizon card/table language ===== */
.horizon :is(.card,.glass-card,.admin-card,.admin-basic-card,.data-card,.stat-card,.admin-kpi-card,.admin-health-card,.captcha-card,.content-card,.api-card,.setting-section){border:1px solid var(--hz-border)!important;border-radius:8px!important;background:var(--hz-surface)!important;box-shadow:0 1px 3px var(--hz-shadow),0 1px 2px -1px var(--hz-shadow)!important;color:var(--hz-text)!important;transform:none!important}
.horizon :is(.card,.glass-card,.admin-card,.admin-basic-card,.data-card,.stat-card,.admin-kpi-card,.admin-health-card,.captcha-card,.content-card,.api-card,.setting-section):hover{transform:none!important}
.horizon :is(.card-header,.card-footer,.admin-card__header,.data-card__header){background:transparent!important;border-color:var(--hz-border)!important;color:var(--hz-text)!important}
.horizon .table-responsive{border-radius:8px!important;overflow:auto!important}.horizon table:not(.ui-datepicker-calendar){width:100%;border-collapse:collapse!important;color:var(--hz-text)!important;background:transparent!important}.horizon table:not(.ui-datepicker-calendar) th{height:40px!important;padding:0 8px!important;color:var(--hz-faint)!important;background:transparent!important;border:0!important;box-shadow:inset 0 -1px var(--hz-border)!important;font-size:12px!important;font-weight:550!important}.horizon table:not(.ui-datepicker-calendar) td{min-height:48px!important;padding:10px 8px!important;border:0!important;box-shadow:inset 0 -1px var(--hz-card)!important;background:transparent!important;color:var(--hz-text)!important;vertical-align:middle!important}.horizon table:not(.ui-datepicker-calendar) tbody tr:hover td{background:var(--hz-card)!important}

/* ===== Universal forms: exact settings/form component dimensions ===== */
.horizon :is(.form-group,.profile-form-field-v3,.tcb-field){margin-bottom:18px!important}
.horizon :is(label,.form-label,.form-group>label,.profile-form-field-v3>label,.tcb-field>label){display:block!important;margin:0 0 8px!important;color:var(--hz-text)!important;font-size:12px!important;line-height:16px!important;font-weight:550!important;text-transform:none!important;letter-spacing:0!important}
.horizon :is(input:not([type=checkbox]):not([type=radio]):not([type=color]),textarea,select,.form-control,.form-select,.custom-select,.choices__inner,.select2-selection){min-height:32px!important;height:auto!important;padding:5px 11px!important;border:1px solid #d2d5dc!important;border-radius:8px!important;background:var(--hz-surface)!important;color:var(--hz-text)!important;box-shadow:0 1px 2px var(--hz-shadow)!important;font:inherit!important;font-size:13px!important;line-height:20px!important}
.horizon[data-theme=dark] :is(input:not([type=checkbox]):not([type=radio]):not([type=color]),textarea,select,.form-control,.form-select,.custom-select,.choices__inner,.select2-selection){border-color:var(--hz-border)!important}
.horizon textarea,.horizon textarea.form-control{min-height:72px!important;resize:vertical}.horizon :is(input,textarea)::placeholder{color:var(--hz-faint)!important;opacity:1!important}
.horizon :is(input:not([type=checkbox]):not([type=radio]),textarea,select,.form-control,.form-select,.custom-select):focus{border-color:var(--hz-primary)!important;outline:0!important;box-shadow:0 0 0 2px rgba(var(--hz-primary-rgb),.13)!important}
.horizon input[type=checkbox],.horizon input[type=radio]{width:16px!important;height:16px!important;accent-color:var(--hz-primary)!important}.horizon .form-check{display:flex!important;align-items:flex-start!important;gap:9px!important;margin:16px 0!important;padding:0!important}.horizon .form-check-label{margin:0!important;color:var(--hz-muted)!important;font-size:12px!important;line-height:18px!important;font-weight:450!important}
.horizon .input-group{display:flex!important;align-items:stretch!important;flex-wrap:nowrap!important}.horizon .input-group>.form-control{border-radius:8px!important}.horizon .input-group>.input-icon,.horizon .auth-input-icon{position:static!important;transform:none!important;width:34px!important;min-width:34px!important;display:grid!important;place-items:center!important;border:1px solid var(--hz-border)!important;border-right:0!important;border-radius:8px 0 0 8px!important;background:var(--hz-card)!important;color:var(--hz-muted)!important}.horizon .input-group>.input-icon+.form-control{border-radius:0 8px 8px 0!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){min-height:32px!important;height:32px!important;padding:5px 11px!important;border-radius:8px!important;box-shadow:0 1px 2px var(--hz-shadow)!important;font:inherit!important;font-size:13px!important;font-weight:550!important;line-height:20px!important;text-transform:none!important;letter-spacing:0!important;transform:none!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:8px!important}.horizon :is(.btn-secondary,.btn-light,.btn-outline-secondary,.btn-outline-primary){background:var(--hz-surface)!important;color:var(--hz-text)!important;border:1px solid var(--hz-border)!important}.horizon :is(.btn-secondary,.btn-light,.btn-outline-secondary,.btn-outline-primary):hover{background:var(--hz-bg)!important;color:var(--hz-text)!important}
.horizon .invalid-feedback{font-size:11px!important;color:var(--hz-danger)!important}.horizon .valid-feedback{font-size:11px!important;color:var(--hz-success)!important}

/* ===== Compact bank / wallet connection forms ===== */
.horizon .hz-connect-page,.horizon section.dashboard-container:has(.hz-connect-form){max-width:896px!important;margin:0 auto!important;padding:0 40px!important}
.horizon .hz-connect-form{padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;overflow:visible!important}
.horizon .hz-connect-form>.hz-connect-head,.horizon .hz-connect-form>.flex-between{align-items:flex-start!important;margin:0 0 28px!important}
.horizon .hz-connect-form .bank-login-brand{display:flex!important;align-items:center!important;gap:14px!important;margin:0 0 8px!important;padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important}
.horizon .hz-connect-form .bank-login-brand-logo{width:46px!important;height:46px!important;max-width:46px!important;max-height:46px!important;object-fit:contain!important;padding:7px!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}
.horizon .hz-connect-form .bank-login-brand h2{margin:0!important;font-size:14px!important;line-height:20px!important;font-weight:650!important}.horizon .hz-connect-form .bank-login-brand p{margin:1px 0 0!important;color:var(--hz-muted)!important;font-size:12px!important;line-height:17px!important}
.horizon .hz-connect-form .page-title{font-size:20px!important;line-height:24px!important;margin:0!important}.horizon .hz-connect-form .breadcrumb-glass{margin-top:5px!important}
.horizon .hz-connect-form>.form-group,.horizon .hz-connect-form>.form-check,.horizon .hz-connect-form>input[type=hidden]~.form-group{max-width:560px!important}.horizon .hz-connect-form .form-control{width:100%!important}
.horizon .hz-connect-form .form-group:has(>button){display:flex!important;justify-content:flex-end!important;padding-top:8px!important;margin-top:26px!important;border-top:1px solid var(--hz-border)!important;max-width:560px!important}.horizon .hz-connect-form .form-group>button{width:auto!important;min-width:110px!important}
.horizon .hz-connect-form .note-card,.horizon .hz-connect-form [style*="rgba(var(--ui-accent-rgb)"]{max-width:560px!important;margin:0 0 22px!important;padding:12px!important;border:1px solid var(--hz-border)!important;border-radius:8px!important;background:var(--hz-card)!important;color:var(--hz-muted)!important;box-shadow:none!important}
.horizon .hz-connect-form :is(.otp-field,.d-none){transition:none!important}

/* Other wallet-specific panels use the same compact settings vocabulary. */
.horizon .tcb-page{max-width:896px!important;margin:0 auto!important;padding:0 40px!important}.horizon .tcb-panel{padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important}.horizon .tcb-hero{padding:0 0 24px!important;border:0!important;border-bottom:1px solid var(--hz-border)!important;border-radius:0!important;background:transparent!important}.horizon .tcb-body{padding:24px 0 0!important;border:0!important;border-radius:0!important;background:transparent!important}.horizon .tcb-grid{max-width:560px!important}.horizon .tcb-logo{width:46px!important;height:46px!important;flex-basis:46px!important;border:1px solid var(--hz-border)!important;border-radius:8px!important;box-shadow:none!important}.horizon .tcb-title{font-size:20px!important;line-height:24px!important}.horizon .tcb-subtitle{font-size:12px!important;color:var(--hz-muted)!important}

/* ===== Bank/wallet list cards and admin logo bug ===== */
.horizon .bank-card-glass{flex:1 1 150px!important;max-width:190px!important;min-height:112px!important;padding:12px!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 .bank-card-glass::before,.horizon .bank-card-glass::after{display:none!important}.horizon .bank-card-glass .bank-icon{width:44px!important;height:44px!important;margin:0 auto 7px!important;padding:6px!important;border:1px solid var(--hz-border)!important;border-radius:8px!important;background:var(--hz-card)!important;display:grid!important;place-items:center!important}.horizon .bank-card-glass .bank-icon img{width:100%!important;height:100%!important;max-width:100%!important;max-height:100%!important;object-fit:contain!important}.horizon .bank-card-glass .bank-name{font-size:12px!important;font-weight:650!important}.horizon .bank-card-glass .bank-count{font-size:11px!important;color:var(--hz-muted)!important}
.horizon .admin-bank-grid{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(138px,1fr))!important;gap:8px!important}.horizon .admin-bank-item{min-height:64px!important;padding:9px 10px!important;display:grid!important;grid-template-columns:34px 1fr auto!important;align-items:center!important;gap:9px!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}.horizon .admin-bank-item__logo{width:34px!important;height:34px!important;display:grid!important;place-items:center!important;border-radius:6px!important;background:var(--hz-card)!important;overflow:hidden!important}.horizon .admin-bank-item__logo img{display:block!important;width:26px!important;height:26px!important;max-width:26px!important;max-height:26px!important;object-fit:contain!important}.horizon .admin-bank-item__name{font-size:11px!important;color:var(--hz-muted)!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}.horizon .admin-bank-item strong{font-size:13px!important;font-weight:650!important}

/* ===== Admin dashboard follows source metric/card layout ===== */
.horizon .admin-overview__header{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:16px!important;margin-bottom:24px!important}.horizon .admin-overview__header h1{margin:0!important;font-size:20px!important;line-height:24px!important;letter-spacing:-.6px!important}.horizon .admin-overview__header p{margin:2px 0 0!important;color:var(--hz-muted)!important}.horizon .admin-overview__actions{display:flex!important;gap:12px!important}
.horizon .admin-kpi-grid{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:24px!important;margin-bottom:24px!important}.horizon .admin-kpi-card{padding:4px!important;border:0!important;border-radius:12px!important;background:var(--hz-card)!important;box-shadow:none!important;display:flex!important;gap:3px!important;min-height:130px!important;position:relative!important}.horizon .admin-kpi-card>div{width:100%!important;padding:16px!important;border:1px solid var(--hz-border)!important;border-radius:8px!important;background:var(--hz-surface)!important;box-shadow:0 1px 3px var(--hz-shadow)!important}.horizon .admin-kpi-card__icon{position:absolute!important;top:12px!important;left:14px!important;width:18px!important;height:18px!important;color:var(--hz-muted)!important;background:transparent!important}.horizon .admin-kpi-card>div>span{display:block!important;margin-left:24px!important;font-size:13px!important;font-weight:550!important}.horizon .admin-kpi-card strong{display:block!important;margin-top:18px!important;font-size:24px!important;line-height:32px!important;font-weight:650!important}.horizon .admin-kpi-card small{display:block!important;margin-top:4px!important;font-size:11px!important;color:var(--hz-muted)!important}
.horizon :is(.admin-panel,.admin-health-card){border:1px solid var(--hz-border)!important;border-radius:8px!important;background:var(--hz-surface)!important;box-shadow:0 1px 3px var(--hz-shadow)!important}.horizon .admin-panel{padding:16px!important}.horizon .admin-panel>header{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:12px!important;margin:0 0 16px!important}.horizon .admin-panel h2{margin:0!important;font-size:13px!important;line-height:20px!important;font-weight:550!important}.horizon .admin-panel__kicker{display:none!important}.horizon .admin-panel__badge{padding:2px 6px!important;border:1px solid var(--hz-border)!important;border-radius:5px!important;background:var(--hz-card)!important;font-size:11px!important}

/* ===== Horizon-auth: new auth system built from exact Horizon field/buttons ===== */
body.auth-page.horizon{min-height:100vh!important;margin:0!important;padding:8px!important;display:grid!important;place-items:center!important;background:var(--hz-bg)!important;color:var(--hz-text)!important;font-family:var(--hz-font)!important}
.hz-auth-shell{width:min(100%,980px);min-height:min(680px,calc(100vh - 16px));display:grid;grid-template-columns:minmax(0,1fr) 420px;border:1px solid var(--hz-border);border-radius:8px;background:var(--hz-surface);box-shadow:0 1px 2px var(--hz-shadow);overflow:hidden}
.hz-auth-aside{position:relative;padding:40px;display:flex;flex-direction:column;justify-content:space-between;background:var(--hz-bg);border-right:1px solid var(--hz-border);overflow:hidden}.hz-auth-aside::after{content:"";position:absolute;right:-80px;bottom:-80px;width:260px;height:260px;border:48px solid var(--hz-card);border-radius:52px;transform:rotate(18deg);opacity:.9;pointer-events:none}.hz-auth-brand{position:relative;z-index:1;display:flex;align-items:center;gap:10px;text-decoration:none!important;color:var(--hz-text)!important}.hz-auth-brand img{width:32px!important;height:32px!important;max-width:32px!important;max-height:32px!important;object-fit:contain;border-radius:6px}.hz-auth-brand strong{font-size:16px;font-weight:700}.hz-auth-copy{position:relative;z-index:1;max-width:440px}.hz-auth-copy .hz-auth-eyebrow{display:inline-flex;align-items:center;gap:6px;padding:3px 7px;border:1px solid var(--hz-border);border-radius:5px;background:var(--hz-card);color:var(--hz-muted);font-size:11px;font-weight:550}.hz-auth-copy h1{margin:16px 0 8px!important;font-size:34px!important;line-height:40px!important;letter-spacing:-1.3px!important}.hz-auth-copy p{max-width:420px;margin:0!important;color:var(--hz-muted)!important;font-size:13px!important;line-height:21px!important}.hz-auth-points{position:relative;z-index:1;display:flex;gap:16px;flex-wrap:wrap;color:var(--hz-muted);font-size:11px}.hz-auth-points span{display:flex;align-items:center;gap:6px}.hz-auth-points i{color:var(--hz-success)}
.hz-auth-main{padding:34px 38px;display:flex;flex-direction:column;justify-content:center;min-width:0}.hz-auth-top{position:absolute;top:26px;right:28px}.hz-auth-main-inner{width:100%;max-width:344px;margin:0 auto}.hz-auth-title{margin:0!important;font-size:20px!important;line-height:24px!important;letter-spacing:-.6px!important}.hz-auth-subtitle{margin:4px 0 26px!important;color:var(--hz-muted)!important;font-size:12px!important}.hz-auth-form{display:flex;flex-direction:column;gap:18px}.hz-auth-field{display:flex;flex-direction:column;gap:8px}.hz-auth-field>label{margin:0!important;font-size:12px!important;line-height:16px!important;font-weight:550!important}.hz-auth-control{position:relative}.hz-auth-control>i{position:absolute;left:10px;top:50%;transform:translateY(-50%);z-index:1;color:var(--hz-muted);font-size:14px}.hz-auth-control>input{width:100%!important;min-height:32px!important;padding-left:34px!important}.hz-auth-control.has-action>input{padding-right:36px!important}.hz-auth-control>.hz-auth-control-action{position:absolute;right:2px;top:2px;width:28px;height:28px;display:grid;place-items:center;border:0;border-radius:6px;background:transparent;color:var(--hz-muted)}.hz-auth-control>.hz-auth-control-action:hover{background:var(--hz-card)}
.hz-auth-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.hz-auth-check{display:flex!important;align-items:center!important;gap:8px!important;margin:0!important}.hz-auth-check label{margin:0!important;color:var(--hz-muted)!important;font-size:12px!important;font-weight:450!important}.hz-auth-link{color:var(--hz-primary)!important;text-decoration:none!important;font-size:12px!important;font-weight:550!important}.hz-auth-submit{width:100%;height:32px!important;margin-top:2px!important}.hz-auth-divider{display:flex;align-items:center;gap:10px;margin:3px 0;color:var(--hz-muted);font-size:11px}.hz-auth-divider::before,.hz-auth-divider::after{content:"";height:1px;flex:1;background:var(--hz-border)}.hz-auth-social{width:100%;height:32px;display:flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--hz-border);border-radius:8px;background:var(--hz-surface);box-shadow:0 1px 2px var(--hz-shadow);color:var(--hz-text)!important;text-decoration:none!important;font-weight:550}.hz-auth-social:hover{background:var(--hz-bg)!important;color:var(--hz-text)!important}.hz-auth-footer{margin:4px 0 0!important;text-align:center;color:var(--hz-muted)!important;font-size:12px!important}.hz-auth-message{display:none;margin-bottom:18px;padding:8px 10px;border:1px solid var(--hz-border);border-radius:8px;background:var(--hz-card);font-size:12px}.hz-auth-message.show{display:block}.hz-auth-message.success{color:#008f62;background:#c4e8d1;border-color:#a8d5bb}.hz-auth-message.error{color:#ce2c31;background:#ffcdce;border-color:#f3b3b6}.hz-auth-message.info{color:var(--hz-text)}
.auth-theme-switcher{position:fixed!important;top:16px!important;right:16px!important;z-index:30!important;display:flex!important;gap:4px!important;padding:4px!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}.auth-theme-switcher button{width:28px!important;height:28px!important;display:grid!important;place-items:center!important;border:0!important;border-radius:6px!important;background:transparent!important;color:var(--hz-muted)!important}.auth-theme-switcher button:hover,.auth-theme-switcher button.is-active{background:var(--hz-card)!important;color:var(--hz-primary)!important}
.hz-auth-loader{position:fixed;inset:0;z-index:9999;display:none;place-items:center;background:#0005;backdrop-filter:blur(3px)}.hz-auth-loader.show{display:grid}.hz-auth-spinner{width:32px;height:32px;border:3px solid #fff5;border-top-color:#fff;border-radius:50%;animation:hzspin .7s linear infinite}@keyframes hzspin{to{transform:rotate(360deg)}}
.hz-auth-terms{padding:10px 12px;border:1px solid var(--hz-border);border-radius:8px;background:var(--hz-card);color:var(--hz-muted);font-size:11px;line-height:17px}.hz-auth-terms b{color:var(--hz-text)}

/* ===== Footer / misc ===== */
.hz-site-footer{max-width:1280px;margin:0 auto;padding:0 40px 24px;color:var(--hz-muted);font-size:11px}.hz-site-footer__row{min-height:48px;display:flex;align-items:center;gap:16px;border-top:1px solid var(--hz-border);padding-top:16px}.hz-site-footer__brand{display:flex;align-items:center;gap:8px;margin-right:auto}.hz-site-footer__brand img{width:22px!important;height:22px!important;object-fit:contain;border-radius:4px}.hz-site-footer__links{display:flex;align-items:center;gap:14px}.hz-site-footer a{text-decoration:none;color:var(--hz-muted)}.hz-site-footer a:hover{color:var(--hz-text)}
.horizon .loader-wrapper{background:#0005!important;backdrop-filter:blur(3px)!important}.horizon .site-loader,.horizon .spinner{border-color:#ffffff50!important;border-top-color:#fff!important}

@media (min-width:1024px){.hz-app-content{padding:32px 40px 40px;min-height:calc(100vh - 16px)}}
@media (max-width:1023px){.horizon.api-sidebar-open .hz-backdrop-site,.horizon.admin-sidebar-open .hz-backdrop-site{display:block}.horizon.api-sidebar-open .hz-sidebar,.horizon.admin-sidebar-open .hz-sidebar{transform:translateX(0)}.hz-app-content{padding:20px 20px 28px}.horizon .hz-connect-page,.horizon section.dashboard-container:has(.hz-connect-form),.horizon .tcb-page{padding:0!important}.hz-auth-shell{grid-template-columns:1fr;max-width:460px;min-height:0}.hz-auth-aside{display:none}.hz-auth-main{padding:38px 34px;min-height:540px}.hz-auth-top{position:static;margin-bottom:24px}}
@media (max-width:767px){.hz-app-content{padding:16px 14px 24px}.horizon :is(.page-header,.dashboard-header,.admin-header,.admin-page-heading,.flex-between){align-items:flex-start!important;flex-direction:column!important}.horizon .admin-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px!important}.hz-site-footer{padding:0 14px 20px}.hz-site-footer__row{align-items:flex-start;flex-direction:column}.hz-site-footer__links{flex-wrap:wrap}.hz-auth-main{padding:30px 24px;min-height:520px}.horizon .hz-connect-form>.form-group,.horizon .hz-connect-form>.form-check{max-width:none!important}}
@media (max-width:479px){.hz-app-content{padding:14px 10px 22px}.horizon .admin-kpi-grid{grid-template-columns:1fr!important}.hz-auth-main{padding:26px 18px}.auth-theme-switcher{top:10px!important;right:10px!important}}
.hz-auth-dialog{width:min(560px,calc(100% - 32px));max-height:min(76vh,680px);padding:0;border:1px solid var(--hz-border);border-radius:12px;background:var(--hz-surface);color:var(--hz-text);box-shadow:0 16px 60px #0005}.hz-auth-dialog::backdrop{background:#0006;backdrop-filter:blur(3px)}.hz-auth-dialog-head{height:52px;display:flex;align-items:center;gap:12px;padding:0 16px;border-bottom:1px solid var(--hz-border)}.hz-auth-dialog-head h2{margin:0!important;font-size:14px!important;line-height:20px!important}.hz-auth-dialog-head button{margin-left:auto;width:32px;height:32px;border:0;border-radius:8px;background:transparent;color:var(--hz-muted)}.hz-auth-dialog-head button:hover{background:var(--hz-card)}.hz-auth-dialog-body{padding:18px;overflow:auto;font-size:12px;line-height:20px}.hz-auth-dialog-body h3{margin:16px 0 4px!important;font-size:13px!important}.hz-auth-dialog-body h3:first-child{margin-top:0!important}.hz-auth-dialog-body p{margin:0 0 10px!important;color:var(--hz-muted)!important}
/* Compact transfer forms follow the same Horizon settings proportions. */
.horizon .hz-transfer-page{max-width:1120px!important;margin:0 auto!important;padding:0!important}.horizon .hz-transfer-page>.dash-content{padding:0!important}.horizon .hz-transfer-page .row.g-3{gap:16px!important}.horizon .hz-transfer-page .hz-transfer-form-card{max-width:560px!important;margin:0!important}.horizon .hz-transfer-page .hz-transfer-form-card .card-header{min-height:40px!important;padding:8px 12px!important;border-bottom:1px solid var(--hz-border)!important}.horizon .hz-transfer-page .hz-transfer-form-card .card-title{margin:0!important;display:flex!important;align-items:center!important;gap:8px!important;font-size:13px!important;line-height:20px!important;font-weight:550!important}.horizon .hz-transfer-page .hz-transfer-form-card .card-title img{width:22px!important;height:22px!important;max-width:22px!important;max-height:22px!important;object-fit:contain!important}.horizon .hz-transfer-page .hz-transfer-form-card .card-body{padding:16px!important}.horizon .hz-transfer-page .hz-transfer-form-card .form-group{margin-bottom:16px!important}.horizon .hz-transfer-page .hz-transfer-form-card .text-center{text-align:right!important;padding-top:8px!important;border-top:1px solid var(--hz-border)!important}.horizon .hz-transfer-page .hz-transfer-form-card .text-center .btn{width:auto!important;min-width:110px!important}.horizon .hz-transfer-page .col-md-6>.card:not(.hz-transfer-form-card){height:100%!important}.horizon .hz-transfer-page .col-md-6>.card:not(.hz-transfer-form-card) .card-body{padding:16px!important}.horizon .hz-transfer-page .col-md-6>.card:not(.hz-transfer-form-card) h5{margin:0 0 8px!important;font-size:13px!important}.horizon .hz-transfer-page .col-md-6>.card:not(.hz-transfer-form-card) :is(ul,ol,p){font-size:12px!important;line-height:19px!important;color:var(--hz-muted)!important}

/* ===== Horizon-owned modal layer: no visual dependency on Bootstrap/AdminLTE ===== */
body.horizon .modal{position:fixed!important;inset:0!important;z-index:1050!important;display:none!important;overflow:auto!important;padding:24px!important;background:rgba(0,0,0,.42)!important}
body.horizon .modal.show{display:flex!important;align-items:center!important;justify-content:center!important}
body.horizon .modal-dialog{width:min(760px,100%)!important;max-width:760px!important;margin:auto!important;transform:none!important;pointer-events:auto!important}
body.horizon .modal-dialog.modal-xl{width:min(980px,100%)!important;max-width:980px!important}
body.horizon .modal-content{overflow:hidden!important;border:1px solid var(--hz-border)!important;border-radius:8px!important;background:var(--hz-surface)!important;color:var(--hz-text)!important;box-shadow:0 16px 50px #0004!important}
body.horizon .modal-header{min-height:48px!important;display:flex!important;align-items:center!important;padding:10px 14px!important;border:0!important;border-bottom:1px solid var(--hz-border)!important;background:var(--hz-surface)!important}
body.horizon .modal-title{margin:0!important;font-size:14px!important;line-height:20px!important;font-weight:650!important}
body.horizon .modal-header .close{margin-left:auto!important;width:28px!important;height:28px!important;padding:0!important;display:grid!important;place-items:center!important;border:0!important;border-radius:6px!important;background:transparent!important;color:var(--hz-muted)!important;font-size:18px!important;opacity:1!important}
body.horizon .modal-header .close:hover{background:var(--hz-card)!important;color:var(--hz-text)!important}
body.horizon .modal-body{padding:14px!important;background:var(--hz-surface)!important;color:var(--hz-text)!important}
body.horizon .modal-footer{padding:10px 14px!important;border:0!important;border-top:1px solid var(--hz-border)!important;background:var(--hz-surface)!important}
body.horizon.modal-open{overflow:hidden!important}

/* ===== Compact connection pages following Horizon Settings proportions ===== */
@media (min-width:768px){
  .horizon .hz-connect-page>.row{display:grid!important;grid-template-columns:minmax(0,560px) minmax(220px,280px)!important;align-items:start!important;gap:24px!important;margin:0!important}
  .horizon .hz-connect-page>.row>[class*=col-]{width:auto!important;max-width:none!important;flex:none!important;padding:0!important}
}
.horizon .hz-connect-page>.row>.col-md-6:last-child>.glass-card{padding:14px!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}
.horizon .hz-connect-page>.row>.col-md-6:last-child>.glass-card h5{margin:0 0 10px!important;color:var(--hz-text)!important;font-size:13px!important;line-height:20px!important;font-weight:650!important}
.horizon .hz-connect-page>.row>.col-md-6:last-child>.glass-card :is(p,li,.note-card){font-size:12px!important;line-height:18px!important;color:var(--hz-muted)!important}
.horizon .hz-connect-page>.row>.col-md-6:last-child>.glass-card :is(ul,ol){margin:0!important;padding-left:18px!important}.horizon .hz-connect-page>.row>.col-md-6:last-child>.glass-card li+li{margin-top:8px!important}
.horizon .hz-connect-page .form-control{transition:border-color .12s ease,box-shadow .12s ease,background-color .12s ease!important}

/* Horizon dark/light contrast is authoritative everywhere. */
body.horizon[data-theme=dark] :is(.form-control,.form-select,input:not([type=checkbox]):not([type=radio]):not([type=color]),textarea,select){background:#202124!important;color:#eeeef0!important;border-color:#ffffff20!important}
body.horizon[data-theme=dark] :is(input,textarea)::placeholder{color:#85858f!important;opacity:1!important}
body.horizon[data-theme=dark] :is(label,.form-label,.form-check-label,th,td,.card-title,.modal-title){color:#eeeef0!important}
body.horizon[data-theme=light] :is(.form-control,.form-select,input:not([type=checkbox]):not([type=radio]):not([type=color]),textarea,select){background:#fff!important;color:oklch(0.2413 0.0099 277.7)!important;border-color:#d2d5dc!important}
body.horizon[data-theme=light] :is(input,textarea)::placeholder{color:oklch(0.1149 0.0528 264.9 / .495)!important;opacity:1!important}

/* Bank/wallet logos are always thumbnail-sized in every Horizon surface. */
.horizon :is(.bank-login-brand-logo,.admin-bank-item__logo img,.bank-card-logo,.bank-logo,.wallet-logo){object-fit:contain!important}
.horizon .admin-bank-item__logo{width:32px!important;height:32px!important;min-width:32px!important;display:grid!important;place-items:center!important;padding:4px!important;border:1px solid var(--hz-border)!important;border-radius:6px!important;background:var(--hz-surface)!important;overflow:hidden!important}
.horizon .admin-bank-item__logo img{width:24px!important;height:24px!important;max-width:24px!important;max-height:24px!important}

/* ========================================================================== */
/* Horizon V3 fidelity pass — source: user-supplied Horizon BuilderKit clone. */
/* Uses the clone's 32px controls, 8px radius, 12/13px typography and cards.  */
/* ========================================================================== */
:root{--hz-auth-max:448px}
.horizon{font-family:var(--font-inter),Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important}
.horizon :is(.btn,.form-control,.form-select,input,select,textarea,button){font-family:inherit}

/* Exact source primitive proportions. */
.horizon :is(.form-control,.form-select,input:not([type=checkbox]):not([type=radio]):not([type=color]),select,textarea){
  width:100%!important;min-height:32px!important;padding:5px 11px!important;border:1px solid #d2d5dc!important;border-radius:8px!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;font-weight:450!important;outline:0!important;transition:border-color .12s ease,box-shadow .12s ease,background-color .12s ease!important
}
.horizon textarea.form-control,.horizon textarea{min-height:72px!important;resize:vertical!important}
.horizon :is(.form-control,.form-select,input,select,textarea):focus{border-color:var(--hz-primary)!important;box-shadow:0 0 0 2px color-mix(in srgb,var(--hz-primary) 18%,transparent)!important}
.horizon :is(.form-label,.form-group>label,.tcb-field>label,.hz-field>span){display:block!important;margin:0 0 8px!important;color:var(--hz-text)!important;font-size:12px!important;line-height:16px!important;font-weight:550!important}
.horizon .form-group{margin:0 0 16px!important}
.horizon :is(.btn,.tcb-btn){min-height:32px!important;padding:5px 11px!important;border-radius:8px!important;font-size:12px!important;line-height:20px!important;font-weight:550!important;box-shadow:0 1px 2px var(--hz-shadow)!important}
.horizon :is(.btn-primary,.tcb-btn-primary){border:1px solid color-mix(in srgb,var(--hz-primary) 78%,#000 22%)!important;background:var(--hz-primary)!important;color:#fff!important}
.horizon :is(.btn-light,.btn-secondary,.btn-outline-primary,.tcb-btn:not(.tcb-btn-primary)){border:1px solid var(--hz-border)!important;background:var(--hz-surface)!important;color:var(--hz-text)!important}
.horizon :is(.btn-light,.btn-secondary,.btn-outline-primary,.tcb-btn:not(.tcb-btn-primary)):hover{background:var(--hz-bg)!important}

/* Compact bank/e-wallet connection forms: settings page geometry from clone. */
.horizon .hz-connect-page{max-width:1060px!important;margin:0 auto!important;padding:0!important}
.horizon .hz-connect-page>.row{margin:0!important}
.horizon .hz-connect-form{max-width:620px!important;margin:0!important;padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important}
.horizon .hz-connect-form :is(.flex-between,.hz-connect-head){margin:0 0 22px!important;padding:0 0 18px!important;border-bottom:1px solid var(--hz-border)!important}
.horizon .hz-connect-form .bank-login-brand{gap:12px!important;margin:0 0 12px!important}
.horizon .hz-connect-form .bank-login-brand-logo{width:40px!important;height:40px!important;max-width:40px!important;max-height:40px!important;padding:6px!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}
.horizon .hz-connect-form .bank-login-brand h2{font-size:13px!important;line-height:20px!important;font-weight:650!important}
.horizon .hz-connect-form .bank-login-brand p{font-size:12px!important;line-height:18px!important;color:var(--hz-muted)!important}
.horizon .hz-connect-form .page-title{font-size:20px!important;line-height:24px!important;letter-spacing:-.6px!important;font-weight:650!important}
.horizon .hz-connect-form .breadcrumb-glass{font-size:12px!important;line-height:18px!important}
.horizon .hz-connect-form>.form-group,.horizon .hz-connect-form>.form-check,.horizon .hz-connect-form>form,.horizon .hz-connect-form .hz-form-body{max-width:520px!important}
.horizon .hz-connect-form .form-group:has(>button){max-width:520px!important;margin-top:22px!important;padding-top:14px!important;border-top:1px solid var(--hz-border)!important}
.horizon .hz-connect-form .form-group>button{min-width:96px!important;width:auto!important}
.horizon .hz-connect-form :is(.note-card,.alert,[style*="rgba(var(--ui-accent-rgb)"]){max-width:520px!important;padding:10px 12px!important;border:1px solid var(--hz-border)!important;border-radius:8px!important;background:var(--hz-card)!important;box-shadow:none!important;font-size:12px!important;line-height:18px!important;color:var(--hz-muted)!important}

/* Secondary help cards are intentionally narrow like Horizon settings descriptions. */
@media (min-width:768px){
  .horizon .hz-connect-page>.row{display:grid!important;grid-template-columns:minmax(0,620px) minmax(220px,300px)!important;gap:32px!important;align-items:start!important}
  .horizon .hz-connect-page>.row>[class*=col-]{width:auto!important;max-width:none!important;flex:none!important;padding:0!important}
}
.horizon .hz-connect-page>.row>.col-md-6:last-child>.glass-card,
.horizon .hz-connect-page>.row>.col-lg-6:last-child>.glass-card{
  margin:0!important;padding:14px!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
}

/* Techcombank uses the same source primitives instead of its legacy standalone skin. */
.horizon .tcb-page{max-width:1060px!important;margin:0 auto!important;padding:0!important}
.horizon .tcb-panel{max-width:620px!important;margin:0!important;padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important}
.horizon .tcb-hero{display:flex!important;align-items:center!important;gap:12px!important;padding:0 0 18px!important;margin-bottom:18px!important;border:0!important;border-bottom:1px solid var(--hz-border)!important;background:transparent!important}
.horizon .tcb-logo{width:40px!important;height:40px!important;min-width:40px!important;max-width:40px!important;max-height:40px!important;padding:6px!important;object-fit:contain!important;border:1px solid var(--hz-border)!important;border-radius:8px!important;background:var(--hz-surface)!important}
.horizon .tcb-title{margin:0!important;font-size:20px!important;line-height:24px!important;letter-spacing:-.6px!important;font-weight:650!important}.horizon .tcb-subtitle{margin:2px 0 0!important;font-size:12px!important;line-height:18px!important;color:var(--hz-muted)!important}
.horizon .tcb-body{padding:0!important}.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:12px!important;line-height:18px!important}
.horizon .tcb-grid{display:block!important;max-width:520px!important}.horizon .tcb-field{margin:0 0 16px!important}.horizon .tcb-stat{margin-top:20px!important;padding:12px!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;color:var(--hz-muted)!important;font-size:12px!important;line-height:18px!important}.horizon .tcb-stat strong{color:var(--hz-text)!important}

/* AUTH rebuilt from exact Horizon settings/card/input/button primitives. */
body.auth-page.horizon{min-height:100vh!important;margin:0!important;padding:16px!important;display:grid!important;place-items:center!important;background:var(--hz-bg)!important;color:var(--hz-text)!important}
.hz-auth-shell{width:min(100%,1040px)!important;min-height:620px!important;display:grid!important;grid-template-columns:minmax(0,1fr) var(--hz-auth-max)!important;border:0!important;border-radius:12px!important;background:var(--hz-card)!important;box-shadow:none!important;gap:4px!important;overflow:hidden!important}
.hz-auth-aside{padding:28px!important;border:0!important;border-radius:10px 0 0 10px!important;background:var(--hz-card)!important;justify-content:space-between!important}
.hz-auth-aside::after{display:none!important}
.hz-auth-brand{height:40px!important;gap:10px!important}.hz-auth-brand img{width:28px!important;height:28px!important;max-width:28px!important;max-height:28px!important;border-radius:6px!important}.hz-auth-brand strong{font-size:14px!important;line-height:20px!important;font-weight:650!important}
.hz-auth-copy{max-width:470px!important}.hz-auth-copy .hz-auth-eyebrow{height:24px!important;padding:3px 7px!important;border-radius:5px!important;background:var(--hz-surface)!important;color:var(--hz-muted)!important;font-size:11px!important;line-height:16px!important;font-weight:550!important}
.hz-auth-copy h1{margin:14px 0 8px!important;max-width:460px!important;font-size:30px!important;line-height:36px!important;letter-spacing:-1px!important;font-weight:650!important}.hz-auth-copy p{max-width:450px!important;font-size:12px!important;line-height:20px!important}
.hz-auth-points{gap:8px!important}.hz-auth-points span{height:24px!important;padding:3px 7px!important;border:1px solid var(--hz-border)!important;border-radius:5px!important;background:var(--hz-surface)!important;font-size:11px!important;line-height:16px!important}
.hz-auth-main{padding:4px!important;background:var(--hz-card)!important}.hz-auth-main-inner{max-width:none!important;height:100%!important;margin:0!important;padding:48px 52px!important;display:flex!important;flex-direction:column!important;justify-content:center!important;border:1px solid var(--hz-border)!important;border-radius:8px!important;background:var(--hz-surface)!important;box-shadow:0 1px 3px var(--hz-shadow),0 1px 2px -1px var(--hz-shadow)!important}
.hz-auth-title{font-size:20px!important;line-height:24px!important;letter-spacing:-.6px!important;font-weight:650!important}.hz-auth-subtitle{margin:2px 0 24px!important;font-size:12px!important;line-height:20px!important;color:var(--hz-muted)!important}
.hz-auth-form{gap:16px!important}.hz-auth-field{gap:0!important}.hz-auth-field>label{margin:0 0 8px!important;font-size:12px!important;line-height:16px!important;font-weight:550!important}
.hz-auth-control>input{min-height:32px!important;padding:5px 36px 5px 34px!important}.hz-auth-control>i{left:11px!important;font-size:13px!important}.hz-auth-control>.hz-auth-control-action{right:2px!important;top:2px!important;width:28px!important;height:28px!important;border-radius:6px!important}
.hz-auth-row{min-height:24px!important}.hz-auth-check input{width:16px!important;height:16px!important;min-height:16px!important;padding:0!important;box-shadow:none!important;accent-color:var(--hz-primary)!important}.hz-auth-check label{font-size:12px!important;line-height:16px!important}.hz-auth-link{font-size:12px!important;line-height:16px!important}
.hz-auth-submit,.hz-auth-social{height:32px!important;min-height:32px!important;border-radius:8px!important;font-size:12px!important;line-height:20px!important;font-weight:550!important}.hz-auth-divider{margin:0!important;font-size:11px!important;line-height:16px!important}.hz-auth-footer{margin:0!important;font-size:12px!important;line-height:18px!important}
.hz-auth-message{margin:0 0 16px!important;padding:8px 10px!important;border-radius:8px!important;font-size:12px!important;line-height:18px!important}
.hz-auth-dialog{border-radius:8px!important}.hz-auth-dialog-head{height:48px!important}.hz-auth-dialog-body{padding:16px!important}
.auth-theme-switcher{top:16px!important;right:16px!important;border-radius:8px!important;box-shadow:0 1px 2px var(--hz-shadow)!important}

/* Ensure true contrast in both themes. */
body.horizon[data-theme=dark] :is(.hz-auth-main-inner,.hz-auth-points span,.hz-auth-copy .hz-auth-eyebrow,.tcb-stat){background:#202124!important;color:#eeeef0!important;border-color:#ffffff20!important}
body.horizon[data-theme=dark] :is(.hz-auth-title,.hz-auth-copy h1,.hz-auth-brand,.tcb-title,.bank-login-brand h2){color:#eeeef0!important}
body.horizon[data-theme=light] :is(.hz-auth-title,.hz-auth-copy h1,.hz-auth-brand,.tcb-title,.bank-login-brand h2){color:oklch(0.2413 0.0099 277.7)!important}

@media(max-width:1023px){
  .hz-auth-shell{max-width:448px!important;min-height:0!important;grid-template-columns:1fr!important}.hz-auth-aside{display:none!important}.hz-auth-main{padding:4px!important}.hz-auth-main-inner{padding:36px 34px!important;min-height:520px!important}
  .horizon .hz-connect-page,.horizon .tcb-page{padding:0!important}.horizon .hz-connect-form,.horizon .tcb-panel{max-width:none!important}
}
@media(max-width:575px){body.auth-page.horizon{padding:8px!important}.hz-auth-shell{border-radius:10px!important}.hz-auth-main-inner{padding:30px 22px!important;min-height:500px!important}.auth-theme-switcher{top:10px!important;right:10px!important}.horizon .hz-connect-form>.form-group,.horizon .hz-connect-form>.form-check,.horizon .hz-connect-form>form{max-width:none!important}}
/* Final shell integrity: sticky footer without overlaying page content. */
.horizon .hz-main{min-height:100vh}
.horizon .hz-panel{display:flex;flex-direction:column;min-height:calc(100vh - 16px)}
.horizon .hz-app-content{display:flex;flex:1 1 auto;flex-direction:column;width:100%}
.horizon .hz-site-footer{width:100%;margin-top:auto;flex:0 0 auto}
.horizon-landing .hz-landing-shell{display:flex;flex-direction:column}
.horizon-landing .hz-landing-shell>main{flex:1 0 auto}
.horizon-landing .hz-landing-footer{margin-top:auto;flex:0 0 auto}
@media(max-width:1023px){.horizon .hz-panel{min-height:100vh}.horizon .hz-main{min-height:100vh}}


/* ========================================================================== */
/* Horizon V4.1 — square app icons + tighter bank/wallet connection forms.     */
/* ========================================================================== */
.horizon .hz-connect-page{max-width:920px!important}
.horizon .hz-connect-form{max-width:540px!important}
.horizon .hz-connect-form :is(.flex-between,.hz-connect-head){margin:0 0 16px!important;padding:0 0 14px!important}
.horizon .hz-connect-form .bank-login-brand{display:flex!important;align-items:center!important;gap:10px!important;margin:0 0 9px!important;padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important}
.horizon .hz-connect-form .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;flex-basis: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 .hz-connect-form .bank-login-brand h2{font-size:13px!important;line-height:18px!important;font-weight:650!important}
.horizon .hz-connect-form .bank-login-brand p{margin-top:1px!important;font-size:11.5px!important;line-height:16px!important}
.horizon .hz-connect-form .bank-login-brand + .page-title{margin:2px 0 0!important;font-size:15px!important;line-height:20px!important;letter-spacing:-.25px!important;font-weight:650!important}
.horizon .hz-connect-form .breadcrumb-glass{margin-top:3px!important;font-size:11px!important;line-height:16px!important}
.horizon .hz-connect-form>.form-group,
.horizon .hz-connect-form>.form-check,
.horizon .hz-connect-form>form,
.horizon .hz-connect-form .hz-form-body{max-width:480px!important}
.horizon .hz-connect-form .form-group{margin-bottom:13px!important}
.horizon .hz-connect-form :is(.form-label,.form-group>label){margin-bottom:6px!important;font-size:11.5px!important;line-height:16px!important}
.horizon .hz-connect-form :is(.form-control,.form-select,input:not([type=checkbox]):not([type=radio]),select){min-height:32px!important;padding:5px 10px!important;font-size:12.5px!important}
.horizon .hz-connect-form textarea.form-control{min-height:66px!important}
.horizon .hz-connect-form .form-check{margin:2px 0 13px!important;padding-left:24px!important}
.horizon .hz-connect-form .form-check-label{font-size:11px!important;line-height:16px!important;color:var(--hz-muted)!important}
.horizon .hz-connect-form .form-check-input{width:14px!important;height:14px!important;margin-top:1px!important;margin-left:-24px!important}
.horizon .hz-connect-form .form-group:has(>button),
.horizon .hz-connect-form .btn-group{max-width:480px!important;margin-top:17px!important;padding-top:12px!important;border-top:1px solid var(--hz-border)!important;gap:8px!important}
.horizon .hz-connect-form .form-group>button,
.horizon .hz-connect-form .btn-group>.btn-gradient{min-width:88px!important;width:auto!important;height:32px!important;padding:5px 10px!important;font-size:11.5px!important}
.horizon .hz-connect-form :is(.note-card,.alert,[style*="rgba(var(--ui-accent-rgb)"]){max-width:480px!important;margin-bottom:14px!important;padding:9px 10px!important;font-size:11px!important;line-height:16px!important;border-radius:8px!important}
@media (min-width:768px){
  .horizon .hz-connect-page>.row{grid-template-columns:minmax(0,540px) minmax(200px,250px)!important;gap:24px!important}
}
.horizon .hz-connect-page>.row>.col-md-6:last-child>.glass-card,
.horizon .hz-connect-page>.row>.col-lg-6:last-child>.glass-card{padding:12px!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:12px!important;line-height:18px!important;margin-bottom:8px!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:11px!important;line-height:16px!important}

/* Techcombank follows the same compact dimensions. */
.horizon .tcb-page{max-width:920px!important}
.horizon .tcb-panel{max-width:540px!important}
.horizon .tcb-hero{gap:10px!important;padding-bottom:14px!important;margin-bottom:14px!important}
.horizon .tcb-title{font-size:16px!important;line-height:21px!important;letter-spacing:-.3px!important}.horizon .tcb-subtitle{font-size:11.5px!important;line-height:16px!important}
.horizon .tcb-grid{max-width:480px!important}.horizon .tcb-field{margin-bottom:13px!important}.horizon .tcb-notice,.horizon .tcb-stat{max-width:480px!important;padding:9px 10px!important;font-size:11px!important;line-height:16px!important}

/* App-icon presentation: icons are already square artworks, so never add another frame. */
.horizon :is(.bank-login-brand-logo,.tcb-logo,.bank-icon img,.admin-bank-item__logo img,.hz-bank-item img,.bank-card-logo,.bank-logo,.wallet-logo){object-fit:cover!important;border-radius:9px!important}
.horizon .bank-card-glass{flex:1 1 138px!important;max-width:168px!important;min-height:100px!important;padding:10px!important}
.horizon .bank-card-glass .bank-icon{width:40px!important;height:40px!important;margin:0 auto 6px!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:40px!important;height:40px!important;max-width:40px!important;max-height:40px!important}
.horizon .bank-card-glass .bank-name{font-size:11.5px!important}.horizon .bank-card-glass .bank-count{font-size:10.5px!important}
.horizon .admin-bank-item{min-height:58px!important;grid-template-columns:30px 1fr auto!important;gap:8px!important;padding:8px 9px!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;border-radius:8px!important}
.horizon .admin-bank-item__logo img{width:30px!important;height:30px!important;max-width:30px!important;max-height:30px!important;border-radius:8px!important}
.hz-bank-grid{gap:8px!important;margin-top:18px!important}.hz-bank-item{height:58px!important;padding:8px!important}.hz-bank-item img{width:36px!important;height:36px!important;max-width:36px!important;max-height:36px!important;border-radius:9px!important;object-fit:cover!important}

@media (max-width:767px){
  .horizon .hz-connect-page{max-width:none!important;width:100%!important}
  .horizon .hz-connect-form,.horizon .tcb-panel{max-width:none!important;width:100%!important}
  .horizon .hz-connect-form :is(.flex-between,.hz-connect-head){margin-bottom:14px!important;padding-bottom:12px!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}
  .horizon .hz-connect-form .bank-login-brand + .page-title{font-size:14px!important;line-height:19px!important}
  .horizon .hz-connect-form>.form-group,.horizon .hz-connect-form>.form-check,.horizon .hz-connect-form>form,.horizon .hz-connect-form .hz-form-body,.horizon .tcb-grid{max-width:none!important;width:100%!important}
  .horizon .hz-connect-form .form-group{margin-bottom:12px!important}
  .horizon .bank-card-glass{flex-basis:128px!important;max-width:none!important;min-height:94px!important;padding:9px!important}
  .horizon .bank-card-glass .bank-icon,.horizon .bank-card-glass .bank-icon img{width:36px!important;height:36px!important;max-width:36px!important;max-height:36px!important;border-radius:8px!important}
  .hz-bank-item{height:54px!important}.hz-bank-item img{width:34px!important;height:34px!important;max-width:34px!important;max-height:34px!important;border-radius:8px!important}
}

/* Square app-icon treatment on subscription/admin/catalog surfaces too. */
.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;display:grid!important;place-items:center!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;display:grid!important;place-items:center!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;object-fit:cover!important;border-radius:inherit!important}
.horizon img.bank-logo{width:24px!important;height:24px!important;max-width:24px!important;max-height:24px!important;padding:0!important;object-fit:contain!important;border-radius:6px!important;background:#fff!important}
@media(max-width:767px){.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}}
