2625 lines
46 KiB
CSS
2625 lines
46 KiB
CSS
:root {
|
|
--bg: oklch(97.2% 0.004 228);
|
|
--bg-soft: oklch(99.1% 0.004 228);
|
|
--panel: oklch(99.7% 0.002 228 / 0.97);
|
|
--panel-muted: oklch(98.1% 0.005 228 / 0.98);
|
|
--panel-strong: oklch(100% 0 0 / 0.99);
|
|
--line: oklch(87% 0.014 232 / 0.96);
|
|
--line-strong: oklch(78% 0.022 234 / 0.98);
|
|
--text: oklch(29% 0.018 234);
|
|
--muted: oklch(53% 0.016 234);
|
|
--accent: oklch(51% 0.078 244);
|
|
--accent-soft: oklch(94% 0.018 244);
|
|
--ok: oklch(55% 0.12 154);
|
|
--ok-soft: oklch(95% 0.028 154);
|
|
--warn: oklch(68% 0.14 82);
|
|
--warn-soft: oklch(96% 0.034 82);
|
|
--bad: oklch(58% 0.15 32);
|
|
--bad-soft: oklch(95% 0.034 32);
|
|
--shadow: 0 16px 32px rgba(33, 46, 76, 0.07);
|
|
}
|
|
|
|
* {
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
[v-cloak] {
|
|
display: none;
|
|
}
|
|
|
|
html,
|
|
body {
|
|
margin: 0;
|
|
min-height: 100%;
|
|
}
|
|
|
|
body {
|
|
position: relative;
|
|
color: var(--text);
|
|
font-family: "IBM Plex Sans", "PingFang SC", "Noto Sans SC", sans-serif;
|
|
background:
|
|
radial-gradient(circle at top right, color-mix(in oklab, var(--accent) 8%, transparent), transparent 30%),
|
|
linear-gradient(180deg, var(--bg-soft) 0%, var(--bg) 100%);
|
|
}
|
|
|
|
body::before {
|
|
content: "";
|
|
position: fixed;
|
|
inset: 0;
|
|
pointer-events: none;
|
|
background-image:
|
|
linear-gradient(color-mix(in oklab, var(--accent) 9%, transparent) 1px, transparent 1px),
|
|
linear-gradient(90deg, color-mix(in oklab, var(--accent) 9%, transparent) 1px, transparent 1px);
|
|
background-size: 32px 32px;
|
|
opacity: 0.16;
|
|
}
|
|
|
|
.shell {
|
|
position: relative;
|
|
z-index: 1;
|
|
max-width: 1560px;
|
|
margin: 0 auto;
|
|
padding: 14px 16px 32px;
|
|
}
|
|
|
|
.boot-indicator {
|
|
padding: 20px 24px 0;
|
|
color: var(--muted);
|
|
font-size: 14px;
|
|
}
|
|
|
|
body.auth-page {
|
|
display: block;
|
|
padding: 28px 16px;
|
|
}
|
|
|
|
.auth-shell {
|
|
position: relative;
|
|
z-index: 1;
|
|
width: min(100%, 460px);
|
|
margin: min(12vh, 120px) auto 0;
|
|
}
|
|
|
|
.auth-panel {
|
|
border: 1px solid var(--line);
|
|
border-radius: 22px;
|
|
background:
|
|
linear-gradient(180deg, color-mix(in oklab, var(--panel-strong) 92%, var(--accent-soft)) 0%, var(--panel) 100%);
|
|
box-shadow: var(--shadow);
|
|
padding: 22px;
|
|
}
|
|
|
|
.auth-panel-head {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 12px;
|
|
}
|
|
|
|
.auth-title {
|
|
margin: 0;
|
|
font-size: clamp(24px, 4vw, 30px);
|
|
font-weight: 700;
|
|
letter-spacing: 0.02em;
|
|
}
|
|
|
|
.auth-form {
|
|
display: grid;
|
|
gap: 14px;
|
|
margin-top: 18px;
|
|
}
|
|
|
|
.auth-field {
|
|
display: grid;
|
|
gap: 7px;
|
|
color: var(--muted);
|
|
font-size: 12px;
|
|
font-weight: 600;
|
|
}
|
|
|
|
.auth-input {
|
|
min-height: 42px;
|
|
padding: 0 12px;
|
|
border: 1px solid var(--line-strong);
|
|
border-radius: 14px;
|
|
background: color-mix(in oklab, var(--panel-muted) 88%, var(--bg-soft));
|
|
color: var(--text);
|
|
font: inherit;
|
|
}
|
|
|
|
.auth-input:focus-visible {
|
|
outline: 0;
|
|
border-color: color-mix(in oklab, var(--accent) 56%, var(--line-strong));
|
|
box-shadow: 0 0 0 3px color-mix(in oklab, var(--accent-soft) 84%, transparent);
|
|
}
|
|
|
|
.auth-submit {
|
|
width: 100%;
|
|
min-height: 40px;
|
|
}
|
|
|
|
.auth-error {
|
|
margin: 0;
|
|
padding: 10px 12px;
|
|
border: 1px solid color-mix(in oklab, var(--bad) 32%, var(--line));
|
|
border-radius: 14px;
|
|
background: color-mix(in oklab, var(--bad-soft) 56%, var(--panel-strong));
|
|
color: var(--bad);
|
|
font-size: 12px;
|
|
}
|
|
|
|
.entry-panel {
|
|
display: grid;
|
|
gap: 18px;
|
|
}
|
|
|
|
.entry-grid,
|
|
.entry-stack {
|
|
display: grid;
|
|
gap: 12px;
|
|
}
|
|
|
|
.entry-grid {
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
}
|
|
|
|
.entry-card {
|
|
display: grid;
|
|
gap: 8px;
|
|
min-height: 132px;
|
|
padding: 16px;
|
|
border: 1px solid var(--line-strong);
|
|
border-radius: 18px;
|
|
background: color-mix(in oklab, var(--panel-strong) 88%, var(--accent-soft));
|
|
color: inherit;
|
|
text-decoration: none;
|
|
transition: transform 180ms ease, border-color 180ms ease, background 180ms ease, box-shadow 180ms ease;
|
|
}
|
|
|
|
.entry-card:hover {
|
|
transform: translateY(-1px);
|
|
border-color: color-mix(in oklab, var(--accent) 42%, var(--line-strong));
|
|
background: color-mix(in oklab, var(--accent-soft) 74%, var(--panel-strong));
|
|
}
|
|
|
|
.entry-card strong {
|
|
font-family: "Space Grotesk", "IBM Plex Sans", sans-serif;
|
|
font-size: 1.1rem;
|
|
letter-spacing: -0.03em;
|
|
}
|
|
|
|
.entry-card span {
|
|
color: var(--muted);
|
|
font-size: 12px;
|
|
line-height: 1.5;
|
|
}
|
|
|
|
.entry-card-static {
|
|
min-height: 0;
|
|
}
|
|
|
|
.entry-actions,
|
|
.entry-meta {
|
|
display: flex;
|
|
gap: 10px;
|
|
align-items: center;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.entry-actions {
|
|
justify-content: flex-end;
|
|
}
|
|
|
|
.entry-link {
|
|
text-decoration: none;
|
|
}
|
|
|
|
.topbar,
|
|
.control-bar,
|
|
.panel {
|
|
border: 1px solid var(--line);
|
|
border-radius: 18px;
|
|
background: var(--panel);
|
|
box-shadow: var(--shadow);
|
|
}
|
|
|
|
.topbar {
|
|
position: sticky;
|
|
top: 10px;
|
|
z-index: 20;
|
|
display: grid;
|
|
grid-template-columns: minmax(200px, 260px) minmax(0, 1fr) auto;
|
|
gap: 12px;
|
|
align-items: center;
|
|
min-height: 54px;
|
|
padding: 8px 12px;
|
|
backdrop-filter: blur(10px);
|
|
}
|
|
|
|
.brand-stack {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 4px;
|
|
}
|
|
|
|
.brand-row {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 10px;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.brand-mark {
|
|
margin: 0;
|
|
color: var(--muted);
|
|
font-size: 12px;
|
|
font-weight: 700;
|
|
letter-spacing: 0.16em;
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
.env-pill {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
min-height: 24px;
|
|
padding: 0 9px;
|
|
border: 1px solid color-mix(in oklab, var(--accent) 34%, var(--line-strong));
|
|
border-radius: 999px;
|
|
background: var(--accent-soft);
|
|
color: var(--accent);
|
|
font-size: 11px;
|
|
font-weight: 700;
|
|
letter-spacing: 0.08em;
|
|
}
|
|
|
|
.sync-note {
|
|
margin: 0;
|
|
color: var(--muted);
|
|
font-size: 11px;
|
|
}
|
|
|
|
.topbar-nav {
|
|
display: flex;
|
|
gap: 10px;
|
|
align-items: center;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.nav-chip,
|
|
.filter-chip,
|
|
.refresh,
|
|
.interval-select,
|
|
.search,
|
|
.config-textarea {
|
|
border: 1px solid var(--line-strong);
|
|
color: var(--text);
|
|
font: inherit;
|
|
}
|
|
|
|
.nav-chip,
|
|
.filter-chip,
|
|
.refresh {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
min-height: 32px;
|
|
padding: 0 11px;
|
|
border-radius: 12px;
|
|
background: var(--panel-strong);
|
|
cursor: pointer;
|
|
font-size: 11px;
|
|
font-weight: 600;
|
|
transition: transform 180ms ease, border-color 180ms ease, background 180ms ease, box-shadow 180ms ease;
|
|
}
|
|
|
|
.nav-chip:hover,
|
|
.filter-chip:hover,
|
|
.refresh:hover {
|
|
transform: translateY(-1px);
|
|
}
|
|
|
|
.nav-chip.active,
|
|
.filter-chip.active {
|
|
border-color: color-mix(in oklab, var(--accent) 46%, var(--line-strong));
|
|
background: var(--accent-soft);
|
|
color: var(--accent);
|
|
}
|
|
|
|
.topbar-status,
|
|
.control-group,
|
|
.control-group-spread,
|
|
.density-switch,
|
|
.panel-meta,
|
|
.action-group,
|
|
.host-tags,
|
|
.restart-pills {
|
|
display: flex;
|
|
gap: 10px;
|
|
align-items: center;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.topbar-status {
|
|
justify-content: flex-end;
|
|
}
|
|
|
|
.control-bar {
|
|
position: sticky;
|
|
top: 72px;
|
|
z-index: 18;
|
|
display: flex;
|
|
justify-content: space-between;
|
|
gap: 10px;
|
|
margin-top: 8px;
|
|
padding: 7px 12px;
|
|
}
|
|
|
|
.task-control-bar {
|
|
gap: 12px;
|
|
align-items: center;
|
|
}
|
|
|
|
.release-section-nav {
|
|
flex: 1 1 auto;
|
|
min-width: 0;
|
|
}
|
|
|
|
.taskbar-context {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 3px;
|
|
min-width: 160px;
|
|
}
|
|
|
|
.taskbar-context strong {
|
|
font-size: 12px;
|
|
font-weight: 700;
|
|
letter-spacing: 0.02em;
|
|
}
|
|
|
|
.taskbar-context span {
|
|
color: var(--muted);
|
|
font-size: 10px;
|
|
letter-spacing: 0.06em;
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
.taskbar-inline {
|
|
display: flex;
|
|
gap: 8px;
|
|
align-items: center;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.section-link {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
min-height: 28px;
|
|
padding: 0 2px;
|
|
border: 0;
|
|
border-radius: 0;
|
|
background: transparent;
|
|
color: var(--muted);
|
|
font: inherit;
|
|
font-size: 11px;
|
|
font-weight: 700;
|
|
letter-spacing: 0.06em;
|
|
cursor: pointer;
|
|
transition: color 180ms ease, opacity 180ms ease;
|
|
}
|
|
|
|
.section-link:hover {
|
|
color: var(--text);
|
|
}
|
|
|
|
.section-link + .section-link {
|
|
margin-left: 12px;
|
|
}
|
|
|
|
.release-kind-select {
|
|
min-width: 98px;
|
|
}
|
|
|
|
.control-group-spread {
|
|
justify-content: flex-end;
|
|
flex: 1 1 auto;
|
|
}
|
|
|
|
.search {
|
|
min-width: 320px;
|
|
min-height: 34px;
|
|
padding: 0 11px;
|
|
border-radius: 12px;
|
|
background: color-mix(in oklab, var(--panel-muted) 88%, var(--bg-soft));
|
|
}
|
|
|
|
.search::placeholder {
|
|
color: var(--muted);
|
|
}
|
|
|
|
.interval-field {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
color: var(--muted);
|
|
font-size: 12px;
|
|
}
|
|
|
|
.interval-select {
|
|
min-width: 82px;
|
|
min-height: 32px;
|
|
padding: 0 11px;
|
|
border-radius: 12px;
|
|
background: var(--panel-strong);
|
|
}
|
|
|
|
.refresh {
|
|
background: color-mix(in oklab, var(--accent-soft) 38%, var(--panel-strong));
|
|
}
|
|
|
|
.refresh.ghost {
|
|
background: var(--panel-muted);
|
|
}
|
|
|
|
.refresh.danger {
|
|
color: var(--bad);
|
|
border-color: color-mix(in oklab, var(--bad) 38%, var(--line-strong));
|
|
background: color-mix(in oklab, var(--bad-soft) 48%, var(--panel-strong));
|
|
}
|
|
|
|
.refresh:disabled,
|
|
.filter-chip:disabled,
|
|
.nav-chip:disabled {
|
|
opacity: 0.56;
|
|
cursor: not-allowed;
|
|
transform: none;
|
|
}
|
|
|
|
.nav-chip:focus-visible,
|
|
.filter-chip:focus-visible,
|
|
.refresh:focus-visible,
|
|
.search:focus-visible,
|
|
.interval-select:focus-visible,
|
|
.section-link:focus-visible,
|
|
.detail-log-input:focus-visible,
|
|
.config-item:focus-visible,
|
|
.config-textarea:focus-visible {
|
|
outline: 0;
|
|
border-color: color-mix(in oklab, var(--accent) 56%, var(--line-strong));
|
|
box-shadow: 0 0 0 3px color-mix(in oklab, var(--accent-soft) 84%, transparent);
|
|
}
|
|
|
|
.toolbar-error {
|
|
margin: 12px 0 0;
|
|
color: var(--bad);
|
|
font-size: 12px;
|
|
}
|
|
|
|
.panel {
|
|
padding: 12px;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.summary-strip {
|
|
margin-top: 8px;
|
|
padding: 0 10px;
|
|
}
|
|
|
|
.summary-cards {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 0;
|
|
}
|
|
|
|
.summary-tile,
|
|
.summary-card {
|
|
min-height: 54px;
|
|
padding: 8px 10px;
|
|
border: 1px solid var(--line);
|
|
border-radius: 12px;
|
|
background: var(--panel-strong);
|
|
}
|
|
|
|
.summary-tile {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
min-height: 44px;
|
|
}
|
|
|
|
.summary-strip-label {
|
|
color: var(--muted);
|
|
font-size: 10px;
|
|
font-weight: 700;
|
|
letter-spacing: 0.08em;
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
.summary-tile strong,
|
|
.summary-card strong {
|
|
font-family: "Space Grotesk", "IBM Plex Sans", sans-serif;
|
|
font-size: clamp(0.94rem, 1.25vw, 1.12rem);
|
|
line-height: 1;
|
|
letter-spacing: -0.04em;
|
|
}
|
|
|
|
.summary-tile small {
|
|
color: var(--muted);
|
|
font-size: 10px;
|
|
}
|
|
|
|
.status-band-list {
|
|
align-items: center;
|
|
}
|
|
|
|
.status-band-item {
|
|
flex: 1 1 180px;
|
|
min-height: 44px;
|
|
padding: 0 12px;
|
|
border: 0;
|
|
border-right: 1px solid var(--line);
|
|
border-radius: 0;
|
|
background: transparent;
|
|
}
|
|
|
|
.status-band-item:last-child {
|
|
border-right: 0;
|
|
}
|
|
|
|
.status-band-item.tone-ok,
|
|
.status-band-item.tone-warn,
|
|
.status-band-item.tone-bad {
|
|
background: transparent;
|
|
}
|
|
|
|
.status-band-item.tone-ok strong {
|
|
color: var(--ok);
|
|
}
|
|
|
|
.status-band-item.tone-warn strong {
|
|
color: var(--warn);
|
|
}
|
|
|
|
.status-band-item.tone-bad strong {
|
|
color: var(--bad);
|
|
}
|
|
|
|
.status-band-suffix {
|
|
color: var(--muted);
|
|
font-size: 10px;
|
|
font-weight: 700;
|
|
letter-spacing: 0.08em;
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
.summary-card small {
|
|
display: block;
|
|
color: var(--muted);
|
|
font-size: 11px;
|
|
}
|
|
|
|
.summary-card strong {
|
|
display: block;
|
|
margin-top: 6px;
|
|
}
|
|
|
|
.summary-tile.tone-ok,
|
|
.summary-card.tone-ok,
|
|
.matrix-state.tone-ok,
|
|
.metric-chip.tone-ok,
|
|
.host-service-pill.tone-ok,
|
|
.host-detail-line.tone-ok,
|
|
.alert-item.tone-ok {
|
|
border-color: color-mix(in oklab, var(--ok) 32%, var(--line));
|
|
background: color-mix(in oklab, var(--ok-soft) 70%, var(--panel-strong));
|
|
}
|
|
|
|
.summary-tile.tone-warn,
|
|
.matrix-state.tone-warn,
|
|
.metric-chip.tone-warn,
|
|
.host-service-pill.tone-warn,
|
|
.host-detail-line.tone-warn,
|
|
.alert-item.tone-warn {
|
|
border-color: color-mix(in oklab, var(--warn) 32%, var(--line));
|
|
background: color-mix(in oklab, var(--warn-soft) 72%, var(--panel-strong));
|
|
}
|
|
|
|
.summary-tile.tone-bad,
|
|
.summary-card.tone-bad,
|
|
.matrix-state.tone-bad,
|
|
.metric-chip.tone-bad,
|
|
.host-service-pill.tone-bad,
|
|
.host-detail-line.tone-bad,
|
|
.alert-item.tone-bad {
|
|
border-color: color-mix(in oklab, var(--bad) 32%, var(--line));
|
|
background: color-mix(in oklab, var(--bad-soft) 72%, var(--panel-strong));
|
|
}
|
|
|
|
.matrix-state.tone-ok,
|
|
.matrix-state.tone-warn,
|
|
.matrix-state.tone-bad {
|
|
background: transparent;
|
|
}
|
|
|
|
.alert-item {
|
|
width: 100%;
|
|
padding: 9px 10px;
|
|
border: 1px solid var(--line);
|
|
border-radius: 12px;
|
|
background: var(--panel-strong);
|
|
color: var(--text);
|
|
text-align: left;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.alert-item.compact {
|
|
padding: 7px 9px;
|
|
}
|
|
|
|
.alert-item strong,
|
|
.alert-item span {
|
|
display: block;
|
|
}
|
|
|
|
.alert-item strong {
|
|
font-size: 12px;
|
|
line-height: 1.35;
|
|
}
|
|
|
|
.alert-item span {
|
|
margin-top: 4px;
|
|
color: var(--muted);
|
|
font-size: 11px;
|
|
line-height: 1.4;
|
|
}
|
|
|
|
.content-grid {
|
|
display: grid;
|
|
gap: 12px;
|
|
margin-top: 8px;
|
|
}
|
|
|
|
.service-layout-open {
|
|
grid-template-columns: minmax(0, 1fr) 288px;
|
|
}
|
|
|
|
.service-layout-solo {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.panel-header {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: flex-start;
|
|
gap: 12px;
|
|
margin-bottom: 8px;
|
|
}
|
|
|
|
.panel-title h2 {
|
|
margin: 0;
|
|
font-size: 0.98rem;
|
|
font-weight: 700;
|
|
letter-spacing: -0.02em;
|
|
}
|
|
|
|
.panel-title p {
|
|
margin: 4px 0 0;
|
|
color: var(--muted);
|
|
font-size: 11px;
|
|
line-height: 1.45;
|
|
}
|
|
|
|
.matrix-scroll,
|
|
.table-wrap {
|
|
overflow: auto;
|
|
border: 1px solid var(--line);
|
|
border-radius: 14px;
|
|
background: var(--panel-muted);
|
|
scrollbar-gutter: stable;
|
|
}
|
|
|
|
.matrix-stacks {
|
|
display: grid;
|
|
gap: 10px;
|
|
}
|
|
|
|
.matrix-stack {
|
|
display: grid;
|
|
gap: 6px;
|
|
}
|
|
|
|
.matrix-stack-head {
|
|
display: flex;
|
|
gap: 8px;
|
|
align-items: center;
|
|
color: var(--muted);
|
|
font-size: 10px;
|
|
font-weight: 700;
|
|
letter-spacing: 0.08em;
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
.matrix-stack-head strong {
|
|
color: var(--text);
|
|
font-size: 11px;
|
|
letter-spacing: 0.02em;
|
|
}
|
|
|
|
.matrix-table,
|
|
.table {
|
|
width: 100%;
|
|
border-collapse: collapse;
|
|
}
|
|
|
|
.matrix-table {
|
|
min-width: 520px;
|
|
}
|
|
|
|
.matrix-table th,
|
|
.matrix-table td,
|
|
.table th,
|
|
.table td {
|
|
padding: 5px 8px;
|
|
border-bottom: 1px solid var(--line);
|
|
text-align: left;
|
|
vertical-align: middle;
|
|
font-size: 11px;
|
|
}
|
|
|
|
.matrix-table th,
|
|
.table th {
|
|
background: color-mix(in oklab, var(--accent-soft) 28%, var(--panel-muted));
|
|
color: var(--muted);
|
|
font-weight: 700;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.matrix-scroll {
|
|
max-height: 520px;
|
|
}
|
|
|
|
.matrix-row {
|
|
cursor: pointer;
|
|
}
|
|
|
|
.matrix-row:hover {
|
|
background: color-mix(in oklab, var(--accent-soft) 18%, var(--panel-strong));
|
|
}
|
|
|
|
.matrix-row.selected {
|
|
background: color-mix(in oklab, var(--accent-soft) 34%, var(--panel-strong));
|
|
}
|
|
|
|
.matrix-row.focused {
|
|
background: color-mix(in oklab, var(--warn-soft) 28%, var(--panel-strong));
|
|
}
|
|
|
|
.matrix-service strong {
|
|
font-size: 12px;
|
|
line-height: 1.3;
|
|
}
|
|
|
|
.matrix-kind {
|
|
color: var(--muted);
|
|
font-size: 11px;
|
|
}
|
|
|
|
.matrix-state {
|
|
min-width: 34px;
|
|
height: 24px;
|
|
padding: 0 4px;
|
|
border-left: 1px solid var(--line);
|
|
text-align: center;
|
|
vertical-align: middle;
|
|
}
|
|
|
|
.matrix-state-marker {
|
|
display: block;
|
|
width: 8px;
|
|
height: 8px;
|
|
margin: 0 auto;
|
|
border-radius: 999px;
|
|
background: currentColor;
|
|
box-shadow: 0 0 0 2px color-mix(in oklab, currentColor 14%, transparent);
|
|
}
|
|
|
|
.matrix-state-code {
|
|
display: none;
|
|
margin-top: 2px;
|
|
font-size: 9px;
|
|
font-weight: 700;
|
|
line-height: 1;
|
|
}
|
|
|
|
.matrix-state-latency {
|
|
display: none;
|
|
margin-top: 2px;
|
|
color: var(--muted);
|
|
font-size: 9px;
|
|
line-height: 1;
|
|
}
|
|
|
|
.matrix-table.is-detail .matrix-state {
|
|
height: 40px;
|
|
padding: 4px 5px;
|
|
}
|
|
|
|
.matrix-table.is-detail .matrix-state-code,
|
|
.matrix-table.is-detail .matrix-state-latency {
|
|
display: block;
|
|
}
|
|
|
|
.matrix-state-empty {
|
|
background:
|
|
linear-gradient(180deg, color-mix(in oklab, var(--panel-muted) 92%, var(--bg-soft)) 0%, color-mix(in oklab, var(--panel-muted) 82%, var(--bg-soft)) 100%),
|
|
repeating-linear-gradient(135deg, transparent 0 6px, color-mix(in oklab, var(--line) 30%, transparent) 6px 7px);
|
|
color: color-mix(in oklab, var(--muted) 58%, transparent);
|
|
}
|
|
|
|
.matrix-state-empty-mark {
|
|
display: block;
|
|
font-size: 9px;
|
|
line-height: 1;
|
|
opacity: 0.32;
|
|
}
|
|
|
|
.matrix-table thead th {
|
|
position: sticky;
|
|
top: 0;
|
|
z-index: 4;
|
|
}
|
|
|
|
.matrix-sticky-col {
|
|
position: sticky;
|
|
left: 0;
|
|
z-index: 3;
|
|
background: color-mix(in oklab, var(--panel-strong) 94%, var(--panel-muted));
|
|
box-shadow: 1px 0 0 var(--line);
|
|
min-width: 118px;
|
|
}
|
|
|
|
.matrix-table thead .matrix-sticky-col {
|
|
z-index: 5;
|
|
background: color-mix(in oklab, var(--accent-soft) 28%, var(--panel-muted));
|
|
}
|
|
|
|
.detail-panel {
|
|
display: flex;
|
|
flex-direction: column;
|
|
position: sticky;
|
|
top: 118px;
|
|
max-height: calc(100vh - 132px);
|
|
}
|
|
|
|
.service-meta-grid,
|
|
.summary-grid,
|
|
.metric-grid,
|
|
.infra-mini-metrics,
|
|
.config-meta-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
gap: 10px;
|
|
}
|
|
|
|
.service-meta-grid {
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
margin-bottom: 10px;
|
|
}
|
|
|
|
.detail-instance-list {
|
|
display: grid;
|
|
gap: 8px;
|
|
max-height: 480px;
|
|
overflow: auto;
|
|
padding-right: 4px;
|
|
}
|
|
|
|
.detail-instance {
|
|
padding: 9px;
|
|
border: 1px solid var(--line);
|
|
border-radius: 12px;
|
|
background: var(--panel-muted);
|
|
}
|
|
|
|
.detail-instance-top {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
gap: 10px;
|
|
align-items: flex-start;
|
|
}
|
|
|
|
.detail-instance-actions {
|
|
display: flex;
|
|
gap: 8px;
|
|
align-items: center;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.detail-instance-top strong {
|
|
display: block;
|
|
font-size: 13px;
|
|
}
|
|
|
|
.detail-instance-top p {
|
|
margin: 4px 0 0;
|
|
color: var(--muted);
|
|
font-size: 12px;
|
|
}
|
|
|
|
.detail-inline {
|
|
display: flex;
|
|
gap: 8px;
|
|
flex-wrap: wrap;
|
|
margin-top: 6px;
|
|
color: var(--muted);
|
|
font-size: 11px;
|
|
}
|
|
|
|
.detail-secondary {
|
|
margin-top: 8px;
|
|
color: var(--muted);
|
|
font-size: 10px;
|
|
word-break: break-all;
|
|
}
|
|
|
|
.detail-note {
|
|
margin-top: 6px;
|
|
color: var(--text);
|
|
font-size: 11px;
|
|
line-height: 1.45;
|
|
word-break: break-word;
|
|
}
|
|
|
|
.detail-log-trigger {
|
|
min-height: 26px;
|
|
padding: 0 9px;
|
|
}
|
|
|
|
.detail-log-panel {
|
|
margin-top: 10px;
|
|
padding: 10px;
|
|
border: 1px solid var(--line);
|
|
border-radius: 12px;
|
|
background: var(--panel-muted);
|
|
}
|
|
|
|
.detail-log-toolbar {
|
|
display: flex;
|
|
gap: 8px;
|
|
align-items: center;
|
|
flex-wrap: wrap;
|
|
margin-bottom: 8px;
|
|
}
|
|
|
|
.detail-log-field {
|
|
gap: 6px;
|
|
}
|
|
|
|
.detail-log-input {
|
|
width: 96px;
|
|
min-height: 30px;
|
|
padding: 0 9px;
|
|
border: 1px solid var(--line-strong);
|
|
border-radius: 10px;
|
|
background: var(--panel-strong);
|
|
color: var(--text);
|
|
font: inherit;
|
|
}
|
|
|
|
.detail-log-output {
|
|
margin: 0;
|
|
min-height: 144px;
|
|
max-height: 320px;
|
|
overflow: auto;
|
|
padding: 12px;
|
|
border: 1px solid color-mix(in oklab, var(--line-strong) 74%, transparent);
|
|
border-radius: 12px;
|
|
background: oklch(22% 0.01 240 / 0.98);
|
|
color: oklch(91% 0.01 230);
|
|
font-size: 11px;
|
|
line-height: 1.55;
|
|
white-space: pre-wrap;
|
|
word-break: break-word;
|
|
}
|
|
|
|
.detail-alert-panel {
|
|
margin-bottom: 8px;
|
|
padding: 8px;
|
|
border: 1px solid var(--line);
|
|
border-radius: 12px;
|
|
background: var(--panel-muted);
|
|
}
|
|
|
|
.detail-alert-feed {
|
|
display: grid;
|
|
gap: 6px;
|
|
max-height: 112px;
|
|
overflow: auto;
|
|
padding-right: 2px;
|
|
}
|
|
|
|
.detail-subhead {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
gap: 8px;
|
|
align-items: center;
|
|
margin-bottom: 6px;
|
|
color: var(--muted);
|
|
font-size: 10px;
|
|
font-weight: 700;
|
|
letter-spacing: 0.08em;
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
.host-sections {
|
|
display: grid;
|
|
gap: 10px;
|
|
}
|
|
|
|
.host-section {
|
|
display: grid;
|
|
gap: 8px;
|
|
}
|
|
|
|
.section-caption-row {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
gap: 12px;
|
|
align-items: center;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.section-caption {
|
|
color: var(--muted);
|
|
font-size: 10px;
|
|
font-weight: 700;
|
|
letter-spacing: 0.14em;
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
.section-caption-meta {
|
|
display: inline-flex;
|
|
gap: 10px;
|
|
align-items: center;
|
|
flex-wrap: wrap;
|
|
color: var(--muted);
|
|
font-size: 10px;
|
|
font-weight: 600;
|
|
}
|
|
|
|
.host-row-list {
|
|
display: grid;
|
|
gap: 6px;
|
|
}
|
|
|
|
.host-strip {
|
|
position: relative;
|
|
border: 1px solid color-mix(in oklab, var(--line) 92%, var(--panel-strong));
|
|
border-radius: 14px;
|
|
background: var(--panel-strong);
|
|
overflow: hidden;
|
|
}
|
|
|
|
.host-strip-alert {
|
|
border-color: color-mix(in oklab, var(--bad) 28%, var(--line));
|
|
}
|
|
|
|
.host-strip-focused {
|
|
border-color: color-mix(in oklab, var(--accent) 42%, var(--line));
|
|
box-shadow: inset 0 0 0 1px color-mix(in oklab, var(--accent-soft) 72%, transparent);
|
|
}
|
|
|
|
.host-strip::before {
|
|
content: "";
|
|
position: absolute;
|
|
left: 0;
|
|
top: 0;
|
|
bottom: 0;
|
|
width: 3px;
|
|
background: linear-gradient(180deg, var(--accent) 0%, color-mix(in oklab, var(--ok) 42%, var(--accent)) 100%);
|
|
}
|
|
|
|
.host-strip-alert::before {
|
|
background: linear-gradient(180deg, color-mix(in oklab, var(--warn) 72%, var(--accent)) 0%, var(--bad) 100%);
|
|
}
|
|
|
|
.host-strip-main {
|
|
display: grid;
|
|
grid-template-columns: minmax(180px, 220px) minmax(320px, 1fr) minmax(180px, 0.9fr) auto;
|
|
gap: 10px;
|
|
align-items: center;
|
|
min-height: 56px;
|
|
padding: 8px 11px 8px 16px;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.host-strip-id strong,
|
|
.host-strip-id span {
|
|
display: block;
|
|
}
|
|
|
|
.host-strip-id strong {
|
|
font-size: 13px;
|
|
line-height: 1.3;
|
|
}
|
|
|
|
.host-strip-id span {
|
|
margin-top: 4px;
|
|
color: var(--muted);
|
|
font-size: 11px;
|
|
}
|
|
|
|
.host-inline-metrics,
|
|
.host-inline-state {
|
|
display: flex;
|
|
gap: 8px;
|
|
align-items: center;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.compact-metrics {
|
|
gap: 8px;
|
|
color: var(--muted);
|
|
font-size: 10px;
|
|
font-weight: 600;
|
|
}
|
|
|
|
.metric-ring-chip,
|
|
.metric-stat-chip {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
min-height: 36px;
|
|
padding: 0 9px 0 7px;
|
|
border: 1px solid var(--line);
|
|
border-radius: 999px;
|
|
background: color-mix(in oklab, var(--panel-muted) 94%, var(--panel-strong));
|
|
}
|
|
|
|
.metric-ring-chip.tone-ok,
|
|
.metric-stat-chip.tone-ok {
|
|
border-color: color-mix(in oklab, var(--ok) 28%, var(--line));
|
|
}
|
|
|
|
.metric-ring-chip.tone-warn,
|
|
.metric-stat-chip.tone-warn {
|
|
border-color: color-mix(in oklab, var(--warn) 28%, var(--line));
|
|
}
|
|
|
|
.metric-ring-chip.tone-bad,
|
|
.metric-stat-chip.tone-bad {
|
|
border-color: color-mix(in oklab, var(--bad) 28%, var(--line));
|
|
}
|
|
|
|
.metric-ring {
|
|
--metric-color: var(--line-strong);
|
|
--metric-value: 0%;
|
|
position: relative;
|
|
width: 24px;
|
|
height: 24px;
|
|
border-radius: 999px;
|
|
background:
|
|
conic-gradient(var(--metric-color) 0 var(--metric-value), color-mix(in oklab, var(--line) 88%, transparent) var(--metric-value) 100%);
|
|
}
|
|
|
|
.metric-ring-hole {
|
|
position: absolute;
|
|
inset: 4px;
|
|
border-radius: 999px;
|
|
background: var(--panel-strong);
|
|
}
|
|
|
|
.metric-ring-copy,
|
|
.metric-stat-chip {
|
|
min-width: 0;
|
|
}
|
|
|
|
.metric-ring-copy small,
|
|
.metric-ring-copy strong,
|
|
.metric-stat-chip small,
|
|
.metric-stat-chip strong {
|
|
display: block;
|
|
}
|
|
|
|
.metric-ring-copy small,
|
|
.metric-stat-chip small {
|
|
color: var(--muted);
|
|
font-size: 9px;
|
|
line-height: 1;
|
|
letter-spacing: 0.06em;
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
.metric-ring-copy strong,
|
|
.metric-stat-chip strong {
|
|
margin-top: 3px;
|
|
font-size: 11px;
|
|
line-height: 1.1;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.host-alert-summary {
|
|
display: grid;
|
|
gap: 4px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.host-alert-summary small {
|
|
color: var(--muted);
|
|
font-size: 9px;
|
|
font-weight: 700;
|
|
letter-spacing: 0.08em;
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
.host-alert-path {
|
|
display: block;
|
|
width: 100%;
|
|
overflow: hidden;
|
|
color: var(--text);
|
|
font-size: 11px;
|
|
font-weight: 600;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.host-alert-summary.tone-bad .host-alert-path {
|
|
color: color-mix(in oklab, var(--bad) 82%, var(--text));
|
|
}
|
|
|
|
.host-alert-summary.tone-warn .host-alert-path {
|
|
color: color-mix(in oklab, var(--warn) 72%, var(--text));
|
|
}
|
|
|
|
.host-alert-summary.tone-neutral .host-alert-path {
|
|
color: color-mix(in oklab, var(--muted) 76%, var(--text));
|
|
}
|
|
|
|
.metric-chip,
|
|
.host-service-pill {
|
|
border: 1px solid var(--line);
|
|
border-radius: 999px;
|
|
background: var(--panel-muted);
|
|
color: var(--text);
|
|
}
|
|
|
|
.metric-chip {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
min-height: 30px;
|
|
padding: 0 10px;
|
|
font-size: 11px;
|
|
font-weight: 700;
|
|
}
|
|
|
|
.host-strip-detail {
|
|
display: flex;
|
|
gap: 6px;
|
|
flex-wrap: wrap;
|
|
padding: 0 11px 10px 16px;
|
|
}
|
|
|
|
.host-strip-detail-wide {
|
|
padding-top: 2px;
|
|
}
|
|
|
|
.host-strip-detail-list {
|
|
display: grid;
|
|
gap: 6px;
|
|
}
|
|
|
|
.host-detail-line {
|
|
display: grid;
|
|
grid-template-columns: minmax(92px, 110px) minmax(0, 1fr);
|
|
gap: 12px;
|
|
align-items: center;
|
|
width: 100%;
|
|
padding: 7px 10px;
|
|
border: 1px solid var(--line);
|
|
border-radius: 10px;
|
|
background: var(--panel-muted);
|
|
color: var(--text);
|
|
font: inherit;
|
|
text-align: left;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.host-detail-line strong,
|
|
.host-detail-line span,
|
|
.host-detail-line small {
|
|
display: block;
|
|
}
|
|
|
|
.host-detail-line strong {
|
|
font-size: 11px;
|
|
}
|
|
|
|
.host-detail-line span,
|
|
.host-detail-line small {
|
|
color: var(--muted);
|
|
font-size: 10px;
|
|
line-height: 1.35;
|
|
}
|
|
|
|
.host-detail-line-warn {
|
|
cursor: default;
|
|
border-color: color-mix(in oklab, var(--warn) 36%, var(--line));
|
|
background: color-mix(in oklab, var(--warn-soft) 50%, var(--panel-muted));
|
|
}
|
|
|
|
.host-service-pill {
|
|
min-width: 138px;
|
|
padding: 7px 9px;
|
|
text-align: left;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.host-service-pill strong,
|
|
.host-service-pill span,
|
|
.host-service-pill small {
|
|
display: block;
|
|
}
|
|
|
|
.host-service-pill strong {
|
|
font-size: 11px;
|
|
}
|
|
|
|
.host-service-pill span,
|
|
.host-service-pill small {
|
|
margin-top: 4px;
|
|
color: var(--muted);
|
|
font-size: 10px;
|
|
line-height: 1.35;
|
|
}
|
|
|
|
.overview-infra-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
gap: 12px;
|
|
margin-top: 12px;
|
|
}
|
|
|
|
.task-page-head {
|
|
margin-top: 8px;
|
|
}
|
|
|
|
.metadata-strip {
|
|
display: flex;
|
|
gap: 10px;
|
|
flex-wrap: wrap;
|
|
align-items: center;
|
|
margin-bottom: 10px;
|
|
padding: 8px 10px;
|
|
border: 1px solid var(--line);
|
|
border-radius: 12px;
|
|
background: var(--panel-muted);
|
|
color: var(--muted);
|
|
font-size: 11px;
|
|
}
|
|
|
|
.metadata-strip span {
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.infra-overview-panel {
|
|
margin-top: 12px;
|
|
}
|
|
|
|
.infra-overview-grid,
|
|
.mongo-group-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
gap: 12px;
|
|
}
|
|
|
|
.infra-focus-card,
|
|
.mongo-stat-group {
|
|
display: grid;
|
|
gap: 10px;
|
|
padding: 12px;
|
|
border: 1px solid var(--line);
|
|
border-radius: 14px;
|
|
background: var(--panel-muted);
|
|
}
|
|
|
|
.infra-focus-head {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
gap: 8px;
|
|
align-items: center;
|
|
}
|
|
|
|
.infra-focus-head strong {
|
|
font-size: 13px;
|
|
}
|
|
|
|
.infra-focus-metrics {
|
|
display: flex;
|
|
gap: 8px;
|
|
flex-wrap: wrap;
|
|
color: var(--muted);
|
|
font-size: 11px;
|
|
}
|
|
|
|
.infra-inline-list {
|
|
display: flex;
|
|
gap: 8px;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.infra-inline-link {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
min-height: 28px;
|
|
padding: 0 10px;
|
|
border: 1px solid color-mix(in oklab, var(--bad) 24%, var(--line));
|
|
border-radius: 999px;
|
|
background: color-mix(in oklab, var(--bad-soft) 38%, var(--panel-strong));
|
|
color: var(--bad);
|
|
font: inherit;
|
|
font-size: 11px;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.nacos-summary-row.is-alert {
|
|
background: color-mix(in oklab, var(--bad-soft) 24%, var(--panel-strong));
|
|
}
|
|
|
|
.nacos-service-detail-cell {
|
|
padding: 8px;
|
|
background: color-mix(in oklab, var(--panel-muted) 92%, var(--panel-strong));
|
|
}
|
|
|
|
.fold-group {
|
|
display: grid;
|
|
gap: 10px;
|
|
margin-top: 12px;
|
|
}
|
|
|
|
.infra-detail-stack {
|
|
display: grid;
|
|
gap: 12px;
|
|
}
|
|
|
|
.config-sidebar {
|
|
display: grid;
|
|
gap: 10px;
|
|
align-self: start;
|
|
position: sticky;
|
|
top: 124px;
|
|
max-height: calc(100vh - 140px);
|
|
padding: 10px;
|
|
border: 1px solid var(--line);
|
|
border-radius: 16px;
|
|
background: color-mix(in oklab, var(--panel-muted) 94%, var(--panel-strong));
|
|
}
|
|
|
|
.config-sidebar-head {
|
|
display: grid;
|
|
gap: 8px;
|
|
}
|
|
|
|
.config-sidebar-meta {
|
|
display: flex;
|
|
gap: 8px;
|
|
align-items: center;
|
|
}
|
|
|
|
.config-sidebar-path {
|
|
display: grid;
|
|
gap: 3px;
|
|
padding: 8px 10px;
|
|
border: 1px solid var(--line);
|
|
border-radius: 12px;
|
|
background: var(--panel-strong);
|
|
}
|
|
|
|
.config-sidebar-path strong {
|
|
font-size: 12px;
|
|
}
|
|
|
|
.config-sidebar-path span {
|
|
color: var(--muted);
|
|
font-size: 10px;
|
|
}
|
|
|
|
.config-list-ide {
|
|
gap: 10px;
|
|
padding-right: 4px;
|
|
}
|
|
|
|
.config-group {
|
|
display: grid;
|
|
gap: 6px;
|
|
}
|
|
|
|
.config-group-toggle {
|
|
display: grid;
|
|
grid-template-columns: minmax(0, 1fr) auto auto;
|
|
gap: 10px;
|
|
align-items: center;
|
|
width: 100%;
|
|
min-height: 32px;
|
|
padding: 0 10px;
|
|
border: 1px solid var(--line);
|
|
border-radius: 12px;
|
|
background: var(--panel-strong);
|
|
color: var(--text);
|
|
font: inherit;
|
|
cursor: pointer;
|
|
text-align: left;
|
|
}
|
|
|
|
.config-group-toggle strong {
|
|
font-size: 11px;
|
|
}
|
|
|
|
.config-group-toggle span,
|
|
.config-group-toggle small {
|
|
color: var(--muted);
|
|
font-size: 10px;
|
|
}
|
|
|
|
.config-group-items {
|
|
display: grid;
|
|
gap: 2px;
|
|
padding-left: 10px;
|
|
border-left: 1px solid color-mix(in oklab, var(--line) 88%, transparent);
|
|
}
|
|
|
|
.config-item-ide {
|
|
display: grid;
|
|
grid-template-columns: minmax(0, 1fr) auto;
|
|
gap: 8px;
|
|
align-items: center;
|
|
padding: 8px 9px 8px 12px;
|
|
border: 0;
|
|
border-radius: 10px;
|
|
background: transparent;
|
|
position: relative;
|
|
transition: background 180ms ease, box-shadow 180ms ease;
|
|
}
|
|
|
|
.config-item-ide::before {
|
|
content: "";
|
|
position: absolute;
|
|
left: 0;
|
|
top: 6px;
|
|
bottom: 6px;
|
|
width: 2px;
|
|
border-radius: 999px;
|
|
background: transparent;
|
|
}
|
|
|
|
.config-item-ide strong {
|
|
font-size: 11px;
|
|
word-break: break-word;
|
|
}
|
|
|
|
.config-item-ide span {
|
|
margin-top: 0;
|
|
font-size: 10px;
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
.config-item-ide small {
|
|
font-size: 10px;
|
|
color: var(--muted);
|
|
}
|
|
|
|
.config-item-ide.active {
|
|
background: color-mix(in oklab, var(--accent-soft) 64%, var(--panel-strong));
|
|
box-shadow: inset 0 0 0 1px color-mix(in oklab, var(--accent) 26%, var(--line));
|
|
}
|
|
|
|
.config-item-ide:hover {
|
|
transform: none;
|
|
background: color-mix(in oklab, var(--accent-soft) 30%, var(--panel-strong));
|
|
}
|
|
|
|
.config-item-ide.active::before {
|
|
background: var(--accent);
|
|
}
|
|
|
|
.config-item-main,
|
|
.config-item-side {
|
|
display: grid;
|
|
gap: 3px;
|
|
}
|
|
|
|
.config-item-side {
|
|
justify-items: end;
|
|
}
|
|
|
|
.config-jump-group {
|
|
display: inline-flex;
|
|
gap: 8px;
|
|
align-items: center;
|
|
}
|
|
|
|
.editor-toolbar {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
gap: 12px;
|
|
align-items: center;
|
|
padding: 10px;
|
|
border: 1px solid var(--line);
|
|
border-radius: 14px;
|
|
background: color-mix(in oklab, var(--panel-muted) 92%, var(--panel-strong));
|
|
}
|
|
|
|
.sticky-toolbar {
|
|
position: sticky;
|
|
top: 124px;
|
|
z-index: 8;
|
|
}
|
|
|
|
.editor-toolbar-main {
|
|
display: flex;
|
|
gap: 10px;
|
|
align-items: center;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.diff-panel {
|
|
border: 1px solid var(--line);
|
|
border-radius: 16px;
|
|
background: oklch(100% 0 0 / 0.86);
|
|
overflow: auto;
|
|
}
|
|
|
|
.diff-list {
|
|
display: grid;
|
|
}
|
|
|
|
.diff-row {
|
|
display: grid;
|
|
grid-template-columns: 48px 48px 28px minmax(0, 1fr);
|
|
gap: 10px;
|
|
align-items: start;
|
|
padding: 6px 12px;
|
|
border-bottom: 1px solid var(--line);
|
|
font-size: 12px;
|
|
line-height: 1.5;
|
|
}
|
|
|
|
.diff-row:last-child {
|
|
border-bottom: 0;
|
|
}
|
|
|
|
.diff-row.is-add {
|
|
background: color-mix(in oklab, var(--ok-soft) 58%, var(--panel-strong));
|
|
}
|
|
|
|
.diff-row.is-remove {
|
|
background: color-mix(in oklab, var(--bad-soft) 52%, var(--panel-strong));
|
|
}
|
|
|
|
.diff-gutter,
|
|
.diff-mark {
|
|
color: var(--muted);
|
|
font-size: 10px;
|
|
text-align: right;
|
|
}
|
|
|
|
.diff-row code {
|
|
font: inherit;
|
|
word-break: break-word;
|
|
white-space: pre-wrap;
|
|
}
|
|
|
|
.activity-list {
|
|
display: grid;
|
|
gap: 8px;
|
|
}
|
|
|
|
.activity-list.compact {
|
|
margin-top: 12px;
|
|
}
|
|
|
|
.activity-item {
|
|
display: grid;
|
|
grid-template-columns: minmax(0, 1fr) auto;
|
|
gap: 12px;
|
|
align-items: center;
|
|
padding: 10px 12px;
|
|
border: 1px solid var(--line);
|
|
border-radius: 12px;
|
|
background: var(--panel-muted);
|
|
}
|
|
|
|
.activity-item.compact {
|
|
padding: 8px 10px;
|
|
}
|
|
|
|
.activity-item.tone-ok {
|
|
border-color: color-mix(in oklab, var(--ok) 28%, var(--line));
|
|
background: color-mix(in oklab, var(--ok-soft) 42%, var(--panel-strong));
|
|
}
|
|
|
|
.activity-item.tone-warn {
|
|
border-color: color-mix(in oklab, var(--warn) 28%, var(--line));
|
|
background: color-mix(in oklab, var(--warn-soft) 44%, var(--panel-strong));
|
|
}
|
|
|
|
.activity-item.tone-bad {
|
|
border-color: color-mix(in oklab, var(--bad) 28%, var(--line));
|
|
background: color-mix(in oklab, var(--bad-soft) 44%, var(--panel-strong));
|
|
}
|
|
|
|
.activity-item-main strong,
|
|
.activity-item-main span,
|
|
.activity-item-side small {
|
|
display: block;
|
|
}
|
|
|
|
.activity-item-main strong {
|
|
font-size: 12px;
|
|
}
|
|
|
|
.activity-item-main span,
|
|
.activity-item-side small {
|
|
color: var(--muted);
|
|
font-size: 11px;
|
|
line-height: 1.45;
|
|
}
|
|
|
|
.activity-item-side {
|
|
text-align: right;
|
|
}
|
|
|
|
.release-status-strip {
|
|
margin-top: 8px;
|
|
padding: 10px 12px;
|
|
}
|
|
|
|
.sticky-release-strip {
|
|
position: sticky;
|
|
top: 126px;
|
|
z-index: 12;
|
|
}
|
|
|
|
.release-action-bar {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
gap: 12px;
|
|
align-items: center;
|
|
margin-top: 10px;
|
|
padding: 10px 12px;
|
|
border: 1px solid var(--line);
|
|
border-radius: 14px;
|
|
background: color-mix(in oklab, var(--panel-muted) 92%, var(--panel-strong));
|
|
}
|
|
|
|
.release-action-summary {
|
|
display: flex;
|
|
gap: 8px;
|
|
flex-wrap: wrap;
|
|
align-items: center;
|
|
}
|
|
|
|
.release-status-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(5, minmax(0, 1fr));
|
|
gap: 8px;
|
|
}
|
|
|
|
.release-status-item {
|
|
min-height: 56px;
|
|
padding: 8px 10px;
|
|
border: 1px solid var(--line);
|
|
border-radius: 12px;
|
|
background: var(--panel-muted);
|
|
}
|
|
|
|
.release-status-item.tone-ok {
|
|
border-color: color-mix(in oklab, var(--ok) 26%, var(--line));
|
|
background: color-mix(in oklab, var(--ok-soft) 42%, var(--panel-strong));
|
|
}
|
|
|
|
.release-status-item.tone-warn {
|
|
border-color: color-mix(in oklab, var(--warn) 26%, var(--line));
|
|
background: color-mix(in oklab, var(--warn-soft) 44%, var(--panel-strong));
|
|
}
|
|
|
|
.release-status-item.tone-bad {
|
|
border-color: color-mix(in oklab, var(--bad) 26%, var(--line));
|
|
background: color-mix(in oklab, var(--bad-soft) 42%, var(--panel-strong));
|
|
}
|
|
|
|
.release-status-item small,
|
|
.release-status-item strong {
|
|
display: block;
|
|
}
|
|
|
|
.release-status-item small {
|
|
color: var(--muted);
|
|
font-size: 10px;
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.08em;
|
|
}
|
|
|
|
.release-status-item strong {
|
|
margin-top: 6px;
|
|
font-size: 12px;
|
|
line-height: 1.45;
|
|
word-break: break-word;
|
|
}
|
|
|
|
.precheck-strip {
|
|
display: flex;
|
|
gap: 8px;
|
|
flex-wrap: wrap;
|
|
align-items: center;
|
|
margin-top: 10px;
|
|
}
|
|
|
|
.release-log-preview {
|
|
display: grid;
|
|
gap: 10px;
|
|
margin-top: 12px;
|
|
padding: 12px;
|
|
border: 1px solid var(--line);
|
|
border-radius: 16px;
|
|
background: color-mix(in oklab, var(--panel-muted) 94%, var(--panel-strong));
|
|
}
|
|
|
|
.release-log-preview-head {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
gap: 10px;
|
|
align-items: center;
|
|
}
|
|
|
|
.release-log-preview-head strong {
|
|
font-size: 12px;
|
|
}
|
|
|
|
.release-log-snippets {
|
|
display: grid;
|
|
gap: 8px;
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
}
|
|
|
|
.release-log-snippet {
|
|
display: grid;
|
|
gap: 4px;
|
|
padding: 10px 11px;
|
|
border: 1px solid var(--line);
|
|
border-radius: 12px;
|
|
background: var(--panel-strong);
|
|
}
|
|
|
|
.release-log-snippet strong,
|
|
.release-log-snippet span,
|
|
.release-log-snippet p {
|
|
margin: 0;
|
|
}
|
|
|
|
.release-log-snippet strong {
|
|
font-size: 11px;
|
|
}
|
|
|
|
.release-log-snippet span {
|
|
color: var(--muted);
|
|
font-size: 10px;
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.06em;
|
|
}
|
|
|
|
.release-log-snippet p {
|
|
color: var(--text);
|
|
font-size: 11px;
|
|
line-height: 1.45;
|
|
word-break: break-word;
|
|
}
|
|
|
|
.release-log-snippet.tone-bad {
|
|
border-color: color-mix(in oklab, var(--bad) 28%, var(--line));
|
|
background: color-mix(in oklab, var(--bad-soft) 44%, var(--panel-strong));
|
|
}
|
|
|
|
.release-table td strong {
|
|
display: block;
|
|
font-size: 12px;
|
|
}
|
|
|
|
.table-subtext {
|
|
display: block;
|
|
margin-top: 4px;
|
|
color: var(--muted);
|
|
font-size: 10px;
|
|
}
|
|
|
|
.inline-copy {
|
|
display: inline-flex;
|
|
gap: 6px;
|
|
align-items: center;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.inline-button {
|
|
min-height: 24px;
|
|
padding: 0 8px;
|
|
}
|
|
|
|
.table-check {
|
|
display: inline-flex;
|
|
gap: 6px;
|
|
align-items: center;
|
|
color: var(--muted);
|
|
font-size: 11px;
|
|
}
|
|
|
|
.table-check input {
|
|
width: 15px;
|
|
height: 15px;
|
|
}
|
|
|
|
.table-empty-cell {
|
|
padding: 24px 10px;
|
|
color: var(--muted);
|
|
text-align: center;
|
|
}
|
|
|
|
.result-disclosure {
|
|
margin-top: 12px;
|
|
}
|
|
|
|
.result-disclosure summary {
|
|
cursor: pointer;
|
|
color: var(--text);
|
|
font-size: 12px;
|
|
font-weight: 700;
|
|
}
|
|
|
|
.bridge-panel {
|
|
padding: 8px 10px;
|
|
}
|
|
|
|
.bridge-list {
|
|
display: grid;
|
|
gap: 6px;
|
|
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
}
|
|
|
|
.bridge-item {
|
|
display: grid;
|
|
grid-template-columns: minmax(92px, 110px) minmax(0, 1fr) auto;
|
|
gap: 12px;
|
|
align-items: center;
|
|
width: 100%;
|
|
padding: 7px 10px;
|
|
border: 1px solid color-mix(in oklab, var(--bad) 24%, var(--line));
|
|
border-radius: 10px;
|
|
background: color-mix(in oklab, var(--bad-soft) 44%, var(--panel-strong));
|
|
color: var(--text);
|
|
font: inherit;
|
|
text-align: left;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.bridge-item strong {
|
|
font-size: 11px;
|
|
color: var(--bad);
|
|
}
|
|
|
|
.bridge-item span {
|
|
color: var(--muted);
|
|
font-size: 10px;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.bridge-item em {
|
|
color: var(--bad);
|
|
font-size: 10px;
|
|
font-style: normal;
|
|
font-weight: 700;
|
|
}
|
|
|
|
.host-fold-toggle {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 10px;
|
|
width: fit-content;
|
|
min-height: 34px;
|
|
padding: 0 12px;
|
|
border: 1px solid var(--line);
|
|
border-radius: 999px;
|
|
background: var(--panel-muted);
|
|
color: var(--text);
|
|
font: inherit;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.host-fold-toggle strong {
|
|
color: var(--text);
|
|
font-size: 11px;
|
|
}
|
|
|
|
.host-fold-toggle small {
|
|
color: var(--muted);
|
|
font-size: 10px;
|
|
}
|
|
|
|
.infra-mini-card {
|
|
display: flex;
|
|
flex-direction: column;
|
|
}
|
|
|
|
.infra-mini-metrics {
|
|
margin-bottom: 12px;
|
|
}
|
|
|
|
.infra-card-action {
|
|
align-self: flex-start;
|
|
}
|
|
|
|
.infra-panel {
|
|
margin-top: 12px;
|
|
}
|
|
|
|
.nacos-service-grid {
|
|
display: grid;
|
|
gap: 12px;
|
|
margin-top: 14px;
|
|
}
|
|
|
|
.nacos-service-card {
|
|
padding: 14px;
|
|
border: 1px solid var(--line);
|
|
border-radius: 16px;
|
|
background: var(--panel-muted);
|
|
}
|
|
|
|
.table-wrap {
|
|
margin-top: 10px;
|
|
}
|
|
|
|
.table tbody tr:hover {
|
|
background: color-mix(in oklab, var(--accent-soft) 22%, var(--panel-strong));
|
|
}
|
|
|
|
.table tbody tr:last-child td,
|
|
.matrix-table tbody tr:last-child td {
|
|
border-bottom: 0;
|
|
}
|
|
|
|
.table.compact th,
|
|
.table.compact td {
|
|
padding: 8px 10px;
|
|
font-size: 12px;
|
|
}
|
|
|
|
.config-toolbar {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
gap: 12px;
|
|
align-items: center;
|
|
margin-bottom: 14px;
|
|
}
|
|
|
|
.config-search {
|
|
min-width: 320px;
|
|
}
|
|
|
|
.restart-pills {
|
|
flex: 1 1 auto;
|
|
}
|
|
|
|
.restart-pills .config-item {
|
|
width: auto;
|
|
min-width: 220px;
|
|
}
|
|
|
|
.config-layout {
|
|
display: grid;
|
|
grid-template-columns: minmax(250px, 320px) minmax(0, 1fr);
|
|
gap: 16px;
|
|
}
|
|
|
|
.config-list {
|
|
display: grid;
|
|
gap: 10px;
|
|
max-height: 760px;
|
|
overflow: auto;
|
|
padding-right: 4px;
|
|
}
|
|
|
|
.config-item {
|
|
display: block;
|
|
width: 100%;
|
|
padding: 12px 14px;
|
|
border: 1px solid var(--line);
|
|
border-radius: 14px;
|
|
background: var(--panel-muted);
|
|
color: var(--text);
|
|
text-align: left;
|
|
cursor: pointer;
|
|
transition: transform 180ms ease, border-color 180ms ease, background 180ms ease;
|
|
}
|
|
|
|
.config-item:hover {
|
|
transform: translateY(-1px);
|
|
}
|
|
|
|
.config-item.active {
|
|
border-color: color-mix(in oklab, var(--accent) 44%, var(--line-strong));
|
|
background: var(--accent-soft);
|
|
}
|
|
|
|
.config-item strong,
|
|
.config-item span,
|
|
.config-item small {
|
|
display: block;
|
|
}
|
|
|
|
.config-item strong {
|
|
font-size: 13px;
|
|
line-height: 1.35;
|
|
word-break: break-all;
|
|
}
|
|
|
|
.config-item span,
|
|
.config-item small,
|
|
.config-description {
|
|
color: var(--muted);
|
|
font-size: 12px;
|
|
}
|
|
|
|
.config-item span,
|
|
.config-description {
|
|
margin-top: 6px;
|
|
}
|
|
|
|
.config-description {
|
|
display: flex;
|
|
gap: 10px;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.config-editor {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 12px;
|
|
}
|
|
|
|
.config-empty,
|
|
.empty-panel {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
min-height: 160px;
|
|
padding: 18px;
|
|
border: 1px dashed var(--line-strong);
|
|
border-radius: 16px;
|
|
background: color-mix(in oklab, var(--panel-muted) 88%, var(--bg-soft));
|
|
color: var(--muted);
|
|
text-align: center;
|
|
}
|
|
|
|
.empty-panel.compact {
|
|
min-height: 88px;
|
|
}
|
|
|
|
.config-textarea {
|
|
width: 100%;
|
|
min-height: 500px;
|
|
padding: 16px;
|
|
resize: vertical;
|
|
border-radius: 16px;
|
|
background: oklch(100% 0 0 / 0.86);
|
|
box-shadow: inset 0 1px 2px rgba(52, 71, 103, 0.08);
|
|
font-size: 13px;
|
|
line-height: 1.55;
|
|
}
|
|
|
|
.config-actions {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
gap: 12px;
|
|
align-items: center;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.update-form-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(4, minmax(0, 1fr));
|
|
gap: 12px;
|
|
margin-top: 14px;
|
|
}
|
|
|
|
.update-field,
|
|
.update-check {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 8px;
|
|
}
|
|
|
|
.update-field span,
|
|
.update-check span {
|
|
color: var(--muted);
|
|
font-size: 12px;
|
|
}
|
|
|
|
.update-check {
|
|
justify-content: center;
|
|
padding: 12px 14px;
|
|
border: 1px solid var(--line);
|
|
border-radius: 14px;
|
|
background: var(--panel-muted);
|
|
}
|
|
|
|
.update-check input {
|
|
width: 18px;
|
|
height: 18px;
|
|
}
|
|
|
|
.operation-meta {
|
|
margin-top: 14px;
|
|
}
|
|
|
|
.update-log-panel {
|
|
margin-top: 14px;
|
|
padding: 16px;
|
|
border: 1px solid var(--line);
|
|
border-radius: 18px;
|
|
background: var(--panel-muted);
|
|
}
|
|
|
|
.update-log-head {
|
|
margin-bottom: 12px;
|
|
}
|
|
|
|
.update-log-output {
|
|
margin: 0;
|
|
min-height: 180px;
|
|
max-height: 420px;
|
|
overflow: auto;
|
|
padding: 16px;
|
|
border: 1px solid color-mix(in oklab, var(--line-strong) 78%, transparent);
|
|
border-radius: 14px;
|
|
background: oklch(22% 0.01 240 / 0.98);
|
|
color: oklch(91% 0.01 230);
|
|
font-size: 12px;
|
|
line-height: 1.55;
|
|
white-space: pre-wrap;
|
|
word-break: break-word;
|
|
}
|
|
|
|
.log-viewer-overlay {
|
|
position: fixed;
|
|
inset: 0;
|
|
z-index: 48;
|
|
display: grid;
|
|
place-items: center;
|
|
padding: 28px 20px;
|
|
background: color-mix(in oklab, var(--text) 14%, transparent);
|
|
backdrop-filter: blur(8px);
|
|
}
|
|
|
|
.log-viewer {
|
|
display: grid;
|
|
grid-template-rows: auto auto minmax(0, 1fr);
|
|
gap: 12px;
|
|
width: min(1120px, 100%);
|
|
max-height: min(88vh, 920px);
|
|
padding: 16px;
|
|
border: 1px solid var(--line);
|
|
border-radius: 22px;
|
|
background: color-mix(in oklab, var(--panel-strong) 96%, var(--panel-muted));
|
|
box-shadow: 0 24px 64px rgba(29, 42, 68, 0.24);
|
|
}
|
|
|
|
.log-viewer-head {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
gap: 14px;
|
|
align-items: flex-start;
|
|
}
|
|
|
|
.log-viewer-toolbar {
|
|
display: flex;
|
|
gap: 8px;
|
|
align-items: center;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.log-viewer-output {
|
|
margin: 0;
|
|
min-height: 280px;
|
|
max-height: calc(88vh - 176px);
|
|
overflow: auto;
|
|
padding: 16px;
|
|
border: 1px solid color-mix(in oklab, var(--line-strong) 78%, transparent);
|
|
border-radius: 16px;
|
|
background: oklch(22% 0.01 240 / 0.98);
|
|
color: oklch(91% 0.01 230);
|
|
font-size: 12px;
|
|
line-height: 1.58;
|
|
white-space: pre-wrap;
|
|
word-break: break-word;
|
|
}
|
|
|
|
.badge {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
min-height: 28px;
|
|
padding: 0 10px;
|
|
border: 1px solid var(--line);
|
|
border-radius: 999px;
|
|
background: var(--panel-muted);
|
|
font-size: 11px;
|
|
font-weight: 600;
|
|
}
|
|
|
|
.badge.neutral {
|
|
color: color-mix(in oklab, var(--muted) 92%, var(--text));
|
|
border-color: color-mix(in oklab, var(--line) 90%, var(--panel-strong));
|
|
background: color-mix(in oklab, var(--panel-muted) 94%, var(--panel-strong));
|
|
}
|
|
|
|
.badge.ok,
|
|
.ok-text,
|
|
.tone-ok {
|
|
color: var(--ok);
|
|
}
|
|
|
|
.badge.warn,
|
|
.tone-warn {
|
|
color: var(--warn);
|
|
}
|
|
|
|
.badge.bad,
|
|
.bad-text,
|
|
.tone-bad {
|
|
color: var(--bad);
|
|
}
|
|
|
|
.badge.ok {
|
|
border-color: color-mix(in oklab, var(--ok) 26%, var(--line));
|
|
background: color-mix(in oklab, var(--ok-soft) 32%, var(--panel-muted));
|
|
}
|
|
|
|
.badge.warn {
|
|
border-color: color-mix(in oklab, var(--warn) 42%, var(--line));
|
|
background: color-mix(in oklab, var(--warn-soft) 70%, var(--panel-muted));
|
|
}
|
|
|
|
.badge.bad {
|
|
border-color: color-mix(in oklab, var(--bad) 42%, var(--line));
|
|
background: color-mix(in oklab, var(--bad-soft) 70%, var(--panel-muted));
|
|
}
|
|
|
|
.tone-neutral {
|
|
color: var(--text);
|
|
}
|
|
|
|
.metric-error {
|
|
margin: 0;
|
|
color: var(--bad);
|
|
font-size: 12px;
|
|
word-break: break-word;
|
|
}
|
|
|
|
.mono,
|
|
.detail-secondary {
|
|
font-family: "IBM Plex Mono", "SFMono-Regular", monospace;
|
|
}
|
|
|
|
@media (max-width: 1320px) {
|
|
.topbar {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.service-layout-open {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.bridge-list {
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
}
|
|
|
|
.overview-infra-grid {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.service-meta-grid,
|
|
.summary-grid,
|
|
.metric-grid,
|
|
.infra-mini-metrics,
|
|
.config-meta-grid {
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
}
|
|
|
|
.infra-overview-grid,
|
|
.mongo-group-grid,
|
|
.release-status-grid,
|
|
.release-log-snippets {
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
}
|
|
|
|
.update-form-grid {
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
}
|
|
}
|
|
|
|
@media (max-width: 1040px) {
|
|
.control-bar {
|
|
position: static;
|
|
}
|
|
|
|
.detail-panel {
|
|
position: static;
|
|
max-height: none;
|
|
}
|
|
|
|
.config-sidebar {
|
|
position: static;
|
|
max-height: none;
|
|
}
|
|
|
|
.summary-cards {
|
|
display: grid;
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
gap: 6px;
|
|
}
|
|
|
|
.host-strip-main {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.config-layout {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.config-list {
|
|
max-height: 280px;
|
|
}
|
|
|
|
.sticky-toolbar,
|
|
.sticky-release-strip {
|
|
position: static;
|
|
}
|
|
|
|
.release-status-grid,
|
|
.infra-overview-grid,
|
|
.mongo-group-grid,
|
|
.release-log-snippets {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
}
|
|
|
|
@media (max-width: 720px) {
|
|
body.auth-page {
|
|
padding: 20px 12px;
|
|
}
|
|
|
|
.auth-shell {
|
|
width: 100%;
|
|
margin-top: 72px;
|
|
}
|
|
|
|
.auth-panel {
|
|
padding: 18px;
|
|
}
|
|
|
|
.shell {
|
|
padding: 14px 12px 28px;
|
|
}
|
|
|
|
.topbar {
|
|
position: static;
|
|
padding: 14px;
|
|
}
|
|
|
|
.control-bar,
|
|
.config-toolbar,
|
|
.config-actions,
|
|
.panel-header {
|
|
flex-direction: column;
|
|
align-items: stretch;
|
|
}
|
|
|
|
.control-group,
|
|
.control-group-spread,
|
|
.density-switch,
|
|
.action-group,
|
|
.host-tags,
|
|
.restart-pills {
|
|
width: 100%;
|
|
}
|
|
|
|
.search,
|
|
.config-search {
|
|
min-width: 100%;
|
|
}
|
|
|
|
.summary-cards,
|
|
.bridge-list,
|
|
.service-meta-grid,
|
|
.summary-grid,
|
|
.metric-grid,
|
|
.infra-mini-metrics,
|
|
.config-meta-grid,
|
|
.update-form-grid,
|
|
.release-status-grid,
|
|
.infra-overview-grid,
|
|
.mongo-group-grid {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.status-band-item {
|
|
border-right: 0;
|
|
border-bottom: 1px solid var(--line);
|
|
justify-content: flex-start;
|
|
}
|
|
|
|
.status-band-item:last-child {
|
|
border-bottom: 0;
|
|
}
|
|
|
|
.service-layout-open {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.host-inline-metrics,
|
|
.host-inline-state {
|
|
width: 100%;
|
|
}
|
|
|
|
.section-caption-row {
|
|
align-items: flex-start;
|
|
}
|
|
|
|
.entry-grid {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.host-service-pill,
|
|
.restart-pills .config-item {
|
|
width: 100%;
|
|
}
|
|
|
|
.taskbar-context,
|
|
.taskbar-inline,
|
|
.metadata-strip,
|
|
.precheck-strip,
|
|
.activity-item-side,
|
|
.release-action-bar,
|
|
.release-action-summary,
|
|
.log-viewer-head,
|
|
.log-viewer-toolbar,
|
|
.entry-actions {
|
|
width: 100%;
|
|
text-align: left;
|
|
}
|
|
|
|
.editor-toolbar,
|
|
.activity-item {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.log-viewer-overlay {
|
|
padding: 14px 12px;
|
|
}
|
|
|
|
.log-viewer {
|
|
max-height: calc(100vh - 28px);
|
|
padding: 14px;
|
|
}
|
|
|
|
.release-action-bar,
|
|
.log-viewer-head {
|
|
flex-direction: column;
|
|
align-items: stretch;
|
|
}
|
|
|
|
.diff-row {
|
|
grid-template-columns: 34px 34px 22px minmax(0, 1fr);
|
|
gap: 8px;
|
|
padding: 6px 8px;
|
|
}
|
|
}
|