:root{color-scheme:dark;--bg: #0f1419;--panel: #1a222c;--border: #2c3845;--text: #e7eef5;--muted: #8b9aab;--accent: #3d8bfd;--ok: #3ecf8e;--warn: #f0b429;--danger: #f07178;--mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-family:Segoe UI,system-ui,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}.layout{display:grid;grid-template-columns:220px 1fr;min-height:100vh}.sidebar{background:var(--panel);border-right:1px solid var(--border);padding:1.25rem 1rem;display:flex;flex-direction:column;gap:.5rem}.brand{font-weight:700;letter-spacing:.02em;margin-bottom:1rem}.nav a{display:block;padding:.55rem .7rem;border-radius:8px;color:var(--muted)}.nav a.active,.nav a:hover{background:#243040;color:var(--text)}.main{padding:1.25rem 1.5rem 2rem}.row{display:flex;gap:.75rem;flex-wrap:wrap;align-items:center}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.75rem;margin-bottom:1rem}.card{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:.9rem 1rem}.card .label{color:var(--muted);font-size:.85rem}.card .value{font-size:1.35rem;font-weight:650;margin-top:.25rem}table{width:100%;border-collapse:collapse;background:var(--panel);border:1px solid var(--border);border-radius:10px;overflow:hidden}th,td{text-align:left;padding:.55rem .7rem;border-bottom:1px solid var(--border);font-size:.92rem}th{color:var(--muted);font-weight:600}.badge{display:inline-block;padding:.15rem .45rem;border-radius:999px;font-size:.75rem;background:#2a3644}.badge.running,.badge.healthy,.badge.ok{background:#1f3d32;color:var(--ok)}.badge.warn{background:#3d3420;color:var(--warn)}.badge.exited,.badge.dead,.badge.bad{background:#3d2528;color:var(--danger)}button{background:#243447;color:var(--text);border:1px solid var(--border);border-radius:8px;padding:.4rem .7rem;cursor:pointer}button.primary{background:var(--accent);border-color:transparent;color:#fff}button.danger{background:#5a2a30}button:disabled{opacity:.5;cursor:not-allowed}input,textarea,select{background:#121820;color:var(--text);border:1px solid var(--border);border-radius:8px;padding:.5rem .65rem;width:100%}.login{min-height:100vh;display:grid;place-items:center}.login-box{width:min(360px,92vw);background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:1.5rem}.error{color:var(--danger);margin:.5rem 0}.muted{color:var(--muted)}.pre{background:#0b1015;border:1px solid var(--border);border-radius:8px;padding:.75rem;font-family:var(--mono);font-size:.8rem;white-space:pre-wrap;max-height:420px;overflow:auto}.log-panel{background:var(--panel);border:1px solid var(--border);border-radius:10px;overflow:hidden;display:flex;flex-direction:column;min-height:280px;max-height:min(70vh,640px)}.log-panel-head{padding:.55rem .75rem;border-bottom:1px solid var(--border);gap:.6rem;flex-wrap:wrap}.log-box{flex:1;min-height:220px;overflow:auto;background:#0b1015}.log-pre{margin:0;padding:.75rem;font-family:var(--mono);font-size:.78rem;line-height:1.45;white-space:pre-wrap;word-break:break-word;color:var(--text)}.tabs{display:flex;gap:.5rem;flex-wrap:wrap}.chart-wrap{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:.75rem .5rem .25rem;margin-top:.75rem}.chart-tooltip{background:#1a222c;border:1px solid #2c3845;border-radius:8px;padding:.55rem .7rem;min-width:200px;max-width:320px;font-size:.8rem}.chart-tooltip-time{color:var(--muted);margin-bottom:.35rem}.chart-tooltip-total{margin-bottom:.45rem}.chart-tooltip-list{list-style:none;margin:0;padding:0;max-height:220px;overflow:auto}.chart-tooltip-list li{display:flex;justify-content:space-between;gap:1rem;padding:.15rem 0;border-top:1px solid #2c3845;color:var(--muted)}.chart-tooltip-list li span:last-child{color:var(--text);font-variant-numeric:tabular-nums}.file-list{list-style:none;padding:0;margin:0;background:var(--panel);border:1px solid var(--border);border-radius:10px}.file-list li{padding:.5rem .75rem;border-bottom:1px solid var(--border);cursor:pointer;display:flex;justify-content:space-between;gap:1rem}.file-list li:hover{background:#243040}.split{display:grid;grid-template-columns:280px 1fr;gap:1rem}.explorer-breadcrumb{margin:0 0 .85rem;font-size:.92rem}button.linkish{background:transparent;border:none;padding:0;color:var(--accent);cursor:pointer}button.linkish:hover{text-decoration:underline}.explorer-table-wrap{margin-bottom:1rem}.explorer-table-wrap.scroll-x{overflow-x:auto;max-width:100%;border:1px solid var(--border);border-radius:10px}.explorer-table-wrap.scroll-x .explorer-table{border:none;border-radius:0;margin:0}.explorer-table tr.clickable{cursor:pointer}.explorer-table tr.clickable:hover td{background:#243040}.explorer-rows th,.explorer-rows td{font-family:var(--mono);font-size:.78rem;white-space:nowrap;max-width:280px;overflow:hidden;text-overflow:ellipsis}.explorer-rows th .th-sort{background:transparent;border:none;padding:0;color:inherit;font:inherit;cursor:pointer;text-align:left}.explorer-rows th .th-sort:hover{color:var(--text);text-decoration:underline}.explorer-rows td.cell-null{color:var(--muted);font-style:italic}.explorer-rows .actions-col{position:sticky;left:0;background:var(--panel);z-index:1;white-space:nowrap}.modal-backdrop{position:fixed;inset:0;background:#0000008c;display:grid;place-items:center;z-index:50;padding:1rem}.modal-panel{width:min(720px,96vw);max-height:min(85vh,900px);overflow:auto;background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:1rem 1.15rem 1.25rem}.edit-fields{display:flex;flex-direction:column;gap:.65rem}.edit-field{display:flex;flex-direction:column;gap:.25rem;font-size:.85rem}.explorer-advanced{margin-top:1.5rem;background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:.75rem 1rem}.explorer-advanced summary{cursor:pointer;color:var(--muted);font-weight:600;margin-bottom:.75rem}.explorer-advanced[open] summary{margin-bottom:.85rem}@media(max-width:900px){.layout{grid-template-columns:1fr}.sidebar{border-right:none;border-bottom:1px solid var(--border)}.split{grid-template-columns:1fr}}
