/* V2 Home: scoped, token-driven styles (light and dark come from the shared tokens). See docs/V2_PORT_HOME.md. */
.v2h-page { max-width:1240px; }
.v2h-page .page-actions { display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.v2h-page .page-head > div:first-child { min-width:0; }
.v2h-page h1 { overflow-wrap:anywhere; }

.v2h-stats { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border:1px solid var(--line); border-radius:var(--radius-m,12px); background:var(--surface); margin-bottom:22px; overflow:hidden; }
.v2h-stat { display:flex; flex-direction:column; gap:2px; padding:16px 18px; min-width:0; }
.v2h-stat + .v2h-stat { border-left:1px solid var(--line); }
.v2h-stat strong { font-size:26px; line-height:1.1; font-weight:700; color:var(--ink); }
.v2h-stat span { font-size:11.5px; color:var(--muted); }
.v2h-stat small { font-size:10.5px; color:var(--muted); opacity:.85; }

.v2h-grid { display:grid; grid-template-columns:minmax(0,1.6fr) minmax(0,1fr); gap:22px; align-items:start; }
.v2h-col { display:flex; flex-direction:column; gap:18px; min-width:0; }

.v2h-card { border:1px solid var(--line); border-radius:var(--radius-m,12px); background:var(--surface); padding:18px; min-width:0; }
.v2h-card-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:12px; }
.v2h-card-head h2, .v2h-guide h2 { margin:0; font-size:15px; line-height:1.3; color:var(--ink); }
.v2h-card-head p, .v2h-guide p { margin:3px 0 0; font-size:12px; color:var(--muted); line-height:1.5; }
.v2h-kicker { display:block; font-size:10px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); }
.v2h-muted { margin:0; font-size:12.5px; color:var(--muted); }

.v2h-list { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; }
.v2h-row, .v2h-list > li { display:flex; align-items:center; gap:12px; padding:11px 0; border-top:1px solid var(--line); min-width:0; }
.v2h-list > li:first-child { border-top:0; padding-top:2px; }
.v2h-row-icon { display:grid; place-items:center; flex:none; width:32px; height:32px; border-radius:8px; background:var(--surface-soft); color:var(--muted); }
.v2h-row-icon svg { width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.6; }
.v2h-row-copy { display:flex; flex-direction:column; gap:2px; min-width:0; flex:1; }
.v2h-row-copy strong { font-size:13px; color:var(--ink); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.v2h-row-copy small { font-size:11.5px; color:var(--muted); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.v2h-row .btn { flex:none; }

.v2h-improvement { flex-wrap:wrap; align-items:flex-start !important; flex-direction:column; gap:4px !important; }
.v2h-improvement strong { font-size:13px; color:var(--ink); overflow-wrap:anywhere; }
.v2h-improvement small { font-size:12px; color:var(--muted); line-height:1.5; overflow-wrap:anywhere; }
.v2h-improvement .btn { margin-top:6px; }
.v2h-plain > li { flex-direction:column; align-items:flex-start; gap:3px; }
.v2h-plain strong { font-size:13px; color:var(--ink); overflow-wrap:anywhere; }
.v2h-plain small { font-size:12px; color:var(--muted); overflow-wrap:anywhere; }

.v2h-empty { display:flex; flex-direction:column; align-items:flex-start; gap:6px; padding:18px; border:1px dashed var(--line-strong); border-radius:var(--radius-m,12px); background:var(--surface-soft); }
.v2h-empty strong { font-size:14px; color:var(--ink); }
.v2h-empty p { margin:0 0 6px; font-size:12.5px; color:var(--muted); }

.v2h-attention { border-color:var(--orange); }
.v2h-guide { border-top:3px solid var(--orange); }
.v2h-guide h2 { margin-top:6px; font-size:19px; }
.v2h-steps { list-style:none; counter-reset:v2h; margin:14px 0 16px; padding:0; display:flex; flex-direction:column; gap:8px; }
.v2h-steps li { counter-increment:v2h; display:flex; gap:10px; align-items:baseline; }
.v2h-steps li::before { content:"0" counter(v2h); font-size:11px; font-weight:700; color:var(--orange); }
.v2h-link { padding:0; border:0; background:none; color:var(--ink); font-size:12.5px; text-align:left; }
.v2h-link:hover { color:var(--orange); }

.v2h-review { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin-top:10px; }
.v2h-review-cell { display:flex; flex-direction:column; gap:2px; padding:10px; border:1px solid var(--line); border-radius:10px; background:var(--surface-soft); text-align:left; color:var(--ink); }
.v2h-review-cell strong { font-size:20px; }
.v2h-review-cell span { font-size:11px; color:var(--muted); }
.v2h-review-cell:hover { border-color:var(--line-strong); }

.v2h-landing { display:flex; gap:8px; align-items:flex-start; margin-top:22px; font-size:12px; color:var(--muted); }
.v2h-landing input { margin-top:2px; }

.v2h-page button:focus-visible, .v2h-page input:focus-visible, .v2-home-nav:focus-visible { outline:2px solid var(--orange,#ff6200); outline-offset:2px; }
.v2h-nav[hidden] { display:none !important; }

@media (max-width:1000px) {
  .v2h-grid { grid-template-columns:minmax(0,1fr); }
}
@media (max-width:640px) {
  .v2h-stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .v2h-stat:nth-child(3) { border-left:0; }
  .v2h-stat:nth-child(n+3) { border-top:1px solid var(--line); }
  .v2h-page .page-head { flex-direction:column; align-items:stretch; }
  .v2h-page .page-actions .btn { flex:1; }
  .v2h-row { flex-wrap:wrap; }
  .v2h-row-copy { flex-basis:calc(100% - 44px); }
  .v2h-row .badge { margin-left:44px; }
  .v2h-row .btn { margin-left:auto; }
}
