Files
NODEDC_MISSION_CORE/apps/control-station/src/styles/system-telemetry.css
T

691 lines
13 KiB
CSS

.system-workspace {
display: grid;
min-width: 0;
gap: 1rem;
padding-bottom: 1rem;
}
.compute-contour-settings {
display: grid;
gap: 0.9rem;
}
.compute-contour-settings__form {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 0.75rem;
}
.compute-contour-settings__install,
.compute-contour-settings__network {
display: grid;
gap: 0.75rem;
}
.compute-contour-settings__install dl,
.compute-contour-settings__network dl {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 0.65rem;
margin: 0;
}
.compute-contour-settings__install dl > div,
.compute-contour-settings__network dl > div {
display: grid;
gap: 0.22rem;
min-width: 0;
padding: 0.75rem;
border-radius: var(--nodedc-radius-control);
background: var(--station-panel-soft);
}
.compute-contour-settings__install dt,
.compute-contour-settings__network dt {
color: var(--nodedc-text-muted);
font-size: 0.58rem;
}
.compute-contour-settings__install dd,
.compute-contour-settings__network dd {
overflow: hidden;
margin: 0;
color: var(--nodedc-text-primary);
font-size: 0.68rem;
font-weight: 680;
text-overflow: ellipsis;
white-space: nowrap;
}
.compute-contour-settings__install code {
overflow: auto;
padding: 0.8rem;
border-radius: var(--nodedc-radius-control);
background: var(--station-panel-deep);
color: var(--nodedc-text-secondary);
font-size: 0.62rem;
line-height: 1.5;
white-space: pre-wrap;
}
.compute-contour-settings__install p,
.compute-contour-settings__network p,
.compute-contour-settings__empty {
margin: 0;
color: var(--nodedc-text-muted);
font-size: 0.65rem;
line-height: 1.5;
}
.compute-contour-settings__network-statuses,
.compute-contour-settings__network-actions {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 0.55rem;
}
.system-workspace__lead,
.system-section-heading {
display: flex;
min-width: 0;
align-items: flex-start;
justify-content: space-between;
gap: 1.2rem;
}
.system-workspace__lead {
padding: 0.25rem 0 0.35rem;
}
.system-workspace__lead h2,
.system-section-heading h3 {
margin: 0.4rem 0 0;
color: var(--nodedc-text-primary);
letter-spacing: -0.035em;
}
.system-workspace__lead h2 {
font-size: 1.42rem;
}
.system-section-heading h3 {
font-size: 1.02rem;
}
.system-workspace__lead p,
.system-section-heading p {
max-width: 48rem;
margin: 0.42rem 0 0;
color: var(--nodedc-text-muted);
font-size: 0.68rem;
line-height: 1.48;
}
.system-workspace__actions {
display: flex;
flex: 0 0 auto;
align-items: center;
gap: 0.8rem;
}
.system-workspace__notice {
display: flex;
align-items: center;
}
.system-telemetry-grid,
.network-overview-grid {
display: grid;
min-width: 0;
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 0.65rem;
}
.system-telemetry-series,
.network-stat-card {
min-width: 0;
border-radius: var(--nodedc-radius-card);
background: var(--station-panel-soft);
}
.system-telemetry-series {
overflow: hidden;
padding: 0.82rem 0.82rem 0.32rem;
}
.system-telemetry-series > div {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 0.75rem;
}
.system-telemetry-series span,
.network-stat-card span {
color: var(--nodedc-text-muted);
font-size: 0.62rem;
}
.system-telemetry-series__label {
display: grid;
min-width: 0;
gap: 0.16rem;
}
.system-telemetry-series__label small {
overflow: hidden;
max-width: 11rem;
color: var(--nodedc-text-secondary);
font-size: 0.54rem;
line-height: 1.15;
text-overflow: ellipsis;
white-space: nowrap;
}
.system-telemetry-series strong,
.network-stat-card strong {
color: var(--nodedc-text-primary);
font-size: 1.14rem;
font-weight: 720;
letter-spacing: -0.035em;
}
.system-telemetry-series svg {
display: block;
width: 100%;
height: 2.45rem;
margin-top: 0.45rem;
}
.system-telemetry-series path {
fill: none;
stroke: var(--station-hairline);
stroke-width: 0.8;
vector-effect: non-scaling-stroke;
}
.system-telemetry-series polyline {
fill: none;
stroke: var(--nodedc-text-primary);
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 1.15;
vector-effect: non-scaling-stroke;
}
.worker-hardware,
.worker-pipeline,
.network-profile,
.network-topology {
display: grid;
min-width: 0;
gap: 1rem;
}
.worker-hardware__facts {
display: grid;
min-width: 0;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 0.7rem;
}
.worker-hardware__facts dl,
.worker-runtime-card dl,
.network-interface-card dl {
display: grid;
min-width: 0;
margin: 0;
gap: 0;
}
.worker-hardware__facts dl {
grid-template-columns: repeat(2, minmax(0, 1fr));
border-radius: var(--nodedc-radius-control);
background: var(--station-panel-soft);
}
.worker-hardware__facts dl > div,
.worker-runtime-card dl > div,
.network-interface-card dl > div {
display: grid;
min-width: 0;
gap: 0.22rem;
}
.worker-hardware__facts dl > div {
padding: 0.75rem;
}
.worker-hardware__facts dt,
.worker-runtime-card dt,
.network-interface-card dt,
.network-profile__security dt {
color: var(--nodedc-text-muted);
font-size: 0.58rem;
}
.worker-hardware__facts dd,
.worker-runtime-card dd,
.network-interface-card dd,
.network-profile__security dd {
min-width: 0;
margin: 0;
overflow: hidden;
color: var(--nodedc-text-primary);
font-size: 0.67rem;
font-weight: 650;
text-overflow: ellipsis;
white-space: nowrap;
}
.worker-disk-list {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
gap: 0.55rem;
}
.worker-disk-list > div {
display: flex;
align-items: center;
justify-content: space-between;
gap: 0.8rem;
padding: 0.62rem 0.72rem;
border-radius: var(--nodedc-radius-control);
background: var(--station-accent-soft);
}
.worker-disk-list span {
color: var(--nodedc-text-muted);
font-size: 0.61rem;
}
.worker-disk-list strong {
color: var(--nodedc-text-primary);
font-size: 0.64rem;
}
.system-runtime-section {
display: grid;
min-width: 0;
gap: 0.75rem;
}
.system-runtime-section--external {
padding-top: 0.25rem;
border-top: 1px solid var(--station-hairline);
}
.worker-runtime-grid {
display: grid;
min-width: 0;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 0.7rem;
}
.worker-runtime-card {
display: grid;
min-width: 0;
gap: 0.9rem;
}
.worker-runtime-card[data-external="true"] {
opacity: 0.78;
}
.worker-runtime-card > header,
.network-interface-card > header {
display: flex;
min-width: 0;
align-items: flex-start;
justify-content: space-between;
gap: 0.8rem;
}
.worker-runtime-card h3 {
margin: 0.38rem 0 0.18rem;
color: var(--nodedc-text-primary);
font-size: 0.9rem;
letter-spacing: -0.025em;
}
.worker-runtime-card code {
display: block;
max-width: 23rem;
overflow: hidden;
color: var(--nodedc-text-muted);
font-size: 0.56rem;
text-overflow: ellipsis;
white-space: nowrap;
}
.worker-runtime-card dl {
grid-template-columns: repeat(4, minmax(0, 1fr));
}
.worker-runtime-card dl > div {
padding-right: 0.65rem;
}
.worker-pipeline__summary {
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 0.55rem;
}
.worker-pipeline__summary > div {
display: grid;
gap: 0.32rem;
padding: 0.7rem;
border-radius: var(--nodedc-radius-control);
background: var(--station-panel-soft);
}
.worker-pipeline__summary span {
color: var(--nodedc-text-muted);
font-size: 0.57rem;
}
.worker-pipeline__summary strong {
color: var(--nodedc-text-primary);
font-size: 0.78rem;
}
.worker-stage-list {
display: grid;
min-width: 0;
grid-template-columns: repeat(
auto-fit,
minmax(min(100%, 24rem), 1fr)
);
margin: 0;
padding: 0;
gap: 0.48rem;
list-style: none;
}
.worker-stage-list li {
position: relative;
display: grid;
overflow: hidden;
min-width: 0;
grid-template-columns: 2rem minmax(0, 1fr) minmax(7.5rem, auto);
align-items: center;
gap: 0.75rem;
padding: 0.72rem 0.8rem;
isolation: isolate;
border-radius: var(--nodedc-radius-control);
background: var(--station-panel-soft);
}
.worker-stage-list li[data-state="active"] {
background: var(--nodedc-focus-surface);
}
.worker-stage-list__fill {
position: absolute;
z-index: -1;
inset: 0 auto 0 0;
width: var(--worker-stage-share, 0%);
background: color-mix(
in srgb,
var(--nodedc-text-primary) 9%,
transparent
);
pointer-events: none;
}
.worker-stage-list li[data-state="active"] .worker-stage-list__fill {
background: color-mix(
in srgb,
var(--nodedc-text-primary) 15%,
transparent
);
}
.worker-stage-list__index,
.worker-stage-list small {
color: var(--nodedc-text-muted);
font-size: 0.53rem;
}
.worker-stage-list li > div {
display: grid;
min-width: 0;
gap: 0.2rem;
}
.worker-stage-list li strong {
min-width: 0;
overflow: hidden;
color: var(--nodedc-text-primary);
font-size: 0.65rem;
text-overflow: ellipsis;
white-space: nowrap;
}
.worker-stage-list__value {
justify-items: end;
text-align: right;
}
.network-stat-card {
display: grid;
align-content: center;
gap: 0.3rem;
padding: 0.82rem;
}
.network-stat-card small {
overflow: hidden;
color: var(--nodedc-text-muted);
font-size: 0.55rem;
text-overflow: ellipsis;
white-space: nowrap;
}
.network-profile__form {
display: grid;
min-width: 0;
grid-template-columns: minmax(12rem, 1.5fr) minmax(8rem, 0.5fr) auto;
align-items: end;
gap: 0.7rem;
}
.network-profile__buttons {
display: flex;
align-items: center;
gap: 0.5rem;
padding-bottom: 0.02rem;
}
.network-profile__security {
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
margin: 0;
gap: 0.55rem;
}
.network-profile__security > div {
display: grid;
min-width: 0;
gap: 0.24rem;
padding: 0.64rem 0.7rem;
border-radius: var(--nodedc-radius-control);
background: var(--station-accent-soft);
}
.network-route {
display: grid;
min-width: 0;
grid-template-columns: repeat(3, minmax(8rem, 1fr) 2.2rem) minmax(8rem, 1fr);
align-items: center;
}
.network-route > div {
display: grid;
min-width: 0;
gap: 0.3rem;
padding: 0.78rem;
border-radius: var(--nodedc-radius-control);
background: var(--station-panel-soft);
}
.network-route > div[data-state="offline"] {
opacity: 0.48;
}
.network-route > div span,
.network-route > div small {
overflow: hidden;
color: var(--nodedc-text-muted);
font-size: 0.55rem;
text-overflow: ellipsis;
white-space: nowrap;
}
.network-route > div strong {
overflow: hidden;
color: var(--nodedc-text-primary);
font-size: 0.68rem;
text-overflow: ellipsis;
white-space: nowrap;
}
.network-route > i {
height: 1px;
background: var(--station-hairline-strong);
}
.network-route > i[data-state="offline"] {
background: var(--station-hairline);
opacity: 0.4;
}
.network-interface-section {
display: grid;
gap: 0.75rem;
}
.network-interface-list {
display: grid;
min-width: 0;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 0.65rem;
}
.network-interface-card {
display: grid;
min-width: 0;
gap: 0.85rem;
}
.network-interface-card header strong,
.network-interface-card header small {
display: block;
max-width: 17rem;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.network-interface-card header strong {
color: var(--nodedc-text-primary);
font-size: 0.71rem;
}
.network-interface-card header small {
margin-top: 0.25rem;
color: var(--nodedc-text-muted);
font-size: 0.55rem;
}
.network-interface-card dl {
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 0.65rem;
}
@media (max-width: 1100px) {
.system-telemetry-grid,
.network-overview-grid,
.worker-pipeline__summary,
.network-profile__security {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.worker-stage-list,
.network-interface-list {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.network-profile__form {
grid-template-columns: minmax(12rem, 1fr) 8rem;
}
.network-profile__buttons {
grid-column: 1 / -1;
}
.network-route {
grid-template-columns: 1fr;
gap: 0.4rem;
}
.network-route > i {
width: 1px;
height: 1.2rem;
margin-left: 1.1rem;
}
}
@media (max-width: 760px) {
.compute-contour-settings__form,
.compute-contour-settings__install dl,
.compute-contour-settings__network dl {
grid-template-columns: 1fr;
}
.system-workspace__lead,
.system-section-heading {
display: grid;
}
.system-workspace__actions {
justify-content: space-between;
}
.system-telemetry-grid,
.network-overview-grid,
.worker-hardware__facts,
.worker-runtime-grid,
.worker-stage-list,
.network-interface-list,
.network-profile__security {
grid-template-columns: 1fr;
}
.worker-stage-list li {
grid-template-columns: 1.5rem minmax(0, 1fr);
}
.worker-stage-list__value {
grid-column: 2;
justify-items: start;
text-align: left;
}
.worker-runtime-card dl,
.worker-pipeline__summary {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.network-profile__form {
grid-template-columns: 1fr;
}
.network-profile__buttons {
grid-column: auto;
flex-wrap: wrap;
}
}