:root{--bg: #0d1117;--panel: #161b22;--border: #30363d;--text: #e6edf3;--muted: #8b949e;--accent: #008de4;--good: #3fb950;--warn: #d29922;--bad: #f85149}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;font-size:14px;line-height:1.5}.app{max-width:1200px;margin:0 auto;padding:24px 20px 60px}header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;margin-bottom:20px}h1{margin:0;font-size:22px}h2{margin:0;font-size:18px}h3{margin:22px 0 10px;font-size:15px}.subtitle{margin:4px 0 0;color:var(--muted);max-width:640px}.header-controls{display:flex;gap:10px;align-items:center}.net-toggle{display:flex;border:1px solid var(--border);border-radius:8px;overflow:hidden}.net-toggle button{background:var(--panel);color:var(--muted);border:none;padding:7px 14px;cursor:pointer;font-size:13px;text-transform:capitalize}.net-toggle button.active{background:var(--accent);color:#fff}button.refresh{background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:7px 14px;cursor:pointer}button.refresh:disabled{opacity:.6;cursor:default}button.primary{background:var(--accent);color:#fff;border:none;border-radius:8px;padding:8px 16px;cursor:pointer;font-size:13px}button.primary:disabled{opacity:.6;cursor:default}.error{background:#f8514926;border:1px solid var(--bad);border-radius:8px;padding:12px 16px;margin-bottom:16px}.loading{display:flex;align-items:center;gap:12px;color:var(--muted);padding:60px 0;justify-content:center}.spinner{width:18px;height:18px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px;margin-bottom:16px}.card{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:14px 16px}.card-value{font-size:24px;font-weight:700}.card-value small{font-size:14px;font-weight:400;color:var(--muted)}.card.good .card-value{color:var(--good)}.card.warn .card-value{color:var(--warn)}.card-label{color:var(--text);margin-top:2px}.card-sub{color:var(--muted);font-size:12px;margin-top:2px}.progress-wrap{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:14px 16px;margin-bottom:12px}.progress-labels{display:flex;justify-content:space-between;margin-bottom:8px;color:var(--muted);font-size:13px}.progress{height:10px;background:var(--bg);border-radius:5px;overflow:hidden}.progress-bar{height:100%;background:var(--accent);transition:width .4s ease}.meta-line{display:flex;gap:18px;flex-wrap:wrap;color:var(--muted);font-size:13px;margin-bottom:20px}.tracked{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:16px 18px;margin-bottom:20px}.tracked-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap;margin-bottom:12px}.tracked-cards{grid-template-columns:repeat(auto-fit,minmax(210px,240px))}.tracked-cards .card,.tracked .table-wrap{background:var(--bg)}button.star{background:none;border:none;color:var(--muted);cursor:pointer;font-size:15px;padding:0 2px;line-height:1}button.star.active,button.star:hover{color:var(--warn)}button.tracked-btn{color:var(--warn);border-color:#d2992280}.detail-actions{display:flex;gap:8px}.detail{background:var(--panel);border:1px solid var(--accent);border-radius:10px;padding:16px 18px;margin-bottom:20px}.detail-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px}.detail-meta{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:4px;font-size:12.5px}.detail-meta .mono.muted{word-break:break-all}.detail-cards .card{background:var(--bg)}.live-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:4px 0 6px}.chart{display:flex;align-items:flex-end;gap:4px;padding:10px 6px 4px;background:var(--bg);border:1px solid var(--border);border-radius:8px;overflow-x:auto;margin-bottom:14px}.chart-col{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;flex:1 0 26px;min-width:26px}.chart-value{font-size:10.5px;color:var(--muted);height:16px}.chart-bar{width:70%;min-height:2px;background:var(--accent);border-radius:3px 3px 0 0}.chart-bar.empty{background:var(--border)}.chart-label{font-size:10.5px;color:var(--muted);margin-top:4px}.table-controls{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}.filters{display:flex;gap:8px;flex-wrap:wrap}.filters button{background:var(--panel);border:1px solid var(--border);color:var(--muted);border-radius:16px;padding:5px 12px;cursor:pointer;font-size:13px}.filters button.active{background:var(--accent);border-color:var(--accent);color:#fff}.table-controls input{background:var(--panel);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:6px 12px;min-width:240px}.table-wrap{border:1px solid var(--border);border-radius:10px;overflow-x:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:8px 14px;border-bottom:1px solid var(--border);white-space:nowrap}th{background:var(--panel);color:var(--muted);font-weight:600;cursor:pointer;user-select:none;position:sticky;top:0}tbody tr{cursor:pointer}tbody tr:hover{background:#ffffff08}tr.selected{background:#008de41f}.detail tbody tr{cursor:default}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px}.badge{display:inline-block;border-radius:10px;padding:1px 9px;font-size:12px;margin-left:6px;border:1px solid var(--border);color:var(--muted)}.badge.good{color:var(--good);border-color:#3fb95066;background:#3fb9501a}.badge.warn{color:var(--warn);border-color:#d2992266;background:#d299221a}.badge.bad{color:var(--bad);border-color:#f8514966;background:#f851491a}.badge.neutral{color:var(--accent);border-color:#008de466;background:#008de41a}.muted{color:var(--muted)}.empty{padding:30px;text-align:center;color:var(--muted)}.table-footnote{color:var(--muted);font-size:12px;margin-top:10px}footer{margin-top:28px;color:var(--muted);font-size:12.5px}footer a{color:var(--accent)}
