.ip-input-row { display: flex; gap: 10px; margin-bottom: 16px; }
.ip-input-row .input { flex: 1; }
.ip-result { margin-top: 16px; }
.ip-info-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; }
.ip-info-item { padding: 14px 16px; background: var(--bg); border-radius: var(--radius); border: 1px solid var(--border); box-sizing: border-box; min-width: 0; overflow: hidden; }
.ip-label { display: block; font-size: 12px; color: var(--text-muted); margin-bottom: 4px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.5px; }
.ip-value { display: block; font-size: 15px; font-weight: 600; color: var(--text); word-break: break-all; overflow-wrap: break-word; min-width: 0; }
.ip-source { font-size: 13px; color: var(--primary); font-weight: 500; }
.ip-error { margin-top: 16px; padding: 14px 16px; background: #fff3f3; border: 1px solid #ffcccc; border-radius: var(--radius); color: #cc3333; font-size: 14px; }
@media (max-width: 480px) { .ip-input-row { flex-wrap: wrap; } }