:root{--ink:#17332e;--muted:#667b76;--green:#176b58;--green-dark:#103f35;--mint:#e7f2ed;--cream:#f3f5f1;--white:#fff;--line:#d9e1dc;--shadow:0 18px 55px rgba(21,56,48,.11)}
*{box-sizing:border-box}
body{margin:0;color:var(--ink);font:15px/1.55 "DM Sans",sans-serif}
body.portal-guest{min-height:100vh;display:flex;flex-direction:column;background:var(--cream)}
a{color:var(--green);text-decoration:none}
.topbar{min-height:74px;height:auto;position:relative;z-index:30;flex:none;display:flex;align-items:center;justify-content:space-between;gap:34px;padding:10px max(24px,calc((100% - 1180px)/2));background:rgba(16,63,53,.985);border-bottom:1px solid #ffffff20;color:#fff}
.brand{min-width:max-content;display:flex;align-items:center;gap:12px;color:#fff;font-weight:700}.brand-logo{display:block;flex:0 0 50px;width:50px;height:50px;object-fit:contain}.brand span{display:grid;line-height:1.12}.brand strong{font:600 .95rem Poppins,sans-serif}.brand small{color:#bcd4cd;font:600 .68rem Inter,sans-serif;letter-spacing:.08em;text-transform:uppercase}.site-exit{display:inline-flex;align-items:center;gap:.6rem;flex:none;padding:.65rem .85rem;border:1px solid #ffffff35;border-radius:8px;color:#fff;font:700 .78rem Inter,sans-serif;white-space:nowrap;transition:background-color .2s ease,border-color .2s ease,transform .2s ease}.site-exit:hover,.site-exit:focus-visible{background:#e76f51;border-color:#e76f51;color:#fff;transform:translateY(-2px);outline:none}.site-exit i{font-size:.72rem}
.auth-page{flex:1;display:grid;align-content:start;justify-items:center;padding:64px 22px 72px;background:var(--cream)}
.auth-shell{width:min(1080px,100%);min-height:610px;margin:auto;display:grid;grid-template-columns:1.1fr .9fr;overflow:hidden;background:var(--white);box-shadow:var(--shadow)}
.auth-intro{position:relative;overflow:hidden;padding:72px;background:linear-gradient(145deg,#103f35,#176b58);color:white}.auth-intro:after{content:"";position:absolute;right:-200px;bottom:-220px;width:450px;height:450px;border:1px solid #ffffff1f;border-radius:50%;box-shadow:0 0 0 70px #ffffff08,0 0 0 140px #ffffff05}.portal-home{position:relative;z-index:1;color:#f0c66f;font-size:.74rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase}.auth-intro h1{position:relative;z-index:1;max-width:560px;margin:30px 0 20px;font:600 3.5rem/1.05 "Newsreader",serif;letter-spacing:-.02em}.auth-intro p{position:relative;z-index:1;max-width:480px;color:#d5e7e1;font-size:1.05rem}.login-logo{position:absolute;bottom:55px;left:72px;z-index:1;display:grid;width:92px;height:92px;place-items:center;border:1px solid #ffffff66;border-radius:50%;background:var(--mint);color:var(--green);box-shadow:0 8px 24px rgba(7,35,28,.22)}.login-logo i{font-size:2.15rem}
.auth-card{align-self:center;padding:70px 58px}.auth-card h2{margin:0;font:600 2rem/1.2 "Newsreader",serif}.muted{margin:.45rem 0 0;color:var(--muted)}.stack{display:grid;gap:18px;margin-top:30px}label{display:grid;gap:7px;font-weight:600;font-size:.9rem}input{width:100%;padding:12px 13px;border:1px solid #cad7d1;border-radius:9px;background:white;color:var(--ink);font:16px "DM Sans",sans-serif;outline:none}input:focus{border-color:var(--green);box-shadow:0 0 0 3px #176b581c}.button{display:inline-flex;align-items:center;justify-content:center;padding:11px 18px;border:1px solid transparent;border-radius:9px;font:600 .95rem "DM Sans";cursor:pointer}.button.primary{background:var(--green);color:white}.button.primary:hover{background:#125745}.button:disabled{cursor:wait;opacity:.6}.button.secondary{width:100%;border-color:var(--line);background:white;color:var(--ink)}.divider{display:flex;align-items:center;gap:12px;margin:27px 0;color:var(--muted)}.divider:before,.divider:after{content:"";height:1px;flex:1;background:var(--line)}.alert{margin:20px 0 0;padding:13px 16px;border-radius:9px}.alert.error{background:#f8e6e3;color:#842f29}.main-site-link{display:block;margin-top:1.35rem;text-align:center;font-size:.78rem;font-weight:600}
.site-footer{flex:none;padding:2rem 0 1.2rem;background:#092d26;color:#c6d9d4;text-align:left}.footer-container{width:min(calc(100% - 44px),1180px);margin-inline:auto}.footer-main.footer-simple{display:flex;justify-content:center;align-items:center}.site-footer .social{display:flex;justify-content:center;gap:.5rem}.site-footer .social a{display:grid;place-items:center;width:40px;height:40px;border:1px solid #ffffff35;border-radius:50%;color:#fff;transition:transform .2s ease-out,background-color .2s ease-out}.site-footer .social a:hover,.site-footer .social a:focus-visible{background:#ffffff18;color:#fff;transform:translateY(-3px);outline:2px solid #ffffff55;outline-offset:2px}.site-footer .footnote{display:flex;justify-content:center;margin-top:1.5rem;padding-top:1rem;border-top:1px solid #ffffff20;text-align:center;font-size:.78rem}
@media(max-width:850px){.topbar{padding:10px 16px;gap:8px}.brand{min-width:0;gap:9px}.brand-logo{flex-basis:42px;width:42px;height:42px}.brand strong{font-size:.86rem}.brand small{font-size:.6rem;letter-spacing:.065em}.guest-topbar .site-exit{width:auto;padding:.58rem .7rem}.auth-page{padding:28px 18px 40px}.auth-shell{min-height:0;grid-template-columns:1fr}.auth-intro{display:none}.auth-card{padding:42px 30px}}
@media(max-width:560px){.footer-container{width:min(calc(100% - 28px),1180px)}.auth-page{padding:18px 12px}.auth-card{padding:35px 25px}}
@media(prefers-reduced-motion:reduce){.site-footer .social a{transition:none!important}}
.registration-card{align-self:center}.registration-step{margin:0 0 8px;color:var(--green);font:700 .7rem Inter,sans-serif;letter-spacing:.12em;text-transform:uppercase}.registration-form{margin-top:24px}.registration-form .primary{width:100%}.honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}.auth-back-link{display:block;margin-top:22px;text-align:center;font-size:.82rem;font-weight:600}.alert.success{background:#dff2e9;color:#175443}.registration-card>.alert{margin:0 0 22px}.otp-input{text-align:center;font-size:1.7rem;letter-spacing:.35em}.form-hint{margin:-5px 0 0;color:var(--muted);font-size:.76rem}.dev-otp{display:grid;gap:3px;margin-top:20px;padding:13px 16px;border-radius:9px;background:#fff5d8;color:#6f5317}.dev-otp strong{font-size:1.35rem;letter-spacing:.16em}.dev-otp small{font-size:.72rem}.restart-form{margin:0}.text-button{width:100%;border:0;background:transparent;color:var(--green);cursor:pointer}
@media(max-width:850px){.registration-shell{min-height:0}.registration-card{align-self:stretch}}
.account-type-field{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0;padding:0;border:0}.account-type-field legend{grid-column:1/-1;margin-bottom:7px;font-weight:600;font-size:.9rem}.account-type-option{position:relative;display:block;cursor:pointer}.account-type-option input{position:absolute;opacity:0;pointer-events:none}.account-type-option span{display:grid;gap:3px;height:100%;padding:13px;border:1px solid #cad7d1;border-radius:9px;background:#fff}.account-type-option strong{font-size:.88rem}.account-type-option small{color:var(--muted);font-size:.7rem;line-height:1.35}.account-type-option input:checked+span{border-color:var(--green);background:var(--mint);box-shadow:0 0 0 2px #176b5818}.account-type-option input:focus-visible+span{outline:3px solid #176b5830;outline-offset:2px}@media(max-width:560px){.account-type-field{grid-template-columns:1fr}}
select{width:100%;padding:12px 13px;border:1px solid #cad7d1;border-radius:9px;background:#fff;color:var(--ink);font:16px "DM Sans",sans-serif;outline:none}select:focus{border-color:var(--green);box-shadow:0 0 0 3px #176b581c}
.password-requirements{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem 1rem;margin:-2px 0 0;padding:0;list-style:none;color:#a63e35;font-size:.78rem}.password-requirements li{display:flex;align-items:center;gap:.5rem;transition:color .15s ease}.password-requirements li::before{content:"×";display:grid;flex:0 0 20px;width:20px;height:20px;place-items:center;border:1.5px solid #c97870;border-radius:50%;background:#fff5f4;color:#a63e35;font-size:.76rem;font-weight:800;line-height:1;transition:background .15s ease,border-color .15s ease,color .15s ease}.password-requirements li.met{color:#12654f;font-weight:700}.password-requirements li.met::before{content:"✓";border-color:#25856f;background:#25856f;color:#fff}.password-match{min-height:1.15em;margin:-8px 0 0;font-size:.76rem;font-weight:600}.password-match.valid{color:#12654f}.password-match.invalid{color:#a63e35}@media(max-width:560px){.password-requirements{grid-template-columns:1fr}}
.forgot-password-link{display:block;margin-top:10px;font-size:.84rem;font-weight:600}
