Files
Cognitive_Agent/apps/web-console/self-evolution.css

1382 lines
29 KiB
CSS

/* Self-evolution journal ------------------------------------------------- */
.console-v2 .v2-self-evolution {
display: none;
}
.console-v2[data-module="self-evolution"] .main-panel {
grid-template-rows: 36px minmax(0, 1fr);
}
.console-v2[data-module="self-evolution"] .v2-operation-shell,
.console-v2[data-module="self-evolution"] .v2-output-shell {
display: none;
}
.console-v2[data-module="self-evolution"] .v2-self-evolution {
min-width: 0;
min-height: 0;
display: block;
grid-row: 2;
overflow: auto;
background:
radial-gradient(circle at 10% 0%, color-mix(in srgb, var(--v2-accent-soft) 68%, white), transparent 27%),
var(--v2-surface);
border: 1px solid color-mix(in srgb, var(--v2-accent) 14%, transparent);
border-radius: clamp(17px, 1.4vw, 24px);
box-shadow: var(--v2-shadow);
}
.v2-evolution-shell {
min-width: 820px;
min-height: 100%;
display: grid;
grid-template-rows: auto minmax(330px, 1fr) auto;
}
.v2-evolution-overview {
min-width: 0;
display: grid;
grid-template-columns: minmax(300px, 1fr) auto;
align-items: start;
gap: clamp(20px, 3vw, 48px);
padding: var(--v2-module-title-block) var(--v2-module-title-inline);
border-bottom: 1px solid var(--v2-line);
}
.v2-evolution-heading .section-kicker {
display: inline-flex;
align-items: center;
gap: 7px;
color: var(--v2-accent-strong);
font-size: 9px;
font-weight: 850;
letter-spacing: 0.18em;
}
.v2-evolution-heading .section-kicker svg {
width: 15px;
height: 15px;
}
.v2-evolution-heading h1 {
margin: 8px 0 0;
color: var(--v2-ink);
font-size: clamp(24px, 2vw, 34px);
line-height: 1.06;
letter-spacing: -0.04em;
}
.v2-evolution-heading > p {
margin: 9px 0 0;
color: var(--v2-muted);
font-size: 14px;
line-height: 1.6;
}
.v2-evolution-summary {
min-width: 430px;
display: grid;
grid-template-columns: 1.25fr repeat(3, 1fr);
margin: 0;
overflow: hidden;
background: color-mix(in srgb, var(--v2-accent-soft) 38%, white);
border: 1px solid color-mix(in srgb, var(--v2-accent) 13%, transparent);
border-radius: 14px;
}
.v2-evolution-summary > div {
min-width: 0;
display: grid;
align-content: center;
padding: 11px 14px;
border-left: 1px solid var(--v2-line);
}
.v2-evolution-summary > div:first-child {
border-left: 0;
}
.v2-evolution-summary dt,
.v2-evolution-summary small {
color: var(--v2-muted);
font-size: 8px;
font-weight: 750;
}
.v2-evolution-summary dd {
margin: 2px 0 0;
color: var(--v2-ink);
font: 850 19px/1.1 "SFMono-Regular", Consolas, "Microsoft YaHei", monospace;
}
.v2-evolution-summary .v2-evolution-current dd {
color: var(--v2-accent-strong);
}
.v2-evolution-workspace {
min-width: 0;
min-height: 0;
display: grid;
grid-template-columns: clamp(225px, 21vw, 290px) minmax(0, 1fr);
}
.v2-evolution-timeline {
min-width: 0;
padding: 20px 18px 18px 24px;
background: color-mix(in srgb, var(--v2-accent-soft) 13%, white);
border-right: 1px solid var(--v2-line);
}
.v2-evolution-timeline-heading {
padding: 0 8px 12px 15px;
}
.v2-evolution-timeline-heading span,
.v2-evolution-next small {
display: block;
color: var(--v2-accent-strong);
font-size: 8px;
font-weight: 850;
letter-spacing: 0.16em;
}
.v2-evolution-timeline-heading strong {
display: block;
margin-top: 4px;
color: var(--v2-ink);
font-size: 13px;
}
.v2-evolution-version-list {
position: relative;
display: grid;
gap: 4px;
}
.v2-evolution-version-list::before {
width: 1px;
position: absolute;
inset: 11px auto 11px 6px;
content: "";
background: color-mix(in srgb, var(--v2-accent) 24%, transparent);
}
.v2-evolution-version {
min-width: 0;
position: relative;
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
gap: 2px 10px;
padding: 8px 9px 8px 25px;
color: var(--v2-muted);
text-align: left;
background: transparent;
border: 0;
border-radius: var(--v2-sidebar-card-radius);
cursor: pointer;
}
.v2-evolution-version::before {
width: 7px;
height: 7px;
position: absolute;
top: 14px;
left: 3px;
z-index: 1;
content: "";
background: white;
border: 2px solid color-mix(in srgb, var(--v2-accent) 42%, #a8b4b4);
border-radius: 50%;
}
.v2-evolution-version:hover {
color: var(--v2-ink);
background: color-mix(in srgb, var(--v2-accent-soft) 38%, transparent);
}
.v2-evolution-version.active {
color: var(--v2-accent-strong);
background: color-mix(in srgb, var(--v2-accent-soft) 72%, white);
}
.v2-evolution-version.active::before {
background: var(--v2-accent);
border-color: white;
box-shadow: 0 0 0 4px color-mix(in srgb, var(--v2-accent) 14%, transparent);
}
.v2-evolution-version > span {
display: flex;
align-items: center;
gap: 8px;
}
.v2-evolution-version strong {
color: currentColor;
font: 850 12px/1.2 "SFMono-Regular", Consolas, monospace;
}
.v2-evolution-version time,
.v2-evolution-version small {
color: var(--v2-muted);
font-size: 8px;
}
.v2-evolution-version b {
grid-column: 1 / -1;
overflow: hidden;
color: var(--v2-ink);
font-size: 11px;
text-overflow: ellipsis;
white-space: nowrap;
}
.v2-evolution-version small {
grid-column: 2;
grid-row: 1;
align-self: center;
white-space: nowrap;
}
.v2-evolution-detail {
min-width: 0;
padding: clamp(20px, 2.2vw, 32px) clamp(24px, 2.7vw, 42px) 20px;
}
.v2-evolution-detail-heading {
display: flex;
align-items: center;
justify-content: space-between;
gap: 16px;
}
.v2-evolution-detail-heading > div {
display: flex;
align-items: center;
gap: 10px;
}
.v2-evolution-status {
padding: 4px 9px;
color: var(--v2-accent-strong);
background: var(--v2-accent-soft);
border-radius: 999px;
font-size: 10px;
font-weight: 850;
}
.v2-evolution-detail-version {
color: var(--v2-muted);
font: 800 11px/1 "SFMono-Regular", Consolas, monospace;
}
.v2-evolution-detail-heading time {
color: var(--v2-muted);
font: 750 10px/1 "SFMono-Regular", Consolas, monospace;
}
.v2-evolution-detail > h2 {
margin: 12px 0 0;
color: var(--v2-ink);
font-size: clamp(20px, 1.7vw, 28px);
line-height: 1.15;
letter-spacing: -0.035em;
}
.v2-evolution-lead {
max-width: 860px;
margin: 7px 0 0;
color: var(--v2-muted);
font-size: 11px;
line-height: 1.6;
}
.v2-evolution-detail-grid {
display: grid;
grid-template-columns: minmax(0, 1fr) minmax(240px, 0.92fr);
gap: clamp(24px, 3vw, 48px);
margin-top: 18px;
padding-top: 16px;
border-top: 1px solid var(--v2-line);
}
.v2-evolution-detail-grid h3 {
display: flex;
align-items: center;
gap: 7px;
margin: 0 0 12px;
color: var(--v2-ink);
font-size: 11px;
}
.v2-evolution-detail-grid h3 svg {
width: 14px;
height: 14px;
color: var(--v2-accent);
}
.v2-evolution-changes > div {
display: grid;
gap: 10px;
}
.v2-evolution-changes > div > div {
min-width: 0;
display: grid;
grid-template-columns: 22px minmax(0, 1fr);
gap: 9px;
}
.v2-evolution-changes > div > div > svg {
width: 22px;
height: 22px;
padding: 5px;
color: var(--v2-accent-strong);
background: var(--v2-accent-soft);
border-radius: 50%;
}
.v2-evolution-changes p {
margin: 0;
}
.v2-evolution-changes p strong,
.v2-evolution-changes p span {
display: block;
}
.v2-evolution-changes p strong {
color: var(--v2-ink);
font-size: 10px;
}
.v2-evolution-changes p span {
margin-top: 2px;
color: var(--v2-muted);
font-size: 9px;
line-height: 1.45;
}
.v2-evolution-evidence > div {
display: grid;
gap: 12px;
}
.v2-evolution-metric > div {
min-width: 0;
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
}
.v2-evolution-metric > div > span {
overflow: hidden;
color: var(--v2-ink);
font-size: 9px;
font-weight: 750;
text-overflow: ellipsis;
white-space: nowrap;
}
.v2-evolution-metric p {
display: flex;
align-items: center;
gap: 5px;
margin: 0;
white-space: nowrap;
}
.v2-evolution-metric del {
color: #98a5a6;
font-size: 8px;
text-decoration-thickness: 1px;
}
.v2-evolution-metric p svg {
width: 10px;
height: 10px;
color: var(--v2-muted);
}
.v2-evolution-metric p strong {
color: var(--v2-accent-strong);
font-size: 10px;
}
.v2-evolution-progress {
width: 100%;
height: 5px;
display: block;
margin-top: 5px;
overflow: hidden;
background: color-mix(in srgb, var(--v2-accent-soft) 50%, #e7eceb);
border-radius: 999px;
}
.v2-evolution-progress i {
width: var(--evolution-progress);
height: 100%;
display: block;
background: linear-gradient(90deg, color-mix(in srgb, var(--v2-accent) 55%, white), var(--v2-accent));
border-radius: inherit;
transition: width 220ms ease;
}
.v2-evolution-validation {
display: grid;
grid-template-columns: auto minmax(0, 1fr);
align-items: center;
gap: 14px;
margin-top: 18px;
padding-top: 14px;
border-top: 1px solid var(--v2-line);
}
.v2-evolution-module-tags {
display: flex;
flex-wrap: wrap;
gap: 5px;
}
.v2-evolution-module-tags span,
.v2-evolution-next-steps span {
padding: 4px 8px;
color: var(--v2-accent-strong);
background: color-mix(in srgb, var(--v2-accent-soft) 62%, white);
border: 1px solid color-mix(in srgb, var(--v2-accent) 12%, transparent);
border-radius: 999px;
font-size: 8px;
font-weight: 800;
white-space: nowrap;
}
.v2-evolution-validation > p {
min-width: 0;
display: flex;
align-items: center;
justify-content: flex-end;
gap: 7px;
margin: 0;
color: var(--v2-muted);
font-size: 9px;
text-align: right;
}
.v2-evolution-validation > p svg {
width: 14px;
height: 14px;
flex: 0 0 auto;
color: var(--v2-accent);
}
.console-v2 [data-evolution-scope="admin"] {
display: none;
}
.console-v2[data-demo-role="admin"] [data-evolution-scope="user"] {
display: none;
}
.console-v2[data-demo-role="admin"] [data-evolution-scope="admin"] {
display: inline;
}
.v2-evolution-next {
min-width: 0;
display: grid;
grid-template-columns: 38px minmax(280px, 1fr) auto;
align-items: center;
gap: 13px;
padding: 13px clamp(22px, 2.2vw, 34px);
background: color-mix(in srgb, var(--v2-accent-soft) 58%, white);
border-top: 1px solid color-mix(in srgb, var(--v2-accent) 15%, transparent);
}
.v2-evolution-next-icon {
width: 36px;
height: 36px;
display: grid;
place-items: center;
color: white;
background: var(--v2-accent);
border-radius: 11px;
box-shadow: 0 7px 18px color-mix(in srgb, var(--v2-accent) 22%, transparent);
}
.v2-evolution-next-icon svg {
width: 16px;
height: 16px;
}
.v2-evolution-next strong {
display: inline-block;
margin-top: 2px;
color: var(--v2-ink);
font-size: 12px;
}
.v2-evolution-next p {
display: inline;
margin: 0 0 0 8px;
color: var(--v2-muted);
font-size: 9px;
}
.v2-evolution-next-steps {
display: flex;
align-items: center;
gap: 6px;
}
.v2-evolution-next-steps svg {
width: 12px;
height: 12px;
color: var(--v2-accent);
}
/* Seat-weighing self-evolution ------------------------------------------- */
.console-v2 .v2-self-evolution {
--evolution-warning: #c4772b;
--evolution-warning-soft: #fff4e7;
}
.console-v2[data-module="self-evolution"] .v2-self-evolution {
position: relative;
overflow: hidden;
}
.v2-self-evolution .v2-evolution-shell {
height: auto;
min-width: 920px;
min-height: 0;
position: absolute;
inset: 0;
grid-template-rows: auto minmax(0, 1fr) auto;
}
.v2-self-evolution .v2-evolution-overview {
grid-template-columns: minmax(360px, 1fr) minmax(480px, 0.94fr);
align-items: center;
gap: clamp(18px, 2.2vw, 34px);
padding-block: clamp(14px, 1.8vh, 21px);
}
.v2-evolution-title-row {
display: flex;
align-items: flex-start;
gap: 14px;
}
.v2-evolution-title-row > div {
min-width: 0;
}
.v2-demo-data {
display: inline-flex;
align-items: center;
gap: 4px;
margin-top: 1px;
padding: 4px 8px;
color: var(--v2-accent-strong);
background: color-mix(in srgb, var(--v2-accent-soft) 78%, white);
border: 1px solid color-mix(in srgb, var(--v2-accent) 13%, transparent);
border-radius: 999px;
font-size: 8px;
font-weight: 800;
white-space: nowrap;
}
.v2-demo-data svg {
width: 11px;
height: 11px;
}
.v2-self-evolution .v2-evolution-heading h1 {
margin-top: 6px;
}
.v2-self-evolution .v2-evolution-heading > p {
max-width: 660px;
margin-top: 6px;
}
.v2-self-evolution .v2-evolution-summary {
width: 100%;
min-width: 0;
}
.v2-self-evolution .v2-evolution-summary > div {
padding: 10px 12px;
}
.v2-self-evolution .v2-evolution-summary dd {
font-size: clamp(16px, 1.3vw, 19px);
}
.v2-evolution-page {
min-width: 0;
min-height: 0;
overflow: hidden;
}
.v2-evolution-page[hidden],
.v2-evolution-next[hidden] {
display: none !important;
}
.v2-weighing-workspace {
min-width: 0;
height: 100%;
min-height: 0;
display: grid;
grid-template-columns: clamp(235px, 20vw, 292px) minmax(0, 1fr);
}
.v2-family-panel {
min-width: 0;
min-height: 0;
padding: 20px 16px 16px 24px;
background: color-mix(in srgb, var(--v2-accent-soft) 13%, white);
border-right: 1px solid var(--v2-line);
}
.v2-family-heading {
padding: 0 8px 12px;
}
.v2-family-heading span {
display: block;
color: var(--v2-accent-strong);
font: 850 8px/1.2 "SFMono-Regular", Consolas, monospace;
letter-spacing: 0.17em;
}
.v2-family-heading strong {
display: block;
margin-top: 5px;
color: var(--v2-ink);
font-size: 14px;
}
.v2-family-list {
position: relative;
display: grid;
gap: 4px;
}
.v2-family-list::before {
width: 1px;
position: absolute;
inset: 15px auto 15px 7px;
content: "";
background: color-mix(in srgb, var(--v2-accent) 28%, transparent);
}
.v2-family-model {
min-width: 0;
min-height: 58px;
position: relative;
display: grid;
grid-template-columns: 13px minmax(0, 1fr) auto;
align-items: center;
gap: 8px;
padding: 8px 9px 8px 2px;
color: var(--v2-muted);
text-align: left;
background: transparent;
border: 0;
border-radius: 12px;
cursor: pointer;
transition: background 160ms ease, transform 160ms ease;
}
.v2-family-model:hover {
background: color-mix(in srgb, var(--v2-accent-soft) 42%, white);
}
.v2-family-model.active {
background: color-mix(in srgb, var(--v2-accent-soft) 76%, white);
}
.v2-family-marker {
width: 9px;
height: 9px;
position: relative;
z-index: 1;
display: block;
background: white;
border: 2px solid color-mix(in srgb, var(--v2-accent) 58%, #99a9a8);
border-radius: 50%;
}
.v2-family-model.active .v2-family-marker {
background: var(--v2-accent);
border-color: white;
box-shadow: 0 0 0 5px color-mix(in srgb, var(--v2-accent) 13%, transparent);
}
.v2-family-copy {
min-width: 0;
display: grid;
gap: 4px;
}
.v2-family-copy > span {
min-width: 0;
display: flex;
align-items: center;
gap: 6px;
}
.v2-family-copy strong {
color: var(--v2-ink);
font-size: 11px;
}
.v2-family-copy em {
padding: 2px 5px;
color: var(--v2-accent-strong);
background: color-mix(in srgb, var(--v2-accent-soft) 72%, white);
border-radius: 999px;
font-size: 7px;
font-style: normal;
font-weight: 800;
white-space: nowrap;
}
.v2-family-copy em[data-model-state="cold"],
.v2-family-copy em[data-model-state="generic"] {
color: #718080;
background: #eef3f2;
}
.v2-family-copy > span > small {
color: var(--v2-muted);
font: 750 8px/1 "SFMono-Regular", Consolas, monospace;
}
.v2-family-copy > small {
overflow: hidden;
color: var(--v2-muted);
font-size: 8px;
text-overflow: ellipsis;
white-space: nowrap;
}
.v2-family-error {
display: grid;
justify-items: end;
color: var(--v2-accent-strong);
}
.v2-family-error strong {
font: 850 12px/1 "SFMono-Regular", Consolas, monospace;
}
.v2-family-error small {
margin-top: 3px;
color: var(--v2-muted);
font-size: 7px;
}
.v2-privacy-note {
display: grid;
grid-template-columns: 19px minmax(0, 1fr);
gap: 8px;
margin: 15px 8px 0;
padding: 10px;
color: var(--v2-muted);
background: rgba(255, 255, 255, 0.66);
border: 1px solid var(--v2-line);
border-radius: 10px;
}
.v2-privacy-note svg {
width: 16px;
height: 16px;
color: var(--v2-accent);
}
.v2-privacy-note p {
margin: 0;
font-size: 8px;
line-height: 1.55;
}
.v2-model-state-guide {
display: flex;
flex-wrap: wrap;
gap: 5px 9px;
margin: 11px 8px 0;
}
.v2-model-state-guide span {
display: inline-flex;
align-items: center;
gap: 4px;
color: var(--v2-muted);
font-size: 7px;
}
.v2-model-state-guide span::before {
width: 5px;
height: 5px;
content: "";
background: var(--v2-accent);
border-radius: 50%;
}
.v2-model-state-guide span[data-state="cold"]::before { background: #a3afae; }
.v2-model-state-guide span[data-state="learning"]::before { background: #d29a36; }
.v2-model-state-guide span[data-state="warning"]::before { background: var(--evolution-warning); }
.v2-weighing-detail {
min-width: 0;
min-height: 0;
padding: 18px clamp(22px, 2.4vw, 36px) 17px;
overflow: auto;
}
.v2-weighing-detail-heading,
.v2-model-title-row,
.v2-convergence-card > header,
.v2-linkage-card > header,
.v2-parameter-section > header,
.v2-model-events > header {
display: flex;
align-items: center;
justify-content: space-between;
gap: 15px;
}
.v2-weighing-detail-heading > div:first-child {
display: flex;
align-items: center;
gap: 9px;
}
.v2-model-badge {
padding: 4px 9px;
color: var(--v2-accent-strong);
background: var(--v2-accent-soft);
border-radius: 999px;
font-size: 8px;
font-weight: 850;
}
.v2-model-badge[data-model-state="learning"] {
color: #9a6818;
background: #fff3d7;
}
.v2-model-badge[data-model-state="cold"],
.v2-model-badge[data-model-state="generic"] {
color: #677575;
background: #edf2f2;
}
.v2-model-code {
color: var(--v2-muted);
font: 750 8px/1 "SFMono-Regular", Consolas, monospace;
}
.v2-home-sync {
display: grid;
justify-items: end;
gap: 3px;
}
.v2-home-sync strong {
display: flex;
align-items: center;
gap: 6px;
color: var(--v2-accent-strong);
font-size: 9px;
}
.v2-home-sync strong i {
width: 6px;
height: 6px;
background: #20a993;
border-radius: 50%;
box-shadow: 0 0 0 3px rgba(32, 169, 147, 0.1);
}
.v2-home-sync small {
color: var(--v2-muted);
font: 700 7px/1 "SFMono-Regular", Consolas, monospace;
}
.v2-model-title-row {
align-items: flex-end;
margin-top: 9px;
padding-bottom: 11px;
border-bottom: 1px solid var(--v2-line);
}
.v2-model-title-row h2 {
margin: 0;
color: var(--v2-ink);
font-size: clamp(19px, 1.55vw, 25px);
line-height: 1.15;
letter-spacing: -0.035em;
}
.v2-model-title-row p {
max-width: 700px;
margin: 5px 0 0;
color: var(--v2-muted);
font-size: 9px;
line-height: 1.5;
}
.v2-play-evolution {
min-height: 30px;
display: inline-flex;
align-items: center;
gap: 6px;
padding: 0 10px;
color: var(--v2-accent-strong);
background: color-mix(in srgb, var(--v2-accent-soft) 65%, white);
border: 1px solid color-mix(in srgb, var(--v2-accent) 15%, transparent);
border-radius: 8px;
font-size: 8px;
font-weight: 800;
cursor: pointer;
white-space: nowrap;
}
.v2-play-evolution:hover:not(:disabled) {
color: white;
background: var(--v2-accent);
}
.v2-play-evolution:disabled {
cursor: default;
opacity: 0.45;
}
.v2-play-evolution.playing svg {
animation: evolutionPulse 700ms ease-in-out infinite alternate;
}
@keyframes evolutionPulse {
to { transform: scale(1.25); }
}
.v2-play-evolution svg {
width: 12px;
height: 12px;
}
.v2-weighing-core {
min-width: 0;
display: grid;
grid-template-columns: minmax(410px, 1.75fr) minmax(235px, 0.88fr);
gap: 14px;
margin-top: 12px;
}
.v2-convergence-card,
.v2-linkage-card {
min-width: 0;
padding: 11px 12px;
background: color-mix(in srgb, var(--v2-accent-soft) 10%, white);
border: 1px solid var(--v2-line);
border-radius: 11px;
}
.v2-convergence-card h3,
.v2-linkage-card h3,
.v2-parameter-section h3,
.v2-model-events h3 {
margin: 0;
color: var(--v2-ink);
font-size: 12px;
}
.v2-chart-legend {
display: flex;
align-items: center;
gap: 13px;
}
.v2-chart-legend span {
display: inline-flex;
align-items: center;
gap: 5px;
color: var(--v2-muted);
font-size: 7px;
white-space: nowrap;
}
.v2-chart-legend span::before {
width: 14px;
height: 2px;
content: "";
background: var(--v2-accent);
}
.v2-chart-legend span[data-line="baseline"]::before { background: #9aa8a7; }
.v2-chart-legend span[data-line="target"]::before { height: 1px; background: #d97c36; }
.v2-chart-wrap {
min-height: 164px;
position: relative;
margin-top: 4px;
}
.v2-chart-wrap svg {
width: 100%;
height: auto;
display: block;
overflow: visible;
}
.v2-chart-grid line {
stroke: #e5ebea;
stroke-width: 1;
}
.v2-chart-grid text,
.v2-chart-labels text {
fill: #899897;
font: 9px "SFMono-Regular", Consolas, monospace;
}
.v2-chart-labels text { text-anchor: middle; }
.v2-baseline-line { stroke: #9aa8a7; stroke-width: 1.5; stroke-dasharray: 7 5; }
.v2-target-line { stroke: #d97c36; stroke-width: 1.4; stroke-dasharray: 5 4; }
.v2-chart-area { fill: color-mix(in srgb, var(--v2-accent-soft) 50%, transparent); }
.v2-personal-line { fill: none; stroke: var(--v2-accent); stroke-width: 4; stroke-linecap: round; stroke-linejoin: round; }
.v2-chart-point circle:not(.hit) { fill: white; stroke: var(--v2-accent); stroke-width: 3; }
.v2-chart-point.current circle:not(.hit) { fill: var(--v2-accent); stroke: white; }
.v2-chart-point .hit { fill: transparent; stroke: transparent; cursor: pointer; }
.v2-chart-point:focus { outline: none; }
.v2-chart-point:focus circle:not(.hit) { stroke-width: 5; }
.v2-current-label rect { fill: color-mix(in srgb, var(--v2-accent-soft) 88%, white); }
.v2-current-label text { fill: var(--v2-accent-strong); font: 800 9px "SFMono-Regular", Consolas, monospace; text-anchor: middle; }
.v2-chart-empty {
position: absolute;
inset: 38px 20px 20px 46px;
display: grid;
place-content: center;
justify-items: center;
gap: 5px;
color: var(--v2-muted);
background: rgba(255, 255, 255, 0.82);
border: 1px dashed var(--v2-line);
border-radius: 9px;
text-align: center;
}
.v2-chart-empty svg { width: 20px; height: 20px; color: var(--v2-accent); }
.v2-chart-empty strong { color: var(--v2-ink); font-size: 9px; }
.v2-chart-empty span { font-size: 8px; }
.v2-sample-insight {
min-height: 14px;
margin: 1px 0 0 47px;
color: var(--v2-muted);
font-size: 7px;
line-height: 1.4;
}
.v2-linkage-card > header span {
color: var(--v2-accent-strong);
font-size: 9px;
font-weight: 800;
}
.v2-linkage-card ol {
display: grid;
gap: 0;
margin: 9px 0 0;
padding: 0;
list-style: none;
}
.v2-linkage-card li {
min-width: 0;
min-height: 35px;
position: relative;
display: grid;
grid-template-columns: 21px minmax(0, 1fr) auto;
align-items: start;
gap: 7px;
}
.v2-linkage-card li::before {
width: 1px;
position: absolute;
top: 20px;
bottom: -1px;
left: 10px;
content: "";
background: color-mix(in srgb, var(--v2-accent) 20%, #dfe6e5);
}
.v2-linkage-card li:last-child::before { display: none; }
.v2-linkage-card li > span {
width: 20px;
height: 20px;
position: relative;
z-index: 1;
display: grid;
place-items: center;
color: #7d8b8a;
background: #eef3f2;
border-radius: 50%;
font: 800 10px/1 "SFMono-Regular", Consolas, monospace;
}
.v2-linkage-card li[data-step-state="done"] > span,
.v2-linkage-card li[data-step-state="active"] > span {
color: var(--v2-accent-strong);
background: var(--v2-accent-soft);
}
.v2-linkage-card li p {
min-width: 0;
display: grid;
gap: 2px;
margin: 0;
}
.v2-linkage-card li strong { color: var(--v2-ink); font-size: 11.5px; }
.v2-linkage-card li small { overflow: hidden; color: var(--v2-muted); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.v2-linkage-card li em { color: var(--v2-muted); font-size: 10px; font-style: normal; white-space: nowrap; }
.v2-linkage-card li[data-step-state="done"] em { color: var(--v2-accent-strong); }
.v2-linkage-card li[data-step-state="active"] em { color: #a77320; }
.v2-linkage-guard {
display: grid;
grid-template-columns: 17px minmax(0, 1fr);
gap: 7px;
margin-top: 5px;
padding: 7px 8px;
color: var(--v2-muted);
background: color-mix(in srgb, var(--v2-accent-soft) 30%, white);
border-radius: 8px;
}
.v2-linkage-guard svg { width: 15px; height: 15px; color: var(--v2-accent); }
.v2-linkage-guard p { display: grid; gap: 2px; margin: 0; }
.v2-linkage-guard strong { color: var(--v2-ink); font-size: 10px; }
.v2-linkage-guard span { font-size: 9.5px; line-height: 1.5; }
.v2-parameter-section {
margin-top: 11px;
}
.v2-parameter-section > header p,
.v2-model-events > header p {
margin: 0;
color: var(--v2-muted);
font-size: 9.5px;
}
.v2-parameter-grid {
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 8px;
margin-top: 7px;
}
.v2-parameter-card {
min-width: 0;
padding: 8px 9px;
background: color-mix(in srgb, var(--v2-accent-soft) 9%, white);
border: 1px solid var(--v2-line);
border-radius: 9px;
}
.v2-parameter-card > div {
min-width: 0;
display: flex;
align-items: center;
justify-content: space-between;
gap: 8px;
}
.v2-parameter-card strong {
overflow: hidden;
color: var(--v2-ink);
font-size: 11.5px;
text-overflow: ellipsis;
white-space: nowrap;
}
.v2-parameter-card > div > span {
color: var(--v2-accent-strong);
font-size: 10px;
font-weight: 850;
white-space: nowrap;
}
.v2-parameter-card > div > span[data-evolution-scope="admin"] {
align-items: center;
gap: 4px;
font: 750 9.5px/1 "SFMono-Regular", Consolas, monospace;
}
.v2-parameter-card > div > span svg { width: 9px; height: 9px; }
.v2-parameter-card > div em { color: #8e9b9a; font-style: normal; }
.v2-parameter-card > div b { color: var(--v2-accent-strong); }
.v2-parameter-card > small {
display: block;
margin-top: 4px;
overflow: hidden;
color: var(--v2-muted);
font-size: 9.5px;
text-overflow: ellipsis;
white-space: nowrap;
}
.v2-parameter-progress {
width: 100%;
height: 3px;
display: block;
margin-top: 7px;
overflow: hidden;
background: #e8efee;
border-radius: 99px;
}
.v2-parameter-progress i {
width: var(--parameter-progress);
height: 100%;
display: block;
background: var(--v2-accent);
border-radius: inherit;
}
.v2-model-events {
margin-top: 10px;
}
.v2-model-events > header {
padding-bottom: 5px;
border-bottom: 1px solid var(--v2-line);
}
.v2-model-events > div {
display: grid;
}
.v2-model-event {
min-width: 0;
display: grid;
grid-template-columns: 76px minmax(180px, 1.4fr) minmax(95px, 0.7fr) minmax(100px, 0.7fr) auto;
align-items: center;
gap: 10px;
padding: 6px 0;
color: var(--v2-muted);
border-bottom: 1px solid color-mix(in srgb, var(--v2-line) 65%, transparent);
font-size: 10px;
}
.v2-model-event:last-child { border-bottom: 0; }
.v2-model-event time { color: var(--v2-ink); font: 750 9.5px/1 "SFMono-Regular", Consolas, monospace; }
.v2-model-event strong { overflow: hidden; color: var(--v2-ink); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.v2-model-event span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.v2-model-event em { color: var(--v2-accent-strong); font-size: 10px; font-style: normal; font-weight: 800; white-space: nowrap; }
.v2-model-event.warning em { color: var(--evolution-warning); }
.v2-self-evolution .v2-evolution-next {
position: relative;
z-index: 5;
grid-template-columns: 38px minmax(280px, 1fr) minmax(140px, 190px);
padding-block: 9px;
}
.v2-milestone-progress {
display: grid;
justify-items: end;
gap: 4px;
}
.v2-milestone-progress strong {
color: var(--v2-accent-strong);
font: 850 10px/1 "SFMono-Regular", Consolas, monospace;
}
.v2-milestone-progress > span {
width: 100%;
height: 4px;
display: block;
overflow: hidden;
background: rgba(255, 255, 255, 0.8);
border-radius: 99px;
}
.v2-milestone-progress > span i {
width: 0;
height: 100%;
display: block;
background: var(--v2-accent);
border-radius: inherit;
transition: width 240ms ease;
}
.v2-milestone-progress small {
color: var(--v2-muted);
font-size: 7px;
}
.v2-self-evolution[data-evolution-view="system"] .v2-evolution-shell {
grid-template-rows: auto minmax(0, 1fr);
}
.v2-self-evolution[data-evolution-view="system"] .v2-evolution-page[data-evolution-page="system"] {
overflow: auto;
}
.v2-self-evolution[data-evolution-view="system"] .v2-evolution-workspace {
min-height: 100%;
}
.console-v2 [data-evolution-scope="admin"] {
display: none;
}
.console-v2[data-demo-role="admin"] [data-evolution-scope="user"] {
display: none;
}
.console-v2[data-demo-role="admin"] [data-evolution-scope="admin"] {
display: inline-flex;
}
@media (max-width: 1250px) {
.v2-self-evolution .v2-evolution-overview {
grid-template-columns: minmax(320px, 0.8fr) minmax(430px, 1fr);
}
.v2-weighing-core {
grid-template-columns: minmax(390px, 1.55fr) minmax(220px, 0.8fr);
}
.v2-family-panel {
padding-left: 18px;
}
}
@media (max-height: 790px) {
.v2-self-evolution .v2-evolution-overview { padding-block: 11px; }
.v2-self-evolution .v2-evolution-heading h1 { font-size: 23px; }
.v2-self-evolution .v2-evolution-heading > p { margin-top: 3px; font-size: 9px; }
.v2-family-panel { padding-top: 14px; }
.v2-family-model { min-height: 50px; }
.v2-weighing-detail { padding-top: 13px; }
.v2-chart-wrap { min-height: 145px; }
.v2-convergence-card, .v2-linkage-card { padding-block: 8px; }
.v2-linkage-card li { min-height: 32px; }
}