전략평가 화면 전략 일괄평가 기능

This commit is contained in:
Macbook
2026-06-19 20:26:59 +09:00
parent 994a2024c7
commit cc30d317ec
8 changed files with 683 additions and 21 deletions
+176 -1
View File
@@ -167,6 +167,9 @@
}
.seval-left-panel {
display: flex;
flex-direction: column;
min-height: 0;
height: 100%;
}
@@ -213,6 +216,54 @@
overflow-y: auto;
}
.seval-left-panel-header {
display: flex;
align-items: center;
justify-content: space-between;
gap: 8px;
flex-shrink: 0;
padding: 2px 2px 10px;
margin-bottom: 2px;
border-bottom: 1px solid var(--btd-divider, var(--se-border));
}
.seval-left-panel-title {
margin: 0;
font-size: 1.05rem;
font-weight: 800;
line-height: 1.2;
background: var(--se-title-gradient, linear-gradient(90deg, var(--se-gold), #ffe566));
-webkit-background-clip: text;
background-clip: text;
-webkit-text-fill-color: transparent;
color: transparent;
white-space: nowrap;
}
.seval-left-panel-toolbar {
display: inline-flex;
align-items: center;
gap: 6px;
margin-left: auto;
flex-shrink: 0;
}
.seval-strategy-add-btn--panel {
margin-bottom: 0;
width: 30px;
height: 30px;
}
.btd-header--seval-summary {
justify-content: flex-end;
min-height: 44px;
}
.btd-header--seval-summary:empty,
.btd-header--seval-summary .seval-header-analysis:empty {
display: none;
}
.seval-left-tabs-row {
display: flex;
align-items: flex-end;
@@ -220,6 +271,15 @@
flex-shrink: 0;
}
.seval-left-tabs-row-end {
display: flex;
align-items: center;
gap: 6px;
margin-left: auto;
flex-shrink: 0;
margin-bottom: 6px;
}
.seval-left-tabs-row .btd-exec-tabs {
flex: 1;
min-width: 0;
@@ -948,9 +1008,123 @@
.seval-header-analysis {
flex: 1;
justify-content: flex-end;
align-items: center;
gap: 10px;
min-width: 0;
}
.seval-bulk-eval-toolbar {
display: inline-flex;
align-items: center;
gap: 6px;
flex-shrink: 0;
}
.seval-bulk-eval-mode {
font-size: 0.68rem;
padding: 4px 8px;
border-radius: 6px;
border: 1px solid var(--se-border, #30363d);
background: var(--se-input-bg, var(--bg2));
color: var(--se-text, var(--text));
cursor: pointer;
}
.seval-bulk-eval-mode:disabled {
opacity: 0.55;
cursor: not-allowed;
}
.seval-bulk-eval-btn {
display: inline-flex;
align-items: center;
justify-content: center;
width: 30px;
height: 30px;
padding: 0;
border-radius: 6px;
border: 1px solid var(--se-border, #30363d);
background: var(--se-input-bg, var(--bg2));
color: var(--se-text-muted);
cursor: pointer;
transition: border-color 0.15s, color 0.15s, background 0.15s;
}
.seval-bulk-eval-btn:hover:not(:disabled) {
border-color: var(--btd-gold, var(--se-gold));
color: var(--btd-gold, var(--se-gold));
}
.seval-bulk-eval-btn:disabled {
opacity: 0.4;
cursor: not-allowed;
}
.seval-bulk-eval-btn--running {
border-color: color-mix(in srgb, var(--btd-gold, var(--se-gold)) 45%, var(--se-border));
}
.seval-bulk-eval-btn-spinner,
.seval-bulk-item-spinner {
width: 14px;
height: 14px;
}
.seval-bulk-item-badge {
flex-shrink: 0;
font-size: 0.62rem;
font-weight: 700;
font-variant-numeric: tabular-nums;
white-space: nowrap;
}
.seval-bulk-item-returns {
display: flex;
flex-direction: column;
align-items: flex-end;
gap: 2px;
flex-shrink: 0;
}
.seval-bulk-item-return-label {
font-size: 0.58rem;
font-weight: 600;
opacity: 0.75;
margin-right: 3px;
}
.seval-bulk-item-return {
flex-shrink: 0;
font-size: 0.68rem;
font-weight: 700;
font-variant-numeric: tabular-nums;
white-space: nowrap;
background: none;
padding: 0;
border: none;
line-height: 1.2;
}
.seval-bulk-item-return--zero {
color: #ffffff;
}
.seval-bulk-item-return--pos {
color: #b6ff5a;
}
.seval-bulk-item-return--neg {
color: #ff4444;
}
.seval-bulk-item-badge--loading {
display: inline-flex;
align-items: center;
justify-content: center;
width: 22px;
height: 18px;
}
.seval-header-analysis-busy {
font-size: 0.72rem;
color: var(--se-text-muted);
@@ -985,7 +1159,8 @@
}
.seval-analysis-return--pos strong {
color: #3fb950;
color: #b6ff5a;
text-shadow: 0 0 8px color-mix(in srgb, #b6ff5a 35%, transparent);
}
.seval-analysis-return--neg strong {