/* EdCatalyst — IP Geolocation Ultra. Recolored from blue glass theme to brand terracotta/gold/peacock. Bug fixes: see geo.js (subnet calc crash on missing IP, unescaped HTML/onclick injection in render functions). */
.geo-title {
    background: linear-gradient(135deg, #f2b13a, #d8900c);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}
:root {
            --bs-primary: #1f6fa8;
            --bs-dark-rgb: 10, 25, 40;
            --bs-secondary-rgb: 28, 55, 75;
        }
        
        body {
            font-family: 'Inter', sans-serif;
            background: radial-gradient(circle at 10% 20%, rgba(43, 27, 16, 0.95), rgba(20, 12, 6, 0.98));
            min-height: 100vh;
            color: #fff;
            padding: 2rem 0;
        }
        
        .bg-glass {
            background: rgba(43, 27, 16, 0.7);
            backdrop-filter: blur(12px);
            -webkit-backdrop-filter: blur(12px);
            border: 1px solid rgba(31, 111, 168, 0.2);
            border-radius: 24px;
        }
        
        .card {
            background: rgba(48, 30, 18, 0.8);
            backdrop-filter: blur(8px);
            border: 1px solid rgba(216, 144, 12, 0.15);
            border-radius: 20px;
            color: white;
            transition: all 0.2s ease;
            box-shadow: 0 8px 20px rgba(0,0,0,0.3);
        }
        
        .card:hover {
            border-color: rgba(216, 144, 12, 0.4);
            background: rgba(55, 35, 20, 0.9);
            transform: translateY(-2px);
        }
        
        .card-header {
            background: rgba(40, 25, 14, 0.6);
            border-bottom: 1px solid rgba(216, 144, 12, 0.2);
            border-radius: 20px 20px 0 0 !important;
            padding: 1.2rem 1.5rem;
            font-weight: 600;
            color: #f2e0c8;
        }
        
        .form-control, .form-select {
            background: rgba(40, 25, 14, 0.7);
            border: 1.5px solid rgba(31, 111, 168, 0.3);
            border-radius: 40px;
            padding: 0.8rem 1.5rem;
            color: white;
            backdrop-filter: blur(5px);
        }
        
        .form-control:focus, .form-select:focus {
            background: rgba(15, 35, 55, 0.9);
            border-color: #1f6fa8;
            box-shadow: 0 0 0 0.25rem rgba(31, 111, 168, 0.25);
            color: white;
        }
        
        .btn-primary {
            background: linear-gradient(145deg, #a83c0c, #7a2b08);
            border: none;
            border-radius: 40px;
            padding: 0.8rem 2rem;
            font-weight: 600;
            border: 1px solid rgba(255,255,255,0.1);
        }
        
        .btn-primary:hover {
            background: linear-gradient(145deg, #c44d10, #a83c0c);
            transform: scale(1.02);
        }
        
        .btn-outline-info {
            border-radius: 40px;
            border-color: rgba(216, 144, 12, 0.4);
            color: #f2b13a;
        }
        
        .btn-outline-info:hover {
            background: rgba(216, 144, 12, 0.2);
            color: white;
        }
        
        .badge {
            padding: 0.5rem 1rem;
            border-radius: 40px;
            font-weight: 500;
        }
        
        .list-group-item {
            background: rgba(46, 29, 17, 0.6);
            border: 1px solid rgba(216, 144, 12, 0.1);
            color: white;
            border-radius: 16px !important;
            margin-bottom: 0.5rem;
        }
        
        .progress {
            height: 8px;
            border-radius: 10px;
            background: rgba(60, 38, 22, 0.5);
        }
        
        .progress-bar {
            background: linear-gradient(90deg, #1f6fa8, #d8900c);
            border-radius: 10px;
        }
        
        .nav-tabs {
            border-bottom: 1px solid rgba(216, 144, 12, 0.2);
        }
        
        .nav-tabs .nav-link {
            color: #e8c9a0;
            border-radius: 40px 40px 0 0;
            padding: 0.8rem 1.5rem;
        }
        
        .nav-tabs .nav-link.active {
            background: rgba(65, 40, 24, 0.5);
            color: white;
            border-color: rgba(216, 144, 12, 0.4);
        }
        
        .table {
            color: white;
        }
        
        .table td, .table th {
            border-color: rgba(216, 144, 12, 0.2);
        }
        
        .tool-card {
            cursor: pointer;
            transition: all 0.2s;
            height: 100%;
        }
        
        .tool-card:hover {
            background: rgba(31, 111, 168, 0.2);
            border-color: #1f6fa8;
            transform: translateY(-5px);
        }
        
        @keyframes pulse {
            0% { opacity: 1; }
            50% { opacity: 0.7; }
            100% { opacity: 1; }
        }
        
        .pulse {
            animation: pulse 2s infinite;
        }
        
        .stat-circle {
            width: 60px;
            height: 60px;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            background: rgba(31, 111, 168, 0.2);
            border: 2px solid #1f6fa8;
            font-size: 1.5rem;
        }
        
        /* Custom Scrollbar */
        ::-webkit-scrollbar {
            width: 8px;
            height: 8px;
        }
        
        ::-webkit-scrollbar-track {
            background: rgba(40, 25, 14, 0.5);
            border-radius: 10px;
        }
        
        ::-webkit-scrollbar-thumb {
            background: rgba(31, 111, 168, 0.5);
            border-radius: 10px;
        }
        
        ::-webkit-scrollbar-thumb:hover {
            background: rgba(31, 111, 168, 0.8);
        }
        
        /* Tool Output Animation */
        .tool-output {
            animation: slideIn 0.3s ease;
        }
        
        @keyframes slideIn {
            from {
                opacity: 0;
                transform: translateY(-10px);
            }
            to {
                opacity: 1;
                transform: translateY(0);
            }
        }
    