html,body{min-height:100%}
body{min-height:100vh;min-height:100dvh;margin:0;display:flex;flex-direction:column}
body>header,body>footer{flex:0 0 auto}
body>main{flex:1 0 auto;width:100%;display:flex;flex-direction:column;min-height:0}
.opa-app-page{flex:1 0 auto;width:100%;box-sizing:border-box;display:flex;align-items:flex-start;justify-content:center;padding:clamp(14px,2.8vh,42px) clamp(12px,2.2vw,24px) clamp(16px,3vh,46px)}
.opa-app-shell--narrow{width:min(calc(100% - 12px),520px);margin:0 auto}
.opa-app-title{text-align:center;margin:0 0 clamp(3px,.6vh,8px);color:#202124;font-size:clamp(1.65rem,2.3vw,2.25rem);line-height:1.15}
.opa-app-lead{text-align:center;margin:0 auto clamp(14px,2.1vh,26px);color:#5f6368;line-height:1.45}
.opa-card{background:#fff;border:1px solid #dadce0;border-radius:clamp(11px,1.2vw,16px);padding:clamp(17px,2.5vh,28px);box-sizing:border-box;box-shadow:0 2px 10px rgba(60,64,67,.08)}
.opa-form{display:grid;gap:clamp(12px,1.8vh,20px)}
.opa-form label{display:grid;gap:clamp(4px,.7vh,7px);color:#202124;font-weight:600}
.opa-input,.opa-select,.opa-textarea{width:100%;box-sizing:border-box;min-height:clamp(40px,5.2vh,46px);border:1px solid #bdc1c6;border-radius:8px;background:#fff;padding:8px 12px;font:inherit;color:#202124}
.opa-input:focus,.opa-select:focus,.opa-textarea:focus{outline:2px solid rgba(0,124,190,.18);border-color:#087fbd}
.opa-button{display:inline-flex;align-items:center;justify-content:center;min-height:clamp(40px,5vh,46px);border:0;border-radius:24px;padding:8px 26px;background:#087fbd;color:#fff;font:inherit;font-weight:700;cursor:pointer;text-decoration:none}
.opa-form-actions{display:flex;justify-content:center}.opa-login-help{text-align:center;margin:clamp(12px,1.8vh,20px) 0 0;color:#5f6368}.opa-login-help a{color:#087fbd;font-weight:600}
.opa-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(14px,2vw,20px)}.opa-grid .opa-full{grid-column:1/-1}
body>footer{margin-top:auto!important;box-sizing:border-box;padding-top:clamp(10px,1.5vh,18px)!important;padding-bottom:clamp(10px,1.5vh,18px)!important}
body>footer img{width:auto;max-height:clamp(48px,7vh,70px)!important}
body>footer p,body>footer h1,body>footer h2,body>footer h3{margin-top:clamp(3px,.5vh,7px)!important;margin-bottom:clamp(3px,.5vh,7px)!important}
@media(max-height:760px) and (min-width:721px){.opa-app-page{padding-top:12px;padding-bottom:14px}.opa-app-lead{margin-bottom:12px}.opa-card{padding-top:16px;padding-bottom:16px}.opa-form{gap:10px}.opa-login-help{margin-top:10px}body>footer{padding-top:8px!important;padding-bottom:8px!important}body>footer img{max-height:46px!important}}
@media(max-width:720px){.opa-app-page{padding:20px 10px 28px}.opa-card{padding:18px 15px}.opa-grid{grid-template-columns:1fr}.opa-grid .opa-full{grid-column:auto}}
@media(max-height:560px){.opa-app-page{padding-top:10px;padding-bottom:12px}}

/* ===== OPA V4 production registration ===== */
.opa-app-shell{
    width:min(calc(100% - 64px),1120px);
    margin:0 auto;
}
.opa-registration-page{align-items:flex-start}
.opa-registration-form{display:grid;gap:clamp(14px,2.2vh,22px)}
.opa-form-section{padding:clamp(18px,2.4vw,28px)}
.opa-section-heading{display:flex;align-items:flex-start;gap:14px;margin-bottom:clamp(16px,2vh,22px);padding-bottom:14px;border-bottom:1px solid #e8eaed}
.opa-section-heading h2{margin:0 0 4px;font-size:clamp(1.15rem,1.8vw,1.45rem);color:#202124}
.opa-section-heading p{margin:0;color:#5f6368;line-height:1.45}
.opa-section-number{display:inline-flex;align-items:center;justify-content:center;flex:0 0 34px;width:34px;height:34px;border-radius:50%;background:#087fbd;color:#fff;font-weight:700}
.opa-required{color:#b3261e}
.opa-form-section small{font-weight:400;color:#6b7280;line-height:1.35}
.opa-check-list{display:grid;gap:12px;margin-top:20px;padding-top:18px;border-top:1px solid #e8eaed}
.opa-check-list label{display:flex;align-items:flex-start;gap:9px;font-weight:500;color:#303134}
.opa-check-list input{margin-top:3px}
.opa-registration-submit{text-align:center;padding:clamp(6px,1vh,12px) 0 8px}
.opa-registration-submit p{color:#5f6368}
.opa-registration-submit a{color:#087fbd;font-weight:600}
.opa-button--large{padding-left:32px;padding-right:32px}
.opa-message--error{border-color:#f0b7b3;background:#fce8e6;color:#7a1c17}
.opa-message--error ul{margin-bottom:0}
.opa-registration-result{max-width:680px;margin:0 auto;text-align:center}
.opa-registration-result h2{margin-top:8px}
.opa-success-icon{display:inline-flex;width:54px;height:54px;border-radius:50%;align-items:center;justify-content:center;background:#e6f4ea;color:#137333;font-size:30px;font-weight:700}
@media(max-width:720px){.opa-section-heading{gap:10px}.opa-section-number{flex-basis:30px;width:30px;height:30px}.opa-form-section{padding:17px 14px}}

@media(max-width:720px){
    .opa-app-shell{
        width:calc(100% - 24px);
    }
}
