.portal-root{--brand:#3fb556;--brand-soft:#52d46a1a;--accent:#2e8fe0;--signal:#e66a2c;--ink:#0d1620;--ink-soft:#62707f;--paper:#fafbfc;--paper-alt:#f0f3f7;--line:#d8dee5;--radius-card:8px;--radius-stationery:4px;--track-head:-.01em;--track-eyebrow:.16em;background:var(--paper);min-height:100vh;color:var(--ink);font-family:var(--portal-font-body,"IBM Plex Sans", system-ui, sans-serif)}.portal-shell{flex-direction:column;min-height:100vh;display:flex}.portal-shell main{flex:1 0 auto;width:100%}.portal-header{background:var(--paper);border-bottom:1px solid var(--line);padding:20px 32px}.portal-header-inner{align-items:center;gap:16px;max-width:1080px;margin:0 auto;display:flex}.portal-header-brand{color:inherit;align-items:center;gap:14px;text-decoration:none;display:flex}.portal-header-logo{width:auto;height:36px;display:block}.portal-header-text{flex-direction:column;gap:2px;display:flex}.portal-header-name{letter-spacing:var(--track-head);color:var(--ink);font-size:16px;font-weight:600}.portal-header-tagline{letter-spacing:var(--track-eyebrow);text-transform:uppercase;color:var(--ink-soft);font-size:12px;font-weight:500}.portal-footer{background:var(--paper-alt);border-top:1px solid var(--line);margin-top:64px;padding:40px 32px 32px}.portal-footer-inner{grid-template-columns:1fr;gap:32px;max-width:1080px;margin:0 auto;display:grid}@media (min-width:720px){.portal-footer-inner{grid-template-columns:1.2fr 2fr 1fr}}.portal-footer-brand-block{flex-direction:column;gap:8px;display:flex}.portal-footer-brand-name{letter-spacing:var(--track-head);color:var(--ink);font-size:14px;font-weight:600}.portal-footer-brand-legal{color:var(--ink-soft);font-size:12px}.portal-footer-locations{grid-template-columns:1fr;gap:16px;display:grid}@media (min-width:480px){.portal-footer-locations{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}}.portal-footer-location{color:var(--ink-soft);flex-direction:column;gap:2px;font-size:12px;display:flex}.portal-footer-location-city{color:var(--ink);letter-spacing:var(--track-eyebrow);text-transform:uppercase;margin-bottom:4px;font-size:11px;font-weight:600}.portal-footer-meta{color:var(--ink-soft);flex-direction:column;gap:6px;font-size:12px;display:flex}.portal-footer-meta a{color:var(--brand);text-decoration:none}.portal-footer-meta a:hover{text-decoration:underline}.portal-footer-copyright{border-top:1px solid var(--line);color:var(--ink-soft);letter-spacing:var(--track-eyebrow);text-transform:uppercase;text-align:center;margin-top:24px;padding-top:20px;font-size:11px}.portal-landing{flex-direction:column;gap:24px;max-width:640px;margin:0 auto;padding:80px 32px 64px;display:flex}.portal-landing-eyebrow{letter-spacing:var(--track-eyebrow);text-transform:uppercase;color:var(--brand);font-size:11px;font-weight:600}.portal-landing-title{letter-spacing:var(--track-head);color:var(--ink);margin:0;font-size:32px;font-weight:600;line-height:1.15}.portal-landing-lead{color:var(--ink-soft);margin:0;font-size:16px;line-height:1.6}.portal-landing-card{background:var(--brand-soft);border:1px solid var(--line);border-radius:var(--radius-card);flex-direction:column;gap:12px;padding:24px;display:flex}.portal-landing-card-title{color:var(--ink);margin:0;font-size:14px;font-weight:600}.portal-landing-card-body{color:var(--ink-soft);margin:0;font-size:14px;line-height:1.55}.portal-landing-cta{background:var(--brand);color:#fff;border-radius:var(--radius-stationery);letter-spacing:.01em;cursor:pointer;border:none;justify-content:center;align-self:flex-start;align-items:center;gap:8px;padding:12px 20px;font-size:14px;font-weight:600;text-decoration:none;transition:opacity .12s;display:inline-flex}.portal-landing-cta:hover{opacity:.92}.portal-auth{flex-direction:column;gap:20px;max-width:440px;margin:0 auto;padding:80px 32px 64px;display:flex}.portal-auth-eyebrow{letter-spacing:var(--track-eyebrow);text-transform:uppercase;color:var(--brand);font-size:11px;font-weight:600}.portal-auth-title{letter-spacing:var(--track-head);color:var(--ink);margin:0;font-size:26px;font-weight:600;line-height:1.2}.portal-auth-lead{color:var(--ink-soft);margin:0;font-size:15px;line-height:1.55}.portal-auth-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-card);flex-direction:column;gap:16px;padding:28px 24px;display:flex}.portal-form-field{flex-direction:column;gap:6px;display:flex}.portal-form-label{color:var(--ink);letter-spacing:.01em;font-size:13px;font-weight:600}.portal-form-hint{color:var(--ink-soft);font-size:12px;line-height:1.4}.portal-form-input{width:100%;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-stationery);padding:11px 14px;font-family:inherit;font-size:15px;transition:border-color .12s,box-shadow .12s}.portal-form-input:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft);outline:none}.portal-form-input:disabled{background:var(--paper-alt);cursor:not-allowed}.portal-form-otp{letter-spacing:.45em;text-align:center;width:100%;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-stationery);padding:14px 16px;font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:24px;font-weight:600;transition:border-color .12s,box-shadow .12s}.portal-form-otp:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft);outline:none}.portal-form-checkbox{color:var(--ink);cursor:pointer;align-items:flex-start;gap:10px;font-size:14px;line-height:1.45;display:flex}.portal-form-checkbox input[type=checkbox]{width:16px;height:16px;accent-color:var(--brand);cursor:pointer;flex:none;margin-top:2px}.portal-form-actions{flex-direction:column;gap:12px;margin-top:4px;display:flex}.portal-form-button{background:var(--brand);color:#fff;border-radius:var(--radius-stationery);letter-spacing:.01em;cursor:pointer;border:none;justify-content:center;align-items:center;gap:8px;padding:12px 20px;font-family:inherit;font-size:14px;font-weight:600;text-decoration:none;transition:opacity .12s;display:inline-flex}.portal-form-button:hover:not(:disabled){opacity:.92}.portal-form-button:disabled{opacity:.55;cursor:not-allowed}.portal-form-button-ghost{color:var(--ink);border:1px solid var(--line);background:0 0}.portal-form-button-ghost:hover:not(:disabled){background:var(--paper-alt);opacity:1}.portal-status{border-radius:var(--radius-stationery);border:1px solid var(--line);background:var(--paper-alt);color:var(--ink);padding:12px 14px;font-size:13px;line-height:1.5}.portal-status-success{background:var(--brand-soft);border-color:var(--brand);color:var(--ink)}.portal-status-warning{border-color:var(--signal);color:var(--ink);background:#e66a2c1a}.portal-status-error{color:var(--ink);background:#d93c3c1a;border-color:#c04040}.portal-auth-footer-link{text-align:center;color:var(--ink-soft);font-size:13px}.portal-auth-footer-link a{color:var(--brand);font-weight:600;text-decoration:none}.portal-auth-footer-link a:hover{text-decoration:underline}.portal-dashboard{flex-direction:column;gap:24px;max-width:880px;margin:0 auto;padding:64px 32px;display:flex}.portal-dashboard-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:24px;display:flex}.portal-dashboard-heading{flex-direction:column;gap:8px;display:flex}.portal-dashboard-eyebrow{letter-spacing:var(--track-eyebrow);text-transform:uppercase;color:var(--brand);font-size:11px;font-weight:600}.portal-dashboard-title{letter-spacing:var(--track-head);color:var(--ink);margin:0;font-size:28px;font-weight:600;line-height:1.2}.portal-dashboard-lead{color:var(--ink-soft);margin:0;font-size:15px;line-height:1.55}.portal-dashboard-placeholder{border:1px dashed var(--line);border-radius:var(--radius-card);background:var(--paper-alt);color:var(--ink-soft);padding:32px;font-size:14px;line-height:1.55}