/* Astro tools — additions on top of site.css (same tokens). */
.loc-row{margin-top:12px;align-items:end}
.loc-row .btn{width:100%}
.loc-msg{margin-top:10px}
.stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.stat{border:1px solid var(--border);border-radius:9px;padding:12px;background:#fafbfc;min-width:0}
.stat .k{font-size:.83rem;color:#3d4650;font-weight:600}
.stat .v{font-size:1.25rem;font-weight:700;font-variant-numeric:tabular-nums;line-height:1.3;margin-top:3px}
.stat .s{font-size:.78rem;color:var(--muted);margin-top:2px}
.stat.hl{background:#eef5ff;border-color:#9ec5fe}
.stat.hl .v{color:#174f9c}
.data-table{width:100%;border-collapse:collapse;font-size:.9rem;font-variant-numeric:tabular-nums}
.data-table th,.data-table td{border:1px solid var(--border);padding:9px;text-align:left;vertical-align:top;white-space:nowrap}
.data-table th{font-weight:600;color:var(--text);background:#fff}
.data-table tr.hl td{background:#eef5ff;color:#174f9c;font-weight:600}
.table-wrap{overflow-x:auto}
.ac-wrap{position:relative}
.ac-wrap svg{width:100%;height:auto;display:block;touch-action:pan-y}
.ac-plot{fill:#fff;stroke:var(--border)}
.ac-grid{stroke:#eef0f3;stroke-width:1}
.ac-tick{font-size:11px;fill:#667085;font-family:system-ui,-apple-system,"Segoe UI",sans-serif}
.ac-strong{fill:#202124;font-weight:600}
.ac-hover{stroke:#98a2b3;stroke-width:1}
.ac-read{position:absolute;top:8px;background:#fff;border:1px solid var(--border);border-radius:8px;padding:6px 9px;font-size:.78rem;box-shadow:var(--shadow);pointer-events:none;white-space:nowrap;font-variant-numeric:tabular-nums}
.ac-legend{display:flex;flex-wrap:wrap;gap:14px;font-size:.8rem;color:#3d4650;margin-top:8px}
.ac-legend i{display:inline-block;width:14px;height:3px;border-radius:2px;margin-right:6px;vertical-align:middle}
.seg{display:flex;flex-wrap:wrap;gap:8px}
.seg button{border:1px solid var(--border);background:var(--surface);border-radius:999px;padding:7px 12px;font-size:.88rem;color:inherit}
.seg button:hover,.seg button.on{border-color:#9ec5fe;background:#eef5ff;color:#174f9c}
.howto{font-size:.88rem;color:#414a54}
.howto h3{font-size:.95rem;margin:14px 0 6px;color:var(--text)}
.howto h3:first-child{margin-top:0}
.howto p,.howto ol,.howto ul{margin:0 0 8px}
.howto li{margin-bottom:4px}
.big-line{font-size:1.05rem}
.big-line strong{font-variant-numeric:tabular-nums}
.sundial-wrap{background:#fff;border:1px solid var(--border);border-radius:10px;padding:8px;overflow:auto}
.sundial-wrap svg{width:100%;height:auto;display:block}
.range-row input[type=range]{width:100%}
@media(max-width:620px){.stat .v{font-size:1.15rem}.loc-row .field:last-child label{display:none}}
@media print{.site-header,.site-footer,.tool-hero p,.no-print,aside.panel{display:none!important}.tool-layout{display:block}.panel{border:0;box-shadow:none}}
.am-wrap{position:relative;border:1px solid var(--border);border-radius:10px;overflow:hidden;background:#eef3f8}
.am-canvas{display:block;width:100%;touch-action:pan-y}
.am-tip{position:absolute;background:#fff;border:1px solid var(--border);border-radius:8px;padding:5px 8px;font-size:.76rem;box-shadow:var(--shadow);pointer-events:none;white-space:nowrap;font-variant-numeric:tabular-nums;z-index:2}
.am-caption{font-size:.78rem;color:var(--muted);margin-top:6px}
.legend-row{display:flex;flex-wrap:wrap;gap:14px;font-size:.8rem;color:#3d4650}
.legend-row i{display:inline-block;width:14px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px}

.hub-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
@media(max-width:920px){.hub-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.hub-grid{grid-template-columns:1fr}}
.play-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.play-row input[type=range]{flex:1;min-width:160px}
.canvas-box{background:#fff;border:1px solid var(--border);border-radius:10px;overflow:hidden}
.canvas-box canvas{display:block;width:100%}
