/* IP Address Lookup — tool-specific styles */

.ip-privacy-note {
  font-size: 0.875rem;
  color: var(--color-muted);
  margin: 0;
}

.ip-input-row {
  margin-bottom: 1rem;
}

.ip-input {
  width: 100%;
  font-family: 'Courier New', Courier, monospace;
  font-size: 0.9375rem;
  letter-spacing: 0.01em;
}

.ip-error {
  color: #b91c1c;
  font-size: 0.875rem;
  margin-top: 10px;
  padding: 8px 12px;
  background: #fef2f2;
  border: 1px solid #fecaca;
  border-radius: 6px;
}

.ip-loading {
  font-size: 0.9rem;
  color: var(--color-muted);
  margin-top: 10px;
  padding: 8px 12px;
  background: var(--bg-secondary, #f9fafb);
  border-radius: 6px;
  border: 1px solid var(--border-color);
}

.ip-empty-state {
  text-align: center;
  color: var(--color-muted);
  padding: 2rem 1rem;
}

/* Results grid */
.ip-stat-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
}

@media (min-width: 640px) {
  .ip-stat-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (min-width: 900px) {
  .ip-stat-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}

.ip-stat-card--feature {
  grid-column: span 2;
}

.ip-stat-card--wide {
  grid-column: span 2;
}

@media (min-width: 900px) {
  .ip-stat-card--wide {
    grid-column: span 2;
  }
}

/* Smaller font for long ISP strings */
.ip-stat-isp {
  font-size: clamp(0.9rem, 0.8rem + 0.5vw, 1.15rem) !important;
  word-break: break-word;
}

/* Monospace values (IP, lat, lon) */
.ip-monospace {
  font-family: 'Courier New', Courier, monospace;
  font-size: clamp(1rem, 0.9rem + 0.6vw, 1.3rem) !important;
  letter-spacing: 0.02em;
}

/* Map link */
.ip-map-row {
  margin-top: 1rem;
  text-align: right;
}

.ip-map-row a {
  font-size: 0.875rem;
  color: var(--color-link, #2563eb);
  text-decoration: none;
}

.ip-map-row a:hover {
  text-decoration: underline;
}

@media (max-width: 480px) {
  .ip-stat-card--feature,
  .ip-stat-card--wide {
    grid-column: span 2;
  }
}
