:root{--color-primary-bg: #eef2ff;--color-success: #10b981;--color-warning: #f59e0b;--color-danger: #ef4444;--color-info: #3b82f6;--color-success-bg: #d1fae5;--color-warning-bg: #fef3c7;--color-danger-bg: #fee2e2;--color-info-bg: #dbeafe;--bg-body: #f9fafb;--bg-card: #ffffff;--bg-sidebar: #111827;--bg-input: #ffffff;--bg-code: #f3f4f6;--bg-table-header: #f9fafb;--bg-table-hover: #f9fafb;--bg-traffic-item: #f9fafb;--text-primary: #111827;--text-secondary: #4b5563;--text-muted: #9ca3af;--text-inverse: #ffffff;--border-color: #e5e7eb;--badge-success-text: #065f46;--badge-warning-text: #92400e;--badge-danger-text: #991b1b;--badge-info-text: #1e40af;--alert-success-border: #a7f3d0;--alert-warning-border: #fde68a;--alert-danger-border: #fecaca;--alert-info-border: #bfdbfe;--skeleton-base: #e5e7eb;--skeleton-highlight: #f3f4f6;--btn-primary-bg: #6366f1;--btn-primary-hover: #4f46e5;--btn-success-bg: #10b981;--btn-success-hover: #059669;--btn-danger-bg: #ef4444;--btn-danger-hover: #dc2626;--btn-warning-bg: #f59e0b;--btn-warning-hover: #d97706;--btn-ghost-color: #6366f1;--btn-ghost-hover-bg: #eef2ff;--focus-ring: 0 0 0 3px rgba(99, 102, 241, .2);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -2px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -4px rgba(0, 0, 0, .1);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 8px 10px -6px rgba(0, 0, 0, .1)}[data-theme=dark]{--color-primary-bg: rgba(99, 102, 241, .15);--color-success: #10b981;--color-warning: #f59e0b;--color-danger: #ef4444;--color-info: #3b82f6;--color-success-bg: rgba(16, 185, 129, .15);--color-warning-bg: rgba(245, 158, 11, .15);--color-danger-bg: rgba(239, 68, 68, .15);--color-info-bg: rgba(59, 130, 246, .15);--bg-body: #12141a;--bg-card: #1c1f2e;--bg-sidebar: #0d0f14;--bg-input: #1c1f2e;--bg-code: #252838;--bg-table-header: #171a24;--bg-table-hover: rgba(255, 255, 255, .04);--bg-traffic-item: #171a24;--text-primary: #e5e7eb;--text-secondary: #9ca3af;--text-muted: #6b7280;--text-inverse: #111827;--border-color: #2d3140;--badge-success-text: #6ee7b7;--badge-warning-text: #fcd34d;--badge-danger-text: #fca5a5;--badge-info-text: #93c5fd;--alert-success-border: rgba(16, 185, 129, .3);--alert-warning-border: rgba(245, 158, 11, .3);--alert-danger-border: rgba(239, 68, 68, .3);--alert-info-border: rgba(59, 130, 246, .3);--skeleton-base: #22252f;--skeleton-highlight: #2d3140;--btn-primary-bg: #4f46e5;--btn-primary-hover: #4338ca;--btn-success-bg: #059669;--btn-success-hover: #047857;--btn-danger-bg: #dc2626;--btn-danger-hover: #b91c1c;--btn-warning-bg: #d97706;--btn-warning-hover: #b45309;--btn-ghost-color: #a5b4fc;--btn-ghost-hover-bg: rgba(99, 102, 241, .12);--focus-ring: 0 0 0 3px rgba(129, 140, 248, .25);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .4), 0 2px 4px -2px rgba(0, 0, 0, .3);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .4), 0 4px 6px -4px rgba(0, 0, 0, .3);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .5), 0 8px 10px -6px rgba(0, 0, 0, .4)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}body,.card,.topbar,.modal,.modal-header,.modal-footer,.input,.select,.textarea,.table th,.table td,.badge,.btn,.btn-secondary,.traffic-item,.code{transition:background-color .2s ease,color .2s ease,border-color .2s ease,box-shadow .2s ease}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:1rem;line-height:1.5;color:var(--text-primary);background:var(--bg-body);overflow-x:hidden}#app{min-height:100vh}h1{font-size:1.875rem;font-weight:700;line-height:1.25}h2{font-size:1.5rem;font-weight:700;line-height:1.25}h3{font-size:1.25rem;font-weight:600;line-height:1.25}h4{font-size:1.125rem;font-weight:600;line-height:1.25}p{margin-bottom:1rem}a{color:#6366f1;text-decoration:none}a:hover{text-decoration:underline}code{font-family:JetBrains Mono,Fira Code,Consolas,monospace;font-size:.9em;background:var(--bg-code);padding:2px 6px;border-radius:6px}.text-success{color:var(--color-success)}.text-warning{color:var(--color-warning)}.text-danger{color:var(--color-danger)}.text-info{color:var(--color-info)}.text-muted{color:var(--text-muted)}.text-secondary{color:var(--text-secondary)}.fw-normal{font-weight:400}.fw-medium{font-weight:500}.fw-semibold{font-weight:600}.fw-bold{font-weight:700}.flex{display:flex}.flex-col{flex-direction:column}.flex-1{flex:1}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-sm{gap:.5rem}.gap-md{gap:1rem}.gap-lg{gap:1.5rem}.text-center{text-align:center}.text-right{text-align:right}.mt-sm{margin-top:.5rem}.mt-md{margin-top:1rem}.mt-lg{margin-top:1.5rem}.mb-xs{margin-bottom:.25rem}.mb-sm{margin-bottom:.5rem}.mb-md{margin-bottom:1rem}.mb-lg{margin-bottom:1.5rem}.ml-xs{margin-left:.25rem}.ml-sm{margin-left:.5rem}.mr-xs{margin-right:.25rem}.mr-sm{margin-right:.5rem}.p-sm{padding:.5rem}.p-md{padding:1rem}.p-lg{padding:1.5rem}.w-full{width:100%}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:12px;padding:1.5rem;box-shadow:var(--shadow-sm)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:8px 16px;font-size:.875rem;font-weight:500;line-height:1.5;border-radius:8px;border:1px solid transparent;cursor:pointer;transition:all .15s ease;white-space:nowrap}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--btn-primary-bg);color:#fff}.btn-primary:hover:not(:disabled){background:var(--btn-primary-hover)}.btn-secondary{background:var(--bg-card);color:var(--text-primary);border-color:var(--border-color)}.btn-secondary:hover:not(:disabled){background:var(--bg-table-hover)}.btn-secondary.active{background:var(--color-primary-bg);color:var(--btn-primary-bg);border-color:var(--btn-primary-bg)}.btn-success{background:var(--btn-success-bg);color:#fff}.btn-success:hover:not(:disabled){background:var(--btn-success-hover)}.btn-danger{background:var(--btn-danger-bg);color:#fff}.btn-danger:hover:not(:disabled){background:var(--btn-danger-hover)}.btn-warning{background:var(--btn-warning-bg);color:#fff}.btn-warning:hover:not(:disabled){background:var(--btn-warning-hover)}.btn-ghost{background:transparent;color:var(--btn-ghost-color)}.btn-ghost:hover:not(:disabled){background:var(--btn-ghost-hover-bg)}.btn-ghost.active{background:var(--btn-ghost-hover-bg);color:var(--btn-primary-bg)}.btn-outline{background:transparent;color:var(--text-primary);border-color:var(--border-color)}.btn-outline:hover:not(:disabled){background:var(--bg-table-hover)}.btn-sm{padding:4px 12px;font-size:.75rem}.btn-lg{padding:12px 24px;font-size:1rem}.btn-icon{padding:8px;min-width:36px}.input,.select,.textarea{width:100%;padding:8px 12px;font-size:.875rem;font-family:inherit;color:var(--text-primary);background:var(--bg-input);border:1px solid var(--border-color);border-radius:8px;transition:border-color .15s ease,box-shadow .15s ease}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:#6366f1;box-shadow:var(--focus-ring)}.input::placeholder,.select::placeholder,.textarea::placeholder{color:var(--text-muted)}.textarea{min-height:80px;resize:vertical}.input-group{display:flex;gap:.5rem;align-items:stretch;min-width:0}.input-group .input{flex:1;min-width:0}@media (max-width: 480px){.input-group{flex-wrap:wrap}}.badge{display:inline-flex;align-items:center;padding:2px 8px;font-size:.75rem;font-weight:500;border-radius:999px;line-height:1.5}.badge-success{background:var(--color-success-bg);color:var(--badge-success-text)}.badge-warning{background:var(--color-warning-bg);color:var(--badge-warning-text)}.badge-danger{background:var(--color-danger-bg);color:var(--badge-danger-text)}.badge-info{background:var(--color-info-bg);color:var(--badge-info-text)}.badge-neutral{background:var(--bg-code);color:var(--text-secondary)}.table-wrapper{overflow-x:auto;border:1px solid var(--border-color);border-radius:12px}.table{width:100%;border-collapse:collapse;font-size:.875rem}.table th,.table td{padding:10px 16px;text-align:left;border-bottom:1px solid var(--border-color);vertical-align:middle}.table th{background:var(--bg-table-header);font-weight:600;color:var(--text-secondary);font-size:.75rem;text-transform:uppercase;letter-spacing:.05em}.table tr:last-child td{border-bottom:none}.table tr:hover td{background:var(--bg-table-hover)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:400;padding:1.5rem}.modal{background:var(--bg-card);border-radius:12px;box-shadow:var(--shadow-xl);max-width:560px;width:100%;max-height:90vh;overflow-y:auto}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.5rem;border-bottom:1px solid var(--border-color)}.modal-body{padding:1.5rem}.modal-footer{display:flex;justify-content:flex-end;gap:.5rem;padding:1.5rem;border-top:1px solid var(--border-color)}.alert{padding:12px 16px;border-radius:8px;font-size:.875rem;display:flex;align-items:flex-start;gap:.5rem}.alert.alert-success{background:var(--color-success-bg);color:var(--badge-success-text);border:1px solid var(--alert-success-border)}.alert.alert-warning{background:var(--color-warning-bg);color:var(--badge-warning-text);border:1px solid var(--alert-warning-border)}.alert.alert-danger{background:var(--color-danger-bg);color:var(--badge-danger-text);border:1px solid var(--alert-danger-border)}.alert.alert-info{background:var(--color-info-bg);color:var(--badge-info-text);border:1px solid var(--alert-info-border)}.spinner{width:20px;height:20px;border:2px solid var(--border-color);border-top-color:#6366f1;border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.progress-bar{height:8px;background:var(--bg-body);border-radius:4px;overflow:hidden}.progress-inner{height:100%;background:#6366f1;transition:width .3s ease}.progress-inner.success{background:var(--color-success)}.progress-inner.warning{background:var(--color-warning)}.progress-inner.danger{background:var(--color-danger)}@media (max-width: 768px){html{font-size:14px}.table th,.table td{padding:8px 12px}.modal{max-width:calc(100vw - 2rem);margin:1rem}.modal-overlay,.card{padding:1rem}.traffic-stats,.info-grid{grid-template-columns:1fr}}.form-group{display:flex;flex-direction:column}.form-label{display:block;font-size:.875rem;font-weight:500;margin-bottom:.5rem;color:var(--text-secondary)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}@media (max-width: 768px){.form-row{grid-template-columns:1fr}}.checkbox-label{display:flex;align-items:center;gap:.5rem;font-size:.875rem;cursor:pointer}.checkbox-label input[type=checkbox]{width:1rem;height:1rem;accent-color:#6366f1;cursor:pointer;flex-shrink:0}.checkbox-label .text-muted{cursor:help}.form-card{background:#f9fafb;border-radius:8px;padding:1rem;margin-bottom:1rem}[data-theme=dark] .form-card{background:#ffffff0a}.form-card-title{font-size:.875rem;font-weight:600;color:var(--text-secondary);margin:0 0 1rem;display:flex;align-items:center;gap:.25rem}.modal-footer-inline{display:flex;justify-content:flex-end;gap:.5rem;padding-top:1rem}.test-result{margin-top:1rem;padding:.5rem 1rem;border-radius:8px;font-size:.875rem;font-weight:500}.test-ok{background:var(--color-success-bg);color:var(--badge-success-text);border:1px solid var(--alert-success-border)}.test-fail{background:var(--color-danger-bg);color:var(--badge-danger-text);border:1px solid var(--alert-danger-border)}.test-latency{color:var(--text-secondary);font-weight:400;margin-left:.25rem}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;text-align:center;color:var(--text-muted)}.empty-state .empty-icon{font-size:3rem;margin-bottom:1rem;animation:fadeIn .3s ease}.actions-cell{white-space:nowrap}.actions-cell>.btn{vertical-align:middle}.actions-mobile{display:none}@media (max-width: 768px){.actions-desktop{display:none}.actions-mobile{display:inline-flex}}.action-sheet-item{display:flex;align-items:center;gap:.5rem;width:100%;padding:1rem 1.5rem;min-height:48px;border:none;background:none;cursor:pointer;font-size:1rem;color:var(--text-primary);text-align:left}.action-sheet-item:hover{background:#6366f114}.action-sheet-item:disabled{opacity:.5;cursor:not-allowed}.action-sheet-item.action-danger{color:var(--color-danger)}.status-row{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.info-item{display:flex;flex-direction:column;gap:.25rem}.info-label{font-size:.75rem;color:var(--text-muted);text-transform:uppercase}.info-value{font-weight:500}.btn-danger-text{color:var(--color-danger)}.toggle-control{display:flex;align-items:center;gap:.25rem;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:.875rem}.toggle-control input{cursor:pointer}.traffic-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem}.traffic-item{display:flex;flex-direction:column;gap:.25rem;padding:1rem;background:var(--bg-traffic-item);border-radius:8px}.traffic-label{font-size:.875rem;color:var(--text-secondary);display:flex;align-items:center;gap:.25rem}.traffic-value{font-size:1.25rem;font-weight:600}.text-xs{font-size:.75rem}.text-sm{font-size:.875rem}.flex-between{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.5rem}.flex-center{display:flex;align-items:center;flex-wrap:wrap}.actions-grid{display:flex;gap:.5rem;flex-wrap:wrap}@media (max-width: 480px){.actions-grid{gap:6px}}.mb-none{margin-bottom:0}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.page-slide-enter-active,.page-slide-leave-active{transition:opacity .2s ease,transform .2s ease}.page-slide-enter-from{opacity:0;transform:translateY(12px)}.page-slide-leave-to{opacity:0;transform:translateY(-8px)}.skeleton{background:linear-gradient(90deg,var(--bg-body) 25%,var(--border-color) 50%,var(--bg-body) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:6px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.ansi-fg-0{color:#1f2937}.ansi-fg-1{color:#ef4444}.ansi-fg-2{color:#10b981}.ansi-fg-3{color:#f59e0b}.ansi-fg-4{color:#3b82f6}.ansi-fg-5{color:#8b5cf6}.ansi-fg-6{color:#06b6d4}.ansi-fg-7{color:#f9fafb}.ansi-fg-bright-0{color:#4b5563}.ansi-fg-bright-1{color:#f87171}.ansi-fg-bright-2{color:#34d399}.ansi-fg-bright-3{color:#fbbf24}.ansi-fg-bright-4{color:#60a5fa}.ansi-fg-bright-5{color:#a78bfa}.ansi-fg-bright-6{color:#22d3ee}.ansi-fg-bright-7{color:#fff}.ansi-bg-0{background-color:#1f2937}.ansi-bg-1{background-color:#ef4444}.ansi-bg-2{background-color:#10b981}.ansi-bg-3{background-color:#f59e0b}.ansi-bg-4{background-color:#3b82f6}.ansi-bg-5{background-color:#8b5cf6}.ansi-bg-6{background-color:#06b6d4}.ansi-bg-7{background-color:#f9fafb}.v-tooltip{position:absolute;background:#111827;color:#fff;padding:.25rem .5rem;border-radius:6px;font-size:.75rem;line-height:1.25;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-weight:400;white-space:pre-line;max-width:280px;text-align:center;z-index:99999;pointer-events:none;opacity:0;transform:translateY(4px);transition:opacity .15s ease,transform .15s ease;box-shadow:var(--shadow-lg)}.v-tooltip:after{content:"";position:absolute;top:100%;left:50%;margin-left:-4px;border:4px solid transparent;border-top-color:#111827}.v-tooltip.visible{opacity:1;transform:translateY(0)}.v-tooltip.hidden{opacity:0;transform:translateY(4px)}
