.twin-toolbar[data-v-91cf1fb1]{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:2px 2px 0}.gap-list[data-v-91cf1fb1]{margin:0;padding:0;list-style:none}.gap-list li[data-v-91cf1fb1]{display:flex;flex-direction:column;gap:3px;padding:10px 0;border-bottom:1px dashed var(--line);font-size:12px}.gap-list li[data-v-91cf1fb1]:last-child{border-bottom:none}.gap-list time[data-v-91cf1fb1]{color:var(--faint);font-size:10.5px}@media (max-width: 560px){.twin-toolbar[data-v-91cf1fb1]{flex-direction:column;align-items:flex-start}}.traffic-toolbar[data-v-8e1fdd9c]{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:2px 2px 0}.traffic-toolbar code[data-v-8e1fdd9c]{padding:1px 5px;border-radius:5px;background:#8b5cf614;color:var(--purple-deep);font-size:11px}@media (max-width: 560px){.traffic-toolbar[data-v-8e1fdd9c]{flex-direction:column;align-items:flex-start}}:root{--bg: #f4f5fa;--panel: #ffffff;--ink: #1b1f2a;--muted: #6b7280;--faint: #9aa3b2;--line: #e8eaf1;--purple: #8b5cf6;--purple-deep: #6d28d9;--pink: #ec4899;--blue: #3b82f6;--green: #16a34a;--amber: #d97706;--red: #dc2626;--sidebar: #171a2b;--sidebar-soft: #22263c;--shadow: 0 18px 50px rgba(30, 34, 60, .08)}*{box-sizing:border-box}html,body,#app{min-height:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:Segoe UI,PingFang SC,Microsoft YaHei,-apple-system,BlinkMacSystemFont,sans-serif;font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}button,input{font:inherit}button{cursor:pointer}a{color:inherit}.admin-shell{display:flex;min-height:100vh}.sidebar{position:sticky;top:0;display:flex;flex-direction:column;width:232px;height:100vh;flex:none;padding:26px 16px 18px;background:radial-gradient(120% 50% at 0% 0%,rgba(139,92,246,.24),transparent 60%),var(--sidebar);color:#e7e8f0}.brand{display:flex;align-items:center;gap:10px;padding:0 8px 24px}.brand-mark{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:12px;background:linear-gradient(135deg,#8b5cf6,#6366f1 60%,#ec4899 130%);color:#fff;font-size:15px;font-weight:800;box-shadow:0 8px 20px #8b5cf661}.brand-text strong{display:block;font-size:14px;letter-spacing:.04em}.brand-text span{display:block;margin-top:1px;color:#9da4bc;font-size:10px;letter-spacing:.1em}.nav{display:flex;flex-direction:column;gap:4px}.nav-btn{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;border:none;border-radius:10px;background:transparent;color:#aeb4c9;font-size:13px;text-align:left;transition:all .18s ease}.nav-btn:hover{background:#ffffff0f;color:#fff}.nav-btn.active{background:linear-gradient(135deg,#8b5cf652,#6366f12e);color:#fff;box-shadow:inset 0 0 0 1px #8b5cf647}.nav-icon{width:16px;height:16px;flex:none;opacity:.9}.sidebar-foot{margin-top:auto;padding:14px 10px 0;border-top:1px solid rgba(255,255,255,.08)}.sidebar-user{margin-bottom:10px;color:#9da4bc;font-size:11px}.sidebar-user strong{display:block;color:#e7e8f0;font-size:13px}.logout-btn{width:100%;padding:8px 10px;border:1px solid rgba(255,255,255,.12);border-radius:9px;background:transparent;color:#c9cede;font-size:12px;transition:all .18s ease}.logout-btn:hover{border-color:#ec489973;color:#f9a8d4}.main{flex:1;min-width:0;padding:26px 30px 38px}.topbar{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:22px}.topbar h1{margin:0;font-size:22px;letter-spacing:-.02em}.topbar p{margin:4px 0 0;color:var(--muted);font-size:12px}.topbar-actions{display:flex;align-items:center;gap:10px}.updated{color:var(--faint);font-size:11px;white-space:nowrap}.refresh-btn{padding:8px 14px;border:1px solid var(--line);border-radius:9px;background:#fff;color:#4b5563;font-size:12px;transition:all .18s ease}.refresh-btn:hover{border-color:#8b5cf666;color:var(--purple-deep);box-shadow:0 4px 12px #8b5cf61a}.refresh-btn:disabled{opacity:.5;cursor:not-allowed}.page{display:flex;flex-direction:column;gap:18px}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.stat-card{position:relative;padding:18px 18px 16px;overflow:hidden;border-radius:16px;border:1px solid var(--line);background:var(--panel);box-shadow:0 8px 24px #1e223c0a}.stat-card:after{content:"";position:absolute;top:-24px;right:-18px;width:80px;height:80px;border-radius:50%;background:#8b5cf614}.stat-card.tone-pink:after{background:#ec489914}.stat-card.tone-blue:after{background:#3b82f614}.stat-card.tone-amber:after{background:#d9770617}.stat-label{color:var(--muted);font-size:12px}.stat-value{margin:6px 0 2px;font-size:26px;font-weight:750;letter-spacing:-.02em}.stat-hint{color:var(--faint);font-size:11px}.grid-2{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);gap:18px}.panel{min-width:0;overflow:hidden;border-radius:16px;border:1px solid var(--line);background:var(--panel);box-shadow:0 8px 24px #1e223c0a}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px 12px}.panel-title{margin:0;font-size:14px;font-weight:650}.panel-sub{color:var(--faint);font-size:11px}.panel-body{padding:0 18px 18px}.chart-box{height:270px;padding:0 10px 8px 4px}.empty{padding:26px 18px;color:var(--faint);font-size:12.5px;text-align:center}.error-box{padding:14px 16px;border:1px solid rgba(220,38,38,.18);border-radius:12px;background:#dc26260d;color:#b91c1c;font-size:12.5px}.warning-box{padding:12px 14px;border:1px solid rgba(217,119,6,.22);border-radius:12px;background:#d977060f;color:#92400e;font-size:12px}.loading{padding:60px 0;color:var(--faint);text-align:center}.service-list{display:flex;flex-direction:column}.service-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 0;border-bottom:1px dashed var(--line)}.service-row:last-child{border-bottom:none}.service-name{font-size:13px;font-weight:600}.service-meta{margin-top:2px;color:var(--faint);font-size:10.5px}.status-pill{display:inline-flex;align-items:center;gap:5px;flex:none;padding:3px 9px;border-radius:999px;font-size:10.5px;font-weight:600}.status-pill:before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor}.status-up{background:#16a34a17;color:#15803d}.status-degraded{background:#d977061a;color:#b45309}.status-down{background:#dc262617;color:#b91c1c}.table{width:100%;table-layout:fixed;border-collapse:collapse;font-size:12px}.table th:last-child,.table td:last-child{width:130px}.table th{padding:8px 10px;border-bottom:1px solid var(--line);color:var(--faint);font-weight:600;text-align:left;white-space:nowrap}.table td{padding:10px;border-bottom:1px dashed var(--line);vertical-align:top;word-break:break-word}.table tr:last-child td{border-bottom:none}.table .num{font-variant-numeric:tabular-nums;white-space:nowrap}.clamp-2{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2}.muted{color:var(--faint)}.badge{display:inline-block;padding:2px 7px;border-radius:6px;background:#8b5cf614;color:var(--purple-deep);font-size:10px;font-weight:600}.badge.red{background:#dc262612;color:#b91c1c}.metric-list{display:flex;flex-direction:column;gap:14px}.metric-row{display:flex;flex-direction:column;gap:6px}.metric-label{display:flex;align-items:baseline;justify-content:space-between;gap:10px;font-size:12px;color:var(--muted)}.metric-label strong{color:var(--ink);font-size:13px}.bar{height:7px;overflow:hidden;border-radius:999px;background:#eff1f6}.bar span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#8b5cf6,#6366f1)}.bar.pink span{background:linear-gradient(90deg,#ec4899,#f472b6)}.bar.amber span{background:linear-gradient(90deg,#f59e0b,#fbbf24)}.facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px;font-size:12px}.facts div{display:flex;justify-content:space-between;gap:10px;padding-bottom:8px;border-bottom:1px dashed var(--line)}.facts span{color:var(--faint)}.range-group{display:inline-flex;padding:2px;border:1px solid var(--line);border-radius:999px;background:#f7f8fb}.range-btn{padding:4px 11px;border:none;border-radius:999px;background:transparent;color:var(--muted);font-size:11px}.range-btn.active{background:#fff;color:var(--purple-deep);font-weight:650;box-shadow:0 2px 8px #8b5cf61f}.login-page{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;padding:24px;overflow:hidden;background:radial-gradient(80% 60% at 10% 0%,rgba(139,92,246,.18),transparent 60%),radial-gradient(70% 60% at 100% 100%,rgba(236,72,153,.12),transparent 55%),#f5f3fb}.login-card{width:100%;max-width:380px;padding:32px 28px 26px;border:1px solid rgba(255,255,255,.9);border-radius:22px;background:#fffffff0;box-shadow:0 30px 70px #312e8129,0 4px 14px #1f29370d;backdrop-filter:blur(18px)}.login-brand{display:flex;align-items:center;gap:10px;margin-bottom:22px}.login-title{margin:0 0 4px;font-size:20px;letter-spacing:-.02em}.login-sub{margin:0 0 20px;color:var(--muted);font-size:12px}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.field label{color:#4b5563;font-size:11.5px;font-weight:600}.field input{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:10px;outline:none;background:#fbfbfe;color:var(--ink);transition:all .18s ease}.field input:focus{border-color:#8b5cf673;background:#fff;box-shadow:0 0 0 3px #8b5cf61a}.login-btn{width:100%;padding:11px 14px;border:none;border-radius:10px;background:linear-gradient(135deg,#8b5cf6,#6366f1);color:#fff;font-size:13px;font-weight:650;box-shadow:0 8px 20px #6366f147;transition:all .2s ease}.login-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 12px 26px #6366f157}.login-btn:disabled{opacity:.55;cursor:not-allowed}.login-error{margin-bottom:14px;padding:9px 11px;border-radius:9px;background:#dc262612;color:#b91c1c;font-size:12px}.login-foot{margin:16px 0 0;color:var(--faint);font-size:10.5px;text-align:center}@media (max-width: 1080px){.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 900px){.admin-shell{flex-direction:column}.sidebar{position:static;width:100%;height:auto;flex-direction:row;align-items:center;gap:14px;padding:12px 14px}.brand{padding:0}.brand-text span{display:none}.nav{flex:1;flex-direction:row;overflow-x:auto}.nav-btn{width:auto;white-space:nowrap;padding:8px 10px}.sidebar-foot{display:flex;align-items:center;gap:10px;margin:0;padding:0;border:none}.sidebar-user{display:none}.logout-btn{width:auto;padding:7px 10px}.main{padding:18px 14px 28px}.grid-2{grid-template-columns:1fr}.topbar{align-items:center}}@media (max-width: 560px){.stat-grid{grid-template-columns:1fr}.topbar{flex-direction:column;align-items:flex-start}.topbar-actions{width:100%;justify-content:space-between}.facts{grid-template-columns:1fr}}
