.px-form { display: grid; gap: 12px; max-width: 720px; }
.px-form label { display: grid; gap: 4px; font-size: 14px; }
.px-form input { padding: 10px 12px; border: 1px solid color-mix(in srgb, currentColor 25%, transparent); border-radius: 8px; background: transparent; color: inherit; font: inherit; width: 100%; min-width: 0; box-sizing: border-box; }
.px-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(120px, 100%), 1fr)); gap: 12px; }
.px-form button { padding: 12px; border: 0; border-radius: 8px; background: #2563eb; color: #fff; font: inherit; font-weight: 600; cursor: pointer; }
.px-out { margin-top: 20px; }
.px-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.px-table th, .px-table td { padding: 10px 8px; text-align: left; vertical-align: top; border-bottom: 1px solid color-mix(in srgb, currentColor 15%, transparent); }
.px-table small, .px-site small { display: block; opacity: .65; font-size: 12px; font-weight: 400; }
.px-rev { font-size: 18px; margin: 16px 0 4px; }
.px-note { font-size: 12px; opacity: .7; line-height: 1.6; }
.px-err { color: #dc2626; }
@media (max-width: 640px) { .px-table { display: block; overflow-x: auto; } }
.px-warn { color: #b45309; opacity: 1; }
.px-big { font-size: 18px; display: block; }
.px-badge { display: inline-block; margin: 2px 0; padding: 1px 8px; border-radius: 999px; font-size: 12px; background: color-mix(in srgb, currentColor 10%, transparent); }
.px-mapwrap { margin-top: 20px; }
.px-map { height: 420px; width: 100%; border-radius: 8px; border: 1px solid color-mix(in srgb, currentColor 20%, transparent); z-index: 0; }
.px-legend { display: flex; flex-wrap: wrap; gap: 4px 14px; margin-top: 6px; font-size: 12px; }
.px-dot { display: inline-block; width: 10px; height: 10px; border-radius: 50%; margin-right: 4px; }
.px-blue { background: #2563eb; }
.px-orange { background: #ea580c; }
.px-ring { border: 2px solid #111827; box-sizing: border-box; }
.px-h { font-size: 16px; margin: 20px 0 8px; }
.px-scroll { overflow-x: auto; max-width: 100%; }
.px-list { min-width: 560px; }
.px-list tbody tr { cursor: pointer; }
.px-list tbody tr:hover { background: color-mix(in srgb, currentColor 6%, transparent); }
@media (max-width: 640px) { .px-map { height: 320px; } .px-list { display: table; } }
.px-list td:nth-child(n+4) { white-space: nowrap; }
.px-list .px-sub { opacity: .75; }
