:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#102a56;background:#f8faf8;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px}a{color:#2f7654;text-underline-offset:3px}a:hover{color:#245c42}button,input{font:inherit}.auth-shell{display:grid;grid-template-columns:minmax(360px,46%) minmax(420px,54%);min-height:100vh}.welcome-panel{position:relative;display:flex;flex-direction:column;overflow:hidden;min-height:700px;padding:38px clamp(32px,5vw,82px);background:#e4f1ea}.brand{display:inline-flex;align-items:center;gap:10px;color:#102a56;font-size:1.12rem;font-weight:800;letter-spacing:-.035em;text-decoration:none}.brand-mark{display:grid;place-items:center;width:35px;height:35px;border-radius:11px;background:#e86b5b;color:#fff;font-size:1.5rem;line-height:1}.welcome-copy{position:relative;z-index:2;margin:auto 0 0;padding-bottom:250px}.eyebrow,.section-kicker{text-transform:uppercase;letter-spacing:.15em;font-size:.7rem;font-weight:800;color:#3f8f68}.welcome-copy h1{max-width:520px;margin:18px 0;font-size:clamp(2.6rem,4.5vw,4.7rem);letter-spacing:-.06em;line-height:1.08}.welcome-copy p{margin:0;font-size:1.25rem;color:#45606a}.welcome-footer{position:relative;z-index:2;margin:0;font-size:.88rem;color:#5c7775}.school-scene{position:absolute;left:0;right:0;bottom:72px;height:260px}.scene-hill{position:absolute;bottom:-88px;left:-8%;width:120%;height:155px;background:#bbdbc8;border-radius:50% 50% 0 0}.scene-sun{position:absolute;top:2px;right:19%;width:65px;height:65px;border-radius:50%;background:#f5dfa8}.scene-cloud{position:absolute;width:100px;height:28px;background:#fff;border-radius:30px;opacity:.9}.scene-cloud:before,.scene-cloud:after{content:"";position:absolute;bottom:8px;border-radius:50%;background:#fff}.scene-cloud:before{left:18px;width:44px;height:44px}.scene-cloud:after{left:47px;width:37px;height:37px}.cloud-one{top:50px;left:11%}.cloud-two{top:88px;right:7%;transform:scale(.7)}.scene-school{position:absolute;z-index:2;bottom:10px;left:50%;width:190px;height:165px;transform:translateX(-50%)}.school-roof{position:absolute;top:0;left:0;width:0;height:0;border-left:95px solid transparent;border-right:95px solid transparent;border-bottom:55px solid #e86b5b}.school-body{position:absolute;top:50px;left:13px;display:flex;justify-content:space-around;width:164px;height:115px;padding:26px 15px;background:#fffaf0;border-radius:3px 3px 10px 10px;box-shadow:0 8px 20px #102a5614}.school-body span{width:25px;height:30px;border:5px solid #8bb6b0;background:#c8e3e2;border-radius:5px}.school-door{position:absolute;bottom:0;left:67px;width:35px;height:53px;background:#3f8f68;border-radius:14px 14px 0 0}.scene-tree{position:absolute;z-index:2;bottom:5px;width:17px;height:70px;background:#94725d;border-radius:6px}.scene-tree:before{content:"";position:absolute;bottom:30px;left:50%;width:86px;height:96px;transform:translateX(-50%);border-radius:50%;background:#74ad83}.tree-one{left:14%}.tree-two{right:13%;transform:scale(.75);transform-origin:bottom}.auth-main{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:36px 24px;background:#f8faf8}.auth-card{width:min(100%,500px);padding:clamp(27px,4vw,48px);background:#fff;border:1px solid #eaf0ec;border-radius:18px;box-shadow:0 15px 45px #102a560b}.auth-card h2,.simple-card h1{margin:10px 0 8px;font-size:clamp(1.85rem,2.6vw,2.3rem);line-height:1.15;letter-spacing:-.05em}.intro{margin:0 0 28px;color:#607078;line-height:1.55}.auth-form{display:grid;gap:17px}.auth-form>div:not(.form-pair),.form-pair>div,.form-field{display:grid;gap:7px}.form-pair{display:grid;grid-template-columns:1fr 1fr;gap:14px}.auth-form label{font-size:.87rem;font-weight:700}.auth-form input:not([type=hidden]){width:100%;min-height:48px;padding:11px 13px;border:1px solid #cddbd3;border-radius:10px;background:#fff;color:#102a56;outline:none;transition:border-color .15s,box-shadow .15s}.auth-form input:focus{border-color:#3f8f68;box-shadow:0 0 0 3px #3f8f6833}.auth-form input[aria-invalid=true]{border-color:#bf5047}.auth-form ul{margin:0;padding-left:18px;color:#a43732;font-size:.82rem}.field-hint{margin:-11px 0 0;color:#6a7b78;font-size:.78rem;line-height:1.4}.primary-button{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;min-height:50px;margin-top:8px;padding:11px 18px;border:0;border-radius:10px;background:#e86b5b;color:#fff;font-weight:750;text-align:center;text-decoration:none;cursor:pointer;transition:background .15s,transform .15s}.primary-button:hover{background:#cf5849;color:#fff;transform:translateY(-1px)}.primary-button:focus-visible,.text-button:focus-visible,a:focus-visible{outline:3px solid #3f8f68;outline-offset:3px}.form-switch{margin:26px 0 0;text-align:center;font-size:.88rem;color:#607078}.form-switch a{font-weight:750}.secondary-link{text-align:center;font-size:.82rem;margin:15px 0 0}.privacy-note{border-top:1px solid #edf0ed;margin:27px 0 0;padding-top:19px;color:#6a7b78;font-size:.76rem;line-height:1.55}.auth-footer{margin:22px 0 0;color:#7b8985;font-size:.77rem}.notice{margin:0 0 20px;padding:12px 14px;border-radius:10px;background:#e4f1ea;color:#245c42;font-size:.88rem;line-height:1.45}.notice-error{background:#fff0ed;color:#963c35}.notice-warning{background:#fff7e3;color:#73561e}.notice a{color:inherit;font-weight:750}.status-icon{display:grid;place-items:center;width:55px;height:55px;margin-bottom:18px;border-radius:16px;background:#e4f1ea;color:#3f8f68;font-size:1.7rem}.auth-card>p:not(.intro,.form-switch,.privacy-note,.secondary-link){color:#607078;line-height:1.6}.mobile-brand{display:none}.simple-page{min-height:100vh;padding:30px;background:#f8faf8}.simple-page header{display:flex;align-items:center;justify-content:space-between;max-width:1080px;margin:0 auto 50px}.simple-card{max-width:720px;margin:0 auto;padding:clamp(26px,5vw,50px);background:#fff;border:1px solid #eaf0ec;border-radius:18px;box-shadow:0 15px 45px #102a560b;line-height:1.7}.simple-card p{color:#52666b}.text-button{padding:8px 0;border:0;background:none;color:#2f7654;font-weight:750;cursor:pointer}@media(max-width:900px){.auth-shell{grid-template-columns:1fr}.welcome-panel{display:none}.auth-main{min-height:100vh;padding:20px 16px}.mobile-brand{display:block;width:min(100%,500px);margin:8px auto 20px}.auth-card{padding:clamp(25px,6vw,42px)}}@media(max-width:420px){.form-pair{grid-template-columns:1fr}.auth-card{padding:25px 20px}.auth-main{padding:14px}.simple-page{padding:18px}.simple-page header{margin-bottom:30px}}

.school-brand { display: grid; gap: 8px; min-width: 0; }
.school-name { display: block; color: #45606a; font-size: .88rem; line-height: 1.4; font-weight: 650; overflow-wrap: anywhere; }
.mobile-brand .school-name { margin-top: 8px; }

/* Password controls shared by login, invitations and account settings. */
.password-input{position:relative;width:100%}
.password-input input{width:100%;padding-right:3.2rem!important;box-sizing:border-box}
.password-eye{position:absolute;right:.45rem;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:2.3rem;height:2.3rem;border:0;border-radius:.6rem;background:transparent;color:var(--text-muted,#65766d);cursor:pointer}
.password-eye[hidden]{display:none}
.password-eye:hover{background:#edf4ef;color:#276447}
.password-eye:focus-visible{outline:2px solid #276447;outline-offset:2px}
.password-rules{padding:.85rem 1rem;border-radius:.8rem;background:#f5f8f5;font-size:.85rem;color:#58675e}
.password-rules p{margin:0 0 .4rem}
.password-rules ul{list-style:none;padding:0;margin:.4rem 0 .6rem;display:grid;gap:.3rem}
.password-rules li span{display:inline-block;width:1.2rem}
.password-rules li.is-valid{color:#26714c}
.password-rules .field-hint{margin:0;font-size:.8rem}
