/* Tema base */
	        :root {
            /* Cores de Marca */
            --primary: #2563eb;
            --primary-dark: #1d4ed8;
            --primary-soft: #dbeafe;
            --secondary: #111827;
            --accent: #0891b2;
            
            /* Status */
            --success: #10b981;
            --warning: #f59e0b;
            --error: #ef4444;

            /* Superfícies */
            --bg-page: #f4f7fb;
            --bg-card: #ffffff;
            --bg-subtle: #f1f5f9;

            /* Texto */
            --text-main: #1e293b;
            --text-muted: #64748b;
            --text-light: #94a3b8;

            /* Efeitos */
	            --radius-xl: 8px;
	            --radius-lg: 8px;
	            --radius-md: 8px;
	            --shadow-float: 0 22px 48px -24px rgba(15, 23, 42, 0.36);
	            --shadow-subtle: 0 10px 22px -18px rgba(15, 23, 42, 0.45);
            --border-light: 1px solid #e2e8f0;
        }

        /* --- BASE --- */
	        * { box-sizing: border-box; -webkit-tap-highlight-color: transparent; }
	        
	        body {
            margin: 0;
            padding: 0;
            background:
                linear-gradient(180deg, #ffffff 0%, var(--bg-page) 42%, #eef4fb 100%);
            color: var(--text-main);
	            font-family: 'Inter', sans-serif;
	            line-height: 1.5;
	            min-height: 100vh;
            display: flex;
            flex-direction: column;
            overflow-x: hidden;
	        }

	        button,
	        input,
	        a {
	            font: inherit;
	        }

	        button:focus-visible,
	        input:focus-visible,
	        a:focus-visible {
	            outline: 3px solid rgba(14, 165, 233, 0.35);
	            outline-offset: 3px;
	        }

        /* --- LAYOUT PRINCIPAL --- */
        .app-container {
            flex: 1;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            padding: 24px;
            width: 100%;
            max-width: 1280px;
            margin: 0 auto;
        }

        /* Grid Assimétrico (70% Teste / 30% Sidebar) */
        .dashboard-grid {
            display: grid;
            grid-template-columns: 1fr 360px;
            gap: 28px;
            width: 100%;
            align-items: start;
        }

        /* --- CARTÃO PRINCIPAL (TESTE) --- */
        .main-card {
            background: #fbfdff;
            border-radius: var(--radius-xl);
            box-shadow: var(--shadow-float);
            padding: 0;
            position: relative;
            overflow: hidden;
            border: var(--border-light);
            display: flex;
            flex-direction: column;
        }

        /* Barra de Status Superior */
        .connection-bar {
            background: var(--bg-subtle);
            padding: 18px 32px;
            display: flex;
            justify-content: space-between;
            align-items: center;
            border-bottom: var(--border-light);
        }

        .user-info {
            display: flex;
            align-items: center;
            gap: 12px;
            font-size: 0.9rem;
            color: var(--text-main);
            font-weight: 600;
        }
        
	        .connection-pill {
	            background: white;
	            padding: 6px 16px;
	            border-radius: 999px;
            border: var(--border-light);
            display: flex;
            align-items: center;
            gap: 8px;
            font-size: 0.85rem;
            box-shadow: var(--shadow-subtle);
        }

	        .dot { width: 8px; height: 8px; border-radius: 50%; background: var(--text-light); transition: background 0.3s; }
	        .dot.active { background: var(--success); box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.2); }
	        .ip-detected { color: var(--text-main); }

        /* Área de Teste Central */
        .stage-area {
            padding: 48px 32px 32px 32px;
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 40px;
            position: relative;
        }

        /* Título */
        .brand-header { text-align: center; max-width: 620px; }
	        .brand-header h1 {
	            font-size: 2rem;
	            font-weight: 800;
	            letter-spacing: 0;
            margin: 0;
            color: var(--secondary);
        }

        .brand-header p {
            margin: 8px 0 0;
            color: var(--text-muted);
            font-size: 1rem;
        }

        /* Layout dos Medidores e Botão */
        .gauges-wrapper {
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 40px;
            width: 100%;
            position: relative;
        }

        /* Medidores */
	        .gauge-card {
            flex: 1;
            max-width: 280px;
            height: 220px;
	            background: #ffffff;
	            border: 1px solid #e5e7eb;
	            border-radius: var(--radius-md);
            position: relative;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
        }
        
	        .gauge-label {
	            font-size: 0.8rem;
	            text-transform: uppercase;
	            letter-spacing: 0;
            font-weight: 700;
            color: var(--text-muted);
            margin-bottom: 10px;
            display: flex;
            align-items: center;
            gap: 6px;
        }

        .canvas-container { width: 100%; height: 160px; position: relative; }
        canvas.meter { width: 100%; height: 100%; }

	        .big-number {
            position: absolute;
            bottom: 20px;
            width: 100%;
            text-align: center;
            font-size: 2.5rem;
            font-weight: 900;
            font-feature-settings: "tnum";
            font-variant-numeric: tabular-nums;
	        }

	        .metric-unit {
	            position: absolute;
	            bottom: 5px;
	            font-size: 0.8rem;
	            color: var(--text-light);
	        }

        /* Botão START Centralizado */
        .action-center {
            position: relative;
            z-index: 10;
            flex-shrink: 0;
            display: flex;
            flex-direction: column;
            align-items: center;
        }

        #startStopBtn {
            width: 140px;
            height: 140px;
            border-radius: 50%;
            background: var(--primary);
            border: 6px solid #eff6ff;
            color: white;
            font-size: 1.1rem;
            font-weight: 800;
            cursor: pointer;
            box-shadow: 0 18px 30px -14px rgba(37, 99, 235, 0.75), inset 0 0 0 1px rgba(255,255,255,0.28);
            transition: all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
	            text-transform: uppercase;
	            letter-spacing: 0;
	        }

        #startStopBtn:hover {
            transform: scale(1.05);
            box-shadow: 0 22px 34px -16px rgba(37, 99, 235, 0.85);
            border-color: white;
            background: var(--primary-dark);
            color: white;
        }
        
        #startStopBtn i { font-size: 2rem; margin-bottom: 4px; transition: transform 0.3s; }
        #startStopBtn:hover i { transform: translateX(2px); }

        #startStopBtn.running {
            width: 100px; height: 100px;
            border-color: #fee2e2;
            color: white;
            background: var(--error);
            box-shadow: 0 16px 28px -18px rgba(239, 68, 68, 0.9);
            inset: none;
        }
        #startStopBtn.running:hover { background: #dc2626; color: white; }
        #startStopBtn:disabled {
            cursor: not-allowed;
            opacity: 0.78;
            transform: none;
            box-shadow: none;
            background: #e5e7eb;
            color: #64748b;
        }
        #startStopBtn:disabled:hover {
            background: #e5e7eb;
            color: #64748b;
            border-color: var(--bg-subtle);
        }

        /* Texto de ajuda abaixo do botão */
        .start-hint {
            margin-top: 15px;
            font-size: 0.85rem;
            color: var(--text-muted);
            font-weight: 500;
        }
        .start-hint.hidden { display: none; }

        /* Rodapé de Status (Ping/Jitter) */
        .stats-footer {
            background: var(--bg-card);
            border-top: var(--border-light);
            padding: 24px 32px;
            display: grid;
            grid-template-columns: repeat(2, 1fr);
            gap: 24px;
        }

        .stat-item {
            display: flex;
            flex-direction: column;
            align-items: center;
            padding: 16px;
            background: #ffffff;
            border: 1px solid #e5e7eb;
            border-radius: var(--radius-md);
            transition: transform 0.2s;
        }
	        .stat-item:hover { transform: translateY(-2px); background: #f8fafc; }

        .stat-label { font-size: 0.75rem; font-weight: 700; color: var(--text-muted); text-transform: uppercase; margin-bottom: 4px; }
        .stat-val { font-size: 1.5rem; font-weight: 700; color: var(--text-main); }
        .stat-unit { font-size: 0.8rem; color: var(--text-light); }

        /* Nova Área de Glossário (Dentro do Main Card) */
        .glossary-section {
            padding: 32px;
            border-top: var(--border-light);
            background: var(--bg-card);
        }

        .glossary-header {
            font-size: 1rem;
            font-weight: 700;
            color: var(--text-main);
            margin-bottom: 20px;
            display: flex;
            align-items: center;
            gap: 8px;
        }

        .glossary-grid {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 20px;
        }

        .glossary-item {
            background: #ffffff;
            padding: 16px;
            border-radius: var(--radius-md);
            border: 1px solid #e5e7eb;
            transition: transform 0.2s;
        }
        .glossary-item:hover { transform: translateY(-2px); }

        .glossary-title {
            font-size: 0.9rem;
            font-weight: 700;
            color: var(--text-main);
            margin-bottom: 6px;
            display: flex;
            align-items: center;
            gap: 8px;
        }

        .glossary-desc {
            font-size: 0.85rem;
            color: var(--text-muted);
            line-height: 1.5;
            margin: 0;
        }


        /* --- SIDEBAR (EDUCAÇÃO & SERVER) --- */
	        .sidebar-card {
	            background: #111827;
            color: white;
            border-radius: var(--radius-lg);
            padding: 32px;
            box-shadow: var(--shadow-float);
            position: relative;
            overflow: hidden;
	        }

	        .sidebar-card::before { content: none; }

        .sidebar-content { position: relative; z-index: 1; }

	        .sidebar-title {
            font-size: 1.1rem;
            font-weight: 700;
            margin-bottom: 20px;
            display: flex;
            align-items: center;
            gap: 10px;
            padding-bottom: 12px;
            border-bottom: 1px solid rgba(255,255,255,0.1);
	        }

	        .sidebar-title-spaced {
	            margin-top: 40px;
	            border-top: 1px solid rgba(255,255,255,0.1);
	            padding-top: 20px;
	        }

        /* Servidor selecionado automaticamente */
        .server-control { margin-bottom: 32px; }
        .server-label { font-size: 0.8rem; color: var(--text-light); margin-bottom: 8px; display: block; font-weight: 600; }
	        .selected-server-card {
            display: flex;
            gap: 12px;
            align-items: flex-start;
            background: rgba(255,255,255,0.08);
            border: 1px solid rgba(255,255,255,0.16);
	            border-radius: var(--radius-md);
            padding: 14px;
        }
	        .selected-server-icon {
            width: 36px;
            height: 36px;
	            border-radius: var(--radius-md);
            display: flex;
            align-items: center;
            justify-content: center;
            background: rgba(8,145,178,0.2);
            color: #7dd3fc;
            flex-shrink: 0;
        }
        .selected-server-name {
            display: block;
            font-size: 1rem;
            font-weight: 700;
            color: white;
            line-height: 1.25;
            overflow-wrap: anywhere;
        }
        .selected-server-meta {
            display: block;
            margin-top: 4px;
            font-size: 0.85rem;
            color: var(--text-light);
            line-height: 1.4;
        }
        .selected-server-card.error {
            border-color: rgba(239,68,68,0.55);
            background: rgba(239,68,68,0.12);
        }

        /* Lista de Instruções (Passo a Passo) */
        .instruction-list { display: flex; flex-direction: column; gap: 16px; }
        .instruction { display: flex; gap: 14px; align-items: flex-start; }
        
        .step-number {
            width: 24px; height: 24px; 
            background: var(--accent); 
            border-radius: 50%; 
            display: flex; align-items: center; justify-content: center;
            font-size: 0.8rem; font-weight: 700; color: white;
            flex-shrink: 0; margin-top: 2px;
        }
        
        .instruction-text p { margin: 0; font-size: 0.9rem; color: var(--text-light); line-height: 1.4; }
        .instruction-text strong { color: white; font-weight: 600; display: block; margin-bottom: 2px; }

        /* Botão WhatsApp */
	        .whatsapp-btn {
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 10px;
            background-color: #25D366;
            color: white;
            text-decoration: none;
            padding: 14px 20px;
	            border-radius: var(--radius-md);
            font-weight: 700;
            margin-top: 25px;
            transition: all 0.2s;
            box-shadow: 0 4px 10px rgba(37, 211, 102, 0.3);
            font-size: 0.95rem;
            border: 1px solid rgba(255,255,255,0.1);
	        }

	        .support-block {
	            margin-top: 40px;
	            text-align: left;
	        }

	        .whatsapp-icon {
	            font-size: 1.4rem;
	        }
	        .whatsapp-btn:hover {
	            transform: translateY(-3px);
	            box-shadow: 0 8px 15px rgba(37, 211, 102, 0.4);
	            background-color: #22c35e;
	        }

	        .provider-callout {
	            padding: 18px;
	            border-radius: var(--radius-md);
	            border: 1px solid rgba(255,255,255,0.16);
	            background: rgba(255,255,255,0.08);
	        }

	        .provider-callout-title {
	            font-size: 1rem;
	            font-weight: 800;
	            color: #fff;
	            margin-bottom: 6px;
	        }

	        .provider-callout p {
	            margin: 0 0 14px;
	            color: var(--text-light);
	            font-size: 0.9rem;
	            line-height: 1.45;
	        }

	        .provider-actions {
	            display: grid;
	            grid-template-columns: 1fr;
	            gap: 10px;
	        }

	        .provider-primary-btn,
	        .provider-secondary-btn {
	            display: flex;
	            align-items: center;
	            justify-content: center;
	            min-height: 46px;
	            padding: 12px 16px;
	            border-radius: var(--radius-md);
	            text-decoration: none;
	            font-weight: 800;
	            font-size: 0.92rem;
	            line-height: 1.1;
	            box-shadow: 0 12px 24px -18px rgba(0,0,0,0.65);
	            transition: background 0.2s, border-color 0.2s, transform 0.2s, box-shadow 0.2s;
	        }

	        .provider-primary-btn {
	            background: #ffffff;
	            color: #111827;
	            border: 1px solid #ffffff;
	        }

	        .provider-primary-btn:hover {
	            background: #e0f2fe;
	            border-color: #bae6fd;
	            transform: translateY(-1px);
	            box-shadow: 0 16px 28px -20px rgba(14,165,233,0.8);
	        }

	        .provider-secondary-btn {
	            border: 1px solid rgba(255,255,255,0.32);
	            color: #fff;
	            background: rgba(255,255,255,0.12);
	        }

	        .provider-secondary-btn:hover {
	            background: rgba(255,255,255,0.2);
	            border-color: rgba(255,255,255,0.5);
	            transform: translateY(-1px);
	        }

        /* --- LOADING OVERLAY --- */
	        #loadingOverlay {
            position: absolute; inset: 0; background: rgba(255,255,255,0.94); backdrop-filter: blur(5px);
            z-index: 50; display: flex; flex-direction: column; align-items: center; justify-content: center; transition: opacity 0.4s;
	        }

	        .loading-message {
	            font-weight: 600;
	            color: var(--text-muted);
	        }
        .hidden { opacity: 0; pointer-events: none; }
        
        .loader-dots { display: flex; gap: 8px; margin-bottom: 16px; }
        .loader-dot { width: 12px; height: 12px; background: var(--primary); border-radius: 50%; animation: bounce 0.6s infinite alternate; }
        .loader-dot:nth-child(2) { animation-delay: 0.2s; }
        .loader-dot:nth-child(3) { animation-delay: 0.4s; }
        @keyframes bounce { to { transform: translateY(-10px); opacity: 0.6; } }

        /* --- RESULTADOS (SHARE) --- */
        #shareArea {
            width: 100%;
            max-width: 600px;
            margin-top: 30px;
            background: #f0fdf4;
            border: 1px dashed var(--success);
            border-radius: var(--radius-md);
            padding: 20px;
            text-align: center;
            display: none;
            animation: slideDown 0.4s ease-out;
        }
        @keyframes slideDown { from { opacity: 0; transform: translateY(-10px); } to { opacity: 1; transform: translateY(0); } }

        .share-title { color: var(--success); font-weight: 700; margin-bottom: 10px; display: flex; align-items: center; justify-content: center; gap: 8px; }
	        .share-description {
	            font-size: 0.9rem;
	            color: var(--text-muted);
	            margin-top: 0;
	            margin-bottom: 10px;
	        }
	        .share-input { width: 100%; padding: 12px; border: 1px solid #bbf7d0; border-radius: var(--radius-md); text-align: center; color: var(--text-main); font-family: monospace; background: white; cursor: pointer; }

        /* --- TOAST NOTIFICATION (POPUP) --- */
        .toast {
            visibility: hidden;
            min-width: 280px;
            background-color: var(--secondary);
            color: #fff;
            text-align: center;
            border-radius: var(--radius-md);
            padding: 14px 24px;
            position: fixed;
            z-index: 1000;
            left: 50%;
            bottom: 30px;
            transform: translateX(-50%) translateY(20px);
            opacity: 0;
            transition: all 0.3s ease;
            font-size: 0.95rem;
            font-weight: 600;
            box-shadow: 0 10px 25px rgba(0,0,0,0.2);
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 10px;
        }

        .toast.show {
            visibility: visible;
            opacity: 1;
            transform: translateX(-50%) translateY(0);
            bottom: 40px;
        }

	        .toast i { color: var(--success); font-size: 1.2rem; }

	        .icon-muted { color: var(--text-muted); }
	        .icon-primary { color: var(--primary); }
	        .status-primary { color: var(--primary); }
	        .status-success { color: var(--success); }
	        .status-error { color: var(--error); }
	        .status-muted { color: var(--text-muted); }

        /* --- RESPONSIVIDADE --- */
	        @media (max-width: 900px) {
	            .dashboard-grid { grid-template-columns: 1fr; }
	            .gauges-wrapper { flex-direction: column; gap: 20px; }
	            .action-center { order: -1; margin-bottom: 20px; }
	            .main-card { overflow: visible; }
	            .sidebar-card { order: 2; }
	            .glossary-grid { grid-template-columns: 1fr; } /* Pilha o glossário no mobile */
	        }

	        @media (max-width: 560px) {
	            .app-container { padding: 12px; justify-content: flex-start; }
	            .connection-bar {
	                align-items: stretch;
	                flex-direction: column;
	                gap: 10px;
	                padding: 14px;
	            }
	            .stage-area { padding: 28px 16px 24px; gap: 26px; }
	            .brand-header h1 { font-size: 1.55rem; }
	            #startStopBtn {
	                width: 128px;
	                height: 128px;
	            }
	            .gauge-card {
	                width: 100%;
	                max-width: 320px;
	                height: 190px;
	            }
	            .canvas-container { height: 132px; }
	            .big-number { font-size: 2rem; }
	            .stats-footer {
	                grid-template-columns: 1fr;
	                padding: 16px;
	                gap: 12px;
	            }
	            .glossary-section,
	            .sidebar-card { padding: 20px; }
	            .toast {
	                width: calc(100vw - 24px);
	                min-width: 0;
	            }
	        }

	        @media (prefers-reduced-motion: reduce) {
	            *,
	            *::before,
	            *::after {
	                animation-duration: 0.01ms !important;
	                animation-iteration-count: 1 !important;
	                scroll-behavior: auto !important;
	                transition-duration: 0.01ms !important;
	            }
	        }
        
        .color-dl { color: var(--primary); }
        .color-ul { color: var(--success); }
