/* Shared parts of the owner tools. Builds on site.css tokens, with the wv-sh- prefix to avoid homepage rules. */
.wv-sh-map { display:grid; gap:12px; }
.wv-sh-map-row { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.2fr); gap:4px 14px; align-items:center; }
.wv-sh-map-row label { font-size:14px; font-weight:600; color:var(--ink-2); }
.wv-sh-map-row select { width:100%; min-height:40px; padding:8px 10px; border:1px solid var(--line-2); border-radius:10px; background:#fff; font:inherit; font-size:15px; color:var(--ink); }
.wv-sh-map-sample { grid-column:2; min-height:17px; font-size:12.5px; color:var(--muted); overflow-wrap:anywhere; }
.wv-sh-kpi { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:10px; margin:0 0 18px; }
.wv-sh-kpi div { padding:12px 14px; border:1px solid var(--line); border-radius:12px; background:#FAFBFE; }
.wv-sh-kpi b { display:block; font-size:24px; font-weight:600; letter-spacing:-.02em; line-height:1.15; color:var(--ink); font-variant-numeric:tabular-nums; }
.wv-sh-kpi span { display:block; margin:3px 0 0; font-size:13px; color:var(--muted); }
.wv-sh-kpi .alert { border-color:#E9C46A; background:#FFF8E6; }
.wv-sh-grade { display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:10px; margin:0 0 18px; }
.wv-sh-grade div { padding:14px; border:1px solid var(--line); border-radius:12px; background:#FAFBFE; }
.wv-sh-grade b { display:block; font-size:34px; font-weight:600; line-height:1; color:var(--blue); }
.wv-sh-grade strong { display:block; margin:8px 0 2px; font-size:15px; color:var(--ink); }
.wv-sh-grade span { display:block; font-size:13.5px; line-height:1.45; color:var(--body); }
.wv-sh-bars { display:grid; gap:8px; margin:0 0 18px; }
.wv-sh-bars .row { display:grid; grid-template-columns:110px minmax(0,1fr) 70px; gap:10px; align-items:center; font-size:14px; color:var(--ink-2); }
.wv-sh-bars .track { display:block; height:10px; border-radius:5px; background:var(--bg-2); overflow:hidden; }
.wv-sh-bars i { display:block; height:100%; background:var(--blue); }
.wv-sh-bars .num { text-align:right; font-variant-numeric:tabular-nums; }
.wv-sh-table { max-width:100%; margin:0 0 18px; overflow-x:auto; border:1px solid var(--line); border-radius:12px; background:#fff; }
.wv-sh-table table { width:100%; min-width:560px; border-collapse:collapse; font-size:14px; }
.wv-sh-table caption { padding:10px 12px; text-align:left; font-weight:600; color:var(--ink); }
.wv-sh-table th, .wv-sh-table td { padding:9px 12px; border-top:1px solid var(--line); text-align:left; color:var(--ink-2); }
.wv-sh-table th { font-size:12.5px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:var(--muted); background:#FAFBFE; }
.wv-sh-table .n { text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap; }
@media (max-width:560px) { .wv-sh-map-row { grid-template-columns:1fr; } .wv-sh-map-sample { grid-column:1; } .wv-sh-bars .row { grid-template-columns:84px minmax(0,1fr) 60px; } }
