/* Home is intentionally independent of the older page layouts. */
.home-v2 { --home-card:var(--surface); --home-border:var(--line); max-width:1160px; margin:0 auto; padding:8px 0 24px; }
.home-intro { position:relative; margin:0 0 30px; }
.home-intro p { color:var(--muted); font-size:13px; font-weight:600; margin:0 0 10px; }
.home-intro h1 { margin:0; font-size:clamp(30px,4vw,46px); line-height:1.1; letter-spacing:-1.6px; font-weight:750; }
.home-intro > span { position:absolute; right:0; bottom:3px; font-size:11px; color:var(--muted); letter-spacing:2px; }
.home-layout { display:grid; grid-template-columns:1.15fr 1fr; grid-template-areas:"hero activity" "metrics activity" "learn learn" "progress progress" "levels levels"; gap:26px; }
.home-session { grid-area:hero; border-radius:28px; padding:26px; color:#fff4df; background:radial-gradient(ellipse at top right,#367461 0,transparent 65%),linear-gradient(130deg,#103a2f,#1c4c3c); overflow:hidden; }
.home-session-label { display:flex; align-items:center; justify-content:space-between; font-size:11px; font-weight:650; letter-spacing:1.6px; color:#bbf1d2; }
.home-session-label > span:last-child { font-family:var(--font-jp); font-size:21px; opacity:.7; }
.home-session-main { display:flex; align-items:center; justify-content:space-between; gap:10px; margin:12px 0 10px; min-height:135px; }
.home-session h2 { font-size:19px; letter-spacing:0; margin:0; font-weight:500; }
.home-session .home-zero-title { font-size:clamp(28px,3.2vw,39px); line-height:1.1; font-weight:700; letter-spacing:-1px; }
.home-due-number { font-size:clamp(56px,7vw,76px); line-height:1.08; letter-spacing:-3px; }
.home-fox { width:132px; height:132px; border-radius:34px; transform:rotate(7deg); flex-shrink:0; box-shadow:0 10px 24px #071c252e; }
.home-session > p { color:#fff4dfcc; margin:0 0 23px; line-height:1.5; font-size:14px; }
.home-review-button { display:flex; align-items:center; justify-content:space-between; width:100%; min-height:52px; padding:14px 18px; border:0; border-radius:16px; color:#123d32; background:#bbf1d2; font-size:15px; font-weight:750; cursor:pointer; transition:background .15s,transform .15s; }
.home-review-button:hover { background:#d0f8df; transform:translateY(-1px); }
.home-metrics { grid-area:metrics; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); padding:0 3px; }
.home-metrics > div { display:flex; flex-direction:column; gap:5px; padding:0 12px; border-right:1px solid var(--home-border); }
.home-metrics > div:first-child { padding-left:0; }.home-metrics > div:last-child { border:0; }
.home-metrics strong { font-size:27px; font-weight:700; letter-spacing:-.8px; }
.home-metrics span { font-size:12px; color:var(--muted); }
.home-learn { grid-area:learn; }
.home-section-title h2 { font-size:21px; margin:0 0 5px; letter-spacing:-.45px; }
.home-section-title p { margin:0; font-size:13px; color:var(--muted); }
.home-paths { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin-top:16px; }
.home-path { display:flex; flex-direction:column; align-items:stretch; padding:20px; min-width:0; text-align:left; border:1px solid var(--home-border); border-radius:22px; background:var(--home-card); color:var(--ink); cursor:pointer; transition:border-color .15s,transform .15s; }
.home-path:hover { transform:translateY(-3px); border-color:var(--primary); }
.home-path-top { display:flex; align-items:center; justify-content:space-between; margin-bottom:18px; color:var(--muted); }
.home-path-top > span:first-child { font:34px/1.1 var(--font-jp); color:var(--primary); }
.home-path strong { font-size:17px; margin-bottom:5px; }
.home-path small { font-size:12px; line-height:1.4; color:var(--muted); }
.home-week { grid-area:activity; min-width:0; padding:24px; border:1px solid var(--home-border); border-radius:28px; background:var(--home-card); }
.home-week > header { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.home-week > header > strong { font-size:28px; letter-spacing:-1px; }
.home-week-chart { display:flex; gap:8px; margin:26px 0 14px; }
.home-week-axis { width:32px; flex-shrink:0; display:flex; flex-direction:column; justify-content:space-between; padding-bottom:29px; font-size:11px; color:var(--muted); }
.home-week-bars { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:9px; flex:1; min-width:0; }
.home-week .activity-day { display:flex; flex-direction:column; gap:10px; align-items:stretch; padding:0 3px 6px; border:0; border-radius:8px; background:transparent; cursor:pointer; color:var(--muted); min-width:0; font-size:12px; }
.home-week .activity-day.selected { color:var(--primary); font-weight:750; background:var(--primary-soft); }
.home-bar-column { display:flex; flex-direction:column; justify-content:flex-end; height:166px; overflow:hidden; border-radius:7px 7px 0 0; background:linear-gradient(to bottom,transparent calc(100% - 1px),var(--line) 0); }
.home-bar-study { background:var(--secondary); }.home-bar-review { background:var(--primary); }
.home-bar-zero { height:3px; background:var(--line); border-radius:4px; }
.home-week-legend { display:flex; gap:16px; font-size:12px; align-items:center; }
.home-week-legend > span:first-child { color:var(--secondary); }.home-week-legend > span:nth-child(2) { color:var(--primary); }
.home-week-legend small { margin-left:auto; color:var(--muted); font-size:11px; }
.home-day-detail { border-top:1px solid var(--line); margin-top:18px; padding-top:15px; line-height:1.55; font-size:12px; }
.home-day-detail strong { font-weight:600; }.home-day-detail p { color:var(--muted); margin:5px 0 0; }
.home-levels { grid-area:levels; }
.home-level-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:12px; margin-top:16px; }
.home-level { position:relative; display:flex; align-items:flex-start; flex-direction:column; gap:10px; padding:18px; background:var(--home-card); border:1px solid var(--home-border); border-radius:20px; color:var(--ink); text-align:left; cursor:pointer; }
.home-level:hover { border-color:var(--primary); }.home-level > strong { color:var(--primary); font-size:20px; }
.home-level > span { font-size:11px; color:var(--muted); }.home-level-arrow { position:absolute; right:16px; top:20px; }
.home-level-track { height:4px; background:var(--line); width:100%; border-radius:4px; overflow:hidden; }
.home-level-track i { display:block; height:100%; background:var(--primary); }
.home-v2 button:focus-visible { outline:3px solid var(--secondary); outline-offset:4px; }
@media(max-width:1000px) { .home-layout { grid-template-columns:1fr; grid-template-areas:"hero" "metrics" "learn" "progress" "activity" "levels"; } .home-fox { width:116px;height:116px; } }
@media(max-width:620px) {
 .home-intro { margin-bottom:22px; }.home-intro h1 { font-size:31px; letter-spacing:-.9px; }.home-intro > span { display:none; }
 .home-session { padding:22px; }.home-session-main { min-height:126px; }.home-session .home-zero-title { font-size:29px; }
 .home-layout { gap:24px; }.home-paths { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }.home-path { padding:17px; }
 .home-week { padding:20px; }.home-week-bars { gap:6px; }.home-bar-column { height:125px; }
 .home-metrics strong { font-size:25px; }.home-metrics span { font-size:11px; }
 .home-level-grid { grid-template-columns:1fr; gap:0; border:1px solid var(--home-border); border-radius:22px; overflow:hidden; }
 .home-level { border:0; border-radius:0; display:grid; grid-template-columns:36px 1fr; gap:8px 14px; padding:16px; }
 .home-level + .home-level { border-top:1px solid var(--line); }.home-level > strong { grid-row:span 2; align-self:center; }
 .home-level-track { grid-column:2; }.home-level-arrow { top:16px; }
}
@media(prefers-reduced-motion:reduce) { .home-review-button,.home-path { transition:none; transform:none; } }

.home-progress{grid-area:progress;padding:20px;border:1px solid var(--line);border-radius:24px;background:var(--surface);min-width:0}
.home-progress .chips{margin:10px 0;gap:6px;display:flex;flex-wrap:wrap}.home-progress .chip{font-size:12px;min-height:40px}
.home-progress .muted{font-size:11px;line-height:1.5;margin:12px 0 0}.home-progress .progress-summary{font-size:12px}
.progress-axis,.progress-bar-row{display:grid;grid-template-columns:68px minmax(0,1fr) 34px 40px;gap:8px;align-items:center;font-size:11px}
.progress-axis{font-size:10px;color:var(--muted);margin:16px 0 10px}.progress-bars{display:grid;gap:12px}
.progress-bar-track{display:block;height:16px;border-radius:4px;overflow:hidden;background:var(--surface-2)}.progress-bar-track i{display:block;height:100%;border-radius:4px}
@media(min-width:1000px){.home-progress{max-width:800px;width:100%}}
@media(max-width:380px){.home-progress{padding:14px}.progress-axis,.progress-bar-row{grid-template-columns:60px minmax(0,1fr) 28px 32px;gap:5px;font-size:10px}}
