/* P2.6: the initial, non-interactive placeholder and real login share geometry.
   Device fonts avoid a web-font swap on login; authenticated routes keep their fonts. */
body.auth-login-page{--font-body:system-ui,-apple-system,"Segoe UI",sans-serif;--font-display:system-ui,-apple-system,"Segoe UI",sans-serif}
.auth-login{min-height:0;padding:24px 0;align-items:flex-start}
.auth-login .auth-card{padding:24px;display:grid;gap:20px}
.auth-login .auth-header{margin:0}
.auth-login .auth-header h1{font-size:24px;font-weight:800;line-height:34px;margin:0 0 4px;letter-spacing:-.5px}
.auth-login .auth-header p{min-height:40px;font-size:13.5px;line-height:20px;margin:0;color:var(--ink-soft)}
.auth-login .auth-form{gap:14px;margin:0}
.auth-login .auth-field{gap:6px}
.auth-login .auth-field label,.auth-skeleton-label{min-height:18px;line-height:18px}
.auth-login .auth-input,.auth-skeleton-input{height:48px;min-height:48px;font-size:16px;line-height:22px}
.auth-login .auth-btn{height:48px;min-height:48px;line-height:20px;margin-top:10px}
.auth-footer-links{color:var(--ink-soft)}
.auth-login .auth-footer-links{margin:0;gap:4px;font-size:13px;line-height:20px}
.auth-login .auth-footer-links>div{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;column-gap:4px;min-height:44px}
.auth-login .auth-footer-links>div:nth-child(2){min-height:64px}
.auth-login .auth-footer-links .app-icon{flex:none}
.auth-login .auth-page-logo:hover,.auth-login .auth-card:hover .auth-page-logo{transform:none!important}
.auth-skeleton-label,.auth-skeleton-input,.auth-skeleton-line{display:block;background:var(--bg-soft);border-radius:8px}
.auth-skeleton-label{width:48%}.auth-skeleton-line{width:72%;height:16px}
.auth-skeleton-button{background:var(--bg-soft);box-shadow:none;cursor:default}
@media(max-width:860px){.auth-login-page #topbarMobile{min-height:62px}.auth-login{padding:12px 0}.auth-login .auth-card{padding:24px 20px}}
@media(prefers-reduced-motion:reduce){.auth-login *{transition:none!important}}

body[data-entry="common"] #app>#sidebarNav,body[data-entry="common"] #app>#bottomNav,body[data-entry="common"] #app #topbarMobile{display:none!important}
.common-entry-nav{max-width:1000px;margin:auto;padding:14px 20px}
.common-entry-nav a{display:inline-flex;align-items:center;min-height:44px;color:var(--ink);font-weight:700}
.entry-chooser{max-width:780px;width:100%;margin:0 auto;padding:clamp(18px,4vw,36px)}
.entry-chooser h1{margin:0}.entry-chooser p{margin:8px 0 22px;color:var(--ink-soft)}
.entry-grades{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:16px;margin-bottom:20px}
.entry-grade{padding:16px;border:1px solid var(--border);border-radius:14px;background:var(--bg-soft)}
.entry-grade h2{font-size:20px;margin:0 0 8px}
.entry-grade a{min-height:44px;padding:7px 0;display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--ink);font-weight:650}
.entry-grade a+a{border-top:1px solid var(--border)}
