*{box-sizing:border-box}:root{--bg:#f6f7f9;--panel:#fff;--ink:#1f2430;--muted:#667085;--line:#e4e7ec;--accent:#4463e0;--accent-ink:#fff;--sidebar-bg:#171c28;--sidebar-ink:#c8cfdd}html,body{height:100%;margin:0}body{color:var(--ink);background:var(--bg);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,sans-serif;font-size:14px;line-height:1.5}#root,.shell{height:100vh}.shell{display:flex}.sidebar{background:var(--sidebar-bg);width:232px;color:var(--sidebar-ink);flex-direction:column;flex:none;gap:1rem;padding:1rem .75rem;display:flex}.brand{flex-direction:column;gap:.15rem;padding:0 .5rem;display:flex}.brand-title{color:#fff;font-size:1.05rem;font-weight:700}.brand-sub{color:#7c8598;font-size:.72rem}.sidebar nav{flex-direction:column;gap:2px;display:flex;overflow-y:auto}.nav-item{text-align:left;color:var(--sidebar-ink);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:.5rem .6rem;font-size:.85rem}.nav-item:hover{color:#fff;background:#232a3a}.nav-item.active{background:var(--accent);color:var(--accent-ink);font-weight:600}.sidebar-foot{color:#7c8598;margin-top:auto;padding:0 .5rem;font-size:.7rem}.sidebar-foot code{color:#a5b4fc}.content{flex:1;padding:1.5rem 2rem 3rem;overflow-y:auto}.page{max-width:1100px;margin:0 auto}.page h1{margin:0 0 .35rem;font-size:1.35rem}.blurb{color:var(--muted);max-width:70ch;margin:0 0 1rem}.toolbar{flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.75rem;display:flex}.toolbar label{color:var(--muted);font-size:.82rem}button.btn{background:var(--panel);border:1px solid var(--line);color:var(--ink);cursor:pointer;border-radius:6px;padding:.4rem .75rem;font-size:.82rem}button.btn:hover{border-color:var(--accent);color:var(--accent)}button.btn.primary,button.btn.active{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}button.btn.danger{color:#e5484d;border-color:#e5484d}input.text,select.select{border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:6px;padding:.4rem .6rem;font-size:.85rem}.badge{color:var(--muted);background:#eef1f6;border-radius:999px;align-items:center;gap:.35rem;padding:.15rem .65rem;font-size:.75rem;font-weight:600;display:inline-flex}.badge.live{color:#15803d;background:#dcfce7}.badge.warn{color:#b45309;background:#fef3c7}.grid-box{border-radius:8px;height:480px;overflow:hidden;box-shadow:0 1px 3px #10182814}.grid-box.short{height:380px}.stat-row{flex-wrap:wrap;gap:.75rem;margin-bottom:.75rem;display:flex}.stat{background:var(--panel);border:1px solid var(--line);border-radius:8px;min-width:110px;padding:.5rem .9rem}.stat .stat-label{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-size:.7rem}.stat .stat-value{font-variant-numeric:tabular-nums;font-size:1.15rem;font-weight:700}.log-panel{color:#9fe8b9;white-space:pre-wrap;background:#0f1420;border-radius:8px;height:160px;margin-top:.75rem;padding:.75rem 1rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.75rem;overflow-y:auto}.log-panel .log-line{display:block}.hint{color:var(--muted);margin:.5rem 0 0;font-size:.8rem}.pill{border-radius:999px;padding:0 .6em;font-size:.78rem;font-weight:600}.pill.up{color:#15803d;background:#dcfce7}.pill.down{color:#b91c1c;background:#fee2e2}.skeleton{color:#98a2b3;font-style:italic}.custom-filter{flex-direction:column;gap:.3rem;min-width:160px;padding:.6rem;display:flex}.custom-filter label{align-items:center;gap:.4rem;font-size:.82rem;display:flex}.custom-header{cursor:pointer;user-select:none;align-items:center;gap:.35rem;width:100%;font-weight:600;display:flex}.overlay-card{text-align:center;background:#ffffffe6;border:1px dashed #98a2b3;border-radius:10px;padding:1rem 1.5rem}.editor-input{border:2px solid var(--accent);width:100%;height:100%;font:inherit;outline:none;padding:0 .5rem}.editor-input.invalid{background:#fff1f1;border-color:#e5484d}.popup-editor{background:var(--panel);border:1px solid var(--line);border-radius:8px;grid-template-columns:1fr 1fr;gap:.3rem;padding:.5rem;display:grid;box-shadow:0 8px 24px #1018282e}.expand-btn{cursor:pointer;background:0 0;border:none;font-size:.8rem}.detail-panel{background:#f0f4ff;flex-direction:column;gap:.3rem;height:100%;padding:.6rem .75rem .75rem 2.25rem;display:flex}.detail-panel .detail-title{color:#3b4b8f;text-transform:uppercase;letter-spacing:.05em;font-size:.75rem;font-weight:700}.detail-grid{flex:1;min-height:0}
