Files
ewoooc/static/css/observability-system.css
OoO 11ccda0e1c
All checks were successful
CD Pipeline / deploy (push) Successful in 58s
style(observability): refine navigation and data UI polish
2026-05-06 20:54:48 +08:00

1084 lines
33 KiB
CSS
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/*
* AI 觀測台共用視覺系統
* 只在 ewoooc_base.html 的 .momo-observability-mode 啟用,避免污染一般後台頁。
*
* Governance:
* - 新增觀測頁時,優先使用本檔 token / utility class不要在 template 內重建一套 hero/table/card。
* - 標題與 KPI 數字使用 --obs-title-size / --obs-value-size不要再硬寫超大 clamp。
* - 圖表容器使用 .obs-chart-frame 系列;只有資料百分比 width 可保留 inline style。
* - 視覺語言固定為暖色焦糖系、Noto Sans TC、點陣方格禁止回到紫色、純黑、Times/Georgia。
*/
.momo-observability-mode {
--obs-ink: var(--momo-ink, #302720);
--obs-muted: var(--momo-muted, #8b8077);
--obs-paper: var(--momo-paper, #fff8ef);
--obs-accent: var(--momo-accent, #c96442);
--obs-accent-soft: rgba(201, 100, 66, 0.12);
--obs-line: rgba(86, 64, 48, 0.14);
--obs-card: rgba(255, 252, 246, 0.92);
--obs-green: #4f8a5b;
--obs-amber: #b8792f;
--obs-red: #b94b45;
--obs-blue: #4f6f8f;
--obs-radius-lg: 24px;
--obs-radius-md: 18px;
--obs-shadow: 0 18px 44px rgba(70, 46, 28, 0.09);
--obs-dot:
radial-gradient(circle, rgba(201, 100, 66, 0.18) 1px, transparent 1.3px);
--obs-title-size: clamp(1.9rem, 3.2vw, 2.75rem);
--obs-value-size: clamp(1.45rem, 2.8vw, 2.25rem);
}
.momo-observability-mode .momo-content {
background:
var(--obs-dot),
radial-gradient(circle at 8% 4%, rgba(201, 100, 66, 0.12), transparent 24rem),
radial-gradient(circle at 100% 20%, rgba(79, 111, 143, 0.11), transparent 26rem),
linear-gradient(180deg, rgba(255, 248, 239, 0.65), rgba(255, 253, 248, 0.96));
background-size: 18px 18px, auto, auto, auto;
color: var(--obs-ink);
font-family: 'Noto Sans TC', 'Inter', sans-serif;
}
.momo-observability-mode .momo-content::before {
content: "";
position: fixed;
inset: 64px 0 auto 260px;
height: 180px;
pointer-events: none;
background: linear-gradient(180deg, rgba(255, 248, 239, 0.92), rgba(255, 248, 239, 0));
z-index: 0;
}
.momo-observability-mode .container-fluid,
.momo-observability-mode .obs-warroom,
.momo-observability-mode .agent-page,
.momo-observability-mode .biz-warroom,
.momo-observability-mode .runtime-page,
.momo-observability-mode .calls-page,
.momo-observability-mode .gov-page,
.momo-observability-mode .gate-page,
.momo-observability-mode .rag-page,
.momo-observability-mode .quality-page,
.momo-observability-mode .ppt-page {
position: relative;
z-index: 1;
}
.momo-observability-mode .container-fluid > h2:first-child {
position: relative;
margin-bottom: 1.1rem !important;
padding: 1.2rem 1.25rem;
border: 1px solid var(--obs-line);
border-radius: 24px;
background:
radial-gradient(circle at 16% 10%, rgba(201, 100, 66, 0.16), transparent 20rem),
linear-gradient(135deg, rgba(255, 248, 239, 0.96), rgba(255, 255, 255, 0.76));
box-shadow: 0 18px 42px rgba(70, 46, 28, 0.08);
color: var(--obs-ink);
font-family: 'Noto Sans TC', 'Inter', sans-serif;
font-size: var(--obs-title-size);
letter-spacing: -0.045em;
}
.momo-observability-mode .container-fluid > h2:first-child small {
display: block;
margin-top: 0.3rem;
color: var(--obs-muted) !important;
font-family: 'Noto Sans TC', sans-serif;
font-size: 0.88rem;
font-weight: 500;
letter-spacing: 0;
}
.momo-observability-mode .card {
border: 1px solid var(--obs-line);
border-radius: 22px;
background: var(--obs-card);
box-shadow: 0 14px 34px rgba(70, 46, 28, 0.07);
overflow: hidden;
}
.momo-observability-mode .card-header {
border-bottom: 1px solid var(--obs-line);
background: linear-gradient(90deg, rgba(255, 248, 239, 0.92), rgba(255, 255, 255, 0.72)) !important;
color: var(--obs-ink);
font-weight: 800;
}
.momo-observability-mode .card-body {
color: var(--obs-ink);
}
.momo-observability-mode .card-footer {
border-top: 1px solid var(--obs-line);
background: rgba(255, 248, 239, 0.56);
}
.momo-observability-mode .text-muted {
color: var(--obs-muted) !important;
}
.momo-observability-mode h3,
.momo-observability-mode h4,
.momo-observability-mode h5 {
letter-spacing: -0.035em;
}
.momo-observability-mode h1,
.momo-observability-mode h2,
.momo-observability-mode h3,
.momo-observability-mode h4,
.momo-observability-mode h5,
.momo-observability-mode h6 {
color: var(--obs-ink);
font-family: 'Noto Sans TC', 'Inter', sans-serif !important;
font-weight: 850;
}
.momo-observability-mode .obs-title,
.momo-observability-mode .agent-title,
.momo-observability-mode .biz-command h1,
.momo-observability-mode .runtime-title,
.momo-observability-mode .calls-title,
.momo-observability-mode .gov-title,
.momo-observability-mode .gate-title,
.momo-observability-mode .rag-title,
.momo-observability-mode .quality-title,
.momo-observability-mode .ppt-title {
max-width: 780px;
font-family: 'Noto Sans TC', 'Inter', sans-serif !important;
font-size: clamp(1.9rem, 3.2vw, 2.75rem) !important;
line-height: 1.12 !important;
letter-spacing: -0.045em !important;
font-weight: 860 !important;
}
.momo-observability-mode .obs-hero,
.momo-observability-mode .agent-hero,
.momo-observability-mode .biz-command,
.momo-observability-mode .runtime-hero,
.momo-observability-mode .calls-hero,
.momo-observability-mode .gov-hero,
.momo-observability-mode .gate-hero,
.momo-observability-mode .rag-hero,
.momo-observability-mode .quality-hero,
.momo-observability-mode .ppt-hero {
position: relative;
overflow: hidden;
border: 1px solid rgba(201, 100, 66, 0.16) !important;
border-radius: 28px !important;
box-shadow: var(--obs-shadow) !important;
padding-top: clamp(1.05rem, 2vw, 1.65rem) !important;
padding-bottom: clamp(1.05rem, 2vw, 1.65rem) !important;
}
.momo-observability-mode .obs-hero::after,
.momo-observability-mode .agent-hero::after,
.momo-observability-mode .biz-command::after,
.momo-observability-mode .runtime-hero::after,
.momo-observability-mode .calls-hero::after,
.momo-observability-mode .gov-hero::after,
.momo-observability-mode .gate-hero::after,
.momo-observability-mode .rag-hero::after,
.momo-observability-mode .quality-hero::after,
.momo-observability-mode .ppt-hero::after,
.momo-observability-mode .obs-panel::after,
.momo-observability-mode .agent-panel::after,
.momo-observability-mode .biz-panel::after,
.momo-observability-mode .runtime-panel::after,
.momo-observability-mode .calls-panel::after,
.momo-observability-mode .gov-panel::after,
.momo-observability-mode .gate-panel::after,
.momo-observability-mode .rag-panel::after,
.momo-observability-mode .quality-panel::after,
.momo-observability-mode .ppt-panel::after {
content: "";
position: absolute;
inset: auto 0 0 auto;
width: 220px;
height: 120px;
pointer-events: none;
opacity: 0.46;
background-image: var(--obs-dot);
background-size: 12px 12px;
mask-image: linear-gradient(135deg, transparent, #000);
}
.momo-observability-mode .obs-kicker,
.momo-observability-mode .agent-kicker,
.momo-observability-mode .biz-kicker,
.momo-observability-mode .runtime-kicker,
.momo-observability-mode .calls-kicker,
.momo-observability-mode .gov-kicker,
.momo-observability-mode .gate-kicker,
.momo-observability-mode .rag-kicker,
.momo-observability-mode .quality-kicker,
.momo-observability-mode .ppt-kicker,
.momo-observability-mode [class$="-label"] {
color: color-mix(in srgb, var(--obs-accent) 74%, var(--obs-muted)) !important;
font-size: 0.74rem !important;
font-weight: 850 !important;
letter-spacing: 0.11em !important;
text-transform: uppercase;
}
.momo-observability-mode .obs-subtitle,
.momo-observability-mode .agent-subtitle,
.momo-observability-mode .biz-command p,
.momo-observability-mode .runtime-subtitle,
.momo-observability-mode .calls-subtitle,
.momo-observability-mode .gov-subtitle,
.momo-observability-mode .gate-subtitle,
.momo-observability-mode .rag-subtitle,
.momo-observability-mode .quality-subtitle,
.momo-observability-mode .ppt-subtitle {
color: color-mix(in srgb, var(--obs-ink) 62%, var(--obs-muted)) !important;
font-size: 0.94rem !important;
line-height: 1.68 !important;
letter-spacing: 0 !important;
}
.momo-observability-mode .obs-signal,
.momo-observability-mode .agent-signal,
.momo-observability-mode .biz-signal,
.momo-observability-mode .runtime-signal,
.momo-observability-mode .calls-signal,
.momo-observability-mode .gov-signal,
.momo-observability-mode .gate-signal,
.momo-observability-mode .rag-signal,
.momo-observability-mode .quality-signal,
.momo-observability-mode .ppt-signal,
.momo-observability-mode .obs-panel,
.momo-observability-mode .agent-panel,
.momo-observability-mode .biz-panel,
.momo-observability-mode .runtime-panel,
.momo-observability-mode .calls-panel,
.momo-observability-mode .gov-panel,
.momo-observability-mode .gate-panel,
.momo-observability-mode .rag-panel,
.momo-observability-mode .quality-panel,
.momo-observability-mode .ppt-panel,
.momo-observability-mode .obs-table-shell,
.momo-observability-mode [class$="-table-shell"] {
position: relative;
border: 1px solid var(--obs-line) !important;
border-radius: var(--obs-radius-lg) !important;
background:
linear-gradient(180deg, rgba(255, 252, 247, 0.96), rgba(255, 248, 241, 0.9)),
var(--obs-dot) !important;
background-size: auto, 14px 14px !important;
box-shadow: var(--obs-shadow) !important;
}
.momo-observability-mode .obs-signal-value,
.momo-observability-mode .agent-value,
.momo-observability-mode .biz-signal .value,
.momo-observability-mode .runtime-value,
.momo-observability-mode .calls-value,
.momo-observability-mode .gov-value,
.momo-observability-mode .gate-value,
.momo-observability-mode .rag-value,
.momo-observability-mode .quality-value,
.momo-observability-mode .ppt-value {
font-size: clamp(1.55rem, 3vw, 2.25rem) !important;
line-height: 1.05 !important;
letter-spacing: -0.055em !important;
font-weight: 900 !important;
}
.momo-observability-mode .obs-panel-title,
.momo-observability-mode .agent-panel-title,
.momo-observability-mode .biz-panel-head h3,
.momo-observability-mode .runtime-panel-title,
.momo-observability-mode .calls-panel-title,
.momo-observability-mode .gov-panel-title,
.momo-observability-mode .gate-panel-title,
.momo-observability-mode .rag-panel-title,
.momo-observability-mode .quality-panel-title,
.momo-observability-mode .ppt-panel-title,
.momo-observability-mode [class$="-table-title"] h3 {
font-size: clamp(1.05rem, 2vw, 1.45rem) !important;
line-height: 1.25 !important;
letter-spacing: -0.035em !important;
}
.momo-observability-mode code,
.momo-observability-mode .momo-mono,
.momo-observability-mode table td,
.momo-observability-mode table th {
font-variant-numeric: tabular-nums;
}
.momo-observability-mode .table {
--bs-table-bg: transparent;
--bs-table-striped-bg: rgba(255, 248, 239, 0.46);
color: var(--obs-ink);
margin-bottom: 0;
font-size: 0.9rem;
}
.momo-observability-mode .table thead,
.momo-observability-mode .table-light {
--bs-table-bg: rgba(255, 248, 239, 0.9);
color: var(--obs-muted);
font-size: 0.74rem;
letter-spacing: 0.08em;
text-transform: uppercase;
}
.momo-observability-mode .table td,
.momo-observability-mode .table th {
border-color: rgba(86, 64, 48, 0.1);
vertical-align: middle;
padding: 0.78rem 0.82rem;
}
.momo-observability-mode .table-responsive {
border-radius: 18px;
overflow-x: auto;
}
.momo-observability-mode table code,
.momo-observability-mode .biz-table code {
color: #7c402e;
background: rgba(201, 100, 66, 0.08);
border-radius: 0.45rem;
padding: 0.12rem 0.36rem;
}
.momo-observability-mode .biz-panel-body.table-responsive {
max-width: 100%;
overflow-x: auto;
}
.momo-observability-mode .biz-table {
min-width: 760px;
max-width: 100%;
}
.momo-observability-mode .biz-table td,
.momo-observability-mode .biz-table th {
overflow-wrap: anywhere;
}
.momo-observability-mode .biz-table td:nth-child(3),
.momo-observability-mode .biz-table td:last-child {
max-width: 220px;
}
.momo-observability-mode .btn {
border-radius: 999px;
font-weight: 760;
letter-spacing: -0.01em;
min-height: 2.25rem;
padding-inline: 0.9rem;
box-shadow: none;
transition: transform 160ms ease, box-shadow 160ms ease, background-color 160ms ease;
}
.momo-observability-mode .btn-primary,
.momo-observability-mode .btn-warning,
.momo-observability-mode .btn-success {
border-color: var(--obs-accent) !important;
background: var(--obs-accent) !important;
color: #fff8ef !important;
}
.momo-observability-mode .btn-outline-primary,
.momo-observability-mode .btn-outline-secondary,
.momo-observability-mode .btn-outline-info,
.momo-observability-mode .btn-outline-warning,
.momo-observability-mode .btn-outline-danger,
.momo-observability-mode .btn-outline-success {
border-color: rgba(201, 100, 66, 0.34) !important;
color: var(--obs-accent) !important;
background: rgba(255, 255, 255, 0.5);
}
.momo-observability-mode .btn:hover {
transform: translateY(-1px);
box-shadow: 0 10px 22px rgba(201, 100, 66, 0.14);
}
.momo-observability-mode .badge.bg-secondary,
.momo-observability-mode .badge.bg-primary,
.momo-observability-mode .badge.bg-info {
background: rgba(79, 111, 143, 0.14) !important;
color: var(--obs-blue) !important;
}
.momo-observability-mode .badge.bg-warning {
background: rgba(184, 121, 47, 0.14) !important;
color: var(--obs-amber) !important;
}
.momo-observability-mode .badge.bg-danger {
background: rgba(185, 75, 69, 0.14) !important;
color: var(--obs-red) !important;
}
.momo-observability-mode .badge.bg-success {
background: rgba(79, 138, 91, 0.14) !important;
color: var(--obs-green) !important;
}
.momo-observability-mode .alert {
border-radius: 18px;
border-color: rgba(184, 121, 47, 0.24);
background: rgba(184, 121, 47, 0.08);
color: var(--obs-amber);
}
.momo-observability-mode .obs-empty,
.momo-observability-mode .agent-empty,
.momo-observability-mode .biz-empty,
.momo-observability-mode .runtime-empty,
.momo-observability-mode .calls-empty,
.momo-observability-mode .gov-empty,
.momo-observability-mode .gate-empty,
.momo-observability-mode .rag-empty,
.momo-observability-mode .quality-empty,
.momo-observability-mode .ppt-empty,
.momo-observability-mode .text-center.text-muted {
border: 1px dashed rgba(201, 100, 66, 0.24);
border-radius: 16px;
background:
linear-gradient(135deg, rgba(255, 248, 239, 0.74), rgba(255, 252, 247, 0.82)),
var(--obs-dot);
background-size: auto, 14px 14px;
}
.momo-observability-mode canvas {
max-width: 100%;
}
/* Data surface polish: tables, matrices, lists */
.momo-observability-mode .obs-table-shell,
.momo-observability-mode [class$="-table-shell"],
.momo-observability-mode .table-responsive {
background:
linear-gradient(180deg, rgba(255, 252, 247, 0.96), rgba(255, 248, 241, 0.9)),
var(--obs-dot);
background-size: auto, 14px 14px;
}
.momo-observability-mode .table {
border-collapse: separate;
border-spacing: 0;
}
.momo-observability-mode .table thead th {
position: relative;
background: rgba(255, 243, 232, 0.92) !important;
color: #7a5b4d !important;
border-bottom: 1px solid rgba(201, 100, 66, 0.18) !important;
font-size: 0.72rem;
font-weight: 850;
white-space: nowrap;
}
.momo-observability-mode .table tbody tr {
transition: background-color 140ms ease, transform 140ms ease;
}
.momo-observability-mode .table tbody tr:hover {
background: rgba(201, 100, 66, 0.045);
}
.momo-observability-mode .table tbody td {
color: color-mix(in srgb, var(--obs-ink) 88%, var(--obs-muted));
}
.momo-observability-mode .table td small,
.momo-observability-mode .table td .text-muted {
line-height: 1.45;
}
.momo-observability-mode .table td:last-child {
max-width: 360px;
}
.momo-observability-mode .table td:last-child small,
.momo-observability-mode .table td:last-child .text-muted {
display: inline-block;
max-width: 100%;
overflow-wrap: anywhere;
}
.momo-observability-mode .agent-table-shell .table td,
.momo-observability-mode .agent-table-shell .table th {
text-align: center;
}
.momo-observability-mode .agent-table-shell .table td:first-child,
.momo-observability-mode .agent-table-shell .table th:first-child {
text-align: left;
min-width: 190px;
}
.momo-observability-mode .agent-card,
.momo-observability-mode .rec-card,
.momo-observability-mode .fix-card,
.momo-observability-mode .root-card,
.momo-observability-mode .episode-card,
.momo-observability-mode .biz-decision-card,
.momo-observability-mode .obs-route-card {
box-shadow: 0 10px 24px rgba(70, 46, 28, 0.055);
}
.momo-observability-mode .agent-card:hover,
.momo-observability-mode .rec-card:hover,
.momo-observability-mode .fix-card:hover,
.momo-observability-mode .root-card:hover,
.momo-observability-mode .episode-card:hover,
.momo-observability-mode .biz-decision-card:hover,
.momo-observability-mode .obs-route-card:hover {
transform: translateY(-1px);
box-shadow: 0 16px 32px rgba(70, 46, 28, 0.09);
}
.momo-observability-mode .progress,
.momo-observability-mode .agent-meter {
background: rgba(86, 64, 48, 0.09) !important;
box-shadow: inset 0 1px 2px rgba(70, 46, 28, 0.08);
}
.momo-observability-mode .progress-bar {
background: linear-gradient(90deg, var(--obs-accent), #e3a65b) !important;
}
.momo-observability-mode .form-control,
.momo-observability-mode .form-select {
border-color: rgba(201, 100, 66, 0.18);
border-radius: 14px;
background-color: rgba(255, 252, 247, 0.88);
color: var(--obs-ink);
}
.momo-observability-mode .form-control:focus,
.momo-observability-mode .form-select:focus {
border-color: rgba(201, 100, 66, 0.52);
box-shadow: 0 0 0 0.2rem rgba(201, 100, 66, 0.12);
}
.momo-observability-mode .badge {
border-radius: 999px;
font-weight: 850;
letter-spacing: -0.01em;
padding: 0.36em 0.62em;
}
.momo-observability-mode .obs-chart-frame {
height: 250px;
min-height: 220px;
}
.momo-observability-mode .obs-chart-frame-tall {
height: 260px;
}
.momo-observability-mode .obs-chart-frame-slim {
height: 86px;
min-height: 72px;
}
.momo-observability-mode .obs-progress-xs {
height: 6px;
}
.momo-observability-mode .obs-progress-sm {
height: 8px;
}
.momo-observability-mode .obs-modal-preview {
border: 1px solid rgba(201, 100, 66, 0.14);
border-radius: 14px;
background:
linear-gradient(135deg, rgba(255, 252, 247, 0.94), rgba(255, 248, 241, 0.84)),
var(--obs-dot);
background-size: auto, 13px 13px;
}
.momo-observability-mode .quality-distribution-cell {
width: 200px;
}
.momo-observability-mode .budget-input {
width: 110px;
max-width: 100%;
}
.momo-observability-mode .alert-input {
width: 80px;
max-width: 100%;
}
/* Cross-page layout hardening */
.momo-observability-mode .momo-content {
overflow-x: hidden;
}
.momo-observability-mode .obs-warroom,
.momo-observability-mode .agent-page,
.momo-observability-mode .biz-warroom,
.momo-observability-mode .runtime-page,
.momo-observability-mode .calls-page,
.momo-observability-mode .gov-page,
.momo-observability-mode .gate-page,
.momo-observability-mode .rag-page,
.momo-observability-mode .quality-page,
.momo-observability-mode .ppt-page,
.momo-observability-mode .container-fluid {
max-width: 1480px;
margin-inline: auto;
}
.momo-observability-mode .obs-grid,
.momo-observability-mode .agent-grid,
.momo-observability-mode .biz-layout,
.momo-observability-mode .runtime-grid,
.momo-observability-mode .calls-grid,
.momo-observability-mode .gov-grid,
.momo-observability-mode .gate-grid,
.momo-observability-mode .rag-grid,
.momo-observability-mode .quality-grid,
.momo-observability-mode .ppt-grid {
gap: 1rem !important;
}
.momo-observability-mode .obs-command-strip,
.momo-observability-mode .agent-command,
.momo-observability-mode .biz-signal-grid,
.momo-observability-mode .runtime-command,
.momo-observability-mode .calls-command,
.momo-observability-mode .gov-command,
.momo-observability-mode .gate-command,
.momo-observability-mode .rag-command,
.momo-observability-mode .quality-command,
.momo-observability-mode .ppt-command {
align-items: stretch;
}
.momo-observability-mode .obs-signal,
.momo-observability-mode .agent-signal,
.momo-observability-mode .biz-signal,
.momo-observability-mode .runtime-signal,
.momo-observability-mode .calls-signal,
.momo-observability-mode .gov-signal,
.momo-observability-mode .gate-signal,
.momo-observability-mode .rag-signal,
.momo-observability-mode .quality-signal,
.momo-observability-mode .ppt-signal {
min-width: 0;
}
.momo-observability-mode .obs-panel-body,
.momo-observability-mode .agent-panel-body,
.momo-observability-mode .biz-panel-body,
.momo-observability-mode .runtime-panel-body,
.momo-observability-mode .calls-panel-body,
.momo-observability-mode .gov-panel-body,
.momo-observability-mode .gate-panel-body,
.momo-observability-mode .rag-panel-body,
.momo-observability-mode .quality-panel-body,
.momo-observability-mode .ppt-panel-body {
min-width: 0;
}
.momo-observability-mode [class$="-panel-head"],
.momo-observability-mode [class$="-table-title"] {
min-width: 0;
}
.momo-observability-mode [class$="-panel-head"] > div,
.momo-observability-mode [class$="-table-title"] > div {
min-width: 0;
}
.momo-observability-mode [class$="-panel-head"] p,
.momo-observability-mode [class$="-table-title"] p,
.momo-observability-mode .text-muted {
overflow-wrap: anywhere;
}
.momo-observability-mode .obs-route-card,
.momo-observability-mode .agent-card,
.momo-observability-mode .biz-decision-card,
.momo-observability-mode .rec-card,
.momo-observability-mode .fix-card,
.momo-observability-mode .root-card {
min-width: 0;
transition: transform 160ms ease, box-shadow 160ms ease, border-color 160ms ease;
}
.momo-observability-mode .obs-route-card:focus-visible,
.momo-observability-mode .btn:focus-visible,
.momo-observability-mode .form-control:focus-visible,
.momo-observability-mode .form-select:focus-visible {
outline: 3px solid rgba(201, 100, 66, 0.28);
outline-offset: 2px;
}
.momo-observability-mode .alert {
overflow-wrap: anywhere;
}
.momo-observability-mode .modal-content {
border: 1px solid var(--obs-line);
border-radius: 24px;
background: var(--obs-paper);
box-shadow: 0 24px 70px rgba(70, 46, 28, 0.18);
}
.momo-observability-mode .modal-header,
.momo-observability-mode .modal-footer {
border-color: var(--obs-line);
}
@media (max-width: 1180px) {
.momo-observability-mode .obs-grid,
.momo-observability-mode .agent-grid,
.momo-observability-mode .biz-layout,
.momo-observability-mode .runtime-grid,
.momo-observability-mode .calls-grid,
.momo-observability-mode .gov-grid,
.momo-observability-mode .gate-grid,
.momo-observability-mode .rag-grid,
.momo-observability-mode .quality-grid,
.momo-observability-mode .ppt-grid {
grid-template-columns: 1fr !important;
}
.momo-observability-mode .obs-command-strip,
.momo-observability-mode .agent-command,
.momo-observability-mode .biz-signal-grid,
.momo-observability-mode .runtime-command,
.momo-observability-mode .calls-command,
.momo-observability-mode .gov-command,
.momo-observability-mode .gate-command,
.momo-observability-mode .rag-command,
.momo-observability-mode .quality-command,
.momo-observability-mode .ppt-command {
grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}
}
@media (max-width: 768px) {
.momo-observability-mode .container-fluid {
padding-left: 0.7rem;
padding-right: 0.7rem;
}
.momo-observability-mode .momo-content {
padding-left: 0.85rem;
padding-right: 0.85rem;
}
.momo-observability-mode .table-responsive,
.momo-observability-mode .card-body.p-0 {
overflow-x: auto;
}
.momo-observability-mode .obs-title,
.momo-observability-mode .agent-title,
.momo-observability-mode .biz-command h1,
.momo-observability-mode .runtime-title,
.momo-observability-mode .calls-title,
.momo-observability-mode .gov-title,
.momo-observability-mode .gate-title,
.momo-observability-mode .rag-title,
.momo-observability-mode .quality-title,
.momo-observability-mode .ppt-title {
font-size: clamp(1.8rem, 10vw, 2.45rem) !important;
}
.momo-observability-mode .obs-command-strip,
.momo-observability-mode .agent-command,
.momo-observability-mode .biz-signal-grid,
.momo-observability-mode .runtime-command,
.momo-observability-mode .calls-command,
.momo-observability-mode .gov-command,
.momo-observability-mode .gate-command,
.momo-observability-mode .rag-command,
.momo-observability-mode .quality-command,
.momo-observability-mode .ppt-command {
grid-template-columns: 1fr !important;
}
.momo-observability-mode .obs-hero,
.momo-observability-mode .agent-hero,
.momo-observability-mode .biz-command,
.momo-observability-mode .runtime-hero,
.momo-observability-mode .calls-hero,
.momo-observability-mode .gov-hero,
.momo-observability-mode .gate-hero,
.momo-observability-mode .rag-hero,
.momo-observability-mode .quality-hero,
.momo-observability-mode .ppt-hero {
border-radius: 22px !important;
}
.momo-observability-mode .obs-panel,
.momo-observability-mode .agent-panel,
.momo-observability-mode .biz-panel,
.momo-observability-mode .runtime-panel,
.momo-observability-mode .calls-panel,
.momo-observability-mode .gov-panel,
.momo-observability-mode .gate-panel,
.momo-observability-mode .rag-panel,
.momo-observability-mode .quality-panel,
.momo-observability-mode .ppt-panel,
.momo-observability-mode [class$="-table-shell"] {
border-radius: 20px !important;
}
.momo-observability-mode .table {
font-size: 0.84rem;
}
.momo-observability-mode .btn {
min-height: 2.45rem;
}
.momo-observability-mode .momo-content::before {
left: 0;
}
}
/* v2.2 professional polish: cross-page hierarchy, tables, buttons, and dense data layouts. */
.momo-observability-mode {
--obs-surface-warm: rgba(255, 248, 238, 0.72);
--obs-surface-glass: rgba(255, 252, 246, 0.78);
--obs-focus-ring: 0 0 0 3px rgba(201, 100, 66, 0.18);
}
.momo-observability-mode .momo-content {
font-feature-settings: "tnum" 1, "kern" 1;
}
.momo-observability-mode .obs-hero,
.momo-observability-mode .agent-hero,
.momo-observability-mode .biz-command,
.momo-observability-mode .runtime-hero,
.momo-observability-mode .calls-hero,
.momo-observability-mode .gov-hero,
.momo-observability-mode .gate-hero,
.momo-observability-mode .rag-hero,
.momo-observability-mode .quality-hero,
.momo-observability-mode .ppt-hero {
background:
radial-gradient(circle at 14% 16%, rgba(201, 100, 66, 0.19), transparent 24rem),
radial-gradient(circle at 86% 10%, rgba(79, 111, 143, 0.14), transparent 24rem),
linear-gradient(135deg, rgba(255, 248, 238, 0.98), rgba(255, 252, 246, 0.82) 58%, rgba(247, 234, 219, 0.92)) !important;
}
.momo-observability-mode .obs-panel,
.momo-observability-mode .agent-panel,
.momo-observability-mode .biz-panel,
.momo-observability-mode .runtime-panel,
.momo-observability-mode .calls-panel,
.momo-observability-mode .gov-panel,
.momo-observability-mode .gate-panel,
.momo-observability-mode .rag-panel,
.momo-observability-mode .quality-panel,
.momo-observability-mode .ppt-panel,
.momo-observability-mode .card {
position: relative;
background:
linear-gradient(180deg, var(--obs-surface-glass), rgba(255, 255, 255, 0.7)) !important;
backdrop-filter: blur(10px);
}
.momo-observability-mode .obs-panel-head,
.momo-observability-mode .agent-panel-head,
.momo-observability-mode .biz-panel-head,
.momo-observability-mode .runtime-panel-head,
.momo-observability-mode .calls-panel-head,
.momo-observability-mode .gov-panel-head,
.momo-observability-mode .gate-panel-head,
.momo-observability-mode .rag-panel-head,
.momo-observability-mode .quality-panel-head,
.momo-observability-mode .ppt-panel-head,
.momo-observability-mode .card-header {
min-height: 54px;
align-items: center;
}
.momo-observability-mode .obs-panel-title,
.momo-observability-mode .agent-panel-title,
.momo-observability-mode .biz-panel-title,
.momo-observability-mode .runtime-panel-title,
.momo-observability-mode .calls-panel-title,
.momo-observability-mode .gov-panel-title,
.momo-observability-mode .gate-panel-title,
.momo-observability-mode .rag-panel-title,
.momo-observability-mode .quality-panel-title,
.momo-observability-mode .ppt-panel-title,
.momo-observability-mode .card-title {
color: var(--obs-ink) !important;
font-size: clamp(1rem, 1.35vw, 1.16rem) !important;
line-height: 1.34;
}
.momo-observability-mode .obs-value,
.momo-observability-mode .agent-value,
.momo-observability-mode .biz-value,
.momo-observability-mode .runtime-value,
.momo-observability-mode .calls-value,
.momo-observability-mode .gov-value,
.momo-observability-mode .gate-value,
.momo-observability-mode .rag-value,
.momo-observability-mode .quality-value,
.momo-observability-mode .ppt-value,
.momo-observability-mode .obs-signal-value,
.momo-observability-mode .display-4,
.momo-observability-mode .display-5,
.momo-observability-mode .h1 {
font-family: 'JetBrains Mono', 'Noto Sans TC', monospace !important;
font-size: var(--obs-value-size) !important;
font-weight: 850 !important;
letter-spacing: -0.055em !important;
}
.momo-observability-mode .table,
.momo-observability-mode table {
--bs-table-bg: transparent;
--bs-table-color: var(--obs-ink);
color: var(--obs-ink);
border-collapse: separate !important;
border-spacing: 0 0.42rem !important;
font-size: 0.9rem;
}
.momo-observability-mode .table thead th,
.momo-observability-mode table thead th {
border: 0 !important;
color: color-mix(in srgb, var(--obs-ink) 70%, var(--obs-muted)) !important;
background: transparent !important;
font-size: 0.7rem;
font-weight: 900;
letter-spacing: 0.08em;
text-transform: uppercase;
}
.momo-observability-mode .table tbody tr,
.momo-observability-mode table tbody tr {
box-shadow: 0 8px 20px rgba(70, 46, 28, 0.045);
}
.momo-observability-mode .table tbody td,
.momo-observability-mode table tbody td {
padding: 0.72rem 0.78rem !important;
border-top: 1px solid var(--obs-line) !important;
border-bottom: 1px solid var(--obs-line) !important;
background: rgba(255, 255, 255, 0.62) !important;
vertical-align: middle;
}
.momo-observability-mode .table tbody td:first-child,
.momo-observability-mode table tbody td:first-child {
border-left: 1px solid var(--obs-line) !important;
border-radius: 14px 0 0 14px;
}
.momo-observability-mode .table tbody td:last-child,
.momo-observability-mode table tbody td:last-child {
border-right: 1px solid var(--obs-line) !important;
border-radius: 0 14px 14px 0;
}
.momo-observability-mode .btn {
border-radius: 999px !important;
font-weight: 850 !important;
letter-spacing: 0.01em;
box-shadow: none !important;
}
.momo-observability-mode .btn:focus-visible,
.momo-observability-mode a:focus-visible,
.momo-observability-mode button:focus-visible {
outline: 0;
box-shadow: var(--obs-focus-ring) !important;
}
.momo-observability-mode .btn-primary,
.momo-observability-mode .btn-warning,
.momo-observability-mode .btn-danger,
.momo-observability-mode .btn-success {
color: #fff8ee !important;
border-color: transparent !important;
}
.momo-observability-mode .btn-outline-primary,
.momo-observability-mode .btn-outline-secondary,
.momo-observability-mode .btn-outline-warning,
.momo-observability-mode .btn-outline-danger,
.momo-observability-mode .btn-outline-success {
background: rgba(255, 248, 238, 0.58) !important;
border-color: rgba(201, 100, 66, 0.28) !important;
}
.momo-observability-mode .badge,
.momo-observability-mode .obs-pill,
.momo-observability-mode [class$="-pill"] {
border: 1px solid rgba(201, 100, 66, 0.18);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.5);
}
.momo-observability-mode .progress {
height: 0.62rem;
border-radius: 999px;
background: rgba(70, 46, 28, 0.08);
overflow: hidden;
}
.momo-observability-mode .list-group-item,
.momo-observability-mode .dropdown-menu,
.momo-observability-mode .modal-content,
.momo-observability-mode .alert {
border-color: var(--obs-line) !important;
background: rgba(255, 252, 246, 0.96) !important;
color: var(--obs-ink) !important;
box-shadow: 0 16px 38px rgba(70, 46, 28, 0.08);
}
.momo-observability-mode .obs-chart-frame,
.momo-observability-mode .chart-frame,
.momo-observability-mode .chart-container {
position: relative;
min-height: 240px;
padding: 0.85rem;
border: 1px solid var(--obs-line);
border-radius: 20px;
background:
radial-gradient(circle at 12px 12px, rgba(201, 100, 66, 0.13) 1px, transparent 1.35px),
rgba(255, 255, 255, 0.52);
background-size: 13px 13px, auto;
}
.momo-observability-mode canvas {
max-width: 100%;
}
@media (max-width: 992px) {
.momo-observability-mode .obs-command-strip,
.momo-observability-mode .obs-grid,
.momo-observability-mode .obs-metric-grid,
.momo-observability-mode .agent-grid,
.momo-observability-mode .biz-grid,
.momo-observability-mode .runtime-grid,
.momo-observability-mode .calls-grid,
.momo-observability-mode .gov-grid,
.momo-observability-mode .gate-grid,
.momo-observability-mode .rag-grid,
.momo-observability-mode .quality-grid,
.momo-observability-mode .ppt-grid {
grid-template-columns: 1fr !important;
}
.momo-observability-mode .obs-host-card {
grid-template-columns: 1fr !important;
}
}