:root{--bg-color:#000;--surface-color:#0a0a0a;--surface-hover:#171717;--border-color:#262626;--text-primary:#ededed;--text-secondary:#a3a3a3;--text-tertiary:#525252;--accent-color:#0070f3;--apo-color:#f87171;--qms-color:#fbbf24;--aida-color:#34d399}*{box-sizing:border-box}body{background-color:var(--bg-color);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol}h1,h2,h3,h4,h5,h6{letter-spacing:-.02em;margin:0;font-weight:600}h1{font-size:2rem}h2{font-size:1.5rem}p{margin:0}.container{max-width:1200px;margin:0 auto;padding:2rem}.header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;margin-bottom:3rem;padding-bottom:1.5rem;display:flex}.header-title{align-items:center;gap:1rem;display:flex}.header-title svg{color:var(--text-primary)}.subtitle{color:var(--text-secondary);font-size:.875rem}.grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem;margin-bottom:2rem;display:grid}.card{background-color:var(--surface-color);border:1px solid var(--border-color);border-radius:8px;flex-direction:column;padding:1.5rem;transition:border-color .2s,background-color .2s;display:flex}.card:hover{background-color:var(--surface-hover);border-color:#333}.card-header{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.service-name{font-size:1.25rem;font-weight:500}.mess-index{font-variant-numeric:tabular-nums;letter-spacing:-.04em;font-size:3rem;font-weight:700;line-height:1}.mess-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-top:.5rem;font-size:.875rem;font-weight:500}.trend{align-items:center;gap:.25rem;margin-top:1rem;font-size:.875rem;font-weight:500;display:flex}.trend.up{color:#ef4444}.trend.down{color:#22c55e}.badge{text-transform:uppercase;letter-spacing:.05em;border-radius:9999px;align-items:center;padding:.25rem .5rem;font-size:.75rem;font-weight:600;display:inline-flex}.badge-1{color:#ef4444;background-color:#ef44441a;border:1px solid #ef444433}.badge-2{color:#f59e0b;background-color:#f59e0b1a;border:1px solid #f59e0b33}.badge-3{color:#22c55e;background-color:#22c55e1a;border:1px solid #22c55e33}.chart-container{background-color:var(--surface-color);border:1px solid var(--border-color);border-radius:8px;height:400px;margin-bottom:2rem;padding:1.5rem}.chart-header{margin-bottom:1.5rem}.chart-title{font-size:1.25rem;font-weight:500}.chart-subtitle{color:var(--text-secondary);margin-top:.25rem;font-size:.875rem}.custom-tooltip{border:1px solid var(--border-color);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background-color:#0a0a0ae6;border-radius:6px;padding:1rem;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}.tooltip-time{color:var(--text-secondary);border-bottom:1px solid var(--border-color);margin-bottom:.5rem;padding-bottom:.25rem;font-size:.75rem}.tooltip-item{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.25rem;font-size:.875rem;display:flex}.tooltip-item-name{align-items:center;gap:.5rem;display:flex}.tooltip-dot{border-radius:50%;width:8px;height:8px}.tooltip-value{font-variant-numeric:tabular-nums;font-weight:600}.log-box{background-color:var(--surface-color);border:1px solid var(--border-color);border-radius:8px;overflow:hidden}.log-header{border-bottom:1px solid var(--border-color);align-items:center;gap:.5rem;padding:1rem 1.5rem;font-weight:500;display:flex}.log-content{flex-direction:column;gap:.5rem;max-height:250px;padding:1rem 1.5rem;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.875rem;display:flex;overflow-y:auto}.log-entry{color:var(--text-secondary);gap:1rem;animation:.3s ease-out fadeIn;display:flex}.log-time{color:var(--text-tertiary);min-width:60px}.log-service{min-width:45px;font-weight:600}.log-message{color:var(--text-primary)}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.color-apo{color:var(--apo-color)}.color-qms{color:var(--qms-color)}.color-aida{color:var(--aida-color)}
