Files
lingniu-vehicle-ingest/vehicle-data-platform/apps/web/src/styles/global.css

530 lines
9.4 KiB
CSS

@import './tokens.css';
@import '@douyinfe/semi-theme-default/scss/index.scss';
* {
box-sizing: border-box;
}
body {
margin: 0;
min-width: 1280px;
background: var(--vp-bg);
color: var(--vp-text);
font-family: Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}
.vp-app {
min-height: 100vh;
background: var(--vp-bg);
}
.vp-shell {
display: grid;
grid-template-columns: var(--vp-shell-sidebar) minmax(0, 1fr);
min-height: 100vh;
}
.vp-sidebar {
position: sticky;
top: 0;
height: 100vh;
background: var(--vp-surface);
border-right: 1px solid var(--vp-border);
padding: 16px 12px;
}
.vp-brand {
height: 44px;
display: flex;
align-items: center;
gap: 10px;
padding: 0 8px 16px;
font-weight: 700;
color: var(--vp-text);
}
.vp-brand-mark {
width: 28px;
height: 28px;
border-radius: 7px;
background: linear-gradient(135deg, var(--vp-primary), var(--vp-cyan));
}
.vp-main {
min-width: 0;
}
.vp-topbar {
height: var(--vp-shell-header);
display: flex;
align-items: center;
justify-content: space-between;
padding: 0 24px;
background: rgba(255, 255, 255, 0.9);
border-bottom: 1px solid var(--vp-border);
backdrop-filter: blur(12px);
position: sticky;
top: 0;
z-index: 10;
}
.vp-link-health-button-warning {
color: var(--vp-warning);
border-color: rgba(247, 144, 9, 0.45);
background: rgba(247, 144, 9, 0.08);
}
.vp-link-health-button-ok {
color: var(--vp-success);
border-color: rgba(18, 183, 106, 0.45);
background: rgba(18, 183, 106, 0.08);
}
.vp-page {
padding: var(--vp-page-gutter);
}
.vp-page-header {
min-height: 54px;
margin-bottom: 16px;
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 16px;
}
.vp-page-header-actions {
flex: 0 0 auto;
padding-top: 2px;
}
.vp-scope-bar {
min-height: 40px;
margin-top: 12px;
padding: 8px 12px;
border: 1px solid var(--vp-border);
border-radius: var(--vp-radius);
background: #fbfcff;
display: flex;
align-items: center;
gap: 10px;
}
.vp-scope-label {
color: var(--vp-text-muted);
font-size: 13px;
}
.vp-service-status {
min-height: 40px;
margin-top: 8px;
padding: 8px 12px;
border: 1px solid var(--vp-border);
border-radius: var(--vp-radius);
background: var(--vp-surface);
display: flex;
align-items: center;
gap: 10px;
}
.vp-service-status-ok {
border-color: rgba(18, 183, 106, 0.35);
background: rgba(18, 183, 106, 0.05);
}
.vp-service-status-warning {
border-color: rgba(247, 144, 9, 0.35);
background: rgba(247, 144, 9, 0.06);
}
.vp-service-status-error {
border-color: rgba(240, 68, 56, 0.35);
background: rgba(240, 68, 56, 0.05);
}
.vp-section {
background: var(--vp-surface);
border: 1px solid var(--vp-border);
border-radius: var(--vp-radius);
box-shadow: var(--vp-shadow-sm);
}
.vp-grid {
display: grid;
gap: 16px;
}
.vp-grid.two {
grid-template-columns: minmax(0, 1.2fr) minmax(360px, 0.8fr);
}
.vp-kpi-grid {
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 16px;
margin-bottom: 16px;
}
.vp-kpi-card {
overflow: hidden;
}
.vp-kpi-button {
width: 100%;
min-height: 94px;
padding: 20px 24px;
border: 0;
background: transparent;
text-align: left;
cursor: pointer;
font: inherit;
}
.vp-kpi-button:hover,
.vp-kpi-button:focus-visible {
background: #f8fbff;
outline: none;
}
.vp-kpi-value {
font-size: 28px;
font-weight: 700;
line-height: 34px;
color: var(--vp-text);
}
.vp-kpi-label {
margin-top: 4px;
color: var(--vp-text-muted);
font-size: 13px;
}
.vp-result-summary-grid {
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 12px;
}
.vp-result-summary-item {
min-height: 72px;
padding: 12px;
border: 1px solid var(--vp-border);
border-radius: var(--vp-radius);
background: #fbfcff;
}
.vp-result-summary-button {
width: 100%;
text-align: left;
font: inherit;
cursor: pointer;
}
.vp-result-summary-button:hover,
.vp-result-summary-button:focus-visible {
border-color: rgba(22, 100, 255, 0.42);
background: #f5f9ff;
outline: none;
}
.vp-result-summary-value {
color: var(--vp-text);
font-size: 22px;
font-weight: 700;
line-height: 28px;
}
.vp-result-summary-label {
margin-top: 4px;
color: var(--vp-text-muted);
font-size: 12px;
line-height: 18px;
}
.vp-map {
position: relative;
height: 360px;
overflow: hidden;
background:
linear-gradient(90deg, rgba(22, 100, 255, 0.08) 1px, transparent 1px),
linear-gradient(0deg, rgba(22, 100, 255, 0.08) 1px, transparent 1px),
#f8fbff;
background-size: 36px 36px;
}
.vp-monitor-layout {
display: grid;
grid-template-columns: minmax(0, 1fr) 260px;
gap: 16px;
margin-bottom: 16px;
}
.vp-monitor-map {
min-height: 430px;
border: 1px solid var(--vp-border);
border-radius: var(--vp-radius);
overflow: hidden;
background: var(--vp-surface);
}
.vp-monitor-map-header {
min-height: 50px;
padding: 12px;
border-bottom: 1px solid var(--vp-border);
background: #fbfcff;
}
.vp-map-monitor {
height: 380px;
}
.vp-map-dot {
position: absolute;
width: 10px;
height: 10px;
border-radius: 50%;
background: var(--vp-primary);
box-shadow: 0 0 0 5px rgba(22, 100, 255, 0.16);
}
.vp-map-dot-online {
background: var(--vp-success);
box-shadow: 0 0 0 5px rgba(18, 183, 106, 0.16);
}
.vp-map-dot-offline {
background: var(--vp-warning);
box-shadow: 0 0 0 5px rgba(247, 144, 9, 0.16);
}
.vp-map-dot-start {
width: 12px;
height: 12px;
background: var(--vp-success);
box-shadow: 0 0 0 6px rgba(18, 183, 106, 0.18);
}
.vp-map-dot-end {
width: 12px;
height: 12px;
background: var(--vp-warning);
box-shadow: 0 0 0 6px rgba(247, 144, 9, 0.18);
}
.vp-monitor-side {
display: grid;
gap: 12px;
align-content: start;
}
.vp-monitor-metric {
min-height: 72px;
padding: 12px;
border: 1px solid var(--vp-border);
border-radius: var(--vp-radius);
background: #fbfcff;
}
.vp-monitor-metric-value {
margin-top: 8px;
color: var(--vp-text);
font-size: 24px;
font-weight: 700;
line-height: 30px;
}
.vp-alert-flow {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 12px;
}
.vp-alert-flow-item {
min-height: 96px;
padding: 12px;
border: 1px solid var(--vp-border);
border-radius: var(--vp-radius);
background: #fbfcff;
display: grid;
gap: 10px;
align-content: start;
}
.vp-playback-layout {
display: grid;
grid-template-columns: minmax(0, 1fr) 260px;
gap: 16px;
}
.vp-playback-map {
min-height: 430px;
border: 1px solid var(--vp-border);
border-radius: var(--vp-radius);
overflow: hidden;
background: var(--vp-surface);
}
.vp-playback-side {
display: grid;
gap: 12px;
align-content: start;
}
.vp-playback-timeline {
margin-top: 16px;
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 12px;
}
.vp-playback-step {
min-height: 112px;
padding: 12px;
border: 1px solid var(--vp-border);
border-radius: var(--vp-radius);
background: #fbfcff;
}
.vp-json {
margin: 0;
padding: 16px;
border-radius: 8px;
background: #101828;
color: #e4e7ec;
overflow: auto;
max-height: 360px;
font-size: 12px;
line-height: 1.65;
}
.vp-table-footer {
min-height: 52px;
display: flex;
align-items: center;
justify-content: space-between;
gap: 16px;
padding-top: 12px;
}
.vp-vehicle-summary {
min-height: 72px;
display: flex;
align-items: center;
}
.vp-evidence-grid {
display: grid;
grid-template-columns: repeat(6, minmax(0, 1fr));
gap: 12px;
margin-bottom: 12px;
}
.vp-conclusion-grid {
display: grid;
grid-template-columns: 160px minmax(180px, 1fr) minmax(260px, 1.4fr);
gap: 12px;
}
.vp-conclusion-item {
min-height: 78px;
padding: 12px;
border: 1px solid var(--vp-border);
border-radius: var(--vp-radius);
background: #fbfcff;
}
.vp-evidence-item {
min-height: 70px;
padding: 12px;
border: 1px solid var(--vp-border);
border-radius: var(--vp-radius);
background: #fbfcff;
}
.vp-evidence-label {
color: var(--vp-text-muted);
font-size: 12px;
line-height: 18px;
}
.vp-evidence-value {
margin-top: 6px;
color: var(--vp-text);
font-size: 15px;
font-weight: 600;
line-height: 22px;
word-break: break-all;
}
.vp-action-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 12px;
}
.vp-action-item {
min-height: 92px;
padding: 12px;
border: 1px solid var(--vp-border);
border-radius: var(--vp-radius);
background: #fbfcff;
display: flex;
align-items: center;
justify-content: space-between;
gap: 16px;
}
.vp-action-item > div {
min-width: 0;
}
.vp-source-toolbar {
margin-bottom: 12px;
}
.vp-realtime-strip {
display: grid;
grid-template-columns: repeat(6, minmax(0, 1fr));
gap: 12px;
margin-bottom: 16px;
}
.vp-realtime-strip-item {
min-height: 72px;
padding: 12px;
border: 1px solid var(--vp-border);
border-radius: var(--vp-radius);
background: #fbfcff;
}
.vp-realtime-strip-label {
color: var(--vp-text-muted);
font-size: 12px;
line-height: 18px;
}
.vp-realtime-strip-value {
margin-top: 6px;
color: var(--vp-text);
font-size: 15px;
font-weight: 600;
line-height: 22px;
word-break: break-all;
}
.semi-navigation-item-text {
font-size: 14px;
}
@media (max-width: 900px) {
.vp-evidence-grid,
.vp-action-grid,
.vp-conclusion-grid,
.vp-monitor-layout,
.vp-alert-flow,
.vp-playback-layout,
.vp-playback-timeline {
grid-template-columns: 1fr;
}
}