.grade5-home{min-height:100vh;background:#f5f1e9;color:#1f2d35;font-family: var(--font-sans), system-ui, sans-serif}.grade5-home [hidden]{display:none!important}.home-header{display:flex;align-items:center;gap:28px;padding:18px clamp(18px,4vw,56px);background:#fff;border-bottom:1px solid #e5dfd2;font-family: var(--font-sans), system-ui, sans-serif}.home-brand{display:flex;align-items:center;gap:10px;color:#20333b;text-decoration:none;min-width:218px}.home-brand-mark{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:#173f43;color:#f3d78c;font-weight:800;font-size:13px}.home-brand small,.home-brand strong{display:block}.home-brand small{color:#aa7841;letter-spacing:.16em;font-size:10px}.home-brand strong{font-size:14px}.home-nav{display:flex;align-items:center;gap:clamp(12px,2vw,28px);flex:1;justify-content:center}.home-nav a{color:#6a7677;text-decoration:none;font-size:13px;white-space:nowrap}.home-nav a.active,.home-nav a:hover{color:#173f43;font-weight:700}.home-account{display:flex;align-items:center;gap:9px}.home-account select{border:0;background:transparent;color:#596769}.account-circle{width:34px;height:34px;border:0;border-radius:50%;background:#d08d57;color:#fff;font-weight:700;cursor:pointer}.home-logout{border:0;background:transparent;color:#6a7677;cursor:pointer}.admin-link{font-size:12px;color:#173f43}.home-shell{max-width:1180px;margin:0 auto;padding:clamp(34px,6vw,78px) clamp(18px,4vw,34px)}.home-hero{display:flex;justify-content:space-between;align-items:end;gap:28px;margin-bottom:38px}.home-kicker,.card-eyebrow{margin:0 0 10px;color:#ad7141;font:700 11px/1.2 var(--font-sans), system-ui, sans-serif;letter-spacing:.16em;text-transform:uppercase}.home-hero h1{max-width:700px;margin:0;font-size:clamp(34px,5vw,64px);font-weight:500;line-height:1.04;letter-spacing:-.035em}.home-intro{max-width:610px;margin:20px 0 0;color:#667477;font:16px/1.7 var(--font-sans), system-ui, sans-serif}.hero-note{display:grid;place-items:center;width:124px;height:124px;border:1px solid #d8cbb6;border-radius:50%;color:#ad7141;transform:rotate(8deg);flex:none}.hero-note span{font-size:46px}.hero-note small{font:700 8px/1.5 var(--font-sans), system-ui, sans-serif;letter-spacing:.16em;text-align:center}.home-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:15px}.home-card{display:flex;flex-direction:column;min-height:205px;padding:24px;background:#fff;border:1px solid #e6dfd3;border-radius:14px;box-shadow:0 8px 24px rgba(47,48,38,.04)}.continue-card{grid-column:span 4;background:#e2eee6}.tutor-card{grid-column:span 2;background:#173f43;color:#fff;border-color:#173f43}.revision-card,.exam-card{grid-column:span 2}.progress-card{grid-column:span 2;background:#f0e4cd}.card-heading{display:flex;justify-content:space-between;align-items:center}.tutor-card .card-eyebrow{color:#f3d78c}.card-dot{width:8px;height:8px;border-radius:50%;background:#c67b4c}.card-icon,.tutor-spark{font-size:24px;color:#b77c4c}.tutor-spark{color:#f3d78c}.home-card h2{margin:13px 0 9px;font-size:25px;line-height:1.12;font-weight:500}.home-card p{margin:0;color:#718080;font:14px/1.55 var(--font-sans), system-ui, sans-serif}.tutor-card p{color:#d2e0dc}.card-progress{height:7px;margin-top:auto;background:rgba(23,63,67,.13);border-radius:10px;overflow:hidden}.card-progress i{display:block;width:0;height:100%;background:#c67b4c;border-radius:inherit;transition:width .3s ease}.card-meta,.mini-stats{display:flex;justify-content:space-between;gap:12px;margin:9px 0 17px;color:#718080;font:11px var(--font-sans), system-ui, sans-serif}.home-button{display:inline-flex;justify-content:space-between;align-items:center;align-self:flex-start;min-width:140px;padding:11px 14px;border-radius:7px;text-decoration:none;font:700 12px var(--font-sans), system-ui, sans-serif}.home-button.primary{background:#173f43;color:#fff}.home-button.dark{background:#f3d78c;color:#173f43}.text-link{display:inline-flex;justify-content:space-between;align-items:center;margin-top:auto;color:#173f43;text-decoration:none;font:700 12px var(--font-sans), system-ui, sans-serif}.progress-summary{display:flex;align-items:baseline;gap:9px;margin:18px 0 16px}.progress-summary strong{font-size:42px;font-weight:500}.progress-summary span{color:#718080;font:12px var(--font-sans), system-ui, sans-serif}.mini-stats{margin-top:auto}.mini-stats b{color:#173f43;font-size:16px}.home-status{min-height:20px;margin:18px 0 0;color:#8b5a3c;font:13px var(--font-sans), system-ui, sans-serif}@media(max-width:920px){.home-header{flex-wrap:wrap}.home-nav{order:3;flex-basis:100%;justify-content:flex-start;overflow:auto;padding-top:5px}.continue-card,.tutor-card,.revision-card,.exam-card,.progress-card{grid-column:span 3}}@media(max-width:600px){.home-header{gap:14px}.home-brand{min-width:0}.home-brand strong{font-size:12px}.home-account{margin-left:auto}.home-account select{display:inline-block;max-width:110px;font-size:12px}.home-nav{gap:18px}.home-hero{align-items:start}.hero-note{display:none}.home-hero h1{font-size:40px}.continue-card,.tutor-card,.revision-card,.exam-card,.progress-card{grid-column:1/-1}.home-card{min-height:180px}}

/* /app learning spine */
.spine-shell{padding-top:clamp(28px,5vw,48px)}
.spine-hero{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:28px}
.spine-overall{display:flex;flex-direction:column;align-items:flex-end;min-width:110px}
.spine-overall span{font:700 11px/1.2 var(--font-sans), system-ui, sans-serif;color:#ad7141;letter-spacing:.12em;text-transform:uppercase}
.spine-overall strong{font:500 48px/1 var(--font-sans), system-ui, sans-serif;color:#173f43}
.spine-triad{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:36px}
.spine-card{display:flex;flex-direction:column;gap:8px;padding:22px;background:#fff;border:1px solid #e6dfd3;border-radius:16px;box-shadow:0 8px 24px rgba(47,48,38,.04);min-height:240px}
.spine-q{margin:0;color:#ad7141;font:700 12px/1.2 var(--font-sans), system-ui, sans-serif;letter-spacing:.14em;text-transform:uppercase}
.spine-card h2{margin:0;font:500 22px/1.2 var(--font-sans), system-ui, sans-serif;color:#1f2d35}
.spine-detail{margin:0;color:#667477;font:14px/1.55 var(--font-sans), system-ui, sans-serif;flex:1}
.spine-bar{margin:8px 0 4px}
.spine-mini{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px 16px;font:12px var(--font-sans), system-ui, sans-serif;color:#718080}
.spine-mini b{color:#173f43;font-size:14px}
.next-card{background:#e2eee6;border-color:#cfe0d6}
.weak-card{background:#faf6ef}
.spine-weak-list{margin:0 0 8px;padding-left:1.2em;color:#173f43;font:13px/1.55 var(--font-sans), system-ui, sans-serif}
.spine-weak-list a{color:#173f43;text-decoration:none}
.spine-weak-list a:hover{text-decoration:underline}
.spine-secondary-link{margin-top:10px}
.spine-section-title{margin:0 0 14px;font:500 20px var(--font-sans), system-ui, sans-serif;color:#1f2d35}
.spine-module-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:28px}
.spine-module{display:flex;flex-direction:column;gap:6px;padding:18px;background:#fff;border:1px solid #e6dfd3;border-radius:14px;text-decoration:none;color:inherit;transition:border-color .15s,box-shadow .15s}
.spine-module:hover{border-color:#173f43;box-shadow:0 8px 20px rgba(23,63,67,.08)}
.mod-eyebrow{font:700 10px/1 var(--font-sans), system-ui, sans-serif;letter-spacing:.14em;text-transform:uppercase;color:#ad7141}
.spine-module strong{font:500 17px/1.2 var(--font-sans), system-ui, sans-serif;color:#173f43}
.spine-module span:last-child{font:12px var(--font-sans), system-ui, sans-serif;color:#718080}
.spine-access{display:flex;flex-wrap:wrap;align-items:center;gap:18px 28px;padding:16px 20px;background:#fff;border:1px solid #e6dfd3;border-radius:14px}
.access-item{display:flex;flex-direction:column;gap:2px;font:12px var(--font-sans), system-ui, sans-serif;color:#718080}
.access-item strong{font:600 15px var(--font-sans), system-ui, sans-serif;color:#173f43}
.full-ai-preview-banner{padding:9px 20px;background:#176d66;color:#fff;text-align:center;font:700 13px var(--font-sans),system-ui,sans-serif;letter-spacing:.06em}
.home-nav a.nav-locked{color:#97a09f;opacity:.55}
.home-nav a.nav-locked::after{content:'鎖定';display:inline-block;margin-left:4px;font-size:9px;letter-spacing:.04em}
.spine-module.is-locked{background:rgba(238,240,238,.72);border-style:dashed;border-color:#c7ceca;box-shadow:none;color:#84908d}
.spine-module.is-locked:hover{border-color:#aab5b1;box-shadow:none}
.spine-module.is-locked strong,.spine-module.is-locked .mod-eyebrow,.spine-module.is-locked span:last-of-type{color:#87918f}
.lock-status{margin-top:4px;color:#7a8582;font:700 11px var(--font-sans),system-ui,sans-serif;font-style:normal}
.spine-upgrade{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-top:22px;padding:24px 26px;background:linear-gradient(120deg,#e9f0e8,#f6efe3);border:1px solid #d7dfd5;border-radius:14px}
.spine-upgrade h2{margin:0 0 7px;color:#173f43;font:500 22px/1.2 var(--font-sans),system-ui,sans-serif}
.spine-upgrade p:not(.mod-eyebrow){max-width:630px;margin:0;color:#61706e;font:14px/1.65 var(--font-sans),system-ui,sans-serif}
@media(max-width:920px){
  .spine-triad,.spine-module-grid{grid-template-columns:1fr 1fr}
  .spine-hero{align-items:flex-start}
}
@media(max-width:600px){
  .spine-triad,.spine-module-grid{grid-template-columns:1fr}
  .spine-overall strong{font-size:36px}
  .spine-upgrade{align-items:flex-start;flex-direction:column}
}
