feat: streamline portfolio UI and support atomic record edits

This commit is contained in:
陈煜 committed 2026-10-02 18:46:25 +08:00
1 parent 932a864ed6
commit 9adf7fdbc5
26 files changed
+988 -112

No files matched your search

+152
View File
@@ -1335,3 +1335,155 @@ footer {
.calendar-panel h2 {
white-space: nowrap;
}
/* Compact cards and a calmer overview hierarchy. */
body {
-webkit-user-select: none;
user-select: none;
}
input,
textarea,
[contenteditable='true'] {
-webkit-user-select: text;
user-select: text;
}
.position-grid {
grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
gap: 12px;
}
.position-card {
padding: 14px 16px;
position: relative;
}
.position-card > div {
float: left;
margin: 0 12px 8px 0;
}
.position-card > div > svg {
display: none;
}
.position-icon {
padding: 7px;
}
.position-card h3 {
font-size: 14px;
margin: 0 0 2px;
overflow-wrap: anywhere;
}
.position-card p {
margin: 2px 0 8px;
font-size: 11px;
}
.position-card strong {
clear: both;
font-size: 19px;
line-height: 1.3;
}
.position-card small {
margin-top: 3px;
font-size: 11px;
}
.position-card .badge {
font-size: 10px;
padding: 1px 6px;
}
.picker-view-toggle {
display: inline-flex;
align-items: center;
gap: 18px;
border-radius: 8px;
}
.picker-dialog .actions {
margin: 12px 0;
}
.metric {
padding: 20px;
}
.metric.net {
background: #e9f3ed;
border-color: #a9cbb9;
}
.metric strong {
font-size: clamp(22px, 2.5vw, 32px);
}
.dashboard-grid {
grid-template-columns: minmax(0, 2fr) minmax(230px, 1fr);
gap: 16px;
}
.dashboard-grid .panel {
padding: 20px;
}
.dashboard-grid .privacy {
margin-bottom: 0;
}
.attribution summary {
cursor: pointer;
font-size: 14px;
font-weight: 600;
}
.attribution[open] summary {
margin-bottom: 16px;
}
.record-actions {
gap: 16px;
}
@media (max-width: 760px) {
.dashboard-grid {
grid-template-columns: 1fr;
}
.position-grid {
grid-template-columns: repeat(auto-fill, minmax(165px, 1fr));
gap: 8px;
}
.position-card {
padding: 12px;
}
.position-card strong {
font-size: 17px;
}
}
.metric.net {
order: -1;
}
.metrics {
grid-template-columns: 1.2fr 1fr 1fr;
}
@media (max-width: 600px) {
.metrics {
grid-template-columns: 1fr;
}
}
.metric.net {
color: #234c3b;
}
.metric.net > div,
.metric.net small {
color: #557867;
}
.overview-filters {
align-items: end;
gap: 8px;
margin-top: 16px;
}
.overview-filters label {
flex: 1;
min-width: 130px;
font-size: 11px;
}
.overview-filters input {
padding: 8px;
font-size: 12px;
}
.overview-filters select {
width: auto;
flex: 1;
min-width: 130px;
padding: 8px;
font-size: 12px;
}
.overview-filters + .muted {
font-size: 10px;
line-height: 1.5;
}