:root {
  color-scheme:light; --ink:#163d39; --text:#264642; --muted:#556e69; --edge:#d4e0d9; --paper:#f3f6f3;
  --teal:#096b59; --mint:#e3f2e9; --red:#973f32; --redbg:#fcf0ea; --gold:#805a22;
  font:15px/1.5 "Inter","Segoe UI","Microsoft YaHei",system-ui,sans-serif;color:var(--text);background:var(--paper)
}
*{box-sizing:border-box}body{margin:0}h1,h2,h3,h4,p,dl,dd,ul{margin:0}a{color:var(--teal);text-underline-offset:3px}
button,input,select{font:inherit;color:inherit}button,select{cursor:pointer}button{border:1px solid var(--edge);background:white;border-radius:6px;padding:5px 9px}
input,select{max-width:100%;border:1px solid #bfcec6;background:#fff;border-radius:6px;padding:5px 8px;font-size:13px}
[hidden]{display:none!important}a:focus-visible,button:focus-visible,select:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #bd762c;outline-offset:3px}
h1,h2,h3,h4{color:var(--ink)}h1{font-size:clamp(29px,3.3vw,43px);line-height:1.14;letter-spacing:-.045em}h2{font-size:19px;line-height:1.35}h3{font-size:15px}h4{font-size:14px}
.shell{max-width:1450px;margin:auto;padding:0 clamp(15px,3.3vw,50px)}.mast{background:#123a35;color:white;border-bottom:3px solid #85ab94}
.mast-row,.brand,.mast nav,.page-head,.block-head,.inline-label,.identity,.tabs,.fleet-strip,.chip,.tile-top,.service-head,.trace,.actions,.metric-heading,.history-controls,.switch,.filters{display:flex;align-items:center}
.mast-row{min-height:61px;gap:32px}.brand{color:#f5f8f3;font-size:18px;gap:9px;font-weight:700;text-decoration:none;white-space:nowrap}
.brand-mark{color:#b2d9c4}.mast nav{gap:4px}.mast nav a{color:#d5e7dc;text-decoration:none;font-weight:550;font-size:14px;border-radius:5px;padding:7px 13px}
.mast nav a[aria-current=page]{background:#33594d;color:white}.stamp{font-size:12px;color:#cde0d3;margin-left:auto;text-align:right;font-variant-numeric:tabular-nums}
.page-head{gap:12px;justify-content:space-between;flex-wrap:wrap;padding:24px 0 15px}.page-head .muted{margin-top:4px}
.muted,.small,.micro{color:var(--muted)}.small{font-size:13px}.micro{font-size:12px}.location{font-size:13px;color:var(--teal);font-weight:650}
.switch{padding:3px;border:1px solid var(--edge);border-radius:8px;background:white}.switch a,.tabs a{padding:6px 12px;text-decoration:none;border-radius:5px;color:var(--text)}
.switch a[aria-current=page],.tabs a[aria-current=page]{background:var(--ink);color:white}.switch a{font-size:13px}
.fleet-strip{gap:8px 18px;flex-wrap:wrap;padding:9px 14px;border:1px solid #cbdad1;background:#eaf2eb;border-radius:8px;margin-bottom:17px}
.fleet-strip a,.fleet-strip span{font-size:13px}.fleet-strip a{display:inline-flex;align-items:center;gap:6px}.fleet-strip .issue-link{color:var(--red);font-weight:650}
.fleet-strip .observed{margin-left:auto;color:var(--muted);font-size:12px}.map-columns{display:grid;grid-template-columns:minmax(0,2.55fr) minmax(250px,1fr);gap:20px;align-items:start}
.block-head{justify-content:space-between;gap:8px;flex-wrap:wrap;margin-bottom:10px}.inline-label,.filters{gap:6px;font-size:12px;color:var(--muted)}.site-list{display:grid;gap:9px}
.site{display:grid;grid-template-columns:clamp(100px,12vw,146px) minmax(0,1fr);border:1px solid #c7d8ce;border-radius:9px;background:white;box-shadow:0 2px 0 #cddbd2;min-width:0}
.site-head{background:#eaf1eb;border-right:1px solid #d0dfd5;border-radius:8px 0 0 8px;padding:11px 12px;display:flex;justify-content:center;align-items:flex-start;flex-direction:column;gap:4px}
.site-head h3{font-size:15px;line-height:1.3;overflow-wrap:anywhere}.site-head .small{font-variant-numeric:tabular-nums;font-size:12px}
.device-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,162px),1fr));gap:5px;padding:6px;align-content:start}
.device-tile{display:grid;grid-template-columns:36px minmax(0,1fr);gap:6px;align-items:center;min-height:64px;text-decoration:none;color:var(--text);border:1px solid transparent;border-radius:6px;padding:5px 6px;min-width:0}
.device-tile:hover{border-color:#9fbbae;background:#f2f8f4}.device-tile .name{font-size:14px;font-weight:670;overflow-wrap:anywhere;line-height:1.3}
.device-tile .meta{display:flex;align-items:center;gap:2px 8px;flex-wrap:wrap;padding-top:3px}.device-tile .meta .small{font-size:11px}
.device-icon{display:inline-block;width:36px;height:36px;flex:none;background-image:url("/station/hardware.png?v=5b054869d0088816");background-size:200% 200%;background-repeat:no-repeat}
.icon-pc{background-position:left top}.icon-nas{background-position:right top}.icon-vps{background-position:left bottom}.icon-laptop{background-position:right bottom}
.chip{gap:5px;display:inline-flex;white-space:nowrap;font-size:12px;font-weight:600;line-height:1.5}.dot{width:9px;height:9px;border-radius:50%;display:inline-block;flex:none}
.up{color:#116447}.up .dot{background:#14835c}.down{color:#6e4b3c}.down .dot{border:2px solid #845e4e;border-radius:2px}
.late{color:var(--gold)}.late .dot{background:#b98334;border-radius:2px;transform:rotate(45deg);width:7px;height:7px}
.neutral{color:#5d6b6b}.neutral .dot{border:1.5px solid #748580}.bad{color:var(--red)}.bad .dot{background:var(--red);border-radius:2px}
.service-panel,.card{border:1px solid var(--edge);border-radius:9px;background:white;min-width:0;padding:15px 17px}.service-panel{border-top:3px solid #396556}
.service-row,.detail-row,.event,.endpoint,.capacity-row{border-top:1px solid var(--edge);padding:11px 0;min-width:0;overflow-wrap:anywhere}
.service-head{gap:6px;justify-content:space-between;flex-wrap:wrap}.service-head h3{font-size:14px}.trace{flex-wrap:wrap;gap:2px 6px;font-size:13px;margin:5px 0;align-items:baseline}
.trace .arrow{color:#839b8b;font-size:12px}.trace a{color:#335e50}.service-row .detail-link{font-size:12px;display:inline-block;margin-top:4px}
.hop-result{display:flex;align-items:center;justify-content:space-between;gap:7px;padding:4px 0;font-size:13px}
.service-row>a,.detail-row>a{font-size:13px}.service-row>a{display:inline-block;margin-top:5px}.backlink{display:block;margin-top:8px}
.node-chain{display:flex;align-items:center;flex-wrap:wrap;gap:3px;margin:8px 0}
.chain-node{display:inline-flex;gap:3px;align-items:center;border:1px solid var(--edge);border-radius:5px;background:#f4f7f3;padding:2px 5px;text-decoration:none;font-size:12px;color:var(--ink)}
.chain-node .device-icon{width:22px;height:22px}.chain-arrow{color:var(--muted);font-size:13px}
.path-actions{display:flex;align-items:baseline;justify-content:space-between;gap:6px;flex-wrap:wrap;margin-top:6px;font-size:13px}
.path-actions .locate{font-size:12px;color:var(--teal);padding:2px 6px}
.tile-projects{display:block;font-size:11px;color:var(--muted);padding-top:3px;overflow-wrap:anywhere}
.device-tile.located{border-color:#529578;background:#eaf6ee}.node-role{font-size:11px;color:var(--teal);font-weight:650}
.topo-selection{display:flex;align-items:center;justify-content:space-between;gap:5px;flex-wrap:wrap;background:#dbeee1;color:var(--ink);font-size:13px;padding:5px 8px;margin-bottom:6px;border-radius:6px}
.topo-selection button{font-size:12px}.site-list{grid-template-columns:repeat(2,minmax(0,1fr))}.site.wide{grid-column:1/-1}
@media(max-width:1050px) and (min-width:781px), (max-width:640px){.site-list{grid-template-columns:1fr}}
.empty{color:var(--muted);padding:14px 2px;font-size:14px}.crumb{display:inline-block;margin:17px 0 12px;font-size:13px}
.identity{gap:12px;flex-wrap:wrap;margin:0 0 5px}.identity .device-icon{width:49px;height:49px}.identity .chip{font-size:14px;border:1px solid var(--edge);padding:3px 8px;border-radius:5px}
.tabs{flex-wrap:wrap;border-block:1px solid var(--edge);padding:7px 0;gap:4px;margin:16px 0}.tabs a{font-size:14px}
.project-layout,.device-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;align-items:start}
.project-layout>div,.stack{display:grid;gap:14px;min-width:0}.project-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,255px),1fr));gap:13px}
.card>h2,.card>h3{margin-bottom:8px}.project-card p{margin:8px 0}.detail-row strong,.event strong{display:block}.detail-row .small,.event .small,.endpoint .small{margin:3px 0}
.metric-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,152px),1fr));gap:8px;margin:9px 0}
.metric{padding:10px;background:#f0f5f0;border:1px solid #dce6df;border-radius:6px}.metric dt{font-size:12px;color:var(--muted)}.metric dd{font-size:17px;font-weight:650;margin:3px 0;overflow-wrap:anywhere}
.metric dd.long{font-size:14px}.capacity-row{display:grid;grid-template-columns:minmax(100px,.9fr) minmax(120px,1.6fr) minmax(100px,1.1fr);gap:4px 10px;align-items:start}.capacity-row:first-child{border:0}
.metric-heading,.history-controls,.actions{gap:7px 12px;flex-wrap:wrap;justify-content:space-between}
.actions{justify-content:flex-start}.actions button,.actions a{font-size:13px}.endpoint code{overflow-wrap:anywhere;font-size:13px}.endpoint code,.endpoint .small{display:block}
.history-controls{margin-bottom:12px}.history-controls label{display:flex;gap:5px;align-items:center;font-size:13px}.history-info{margin:8px 0}
.chart{position:relative;height:161px;display:grid;grid-template-columns:43px minmax(0,1fr);gap:8px;margin:14px 2px 6px}
.yaxis{display:flex;flex-direction:column;justify-content:space-between;text-align:right;font-size:11px;color:var(--muted)}.bars{height:100%;display:flex;align-items:end;border-bottom:1px solid #98afa3;background:repeating-linear-gradient(to top,#e3ebe5 0 1px,transparent 1px 25%);gap:1px}
.bin{flex:1;min-width:0;display:flex;align-items:end;justify-content:center;height:100%}.bar{width:100%;min-height:2px;background:#278872;border-top:2px solid #105e4c;border-radius:2px 2px 0 0}
.axis{display:flex;justify-content:space-between;margin-left:51px;gap:10px;font:12px/1.4 "Consolas",monospace;color:var(--muted)}.history-table{margin-top:15px;max-width:100%;overflow:auto}
.history-table summary{cursor:pointer;font-size:14px;color:var(--teal)}table{border-collapse:collapse;width:100%;font-size:13px;line-height:1.45}th,td{text-align:left;padding:6px;border-bottom:1px solid var(--edge)}
th{font-weight:600;color:var(--muted)}.history-table table{margin-top:5px}.backlink{font-size:13px}.target-path{border-left:3px solid #bd674e;padding-left:10px;background:#fcf6f1}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
#notice{min-height:25px;padding:5px 0;color:var(--teal);font-size:13px}
@media(max-width:1050px){.map-columns{grid-template-columns:minmax(0,2fr) minmax(235px,.95fr);gap:13px}.site{grid-template-columns:105px minmax(0,1fr)}.device-tiles{grid-template-columns:repeat(auto-fit,minmax(min(100%,132px),1fr))}.device-tile{grid-template-columns:28px minmax(0,1fr);gap:3px;padding:4px}.device-tile .device-icon{width:28px;height:28px}}
@media(max-width:780px){.map-columns,.project-layout,.device-grid{grid-template-columns:1fr}.mast-row{gap:13px;flex-wrap:wrap;padding-block:7px}.stamp{font-size:11px}.service-panel{margin-top:2px}.site{grid-template-columns:120px minmax(0,1fr)}.mast nav a{padding:7px 9px}.device-tile{min-height:53px}}
@media(max-width:540px){.mast-row{gap:5px 12px}.mast nav{margin-left:auto}.brand{font-size:15px;gap:4px}.brand-mark{display:none}.mast nav a{font-size:13px;min-height:44px;display:flex;align-items:center}.stamp{flex-basis:100%;text-align:left;margin:0}.page-head{padding:16px 0 11px}.fleet-strip{padding:7px 9px;gap:5px 10px}.fleet-strip .observed{margin:0;flex-basis:100%}.site{display:block}.site-head{border-right:none;border-bottom:1px solid var(--edge);border-radius:8px 8px 0 0;flex-direction:row;justify-content:space-between;align-items:center;padding:5px 9px}.device-tiles{padding:3px;grid-template-columns:repeat(auto-fit,minmax(min(100%,128px),1fr))}.device-tile .meta{gap:2px 5px}.site-list{gap:8px}.card,.service-panel{padding:12px}.capacity-row{display:block}.capacity-row>*{display:block}.switch a,.tabs a,.actions button,.actions a,select{min-height:44px;display:inline-flex;align-items:center}.history-controls label{flex-wrap:wrap}.history-table td,.history-table th{padding:5px 3px}.trace a,.detail-link,.backlink{padding-block:4px}}
