/* Public landing only. No authenticated shell or form rules. */
.landing-page{margin:0;background:#edf5fd;color:#142f50;font-family:Arial,Helvetica,sans-serif;line-height:1.5}.landing-page *{box-sizing:border-box}.landing-page a{color:#0876cf;text-decoration:none}.landing-page a:hover{text-decoration:underline}.landing-page :focus-visible{outline:3px solid #126cc5;outline-offset:3px}.landing-wrap{max-width:1480px;margin:24px auto;border-radius:14px;overflow:hidden;box-shadow:0 5px 28px #164c7c18;background:#f4f9fe}.landing-header{display:flex;align-items:center;gap:30px;padding:20px 30px;background:#fff;border-bottom:1px solid #dbe9f5}.landing-school{display:flex;align-items:center;gap:16px;flex:1;min-width:0}.landing-school>img{width:68px;height:68px;object-fit:contain;flex-shrink:0}.landing-school h1{font-size:clamp(19px,2vw,26px);font-weight:750;margin:0;color:#102f5c;line-height:1.25}.landing-school p{font-size:12px;color:#53657c;margin:3px 0 0}.landing-school p:empty{display:none}.landing-header nav{display:flex;gap:25px;align-self:stretch;align-items:center;white-space:nowrap}.landing-header nav a{color:#263a55;padding:12px 0;font-size:15px}.landing-header nav [aria-current]{color:#0879d6;border-bottom:3px solid #0879d6}.landing-brand{width:235px;max-height:65px;object-fit:contain}.landing-main{display:grid;grid-template-columns:minmax(0,2fr) minmax(320px,1fr);gap:16px;padding:18px}.landing-card{background:#fff;border:1px solid #dfebf6;border-radius:12px;box-shadow:0 2px 8px #164c7c08}.landing-news{padding:20px;min-width:0}.landing-section-title{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.landing-page h2{font-size:28px;font-weight:750;line-height:1.25;color:#102f5c;margin:0}.landing-page h2>span{color:#2187e2;margin-right:9px}.landing-section-title>a{white-space:nowrap;font-size:15px;font-weight:600}.landing-side{display:flex;flex-direction:column;gap:12px;min-width:0}.landing-page .auth-card{padding:22px}.landing-page .auth-card h2{margin-bottom:18px}.landing-page #loginForm>label{display:block;margin:10px 0 5px;font-size:13px;color:#4c5d73}.landing-page .input-group{display:flex;align-items:center;flex-wrap:nowrap;border:1px solid #cbd6e3;border-radius:8px;min-height:46px;overflow:hidden;background:#fff}.landing-page .input-group-text{background:none;border:0;color:#64748b;padding:10px 12px}.landing-page .form-control{min-width:0;flex:1;border:0;box-shadow:none;background:transparent;padding:10px;font-size:16px}.landing-page .password-toggle{border:0;background:transparent;color:#64748b;padding:10px 12px}.landing-page .login-options{display:flex;gap:8px 12px;flex-wrap:wrap;align-items:center;margin:16px 0;font-size:12px}.landing-page .remember{display:flex;align-items:center;gap:7px;margin:0;font-size:14px}.landing-page .remember input{width:18px;height:18px;accent-color:#087df0}.landing-page .login-submit{width:100%;border:0;border-radius:8px;background:#087cf0;color:white;min-height:48px;font-size:18px;font-weight:650;display:flex;align-items:center;justify-content:center;gap:8px}.landing-page button{cursor:pointer}.landing-page button:disabled{opacity:.6;cursor:default}.landing-page .login-status{display:none}.landing-page .login-status.show{display:block;border-radius:6px;padding:10px;font-size:14px;background:#eff6ff;margin:10px 0}.landing-page .login-status.error{background:#fff0f0;color:#a22424}.landing-page .login-status.success{background:#eaf8ef;color:#18643b}.landing-help{display:flex;align-items:center;gap:14px;padding:18px;color:#102f5c!important}.landing-help:hover{text-decoration:none!important;border-color:#91c5eb}.landing-help>span:nth-child(2){flex:1;min-width:0}.landing-help strong{display:block;font-size:19px;line-height:1.3}.landing-help small{display:block;color:#56687e;font-size:13px;line-height:1.5;margin-top:5px}.landing-help-icon{display:grid;place-items:center;flex:0 0 48px;width:48px;height:48px;background:#dff0ff;border-radius:12px;font-size:28px;font-weight:bold;color:#1165aa}.landing-help-gv{background:#f0f8ff}.landing-help-sv{background:#effbf8}.landing-help-sv .landing-help-icon{background:#dcf6ee}.landing-footer{background:#12538c;color:#fff;padding:12px 30px;display:flex;align-items:center;justify-content:space-between;font-size:12px;gap:16px}.landing-footer img{width:150px;max-height:35px;object-fit:contain;background:white;border-radius:4px;padding:3px}.landing-article{display:flex;gap:16px;border:1px solid #dfebf6;border-radius:10px;padding:12px;margin-top:12px;color:#183859!important;overflow:hidden}.landing-article img{width:170px;height:106px;object-fit:cover;border-radius:7px}.landing-article h3{font-size:19px;line-height:1.35;font-weight:750;margin:0 0 6px;color:#13385e}.landing-article p{font-size:14px;line-height:1.5;margin:0;color:#53667d}.landing-article time{display:block;font-size:12px;margin:5px 0;color:#687d92}.landing-feature{display:block;position:relative;padding:0;margin-top:0;background:#f0f7fe}.landing-feature img{width:100%;height:330px;border-radius:0;display:block}.landing-feature .landing-article-text{padding:20px}.landing-feature.has-cover .landing-article-text{position:absolute;bottom:0;left:0;right:0;padding:65px 22px 22px;background:linear-gradient(transparent,#092039ee);color:white}.landing-feature.has-cover h3,.landing-feature.has-cover p,.landing-feature.has-cover time{color:#fff}.landing-feature h3{font-size:25px}.landing-feature:not(.has-cover){padding:20px 0}.landing-news-error{color:#a22424}.landing-skip{position:absolute;left:16px;top:-100px;background:white;padding:10px;z-index:10}.landing-skip:focus{top:8px}#landingNewsRetry{border:1px solid #bad5eb;background:#f0f7ff;color:#17558c;border-radius:6px;padding:9px 15px}.landing-page [hidden]{display:none!important}
@media(max-width:1100px){.landing-wrap{margin:12px}.landing-header{gap:16px;padding:16px}.landing-brand{width:175px}.landing-header nav{gap:14px}.landing-main{grid-template-columns:minmax(0,1.6fr) minmax(300px,1fr)}.landing-feature img{height:290px}.landing-article img{width:125px;height:95px}.landing-feature img{width:100%;height:290px}}
@media(max-width:760px){.landing-wrap{margin:0;border-radius:0}.landing-header{flex-wrap:wrap;gap:12px}.landing-school{flex-basis:calc(100% - 150px)}.landing-school>img{width:48px;height:48px}.landing-brand{width:125px}.landing-header nav{width:100%;justify-content:center;gap:28px}.landing-main{display:flex;flex-direction:column;padding:12px;gap:12px}.landing-side{display:contents}.landing-page .auth-card{order:0}.landing-news{order:1;padding:15px}.landing-help{order:2}.landing-page h2{font-size:25px}.landing-feature img{height:260px}.landing-feature h3{font-size:21px}.landing-feature.has-cover .landing-article-text{position:static;background:#173c63;padding:16px}.landing-article:not(.landing-feature) img{width:95px;height:90px}.landing-article h3{font-size:17px}.landing-footer{padding:12px 16px}.landing-footer img{width:110px}}
@media(prefers-reduced-motion:reduce){.landing-page *{scroll-behavior:auto!important}}
/* Teasers only: preserve full article text on the reader; long real titles cannot escape their card. */
.landing-article-text{min-width:0;overflow-wrap:anywhere}.landing-article h3,.landing-article p{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;-webkit-line-clamp:3}.landing-feature.has-cover .landing-article-text{max-height:100%;overflow:auto}.landing-school h1,.landing-school p{overflow-wrap:anywhere}

/* Default illustration, not a fabricated article, when the public feed is empty. */
.landing-news-empty{overflow:hidden;border-radius:10px;background:#f0f7fe}.landing-news-empty img{display:block;width:100%;height:330px;object-fit:cover}.landing-article:not(.landing-feature) img{flex-shrink:0}
@media(max-width:1100px){.landing-news-empty img{height:290px}}
@media(max-width:760px){.landing-news-empty img{height:260px}}

/* Approved full-window Default: original branding, 2:1 news/auth columns. */
.landing-wrap{max-width:none;min-height:100vh;min-height:100dvh;margin:0;border-radius:0;box-shadow:none;display:flex;flex-direction:column}
.landing-header{background:#0a4278;color:#fff;padding:22px clamp(20px,3.5vw,64px);min-height:124px;gap:30px}
.landing-school h1,.landing-school p,.landing-header nav a{color:#fff}.landing-school h1{font-size:clamp(22px,2vw,34px)}.landing-school p{font-size:14px}.landing-school>img{width:86px;height:86px}.landing-header nav [aria-current]{color:#70edff;border-color:#00c4e7}.landing-brand{width:235px}
.landing-main{flex:1;grid-template-columns:minmax(0,2.2fr) minmax(340px,1fr);padding:22px clamp(20px,2.4vw,42px);gap:18px;align-items:stretch}.landing-news{display:flex;flex-direction:column;padding:22px;min-height:620px}.landing-section-title{flex-shrink:0}.landing-section-title h2{font-size:34px}.landing-page h2>span{display:inline-grid;place-items:center;width:50px;height:50px;background:#e0f2ff;border-radius:12px;font-size:30px}.landing-page .auth-card{padding:24px}.landing-page .auth-card h2{font-size:32px}.landing-page #loginForm>label{font-size:16px;margin-top:12px}.landing-page .input-group{min-height:50px}.landing-page .login-options{margin:16px 0 20px}.landing-page .login-submit{min-height:56px;font-size:21px}.landing-side{gap:16px}.landing-help{flex:1;padding:18px 22px}.landing-help strong{font-size:21px}.landing-help small{font-size:14px}.landing-footer{background:#0a4278;min-height:58px;padding:16px clamp(20px,3.5vw,64px);font-size:14px}
#landingNewsStatus:empty{display:none}.landing-carousel{position:relative;flex:1;min-height:420px;border-radius:13px;overflow:hidden;background:#e8f2fc}.landing-slide{height:100%;min-height:420px}.landing-carousel .landing-feature{height:100%;min-height:420px;border:0;border-radius:0;margin:0;position:absolute;inset:0;background:#164268}.landing-carousel .landing-feature img,.landing-carousel .landing-news-empty img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.landing-carousel .landing-feature .landing-article-text{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,#05294cf5);padding:100px 30px 70px;max-height:85%;overflow:hidden;color:white}.landing-carousel .landing-feature h3{font-size:clamp(25px,2.5vw,42px);color:white;-webkit-line-clamp:3}.landing-carousel .landing-feature time{font-size:19px;color:white}.landing-carousel .landing-feature:not(.has-cover){padding:0}.landing-carousel-controls button{border:0}.landing-carousel-prev,.landing-carousel-next{position:absolute;top:43%;width:58px;height:58px;border-radius:50%;background:#fff;color:#0b3a65;font-size:40px;line-height:1;box-shadow:0 2px 8px #0002}.landing-carousel-prev{left:20px}.landing-carousel-next{right:20px}.landing-carousel-dots{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);display:flex;gap:8px}.landing-carousel-dots button{width:30px;height:30px;padding:8px;background:transparent;position:relative}.landing-carousel-dots button:after{content:'';display:block;width:14px;height:14px;border-radius:10px;background:#d2deeb}.landing-carousel-dots button[aria-pressed=true]{width:52px}.landing-carousel-dots button[aria-pressed=true]:after{width:36px;background:#00c7ed}.landing-carousel-counter{position:absolute;right:28px;bottom:26px;color:white;font-size:18px}.landing-carousel-pause{position:absolute;left:28px;bottom:22px;width:36px;height:36px;border-radius:6px;background:#fff;color:#0b3a65;font-size:17px}.landing-carousel .landing-news-empty{min-height:420px;height:100%}.landing-carousel :focus-visible{outline:3px solid #00c7ed;outline-offset:-4px}
@media(min-width:1600px){.landing-main{grid-template-columns:minmax(0,2.2fr) minmax(420px,1fr)}}
@media(max-width:1100px){.landing-header{flex-wrap:wrap;gap:16px;padding:18px 24px}.landing-school{flex-basis:65%}.landing-school>img{width:64px;height:64px}.landing-header nav{order:3;width:100%;justify-content:center;gap:32px}.landing-brand{width:180px}.landing-main{grid-template-columns:minmax(0,1.6fr) minmax(310px,1fr);padding:18px;gap:16px}.landing-news{padding:16px}.landing-help{padding:16px}.landing-help strong{font-size:18px}}
@media(max-width:760px){.landing-header{padding:16px;gap:12px}.landing-school{flex-basis:100%}.landing-school h1{font-size:23px}.landing-school p{font-size:12px}.landing-brand{width:155px}.landing-header nav{order:0;width:auto;flex:1;gap:15px;flex-wrap:wrap}.landing-header nav a{font-size:14px}.landing-main{display:flex;padding:12px;gap:12px}.landing-news{min-height:440px}.landing-section-title h2{font-size:27px}.landing-section-title>a{font-size:14px}.landing-carousel,.landing-slide,.landing-carousel .landing-feature,.landing-carousel .landing-news-empty{min-height:340px}.landing-carousel .landing-feature .landing-article-text{padding:80px 20px 65px}.landing-carousel .landing-feature h3{font-size:27px}.landing-carousel .landing-feature time{font-size:15px}.landing-carousel-prev,.landing-carousel-next{width:44px;height:44px;font-size:32px}.landing-carousel-prev{left:10px}.landing-carousel-next{right:10px}.landing-carousel-counter{right:16px;font-size:15px}.landing-carousel-pause{left:16px}.landing-page .auth-card{padding:20px}.landing-help{flex:none}.landing-footer{font-size:12px;padding:16px}}
/* Latest approved footer: school's copyright left, Chip chip brand right. */
.landing-footer{flex-wrap:wrap}.landing-footer #landingCopyright{min-width:0;overflow-wrap:anywhere;flex:1}.landing-footer-brand{font-weight:750;font-size:19px;white-space:nowrap;letter-spacing:.1px}
@media(max-width:480px){.landing-footer{gap:10px 20px}.landing-footer #landingCopyright{flex-basis:60%}.landing-footer-brand{font-size:16px}}

/* Default329: requested quiet footer link, without changing school copyright. */
.landing-footer .landing-footer-brand{color:#c1c7ce;font-size:14px;font-weight:400;letter-spacing:0;margin-left:auto;text-align:right}
.landing-footer .landing-footer-brand:hover{color:#e1e5ea;text-decoration:underline}
.landing-footer .landing-footer-brand:focus-visible{outline-color:#e1e5ea}
/* Let content grow naturally at zoom/short windows; never crop the page to 100dvh. */
.landing-wrap{overflow:visible}
@media(min-width:1101px){
 .landing-header{padding-top:16px;padding-bottom:16px;min-height:106px}
 .landing-school>img{width:72px;height:72px}
 .landing-main{padding-top:16px;padding-bottom:16px;flex:1 0 auto}
 .landing-news{min-height:0;padding:20px}
 .landing-carousel,.landing-slide,.landing-carousel .landing-feature,.landing-carousel .landing-news-empty{min-height:320px}
 .landing-page .auth-card{padding:20px}
 .landing-page .auth-card h2{margin-bottom:14px}
 .landing-page #loginForm>label{margin-top:10px}
 .landing-page .input-group{min-height:46px}
 .landing-page .login-options{margin:12px 0 14px}
 .landing-page .login-submit{min-height:48px}
 .landing-side{gap:12px}
 .landing-help{padding:14px 20px}
 .landing-footer{min-height:48px;padding-top:12px;padding-bottom:12px}
}
