:root {
	--portal-forest: #063b29;
	--portal-deep: #03261b;
	--portal-green: #168a4a;
	--portal-lime: #acd832;
	--portal-gold: #efb93f;
	--portal-ink: #0b2118;
	--portal-muted: #60736b;
	--portal-paper: #fbfaf5;
	--portal-cream: #f2efe4;
	--portal-line: rgba(11, 33, 24, .12);
	--portal-shadow: 0 28px 80px rgba(3, 38, 27, .12);
}

body:has(.mal-portal), body:has(.mal-portal-login) { background: var(--portal-paper); }
.mal-portal *, .mal-portal-login * { box-sizing: border-box; }
.mal-portal-kicker { color: var(--portal-green); font-size: 11px; font-weight: 900; letter-spacing: .16em; margin: 0 0 9px; text-transform: uppercase; }
.mal-portal-primary { align-items: center; background: var(--portal-forest); border: 0; border-radius: 999px; color: #fff; cursor: pointer; display: inline-flex; font-size: 13px; font-weight: 850; gap: 12px; justify-content: center; min-height: 50px; padding: 12px 21px; text-decoration: none; transition: background 160ms ease, box-shadow 160ms ease, transform 160ms ease; }
.mal-portal-primary:hover, .mal-portal-primary:focus-visible { background: #0b583b; box-shadow: 0 12px 30px rgba(3, 38, 27, .18); color: #fff; transform: translateY(-1px); }
.mal-portal-primary:disabled { cursor: wait; opacity: .64; transform: none; }
.mal-portal-alert, .mal-portal-notice { border-radius: 14px; font-size: 13px; font-weight: 750; line-height: 1.5; padding: 13px 15px; }
.mal-portal-alert.is-error, .mal-portal-notice.is-error { background: #ffefec; color: #9f3024; }
.mal-portal-notice.is-success { background: #e4f4e8; color: #086733; }

.mal-portal-login { background: radial-gradient(circle at 15% 14%, rgba(172, 216, 50, .17), transparent 23rem), linear-gradient(145deg, var(--portal-deep), var(--portal-forest)); min-height: calc(100vh - 82px); padding: clamp(48px, 8vw, 105px) clamp(20px, 5vw, 60px); }
.mal-portal-login__stage { align-items: center; display: grid; gap: clamp(50px, 8vw, 120px); grid-template-columns: minmax(0, 1fr) minmax(360px, 490px); margin: 0 auto; max-width: 1180px; }
.mal-portal-login__story { color: #fff; max-width: 640px; }
.mal-portal-login__story .mal-portal-kicker { color: var(--portal-lime); }
.mal-portal-login__story h1 { color: #fff; font-size: clamp(42px, 6vw, 78px); letter-spacing: -.055em; line-height: .98; margin: 0 0 24px; }
.mal-portal-login__story > p:not(.mal-portal-kicker) { color: rgba(255,255,255,.72); font-size: clamp(17px, 2vw, 21px); line-height: 1.65; margin: 0; max-width: 560px; }
.mal-portal-login__features { border-top: 1px solid rgba(255,255,255,.15); display: grid; gap: 0; margin-top: 42px; }
.mal-portal-login__features span { align-items: center; border-bottom: 1px solid rgba(255,255,255,.15); color: rgba(255,255,255,.86); display: flex; font-size: 13px; font-weight: 750; gap: 15px; padding: 16px 0; }
.mal-portal-login__features b { align-items: center; background: rgba(255,255,255,.1); border-radius: 8px; color: var(--portal-lime); display: inline-flex; font-size: 10px; height: 32px; justify-content: center; letter-spacing: .08em; width: 32px; }
.mal-portal-login__card { background: #fff; border: 1px solid rgba(255,255,255,.5); border-radius: 32px; box-shadow: 0 34px 100px rgba(0,0,0,.27); padding: clamp(30px, 5vw, 48px); }
.mal-portal-login__mark { border-radius: 16px; box-shadow: 0 14px 35px rgba(3, 38, 27, .22); height: 58px; margin-bottom: 28px; overflow: hidden; width: 58px; }
.mal-portal-login__mark img { display: block; height: 100%; object-fit: cover; width: 100%; }
.mal-portal-login__card h2 { color: var(--portal-ink); font-size: 38px; letter-spacing: -.045em; margin: 0; }
.mal-portal-login__help { color: var(--portal-muted); font-size: 13px; margin: 8px 0 24px; }
.mal-portal-login__form { display: grid; gap: 17px; }
.mal-portal-login__form > label, .mal-portal-form label, .mal-portal-subscriptions label { display: grid; gap: 7px; }
.mal-portal-login__form label > span, .mal-portal-form label > span, .mal-portal-subscriptions label > span { color: var(--portal-ink); font-size: 11px; font-weight: 850; }
.mal-portal-login input[type="text"], .mal-portal-login input[type="password"], .mal-portal input:not([type="checkbox"]), .mal-portal select { background: #fff; border: 1px solid rgba(11, 33, 24, .2); border-radius: 12px; color: var(--portal-ink); min-height: 49px; padding: 10px 13px; width: 100%; }
.mal-portal-login input:focus, .mal-portal input:focus, .mal-portal select:focus { border-color: var(--portal-green); box-shadow: 0 0 0 3px rgba(22,138,74,.12); outline: none; }
.mal-portal-login__options { align-items: center; display: flex; justify-content: space-between; }
.mal-portal-login__options label { align-items: center; color: var(--portal-muted); display: flex; font-size: 12px; gap: 8px; }
.mal-portal-login__options a { color: var(--portal-green); font-size: 12px; font-weight: 850; }
.mal-portal-login__form .mal-portal-primary { margin-top: 5px; width: 100%; }
.mal-portal-login__new { align-items: center; border-top: 1px solid var(--portal-line); display: flex; font-size: 12px; gap: 8px; justify-content: center; margin-top: 25px; padding-top: 21px; }
.mal-portal-login__new span { color: var(--portal-muted); }
.mal-portal-login__new a { color: var(--portal-green); font-weight: 900; }
.mal-portal-login__legacy { background: var(--portal-cream); border-radius: 13px; color: var(--portal-muted); font-size: 11px; line-height: 1.55; margin: 20px 0 0; padding: 13px 14px; }
.mal-portal-login__legacy strong { color: var(--portal-ink); }

.mal-portal { background: linear-gradient(180deg, #edf3ed 0, var(--portal-paper) 390px); min-height: calc(100vh - 82px); padding: 48px 0 90px; }
.mal-portal-shell { margin: 0 auto; max-width: 1320px; padding: 0 clamp(20px, 4vw, 48px); }
.mal-portal-welcome { align-items: center; display: flex; gap: 30px; justify-content: space-between; margin-bottom: 32px; }
.mal-portal-welcome h1 { color: var(--portal-ink); font-size: clamp(35px, 5vw, 58px); letter-spacing: -.055em; line-height: 1.02; margin: 0 0 10px; }
.mal-portal-welcome > div:first-child > p:last-child { color: var(--portal-muted); font-size: 15px; margin: 0; }
.mal-portal-identity { align-items: center; background: rgba(255,255,255,.75); border: 1px solid rgba(11,33,24,.1); border-radius: 20px; box-shadow: 0 14px 40px rgba(3,38,27,.06); display: flex; flex: 0 0 auto; gap: 13px; padding: 13px 18px 13px 13px; }
.mal-portal-avatar { align-items: center; background: linear-gradient(145deg, var(--portal-green), var(--portal-forest)); border-radius: 13px; color: #fff; display: flex; font-size: 12px; font-weight: 950; height: 46px; justify-content: center; letter-spacing: .05em; width: 46px; }
.mal-portal-avatar img, .mal-portal-photo__preview img { display: block; height: 100%; object-fit: cover; width: 100%; }
.mal-portal-avatar { overflow: hidden; }
.mal-portal-identity strong, .mal-portal-identity span, .mal-portal-identity small { display: block; }
.mal-portal-identity strong { font-size: 13px; }
.mal-portal-identity div > span { color: var(--portal-muted); font-size: 10px; margin: 1px 0; }
.mal-portal-identity small { color: #8b9993; font-size: 9px; letter-spacing: .04em; }
.mal-portal-layout { align-items: start; display: grid; gap: 24px; grid-template-columns: 235px minmax(0, 1fr); }
.mal-portal-sidebar { background: var(--portal-deep); border-radius: 24px; box-shadow: 0 22px 55px rgba(3,38,27,.2); padding: 18px; position: sticky; top: 104px; }
.mal-portal-nav { display: grid; gap: 5px; }
.mal-portal-nav a { align-items: center; border-radius: 12px; color: rgba(255,255,255,.68); display: flex; font-size: 12px; font-weight: 800; gap: 11px; padding: 12px 13px; text-decoration: none; transition: background 150ms ease, color 150ms ease; }
.mal-portal-nav a span { align-items: center; color: var(--portal-lime); display: flex; font-size: 15px; justify-content: center; width: 22px; }
.mal-portal-nav a:hover, .mal-portal-nav a:focus-visible, .mal-portal-nav a.is-active { background: rgba(255,255,255,.1); color: #fff; }
.mal-portal-signout { border-top: 1px solid rgba(255,255,255,.12); color: rgba(255,255,255,.55); display: block; font-size: 11px; font-weight: 800; margin-top: 16px; padding: 15px 13px 3px; text-decoration: none; }
.mal-portal-signout:hover { color: #fff; }
.mal-portal-content { min-width: 0; }
.mal-portal-notice { margin-bottom: 15px; }
.mal-portal-panel { background: #fff; border: 1px solid var(--portal-line); border-radius: 26px; box-shadow: var(--portal-shadow); min-height: 560px; padding: clamp(25px, 4vw, 44px); }
.mal-portal-panel[hidden] { display: none !important; }
.mal-portal-loading[hidden], .mal-portal-subscriptions[hidden], .mal-portal-event-list[hidden], .mal-portal-print-delivery[hidden], .mal-portal-field-warning[hidden] { display: none !important; }
.mal-portal-panel-head { align-items: flex-start; display: flex; gap: 20px; justify-content: space-between; margin-bottom: 28px; }
.mal-portal-panel-head h2 { color: var(--portal-ink); font-size: clamp(27px, 3vw, 39px); letter-spacing: -.045em; line-height: 1.05; margin: 0; }
.mal-portal-panel-head > div > p:last-child:not(.mal-portal-kicker) { color: var(--portal-muted); font-size: 13px; line-height: 1.6; margin: 10px 0 0; }
.mal-portal-status { align-items: center; background: #e5f4e9; border-radius: 999px; color: #086733; display: inline-flex; flex: 0 0 auto; font-size: 10px; font-weight: 900; gap: 7px; padding: 8px 11px; }
.mal-portal-status i { background: #19a958; border-radius: 50%; box-shadow: 0 0 0 4px rgba(25,169,88,.13); height: 7px; width: 7px; }
.mal-portal-status.is-warning { background: #fff0d6; color: #8b5200; }
.mal-portal-status.is-warning i { background: #e49513; box-shadow: 0 0 0 4px rgba(228,149,19,.14); }
.mal-portal-verification-banner { align-items: center; background: #fff7e8; border: 1px solid #f3d49b; border-radius: 17px; display: flex; gap: 20px; justify-content: space-between; margin: -7px 0 22px; padding: 16px 18px; }
.mal-portal-verification-banner strong { color: #744607; display: block; font-size: 13px; }
.mal-portal-verification-banner p { color: #846847; font-size: 11px; line-height: 1.5; margin: 4px 0 0; }
.mal-portal-verification-banner a { color: #744607; flex: 0 0 auto; font-size: 11px; font-weight: 900; text-decoration: none; }
.mal-portal-stats { display: grid; gap: 12px; grid-template-columns: repeat(4, 1fr); }
.mal-portal-stats article { background: var(--portal-cream); border-radius: 18px; display: flex; flex-direction: column; min-height: 143px; padding: 19px; }
.mal-portal-stats span { color: var(--portal-muted); font-size: 10px; font-weight: 850; }
.mal-portal-stats strong { color: var(--portal-forest); font-size: 36px; letter-spacing: -.05em; line-height: 1; margin: auto 0 4px; }
.mal-portal-stats small { color: var(--portal-muted); font-size: 9px; }
.mal-portal-actions { display: grid; gap: 10px; margin-top: 26px; }
.mal-portal-action { align-items: center; border: 1px solid var(--portal-line); border-radius: 17px; display: grid; gap: 14px; grid-template-columns: 52px 1fr auto; padding: 15px; text-decoration: none; transition: border-color 150ms ease, box-shadow 150ms ease, transform 150ms ease; }
.mal-portal-action:hover { border-color: rgba(22,138,74,.35); box-shadow: 0 12px 34px rgba(3,38,27,.08); transform: translateY(-1px); }
.mal-portal-action > span { align-items: center; background: var(--portal-cream); border-radius: 12px; color: var(--portal-green); display: flex; font-size: 9px; font-weight: 950; height: 52px; justify-content: center; letter-spacing: .06em; }
.mal-portal-action.is-green > span { background: var(--portal-forest); color: var(--portal-lime); }
.mal-portal-action strong, .mal-portal-action small { display: block; }
.mal-portal-action strong { font-size: 13px; }
.mal-portal-action small { color: var(--portal-muted); font-size: 10px; margin-top: 2px; }
.mal-portal-action > b { color: var(--portal-green); font-size: 18px; }

.mal-portal-form { display: grid; gap: 24px; }
.mal-portal-photo { align-items: center; background: linear-gradient(135deg, #f7f9ed, #edf5ef); border: 1px solid #dce6d8; border-radius: 20px; display: grid; gap: 18px; grid-template-columns: 78px minmax(0, 1fr); margin-bottom: 24px; padding: 19px; }
.mal-portal-photo__preview { align-items: center; background: linear-gradient(145deg, var(--portal-green), var(--portal-forest)); border-radius: 20px; color: #fff; display: flex; font-size: 17px; font-weight: 950; height: 78px; justify-content: center; overflow: hidden; width: 78px; }
.mal-portal-photo strong { display: block; font-size: 14px; }
.mal-portal-photo p { color: var(--portal-muted); font-size: 10px; line-height: 1.5; margin: 3px 0 11px; }
.mal-portal-photo__actions { align-items: center; display: flex; flex-wrap: wrap; gap: 8px; }
.mal-portal-photo__actions .mal-portal-primary, .mal-portal-photo__actions .mal-portal-secondary { font-size: 10px; min-height: 37px; padding: 9px 13px; }
.mal-portal-secondary { align-items: center; background: #fff; border: 1px solid var(--portal-line); border-radius: 999px; color: var(--portal-forest); cursor: pointer; display: inline-flex !important; font-weight: 900; }
.mal-portal-secondary input { height: 1px !important; opacity: 0; overflow: hidden; position: absolute; width: 1px !important; }
.mal-portal-text-button { background: none; border: 0; color: #8a3f2c; cursor: pointer; font-size: 10px; font-weight: 850; padding: 8px; }
.mal-portal-text-button:disabled { cursor: wait; opacity: .6; }
.mal-portal-form-grid { display: grid; gap: 15px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.mal-portal-form-grid .is-wide { grid-column: 1 / -1; }
.mal-portal-email-card { align-items: center; background: var(--portal-cream); border-radius: 16px; display: flex; justify-content: space-between; padding: 16px 18px; }
.mal-portal-email-card span, .mal-portal-email-card strong { display: block; }
.mal-portal-email-card span { color: var(--portal-muted); font-size: 10px; font-weight: 800; }
.mal-portal-email-card strong { font-size: 13px; margin-top: 2px; }
.mal-portal-email-card em { background: #dceee1; border-radius: 999px; color: #086733; font-size: 9px; font-style: normal; font-weight: 900; padding: 6px 9px; text-transform: uppercase; }
.mal-portal-email-card.is-unverified { background: #fff7e8; border: 1px solid #f3d49b; }
.mal-portal-email-card.is-unverified em { background: #ffe5b7; color: #8b5200; }
.mal-portal-email-verification { align-items: center; background: linear-gradient(135deg, #f7f9ed, #edf5ef); border: 1px solid #dce6d8; border-radius: 20px; display: grid; gap: 18px; grid-template-columns: minmax(0, 1fr) auto; margin-top: 22px; padding: 21px; }
.mal-portal-email-verification h3 { color: var(--portal-ink); font-size: 20px; margin: 0; }
.mal-portal-email-verification p:not(.mal-portal-kicker) { color: var(--portal-muted); font-size: 12px; line-height: 1.55; margin: 6px 0 0; }
.mal-portal-verification-code { align-items: end; display: flex; gap: 10px; grid-column: 1 / -1; }
.mal-portal-verification-code label { display: grid; flex: 1 1 180px; gap: 7px; }
.mal-portal-verification-code label span { color: var(--portal-ink); font-size: 11px; font-weight: 850; }
.mal-portal-verification-code input { background: #fff; border: 1px solid var(--portal-line); border-radius: 12px; font-size: 19px; letter-spacing: .2em; min-height: 50px; padding: 11px 13px; }
.mal-portal-aliases { align-items: center; display: flex; flex-wrap: wrap; gap: 7px; margin-top: -13px; }
.mal-portal-aliases > span { color: var(--portal-muted); font-size: 10px; font-weight: 800; }
.mal-portal-aliases b { background: #edf3ed; border-radius: 999px; color: var(--portal-forest); font-size: 10px; padding: 6px 9px; }
.mal-portal-address, .mal-portal-subscription-details { background: #f9f8f2; border: 1px solid var(--portal-line); border-radius: 18px; padding: 20px; }
.mal-portal-address h3, .mal-portal-subscription-details h3, .mal-portal-credentials h3 { font-size: 17px; margin: 0; }
.mal-portal-address > p, .mal-portal-subscription-details > p, .mal-portal-credentials > div > p { color: var(--portal-muted); font-size: 11px; margin: 3px 0 17px; }
.mal-portal-form > .mal-portal-primary, .mal-portal-subscriptions > .mal-portal-primary { justify-self: start; }
.mal-portal-credentials { border-top: 1px solid var(--portal-line); margin-top: 32px; padding-top: 25px; }
.mal-portal-credential-list { display: grid; gap: 9px; }
.mal-portal-credential-list article { align-items: center; background: var(--portal-cream); border-radius: 13px; display: grid; gap: 12px; grid-template-columns: 58px 1fr auto; padding: 12px 14px; }
.mal-portal-credential-list span { color: var(--portal-green); font-size: 9px; font-weight: 950; }
.mal-portal-credential-list strong { font-size: 12px; }
.mal-portal-credential-list em { color: #086733; font-size: 9px; font-style: normal; font-weight: 850; }
.mal-portal-empty-inline { background: var(--portal-cream); border-radius: 13px; color: var(--portal-muted); font-size: 11px; padding: 13px; }

.mal-portal-loading { align-items: center; color: var(--portal-muted); display: flex; font-size: 12px; gap: 10px; padding: 22px 0; }
.mal-portal-loading span { animation: portal-spin 800ms linear infinite; border: 2px solid #dce5df; border-radius: 50%; border-top-color: var(--portal-green); height: 18px; width: 18px; }
@keyframes portal-spin { to { transform: rotate(360deg); } }
.mal-portal-subscriptions { display: grid; gap: 22px; }
.mal-portal-email-select { max-width: 440px; }
.mal-portal-subscription-state { align-items: center; background: #edf3ed; border-radius: 14px; color: var(--portal-muted); display: flex; font-size: 11px; font-weight: 750; justify-content: space-between; padding: 11px 13px; }
.mal-portal-subscription-state b { color: var(--portal-forest); }
.mal-portal-publications { display: grid; gap: 13px; }
.mal-portal-publication { border: 1px solid var(--portal-line); border-radius: 18px; overflow: hidden; }
.mal-portal-publication__head { align-items: center; background: var(--portal-cream); display: flex; gap: 12px; padding: 14px 16px; }
.mal-portal-publication__mark { align-items: center; background: var(--portal-forest); border-radius: 10px; color: var(--portal-lime); display: flex; flex: 0 0 40px; font-size: 8px; font-weight: 950; height: 40px; justify-content: center; }
.mal-portal-publication__head h3 { font-size: 14px; margin: 0; }
.mal-portal-publication__head small { color: var(--portal-muted); display: block; font-size: 9px; margin-top: 1px; }
.mal-portal-platforms { display: grid; gap: 0; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.mal-portal-platforms label { align-items: center; border-right: 1px solid var(--portal-line); border-top: 1px solid var(--portal-line); cursor: pointer; display: flex; gap: 10px; min-height: 54px; padding: 11px 14px; }
.mal-portal-platforms label:nth-child(even) { border-right: 0; }
.mal-portal-platforms input { accent-color: var(--portal-green); flex: 0 0 auto; height: 18px; width: 18px; }
.mal-portal-platforms span { font-size: 10px; font-weight: 750; }
.mal-portal-subscription-details { display: grid; gap: 17px; }
.mal-portal-print-delivery { align-items: center; background: #fff; border: 1px solid #cfe2d5; border-radius: 15px; display: flex; gap: 18px; justify-content: space-between; padding: 15px 16px; }
.mal-portal-print-delivery strong { color: var(--portal-ink); display: block; font-size: 12px; }
.mal-portal-print-delivery p { color: var(--portal-muted); font-size: 10px; line-height: 1.55; margin: 3px 0 0; }
.mal-portal-print-delivery > a { color: var(--portal-green); flex: none; font-size: 10px; font-weight: 850; text-decoration: none; }
.mal-portal-print-delivery > a:hover, .mal-portal-print-delivery > a:focus-visible { text-decoration: underline; }
.mal-portal-field-warning { color: #9a4f16 !important; font-weight: 750; }
.mal-portal-form label.is-invalid > span, .mal-portal-subscriptions label.is-invalid > span { color: #9f2f22; }
.mal-portal-form [aria-invalid="true"], .mal-portal-subscriptions [aria-invalid="true"], .mal-portal-publications.is-invalid, .mal-portal-print-delivery.is-invalid { border-color: #d7786c !important; box-shadow: 0 0 0 3px rgba(184,64,49,.11); }
.mal-portal-consent { align-items: flex-start; display: flex !important; gap: 9px !important; }
.mal-portal-consent input { accent-color: var(--portal-green); margin-top: 2px; }
.mal-portal-consent span { color: var(--portal-muted) !important; font-weight: 650 !important; line-height: 1.5; }

.mal-portal-event-list { display: grid; gap: 11px; }
.mal-portal-event { align-items: center; border: 1px solid var(--portal-line); border-radius: 17px; display: grid; gap: 15px; grid-template-columns: 58px 1fr auto; padding: 15px; }
.mal-portal-event__date { align-items: center; background: var(--portal-forest); border-radius: 12px; color: #fff; display: flex; flex-direction: column; height: 58px; justify-content: center; line-height: 1; }
.mal-portal-event__date span { color: var(--portal-lime); font-size: 9px; font-weight: 900; text-transform: uppercase; }
.mal-portal-event__date strong { font-size: 20px; margin-top: 4px; }
.mal-portal-event h3 { font-size: 14px; margin: 0; }
.mal-portal-event p { color: var(--portal-muted); font-size: 10px; margin: 3px 0 0; }
.mal-portal-event__status { background: #e5f4e9; border-radius: 999px; color: #086733; font-size: 9px; font-weight: 900; padding: 7px 9px; text-transform: capitalize; }
.mal-portal-empty { background: var(--portal-cream); border-radius: 18px; padding: 40px 25px; text-align: center; }
.mal-portal-empty strong { display: block; font-size: 17px; }
.mal-portal-empty p { color: var(--portal-muted); font-size: 12px; margin: 7px auto 0; max-width: 500px; }

.mal-portal-services { display: grid; gap: 15px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.mal-portal-services article { background: var(--portal-cream); border-radius: 22px; display: flex; gap: 18px; padding: 25px; }
.mal-portal-services article > span { align-items: center; background: #fff; border-radius: 13px; color: var(--portal-green); display: flex; flex: 0 0 54px; font-size: 10px; font-weight: 950; height: 54px; justify-content: center; }
.mal-portal-services article.is-ceu { background: var(--portal-forest); color: #fff; }
.mal-portal-services article.is-ceu > span { background: rgba(255,255,255,.1); color: var(--portal-lime); }
.mal-portal-services article.is-ceu .mal-portal-kicker { color: var(--portal-lime); }
.mal-portal-services h3 { color: inherit; font-size: 24px; letter-spacing: -.035em; margin: 0; }
.mal-portal-services p:not(.mal-portal-kicker) { color: var(--portal-muted); font-size: 11px; line-height: 1.55; margin: 8px 0 20px; }
.mal-portal-services article.is-ceu p:not(.mal-portal-kicker) { color: rgba(255,255,255,.67); }
.mal-portal-services article.is-ceu .mal-portal-primary { background: #fff; color: var(--portal-forest); }
.mal-portal-security { align-items: flex-start; background: #edf3ed; border-radius: 17px; display: flex; gap: 13px; margin-top: 20px; padding: 17px; }
.mal-portal-security > span { align-items: center; background: #d7ebdc; border-radius: 50%; color: #086733; display: flex; flex: 0 0 30px; font-size: 12px; font-weight: 950; height: 30px; justify-content: center; }
.mal-portal-security strong { display: block; font-size: 12px; }
.mal-portal-security p { color: var(--portal-muted); font-size: 10px; margin: 2px 0 0; }

@media (max-width: 1050px) {
	.mal-portal-stats { grid-template-columns: repeat(2, 1fr); }
	.mal-portal-services { grid-template-columns: 1fr; }
}

@media (max-width: 820px) {
	.mal-portal-login__stage { grid-template-columns: 1fr; }
	.mal-portal-login__story { text-align: center; margin-inline: auto; }
	.mal-portal-login__story > p:not(.mal-portal-kicker) { margin-inline: auto; }
	.mal-portal-login__features { text-align: left; }
	.mal-portal-login__card { margin-inline: auto; max-width: 520px; width: 100%; }
	.mal-portal-welcome { align-items: flex-start; flex-direction: column; }
	.mal-portal-layout { grid-template-columns: 1fr; }
	.mal-portal-sidebar { border-radius: 18px; overflow-x: auto; padding: 9px; position: sticky; top: 80px; z-index: 30; }
	.mal-portal-nav { display: flex; min-width: max-content; }
	.mal-portal-nav a { padding: 10px 12px; }
	.mal-portal-signout { display: none; }
}

@media (max-width: 590px) {
	.mal-portal-login { padding: 38px 18px 60px; }
	.mal-portal-login__story h1 { font-size: 42px; }
	.mal-portal-login__card { border-radius: 25px; padding: 28px 21px; }
	.mal-portal-login__options { align-items: flex-start; flex-direction: column; gap: 8px; }
	.mal-portal { padding-top: 32px; }
	.mal-portal-identity { width: 100%; }
	.mal-portal-panel { border-radius: 20px; min-height: 0; padding: 24px 18px; }
	.mal-portal-panel-head { align-items: flex-start; flex-direction: column; }
	.mal-portal-sidebar { overflow: visible; position: static; }
	.mal-portal-nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); min-width: 0; }
	.mal-portal-nav a { min-width: 0; padding: 10px; }
	.mal-portal-nav a:last-child { grid-column: 1 / -1; }
	.mal-portal-stats, .mal-portal-form-grid, .mal-portal-platforms { grid-template-columns: 1fr; }
	.mal-portal-platforms label { border-right: 0; }
	.mal-portal-form-grid .is-wide { grid-column: auto; }
	.mal-portal-action { grid-template-columns: 46px 1fr auto; }
	.mal-portal-action > span { height: 46px; }
	.mal-portal-event { align-items: start; grid-template-columns: 52px 1fr; }
	.mal-portal-event__date { height: 52px; }
	.mal-portal-event__status { grid-column: 2; justify-self: start; }
	.mal-portal-services article { flex-direction: column; padding: 21px; }
	.mal-portal-verification-banner { align-items: flex-start; flex-direction: column; gap: 11px; }
	.mal-portal-email-verification { align-items: stretch; grid-template-columns: 1fr; }
	.mal-portal-photo { align-items: start; grid-template-columns: 62px minmax(0, 1fr); padding: 15px; }
	.mal-portal-photo__preview { border-radius: 16px; height: 62px; width: 62px; }
	.mal-portal-email-verification > .mal-portal-primary { justify-self: start; }
	.mal-portal-verification-code { align-items: stretch; flex-direction: column; grid-column: auto; }
	.mal-portal-print-delivery { align-items: flex-start; flex-direction: column; gap: 9px; }
}

@media (prefers-reduced-motion: reduce) {
	.mal-portal-loading span { animation: none; }
	.mal-portal * { scroll-behavior: auto !important; transition: none !important; }
}
