.find-my-ip-page{min-height:unset;padding:0}.find-my-ip-container{max-width:100%;margin:0;padding:0}.find-my-ip-container .intro{font-size:1rem;color:var(--color-text-secondary);text-align:center;margin-bottom:1.25rem;line-height:1.6}.ip-data-loading{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:3rem 2rem;color:var(--color-text-secondary);font-size:.9375rem;background:var(--color-bg-elevated);border:1px solid #ffffff12;border-radius:var(--radius-md)}.ip-loading-spinner{display:block;width:28px;height:28px;border:3px solid #ffffff1a;border-top:3px solid var(--color-primary);border-radius:50%;animation:ip-spin .7s linear infinite}@keyframes ip-spin{to{transform:rotate(1turn)}}.ip-tool-grid{display:grid;grid-template-columns:1fr;gap:.5rem;margin-bottom:.5rem}.ip-cell-map-header{order:4}.ip-cell-map-body{order:5}.ip-cell-map-footer{order:6}.ip-cell-info-header{order:1}.ip-cell-info-body{order:2}.ip-cell-info-footer{order:3}.ip-cell-map-header{margin-top:.75rem}@media (min-width:860px){.ip-tool-grid{grid-template-columns:minmax(180px,30%) 1fr;column-gap:1.5rem;row-gap:.5rem}.ip-cell-info-body,.ip-cell-info-footer,.ip-cell-info-header,.ip-cell-map-body,.ip-cell-map-footer,.ip-cell-map-header{order:unset;margin-top:0}.ip-cell-map-body{align-self:stretch}.ip-cell-map-body .leaflet-map-div{height:100%}.ip-cell-info-body{display:flex;flex-direction:column;gap:.75rem}}.ip-cell-info-body{display:flex;flex-direction:column;gap:.75rem}.ip-cell-info-header{display:flex;align-items:center}.ip-status-badge{display:inline-flex;align-items:center;gap:.5rem;padding:.35rem .85rem;border-radius:100px;font-size:.8rem;font-weight:600;letter-spacing:.02em;width:-moz-fit-content;width:fit-content}.ip-status-badge--protected{background:#22c55e1f;color:#4ade80;border:1px solid #22c55e40}.ip-status-badge--unprotected{background:#ef44441a;color:#f87171;border:1px solid #ef444438}.ip-status-badge--loading{background:#ffffff0d;color:var(--color-text-muted);border:1px solid #ffffff14}.status-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.ip-status-badge--protected .status-dot{background:#4ade80;box-shadow:0 0 5px #4ade808c}.ip-status-badge--unprotected .status-dot{background:#f87171;box-shadow:0 0 5px #f871718c}.ip-address-card{background:var(--color-bg-elevated);border:1px solid #ffffff17;border-radius:var(--radius-md);padding:1rem 1.125rem}.ip-address-label{display:block;font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.09em;color:var(--color-text-muted);margin-bottom:.45rem}.ip-address-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.ip-address-value{font-size:clamp(1.125rem,2.5vw,1.375rem);font-weight:700;color:var(--color-primary);font-family:SF Mono,Fira Code,ui-monospace,monospace;letter-spacing:.015em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.ip-address-card--secondary .ip-address-value{font-size:clamp(.8rem,1.4vw,.9375rem);color:var(--color-text-secondary)}.ip-copy-btn{appearance:none;border:1px solid #ffffff1c;background:#ffffff0d;color:var(--color-text-secondary);padding:.375rem;border-radius:8px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;line-height:0;flex-shrink:0;transition:background .15s,border-color .15s,transform .1s}.ip-copy-btn:hover{background:#ffffff1a;border-color:#fff3}.ip-copy-btn:active{transform:scale(.93)}.ip-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.ip-info-item{background:var(--color-bg-elevated);border:1px solid #ffffff12;border-radius:var(--radius-md);padding:.6rem .875rem;display:flex;flex-direction:column;gap:.2rem;overflow:hidden}.ip-info-item--full{grid-column:1/-1}.ip-info-label{font-size:.6563rem;font-weight:700;text-transform:uppercase;letter-spacing:.09em;color:var(--color-text-muted)}.ip-info-value{font-size:.9375rem;font-weight:600;color:var(--color-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ip-data-note{font-size:.8rem;color:var(--color-text-muted);text-align:center;font-style:italic;margin-top:.125rem}.ip-cell-map-header h3{font-size:1rem;font-weight:700;color:var(--color-text-primary);margin:0 0 .25rem}.map-description{font-size:.875rem;color:var(--color-text-secondary);line-height:1.55;margin:0}.map-container{position:relative;border-radius:var(--radius-md);overflow:hidden;border:1px solid #ffffff14;background:var(--color-bg-elevated)}.leaflet-map-div{width:100%;height:280px}@media (min-width:860px){.leaflet-map-div{height:100%;min-height:200px}}.leaflet-container .leaflet-control-attribution{background:#00000080!important;color:#ffffff73!important;font-size:.6875rem}.leaflet-container .leaflet-control-attribution a{color:#ffffff8c!important}.map-container--locked .leaflet-map-div{pointer-events:none;filter:blur(1px) brightness(.65)}.ip-map-pin{width:14px;height:14px;background:var(--color-primary,#4299e1);border:2px solid #ffffffe6;border-radius:50%;box-shadow:0 0 0 4px #4299e14d}.map-lock-overlay{position:absolute;inset:0;flex-direction:column;gap:.375rem;background:#0a0c1299;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);text-align:center;padding:1rem;pointer-events:none;-webkit-user-select:none;user-select:none}.map-lock-icon,.map-lock-overlay{display:flex;align-items:center;justify-content:center}.map-lock-icon{width:40px;height:40px;border-radius:50%;background:#ffffff14;border:1px solid #ffffff1f;color:#ffffffb3;margin-bottom:.25rem}.map-lock-title{font-size:.9375rem;font-weight:700;color:#ffffffd9;margin:0}.map-lock-subtitle{font-size:.8rem;color:#ffffff73;margin:0}.map-loading{width:100%;height:300px;display:flex;align-items:center;justify-content:center;color:var(--color-text-secondary);font-size:.9375rem}.map-attribution{font-size:.8rem;color:var(--color-text-muted);text-align:center}.map-attribution a{color:var(--color-primary);text-decoration:none;transition:color .15s}.map-attribution a:hover{color:var(--color-primary-hover);text-decoration:underline}.page-sections-grid{display:grid;grid-template-columns:1fr}@media (min-width:860px){.page-sections-grid{grid-template-columns:1fr 1fr;gap:2.5rem;align-items:start}.page-sections-grid>section{padding-top:0;margin-top:0}}@media (max-width:859px){.ip-address-value{font-size:1.125rem}.ip-info-grid{gap:.4rem}}