.login-body { min-height:100vh; }
.login-layout { max-width:1200px; min-height:100vh; padding:70px 50px; display:flex; align-items:center; gap:100px; }
.login-story { flex:1; }
.login-brand { margin-bottom:90px; }
.login-story h1 { font-size:76px; }
.login-story>p:not(.eyebrow) { color:var(--muted); font-size:14px; line-height:1.9; }
.login-principles { display:flex; gap:18px; margin-top:50px; flex-wrap:wrap; }
.login-principles span { border-top:1px solid #bfceb0; padding-top:12px; font-size:10px; color:#8b9a7c; }
.login-card { width:360px; flex-shrink:0; padding:37px; border:1px solid var(--line); background:white; border-radius:14px; box-shadow:0 15px 50px #213d3308; }
.login-card h2 { font:400 42px/1.1 var(--serif); margin:22px 0 16px; }
.login-card>p { font-size:12px; color:var(--muted); }
.private-badge { font-size:8px; letter-spacing:1.5px; padding:6px 9px; border:1px solid #d5e2c7; border-radius:15px; color:#809564; }
.primary-button { display:flex; justify-content:space-between; align-items:center; gap:12px; background:var(--green); color:#e2edcd; border:0; border-radius:6px; padding:14px 18px; width:100%; font-size:12px; transition:background .15s; }
.primary-button:hover { background:#315342; }
.primary-button:disabled { opacity:.6; }
.login-card .primary-button { margin-top:24px; }
.form-message { font-size:11px; color:#7d9069; min-height:34px; line-height:1.7; }
.security-explanation { margin-top:21px; padding-top:20px; border-top:1px solid var(--line); }
.security-explanation strong { font-size:11px; }
.security-explanation p { font-size:10px; line-height:1.8; color:var(--muted); }
.standalone-link { font-size:10px; text-decoration:underline; text-underline-offset:3px; }
.login-card .login-footnote { margin-top:23px; font-size:9px; }
.logout-button { border:1px solid #d7e0cc; background:none; color:#6f855b; padding:4px 9px; border-radius:4px; font-size:9px; margin-left:5px; }
.progress-stats { display:flex; gap:15px; margin:25px 0; }
.progress-stats article { flex:1; padding:22px 23px; background:var(--green); color:#d7e6bf; border-radius:8px; }
.progress-stats strong { display:block; font:400 31px/1.3 var(--serif); }
.progress-stats span { font-size:9px; color:#b6caa2; }
.progress-layout { display:grid; grid-template-columns:minmax(0,1fr) 280px; gap:22px; }
.log-card { padding:27px; border:1px solid var(--line); background:white; border-radius:9px; }
.log-card h2 { font:400 32px/1.2 var(--serif); margin:0 0 10px; }
.quiet-note { font-size:10px; color:#839375; line-height:1.8; }
.log-form { margin-top:23px; }
.log-form label { display:flex; flex-direction:column; gap:7px; font-size:10px; color:#6e815d; margin-bottom:16px; }
.log-form input,.log-form select,.log-form textarea { width:100%; min-width:0; border:1px solid #d9e3ce; border-radius:5px; padding:10px 11px; background:#fafbf7; color:#455e38; font:11px var(--sans); }
.log-form textarea { resize:vertical; }
.field-pair { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.field-pair label { min-width:0; }
.review-card { align-self:start; padding:27px; border:1px solid #dde6d1; border-radius:9px; background:#eaf0df; }
.review-card h2 { font:400 30px/1.15 var(--serif); margin:12px 0 18px; }
.review-card h2 em { color:#879d6b; font-weight:400; }
.weak-topic { padding:13px 0; border-bottom:1px solid #d7e0ca; }
.weak-topic strong { display:block; font-size:11px; font-weight:500; }
.weak-topic span { font-size:9px; color:#869b6d; }
.session-history { background:white; border:1px solid var(--line); border-radius:8px; }
.session-history-item { padding:20px 24px; border-bottom:1px solid #e7eddf; }
.session-history-item:last-child { border:0; }
.session-history-item h3 { font-size:12px; margin:7px 0 8px; }
.session-history-item p { margin:0; font-size:10px; color:#8b9b7c; }
.session-history-item .history-notes { margin-top:8px; color:#6c8159; white-space:pre-wrap; overflow-wrap:anywhere; }
.material-status-label select { width:125px; max-width:100%; padding:5px 6px; font-size:9px; color:#6b8552; border:1px solid #d8e4c9; background:#f6f9ef; border-radius:4px; }
.resource-row .resource-actions { flex:0 0 auto; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
@media(max-width:1150px) {
  .login-layout { gap:50px; padding:50px 35px; }
  .login-story h1 { font-size:61px; }
  .progress-layout { grid-template-columns:minmax(0,1fr) 230px; }
  .progress-stats article { padding:18px; }
  .progress-stats strong { font-size:27px; }
  .resource-row .resource-actions { flex-direction:column; gap:6px; }
}
@media(max-width:850px) {
  .login-layout { gap:25px; }
  .login-card { width:320px; padding:30px; }
  .login-story h1 { font-size:53px; }
  .login-brand { margin-bottom:65px; }
  .progress-layout { grid-template-columns:1fr; }
  .progress-stats { flex-wrap:wrap; }
  .progress-stats article { flex:1 1 calc(50% - 15px); }
}
@media(max-width:650px) {
  .login-layout { padding:28px 22px 40px; display:block; }
  .login-brand { margin-bottom:40px; }
  .login-story h1 { font-size:48px; }
  .login-story>p:not(.eyebrow) { font-size:11px; }
  .login-principles { margin-top:20px; margin-bottom:30px; gap:14px; }
  .login-principles span { font-size:8px; }
  .login-card { width:100%; padding:27px; }
  .login-card h2 { font-size:37px; }
  .progress-stats { gap:10px; }
  .progress-stats article { padding:18px; }
  .progress-stats strong { font-size:28px; }
  .log-card,.review-card { padding:23px 20px; }
  .field-pair { gap:10px; }
  .log-form input,.log-form select,.log-form textarea { font-size:12px; padding:9px 8px; }
  .resource-row { align-items:flex-start; }
  .material-status-label select { width:105px; font-size:8px; }
}
@media print { .logout-button,.material-status-label,.log-form { display:none!important; } }
@media(prefers-reduced-motion:reduce) { .page.active { animation:none; } }
