318 lines
8.9 KiB
CSS
318 lines
8.9 KiB
CSS
:root {
|
|
--bg: #f4f6f9;
|
|
--panel: #ffffff;
|
|
--panel-soft: #f9fafc;
|
|
--line: #e6ebf2;
|
|
--text: #172033;
|
|
--text-soft: #5f6b85;
|
|
--brand: #1958d6;
|
|
--brand-soft: #edf3ff;
|
|
--success: #0f8c62;
|
|
--danger: #c84242;
|
|
--radius-lg: 20px;
|
|
--radius-md: 14px;
|
|
--radius-sm: 10px;
|
|
--shadow: 0 12px 40px rgba(18, 30, 67, 0.08);
|
|
}
|
|
|
|
* { box-sizing: border-box; }
|
|
html, body { margin: 0; min-height: 100%; font-family: "Noto Sans SC", sans-serif; background: var(--bg); color: var(--text); }
|
|
button, input, select, textarea { font: inherit; }
|
|
button { cursor: pointer; }
|
|
a { color: var(--brand); text-decoration: none; }
|
|
|
|
.system-shell { min-height: 100vh; display: grid; grid-template-columns: 220px minmax(0, 1fr); }
|
|
.main-nav {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 10px;
|
|
padding: 24px 18px;
|
|
background: linear-gradient(180deg, #14213f 0%, #1e305d 100%);
|
|
color: #fff;
|
|
}
|
|
.brand { font-size: 22px; font-weight: 800; margin-bottom: 14px; }
|
|
.nav-btn {
|
|
border: 1px solid transparent;
|
|
background: rgba(255, 255, 255, 0.08);
|
|
color: #eef3ff;
|
|
border-radius: 14px;
|
|
padding: 12px 14px;
|
|
text-align: left;
|
|
}
|
|
.nav-btn.active { background: #fff; color: var(--brand); }
|
|
.nav-btn.danger { margin-top: auto; color: #ffd2d2; border-color: rgba(255,255,255,0.1); }
|
|
|
|
.main-panel { padding: 22px; }
|
|
.content-shell { display: grid; gap: 18px; }
|
|
.content-shell.two-col, .content-shell.operator-layout { grid-template-columns: 320px minmax(0, 1fr); }
|
|
.content-shell.single-col { grid-template-columns: 1fr; }
|
|
|
|
.left-pane, .right-pane, .editor-card, .stats-card {
|
|
background: var(--panel);
|
|
border: 1px solid var(--line);
|
|
border-radius: var(--radius-lg);
|
|
box-shadow: var(--shadow);
|
|
}
|
|
|
|
.left-pane, .right-pane { padding: 18px; }
|
|
.right-pane { display: grid; gap: 18px; align-content: start; }
|
|
.editor-card { padding: 18px; }
|
|
|
|
.pane-head {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
gap: 16px;
|
|
margin-bottom: 16px;
|
|
}
|
|
.pane-head h2, .timeline-head h3 { margin: 0; font-size: 20px; }
|
|
.pane-actions, .editor-actions, .template-toolbar, .query-bar, .inline-select, .sub-tabs { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
|
|
.muted-line { margin: 6px 0 0; color: var(--text-soft); font-size: 13px; }
|
|
|
|
.scroll-list { display: grid; gap: 12px; max-height: calc(100vh - 150px); overflow: auto; padding-right: 4px; }
|
|
.list-card {
|
|
width: 100%;
|
|
border: 1px solid var(--line);
|
|
background: var(--panel-soft);
|
|
border-radius: var(--radius-md);
|
|
padding: 14px;
|
|
display: grid;
|
|
gap: 6px;
|
|
text-align: left;
|
|
color: var(--text);
|
|
}
|
|
.list-card.active { border-color: var(--brand); background: var(--brand-soft); }
|
|
.list-card span { color: var(--text-soft); font-size: 13px; }
|
|
|
|
.primary-btn, .ghost-btn, .sub-tab {
|
|
border-radius: 12px;
|
|
padding: 10px 14px;
|
|
border: 1px solid transparent;
|
|
}
|
|
.primary-btn { background: var(--brand); color: #fff; }
|
|
.ghost-btn, .sub-tab { background: var(--panel-soft); color: var(--text); border-color: var(--line); }
|
|
.danger-btn { color: var(--danger); }
|
|
.sub-tab.active { background: var(--brand-soft); color: var(--brand); border-color: #cadeff; }
|
|
|
|
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
|
|
.form-grid.compact { grid-template-columns: repeat(2, minmax(0, 1fr)); }
|
|
.field { display: flex; flex-direction: column; gap: 8px; }
|
|
.field.full { grid-column: 1 / -1; }
|
|
.field label { font-size: 13px; font-weight: 700; color: var(--text-soft); }
|
|
.field input, .field select, .field textarea {
|
|
width: 100%;
|
|
border: 1px solid #d6deea;
|
|
border-radius: 12px;
|
|
background: #fff;
|
|
color: var(--text);
|
|
padding: 11px 12px;
|
|
min-height: 44px;
|
|
}
|
|
.field textarea { min-height: 110px; resize: vertical; }
|
|
.field input:disabled, .field select:disabled, .field textarea:disabled { background: #f3f5f8; color: #79859e; }
|
|
|
|
.switch { position: relative; width: 54px; height: 32px; }
|
|
.switch input { opacity: 0; width: 0; height: 0; }
|
|
.switch span {
|
|
position: absolute;
|
|
inset: 0;
|
|
background: #cdd6e4;
|
|
border-radius: 999px;
|
|
transition: 0.2s ease;
|
|
}
|
|
.switch span::before {
|
|
content: "";
|
|
position: absolute;
|
|
width: 22px;
|
|
height: 22px;
|
|
left: 5px;
|
|
top: 5px;
|
|
border-radius: 50%;
|
|
background: #fff;
|
|
transition: 0.2s ease;
|
|
box-shadow: 0 4px 12px rgba(23, 32, 51, 0.18);
|
|
}
|
|
.switch input:checked + span { background: var(--brand); }
|
|
.switch input:checked + span::before { transform: translateX(22px); }
|
|
|
|
.template-toolbar { margin: 16px 0; }
|
|
.inline-select select { min-width: 180px; }
|
|
.node-strip {
|
|
display: flex;
|
|
gap: 10px;
|
|
flex-wrap: wrap;
|
|
padding: 6px 0 2px;
|
|
}
|
|
.node-pill {
|
|
display: grid;
|
|
gap: 4px;
|
|
min-width: 160px;
|
|
padding: 14px;
|
|
border: 1px solid var(--line);
|
|
background: var(--panel-soft);
|
|
border-radius: 16px;
|
|
text-align: left;
|
|
}
|
|
.node-pill.active { border-color: var(--brand); background: var(--brand-soft); }
|
|
.pill-order { color: var(--brand); font-size: 12px; font-weight: 800; }
|
|
.pill-name { font-weight: 700; }
|
|
.pill-tag { color: var(--text-soft); font-size: 12px; }
|
|
|
|
.readonly-tip {
|
|
margin-bottom: 16px;
|
|
padding: 12px 14px;
|
|
border-radius: 12px;
|
|
background: #fff6e9;
|
|
color: #8d5a16;
|
|
border: 1px solid #f2ddbb;
|
|
}
|
|
.field-list { display: grid; gap: 12px; margin-top: 16px; }
|
|
.field-card {
|
|
border: 1px solid var(--line);
|
|
border-radius: 16px;
|
|
background: var(--panel-soft);
|
|
padding: 14px;
|
|
}
|
|
|
|
.progress-strip {
|
|
display: flex;
|
|
gap: 12px;
|
|
overflow: auto;
|
|
padding-bottom: 4px;
|
|
}
|
|
.progress-step {
|
|
min-width: 132px;
|
|
border: 1px solid var(--line);
|
|
background: var(--panel-soft);
|
|
border-radius: 16px;
|
|
padding: 12px;
|
|
text-align: left;
|
|
display: grid;
|
|
gap: 6px;
|
|
}
|
|
.progress-step.active { border-color: var(--brand); background: var(--brand-soft); }
|
|
.progress-step.done .step-index { background: var(--success); }
|
|
.step-index {
|
|
width: 26px;
|
|
height: 26px;
|
|
border-radius: 50%;
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
background: var(--brand);
|
|
color: #fff;
|
|
font-size: 12px;
|
|
font-weight: 800;
|
|
}
|
|
.step-name { font-size: 13px; font-weight: 700; }
|
|
|
|
.chips { display: flex; flex-wrap: wrap; gap: 10px; }
|
|
.chip-check {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
padding: 8px 10px;
|
|
border-radius: 999px;
|
|
background: var(--panel-soft);
|
|
border: 1px solid var(--line);
|
|
}
|
|
|
|
.consumer-tabs { display: flex; gap: 10px; margin-bottom: 16px; }
|
|
.consumer-shell {
|
|
background: linear-gradient(180deg, #fefefe 0%, #f5f7fb 100%);
|
|
border: 1px solid var(--line);
|
|
border-radius: 22px;
|
|
padding: 22px;
|
|
}
|
|
.consumer-topbar { margin-bottom: 18px; }
|
|
.consumer-topbar h2 { margin: 0; }
|
|
.consumer-topbar p { margin: 8px 0 0; color: var(--text-soft); }
|
|
|
|
.timeline-v2 { display: grid; gap: 0; }
|
|
.timeline-row { display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: 14px; }
|
|
.timeline-rail {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
position: relative;
|
|
}
|
|
.timeline-dot {
|
|
width: 16px;
|
|
height: 16px;
|
|
border-radius: 50%;
|
|
background: #c7d2e7;
|
|
border: 4px solid #eef3ff;
|
|
z-index: 1;
|
|
margin-top: 18px;
|
|
}
|
|
.timeline-dot.active { background: var(--brand); }
|
|
.timeline-line {
|
|
width: 2px;
|
|
flex: 1;
|
|
background: linear-gradient(180deg, #bdd0ff 0%, #e0e8f6 100%);
|
|
margin-top: 8px;
|
|
}
|
|
.timeline-body {
|
|
margin-bottom: 18px;
|
|
padding: 18px;
|
|
border-radius: 18px;
|
|
border: 1px solid var(--line);
|
|
background: #fff;
|
|
}
|
|
.timeline-head span { display: block; margin-top: 8px; color: var(--text-soft); font-size: 13px; }
|
|
.timeline-grid, .materials-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
gap: 12px;
|
|
margin-top: 16px;
|
|
}
|
|
.kv-card {
|
|
padding: 14px;
|
|
border-radius: 14px;
|
|
background: var(--panel-soft);
|
|
border: 1px solid var(--line);
|
|
display: grid;
|
|
gap: 6px;
|
|
}
|
|
.kv-card span { color: var(--text-soft); font-size: 12px; }
|
|
.kv-card strong { font-size: 14px; word-break: break-word; }
|
|
.material-card {
|
|
border: 1px solid var(--line);
|
|
background: #fff;
|
|
border-radius: 18px;
|
|
padding: 18px;
|
|
}
|
|
|
|
.stats-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
|
|
.stats-card {
|
|
padding: 26px;
|
|
display: grid;
|
|
gap: 14px;
|
|
}
|
|
.stats-card span { color: var(--text-soft); }
|
|
.stats-card strong { font-size: 40px; line-height: 1; }
|
|
|
|
.empty-panel {
|
|
min-height: 180px;
|
|
border: 1px dashed #cfd7e4;
|
|
border-radius: 16px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
color: var(--text-soft);
|
|
background: var(--panel-soft);
|
|
}
|
|
|
|
@media (max-width: 1080px) {
|
|
.system-shell, .content-shell.two-col, .content-shell.operator-layout { grid-template-columns: 1fr; }
|
|
.main-nav { flex-direction: row; flex-wrap: wrap; align-items: center; }
|
|
.nav-btn.danger { margin-top: 0; margin-left: auto; }
|
|
}
|
|
|
|
@media (max-width: 760px) {
|
|
.main-panel { padding: 14px; }
|
|
.form-grid, .form-grid.compact, .timeline-grid, .materials-grid, .stats-grid { grid-template-columns: 1fr; }
|
|
.timeline-row { grid-template-columns: 28px minmax(0, 1fr); gap: 10px; }
|
|
.node-pill, .progress-step { min-width: 120px; }
|
|
}
|