:root{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#202839;background:#f5f7fa;font-synthesis:none}*{box-sizing:border-box}body{margin:0;font-size:14px}aside{width:244px;position:fixed;inset:0 auto 0 0;background:#141d2c;color:#d8dfeb;padding:33px 20px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:12px;font-size:23px;font-weight:650;letter-spacing:-.7px}.brand-icon{background:#bdc8fd;color:#17233b;border-radius:10px;padding:5px 10px;font-family:Georgia,serif;font-size:28px}.brand span:not(.brand-icon){display:block;letter-spacing:1.6px;font-size:8px;color:#8c9ab2;margin-top:6px}.workspace-label,.nav-label{font-size:10px;letter-spacing:1.6px;color:#7d8da6;margin:47px 10px 17px}.workspace{display:flex;gap:10px;align-items:center;border:1px solid #334054;border-radius:8px;padding:13px 10px;font-size:12px}.square{background:#30384b;color:#f0bcb3;padding:7px;border-radius:5px}.workspace small{display:block;color:#8f9bb1;font-size:11px;margin-top:5px}.nav-label{margin-top:36px}.nav-item{background:#2b3850;border-radius:7px;color:#e4eaff;padding:14px;display:flex;gap:12px;font-size:13px}.nav-item>span:first-child{color:#acbaff}.nav-dot{background:#a6b8ff;width:5px;height:5px;border-radius:50%;margin-left:auto;align-self:center}.aside-bottom{margin-top:auto;padding:18px 6px 0;border-top:1px solid #303b4e;font-size:12px}.aside-bottom div{color:#8f9bb1;margin:10px 0}.aside-bottom small{color:#6f809c;font-size:10px}.live-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#42a48c;margin-right:7px}.live-dot.failed{background:#c05d4d}main{margin-left:244px}header{height:78px;background:#fff;border-bottom:1px solid #e4e8ef;padding:0 38px;display:flex;align-items:center;justify-content:space-between}.breadcrumb{font-size:12px;color:#78849b}.breadcrumb span{margin:0 10px;color:#bac2d0}.breadcrumb b{font-weight:500;color:#3b475c}.read-only{font-size:11px;color:#67806f;border:1px solid #e0e8e4;border-radius:5px;padding:7px 10px}.content{max-width:1550px;margin:auto;padding:35px 38px 20px}.heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px}.eyebrow{font-size:10px;font-weight:650;letter-spacing:2.2px;color:#778ba7;margin-bottom:13px}h1{font-size:32px;line-height:1.23;letter-spacing:-1px;font-weight:600;margin:0}h1 span{color:#7d8da5}.heading p{font-size:12px;color:#7c8799;margin-top:13px}.connection{text-align:right;font-size:11px}.connection b{font-weight:500}.connection small{display:block;color:#8693a5;margin-top:10px;font-family:monospace;font-size:11px}.notice{display:flex;gap:14px;background:#fff6e6;border:1px solid #f1dfba;border-radius:7px;padding:12px 15px;font-size:11px;color:#8a6731;margin-bottom:20px;line-height:1.5}.notice[hidden],.error[hidden]{display:none}.notice b{white-space:nowrap}.toolbar{display:flex;align-items:flex-end;gap:15px;background:#fff;border:1px solid #e3e7ee;border-radius:9px;padding:17px 19px}.toolbar label{font-size:10px;font-weight:600;color:#67758b;display:flex;flex-direction:column;gap:7px;flex:1}.toolbar select,.toolbar input{font-family:inherit;font-size:12px;color:#425068;border:1px solid #dde3ed;padding:10px 11px;border-radius:5px;background:#fff;min-width:0;width:100%;outline:none}.toolbar input:focus,.toolbar select:focus{border-color:#788cc9;box-shadow:0 0 0 2px #eef1fc}button{border:0;border-radius:5px;background:#263952;color:white;padding:11px 20px;font-family:inherit;font-size:12px;cursor:pointer;white-space:nowrap}button:hover{background:#385275}button:disabled{opacity:.6;cursor:wait}.scope-note{font-size:10px;color:#8792a3;margin:12px 0 23px;line-height:1.6}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:23px}.card{background:#fff;border:1px solid #e1e6ee;border-radius:9px;padding:19px}.card-head{display:flex;justify-content:space-between;align-items:center;color:#6b778d;font-size:12px}.card-icon{padding:5px 8px;border-radius:7px;font-size:18px}.purple{background:#f0edfb;color:#8974c8}.blue{background:#eaf0fa;color:#6f8bb7}.teal{background:#eaf5f0;color:#5c9a84}.amber{background:#fbf3e8;color:#b99667}.card strong{display:block;font-size:34px;font-weight:600;letter-spacing:-1px;margin:11px 0}.card small{font-size:10px;color:#8e98a7}.chart-grid{display:grid;grid-template-columns:1.75fr 1fr;gap:22px;margin-bottom:23px}.panel{background:#fff;border:1px solid #e1e6ee;border-radius:9px;overflow:hidden;padding:23px}.panel-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:24px}h2{font-size:13px;font-weight:600;margin:0;color:#34435b}.panel-heading p{font-size:10px;color:#8a95a7;margin:8px 0 0}.legend{display:flex;gap:12px;font-size:9px;color:#7d8b9f;padding-top:2px}.legend span{white-space:nowrap}.legend i{width:6px;height:6px;display:inline-block;border-radius:50%;margin-right:5px}.memory-key{background:#7684cd}.message-key{background:#69b8b5}.chart{height:200px;width:100%}.chart svg{width:100%;height:100%;overflow:visible}.chart-foot{display:flex;justify-content:space-between;color:#9aa4b3;font-size:9px;margin:12px 0 0 34px}.panel-symbol{background:#f1f3f9;color:#929db4;border-radius:6px;padding:5px 8px}.types{min-height:195px}.type-row{margin-bottom:20px}.type-label{display:flex;justify-content:space-between;font-size:11px;color:#66758b;gap:8px;overflow-wrap:anywhere}.type-label b{font-weight:500;color:#3b4962}.track{height:7px;background:#f0f3f8;border-radius:5px;margin-top:9px;overflow:hidden}.fill{height:100%;background:#8b98d3;border-radius:5px}.panel-note{font-size:9px;color:#98a2b2;border-top:1px solid #edf0f5;padding-top:14px;margin-top:17px}.detail-grid{display:grid;grid-template-columns:1.75fr 1fr;gap:22px}.tag{font-size:8px;letter-spacing:.7px;color:#8a96a9;background:#f3f5f9;padding:6px 8px;border-radius:4px;white-space:nowrap}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;text-align:left;font-size:11px}th{color:#8e99aa;font-weight:500;font-size:9px;border-bottom:1px solid #e9edf4;padding:0 12px 13px 0}td{border-bottom:1px solid #f0f3f8;padding:15px 12px 15px 0;color:#53647d}tr:last-child td{border:0}td:first-child{font-weight:500;max-width:250px;overflow-wrap:anywhere}td .track{width:100%;min-width:80px;display:inline-block;margin:0;height:5px}.share{display:flex;align-items:center;gap:12px}.health-row{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:#7d899d;padding:12px 0;border-bottom:1px solid #eef1f6}.health-row b{color:#4a5c76;font-weight:500}.retention-note{font-size:9px;color:#98a2b2;line-height:1.7;margin:16px 0 0}.empty{color:#94a0b2;font-size:12px;padding:35px 0;text-align:center}.error{background:#fff0ed;border:1px solid #f1cbc2;color:#9e4c3e;padding:16px;border-radius:7px;font-size:12px;line-height:1.6;margin-bottom:20px}footer{display:flex;justify-content:space-between;font-size:9px;color:#8d9bad;margin-top:24px;gap:10px}footer .live-dot{width:5px;height:5px}#dashboard[aria-busy=true]{opacity:.55}#dashboard.stale{opacity:.35}input::placeholder{color:#98a3b4}@media(min-width:1500px){.content{padding-top:45px}.chart{height:245px}.heading{margin-bottom:35px}.card{padding:24px}}@media(max-width:1150px){aside{width:205px;padding:27px 15px}main{margin-left:205px}.content{padding:28px 23px}header{padding:0 23px}.cards{gap:12px}.card{padding:14px}.card small{line-height:1.6}.chart-grid,.detail-grid{grid-template-columns:1.4fr 1fr}.legend{flex-direction:column;gap:6px}.panel{padding:18px}.heading p{max-width:320px;line-height:1.6}}@media(max-width:850px){aside{display:none}main{margin-left:0}.cards{grid-template-columns:repeat(2,1fr)}.chart-grid,.detail-grid{grid-template-columns:1fr}.types{min-height:auto}.notice{flex-direction:column;gap:4px}.heading{gap:10px}h1{font-size:27px}.toolbar{flex-wrap:wrap}.toolbar label{min-width:150px}.breadcrumb{font-size:10px}.read-only{font-size:9px}.heading p{font-size:11px}.connection{max-width:140px;overflow-wrap:anywhere}footer{line-height:1.6}}@media(prefers-reduced-motion:no-preference){button{transition:background .15s}#dashboard{transition:opacity .15s}}

/* Cascading selectors keep long thread IDs inside the filter toolbar. */
.toolbar label{min-width:0}.toolbar select{text-overflow:ellipsis}.filter-notice{font-size:11px;color:#8a6731;margin:-12px 0 20px}.filter-notice:empty{display:none}.toolbar select:disabled{color:#98a3b4;background:#f5f7fa}@media(max-width:1150px){.toolbar{flex-wrap:wrap}.toolbar label{flex:1 1 150px}}

/* Memory graph */
[hidden]{display:none!important}
.view-tabs{display:flex;gap:7px;border-bottom:1px solid #e0e6ef;margin:0 0 24px}
.view-tabs button{background:transparent;color:#8390a6;border-radius:0;padding:13px 17px;border-bottom:2px solid transparent;margin-bottom:-1px}
.view-tabs button[aria-selected=true]{color:#485d95;border-bottom-color:#7586c6;font-weight:600}
.view-tabs button:focus-visible{outline:2px solid #879bd3;outline-offset:-3px}
.graph-intro{display:flex;justify-content:space-between;gap:20px;margin:5px 0 23px}
.graph-intro h2{font-size:21px;letter-spacing:-.5px}.graph-intro p{color:#8491a6;font-size:12px;line-height:1.6}
.graph-options{display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding:16px 18px;background:#fff;border:1px solid #e1e6ee;border-radius:8px}
.graph-options label:not(.check){display:flex;flex-direction:column;gap:7px;font-size:10px;color:#748098}
.graph-options select,.graph-actions select,.graph-detail select{border:1px solid #dfe5ef;background:#fff;border-radius:5px;font:inherit;font-size:11px;color:#54647e;padding:9px 10px;max-width:100%}
.graph-options .check{display:flex;align-items:center;gap:6px;color:#6d7d95;font-size:11px;cursor:pointer}.graph-options input{accent-color:#7989c9}
.graph-scope,.graph-help{font-size:10px;color:#94a0b3;line-height:1.7;margin:12px 0 18px}
.graph-summary{font-size:12px;color:#617391;margin:20px 0 15px}
.graph-workspace{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:18px;align-items:start}
.graph-workspace.stale{opacity:.4}.graph-workspace[aria-busy=true] #graph-canvas{pointer-events:none}
.graph-canvas-panel{position:relative;border:1px solid #e0e6f0;border-radius:9px;background:#fbfcff;overflow:hidden}
.graph-actions{display:flex;gap:8px;flex-wrap:wrap;padding:12px;border-bottom:1px solid #edf0f6;background:#fff}
.graph-actions button{background:#eef1f8;color:#657693;font-size:10px;padding:8px 11px}.graph-actions button:hover{background:#dfe6f4}
#graph-canvas{height:580px;width:100%;background-image:radial-gradient(#dfe5f0 .6px,transparent .6px);background-size:18px 18px}
.graph-empty{position:absolute;top:45%;left:12%;right:12%;text-align:center;color:#97a3b5;font-size:12px;pointer-events:none}
.graph-legend{display:flex;gap:14px;flex-wrap:wrap;padding:14px 16px;border-top:1px solid #e9edf4;font-size:9px;color:#8390a4;background:#fff}
.graph-legend i{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:5px}
.graph-canvas-panel>.graph-help{margin:0;padding:10px 15px;background:#fff;border-top:1px solid #f0f3f8}
.graph-detail{padding:18px;max-height:760px;overflow:auto;position:sticky;top:15px}
.graph-detail>label,#graph-neighbor-actions>label{font-size:11px;font-weight:500;color:#687991;display:block;margin:0 0 10px}
.graph-detail select{width:100%;text-overflow:ellipsis}
.graph-detail h3{font-size:12px;color:#52637e;font-weight:600;margin:22px 0 12px}
.graph-field{margin-bottom:12px}.graph-field dt{font-size:9px;color:#97a1b2;margin-bottom:5px}.graph-field dd{font-size:11px;color:#5f6f87;margin:0;overflow-wrap:anywhere;line-height:1.5}
.memory-content{font-size:12px;color:#53647d;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere;padding:13px;background:#f5f7fb;border-radius:5px}
#graph-detail-body button,#graph-neighbor-actions button{width:100%;font-size:11px;margin-top:10px}
#graph-neighbor-actions{margin-top:20px;border-top:1px solid #e9edf5;padding-top:17px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:1150px){.graph-workspace{grid-template-columns:minmax(0,1fr) 270px}.graph-options{gap:12px}#graph-canvas{height:520px}}
@media(max-width:1000px){.graph-workspace{grid-template-columns:1fr}.graph-detail{position:static;max-height:none}#graph-canvas{height:490px}.graph-options{gap:15px}.graph-intro{flex-wrap:wrap}}
.graph-detail>.graph-link-label{margin-top:16px}
#graph-focus-status:empty{display:none}
#graph-download{color:#485d95;font-size:11px;align-self:center;padding:7px;text-decoration:underline;cursor:pointer}
