.public-shell{--tenant-primary:#60448c;--tenant-primary-deep:#463365;--tenant-primary-soft:#eee9f3;--tenant-primary-contrast:#fff;--paper:#fffefa;--text:#302d3a;--muted:#706c79;--line:#ddd8db;--danger:#a82d3d;color:var(--text);min-height:100vh;display:flex;flex-direction:column;background:#f8f7f2;font-family:"Segoe UI Variable","Segoe UI",Arial,sans-serif}
.portal-hero.portal-signin{max-width:1120px;margin:25px auto 45px;grid-template-columns:minmax(0,1fr) minmax(350px,1fr);gap:65px}.portal-signin:before{display:none}.portal-signin .portal-login{border-top:5px solid #60448c;box-shadow:0 18px 50px #46336513;padding-top:30px}.signin-welcome{position:relative;min-width:0}.signin-welcome h1{font-size:clamp(40px,4.7vw,65px);line-height:1.12;letter-spacing:-.045em;margin:20px 0}.signin-welcome>p{max-width:440px;font-size:19px;line-height:1.65;color:#565263}.signin-brand-star{color:#60448c;font-size:105px;line-height:1.1;margin:22px 0 15px}.signin-welcome .signin-note{font-size:14px}.registration-shell{max-width:900px;margin:8px auto 45px;min-width:0}.registration-intro h1{font-size:clamp(30px,4vw,44px);letter-spacing:-.035em;line-height:1.15;margin:13px 0}.registration-intro>p,.registration-card>p{color:#565263;font-size:16px;line-height:1.6}.registration-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding:0;margin:28px 0 22px;list-style:none}.registration-steps li{display:flex;align-items:center;gap:9px;min-width:0;font-size:14px;color:#706c79}.registration-steps li span{display:grid;place-items:center;border:1px solid #cfc8d7;border-radius:50%;width:32px;height:32px;flex:none;font-weight:700}.registration-steps li[aria-current=step]{color:#463365;font-weight:700}.registration-steps li[aria-current=step] span{background:#60448c;color:#fff;border-color:#60448c}.registration-recipient{font-size:14px;overflow-wrap:anywhere}.registration-card{background:#fffefa;border:1px solid #ddd8e0;border-radius:16px;padding:clamp(22px,4vw,36px);margin:20px 0;box-shadow:0 8px 24px #46336508;min-width:0}.registration-card h2{font-size:25px;line-height:1.3;letter-spacing:-.025em;margin:0 0 15px}.registration-card>.public-field{margin:18px 0}.registration-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:19px 24px;margin:23px 0}.registration-fields label{font-size:14px;line-height:1.5}.registration-card .public-checkbox{align-items:flex-start;line-height:1.65;margin:22px 0}.registration-card .public-checkbox input{margin-top:4px}.registration-card .public-primary{min-height:50px;margin-top:8px}.registration-code{max-width:360px;margin:25px 0!important}.registration-code input{letter-spacing:.18em;font-size:21px}.registration-optional,.registration-contract{border:1px solid #ddd8e0;border-radius:9px;padding:16px;margin:23px 0}.registration-shell summary{cursor:pointer;color:#463365;font-size:14px;font-weight:650;line-height:1.5;min-height:24px}.registration-optional .registration-fields{margin-bottom:0}.registration-party{display:grid;gap:8px;border-left:3px solid #60448c;padding:6px 0 6px 18px;margin:22px 0;font-size:15px;overflow-wrap:anywhere}.registration-party span{white-space:pre-line;line-height:1.5}.registration-actions{display:flex;gap:12px;flex-wrap:wrap}.registration-contract .legal-copy{white-space:pre-wrap;font-size:14px;line-height:1.7;margin-top:20px;overflow-wrap:anywhere;max-height:600px;overflow:auto}.registration-text-button{border:0;background:none;color:#60448c;padding:12px 0;text-decoration:underline;text-underline-offset:3px;cursor:pointer;font-size:14px;min-height:44px}.registration-status,.registration-alert{padding:16px 18px;border-radius:9px;font-size:14px;line-height:1.65;margin:18px 0;overflow-wrap:anywhere}.registration-status{background:#e9f5ed;color:#17623e;border:1px solid #bedfc8}.registration-status p{margin:10px 0 0}.registration-alert{background:#fff1f1;color:#8e2433;border:1px solid #e2b4b9}.registration-note{font-size:13px!important}.registration-shell :is(input,textarea,button,a,summary):focus-visible,.portal-signin :is(input,button,a,select):focus-visible{outline:3px solid #60448c;outline-offset:3px}.registration-card .public-field input,.registration-card .public-field textarea{font-size:16px}.registration-card textarea{min-height:100px}.registration-shell form{min-width:0}
@media(max-width:800px){.portal-hero.portal-signin{gap:28px;margin:10px auto 25px}.portal-signin .signin-welcome{order:-2;max-width:520px;width:100%}.signin-welcome h1{font-size:38px;margin:13px 0}.signin-welcome h1 br{display:none}.signin-welcome>p{font-size:16px;line-height:1.6}.signin-brand-star,.signin-note{display:none}.registration-steps{gap:8px}.registration-steps li{font-size:12px;gap:6px}.registration-steps li span{width:28px;height:28px}.registration-fields{gap:17px}}
@media(max-width:560px){.registration-fields{grid-template-columns:1fr}.registration-card{padding:22px 18px;border-radius:12px}.registration-steps li{flex-direction:column;align-items:flex-start;line-height:1.5}.registration-actions{flex-direction:column}.registration-card .public-primary{width:100%;padding-left:15px;padding-right:15px}.registration-intro h1{font-size:31px}.signin-welcome h1{font-size:34px}.portal-signin .portal-login{width:100%}}
.public-header,.public-footer{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:20px clamp(20px,4.2vw,64px);border-bottom:1px solid #e6e1e5;background:#fffefaed}
.public-brand{display:inline-flex;align-items:flex-start;font-size:36px;line-height:1;font-weight:750;letter-spacing:-.065em;color:#242335;white-space:nowrap}.public-brand span{font-size:24px;color:#60448c;margin:0 0 0 5px;letter-spacing:0}
.public-header nav,.public-footer nav{display:flex;align-items:center;gap:32px;font-size:15px}.public-header nav>a:hover,.public-footer a:hover{color:#60448c;text-decoration:underline;text-underline-offset:4px}
.public-main{width:min(100%,1536px);margin:0 auto;padding:36px clamp(20px,4.2vw,64px);flex:1;min-width:0}.public-main>h1{font-size:36px;margin-top:20px}.public-main>h2{font-size:23px}
.public-primary,.public-outline{display:inline-flex;justify-content:center;align-items:center;gap:14px;padding:12px 23px;min-height:46px;border-radius:8px;line-height:1.3;font-size:15px;font-weight:650;text-align:center;cursor:pointer}
.public-primary{background:#60448c;color:#fff;border:1px solid #60448c}.public-primary:hover{background:#463365}.public-outline{background:transparent;border:1px solid #60448c;color:#60448c}.public-outline:hover{background:#eee9f3;text-decoration:none!important}
.public-skip{position:fixed;top:-100px;left:20px;background:#fff;color:#463365;padding:12px;z-index:100}.public-skip:focus{top:12px}
.portal-hero{display:grid;grid-template-columns:minmax(0,1.62fr) minmax(350px,1fr);gap:clamp(34px,5.7vw,86px);align-items:center;position:relative;padding-bottom:25px;isolation:isolate}.portal-hero:before{content:"";position:absolute;inset:0 -64px 0 28%;background:url('/portal-tanks.svg') center/cover no-repeat;opacity:.32;z-index:-1;pointer-events:none}
.portal-overview{min-width:0;padding-top:7px}.portal-eyebrow{color:#60448c;font-size:13px;font-weight:700;letter-spacing:.1em;line-height:1.6}.portal-overview h1{font-size:clamp(41px,4.55vw,70px);line-height:1.09;letter-spacing:-.045em;color:#242335;margin:19px 0 20px;font-weight:750}.portal-description{font-size:clamp(17px,1.65vw,25px);line-height:1.45;max-width:760px;color:#565263;margin-bottom:30px}.portal-preview-label{color:#656070;font-size:14px;margin-bottom:10px}
.portal-preview{border:1px solid #ddd8e0;border-radius:14px;background:#fffefaf5;box-shadow:0 10px 26px #4633650c;overflow:hidden}.portal-preview>header{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:17px 24px;border-bottom:1px solid #e7e1e9}.portal-preview>header strong{font-size:20px;letter-spacing:-.02em}.portal-preview>header span{font-size:12px;color:#656070}.portal-preview-content{padding:19px 24px;display:grid;grid-template-columns:minmax(260px,1fr) minmax(0,1.1fr);gap:24px;align-items:center}.portal-preview-content ul{padding:0;margin:0;list-style:none}.portal-preview-content li{display:flex;align-items:center;gap:13px;font-size:13px;padding:17px 0;border-bottom:1px solid #eee9f0}.portal-preview-content li:last-child{border-bottom:0}.portal-preview-content li strong{font-weight:550;flex:1}.portal-vessel{font-size:22px;text-align:center;width:38px;height:34px;border:1.5px solid #4d4762;border-top:0;border-radius:0 0 8px 8px;flex:none;line-height:1.2;color:#4d4762;background:#f0ecf2}.portal-state{white-space:nowrap;font-size:12px}.portal-state.is-ok{color:#236a4f}.portal-state.is-warn{color:#855204}.portal-preview svg{width:100%;height:auto;display:block}.portal-preview>footer{display:flex;align-items:center;gap:15px;background:#eee9f3;color:#60448c;padding:15px 24px;font-size:15px}
.portal-login{background:#fffefa;border:1px solid #ddd8e0;border-radius:17px;padding:30px clamp(22px,3vw,46px);box-shadow:0 9px 32px #302d3a0c;min-width:0;scroll-margin-top:20px}.portal-login-icon{width:48px;height:48px;color:#60448c;display:block;margin-bottom:15px}.portal-login h2{font-size:clamp(23px,2.05vw,31px);letter-spacing:-.035em;line-height:1.2;margin:0 0 8px}.portal-login>p{font-size:16px;line-height:1.5;color:#656070;margin-bottom:24px}.portal-login form{display:grid;gap:17px}.public-field{display:grid;gap:8px;min-width:0}.public-field label{font-size:14px}.public-field input,.public-field textarea,.portal-login select{width:100%;padding:12px 15px;min-height:46px;border:1px solid #cfc8d7;border-radius:8px;background:#fff;color:#302d3a;line-height:1.4}.public-field textarea{resize:vertical;min-height:150px}.public-field input:focus,.public-field textarea:focus{outline:2px solid #906fc2;outline-offset:1px}.public-field input::placeholder{color:#7b7683}.public-checkbox{display:flex;align-items:center;gap:10px;font-size:14px}.public-checkbox input{width:19px;height:19px;accent-color:#60448c;flex:none;margin:0}.portal-login form>.public-primary{width:100%;font-size:16px;margin-top:1px;min-height:50px}.portal-recovery{display:flex;flex-wrap:wrap;justify-content:space-between;gap:14px;margin:20px 0 28px;font-size:13px}.portal-recovery a,.public-form-note a{color:#60448c;text-decoration:underline;text-underline-offset:3px}.portal-invitation{border-top:1px solid #e2dde6;padding-top:21px}.portal-invitation h3{font-size:17px;font-weight:600;margin-bottom:7px;letter-spacing:-.02em}.portal-invitation p{font-size:14px;color:#656070;line-height:1.5;margin-bottom:15px}.portal-invitation .public-outline{width:100%;min-height:43px;font-size:14px}.portal-login .text-danger,.portal-login .validation-message{color:#a82d3d;font-size:13px;line-height:1.5}.portal-login .validation-summary-errors ul{margin:0;padding-left:20px}
.portal-features{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #e4dfe6;padding:26px 0 8px;margin-top:9px}.portal-features>span{display:flex;align-items:center;justify-content:center;gap:18px;color:#60448c;font-size:27px;line-height:1.5;border-right:1px solid #e4dfe6}.portal-features>span:last-child{border:0}.portal-features strong{font-size:17px;font-weight:500;letter-spacing:-.02em;color:#302d3a}.public-footer{border-bottom:0;border-top:1px solid #e6e1e5;padding-top:20px;padding-bottom:20px}.public-footer .public-brand{font-size:21px}.public-footer .public-brand span{font-size:15px}.public-footer nav{font-size:12px}
.public-contact-page{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1fr);gap:70px;max-width:1160px;margin:20px auto 45px;align-items:start}.public-contact-page h1{font-size:clamp(32px,3.4vw,50px);line-height:1.12;margin:14px 0 22px}.public-contact-page p{font-size:16px;line-height:1.6;color:#656070}.public-email{display:inline-block;margin:10px 0 24px;font-size:clamp(20px,2.3vw,28px);color:#60448c;overflow-wrap:anywhere}.public-contact-form h2{margin-bottom:22px}.public-contact-form .public-form-note{font-size:12px;margin:0;line-height:1.6}.public-honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.public-inquiry{margin:18px 0}.public-inquiry-message{white-space:pre-wrap;overflow-wrap:anywhere}.public-main .legal-document{max-width:1040px;margin:20px auto}.public-main .legal-copy{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.65;font-size:15px}.public-main .form-error{color:#a82d3d}.public-main .profile-success{color:#236a4f}.public-main .public-info{max-width:1040px;margin:25px auto}.public-main .public-info h1{font-size:38px}.public-main .public-info h2{font-size:23px;margin-top:28px}.public-main .public-info p{font-size:15px;line-height:1.65}
/* Other public Identity pages retain the existing handlers and share this shell. */
.public-main>.row,.public-main>.account-panel{max-width:650px}.public-main .form-floating{display:flex;flex-direction:column;gap:8px;margin:20px 0}.public-main .form-floating>label{order:-1;font-size:14px}.public-main .form-control{width:100%;min-height:47px;padding:12px 14px;border:1px solid #cfc8d7;border-radius:8px;background:#fff}.public-main .btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:12px 22px;border-radius:8px;border:1px solid #60448c;color:#60448c;background:#fff}.public-main .btn-primary{color:#fff;background:#60448c}.public-main .text-danger{color:#a82d3d}
@media(min-width:1600px){.public-main{padding-top:55px;padding-bottom:45px}.portal-hero{padding-bottom:36px}}
@media(max-width:1100px){.portal-hero{grid-template-columns:minmax(0,1.2fr) minmax(330px,1fr);gap:32px}.portal-preview-content{grid-template-columns:1fr;gap:10px}.portal-preview-content svg{max-height:100px}.portal-preview-content li{padding:10px 0}.portal-overview h1{font-size:clamp(39px,4.5vw,54px)}.public-contact-page{gap:36px}}
@media(max-width:800px){.public-header{padding-top:18px;padding-bottom:18px}.public-brand{font-size:29px}.public-brand span{font-size:19px}.public-header nav{gap:18px}.public-header nav>a:first-child{display:none}.public-main{padding-top:25px}.portal-hero{display:flex;flex-direction:column;gap:34px}.portal-login{order:-1;width:100%;max-width:520px}.portal-overview{width:100%;max-width:680px}.portal-overview h1{font-size:clamp(37px,6.5vw,53px)}.portal-description{font-size:19px}.portal-preview-content{grid-template-columns:minmax(230px,1fr) minmax(0,1fr)}.portal-preview-content svg{max-height:none}.portal-hero:before{inset:25% -20px 0 0;opacity:.22}.portal-features{gap:17px;padding-top:22px}.portal-features>span{flex-direction:column;gap:3px;font-size:23px}.portal-features strong{font-size:13px;text-align:center}.public-contact-page{grid-template-columns:1fr;gap:22px;margin-top:0}.public-contact-page>div{max-width:600px}.public-contact-form{max-width:600px;order:0}.public-footer nav{gap:19px}}
@media(max-width:480px){.public-header nav{gap:12px}.public-header nav>a:nth-child(2){display:none}.public-header .public-outline{font-size:12px;padding:9px 13px;min-height:39px}.public-header,.public-footer{gap:15px}.public-brand{font-size:27px}.public-main{padding:20px 17px 26px}.portal-login{padding:25px 21px;border-radius:13px}.portal-login h2{font-size:25px}.portal-login>p{font-size:15px}.portal-recovery{gap:13px;font-size:12px}.portal-preview>header{padding:16px 17px}.portal-preview-content{grid-template-columns:1fr;padding:12px 17px}.portal-preview-content svg{max-height:120px}.portal-preview>footer{padding:12px 17px;font-size:13px}.portal-description{font-size:17px}.portal-eyebrow{font-size:11px}.portal-features{gap:10px}.portal-features>span{padding:0 6px}.portal-features strong{font-size:12px;line-height:1.5}.public-footer{align-items:flex-start;flex-direction:column;padding:20px}.public-footer nav{flex-wrap:wrap}.public-contact-page h1{font-size:34px}.public-email{font-size:22px}}
@media(prefers-reduced-motion:reduce){.public-shell *{scroll-behavior:auto}}

/* Registration keeps useful links visible even where the landing header collapses. */
.public-header.registration-header nav>a{display:inline-flex}.portal-signin .public-field input,.portal-signin select{font-size:16px}
@media(max-width:560px){.registration-header{flex-direction:column;align-items:flex-start;gap:14px}.registration-header nav{width:100%;flex-wrap:wrap;justify-content:space-between;gap:12px}.registration-header .public-outline{max-width:100%;font-size:12px;padding:9px 12px}}
