/* 網路速度測試 */
.tool { display: flex; flex-direction: column; gap: 18px; }
.lead { margin: 0; text-align: center; color: var(--muted); }
.go-wrap { display: flex; justify-content: center; }
.go { min-height: 56px; min-width: 12rem; padding: 8px 32px; font: inherit; font-size: 1.25rem; font-weight: 700; color: #fff; background: var(--accent); border: 2px solid var(--accent); border-radius: 999px; cursor: pointer; }
.go:disabled { opacity: .6; cursor: default; }
.go:hover:not(:disabled), .go:focus-visible { outline: 3px solid var(--accent-soft); }
.status { margin: 0; text-align: center; color: var(--muted); min-height: 1.5em; }
.cards { display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); }
.stat { padding: 16px; text-align: center; background: var(--panel); border: 1px solid var(--line); border-radius: 12px; }
.stat.now { border-color: var(--accent); background: var(--accent-soft); }
.stat h2 { margin: 0 0 6px; font-size: 1rem; font-weight: 700; color: var(--muted); }
.stat .num { margin: 0; font-size: clamp(1.75rem, 8vw, 2.5rem); font-weight: 700; font-variant-numeric: tabular-nums; line-height: 1.15; overflow-wrap: anywhere; }
.stat .sub { margin: 4px 0 0; font-size: .875rem; color: var(--muted); }
.panel { padding: 16px; background: var(--panel); border: 1px solid var(--line); border-radius: 12px; }
.panel h2 { margin: 0 0 10px; font-size: 1.125rem; }
.verdicts { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); }
.verdicts li { display: flex; align-items: center; gap: 8px; padding: 8px 12px; background: #F0F3F1; border-radius: 10px; }
.verdicts .mark { font-weight: 700; }
.verdicts .yes .mark { color: #1E7B4B; }
.verdicts .no { color: var(--muted); }
.verdicts .no .mark { color: #C0392B; }
.error { margin: 0; padding: 10px 14px; border-radius: 12px; background: #FDECEA; color: #7a1f14; font-weight: 700; }
.notes { margin: 0; padding-left: 1.25rem; color: var(--muted); }
