.ip-page {
				width: 100%;
				max-width: 1100px;
				margin: 0 auto;
				padding: 40px 24px 60px;
			}
			
			.ip-header {
				margin-bottom: 28px;
			}
			
			.ip-header h1 {
				margin: 0;
				color: #111827;
				font-size: 30px;
				font-weight: 700;
			}
			
			.ip-header p {
				margin: 8px 0 0;
				color: #6b7280;
				font-size: 15px;
			}
			
			.ip-hero {
				position: relative;
				overflow: hidden;
				margin-bottom: 24px;
				padding: 28px;
				background: linear-gradient(135deg, #eff6ff, #ffffff);
				border: 1px solid #dbeafe;
				border-radius: 18px;
				transition: background 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
			}
			
			.ip-hero-label {
				margin-bottom: 8px;
				color: #64748b;
				font-size: 13px;
				font-weight: 600;
			}
			
			.ip-address {
				color: #1d4ed8;
				font-size: 32px;
				font-weight: 800;
				word-break: break-all;
			}
			
			.ip-asn {
				margin-top: 10px;
				color: #64748b;
				font-size: 14px;
			}
			
			.ip-grid {
				display: grid;
				grid-template-columns: repeat(2, minmax(0, 1fr));
				gap: 16px;
				margin-bottom: 24px;
			}
			
			.ip-card {
				min-width: 0;
				padding: 22px;
				background: #ffffff;
				border: 1px solid #e5e7eb;
				border-radius: 16px;
				box-shadow: 0 4px 16px rgba(15, 23, 42, .04);
				transition: background-color 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
			}
			
			.ip-card-label {
				margin-bottom: 8px;
				color: #6b7280;
				font-size: 13px;
				font-weight: 600;
			}
			
			.ip-card-value {
				color: #111827;
				font-size: 18px;
				font-weight: 700;
				word-break: break-word;
			}
			
			.ip-card-sub {
				margin-top: 5px;
				color: #9ca3af;
				font-size: 12px;
			}
			
			.port-card {
				padding: 24px;
				background: #ffffff;
				border: 1px solid #e5e7eb;
				border-radius: 16px;
				box-shadow: 0 4px 16px rgba(15, 23, 42, .04);
				transition: background-color 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
			}
			
			.port-header {
				display: flex;
				align-items: center;
				justify-content: space-between;
				gap: 15px;
				margin-bottom: 20px;
			}
			
			.port-title {
				color: #111827;
				font-size: 20px;
				font-weight: 700;
			}
			
			.port-count {
				display: inline-flex;
				align-items: center;
				justify-content: center;
				min-width: 34px;
				height: 28px;
				padding: 0 10px;
				color: #2563eb;
				background: #eff6ff;
				border-radius: 999px;
				font-size: 13px;
				font-weight: 700;
				transition: color 0.25s ease, background-color 0.25s ease;
			}
			
			.port-loading {
				display: flex;
				align-items: center;
				gap: 12px;
				padding: 20px;
				color: #6b7280;
				background: #f9fafb;
				border-radius: 10px;
				font-size: 14px;
				transition: background-color 0.25s ease, color 0.25s ease;
			}
			
			.port-spinner {
				width: 18px;
				height: 18px;
				flex-shrink: 0;
				border: 2px solid #dbeafe;
				border-top-color: #2563eb;
				border-radius: 50%;
				animation: portSpin .8s linear infinite;
			}
			
			@keyframes portSpin {
			    to {
			        transform: rotate(360deg);
			    }
			}
			
			.port-list {
			    display: grid;
			    grid-template-columns: repeat(3, minmax(0, 1fr));
			    gap: 10px;
			}
			
			.port-item {
			    display: flex;
			    align-items: center;
			    justify-content: space-between;
			    gap: 10px;
			    min-width: 0;
			    padding: 13px 15px;
			    background: #f9fafb;
			    border: 1px solid #f0f0f0;
			    border-radius: 10px;
			    transition: background-color 0.2s ease, border-color 0.2s ease;
			}
			
			.port-item:hover {
			    background: #f3f4f6;
			    border-color: #e5e7eb;
			}
			
			.port-number {
			    color: #111827;
			    font-size: 14px;
			    font-weight: 700;
			    white-space: nowrap;
			}
			
			.port-service {
			    min-width: 0;
			    color: #6b7280;
			    font-size: 12px;
			    text-align: right;
			    overflow: hidden;
			    text-overflow: ellipsis;
			    white-space: nowrap;
			}
			
			.port-empty {
			    padding: 25px;
			    color: #6b7280;
			    background: #f9fafb;
			    border-radius: 10px;
			    text-align: center;
			    font-size: 14px;
			    transition: background-color 0.25s ease, color 0.25s ease;
			}
			
			.port-error {
			    padding: 20px;
			    color: #991b1b;
			    background: #fef2f2;
			    border: 1px solid #fecaca;
			    border-radius: 10px;
			    font-size: 14px;
			    transition: background-color 0.25s ease, border-color 0.25s ease, color 0.25s ease;
			}
			
			.port-note {
			    margin-top: 16px;
			    color: #9ca3af;
			    font-size: 12px;
			    line-height: 1.6;
			}
			
			body.dark-mode .ip-header h1 {
			    color: #f9fafb;
			}
			
			body.dark-mode .ip-header p {
			    color: #9ca3af;
			}
			
			body.dark-mode .ip-hero {
			    background: linear-gradient(135deg, #172554, #111827);
			    border-color: #1e3a8a;
			    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18);
			}
			
			body.dark-mode .ip-hero-label {
			    color: #93c5fd;
			}
			
			body.dark-mode .ip-address {
			    color: #60a5fa;
			}
			
			body.dark-mode .ip-asn {
			    color: #9ca3af;
			}
			
			body.dark-mode .ip-card {
			    background: #171a21;
			    border-color: #374151;
			    box-shadow: 0 4px 16px rgba(0, 0, 0, .20);
			}
			
			body.dark-mode .ip-card-label {
			    color: #9ca3af;
			}
			
			body.dark-mode .ip-card-value {
			    color: #f9fafb;
			}
			
			body.dark-mode .ip-card-sub {
			    color: #6b7280;
			}
			
			body.dark-mode .port-card {
			    background: #171a21;
			    border-color: #374151;
			    box-shadow: 0 4px 16px rgba(0, 0, 0, .20);
			}
			
			body.dark-mode .port-title {
			    color: #f9fafb;
			}
			
			body.dark-mode .port-count {
			    color: #60a5fa;
			    background: #172554;
			}
			
			body.dark-mode .port-loading {
			    color: #9ca3af;
			    background: #111827;
			}
			
			body.dark-mode .port-spinner {
			    border-color: #1e3a8a;
			    border-top-color: #60a5fa;
			}
			
			body.dark-mode .port-item {
			    background: #111827;
			    border-color: #374151;
			}
			
			body.dark-mode .port-item:hover {
			    background: #1f2937;
			    border-color: #4b5563;
			}
			
			body.dark-mode .port-number {
			    color: #f3f4f6;
			}
			
			body.dark-mode .port-service {
			    color: #9ca3af;
			}
			
			body.dark-mode .port-empty {
			    color: #9ca3af;
			    background: #111827;
			}
			
			body.dark-mode .port-error {
			    color: #fca5a5;
			    background: #450a0a;
			    border-color: #7f1d1d;
			}
			
			body.dark-mode .port-note {
			    color: #6b7280;
			}
			
			#online-count, #history-count {
			    color: #6b7280;
			    font-size: 13px;
			}
			
			body.dark-mode #online-count, body.dark-mode #history-count {
			    color: #9ca3af;
			}
			
			@media (max-width: 768px) {
			    .ip-page {
			        padding: 25px 15px 40px;
			    }
			    
			    .ip-header {
			        margin-bottom: 20px;
			    }
			
			    .ip-header h1 {
			        font-size: 25px;
			    }
			
			    .ip-header p {
			        font-size: 13px;
			    }
			
			    .ip-hero {
			        padding: 22px;
			        border-radius: 15px;
			    }
			
			    .ip-address {
			        font-size: 25px;
			    }
			
			    .ip-grid {
			        grid-template-columns: 1fr;
			        gap: 12px;
			    }
			
			    .ip-card {
			        padding: 18px;
			        border-radius: 14px;
			    }
			
			    .ip-card-value {
			        font-size: 17px;
			    }
			
			    .port-card {
			        padding: 18px;
			        border-radius: 14px;
			    }
			
			    .port-title {
			        font-size: 18px;
			    }
			
			    .port-list {
			        grid-template-columns: 1fr;
			    }
			
			    .port-item {
			        padding: 13px;
			    }
			
			    .port-note {
			        line-height: 1.7;
			    }
			
			}
			
			@media (max-width: 380px) {
			
			    .ip-page {
			        padding-left: 10px;
			        padding-right: 10px;
			    }
			
			    .ip-hero {
			        padding: 18px;
			    }
			
			    .ip-address {
			        font-size: 22px;
			    }
			
			    .ip-card {
			        padding: 16px;
			    }
			
			    .port-card {
			        padding: 16px;
			    }
			
			    .port-header {
			        gap: 10px;
			    }
			
			    .port-title {
			        font-size: 17px;
			    }
			
			}
			
			.ip-stat-card {
			    display: flex;
			    align-items: center;
			    justify-content: center;
			    gap: 25px;
			}
			
			.ip-stat-card > div {
			    color: #6b7280;
			    font-size: 13px;
			}
			
			body.dark-mode .ip-stat-card > div {
			    color: #9ca3af;
			}
			
			@media (max-width: 768px) {
			    .ip-stat-card {
			        flex-direction: column;
			        align-items: flex-start;
			        gap: 8px;
			    }
			}