/* Identity entry: one layout, one palette; recovery actions remain text links. */
body.portal-home{--red:#ad2434;--deep:#861b29;--ink:#262d38;--muted:#657180;--line:#dce2e9;--paper:#f3f5f8;background:var(--night-surface,#f3f5f8);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;min-height:100dvh}
body.portal-home .portal-topbar{height:76px;padding:0 36px;background:var(--night-surface,#fff);border-bottom:1px solid var(--line);box-shadow:none}
body.portal-home .portal-topbar img{width:270px;height:auto;max-height:46px}
body.portal-home .portal-topbar>span{border:0;background:transparent;color:var(--muted);font-size:12px;letter-spacing:0}
body.portal-home .portal-landing{width:min(1100px,calc(100% - 64px));min-height:calc(100dvh - 140px);grid-template-columns:1fr 440px;gap:80px;padding:56px 0}
body.portal-home .landing-copy .overline{font-size:13px;letter-spacing:.08em;color:var(--night-ink,#596879);font-weight:600}
body.portal-home .landing-copy h1{font-family:inherit;font-size:clamp(32px,3.7vw,48px);font-weight:700;line-height:1.45;letter-spacing:-.03em;margin:22px 0;color:var(--ink)}
body.portal-home .landing-copy h1 em{color:var(--red)}
body.portal-home .login-book{background:var(--night-surface,#fff);border:1px solid var(--line);border-radius:14px;padding:28px 32px;box-shadow:0 12px 40px #25324b08}
body.portal-home .bookmark-tabs{position:static;display:flex;gap:4px;padding:4px;margin:0 0 28px;background:var(--night-surface,#f0f3f7);border-radius:8px}
body.portal-home .bookmark-tabs button,body.portal-home .bookmark-tabs button.active{height:40px;min-height:40px;width:auto;flex:1;border:0!important;background:transparent!important;clip-path:none;transform:none;color:var(--night-ink,#606d7d)!important;border-radius:5px!important;padding:8px 12px!important;font-size:14px;font-weight:600;box-shadow:none}
body.portal-home .bookmark-tabs button.active{background:var(--night-surface,#fff)!important;color:var(--red)!important;box-shadow:0 1px 4px #24324b10}
body.portal-home .book-page{padding:0;border:0;background:transparent;box-shadow:none}
body.portal-home .book-page:before{display:none}
body.portal-home .book-page>.overline{display:none}
body.portal-home .login-view h2{font-family:inherit;font-size:25px;font-weight:700;color:var(--ink);margin:0 0 8px}
body.portal-home .login-view>p{font-size:13px;color:var(--muted);margin:0 0 24px;line-height:1.7}
body.portal-home .login-view label{margin-top:20px;gap:8px}
body.portal-home .login-view label span{color:var(--ink);font-size:13px;font-weight:600}
body.portal-home .login-view input:not([type=checkbox]){width:100%;min-height:46px;border:1px solid #cfd7e2;border-radius:7px;padding:11px 13px;background:var(--night-surface,#fff);color:var(--ink);font-size:14px;box-shadow:none}
body.portal-home .password-field{position:relative;display:block}
body.portal-home .password-field input{padding-right:62px!important}
body.portal-home .password-field [data-password-toggle]{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:auto;min-width:44px;min-height:36px;padding:6px 8px;border:0;border-radius:0;background:transparent;color:var(--night-ink,#697686);font-size:12px;font-weight:500}
body.portal-home .forgot-link{background:transparent;border:0;border-radius:0;color:var(--night-ink,#687586);padding:2px 0;min-height:24px;font-size:12px;font-weight:400}
body.portal-home .forgot-link:hover,body.portal-home [data-password-toggle]:hover{color:var(--red);text-decoration:underline;text-underline-offset:3px}
body.portal-home .login-field-head{display:flex;justify-content:space-between;align-items:center;gap:12px}
body.portal-home .login-submit{display:flex;justify-content:center;align-items:center;gap:12px;width:100%;margin-top:28px;padding:12px;border:1px solid var(--red)!important;border-radius:7px!important;background:var(--red)!important;color:#fff!important;min-height:46px;font-size:14px;font-weight:650}
body.portal-home .login-submit:hover{background:var(--deep)!important;border-color:var(--deep)!important}
body.portal-home .entry-links{border-top:1px solid #edf0f4;padding-top:20px;margin-top:24px}
body.portal-home .entry-links .admin-entry{color:var(--night-ink,#697686);font-size:12px;margin:0}
body.portal-home .classroom-login-option{padding:0;background:transparent;border:0;display:flex;align-items:center;gap:10px!important}
body.portal-home .classroom-login-option input{width:16px;height:16px;accent-color:var(--red)}
body.portal-home .classroom-login-option small{color:var(--muted);font-size:11px}
body.portal-home .account-modal{background:#18233166;backdrop-filter:none}
body.portal-home .account-modal>section{border:1px solid var(--line);border-radius:12px;padding:28px;box-shadow:0 24px 70px #17243726;background:var(--night-surface,#fff)}
body.portal-home .account-modal h2{font-family:inherit;font-size:22px;color:var(--ink);padding-right:36px}
body.portal-home .account-modal-close{width:36px;height:36px;padding:0;border:0;background:transparent;color:var(--night-ink,#637080);font-size:24px;border-radius:6px}
body.portal-home .account-modal-close:hover{background:var(--night-surface,#f0f3f7)}
body.portal-home .account-modal input{border-color:#cfd7e2;border-radius:7px;min-height:44px}
body.portal-home button:focus-visible,body.portal-home a:focus-visible,body.portal-home input:focus-visible{outline:2px solid #216ac2;outline-offset:3px}
@media(max-width:760px){body.portal-home .portal-topbar{height:66px;padding:0 20px}body.portal-home .portal-topbar img{width:220px}body.portal-home .portal-topbar>span{display:none}body.portal-home .portal-landing{grid-template-columns:1fr;gap:24px;width:min(440px,calc(100% - 32px));padding:32px 0;min-height:0}body.portal-home .landing-copy h1{font-size:28px;line-height:1.4;margin:10px 0}body.portal-home .landing-copy .overline{font-size:11px}body.portal-home .login-book{padding:24px}body.portal-home .bookmark-tabs{margin-bottom:24px}}
@media(prefers-reduced-motion:no-preference){body.portal-home .login-submit,body.portal-home .bookmark-tabs button{transition:background .15s,color .15s}}
body.portal-home .bookmark-tabs button:after{display:none}
body.portal-home .login-submit{box-shadow:none;letter-spacing:0}
