@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap";:root{--bg-base: #0d1117;--bg-card: #161b22;--bg-card-hover: #1c2330;--bg-input: #21262d;--border: #30363d;--border-active: #58a6ff;--text-primary: #e6edf3;--text-secondary: #8b949e;--text-muted: #484f58;--accent: #58a6ff;--accent-hover: #79b8ff;--success: #3fb950;--warning: #d29922;--danger: #f85149;--gradient-1: linear-gradient(135deg, #58a6ff22, #3fb95022);--radius: 10px;--radius-sm: 6px;--shadow: 0 4px 24px rgba(0, 0, 0, .4)}body.light{--bg-base: #f4f6f9;--bg-card: #ffffff;--bg-card-hover: #f0f4f8;--bg-input: #edf0f4;--border: #d0d7de;--border-active: #0969da;--text-primary: #1f2328;--text-secondary: #57606a;--text-muted: #9198a1;--accent: #0969da;--accent-hover: #0550ae;--success: #1a7f37;--warning: #9a6700;--danger: #cf222e;--shadow: 0 4px 24px rgba(0, 0, 0, .08)}*,*:before,*:after{transition:background-color .2s ease,border-color .2s ease,color .15s ease}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Inter,sans-serif;background:var(--bg-base);color:var(--text-primary);min-height:100vh}.app-layout{display:flex;min-height:100vh}.sidebar{width:220px;background:var(--bg-card);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:0;position:fixed;top:0;left:0;bottom:0;z-index:100}.sidebar-brand{padding:24px 20px 20px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:10px}.sidebar-brand .logo-icon{width:32px;height:32px;background:linear-gradient(135deg,#58a6ff,#3fb950);border-radius:8px;display:grid;place-items:center;font-size:16px}.sidebar-brand h1{font-size:14px;font-weight:700;color:var(--text-primary)}.sidebar-brand span{font-size:11px;color:var(--text-muted);display:block}.mode-toggle-card{margin:12px;padding:10px;background:var(--bg-hover);border-radius:8px;border:1px solid var(--border-color);transition:all .3s ease}.mode-toggle-card.mock-active{border-color:#f1c40f;background:#f1c40f0d}.mode-toggle-card.mock-active span{color:#f1c40f}.switch{position:relative;display:inline-block;width:34px;height:20px}.switch input{opacity:0;width:0;height:0}.slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#ccc;transition:.4s}.slider:before{position:absolute;content:"";height:14px;width:14px;left:3px;bottom:3px;background-color:#fff;transition:.4s}input:checked+.slider{background-color:#f1c40f}input:focus+.slider{box-shadow:0 0 1px #f1c40f}input:checked+.slider:before{transform:translate(14px)}.slider.round{border-radius:34px}.slider.round:before{border-radius:50%}.sidebar-nav{padding:12px 8px;flex:1}.nav-section{margin-bottom:4px}.nav-section-header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;cursor:pointer;border-radius:var(--radius-sm);transition:background .2s}.nav-section-header:hover{background:var(--bg-input)}.nav-section-label{font-size:13px;font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:8px}.chevron{font-size:10px;color:var(--text-muted);transition:transform .3s ease}.nav-section.collapsed .chevron{transform:rotate(-90deg)}.nav-section-content{overflow:hidden;transition:max-height .3s ease-out,opacity .3s ease;max-height:500px;opacity:1}.nav-section.collapsed .nav-section-content{max-height:0;opacity:0;pointer-events:none}.nav-section-content .nav-item{margin-left:8px;padding-left:16px;font-size:12.5px}.nav-item{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:var(--radius-sm);font-size:13px;color:var(--text-secondary);cursor:pointer;transition:all .15s;text-decoration:none;margin-bottom:2px}.nav-item:hover{background:var(--bg-input);color:var(--text-primary)}.nav-item.active{background:var(--accent)18;color:var(--accent);font-weight:500}.nav-item .icon{font-size:15px;width:18px;text-align:center}.sidebar-footer{padding:16px 8px;border-top:1px solid var(--border)}.status-badge{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--bg-input);border-radius:var(--radius-sm);font-size:12px;color:var(--text-secondary)}.status-dot{width:7px;height:7px;border-radius:50%;background:var(--success)}.status-dot.offline{background:var(--danger)}.main-content{margin-left:220px;flex:1;padding:28px 32px;min-height:100vh}.page-header{margin-bottom:28px}.page-header h2{font-size:22px;font-weight:700;margin-bottom:4px}.page-header p{color:var(--text-secondary);font-size:13px}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:20px;margin-bottom:16px}.card-title{font-size:13px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:16px;display:flex;align-items:center;gap:8px}.stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}.stat-card{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);padding:14px 16px;transition:border-color .2s}.stat-card:hover{border-color:var(--accent)55}.stat-card .label{font-size:11px;color:var(--text-muted);margin-bottom:4px;text-transform:uppercase;letter-spacing:.5px}.stat-card .value{font-size:20px;font-weight:700;color:var(--text-primary)}.stat-card .value.pos{color:var(--success)}.stat-card .value.neg{color:var(--danger)}.form-row{display:flex;gap:12px;margin-bottom:14px;flex-wrap:wrap}.form-group{display:flex;flex-direction:column;gap:6px;flex:1;min-width:120px}label{font-size:12px;color:var(--text-secondary);font-weight:500}input,select{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);padding:8px 12px;font-size:13px;outline:none;transition:border-color .2s;font-family:inherit}input:focus,select:focus{border-color:var(--border-active)}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border:none;border-radius:var(--radius-sm);font-family:inherit;font-size:13px;font-weight:500;cursor:pointer;transition:all .15s}.btn-primary{background:var(--accent);color:#000}.btn-primary:hover{background:var(--accent-hover)}.btn-success{background:var(--success);color:#000}.btn-success:hover{filter:brightness(1.1)}.btn-danger{background:var(--danger);color:#fff}.btn-outline{background:transparent;border:1px solid var(--border);color:var(--text-secondary)}.btn-outline:hover{border-color:var(--accent);color:var(--accent)}.btn:disabled{opacity:.5;cursor:not-allowed}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:12px}th{padding:8px 12px;text-align:left;font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border)}td{padding:10px 12px;border-bottom:1px solid var(--border)55;color:var(--text-primary)}tr:hover td{background:var(--bg-input)}.log-console{background:#010409;border:1px solid var(--border);border-radius:var(--radius);padding:14px;height:320px;overflow-y:auto;font-family:JetBrains Mono,Courier New,monospace;font-size:11px;line-height:1.6}.log-line{color:var(--text-secondary)}.log-line.error{color:var(--danger)}.log-line.success{color:var(--success)}.log-line.info{color:var(--accent)}.log-line.warn{color:var(--warning)}.chart-container{height:360px;border-radius:var(--radius-sm);overflow:hidden}.tag{display:inline-block;padding:2px 8px;border-radius:99px;font-size:11px;font-weight:500}.tag-blue{background:var(--accent)22;color:var(--accent)}.tag-green{background:var(--success)22;color:var(--success)}.tag-orange{background:var(--warning)22;color:var(--warning)}.tag-red{background:var(--danger)22;color:var(--danger)}.divider{border:none;border-top:1px solid var(--border);margin:20px 0}.text-muted{color:var(--text-muted);font-size:12px}.flex-row{display:flex;align-items:center;gap:10px}.flex-between{display:flex;align-items:center;justify-content:space-between}.coming-soon{background:var(--bg-input);border:1px dashed var(--border);border-radius:var(--radius);padding:60px 20px;text-align:center;color:var(--text-muted)}.coming-soon .icon{font-size:36px;margin-bottom:12px}.coming-soon h3{color:var(--text-secondary);margin-bottom:8px}.tab-strip{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.tab-viewport{background:var(--bg-base);height:calc(100vh - 41px)}.tab-pane{animation:tabFadeIn .2s ease-out}@keyframes tabFadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.loading-screen{padding:80px;text-align:center;height:100vh;background:#0d1117;color:#c9d1d9;display:flex;flex-direction:column;align-items:center;justify-content:center}.loading-screen .spinner{font-size:40px;margin-bottom:20px;animation:spin 2s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}
