/* Active Life: affiliate pages (Ultimate Affiliate forms + account page) in the site's brand. */
.alc-portal__band { background: linear-gradient(120deg, var(--navy) 0%, var(--navy-2) 100%); color: #e3ecff; padding: 48px 0 90px; }
.alc-portal__band h1 { color: #fff; font-size: clamp(1.9rem, 4vw, 2.8rem); margin-bottom: .3em; }
.alc-portal__band .alc-lead { margin: 0; }
.alc-portal__body { display: grid; grid-template-columns: 1fr; gap: 28px; margin-top: -60px; padding-bottom: 70px; position: relative; }
.alc-portal--register .alc-portal__body, .alc-portal--login .alc-portal__body { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); align-items: start; }
.alc-portal--login .alc-portal__body { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); max-width: 960px; }
.alc-portal__card { background: #fff; border-radius: 22px; box-shadow: var(--shadow); padding: clamp(22px, 4vw, 38px); min-width: 0; }
.alc-portal__card > p:first-child { color: var(--muted); }
.alc-portal__side { background: var(--tint); border-radius: 22px; padding: 28px; border: 1px solid #dcebd5; }
.alc-portal__side h2 { font-size: 1.3rem; }
.alc-portal__side ol { padding-left: 1.2em; margin: 0 0 14px; display: grid; gap: 10px; }
.alc-portal__side li::marker { color: var(--green); font-weight: 800; }
.alc-portal__help { font-weight: 600; margin: 14px 0 0; }
.alc-footer--slim { padding: 22px 0 10px; }
.alc-footer--slim .alc-footer__legal { border: 0; margin: 0 auto; padding: 0; }

/* Ultimate Affiliate forms */
.alc-portal-page .uap-login-form-wrap, .alc-portal-page .uap-register-form-wrap, .alc-portal-page [class*="uap-register-"] { max-width: none !important; width: 100% !important; margin: 0 !important; padding: 0 !important; background: none !important; box-shadow: none !important; border: 0 !important; }
.alc-portal-page .alc-portal__card input[type="text"], .alc-portal-page .alc-portal__card input[type="email"], .alc-portal-page .alc-portal__card input[type="password"], .alc-portal-page .alc-portal__card input[type="number"], .alc-portal-page .alc-portal__card input[type="tel"], .alc-portal-page .alc-portal__card input[type="url"], .alc-portal-page .alc-portal__card input[type="date"], .alc-portal-page .alc-portal__card select, .alc-portal-page .alc-portal__card textarea { width: 100% !important; max-width: 100%; font: inherit !important; font-size: 16px !important; padding: 12px 14px !important; height: auto !important; border: 2px solid var(--line) !important; border-radius: 12px !important; background: #fbfcfe !important; color: var(--ink) !important; box-shadow: none !important; }
.alc-portal-page .alc-portal__card input:focus, .alc-portal-page .alc-portal__card select:focus, .alc-portal-page .alc-portal__card textarea:focus { outline: none !important; border-color: var(--green) !important; background: #fff !important; box-shadow: 0 0 0 4px rgba(46, 158, 68, .15) !important; }
.alc-portal-page .uap-form-line-fr, .alc-portal-page .uap-form-line-register { margin: 0 0 14px !important; }
.alc-portal-page .alc-portal__card label, .alc-portal-page .uap-labels-register { font-weight: 700; color: var(--navy); display: block; margin-bottom: 6px; font-size: .95rem; }
.alc-portal-page .alc-portal__card input[type="submit"], .alc-portal-page .alc-portal__card button[type="submit"], .alc-portal-page .uap-form-submit input, .alc-portal-page .alc-portal__card .button { display: inline-flex !important; width: 100% !important; justify-content: center; font-family: var(--head) !important; font-weight: 700 !important; font-size: 1.05rem !important; padding: 15px 26px !important; border-radius: 999px !important; border: 0 !important; background: var(--yellow) !important; color: var(--navy) !important; cursor: pointer; box-shadow: 0 8px 22px rgba(255, 201, 40, .35) !important; text-transform: none !important; height: auto !important; }
.alc-portal-page .alc-portal__card input[type="submit"]:hover { background: #ffd54f !important; }
.alc-portal-page .uap-remember-wrapper { display: flex; align-items: center; gap: 8px; margin: 4px 0 10px; }
.alc-portal-page .uap-form-input-remember, .alc-portal-page .alc-portal__card input[type="checkbox"] { width: 18px; height: 18px; accent-color: var(--green); }
.alc-portal-page .uap-form-links { margin: 8px 0; text-align: center; color: var(--muted); }
.alc-portal-page .uap-form-links a { font-weight: 700; color: var(--blue); margin-left: 4px; }
.alc-portal-page .uap-register-notice, .alc-portal-page .uap-wrapp-the-errors { color: #a61e4d; font-weight: 600; }

/* Ultimate Affiliate account page (agent dashboard) */
.alc-portal--portal .alc-portal__card { padding: clamp(14px, 3vw, 28px); }
.alc-portal-page .uap-user-page-wrapper, .alc-portal-page .uap-ap-wrap { font-family: var(--body); color: var(--ink); max-width: 100%; }
.alc-portal-page .uap-ap-menu, .alc-portal-page .uap-ap-menu ul { border-radius: 16px; }
.alc-portal-page .uap-ap-menu a { font-weight: 700; }
.alc-portal-page .uap-ap-menu .uap-ap-menu-item-selected, .alc-portal-page .uap-ap-menu .uap-ap-menu-tab-item-selected { background: var(--green) !important; color: #fff !important; }
.alc-portal-page .uap-ap-wrap h1, .alc-portal-page .uap-ap-wrap h2, .alc-portal-page .uap-ap-wrap h3, .alc-portal-page .uap-ap-wrap h4 { font-family: var(--head); color: var(--navy); }
.alc-portal-page .uap-ap-wrap table { width: 100%; border-collapse: collapse; display: block; overflow-x: auto; }
.alc-portal-page .uap-ap-wrap th { background: var(--tint); color: var(--navy); text-align: left; }
.alc-portal-page .uap-ap-wrap th, .alc-portal-page .uap-ap-wrap td { padding: 10px 12px; border-bottom: 1px solid var(--line); }

@media (max-width: 820px) {
	.alc-portal--register .alc-portal__body, .alc-portal--login .alc-portal__body { grid-template-columns: 1fr; }
	.alc-portal__band { padding: 34px 0 80px; }
}
/* Plugin's secondary 'LogIn' link on the signup form */
.alc-portal-page .uap-register-row-left, .alc-portal-page .uap-register-row-right { float: none !important; width: 100% !important; padding: 0 !important; }
.alc-portal-page .uap-login-link { background: none !important; padding: 0 !important; margin: 10px 0 0 !important; border: 0 !important; box-shadow: none !important; }
.alc-portal-page .uap-login-link a { display: block !important; text-align: center; padding: 13px 20px !important; border-radius: 999px !important; border: 2px solid var(--navy) !important; background: #fff !important; color: var(--navy) !important; font-size: 0 !important; text-decoration: none !important; box-shadow: none !important; }
.alc-portal-page .uap-login-link a::after { content: "Already registered? Log in"; font-family: var(--head); font-weight: 700; font-size: 1rem; }
.alc-portal-page .uap-login-link a:hover { background: var(--navy) !important; color: #fff !important; }
.alc-portal-page .uap-register-row-left .uap-submit-form { margin: 6px 0 0 !important; }

/* Agents are registered by management: no self sign-up link */
.alc-portal-page .uap-form-links-reg { display: none !important; }
.alc-portal__steps { padding-left: 1.2em; display: grid; gap: 10px; }

/* Login error / pending messages: white text on red */
.alc-portal-page .uap-login-error, .alc-portal-page .uap-login-pending { width: 100% !important; margin: 0 0 18px !important; padding: 12px 16px !important; border-radius: 12px !important; background: #c0392b !important; color: #fff !important; font-family: var(--body) !important; font-size: .95rem !important; font-weight: 700; line-height: 1.45; text-align: left !important; }
.alc-portal-page .uap-login-pending { background: #b07d00 !important; }

/* Own login form */
.alc-login form p { margin: 0 0 14px; }
.alc-login label { display: block; font-weight: 700; color: var(--navy); margin-bottom: 6px; }
.alc-login .login-remember label { display: flex; align-items: center; gap: 8px; font-weight: 600; }
.alc-login__links { text-align: center; margin-top: 6px; }
.alc-login__links a { font-weight: 700; }
.alc-s-code { margin: 0 0 4px; color: var(--muted); font-size: .92rem; }
.alc-s-code b { color: var(--navy); font-family: var(--head); }
.alc-tree { list-style: none; margin: 6px 0 6px 10px; padding-left: 14px; border-left: 2px solid #c3d4ee; }
.alc-tree li { margin: 8px 0; font-weight: 700; color: var(--navy); }
.alc-tree small { display: block; font-weight: 400; color: var(--muted); }
