/* Same shell for both verified roles. No external fonts. */
.web-app{background:#eef5f9;min-height:100vh}
.web-app .top{border-bottom:3px solid #1796d2}
.web-app .brand small{color:#30708e}
.web-guest .main{max-width:1100px;padding-top:38px;padding-bottom:28px}
.web-auth{display:grid;grid-template-columns:1fr 1fr;gap:30px;align-items:start}
.web-intro{margin:0;min-height:550px;padding:36px;background:linear-gradient(145deg,#d8f2ff 0%,#edf8fe 78%);border-color:#b6def1}
.web-intro h1{font-size:37px;margin:24px 0 20px;line-height:1.18;letter-spacing:-1px}
.web-intro>p{font-size:15px;line-height:1.7}
.web-features{display:grid;gap:20px;margin-top:34px}
.web-features>div{padding-left:15px;border-left:3px solid #37a4d9}
.web-features b,.web-features small{display:block}
.web-features b{font-size:14px;margin-bottom:4px}
.web-features small{font-size:13px}
.web-intro .web-motto{margin-top:38px;margin-bottom:0;font-size:13px;letter-spacing:1px;color:#317395}
.web-login{padding:14px 0}
.web-login>h2{font-size:26px;letter-spacing:-.5px}
.web-login .tabs{margin:23px 0 15px}
.web-login .tabs button{flex:1;min-height:44px;font-weight:bold}
.web-login .card{padding:25px;box-shadow:0 8px 28px #163e5b06}
.web-login .card>.btn{width:100%;margin:4px 0 8px}
.web-login .footerlinks{flex-wrap:wrap;gap:8px 18px}
.web-login .notice{font-size:12px;line-height:1.7}
.web-check{max-width:560px;margin:8vh auto;text-align:center}
.web-app .rowlist{flex-wrap:wrap;overflow-wrap:anywhere}
.web-app .field input,.web-app .field select{max-width:100%}
@media(min-width:1050px){.web-app:not(.web-guest) .main{max-width:980px}.web-app .shell{max-width:1180px}}
@media(max-width:760px){.web-guest .main{padding-top:20px}.web-auth{grid-template-columns:1fr;gap:8px}.web-intro{min-height:0;padding:24px}.web-intro h1{font-size:30px;margin:14px 0}.web-intro>p{margin:0}.web-features,.web-intro .web-motto{display:none}.web-login{padding-top:20px}.web-login>h2{font-size:23px}.web-login .card{padding:20px}}
@media(max-width:350px){.web-intro h1{font-size:26px}.web-login>h2{font-size:21px}}
/* v1.6 mobile forms, keyboard spacing, and safer long-content layout. */
.web-app input,.web-app select,.web-app textarea{font-size:16px}
.web-app .main{padding-bottom:calc(112px + env(safe-area-inset-bottom,0px))}
.web-guest .main{padding-bottom:calc(28px + env(safe-area-inset-bottom,0px))}
.web-app .card,.web-app .hero,.web-app .rowlist .body{min-width:0;overflow-wrap:anywhere}
.web-app .actions{flex-wrap:wrap}.web-app .actions .btn{flex:1 1 140px}
.web-app .modalbox{max-height:85vh;max-height:85dvh;overscroll-behavior:contain}
.web-app .password-toggle{min-height:44px;color:#176087;background:transparent;padding:5px 0;margin:-5px 0 10px;font-size:13px;font-weight:bold}
.web-app input:focus,.web-app textarea:focus{scroll-margin-top:100px;scroll-margin-bottom:140px}
.web-app .btn,.web-app .nav button{min-height:44px}
@media(max-width:480px){.web-app .heading h1{font-size:22px}.web-app .main{padding-left:14px;padding-right:14px}.web-app .card{padding:17px}.web-app .checkpoint{grid-template-columns:60px minmax(0,1fr);gap:8px}.web-app .program-track{grid-template-columns:1fr}.web-app .program-track>div{padding:12px}.web-app .program-track b,.web-app .program-track small{margin-top:4px}.web-app .cert{padding:18px}.web-app .cert .name{font-size:21px}.web-app .modalbg{padding:10px}.web-app .modalbox{padding:20px}}
