
:root{font-family:Segoe UI,Arial,sans-serif;color:#1e293b;background:#f5f7fa}*{box-sizing:border-box}
body{margin:0}header{background:#142b45;color:#fff;padding:18px 24px}header h1{margin:0 0 6px;font-size:21px}header p{font-size:13px;color:#cbd5e1;margin:0}
.summary{display:flex;flex-wrap:wrap;gap:12px;padding:15px 22px;background:white;border-bottom:1px solid #e2e8f0}
.metric{padding:9px 15px;border:1px solid #dce3ed;border-radius:10px;min-width:140px;display:flex;flex-direction:column;gap:4px}.metric strong{font-size:19px;color:#0d436f}.metric small{color:#52657c}
.note{padding:13px 22px;font-size:13px;background:#fff7e6;border-bottom:1px solid #efdfb8;color:#574020}
.layout{display:grid;grid-template-columns:minmax(360px,1.1fr) minmax(320px,0.9fr);gap:16px;padding:17px;max-width:1600px;margin:auto}
.panel{background:white;border:1px solid #dce3ed;border-radius:12px;padding:17px;min-height:220px;overflow:auto;max-height:calc(100vh - 210px)}
.panel h2{font-size:16px;margin:0 0 10px}input{font:inherit;border:1px solid #b5c4d7;padding:10px;border-radius:8px;width:100%}
.btn{cursor:pointer;border:1px solid #b7c9dc;background:white;color:#13324f;border-radius:6px;padding:5px 8px;font-size:12px}.btn:hover{background:#eef6ff}
.tree-root{margin:12px 0 0;padding:0;list-style:none}.tree-children{list-style:none;margin:2px 0 4px 13px;padding-left:14px;border-left:1px solid #ccd7e4}
.node-line{display:flex;align-items:center;gap:6px;padding:3px 0;min-width:0}.expander{width:22px;min-width:22px;height:22px;padding:0;text-align:center}.node-name{border:0;background:transparent;color:#104c7a;text-align:left;font-weight:600;cursor:pointer;font-size:12px;overflow-wrap:anywhere;padding:3px}.node-name:hover{text-decoration:underline}.node-name.active{background:#ddf1ff;border-radius:4px}.hint{font-size:11px;color:#64748b;white-space:nowrap}
#searchResults{padding:6px 0 0}.result{border-bottom:1px solid #ebf0f5;padding:7px 0;display:flex;align-items:center;gap:9px}.result button{color:#0c527e;cursor:pointer;border:0;background:transparent;text-align:left;font-weight:600;font-size:12px;overflow-wrap:anywhere}.result button:hover{text-decoration:underline}.muted{color:#62748a;font-size:12px}
.value{font-size:13px;overflow-wrap:anywhere;margin:8px 0}.value strong{color:#334155}.tag{display:inline-block;background:#edf3f8;border:1px solid #dbe5ef;color:#234767;border-radius:7px;padding:4px 7px;margin:3px 4px 2px 0;font-size:12px;cursor:pointer}.tag:hover{background:#d9e9f9}.tag.plain{cursor:default}
.path{display:block;background:#f2f6fa;padding:12px;border-radius:9px;overflow-wrap:anywhere;font-family:Consolas,monospace;font-size:12px;line-height:1.8}
.error{color:#b42318}.small{font-size:11px;color:#64748b;margin-top:10px}hr{border:0;border-top:1px solid #e1e8f0;margin:16px 0}
@media(max-width:940px){.layout{grid-template-columns:1fr}.panel{max-height:unset}}

.headbar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.head-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.headerbtn{background:#204866;border-color:#63849e;color:white;padding:9px 14px}
.headerbtn:hover{background:#366184}
.status-line{background:#e9f1f8;border-bottom:1px solid #cbd8e6;padding:9px 22px;color:#27445e;font-size:12px}
.status-line.failed{background:#fff0ee;color:#9c251e}
.status-line.loading{background:#fff9e7;color:#735216}
#lastRefresh{color:#cbd5e1;font-size:12px}
.login-wrap{min-height:calc(100vh - 85px);display:grid;place-items:center;padding:22px}
.login-card{background:white;box-shadow:0 10px 35px #152e4220;border:1px solid #dce3ed;border-radius:14px;padding:28px;max-width:440px;width:100%}
.login-card h2{margin:0 0 6px;color:#123a5c}.login-card p{font-size:13px;color:#63758c;line-height:1.6}
.login-card label{display:block;margin:18px 0 6px;font-weight:600;font-size:13px}
.login-card button{width:100%;margin-top:20px;border:0;background:#134d79;color:#fff;padding:11px;font-weight:600;border-radius:8px;cursor:pointer}
.login-card button:disabled{opacity:0.6;cursor:wait}
.login-error{margin-top:12px;font-size:13px;min-height:22px;color:#b42318}
#unreachableSection{margin-top:12px}
#unreachableSection summary{font-size:12px;font-weight:600;cursor:pointer}
@media(max-width:600px){header{padding:14px}.summary{padding:12px}.layout{padding:10px;grid-template-columns:minmax(0,1fr)}.panel{padding:12px}}
