[hidden]{display:none!important}.portal-body{background:var(--void);color:var(--void-ink);min-height:100vh}.portal-wrap{max-width:760px;margin-inline:auto;padding:clamp(24px,5vw,48px) var(--space-24) var(--space-96)}.portal-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-16);margin-bottom:var(--space-40, 40px);padding-bottom:var(--space-24);border-bottom:1px solid var(--void-border)}.portal-header[data-auth=signed-out] .portal-userbtn{display:none}.portal-header[data-auth=signed-out]{justify-content:center}.portal-wordmark{font-family:var(--font-display);font-weight:700;font-size:1.375rem;letter-spacing:-.02em;color:var(--void-ink)!important;text-decoration:none!important;transition:color var(--dur-fast) var(--ease-out)}.portal-wordmark:visited{color:var(--void-ink)!important}.portal-wordmark:hover{color:var(--ember-core)!important}.portal-wordmark:focus-visible{outline:2px solid var(--focus-ring-on-dark);outline-offset:3px;border-radius:var(--radius-control)}.portal-userbtn{display:flex;align-items:center;min-height:32px}.signin-screen{display:flex;flex-direction:column;align-items:center;min-height:calc(100vh - 180px);justify-content:center;padding-block:var(--space-24)}.signin-hero{width:100%;max-width:420px;text-align:center;margin-bottom:var(--space-24);animation:signin-enter var(--dur-slow) var(--ease-out) both}.signin-hero .eyebrow{text-align:center;margin-bottom:var(--space-8)}.signin-title{font-family:var(--font-display);font-weight:700;font-size:clamp(2rem,5vw,2.75rem);line-height:1.1;letter-spacing:-.025em;color:var(--void-ink);margin:0 0 var(--space-12)}.signin-sub{font-size:1rem;line-height:1.55;color:var(--void-muted);margin:0;max-width:34ch;margin-inline:auto}.signin-widget{width:100%;max-width:420px;animation:signin-enter var(--dur-slow) var(--ease-out) 80ms both}.signin-widget>*{width:100%}@keyframes signin-enter{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.signin-hero,.signin-widget{animation:none}}@media(max-width:480px){.signin-title{font-size:1.875rem}.signin-hero{margin-bottom:var(--space-16)}}.card{background:var(--void-2);border:1px solid var(--void-border);border-radius:var(--radius-chip);padding:var(--space-32);margin-block:var(--space-24);box-shadow:0 1px 3px #00000080,0 1px 2px #0006;animation:card-enter var(--dur-slow) var(--ease-out) both}.card:first-child{margin-top:0}.card:nth-child(2){animation-delay:60ms}.card:nth-child(3){animation-delay:.12s}@keyframes card-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.card{animation:none}}.card__title{font-family:var(--font-display);font-weight:600;font-size:26px;line-height:1.2;letter-spacing:-.01em;margin:0 0 var(--space-12);color:var(--void-ink)}.card h1{font-family:var(--font-display);font-weight:700;font-size:clamp(1.75rem,3vw + 1rem,2.25rem);line-height:1.1;letter-spacing:-.02em;margin:0 0 var(--space-12);color:var(--void-ink)}.card p{margin:0 0 var(--space-16);color:var(--void-muted);line-height:1.6}.card p:last-child{margin-bottom:0}.eyebrow{font-family:var(--font-display);font-weight:600;font-size:11px;line-height:1.4;letter-spacing:.14em;text-transform:uppercase;color:var(--ember-text);margin:0 0 var(--space-8)}.card p a{color:var(--ember-text);text-underline-offset:2px;transition:color var(--dur-fast) var(--ease-out)}.card p a:visited{color:var(--ember-text)}.card p a:hover{color:var(--ember-core)}.card p a:focus-visible{outline:2px solid var(--focus-ring-on-dark);outline-offset:2px;border-radius:var(--radius-control)}.plan-hero{margin:0 0 var(--space-8)}.plan-row{display:flex;align-items:baseline;flex-wrap:wrap;gap:var(--space-8) var(--space-12);margin:0 0 var(--space-8)}.plan-amount{font-family:var(--font-display);font-weight:700;font-size:clamp(2rem,5vw,2.75rem);line-height:1;letter-spacing:-.03em;color:var(--void-ink)}.plan-cadence{color:var(--void-muted);font-size:16px;font-weight:400;letter-spacing:0;align-self:flex-end;padding-bottom:3px}.plan-badge-row{display:flex;align-items:center;gap:var(--space-8);margin:var(--space-8) 0 0}.next-charge{font-size:14px;line-height:1.5;color:var(--void-muted);margin:var(--space-4, 4px) 0 var(--space-24)}.pastdue-note{display:flex;align-items:flex-start;gap:var(--space-8);font-size:14px;line-height:1.5;color:var(--void-danger);margin:var(--space-4, 4px) 0 var(--space-20, 20px);padding:var(--space-12) var(--space-16);background:#f2a0a01a;border:1px solid rgba(242,160,160,.28);border-radius:var(--radius-control)}.pastdue-note:before{content:"!";display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:16px;height:16px;border-radius:50%;background:var(--void-danger);color:var(--void);font-size:10px;font-weight:700;line-height:1;margin-top:1px}.plan-divider{border:none;border-top:1px solid var(--void-border);margin:var(--space-24) 0}.badge{display:inline-flex;align-items:center;gap:5px;padding:3px 9px 3px 8px;border-radius:var(--radius-chip);font-family:var(--font-display);font-weight:600;font-size:11px;line-height:1.4;letter-spacing:.07em;text-transform:uppercase;border:1px solid transparent;white-space:nowrap}.badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex-shrink:0}.badge--active{background:#4ade8024;color:#86efac;border-color:#4ade804d}.badge--pastdue{background:#f2a0a01f;color:var(--void-danger);border-color:#f2a0a047}.badge--inactive{background:#ffffff0d;color:var(--void-muted);border-color:var(--void-border)}.actions{display:flex;flex-wrap:wrap;gap:var(--space-12);margin-top:var(--space-8)}.actions .btn:focus-visible,.btn:focus-visible{outline:2px solid var(--focus-ring-on-dark);outline-offset:3px}.btn--ghost{background:transparent;color:var(--void-ink);border-color:#ffffff2e;transition:background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}.btn--ghost:visited{color:var(--void-ink)}.btn--ghost:hover:not(:disabled){background:#ffffff0f;border-color:#ffffff52;color:var(--void-ink)}.btn--primary{background:linear-gradient(180deg,var(--ember-core),var(--ember-deep));border-color:var(--ember-core);color:#fff;box-shadow:0 0 22px color-mix(in srgb,var(--ember-core) 30%,transparent);transition:background var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}.btn--primary:visited{color:#fff}.btn--primary:hover:not(:disabled){background:linear-gradient(180deg,var(--ember-text),var(--ember-core));color:#fff;box-shadow:0 0 28px color-mix(in srgb,var(--ember-core) 42%,transparent)}.btn--primary:active:not(:disabled){transform:translateY(1px);box-shadow:0 0 16px color-mix(in srgb,var(--ember-core) 28%,transparent)}.btn--primary:disabled,.btn--primary[aria-disabled=true],.btn--primary[aria-busy=true],.btn--ghost:disabled,.btn--ghost[aria-disabled=true]{background:#ffffff0f;color:var(--void-muted);border-color:var(--void-border);box-shadow:none}@media(prefers-reduced-motion:reduce){.btn--primary,.btn--ghost,.portal-wordmark{transition:none}}.inline-error{margin:var(--space-16) 0 0;padding:var(--space-12) var(--space-16);background:#f2a0a01a;border:1px solid rgba(242,160,160,.28);border-radius:var(--radius-control);color:var(--void-danger);font-size:14px;line-height:1.5}.support-row{text-align:center;margin-top:var(--space-32);font-size:14px;color:var(--void-muted)}.support-row a{color:var(--void-ink);text-decoration:underline;text-underline-offset:2px;transition:color var(--dur-fast) var(--ease-out)}.support-row a:hover{color:var(--ember-core)}.support-row a:focus-visible{outline:2px solid var(--focus-ring-on-dark);outline-offset:2px;border-radius:var(--radius-control)}@media(prefers-reduced-motion:reduce){.support-row a{transition:none}}.toast{display:flex;align-items:center;gap:var(--space-12);padding:var(--space-12) var(--space-16);background:#4ade8024;border:1px solid rgba(74,222,128,.3);border-radius:var(--radius-control);color:#86efac;font-size:14px;font-weight:500;line-height:1.5;margin-bottom:var(--space-24)}.toast--pending{background:#ffffff0d;border-color:var(--void-border);color:var(--void-muted)}.toast-dismiss{margin-left:auto;flex-shrink:0;width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:none;background:transparent;color:inherit;font-size:18px;line-height:1;cursor:pointer;border-radius:var(--radius-chip);opacity:.7;transition:opacity var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out)}.toast-dismiss:hover{opacity:1;background:#ffffff1a}.toast-dismiss:focus-visible{outline:2px solid var(--focus-ring-on-dark);outline-offset:2px;opacity:1}@media(prefers-reduced-motion:reduce){.toast-dismiss{transition:none}}.spinner{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.18);border-top-color:var(--void-muted);border-radius:50%;flex-shrink:0;animation:portal-spin .75s linear infinite}@keyframes portal-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.spinner{animation:none;border-top-color:#ffffff2e}}.build-fee-line{display:flex;align-items:center;gap:var(--space-8);font-size:14px;color:var(--void-muted);margin:0 0 var(--space-16);padding:var(--space-8) var(--space-12);background:var(--void);border:1px solid var(--void-border);border-radius:var(--radius-control)}.build-fee-line:before{content:"+";font-weight:600;color:var(--ember-text);font-size:13px;line-height:1}.skeleton{position:relative;overflow:hidden;background:#ffffff0f;border-radius:var(--radius-control);height:18px}.skeleton:after{content:"";position:absolute;inset:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.1),transparent);animation:portal-shimmer 1.4s ease-in-out infinite}.sk-title{width:38%;height:24px;margin-bottom:var(--space-16)}.sk-line{width:70%;margin-bottom:var(--space-12)}.sk-line--short{width:45%}.sk-btn{width:132px;height:44px;margin-top:var(--space-8)}@keyframes portal-shimmer{to{transform:translate(100%)}}@media(prefers-reduced-motion:reduce){.skeleton:after{animation:none}}.cl-internal-icon,.cl-userButtonAvatarBox{--cl-color-primary: var(--ember-core)}@media(max-width:540px){.card{padding:var(--space-24)}.actions{flex-direction:column;align-items:stretch}.actions .btn{width:100%}}
