:root {
  color-scheme: light;
  font-family: "Segoe UI", "Microsoft YaHei", sans-serif;
  color: #17202a;
  background: #f3f5f7;
  --ink: #17202a;
  --muted: #69747d;
  --line: #dfe4e8;
  --paper: #ffffff;
  --teal: #147d72;
  --teal-soft: #e5f3f0;
  --amber: #ad6b00;
  --amber-soft: #fff3d7;
  --red: #b43b46;
  --red-soft: #fbe9eb;
  --blue: #285c9e;
}
* { box-sizing: border-box; }
body { margin: 0; min-width: 320px; background: #f3f5f7; }
button, input, select, textarea { font: inherit; letter-spacing: 0; }
button { cursor: pointer; }
[hidden] { display: none !important; }
.login-shell { min-height: 100vh; display: grid; place-items: center; background: #edf0f2; padding: 24px; }
.login-panel { width: min(400px, 100%); background: var(--paper); border: 1px solid var(--line); padding: 32px; display: grid; gap: 18px; box-shadow: 0 16px 40px rgba(24, 35, 45, .08); }
.login-panel h1 { margin: 0; font-size: 24px; }
.login-panel p { margin: 5px 0 0; color: var(--muted); }
.login-panel label, .filterbar label { display: grid; gap: 6px; color: var(--muted); font-size: 12px; }
input, select, textarea { border: 1px solid #cfd6dc; background: #fff; color: var(--ink); padding: 10px 11px; border-radius: 4px; outline: none; min-width: 0; }
input:focus, select:focus, textarea:focus { border-color: var(--teal); box-shadow: 0 0 0 3px rgba(20, 125, 114, .12); }
.primary, .secondary { border: 1px solid transparent; border-radius: 4px; padding: 10px 14px; font-weight: 600; }
.primary { background: var(--teal); color: #fff; }
.secondary { background: #fff; color: var(--ink); border-color: #cfd6dc; }
.brand-mark { width: 44px; height: 44px; display: grid; place-items: center; background: var(--teal); color: #fff; border-radius: 6px; font-weight: 800; }
.brand-mark.small { width: 32px; height: 32px; font-size: 12px; }
.error-text { min-height: 20px; color: var(--red); font-size: 13px; }
.app-shell { min-height: 100vh; display: grid; grid-template-columns: 210px minmax(0, 1fr); }
.sidebar { position: sticky; top: 0; height: 100vh; background: #1f272d; color: #fff; padding: 20px 14px; display: flex; flex-direction: column; }
.brand { display: flex; align-items: center; gap: 10px; padding: 0 6px 24px; font-weight: 700; }
.sidebar nav { display: grid; gap: 4px; }
.nav-item { border: 0; background: transparent; color: #c9d0d5; text-align: left; padding: 11px 12px; border-radius: 4px; display: flex; gap: 10px; align-items: center; }
.nav-item:hover, .nav-item.active { background: #303b43; color: #fff; }
.nav-icon { width: 18px; text-align: center; }
.sidebar-footer { margin-top: auto; border-top: 1px solid #3a444b; padding: 14px 6px 0; display: flex; align-items: center; justify-content: space-between; color: #c9d0d5; font-size: 13px; }
.workspace { min-width: 0; }
.topbar { min-height: 86px; background: #fff; border-bottom: 1px solid var(--line); padding: 18px 28px; display: flex; align-items: center; justify-content: space-between; }
.topbar h1 { margin: 2px 0 0; font-size: 22px; }
.eyebrow { margin: 0; color: var(--muted); font-size: 12px; }
.sync-state { display: flex; align-items: center; gap: 8px; color: var(--muted); font-size: 13px; }
.status-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--amber); }
.filterbar { padding: 14px 28px; display: grid; grid-template-columns: repeat(5, minmax(120px, 1fr)) minmax(190px, 1.4fr) 40px; align-items: end; gap: 10px; background: #fafbfc; border-bottom: 1px solid var(--line); }
.filterbar input, .filterbar select { width: 100%; height: 38px; padding: 8px 9px; }
.icon-button { width: 34px; height: 34px; border: 1px solid transparent; background: transparent; color: inherit; border-radius: 4px; font-size: 18px; display: grid; place-items: center; }
.icon-button:hover { background: rgba(127, 138, 146, .14); }
.refresh { width: 38px; height: 38px; border-color: #cfd6dc; background: #fff; }
.view-section { padding: 22px 28px 34px; }
.kpi-grid { display: grid; grid-template-columns: repeat(6, minmax(130px, 1fr)); gap: 12px; margin-bottom: 14px; }
.kpi { min-height: 104px; background: var(--paper); border: 1px solid var(--line); border-top: 3px solid var(--teal); padding: 15px; }
.kpi:nth-child(2) { border-top-color: var(--blue); }
.kpi:nth-child(3) { border-top-color: var(--amber); }
.kpi:nth-child(4) { border-top-color: #71579a; }
.kpi:nth-child(5) { border-top-color: var(--red); }
.kpi:nth-child(6) { border-top-color: #4f6a3d; }
.kpi-label { color: var(--muted); font-size: 12px; }
.kpi-value { display: block; margin-top: 9px; font-size: 25px; font-weight: 700; }
.kpi-foot { margin-top: 5px; color: var(--muted); font-size: 11px; }
.overview-grid { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(280px, .8fr); gap: 14px; margin-bottom: 14px; }
.lower-grid { grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); }
.panel { background: var(--paper); border: 1px solid var(--line); padding: 17px; min-width: 0; }
.panel-heading { min-height: 28px; display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 14px; }
.panel-heading h2 { margin: 0; font-size: 15px; }
.panel-heading span { color: var(--muted); font-size: 11px; text-align: right; }
.wide-panel { margin-bottom: 14px; }
.funnel-chart { display: grid; gap: 10px; }
.funnel-row { display: grid; grid-template-columns: 76px minmax(80px, 1fr) 64px; gap: 10px; align-items: center; font-size: 12px; }
.funnel-track { height: 19px; background: #eef1f3; overflow: hidden; }
.funnel-fill { height: 100%; min-width: 2px; background: var(--teal); }
.funnel-value { text-align: right; font-weight: 700; }
.quality-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }
.quality-item { padding: 13px; background: #f7f8f9; border-left: 3px solid var(--amber); }
.quality-item strong { display: block; font-size: 22px; }
.quality-item span { color: var(--muted); font-size: 11px; }
.table-wrap { overflow: auto; }
table { width: 100%; border-collapse: collapse; font-size: 12px; white-space: nowrap; }
th { color: var(--muted); font-weight: 600; text-align: left; padding: 9px 10px; border-bottom: 1px solid var(--line); background: #fafbfc; }
td { padding: 10px; border-bottom: 1px solid #edf0f2; }
tbody tr:hover { background: #f7faf9; }
.rate { display: inline-block; min-width: 54px; padding: 3px 6px; background: var(--teal-soft); color: var(--teal); text-align: center; border-radius: 3px; }
.valid-valid { color: var(--teal); }
.valid-invalid { color: var(--red); }
.valid-unknown { color: var(--muted); }
.money { font-variant-numeric: tabular-nums; }
canvas { width: 100%; height: 250px; display: block; }
.trend-legend { min-height: 20px; display: flex; justify-content: flex-end; gap: 14px; color: var(--muted); font-size: 10px; }
.trend-legend span { display: inline-flex; align-items: center; gap: 5px; }
.trend-legend span::before { content: ""; width: 14px; height: 3px; background: var(--blue); }
.trend-legend .trend-usable::before { background: var(--teal); }
.trend-legend .trend-converted::before { background: var(--red); }
.lead-table { max-height: calc(100vh - 260px); }
.lead-table thead { position: sticky; top: 0; z-index: 1; }
.link-button { border: 0; background: transparent; color: var(--blue); padding: 2px 4px; }
.import-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.import-panel { display: grid; gap: 12px; align-content: start; }
.import-panel textarea { min-height: 240px; resize: vertical; font-family: Consolas, monospace; font-size: 12px; }
.result-box { min-height: 24px; font-size: 12px; color: var(--muted); }
dialog { width: min(760px, calc(100vw - 32px)); max-height: calc(100vh - 48px); border: 1px solid var(--line); padding: 0; box-shadow: 0 22px 70px rgba(0, 0, 0, .2); }
dialog::backdrop { background: rgba(20, 28, 34, .42); }
.dialog-head { padding: 15px 18px; border-bottom: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; }
.dialog-head h2 { margin: 0; font-size: 16px; }
.detail-grid { padding: 18px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 20px; overflow: auto; }
.detail-item { min-width: 0; }
.detail-item dt { color: var(--muted); font-size: 11px; margin-bottom: 4px; }
.detail-item dd { margin: 0; overflow-wrap: anywhere; font-size: 13px; }
.detail-item.full { grid-column: 1 / -1; }
#leadDialog { width: min(1120px, calc(100vw - 32px)); }
.lead-detail-content { max-height: calc(100vh - 106px); overflow: auto; }
.raw-field-section { padding: 0 18px 20px; border-top: 1px solid var(--line); }
.raw-field-heading { min-height: 58px; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.raw-field-heading h3 { margin: 0; font-size: 14px; }
.raw-field-heading span { color: var(--muted); font-size: 11px; }
.raw-field-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.raw-field { min-width: 0; min-height: 76px; margin: 0; padding: 11px 12px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.raw-field dt { color: var(--muted); font-size: 11px; }
.raw-field dt small { display: block; margin-top: 3px; color: #98a2aa; font: 9px Consolas, monospace; overflow-wrap: anywhere; }
.raw-field dd { margin: 8px 0 0; color: var(--ink); font-size: 12px; line-height: 1.5; overflow-wrap: anywhere; white-space: pre-wrap; }
.raw-field-empty { grid-column: 1 / -1; margin: 0; padding: 24px; color: var(--muted); text-align: center; }

/* Infrastructure control surface */
.asset-view { padding: 0; background: #071116; color: #dce9e9; min-height: calc(100vh - 86px); }
.asset-commandbar { min-height: 70px; padding: 13px 28px; border-bottom: 1px solid #1d373b; background: #0a171c; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.asset-kicker { color: #7ee4df; font: 700 11px Consolas, "Segoe UI", sans-serif; display: flex; align-items: center; gap: 8px; }
.asset-commandbar p { margin: 5px 0 0; color: #779397; font-size: 11px; }
.live-beacon { width: 7px; height: 7px; border-radius: 50%; background: #52e3a4; box-shadow: 0 0 0 4px rgba(82, 227, 164, .1), 0 0 14px rgba(82, 227, 164, .55); animation: beacon-pulse 2s ease-out infinite; }
.asset-controls { display: flex; align-items: center; gap: 10px; }
.segmented-control { display: flex; height: 34px; border: 1px solid #29464a; padding: 2px; background: #071116; border-radius: 4px; }
.segmented-control button { min-width: 58px; border: 0; border-radius: 2px; background: transparent; color: #789498; font-size: 12px; }
.segmented-control button.active { background: #163239; color: #a7ffef; }
.auto-refresh-control { height: 34px; padding: 0 10px; border: 1px solid #29464a; border-radius: 4px; display: flex; align-items: center; gap: 7px; color: #9bb0b3; font-size: 11px; cursor: pointer; }
.auto-refresh-control input { width: 14px; height: 14px; margin: 0; padding: 0; accent-color: #37c9bd; }
.asset-icon-button { width: 34px; height: 34px; padding: 0; border: 1px solid #2b5558; border-radius: 4px; background: #10262b; color: #7ee4df; font-size: 18px; }
.asset-icon-button:hover { background: #18383e; }
.asset-icon-button.scanning { animation: spin .8s linear infinite; }
.asset-console { position: relative; overflow: hidden; padding: 22px 28px 36px; background-color: #071116; background-image: linear-gradient(rgba(53, 119, 123, .08) 1px, transparent 1px), linear-gradient(90deg, rgba(53, 119, 123, .08) 1px, transparent 1px); background-size: 34px 34px; }
.scan-line { position: absolute; z-index: 0; top: 0; left: 0; width: 100%; height: 1px; background: #59dfd7; box-shadow: 0 0 18px rgba(89, 223, 215, .7); opacity: .32; animation: scan 8s linear infinite; pointer-events: none; }
.asset-summary, .asset-mode-panel, .asset-events { position: relative; z-index: 1; }
.asset-summary { display: grid; grid-template-columns: repeat(4, minmax(130px, 1fr)); border: 1px solid #1f3b3e; background: rgba(7, 17, 22, .92); margin-bottom: 16px; }
.asset-stat { position: relative; min-height: 100px; padding: 17px 19px; border-right: 1px solid #1f3b3e; overflow: hidden; }
.asset-stat:last-child { border-right: 0; }
.asset-stat span { display: block; color: #638388; font: 600 10px Consolas, "Segoe UI", sans-serif; }
.asset-stat strong { display: inline-block; margin-top: 9px; color: #f1f9f8; font-size: 26px; font-variant-numeric: tabular-nums; }
.asset-stat small { margin-left: 8px; color: #82999c; font-size: 11px; }
.asset-stat > i { position: absolute; left: 19px; right: 19px; bottom: 0; height: 2px; background: #31cbd1; box-shadow: 0 0 12px rgba(49, 203, 209, .45); }
.asset-stat.tone-green > i { background: #5bd69a; }
.asset-stat.tone-amber > i { background: #e8b45b; }
.asset-stat.tone-red > i { background: #ee7077; }
.asset-mode-panel, .asset-events { border: 1px solid #1f3b3e; background: rgba(8, 20, 25, .94); padding: 18px; }
.topology-head { min-height: 34px; display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 16px; }
.topology-head > div:first-child { display: flex; align-items: center; gap: 9px; }
.topology-head h2 { margin: 0; font-size: 14px; color: #e8f3f2; }
.topology-index { color: #42ced0; font: 700 10px Consolas, monospace; }
.topology-legend { display: flex; gap: 16px; color: #728f93; font-size: 10px; }
.topology-legend span { display: flex; align-items: center; gap: 6px; }
.legend-dot { width: 7px; height: 7px; border-radius: 50%; display: inline-block; }
.legend-dot.online { background: #58dfa0; box-shadow: 0 0 8px rgba(88, 223, 160, .55); }
.legend-dot.snapshot { background: #e8b45b; }
.legend-dot.pending { border: 1px solid #6c888c; }
.server-topology { display: grid; grid-template-columns: repeat(2, minmax(360px, 1fr)); gap: 14px; }
.server-node { position: relative; min-width: 0; border: 1px solid #26484b; border-top: 2px solid #37cbd0; background: #0b1a1f; padding: 17px; overflow: hidden; border-radius: 4px; box-shadow: 0 10px 26px rgba(0, 0, 0, .18); }
.server-node.source-snapshot { border-top-color: #e8b45b; }
.server-node.source-pending { border-top-color: #536f73; }
.node-pulse { position: absolute; top: -54px; right: -54px; width: 106px; height: 106px; border: 1px solid rgba(56, 203, 208, .18); border-radius: 50%; box-shadow: 0 0 0 18px rgba(56, 203, 208, .03), 0 0 0 38px rgba(56, 203, 208, .02); }
.server-node-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; }
.server-chip { color: #4eaeb2; font: 600 9px Consolas, monospace; }
.server-identity h3 { margin: 6px 0 3px; font-size: 17px; color: #edf7f6; }
.server-identity p { margin: 0; color: #728e92; font-size: 10px; }
.node-status-group { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; }
.source-badge, .status-badge { min-height: 21px; padding: 4px 7px; border: 1px solid #29484c; color: #819b9e; font-size: 9px; border-radius: 3px; white-space: nowrap; }
.source-badge.live { border-color: #23777a; color: #6ce6e0; }
.source-badge.snapshot { border-color: #7c622e; color: #eac171; }
.status-badge { display: flex; align-items: center; gap: 5px; }
.status-badge i, .service-pill i { width: 6px; height: 6px; border-radius: 50%; background: #698185; }
.status-badge.online i, .service-pill.online i { background: #58dfa0; box-shadow: 0 0 7px rgba(88, 223, 160, .6); }
.status-badge.degraded i, .service-pill.degraded i { background: #e8b45b; }
.status-badge.offline i, .service-pill.offline i { background: #ee7077; }
.server-address { margin: 15px 0 17px; padding: 9px 10px; border-left: 2px solid #2ab7bb; background: #0e2227; display: grid; grid-template-columns: auto minmax(105px, 1fr) auto minmax(95px, 1fr); align-items: center; gap: 7px 10px; }
.server-address span { color: #53777c; font: 600 8px Consolas, monospace; }
.server-address strong { color: #b8d0d1; font: 600 11px Consolas, monospace; overflow-wrap: anywhere; }
.resource-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.resource-gauge { min-width: 0; display: grid; justify-items: center; padding: 3px; }
.gauge-ring { --progress: 0; width: 76px; height: 76px; border-radius: 50%; background: conic-gradient(#35d0d2 calc(var(--progress) * 1%), #173034 0); display: grid; place-items: center; box-shadow: 0 0 18px rgba(53, 208, 210, .08); }
.gauge-ring::before { content: ""; width: 60px; height: 60px; border-radius: 50%; background: #0b1a1f; border: 1px solid #214044; grid-area: 1 / 1; }
.gauge-ring > div { position: relative; grid-area: 1 / 1; display: flex; align-items: baseline; }
.gauge-ring strong { font: 700 16px Consolas, monospace; color: #dff9f6; }
.gauge-ring span { color: #699397; font-size: 8px; }
.gauge-empty .gauge-ring { background: #173034; }
.gauge-label { margin-top: 7px; color: #91acaf; font-size: 10px; }
.resource-gauge small { display: block; width: 100%; margin-top: 3px; color: #516f73; text-align: center; font-size: 8px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.telemetry-strip { height: 48px; margin-top: 15px; padding: 7px 9px; border-top: 1px solid #18363a; border-bottom: 1px solid #18363a; display: grid; grid-template-columns: 105px minmax(0, 1fr); align-items: center; gap: 12px; }
.telemetry-strip > div:first-child span { display: block; color: #4d7579; font: 600 8px Consolas, monospace; }
.telemetry-strip > div:first-child strong { color: #9bb7b9; font-size: 10px; }
.telemetry-chart { height: 28px; display: flex; align-items: end; gap: 2px; }
.telemetry-chart i { min-width: 3px; flex: 1; max-width: 10px; background: #35c6c8; opacity: .7; }
.telemetry-empty { color: #496a6e; font-size: 9px; text-align: right; }
.service-rack { display: flex; flex-wrap: wrap; gap: 6px; margin: 12px 0; min-height: 23px; }
.service-pill { padding: 5px 7px; background: #10262b; color: #8aa4a7; font-size: 9px; display: flex; align-items: center; gap: 5px; border-radius: 3px; }
.service-pill b { color: #4e777b; font-weight: 500; }
.domain-links { border-top: 1px solid #204044; }
.domain-link-title { height: 28px; display: flex; align-items: center; gap: 8px; color: #4e777b; font: 600 8px Consolas, monospace; }
.domain-link-title i { flex: 1; height: 1px; background: #173438; }
.domain-link-row { min-height: 50px; padding: 8px 0; border-top: 1px solid #142d31; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.domain-link-row > div:first-child { display: grid; grid-template-columns: 9px minmax(0, 1fr); align-items: center; column-gap: 6px; min-width: 0; }
.domain-link-row strong { color: #b9cecf; font: 600 11px Consolas, monospace; overflow-wrap: anywhere; }
.domain-link-row small { grid-column: 2; color: #547378; font-size: 8px; }
.domain-status { width: 6px; height: 6px; border-radius: 50%; display: inline-block; background: #667e82; }
.domain-status.online { background: #58dfa0; box-shadow: 0 0 7px rgba(88, 223, 160, .5); }
.domain-status.degraded { background: #e8b45b; }
.domain-status.offline { background: #ee7077; }
.domain-metrics { display: flex; align-items: center; gap: 12px; }
.domain-metrics > span { color: #a9bfc0; font: 600 11px Consolas, monospace; text-align: right; }
.domain-metrics small { display: block; color: #4e7074; font: 400 7px "Segoe UI", sans-serif; }
.domain-metrics button, .server-node-foot button, .asset-table button { border: 1px solid #28565a; border-radius: 3px; background: transparent; color: #72cbc9; padding: 5px 7px; font-size: 9px; white-space: nowrap; }
.domain-metrics button:hover, .server-node-foot button:hover, .asset-table button:hover { background: #123137; }
.server-node-foot { margin-top: 12px; padding-top: 10px; border-top: 1px solid #183438; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.server-node-foot span { color: #496a6e; font-size: 8px; }
.asset-events { margin-top: 14px; }
.compact-head { margin-bottom: 10px; }
.compact-head > span, .inventory-hint { color: #607e82; font-size: 9px; }
.asset-issue-list { display: grid; gap: 6px; }
.asset-issue { min-height: 45px; padding: 8px 10px; border-left: 2px solid #4a777b; background: #0c2025; display: grid; grid-template-columns: 40px minmax(0, 1fr) auto; align-items: center; gap: 10px; }
.asset-issue.info { border-left-color: #42c8ca; }
.asset-issue.warning { border-left-color: #e8b45b; }
.asset-issue.critical { border-left-color: #ee7077; }
.issue-code { color: #5d8589; font: 700 8px Consolas, monospace; }
.asset-issue strong, .asset-clear strong { display: block; color: #b7cecf; font-size: 10px; }
.asset-issue small, .asset-clear small { display: block; margin-top: 2px; color: #58777b; font-size: 8px; }
.asset-issue time { color: #496a6e; font: 400 8px Consolas, monospace; }
.asset-clear { min-height: 52px; display: flex; align-items: center; gap: 10px; color: #58dfa0; }
.asset-clear > span { width: 28px; height: 28px; border: 1px solid #256749; border-radius: 50%; display: grid; place-items: center; }
.asset-table-wrap { overflow: auto; border: 1px solid #17363a; }
.asset-table { color: #9bb2b4; font-size: 10px; }
.asset-table th { background: #0c2126; color: #52777c; border-color: #1c3b3e; }
.asset-table td { border-color: #173236; padding: 12px 10px; }
.asset-table tbody tr:hover { background: #0e262b; }
.asset-table td > strong { display: block; color: #c2d6d6; font: 600 11px Consolas, monospace; }
.asset-table td > small { color: #54767a; font-size: 8px; }
.inventory-type { display: inline-block; min-width: 40px; padding: 4px 6px; border: 1px solid #287177; color: #6fd9d6; text-align: center; border-radius: 3px; }
.inventory-type.domain { border-color: #5a713e; color: #a6ce73; }
.table-status { display: inline-flex; align-items: center; gap: 4px; color: #728f93; }
.table-status::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.table-status.online { color: #58dfa0; }
.table-status.degraded { color: #e8b45b; }
.table-status.offline { color: #ee7077; }
.asset-dialog { background: #09181d; color: #dce9e9; border-color: #29484c; }
.asset-dialog::backdrop { background: rgba(1, 9, 12, .72); }
.asset-dialog-head { border-color: #244247; }
.asset-dialog-head > div > span { color: #4aaeb2; font: 600 8px Consolas, monospace; }
.asset-dialog-head h2 { margin-top: 4px; color: #e8f3f2; }
.asset-detail { padding: 18px; }
.asset-fact-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid #203d41; border-left: 1px solid #203d41; }
.asset-fact-grid dl { min-width: 0; margin: 0; padding: 11px; border-right: 1px solid #203d41; border-bottom: 1px solid #203d41; }
.asset-fact-grid dt { color: #577b7f; font-size: 9px; }
.asset-fact-grid dd { margin: 5px 0 0; color: #bed0d1; font: 500 11px Consolas, "Microsoft YaHei", sans-serif; overflow-wrap: anywhere; }
.detail-service-section { margin-top: 18px; }
.detail-service-section h3 { margin: 0 0 9px; font-size: 12px; }
.detail-service-section > div { min-height: 42px; padding: 8px 10px; border-top: 1px solid #203d41; display: grid; grid-template-columns: 8px 120px minmax(0, 1fr) auto; align-items: center; gap: 7px; }
.detail-service-section strong { color: #b8cdce; font-size: 10px; }
.detail-service-section small { color: #57777b; font-size: 9px; overflow-wrap: anywhere; }
.detail-service-section b { color: #55c5c4; font: 600 10px Consolas, monospace; }
@keyframes beacon-pulse { 0%, 100% { opacity: 1; } 50% { opacity: .45; } }
@keyframes scan { from { transform: translateY(0); } to { transform: translateY(760px); } }
@keyframes spin { to { transform: rotate(360deg); } }
@media (max-width: 1180px) {
  .filterbar { grid-template-columns: repeat(4, 1fr); }
  .search-field { grid-column: span 2; }
  .kpi-grid { grid-template-columns: repeat(3, 1fr); }
  .server-topology { grid-template-columns: 1fr; }
}
@media (max-width: 820px) {
  .app-shell { grid-template-columns: 1fr; }
  .sidebar { position: static; width: 100%; max-width: 100vw; height: auto; padding: 10px 12px; flex-direction: row; align-items: center; gap: 10px; overflow: hidden; }
  .brand { padding: 0; flex: 0 0 auto; }
  .brand > span:last-child { display: none; }
  .sidebar nav { display: flex; flex: 1 1 auto; min-width: 0; overflow: auto; scrollbar-width: none; }
  .sidebar nav::-webkit-scrollbar { display: none; }
  .nav-item { white-space: nowrap; padding: 9px 10px; }
  .sidebar-footer { margin: 0 0 0 auto; padding: 0; border: 0; flex: 0 0 auto; }
  #currentUser { display: none; }
  .topbar { padding: 14px 16px; min-height: 72px; }
  .filterbar { padding: 12px 16px; grid-template-columns: repeat(2, 1fr); }
  .search-field { grid-column: span 2; }
  .view-section { padding: 16px; }
  .kpi-grid { grid-template-columns: repeat(2, 1fr); }
  .overview-grid, .lower-grid, .import-grid { grid-template-columns: 1fr; }
  .asset-view { min-height: calc(100vh - 128px); }
  .asset-commandbar { padding: 12px 16px; }
  .asset-console { padding: 16px; }
  .asset-summary { grid-template-columns: repeat(2, 1fr); }
  .raw-field-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .asset-stat:nth-child(2) { border-right: 0; }
  .asset-stat:nth-child(-n+2) { border-bottom: 1px solid #1f3b3e; }
}
@media (max-width: 480px) {
  .topbar h1 { font-size: 19px; }
  .sync-state { display: none; }
  .kpi-grid { grid-template-columns: 1fr 1fr; gap: 8px; }
  .kpi { min-height: 94px; padding: 12px; }
  .kpi-value { font-size: 21px; }
  .detail-grid { grid-template-columns: 1fr; }
  .detail-item.full { grid-column: 1; }
  .raw-field-grid { grid-template-columns: 1fr; }
  .asset-commandbar { align-items: flex-start; flex-direction: column; }
  .asset-controls { width: 100%; flex-wrap: wrap; }
  .segmented-control { flex: 1; }
  .segmented-control button { flex: 1; }
  .auto-refresh-control { flex: 1; justify-content: center; }
  .asset-console { padding: 12px; }
  .asset-stat { min-height: 88px; padding: 14px; }
  .asset-stat strong { font-size: 21px; }
  .asset-stat small { display: block; margin: 3px 0 0; }
  .asset-mode-panel, .asset-events { padding: 13px; }
  .topology-legend { display: none; }
  .server-topology { grid-template-columns: minmax(0, 1fr); }
  .server-node { padding: 13px; }
  .server-node-head { align-items: flex-start; }
  .node-status-group { gap: 4px; }
  .server-address { grid-template-columns: auto 1fr; }
  .gauge-ring { width: 68px; height: 68px; }
  .gauge-ring::before { width: 53px; height: 53px; }
  .resource-gauge small { font-size: 7px; }
  .domain-link-row { align-items: flex-start; flex-direction: column; }
  .domain-metrics { align-self: stretch; justify-content: flex-end; }
  .asset-issue { grid-template-columns: 34px minmax(0, 1fr); }
  .asset-issue time { display: none; }
  .asset-fact-grid { grid-template-columns: 1fr; }
  .detail-service-section > div { grid-template-columns: 8px minmax(75px, auto) minmax(0, 1fr); }
  .detail-service-section b { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .live-beacon, .scan-line, .asset-icon-button.scanning { animation: none; }
}

/* Asset center v2: motion and data carry the technical character. */
.asset-view { min-height: calc(100vh - 86px); padding: 0; background: #f2f5f6; color: #1d3036; }
.asset-commandbar { min-height: 82px; padding: 14px 28px; border-bottom: 1px solid #dce5e6; background: #fff; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.asset-command-title { display: flex; align-items: center; gap: 13px; }
.asset-command-title h2 { margin: 0; color: #182b31; font-size: 20px; }
.asset-command-title p { margin: 5px 0 0; color: #728388; font-size: 12px; }
.live-beacon { position: relative; width: 38px; height: 38px; flex: 0 0 38px; border: 1px solid #a9d6d4; border-radius: 50%; background: #f0fbfa; box-shadow: none; animation: none; }
.live-beacon::before, .live-beacon::after, .live-beacon i { content: ""; position: absolute; border-radius: 50%; }
.live-beacon::before { inset: 8px; border: 1px solid #75c6c2; animation: asset-orbit 3.2s linear infinite; border-top-color: transparent; }
.live-beacon::after { inset: 15px; background: #0e9a92; box-shadow: 0 0 0 4px rgba(14, 154, 146, .11); }
.live-beacon i { inset: 1px; border: 1px solid rgba(14, 154, 146, .15); animation: asset-ping 2.2s ease-out infinite; }
.asset-controls { display: flex; align-items: center; gap: 10px; }
.asset-clock { min-width: 82px; text-align: right; }
.asset-clock time { display: block; color: #20373d; font: 700 15px Consolas, monospace; }
.asset-clock span { color: #819095; font-size: 10px; }
.scan-countdown { --countdown: 100; position: relative; width: 62px; height: 48px; display: grid; place-content: center; text-align: center; border: 1px solid #d5e0e1; border-radius: 5px; background: #f8fafb; overflow: hidden; }
.scan-countdown::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 3px; background: #0e9a92; transform: scaleX(calc(var(--countdown) / 100)); transform-origin: left; transition: transform .3s linear; }
.scan-countdown strong { color: #17343a; font: 700 16px Consolas, monospace; }
.scan-countdown span { color: #74868a; font-size: 9px; }
.segmented-control { height: 38px; padding: 3px; border: 1px solid #d3dddf; border-radius: 5px; background: #f4f7f8; }
.segmented-control button { min-width: 66px; color: #65777c; font-size: 13px; }
.segmented-control button.active { background: #fff; color: #127e79; box-shadow: 0 1px 4px rgba(31, 56, 62, .1); }
.auto-refresh-control { height: 38px; padding: 0 12px; border-color: #d3dddf; border-radius: 5px; background: #fff; color: #53686d; font-size: 12px; }
.asset-icon-button { width: 38px; height: 38px; border-color: #c9d9da; border-radius: 5px; background: #fff; color: #0e8b85; font-size: 19px; }
.asset-icon-button:hover { background: #edf8f7; }
.asset-console { max-width: 1540px; margin: 0 auto; padding: 22px 28px 42px; background: transparent; background-image: none; overflow: visible; }
.asset-summary { display: grid; grid-template-columns: repeat(4, minmax(170px, 1fr)); gap: 12px; margin-bottom: 16px; border: 0; background: transparent; }
.asset-stat { position: relative; min-height: 104px; padding: 19px; border: 1px solid #dae4e5; border-radius: 6px; background: #fff; display: grid; grid-template-columns: 42px minmax(0, 1fr); align-items: center; gap: 12px; overflow: hidden; box-shadow: 0 4px 14px rgba(34, 60, 66, .04); }
.asset-stat:last-child { border-right: 1px solid #dae4e5; }
.asset-stat-icon { position: relative; width: 42px; height: 42px; border-radius: 50%; border: 1px solid #b9dbd9; background: #eff9f8; display: grid; place-items: center; }
.asset-stat-icon span { color: #0c8d87; font: 700 11px Consolas, monospace; }
.asset-stat-icon i { position: absolute; inset: -5px; border: 1px solid rgba(14, 141, 135, .1); border-radius: 50%; animation: asset-ping 2.8s ease-out infinite; }
.asset-stat > div:nth-child(2) > span { display: block; color: #62767a; font-size: 13px; }
.asset-stat > div:nth-child(2) > div { display: flex; align-items: baseline; gap: 9px; margin-top: 5px; }
.asset-stat strong { margin: 0; color: #173037; font-size: 30px; line-height: 1; font-variant-numeric: tabular-nums; }
.asset-stat small { color: #7e8e92; font-size: 12px; }
.asset-stat > b { position: absolute; left: 0; top: 16px; bottom: 16px; width: 3px; border-radius: 0 3px 3px 0; background: #139a93; }
.asset-stat.tone-domain > b { background: #39a769; }
.asset-stat.tone-service > b { background: #d9932f; }
.asset-stat.tone-tls > b { background: #3975a8; }
.asset-mode-panel { padding: 0; border: 0; background: transparent; }
.network-map-section, .server-section, .asset-events, #assetInventory { border: 1px solid #d9e3e4; border-radius: 6px; background: #fff; box-shadow: 0 5px 18px rgba(28, 55, 62, .04); }
.network-map-section { padding: 18px 20px 20px; }
.asset-section-heading { min-height: 44px; margin-bottom: 13px; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.asset-section-heading > div:first-child { display: flex; align-items: center; gap: 11px; }
.asset-section-heading h2 { margin: 0; color: #193037; font-size: 17px; }
.asset-section-heading p { margin: 4px 0 0; color: #809095; font-size: 11px; }
.section-number { width: 30px; height: 30px; border-radius: 4px; background: #eaf6f5; color: #0c8e87; display: grid; place-items: center; font: 700 10px Consolas, monospace; }
.map-status { min-width: 112px; min-height: 30px; padding: 6px 10px; border: 1px solid #d5e1e2; border-radius: 4px; display: flex; align-items: center; justify-content: center; gap: 7px; color: #687d81; font-size: 11px; }
.map-status i { width: 8px; height: 8px; border-radius: 50%; background: #d9932f; }
.map-status.online { border-color: #bee3ce; background: #f0faf4; color: #26774a; }
.map-status.online i { background: #36b36b; box-shadow: 0 0 0 4px rgba(54, 179, 107, .12); animation: status-pulse 1.8s ease-out infinite; }
.map-status.warning i { background: #d9932f; }
.asset-network-map { position: relative; height: 360px; overflow: hidden; border: 1px solid #e1e8e9; border-radius: 5px; background-color: #f8fbfb; background-image: linear-gradient(rgba(44, 98, 108, .055) 1px, transparent 1px), linear-gradient(90deg, rgba(44, 98, 108, .055) 1px, transparent 1px); background-size: 28px 28px; }
#assetNetworkCanvas, .asset-network-nodes { position: absolute; inset: 0; width: 100%; height: 100%; }
#assetNetworkCanvas { z-index: 1; }
.asset-network-nodes { z-index: 2; pointer-events: none; }
.map-core, .map-node { position: absolute; left: var(--x, 50%); top: var(--y, 17%); transform: translate(-50%, -50%); }
.map-core { width: 90px; height: 78px; display: grid; justify-items: center; align-content: center; color: #29474e; }
.map-core > span { position: relative; width: 42px; height: 42px; border: 1px solid #9fd2ce; border-radius: 50%; background: #eaf8f6; }
.map-core > span::before, .map-core > span::after, .map-core > span i { content: ""; position: absolute; border-radius: 50%; }
.map-core > span::before { inset: 7px; border: 1px solid #56b7b0; }
.map-core > span::after { inset: 16px; background: #0f918a; box-shadow: 0 0 0 5px rgba(15, 145, 138, .1); }
.map-core > span i { inset: -7px; border: 1px solid rgba(15, 145, 138, .12); animation: asset-ping 2.4s ease-out infinite; }
.map-core > span b { position: absolute; inset: 3px; border: 1px dashed rgba(15, 145, 138, .45); border-radius: 50%; animation: asset-orbit 6s linear infinite; }
.map-core strong { margin-top: 5px; font-size: 12px; }
.map-core small { color: #739095; font-size: 9px; }
.map-node { pointer-events: auto; border: 1px solid #c9dfe0; border-radius: 6px; background: rgba(255, 255, 255, .96); color: #20373d; box-shadow: 0 7px 18px rgba(31, 63, 70, .08); }
.map-node:hover { border-color: #72bdb9; box-shadow: 0 9px 22px rgba(31, 93, 94, .13); }
.map-server-node { width: 218px; min-height: 92px; padding: 13px 14px 12px 48px; text-align: left; }
.map-server-node > small { color: #738b8f; font-size: 10px; }
.map-server-node > strong { display: block; margin-top: 3px; color: #19363c; font-size: 15px; }
.map-server-node > em { display: block; margin-top: 3px; color: #70878b; font: normal 10px Consolas, monospace; }
.map-node-load { position: absolute; top: 12px; right: 12px; color: #0c8f88; font: 700 11px Consolas, monospace; }
.map-node-orbit { position: absolute; left: 13px; top: 27px; width: 26px; height: 26px; border: 1px solid #8bc9c5; border-radius: 50%; }
.map-node-orbit::before { content: ""; position: absolute; inset: 5px; border-radius: 50%; background: #0f9890; box-shadow: 0 0 0 4px rgba(15, 152, 144, .09); }
.map-node-orbit i { position: absolute; inset: -5px; border: 1px dashed rgba(15, 152, 144, .45); border-radius: 50%; animation: asset-orbit 5s linear infinite; }
.map-node-orbit b { position: absolute; width: 5px; height: 5px; top: -7px; left: 9px; border-radius: 50%; background: #0f9890; }
.map-domain-node { min-width: 158px; min-height: 58px; padding: 10px 14px 9px 31px; text-align: left; }
.map-domain-node strong { display: block; max-width: 165px; color: #254149; font: 600 12px Consolas, monospace; overflow-wrap: anywhere; }
.map-domain-node > span:last-child { color: #73888c; font: 500 10px Consolas, monospace; }
.map-domain-light { position: absolute; left: 13px; top: 20px; width: 8px; height: 8px; border-radius: 50%; background: #36b36b; box-shadow: 0 0 0 5px rgba(54, 179, 107, .1); animation: status-pulse 1.9s ease-out infinite; }
.map-domain-node.offline .map-domain-light { background: #d64d59; }
.map-scan-sweep { position: absolute; z-index: 3; top: 0; bottom: 0; left: -20%; width: 15%; opacity: 0; border-right: 2px solid rgba(15, 145, 138, .42); background: rgba(15, 145, 138, .04); pointer-events: none; }
.scan-active .map-scan-sweep { opacity: 1; animation: map-sweep .75s ease-out; }
.asset-detail-layout { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 14px; margin-top: 14px; align-items: start; }
.server-section, .asset-events { padding: 18px; }
.compact-section-heading { margin-bottom: 14px; }
.topology-legend { display: flex; gap: 13px; color: #788c90; font-size: 11px; }
.topology-legend span { display: flex; align-items: center; gap: 6px; }
.legend-dot { width: 8px; height: 8px; }
.legend-dot.online { background: #37ad69; box-shadow: 0 0 0 4px rgba(55, 173, 105, .1); }
.legend-dot.snapshot { background: #d9932f; }
.server-topology { display: grid; grid-template-columns: 1fr; gap: 12px; }
.server-node { position: relative; padding: 18px; border: 1px solid #dce6e7; border-top: 1px solid #dce6e7; border-radius: 6px; background: #fff; color: #20363c; overflow: hidden; box-shadow: none; }
.server-node::before { content: ""; position: absolute; left: 0; top: 16px; bottom: 16px; width: 3px; border-radius: 0 3px 3px 0; background: #0e9991; }
.server-node.source-snapshot::before { background: #d9932f; }
.server-node-head { align-items: center; }
.server-chip { color: #188d88; font: 700 10px Consolas, monospace; }
.server-identity h3 { margin: 5px 0 3px; color: #173138; font-size: 18px; }
.server-identity p { color: #78898d; font-size: 11px; }
.node-status-group { flex-direction: row; align-items: center; }
.source-badge, .status-badge { min-height: 27px; padding: 6px 9px; border-color: #d7e1e2; border-radius: 4px; color: #697e82; font-size: 11px; }
.source-badge.live { border-color: #b7dfdc; background: #eff9f8; color: #137f79; }
.source-badge.snapshot { border-color: #ead7b4; background: #fff8ec; color: #9b6a19; }
.status-badge.online i, .service-pill.online i { background: #37af69; box-shadow: 0 0 0 4px rgba(55, 175, 105, .1); }
.server-address { margin: 15px 0; padding: 0; border: 0; background: #f5f8f8; display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; }
.server-address > div { min-width: 0; padding: 10px 12px; border-right: 1px solid #e1e8e9; }
.server-address > div:last-child { border-right: 0; }
.server-address span { display: block; color: #758a8e; font: 500 10px "Segoe UI", sans-serif; }
.server-address strong { display: block; margin-top: 4px; color: #254148; font: 600 12px Consolas, "Microsoft YaHei", sans-serif; }
.server-metric-layout { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(220px, .9fr); gap: 18px; }
.resource-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.resource-meter { min-width: 0; padding: 10px 0; }
.resource-meter-head { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.resource-meter-head > span { color: #586f74; font-size: 12px; }
.resource-meter-head strong { color: #17373d; font: 700 18px Consolas, monospace; }
.resource-meter-head strong small { color: #6f8589; font-size: 10px; }
.resource-meter-track { position: relative; height: 8px; margin-top: 9px; border-radius: 4px; background: #e7eeee; overflow: hidden; }
.resource-meter-track i { position: absolute; inset: 0; background: #168f89; transform: scaleX(calc(var(--meter) / 100)); transform-origin: left; animation: meter-enter .7s ease-out; }
.resource-meter-track b { position: absolute; top: 0; bottom: 0; width: 22px; background: rgba(255, 255, 255, .32); animation: meter-glint 2.4s linear infinite; }
.resource-meter-detail { display: block; margin-top: 7px; color: #819195; font-size: 10px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.live-trace { min-width: 0; padding-left: 18px; border-left: 1px solid #e1e8e9; }
.live-trace-head { display: flex; align-items: center; justify-content: space-between; }
.live-trace-head > div span { display: block; color: #536a6f; font-size: 12px; }
.live-trace-head > div small { display: inline-flex; align-items: center; gap: 4px; margin-top: 3px; color: #27865a; font-size: 9px; }
.live-trace-head > div small::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: #35ad68; animation: status-pulse 1.8s ease-out infinite; }
.live-trace-head strong { color: #17383e; font: 700 17px Consolas, monospace; }
.server-trace-canvas { width: 100%; height: 78px; margin-top: 7px; display: block; }
.trace-foot { display: grid; grid-template-columns: 1fr auto auto; gap: 10px; color: #879699; font-size: 9px; }
.service-rack { margin: 14px 0 6px; min-height: 29px; gap: 7px; }
.rack-label { padding: 6px 0; color: #667c80; font-size: 11px; }
.service-pill { padding: 6px 8px; border: 1px solid #dfe8e8; border-radius: 4px; background: #f7fafa; color: #536d72; font-size: 11px; }
.service-pill b { color: #7d9094; }
.domain-links { margin-top: 12px; border-top-color: #dfe7e8; }
.domain-link-title { height: 34px; color: #677c80; font: 600 11px "Segoe UI", sans-serif; }
.domain-link-title i { background: #e3eaea; }
.domain-link-row { min-height: 57px; padding: 9px 0; border-top-color: #e8eeee; }
.domain-link-row strong { color: #254148; font: 600 13px Consolas, monospace; }
.domain-link-row small { color: #7c8e91; font-size: 10px; }
.domain-metrics > span { color: #2e484f; font-size: 13px; }
.domain-metrics small { color: #859599; font-size: 9px; }
.domain-metrics button, .server-node-foot button, .asset-table button { padding: 7px 10px; border-color: #bcd8d6; border-radius: 4px; background: #fff; color: #0f847e; font-size: 11px; }
.domain-metrics button:hover, .server-node-foot button:hover, .asset-table button:hover { background: #edf8f7; }
.server-node-foot { margin-top: 8px; padding-top: 11px; border-top-color: #e3eaeb; }
.server-node-foot span { color: #829296; font-size: 10px; }
.asset-events { margin-top: 0; }
.asset-events .asset-section-heading > span { padding: 5px 8px; border-radius: 4px; background: #f1f5f5; color: #657a7e; font-size: 10px; }
.asset-issue-list { gap: 7px; }
.asset-issue { min-height: 56px; padding: 10px; border-left-width: 3px; border-radius: 3px; background: #f6f8f8; grid-template-columns: 40px minmax(0, 1fr); gap: 9px; }
.asset-issue.info { border-left-color: #3d8bb1; }
.asset-issue.warning { border-left-color: #d9932f; }
.asset-issue.critical { border-left-color: #d44c58; }
.asset-issue time { display: none; }
.issue-code { color: #718589; font: 700 9px "Segoe UI", sans-serif; }
.asset-issue strong, .asset-clear strong { color: #2d474d; font-size: 12px; }
.asset-issue small, .asset-clear small { margin-top: 3px; color: #7b8d90; font-size: 10px; }
.asset-clear { min-height: 65px; padding: 9px 6px; color: #2e9a5d; }
.asset-clear > span { width: 34px; height: 34px; border-color: #afdcbc; background: #eff9f2; }
.activity-divider { height: 31px; display: flex; align-items: center; gap: 8px; color: #7b8d91; font-size: 10px; }
.activity-divider i { flex: 1; height: 1px; background: #e2e9ea; }
.asset-activity-row { min-height: 59px; display: grid; grid-template-columns: 17px minmax(0, 1fr) auto; align-items: center; gap: 8px; }
.activity-line { align-self: stretch; position: relative; display: grid; place-items: center; }
.activity-line b { position: absolute; top: 0; bottom: 0; left: 8px; width: 1px; background: #d8e4e4; }
.activity-line i { z-index: 1; width: 9px; height: 9px; border: 2px solid #fff; border-radius: 50%; background: #38ae69; box-shadow: 0 0 0 2px #b9dfc8; }
.activity-line i.offline { background: #d44c58; box-shadow: 0 0 0 2px #efc3c7; }
.asset-activity-row strong { display: block; color: #304a50; font: 600 11px Consolas, monospace; overflow-wrap: anywhere; }
.asset-activity-row small { display: block; margin-top: 4px; color: #7a8d91; font-size: 9px; }
.asset-activity-row time { color: #829397; font: 500 9px Consolas, monospace; }
#assetInventory { padding: 20px; }
.asset-table-wrap { border-color: #dce5e6; }
.asset-table { color: #536a6f; font-size: 12px; }
.asset-table th { padding: 11px; border-color: #dde6e7; background: #f5f8f8; color: #667b7f; }
.asset-table td { padding: 13px 11px; border-color: #e5ecec; }
.asset-table tbody tr:hover { background: #f5fafa; }
.asset-table td > strong { color: #29444a; font-size: 12px; }
.asset-table td > small { color: #819195; font-size: 10px; }
.inventory-type { min-width: 46px; border-color: #9bcfcb; color: #0d8982; }
.inventory-type.domain { border-color: #b8d7aa; color: #518c38; }
.asset-dialog { background: #fff; color: #253f45; border-color: #d4dfe0; border-radius: 6px; }
.asset-dialog::backdrop { background: rgba(22, 42, 47, .42); }
.asset-dialog-head { border-color: #dce5e6; }
.asset-dialog-head > div > span { color: #14877f; font-size: 9px; }
.asset-dialog-head h2 { color: #203940; }
.asset-fact-grid { border-color: #dfe7e8; }
.asset-fact-grid dl { padding: 13px; border-color: #dfe7e8; }
.asset-fact-grid dt { color: #76898d; font-size: 10px; }
.asset-fact-grid dd { color: #314c52; font-size: 12px; }
.detail-service-section h3 { font-size: 14px; }
.detail-service-section > div { min-height: 48px; border-color: #dfe7e8; }
.detail-service-section strong { color: #314b51; font-size: 12px; }
.detail-service-section small { color: #778b8e; font-size: 10px; }
.detail-service-section b { color: #0e8982; font-size: 11px; }
@keyframes asset-orbit { to { transform: rotate(360deg); } }
@keyframes asset-ping { 0% { opacity: .8; transform: scale(.78); } 70%, 100% { opacity: 0; transform: scale(1.25); } }
@keyframes status-pulse { 0%, 100% { opacity: 1; } 50% { opacity: .45; } }
@keyframes map-sweep { from { left: -20%; } to { left: 105%; } }
@keyframes meter-enter { from { transform: scaleX(0); } }
@keyframes meter-glint { from { left: -25px; } to { left: 105%; } }
@media (max-width: 1180px) {
  .asset-detail-layout { grid-template-columns: 1fr; }
  .asset-events { display: block; }
  .asset-summary { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 820px) {
  .asset-view { min-height: calc(100vh - 128px); }
  .asset-commandbar { padding: 13px 16px; align-items: flex-start; }
  .asset-command-title h2 { font-size: 18px; }
  .asset-clock { display: none; }
  .asset-controls { flex-wrap: wrap; justify-content: flex-end; }
  .asset-console { padding: 16px; }
  .asset-stat:nth-child(2) { border-right: 1px solid #dae4e5; }
  .asset-stat:nth-child(-n+2) { border-bottom: 1px solid #dae4e5; }
  .asset-network-map { height: 590px; }
  .map-core { --y: 10%; }
  .map-server-0 { --x: 28% !important; --y: 31% !important; }
  .map-server-1 { --x: 72% !important; --y: 31% !important; }
  .map-domain-0 { --x: 20% !important; --y: 66% !important; }
  .map-domain-1 { --x: 50% !important; --y: 80% !important; }
  .map-domain-2 { --x: 80% !important; --y: 66% !important; }
  .map-server-node { width: min(210px, 42vw); padding-left: 44px; }
  .map-domain-node { min-width: min(156px, 30vw); }
  .server-metric-layout { grid-template-columns: 1fr; }
  .live-trace { padding: 14px 0 0; border-left: 0; border-top: 1px solid #e1e8e9; }
}
@media (max-width: 520px) {
  .asset-commandbar { flex-direction: column; }
  .asset-controls { width: 100%; justify-content: stretch; }
  .scan-countdown { width: 52px; flex: 0 0 52px; }
  .segmented-control { flex: 1; }
  .segmented-control button { min-width: 50px; flex: 1; }
  .auto-refresh-control { display: none; }
  .asset-summary { grid-template-columns: 1fr 1fr; gap: 8px; }
  .asset-stat { min-height: 92px; padding: 13px; grid-template-columns: 34px minmax(0, 1fr); gap: 9px; }
  .asset-stat-icon { width: 34px; height: 34px; }
  .asset-stat strong { font-size: 25px; }
  .asset-stat small { font-size: 10px; }
  .network-map-section, .server-section, .asset-events { padding: 13px; }
  .asset-section-heading h2 { font-size: 15px; }
  .asset-network-map { height: 690px; }
  .map-core { --y: 9%; }
  .map-server-0 { --x: 50% !important; --y: 26% !important; }
  .map-server-1 { --x: 50% !important; --y: 45% !important; }
  .map-domain-0 { --x: 50% !important; --y: 64% !important; }
  .map-domain-1 { --x: 29% !important; --y: 84% !important; }
  .map-domain-2 { --x: 71% !important; --y: 84% !important; }
  .map-server-node { width: 230px; max-width: calc(100% - 26px); }
  .map-domain-node { min-width: 134px; max-width: 45%; }
  .map-domain-node strong { font-size: 10px; }
  .server-node { padding: 15px; }
  .node-status-group { flex-direction: column; }
  .server-address { grid-template-columns: 1fr; }
  .server-address > div { border-right: 0; border-bottom: 1px solid #e1e8e9; }
  .server-address > div:last-child { border-bottom: 0; }
  .resource-grid { grid-template-columns: 1fr; }
  .domain-link-row { flex-direction: column; align-items: flex-start; }
  .domain-metrics { width: 100%; justify-content: flex-end; }
  .asset-activity-row { grid-template-columns: 17px minmax(0, 1fr); }
  .asset-activity-row time { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .live-beacon::before, .live-beacon i, .asset-stat-icon i, .map-core > span i, .map-core > span b, .map-node-orbit i, .map-domain-light, .map-status.online i, .resource-meter-track b, .scan-active .map-scan-sweep { animation: none; }
}
