@keyframes ip-spin{to{transform:rotate(360deg)}}.ip-tool{background:#fff;border-radius:16px;border:1px solid var(--gray-200);padding:2rem;margin-top:2rem}.ip-myip-header{display:flex;align-items:flex-start;gap:.875rem;margin-bottom:1.5rem}.ip-myip-badge{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:var(--primary-50, #eff6ff);border:1px solid var(--primary-100, #dbeafe);border-radius:10px;flex-shrink:0}.ip-myip-badge svg{width:20px;height:20px;stroke:var(--primary-500, #3b82f6)}.ip-myip-title{font-size:1rem;font-weight:700;color:var(--gray-800);margin:0 0 .2rem}.ip-myip-subtitle{font-size:.8rem;color:var(--gray-500);margin:0}.ip-loading{display:flex;align-items:center;gap:.75rem;padding:1rem 0;color:var(--gray-400);font-size:.9rem}.ip-spinner{width:18px;height:18px;border:2px solid var(--gray-200);border-top-color:var(--primary-500, #3b82f6);border-radius:50%;animation:ip-spin .75s linear infinite;flex-shrink:0}.ip-address-hero,.ip-error{display:flex;align-items:center}.ip-error{gap:.6rem;padding:.875rem 1.25rem;background:#fef2f2;border:1.5px solid #fecaca;border-radius:10px;color:#dc2626;font-size:.875rem;font-weight:600;margin-top:.5rem}.ip-address-hero{gap:1rem;padding:1.25rem 1.5rem;background:var(--primary-50, #eff6ff);border:1.5px solid var(--primary-200, #bfdbfe);border-radius:12px;margin-bottom:1.25rem;flex-wrap:wrap}.ip-hero-address{font-size:1.6rem;font-weight:800;color:var(--primary-600, #2563eb);font-family:"Courier New",Courier,monospace;letter-spacing:.02em;word-break:break-all;flex:1}.ip-hero-meta{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.ip-hero-flag{font-size:1.75rem;line-height:1}.ip-hero-country{font-size:.9rem;font-weight:600;color:var(--gray-700)}.ip-type-badge{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:.2rem .6rem;border-radius:20px;background:var(--primary-100, #dbeafe);color:var(--primary-700, #1d4ed8);border:1px solid var(--primary-200, #bfdbfe)}.ip-copy-btn{padding:.4rem .9rem;border:1.5px solid var(--primary-200, #bfdbfe);border-radius:8px;background:#fff;color:var(--primary-600, #2563eb);font-size:.8rem;font-weight:600;cursor:pointer;transition:all .15s;white-space:nowrap;flex-shrink:0}.ip-copy-btn:hover{background:var(--primary-500, #3b82f6);border-color:var(--primary-500, #3b82f6);color:#fff}.ip-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.75rem}.ip-card{display:flex;flex-direction:column;gap:.3rem;padding:1rem 1.25rem;background:var(--gray-50);border:1px solid var(--gray-100);border-radius:10px;transition:border-color .15s,background .15s}.ip-card:hover{border-color:var(--primary-200, #bfdbfe);background:#fff}.ip-card-icon-row{display:flex;align-items:center;gap:.45rem;margin-bottom:.1rem}.ip-card-icon-row svg{width:13px;height:13px;stroke:var(--gray-400);flex-shrink:0}.ip-card-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--gray-400)}.ip-card-value{font-size:.95rem;font-weight:600;color:var(--gray-800);word-break:break-word}.ip-card-value.mono{font-family:"Courier New",Courier,monospace;font-size:.88rem}.ip-card-value.na{color:var(--gray-300);font-weight:400;font-style:italic}.ip-lookup-row{display:flex;gap:.75rem;align-items:center;margin-bottom:1rem;flex-wrap:wrap}.ip-lookup-input{flex:1;min-width:200px;padding:.65rem 1rem;border:1.5px solid var(--gray-200);border-radius:10px;font-size:.95rem;font-family:"Courier New",Courier,monospace;color:var(--gray-800);outline:0;transition:border-color .15s,box-shadow .15s;box-sizing:border-box}.ip-lookup-input:focus{border-color:var(--primary-400, #60a5fa);box-shadow:0 0 0 3px rgba(59,130,246,.1)}.ip-section-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--gray-400);margin:1rem 0 .5rem;padding-bottom:.4rem;border-bottom:1px solid var(--gray-100);grid-column:1/-1}@media (max-width:600px){.ip-tool{padding:1.25rem}.ip-hero-address{font-size:1.2rem}.ip-grid{grid-template-columns:1fr 1fr}.ip-lookup-row{flex-direction:column;align-items:stretch}.ip-lookup-input{min-width:unset}}@media (max-width:400px){.ip-grid{grid-template-columns:1fr}}