/* v4 today: cards scroll internally; short windows scroll the full grid. */
#main.home-view { overflow-y:auto; }
/* Four row minima plus three gaps: 58 + 210 + 100 + 150 + 3 * 14. */
.home-view .home-grid { height:100%; min-height:560px; display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); grid-template-rows:58px minmax(210px,1.15fr) 100px minmax(150px,1fr); gap:14px; }
.home-view .home-grid > * { min-width:0; min-height:0; }
.home-view .home-grid .card { padding:16px 18px; border:1px solid var(--line); border-radius:var(--r-lg); box-shadow:var(--sh-1); background:var(--surface); display:flex; flex-direction:column; gap:10px; }
.v4-home-header { grid-column:1/-1; display:flex; align-items:center; justify-content:space-between; gap:12px; }
.v4-home-header h1 { font-size:28px; line-height:1.2; }
.v4-home-header p,.v4-home-note { color:var(--ink-3); font-size:13px; margin-top:4px; }
.v4-home-hero { grid-column:span 8; padding:22px 26px; border-radius:var(--r-xl); background:var(--accent-grad); color:var(--accent-ink); display:flex; flex-direction:column; overflow:auto; }
.v4-home-kicker { display:flex; align-items:center; gap:8px; font-size:13px; opacity:.9; }
.home-view svg.i { width:20px; height:20px; }
.v4-home-hero h2 { font-size:30px; line-height:1.25; margin:10px 0 4px; overflow-wrap:anywhere; }
.v4-home-hero > p:not(.v4-home-kicker) { font-size:14px; opacity:.85; }
.v4-home-hero-meta { display:flex; gap:28px; margin:12px 0; font-size:12px; }
.v4-home-hero-meta b { font-size:21px; margin-left:6px; }
.v4-home-actions { display:flex; gap:10px; margin-top:auto; flex-wrap:wrap; }
.v4-home-actions .secondary { color:var(--accent-strong); }
.v4-home-actions .tonal { background:transparent; color:var(--accent-ink); border-color:currentColor; }
.v4-home-timeline { grid-column:span 4; }
.v4-home-scroll { flex:1; min-height:0; overflow:auto; overscroll-behavior:contain; }
.v4-home-lesson { display:flex; gap:10px; align-items:center; padding:10px 0; border-bottom:1px solid var(--line); font-size:12px; }
.v4-home-lesson time { flex:none; font-weight:600; }
.v4-home-lesson small { display:block; font-size:11px; color:var(--ink-3); font-weight:400; }
.v4-home-lesson button { flex:1; min-width:0; text-align:left; }
.v4-home-lesson strong { display:block; font-size:14px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.v4-home-lesson > span { font-size:11px; color:var(--ink-3); flex:none; }
.v4-home-lesson.now strong,.v4-home-lesson.now > span { color:var(--accent-strong); }
.v4-home-lesson.done { opacity:.55; }
.v4-home-kpi { grid-column:span 3; }
.home-view .home-grid .v4-home-kpi { gap:4px; padding:12px 18px; }
.v4-home-kpi > span,.v4-home-kpi small { color:var(--ink-3); font-size:12px; }
.v4-home-kpi b { font-size:28px; line-height:1.1; }
.v4-home-todo-area { grid-column:span 5; display:flex; flex-direction:column; gap:8px; }
.v4-home-todos { flex:1; min-height:0; }
.v4-home-task { display:flex; align-items:center; gap:9px; padding:10px 0; border-bottom:1px solid var(--line); }
.v4-home-task input { margin:0; flex:none; }
.v4-home-task button,.v4-home-task a { text-align:left; flex:1; min-width:0; font-size:13px; overflow-wrap:anywhere; }
.v4-home-task time { color:var(--ink-3); font-size:11px; max-width:90px; }
.v4-home-task a small { display:block; color:var(--ink-3); font-size:11px; }
.it-todos .home-todo-target { outline:2px solid var(--accent); outline-offset:-2px; background:var(--accent-soft,var(--surface)); }
.v4-home-links { display:flex; align-items:center; flex:none; gap:14px; overflow:auto; white-space:nowrap; font-size:12px; }
.v4-home-links span { color:var(--ink-3); }
.v4-home-links a { color:var(--accent-strong); }
.v4-home-progress { grid-column:span 7; }
.v4-home-bar { display:grid; grid-template-columns:minmax(65px,100px) minmax(0,1fr) 44px; gap:12px; align-items:center; padding:7px 0; font-size:13px; }
.v4-home-bar > span:first-child { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.v4-home-bar b { text-align:right; font-weight:500; }
.v4-home-bar progress,.v4-home-track { appearance:none; width:100%; height:8px; border:0; border-radius:4px; background:var(--bg-2); color:var(--accent); }
.v4-home-bar progress::-webkit-progress-bar { background:var(--bg-2); border-radius:4px; }
.v4-home-bar progress::-webkit-progress-value { background:var(--accent); border-radius:4px; }
.v4-home-bar progress::-moz-progress-bar { background:var(--accent); border-radius:4px; }
.v4-home-empty { height:100%; min-height:50px; display:flex; align-items:center; justify-content:center; gap:8px; color:var(--ink-3); font-size:13px; }
@media (max-width:1100px) and (min-width:851px) {
 .home-view .home-grid { min-height:556px; gap:10px; grid-template-rows:58px minmax(210px,1fr) 108px minmax(150px,1fr); }
 .v4-home-hero { grid-column:span 7; padding:18px; }
 .v4-home-timeline { grid-column:span 5; }
 .home-view .home-grid .card { padding:12px; }
}
@media (max-width:850px) {
 #main.home-view { overflow:auto; }
 .home-view .home-grid { height:auto; min-height:0; grid-template-columns:repeat(4,minmax(0,1fr)); grid-template-rows:auto; }
 .v4-home-header,.v4-home-hero,.v4-home-timeline,.v4-home-todo-area,.v4-home-progress { grid-column:1/-1; }
 .home-view .home-grid .card { min-height:0; max-height:none; }
 .v4-home-kpi { grid-column:span 2; }
 .v4-home-hero { min-height:220px; }
 .v4-home-scroll { max-height:240px; flex:auto; }
 .v4-home-todo-area { min-height:160px; }
 .v4-home-header h1 { font-size:24px; }
}
@media print { #main.home-view { overflow:visible; } .home-view .home-grid { height:auto; min-height:0; } .v4-home-scroll { overflow:visible; max-height:none; } }
