:root { --bg: #F6F1E7; --surface: #FFFDF8; --line: #ECE5D6; --line-strong: #A89E8B; --text: #211F1A; --muted: #8A8275; --faint: #A89E8B; --source: #3A352B; --source-sub: #6F6657; --query: #b45309; --query-sub: #d97706; --impl: #4D6B36; --impl-sub: #4D6B36; --output: #B4502F; --output-sub: #C45A3B; --accent: #C45A3B; --accent-weak: #F3E3DB; --shadow-card: 0 1px 2px rgba(60, 45, 20, 0.06), 0 2px 8px rgba(60, 45, 20, 0.05); --font-serif: "Noto Serif SC", "Songti SC", "STSong", serif; font-family: -apple-system, "PingFang SC", "Helvetica Neue", "Microsoft YaHei", sans-serif; color: var(--text); background: var(--bg); } * { box-sizing: border-box; } html, body { margin: 0; min-height: 100%; background: var(--bg); } body { height: 100vh; overflow: hidden; font-size: 14px; line-height: 1.5; } button, input, select { font: inherit; } a { color: inherit; text-decoration: none; } button, a { touch-action: manipulation; } button:focus-visible, a:focus-visible { outline: 3px solid #E7C8BC; outline-offset: 2px; } .app-shell { height: 100vh; background: var(--bg); } .scroll-area { height: 100%; overflow: auto; } .page-header { min-height: 52px; display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 12px 20px 8px; background: var(--surface); border-bottom: 1px solid var(--line); } .header-left, .toolbar, .brand, .toolbar-button, .icon-button, .mini-button { display: inline-flex; align-items: center; } .header-left { gap: 10px; min-width: 0; flex-wrap: wrap; } .toolbar { justify-content: flex-end; gap: 8px; } .brand { gap: 6px; color: #211F1A; font-size: 16px; font-weight: 700; white-space: nowrap; } .header-subtitle { color: var(--muted); font-size: 13px; line-height: 1.5; overflow-wrap: anywhere; } .header-summary-chips { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 4px; min-width: 0; } .header-summary-chips .chip { margin: 0; } .demand-detail-button { min-height: 26px; color: #B4502F; border-color: #E7C8BC; background: #F6ECE4; } .toolbar-button, .icon-button, .mini-button { min-height: 32px; justify-content: center; gap: 6px; border: 1px solid #D9CFBB; border-radius: 4px; color: #3A352B; background: #FFFDF8; cursor: pointer; font-size: 13px; font-weight: 600; transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease; } .toolbar-button { padding: 0 10px; } .icon-button { width: 34px; } .mini-button { min-height: 28px; padding: 0 8px; } .mini-button.ghost { color: #8A8275; background: #FBF7EF; } .toolbar-button:hover, .icon-button:hover, .mini-button:hover { color: #B4502F; border-color: #D99B82; background: #F6ECE4; } .technical-detail { display: block; margin-top: 6px; max-width: 520px; } .technical-detail.compact { max-width: 360px; } .technical-detail summary { display: inline-flex; min-height: 24px; align-items: center; justify-content: center; padding: 0 7px; border: 1px solid #fecaca; border-radius: 4px; color: #991b1b; background: #fff1f2; cursor: pointer; font-size: 13px; font-weight: 700; list-style: none; } .technical-detail summary::-webkit-details-marker { display: none; } .technical-detail-body { margin-top: 6px; padding: 8px; border: 1px solid #fecaca; border-radius: 6px; background: #fff7f7; } .technical-detail-row, .technical-attempt { display: grid; grid-template-columns: 84px minmax(0, 1fr); gap: 8px; padding: 3px 0; font-size: 13px; line-height: 1.45; } .technical-detail-row span, .technical-attempts > span { color: #8A8275; font-weight: 600; } .technical-detail-row b, .technical-attempt { min-width: 0; color: #211F1A; font-weight: 600; overflow-wrap: anywhere; } .technical-attempts { margin-top: 6px; padding-top: 6px; border-top: 1px solid #fecaca; } .technical-attempt { display: block; color: #3A352B; font-weight: 500; } .source-block, .declarations { margin: 10px 20px 0; background: #FFFDF8; border: 1px solid #ECE5D6; border-radius: 6px; } .source-block summary, .declarations summary { padding: 9px 14px; cursor: pointer; list-style: none; } .source-block summary::-webkit-details-marker, .declarations summary::-webkit-details-marker { display: none; } .source-block summary::before, .declarations summary::before { content: ">"; display: inline-block; margin-right: 7px; color: var(--faint); font-size: 10px; transform: rotate(90deg); } .source-block:not([open]) summary::before, .declarations:not([open]) summary::before { transform: rotate(0); } .source-summary, .source-body { padding: 8px 14px; color: #6F6657; line-height: 1.6; } .source-body { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; border-top: 1px solid #ECE5D6; } .decl-purpose { margin-left: 12px; color: #6F6657; font-size: 13px; } .tag-mini { display: inline-block; margin-left: 8px; padding: 1px 7px; border-radius: 3px; color: #92400e; background: #fef3c7; font-size: 12px; font-weight: 600; } .kw { color: #6d28d9; font-weight: 700; } .decl-body { display: flex; flex-wrap: wrap; gap: 14px 32px; padding: 12px 18px 14px; border-top: 1px solid #ECE5D6; } .decl-section { min-width: 260px; flex: 1 1 280px; } .decl-label { margin-bottom: 6px; padding-bottom: 4px; border-bottom: 1px dashed #ECE5D6; color: #6F6657; font-size: 12.5px; font-weight: 700; } .decl-row { color: #211F1A; font-size: 13px; line-height: 1.65; } .legend { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; margin-top: 12px; padding: 10px 20px; background: #FFFDF8; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); color: var(--muted); font-size: 12.5px; } .legend-group { display: inline-flex; } .legend-head { padding: 2px 8px; border: 0; border-radius: 3px; color: #211F1A; cursor: pointer; font-weight: 700; } .legend-group.gray .legend-head { background: #ECE5D6; } .legend-group.yellow .legend-head { background: #fde68a; } .legend-group.green .legend-head { background: #DCE7C8; } .legend-group.blue .legend-head { background: #E7C8BC; } .legend-head.off { opacity: 0.45; text-decoration: line-through; } .legend-hint { margin-left: auto; color: var(--faint); font-size: 12px; } .table-wrap { background: #FFFDF8; overflow: auto; } .ledger-layout { display: grid; grid-template-columns: 286px minmax(0, 1fr); gap: 10px; align-items: start; padding: 10px 0 24px 10px; } .ledger-layout.demand-collapsed { grid-template-columns: 42px minmax(0, 1fr); gap: 6px; } .demand-side-panel { position: sticky; top: 64px; display: grid; gap: 8px; padding: 10px; border: 1px solid #D9CFBB; border-radius: 5px; background: #FFFDF8; box-shadow: 0 1px 2px rgba(15, 23, 42, 0.05); } .demand-side-panel.collapsed { min-height: 220px; align-content: start; justify-items: center; padding: 6px 4px; } .demand-panel-head { display: flex; gap: 6px; align-items: center; justify-content: space-between; min-width: 0; } .demand-side-panel.collapsed .demand-panel-head { display: grid; justify-items: center; } .demand-panel-body { display: grid; gap: 8px; min-width: 0; } .demand-collapse-button { width: 28px; min-height: 28px; flex: 0 0 auto; } .demand-rail-label { border: 0; padding: 6px 2px; color: #3A352B; background: transparent; cursor: pointer; font-size: 13px; font-weight: 850; line-height: 1.1; writing-mode: vertical-rl; text-orientation: mixed; } .demand-rail-label:hover { color: #B4502F; } .demand-panel-meta { width: fit-content; padding: 2px 7px; border-radius: 4px; color: #6F6657; background: #ECE5D6; font-size: 12px; font-weight: 750; } .demand-inline-section { display: grid; gap: 5px; padding-top: 6px; border-top: 1px solid #ECE5D6; } .demand-inline-section > b { color: #211F1A; font-size: 12.5px; } .demand-inline-section > div { display: grid; gap: 4px; } .demand-inline-section span { color: #3A352B; font-size: 12px; line-height: 1.45; overflow-wrap: anywhere; } .ledger-table { width: max-content; min-width: 100%; border-collapse: collapse; background: #FFFDF8; table-layout: auto; font-size: 13px; } .ledger-table th, .ledger-table td { border: 1px solid var(--line); padding: 6px 8px; vertical-align: top; line-height: 1.5; } .ledger-table thead th { position: sticky; top: 0; z-index: 4; padding: 8px 6px; color: #FFFDF8; font-size: 13px; font-weight: 700; text-align: center; } .ledger-table tbody td { font-size: 13px; } .query-start-row > td { border-top: 1.5px solid var(--line-strong); } .query-video-row > td { border-top: 1px solid #ECE5D6; } .group-demand, .group-source, .sub-source { background: var(--source) !important; } .group-videos, .group-rules, .sub-videos, .sub-rules { background: var(--impl) !important; } .group-walk, .group-assets, .sub-walk, .sub-assets { background: var(--output) !important; } .sub-source { background: var(--source-sub) !important; } .sub-videos, .sub-rules { background: var(--impl-sub) !important; } .sub-walk, .sub-assets { background: var(--output-sub) !important; } .demand-cell, .source-cell { background: #FBF7EF; } .videos-cell, .rules-cell { background: #F1F4E8; } .walk-cell, .asset-cell { background: #F6ECE4; } .demand-cell, .group-demand { width: 300px; min-width: 300px; max-width: 300px; } .source-cell, .sub-source, .group-source { width: 360px; min-width: 360px; max-width: 360px; } .videos-cell { min-width: 560px; max-width: 620px; } .rules-cell { min-width: 230px; max-width: 280px; } .score-rule-button { width: max-content; color: #4D6B36; border-color: #CFE0BC; background: #EEF3E4; } .walk-cell { min-width: 230px; max-width: 260px; } .asset-cell { min-width: 160px; max-width: 200px; } .sticky-demand { position: sticky !important; left: 0; z-index: 4; } .sticky-source { position: sticky !important; left: 0; z-index: 3; } .ledger-table thead .sticky-demand { z-index: 7; } .ledger-table thead .sticky-source { z-index: 6; } .demand-cell, .group-demand, .source-cell, .sub-source, .group-source { box-shadow: 6px 0 8px -4px rgba(0, 0, 0, 0.18); } .demand-card { display: grid; gap: 7px; } .demand-card-head, .demand-meta-row { display: flex; flex-wrap: wrap; gap: 5px; align-items: center; } .demand-title { color: #211F1A; font-size: 14px; line-height: 1.45; } .demand-line { margin: 0; color: #3A352B; font-size: 12.5px; line-height: 1.55; } .demand-line b, .demand-list b { color: #211F1A; font-weight: 850; } .demand-meta-row span { padding: 2px 6px; border-radius: 4px; color: #6F6657; background: #ECE5D6; font-size: 10.5px; font-weight: 800; } .demand-list { display: grid; gap: 4px; color: #3A352B; font-size: 12.5px; line-height: 1.55; } .demand-list div { display: grid; gap: 3px; } .demand-list span { overflow-wrap: anywhere; } .demand-list em { color: var(--muted); font-style: normal; } .repeated-demand { color: #8A8275; font-size: 12.5px; font-weight: 800; text-align: center; } .idx { display: inline-block; margin-bottom: 5px; padding: 0 5px; border-radius: 3px; color: #6F6657; background: #ECE5D6; font-family: ui-monospace, "SF Mono", monospace; font-size: 10px; } .cell-stack { display: grid; gap: 5px; min-width: 0; } .score-lines { display: flex; flex-direction: column; gap: 2px; } .score-lines strong { font-size: 13px; font-weight: 600; line-height: 1.4; } .source-detail-list { display: grid; gap: 3px; } .source-kind-badge { display: inline-block; width: fit-content; padding: 5px 11px; border: 1px solid transparent; border-radius: 11px; font-size: 15px; font-weight: 800; line-height: 1.2; } .source-kind-badge.seed { color: #99462B; border-color: #F4D3C2; background: #FAE3D7; } .source-kind-badge.piaoquan { color: #8A5712; border-color: #F1DEAE; background: #FBEDCE; } .source-kind-badge.category { color: #4C6A34; border-color: #D6E5C4; background: #E6F0D9; } .source-kind-badge.unknown { color: #6F6657; border-color: #E0D8C6; background: #F0EADC; } .source-query-text { font-size: 15px; line-height: 1.45; } .query-video-count { width: fit-content; padding: 2px 7px; border-radius: 4px; color: #6F6657; background: #ECE5D6; font-size: 12px; font-weight: 750; } .title-link, .cell-stack strong { color: #211F1A; overflow-wrap: anywhere; } .title-link:hover { color: #B4502F; text-decoration: underline; } .muted { color: var(--muted); font-size: 12.5px; overflow-wrap: anywhere; } .strong-muted { color: #3A352B; font-size: 13px; font-weight: 650; line-height: 1.55; } .chip-row { display: flex; flex-wrap: wrap; gap: 4px; } .chip { display: inline-block; width: fit-content; margin: 1px 3px 1px 0; padding: 2px 9px; border-radius: 999px; color: #5A5346; background: #EDE6D6; font-size: 12.5px; line-height: 1.45; white-space: nowrap; } .chip.dark { color: #FFFDF8; background: #6F6657; } .chip.yellow { color: #8A5712; background: #FBEAC6; } .chip.green { color: #4C6A34; background: #E6F0D9; } .chip.red { color: #A2452F; background: #F7DDD4; } .chip.blue { color: #3E5C72; background: #D2E0EA; } .chip.pool { color: #2E6E63; background: #D3E9DF; } .video-strip { display: flex; gap: 6px; min-height: 74px; } .video-mini { width: 150px; min-height: 74px; display: grid; grid-template-columns: 40px 1fr; gap: 7px; padding: 6px; border: 1px solid #E6EDDC; border-radius: 4px; background: #FFFDF8; } .video-mini:hover { border-color: #BBD79A; background: #F1F4E8; } .video-thumb { width: 40px; height: 56px; display: inline-flex; align-items: center; justify-content: center; border-radius: 3px; color: #4D6B36; background: #E6EDDC; font-size: 10px; font-weight: 800; } .video-thumb.small { width: 42px; height: 50px; } .video-line-card { display: grid; grid-template-columns: 42px minmax(0, 1fr); gap: 8px; min-height: 62px; padding: 5px 6px; border: 1px solid #E6EDDC; border-radius: 4px; background: #FFFDF8; } .video-line-card:hover { border-color: #BBD79A; background: #F1F4E8; } .video-line-main { display: grid; gap: 3px; min-width: 0; } .video-line-main b { color: #211F1A; font-size: 13px; line-height: 1.45; } .video-line-main small { color: var(--muted); font-size: 12px; font-weight: 650; line-height: 1.4; } .tag-row { display: flex; flex-wrap: wrap; gap: 4px; } .tag-row em { padding: 1px 6px; border-radius: 10px; color: #4D6B36; background: #E6EDDC; font-size: 10.5px; font-style: normal; font-weight: 750; } .video-mini b { display: -webkit-box; overflow: hidden; color: #211F1A; font-size: 12.5px; -webkit-line-clamp: 2; -webkit-box-orient: vertical; } .video-mini small { display: block; margin-top: 3px; color: var(--muted); font-size: 12px; font-weight: 650; line-height: 1.45; } .cell-footer { display: flex; flex-wrap: wrap; gap: 6px; margin: 6px 0; color: var(--muted); font-size: 12.5px; } .runs-by-demand { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 12px; margin: 12px 20px 24px; align-items: start; } @media (max-width: 760px) { .runs-by-demand { grid-template-columns: 1fr; } } .rbd-demands { position: sticky; top: 64px; display: flex; flex-direction: column; gap: 8px; max-height: calc(100vh - 96px); } .rbd-search { width: 100%; } .rbd-demand-list { display: flex; flex-direction: column; gap: 6px; overflow-y: auto; } .rbd-demand { display: flex; flex-direction: column; gap: 4px; text-align: left; padding: 10px 12px; border: 1px solid #ECE5D6; border-radius: 8px; background: #FFFDF8; cursor: pointer; } .rbd-demand:hover { border-color: #E7C8BC; background: #FBF7EF; } .rbd-demand.active { border-color: #C97A57; background: #F6ECE4; } .rbd-demand strong { font-size: 14px; color: #211F1A; } .rbd-demand-meta { font-size: 13px; color: var(--muted); } .rbd-demand-platforms { display: flex; flex-wrap: wrap; gap: 4px; } .rbd-demand-time { font-size: 12.5px; color: #A89E8B; } .rbd-runs { display: flex; flex-direction: column; gap: 14px; } .rbd-runs-head { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; } .rbd-runs-head strong { font-size: 16px; } .rbd-platform { border: 1px solid #ECE5D6; border-radius: 8px; background: #FFFDF8; padding: 10px 12px; } .rbd-platform-head { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; } .rbd-run-list { display: flex; flex-direction: column; gap: 6px; } .rbd-run { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 8px 10px; border: 1px solid #ECE5D6; border-radius: 6px; background: #FBF7EF; } .rbd-run:hover { border-color: #E7C8BC; background: #FBF7EF; } .rbd-run-time { font-size: 13px; color: #211F1A; font-weight: 500; } .rbd-run-id { font-size: 12px; margin-left: auto; } .aigc-page { margin: 12px 20px 24px; display: flex; flex-direction: column; gap: 12px; } .aigc-record-list { display: flex; flex-direction: column; gap: 12px; } .aigc-record { border: 1px solid #ECE5D6; border-radius: 8px; background: #FFFDF8; padding: 12px; } .aigc-record-head { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; } .aigc-record-head strong { display: block; color: #211F1A; font-size: 16px; } .aigc-record-meta { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; } .aigc-record-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin: 12px 0; } .aigc-record-grid > div { display: flex; flex-direction: column; gap: 4px; border: 1px solid #ECE5D6; border-radius: 6px; padding: 8px; background: #FBF7EF; } .aigc-plan-list { display: flex; flex-direction: column; gap: 8px; } .aigc-plan { border: 1px solid #ECE5D6; border-radius: 6px; background: #FFFDF8; } .aigc-plan summary { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 8px 10px; cursor: pointer; } .aigc-video-list { display: flex; flex-wrap: wrap; gap: 6px; padding: 0 10px 10px; } .aigc-video-id { border: 1px solid #E2D7C4; border-radius: 6px; background: #F7F0E7; color: #3A3329; font-size: 12px; font-weight: 650; padding: 4px 6px; } @media (max-width: 900px) { .aigc-record-grid { grid-template-columns: 1fr 1fr; } } .run-list { margin: 12px 20px 24px; display: grid; gap: 8px; } .run-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 58px; padding: 10px 12px; border: 1px solid #ECE5D6; border-radius: 6px; background: #FFFDF8; } .run-row:hover { border-color: #E7C8BC; background: #FBF7EF; } .run-row strong, .run-row span { display: block; } .run-row strong { font-size: 14px; } .run-row span { color: var(--muted); font-size: 13px; } .run-row-meta { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 4px; } .state-block { margin: 14px 20px; padding: 18px; border: 1px solid #ECE5D6; border-radius: 6px; background: #FFFDF8; color: #6F6657; } .error-state { color: #991b1b; background: #fef2f2; border-color: #fecaca; } .detail-table-wrap { margin: 12px 20px 24px; overflow: auto; border: 1px solid #ECE5D6; border-radius: 6px; background: #FFFDF8; } .detail-table { width: 100%; min-width: 980px; border-collapse: collapse; font-size: 13px; } .detail-table th, .detail-table td { border: 1px solid #ECE5D6; padding: 7px 8px; vertical-align: top; line-height: 1.5; } .detail-table th { position: sticky; top: 0; z-index: 2; color: #FFFDF8; background: #6F6657; font-weight: 700; text-align: left; } .walk-lanes { display: grid; grid-template-columns: repeat(4, minmax(210px, 1fr)); gap: 10px; margin: 12px 20px; } .walk-lane { min-height: 180px; border: 1px solid #F3E3DB; border-radius: 6px; background: #F6ECE4; } .lane-head { padding: 8px 10px; color: #FFFDF8; background: #B4502F; border-radius: 5px 5px 0 0; font-size: 13px; font-weight: 700; } .walk-node { width: calc(100% - 12px); display: grid; gap: 2px; margin: 6px; padding: 7px 8px; border: 1px solid #E7C8BC; border-radius: 4px; color: #7A2E18; background: #FFFDF8; cursor: pointer; text-align: left; } .walk-node:hover { border-color: #C97A57; background: #FBF7EF; } .walk-node span, .walk-node small { color: var(--muted); overflow-wrap: anywhere; } .lane-empty { display: block; padding: 10px; } .score-list { display: grid; gap: 5px; } .score-list.roomy { gap: 8px; margin-top: 10px; } .score-row { display: grid; grid-template-columns: minmax(72px, 1fr) auto; gap: 6px; align-items: start; padding: 6px 7px; border: 1px solid #F3E3DB; border-radius: 4px; background: #FBF7EF; } .score-row span { color: #3A352B; font-size: 12.5px; } .score-row b { color: #B4502F; font-size: 13px; font-variant-numeric: tabular-nums; } .score-row small { grid-column: 1 / -1; color: var(--muted); line-height: 1.45; } .score-module-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 8px; margin-top: 10px; } .score-panel-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; } .score-decision { color: #6F6657; font-size: 13px; } .score-decision-chip { padding: 3px 12px; border-radius: 999px; font-size: 13px; font-weight: 700; } .score-decision-chip.is-pool { color: #3F5A28; background: #E6EDDC; } .score-decision-chip.is-review { color: #92400e; background: #fef3c7; } .score-decision-chip.is-reject { color: #991b1b; background: #fee2e2; } .score-decision-chip.is-tech { color: #6F6657; background: #ECE5D6; } .score-total-banner { display: flex; align-items: baseline; gap: 12px; margin: 10px 0 0; padding: 10px 12px; border: 1px solid #E7C8BC; border-radius: 5px; background: #F6ECE4; } .score-total-banner span { color: #3A352B; font-size: 13px; font-weight: 800; } .score-total-banner b { color: #211F1A; font-size: 28px; line-height: 1.1; font-variant-numeric: tabular-nums; } .score-total-banner small { color: var(--muted); font-size: 12.5px; } .score-module.score-fifty { border-color: #ddd6fe; background: #f5f3ff; } .score-module.score-fifty span { color: #5b21b6; } .score-module.score-muted { border-color: #ECE5D6; background: #FBF7EF; } .score-module.score-muted span, .score-module.score-muted b { color: #A89E8B; } .score-rule-card.score-rule-fifty { border-color: #ddd6fe; background: #f5f3ff; } .score-rule-card.score-rule-fifty h3 { color: #5b21b6; } .score-rule-card.score-rule-fifty .score-breakdown-row { border-color: #ede9fe; } .score-module { display: grid; gap: 5px; min-height: 108px; padding: 10px; border: 1px solid #F3E3DB; border-radius: 5px; background: #FBF7EF; } .score-module span { color: #3A352B; font-size: 13px; font-weight: 800; } .score-module b { color: #211F1A; font-size: 20px; line-height: 1.1; font-variant-numeric: tabular-nums; } .score-module small { color: var(--muted); font-size: 12.5px; line-height: 1.45; } .score-module em { width: fit-content; padding: 2px 6px; border-radius: 4px; color: #6F6657; background: rgba(255, 255, 255, 0.72); font-size: 12px; font-style: normal; font-weight: 750; } .score-module.score-total { border-color: #E7C8BC; background: #F6ECE4; } .score-module.score-demand { border-color: #DCE7C8; background: #F1F4E8; } .score-module.score-platform { border-color: #fde68a; background: #fffbeb; } .score-mini { max-width: 220px; color: #3A352B; font-size: 12.5px; line-height: 1.55; } .score-rule-lead { margin: 0 0 10px; padding: 8px 10px; border: 1px solid #F3E3DB; border-radius: 5px; color: #B4502F !important; background: #F6ECE4; font-size: 13px; font-weight: 700; } .score-rule-card { margin-top: 12px; padding: 10px; border: 1px solid #fde68a; border-radius: 5px; background: #fffbeb; } .score-rule-card h3 { margin: 0 0 4px; color: #713f12; font-size: 14px; } .score-rule-card p { margin: 0 0 8px; color: #6F6657; font-size: 12.5px; line-height: 1.5; } .score-breakdown-list { display: grid; gap: 6px; } .score-breakdown-row { display: grid; grid-template-columns: minmax(80px, 1fr) auto; gap: 4px 8px; padding: 7px 8px; border: 1px solid #fef3c7; border-radius: 4px; background: #FFFDF8; } .score-breakdown-row span { color: #3A352B; font-size: 13px; font-weight: 800; } .score-breakdown-row b { color: #211F1A; font-size: 13px; font-variant-numeric: tabular-nums; } .score-breakdown-row small { grid-column: 1 / -1; color: #8A8275; font-size: 12px; line-height: 1.45; } /* 原始量(该视频原始 N 赞)读起来更清楚一档;占平台/折算那行保持次级灰 */ .score-breakdown-row small.score-breakdown-raw { color: #3A352B; font-size: 12.5px; font-variant-numeric: tabular-nums; } .walk-tree-wrap { margin: 12px 20px; padding: 12px; border: 1px solid #F3E3DB; border-radius: 6px; background: #FBF7EF; } .walk-tree-root { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; padding: 8px 10px; border: 1px solid #D9CFBB; border-radius: 4px; background: #FFFDF8; } .walk-tree-root strong { color: #211F1A; } .walk-tree-root small { color: var(--muted); } .walk-tree { display: grid; gap: 8px; margin-top: 10px; } .walk-tree-node { --depth: 0; position: relative; display: grid; grid-template-columns: 18px minmax(0, 1fr); margin-left: calc(var(--depth) * 28px); } .walk-node-spine { position: relative; min-height: 100%; } .walk-node-spine::before { content: ""; position: absolute; top: -8px; bottom: -8px; left: 8px; width: 2px; background: #E7C8BC; } .walk-node-spine::after { content: ""; position: absolute; top: 18px; left: 4px; width: 10px; height: 10px; border: 2px solid #C45A3B; border-radius: 999px; background: #FFFDF8; } .walk-tree-node.skipped .walk-node-spine::after { border-color: #d97706; } .walk-node-card { display: grid; gap: 7px; padding: 9px 10px; border: 1px solid #E7C8BC; border-radius: 5px; background: #FFFDF8; } .walk-tree-node.skipped .walk-node-card { border-color: #fde68a; background: #fffbeb; } .walk-node-title, .walk-node-meta { display: flex; flex-wrap: wrap; gap: 7px; align-items: center; } .walk-node-title strong { color: #211F1A; } .walk-node-meta span { color: #6F6657; font-size: 12.5px; } .walk-node-card ul { display: grid; gap: 3px; margin: 0; padding-left: 16px; color: #3A352B; } .walk-node-card li, .walk-node-card p { overflow-wrap: anywhere; line-height: 1.5; } .walk-node-card p { margin: 0; color: var(--muted); } .walk-ledger-board { margin: 12px 20px 24px; padding: 12px; border: 1px solid #F3E3DB; border-radius: 6px; background: #FBF7EF; } .walk-ledger-root { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; padding: 9px 10px; border: 1px solid #D9CFBB; border-radius: 4px; background: #FFFDF8; } .walk-ledger-root strong { color: #211F1A; } .walk-ledger-root small { color: var(--muted); } .walk-ledger-groups { display: grid; gap: 12px; margin-top: 10px; } .walk-ledger-group, .walk-story-block { position: relative; } .walk-ledger-spine { position: relative; min-height: 100%; } .walk-ledger-spine::before { content: ""; position: absolute; top: -10px; bottom: -10px; left: 10px; width: 2px; background: #E7C8BC; } .walk-ledger-spine::after { content: ""; position: absolute; top: 19px; left: 5px; width: 12px; height: 12px; border: 2px solid #C45A3B; border-radius: 999px; background: #FFFDF8; } .walk-source-card { display: grid; gap: 10px; padding: 12px; border: 1px solid #D9CFBB; border-radius: 5px; background: #FFFDF8; } .walk-story-block { display: grid; gap: 10px; padding: 12px 12px 12px 24px; border: 1px solid #D9CFBB; border-radius: 6px; background: #FFFDF8; } .walk-story-block.level-0 { border-color: #E7C8BC; background: #FBF7EF; } .walk-story-block.level-1 { border-color: #DCE7C8; background: #F1F4E8; } .walk-story-block.level-2 { border-color: #ddd6fe; background: #FBF7EF; } .walk-story-block.level-3 { border-color: #fed7aa; background: #FFFDF8; } .walk-story-block::before { content: ""; position: absolute; top: 18px; bottom: 14px; left: 10px; width: 2px; background: #E7C8BC; } .walk-story-block.level-1::before { background: #DCE7C8; } .walk-story-block.level-2::before { background: #ddd6fe; } .walk-story-block.level-3::before { background: #fed7aa; } .walk-story-block::after { content: ""; position: absolute; top: 24px; left: 5px; width: 12px; height: 12px; border: 2px solid #C45A3B; border-radius: 999px; background: #FFFDF8; } .walk-story-block.level-1::after { border-color: #5E7E45; } .walk-story-block.level-2::after { border-color: #7c3aed; } .walk-story-block.level-3::after { border-color: #ea580c; } .walk-story-head { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 10px; align-items: start; } .walk-story-title { min-width: 0; display: grid; gap: 7px; } .walk-story-title h2 { margin: 0; color: #211F1A; font-size: 16px; font-weight: 850; line-height: 1.45; } .walk-source-kicker { width: max-content; padding: 3px 8px; border-radius: 4px; color: #6F6657; background: #ECE5D6; font-size: 12px; font-weight: 850; } .walk-story-block.level-0 .walk-source-kicker { color: #B4502F; background: #F3E3DB; } .walk-story-block.level-1 .walk-source-kicker { color: #4D6B36; background: #E6EDDC; } .walk-story-block.level-2 .walk-source-kicker { color: #6d28d9; background: #ede9fe; } .walk-story-block.level-3 .walk-source-kicker { color: #c2410c; background: #ffedd5; } .walk-source-card h2 { margin: 0; color: #211F1A; font-size: 15px; font-weight: 850; line-height: 1.45; } .walk-source-head { display: flex; flex-wrap: wrap; gap: 7px; align-items: center; } .walk-source-head strong { color: #211F1A; font-size: 15px; font-weight: 850; line-height: 1.45; } .walk-source-tags { display: flex; flex-wrap: wrap; gap: 5px; } .walk-source-tags span { padding: 2px 7px; border-radius: 999px; color: #4D6B36; background: #E6EDDC; font-size: 12px; font-weight: 800; } .walk-source-meta { display: grid; gap: 5px; color: #8A8275; font-size: 13px; line-height: 1.45; } .walk-source-meta b { display: inline-flex; min-width: 58px; margin-right: 6px; color: #3A352B; font-weight: 850; } .walk-source-facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; } .walk-fact { min-width: 0; display: grid; gap: 2px; padding: 7px 8px; border: 1px solid #ECE5D6; border-radius: 4px; background: #FBF7EF; } .walk-fact span { color: #8A8275; font-size: 12px; font-weight: 800; } .walk-fact strong { color: #211F1A; font-size: 13px; line-height: 1.35; overflow-wrap: anywhere; } .walk-fact.good { border-color: #DCE7C8; background: #F1F4E8; } .walk-fact.good strong { color: #4D6B36; } .walk-fact.warn { border-color: #fde68a; background: #fffbeb; } .walk-fact.warn strong { color: #92400e; } .walk-fact.bad { border-color: #fecaca; background: #fef2f2; } .walk-fact.bad strong { color: #b91c1c; } .walk-video-links { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; } .walk-video-links a { min-height: 28px; display: inline-flex; gap: 4px; align-items: center; padding: 4px 8px; border: 1px solid #D9CFBB; border-radius: 4px; color: #B4502F; background: #FFFDF8; font-size: 12.5px; font-weight: 800; } .walk-video-links a:hover { border-color: #D99B82; background: #F6ECE4; } .walk-video-links.compact { justify-content: flex-end; } .walk-video-links.compact a { min-height: 24px; padding: 3px 7px; } .walk-branch-list { display: grid; gap: 7px; } .walk-route-stack { display: grid; gap: 8px; } .walk-story-routes { position: relative; display: grid; gap: 8px; margin-left: 18px; padding-left: 16px; border-left: 2px solid #F3E3DB; } .walk-story-block.level-1 .walk-story-routes { border-left-color: #DCE7C8; } .walk-story-block.level-2 .walk-story-routes { border-left-color: #ddd6fe; } .walk-story-block.level-3 .walk-story-routes { border-left-color: #fed7aa; } .walk-story-routes-label { width: max-content; margin-bottom: 1px; padding: 3px 8px; border-radius: 4px; color: #B4502F; background: #F6ECE4; font-size: 12px; font-weight: 850; } .walk-story-block.level-1 .walk-story-routes-label { color: #4D6B36; background: #E6EDDC; } .walk-story-block.level-2 .walk-story-routes-label { color: #6d28d9; background: #ede9fe; } .walk-story-block.level-3 .walk-story-routes-label { color: #c2410c; background: #ffedd5; } .walk-tree-route { position: relative; display: grid; grid-template-columns: 14px minmax(0, 1fr); gap: 8px; } .walk-tree-route-dot { position: relative; } .walk-tree-route-dot::before { content: ""; position: absolute; top: 22px; left: -23px; width: 21px; height: 2px; background: #F3E3DB; } .walk-tree-route-dot::after { content: ""; position: absolute; top: 17px; left: -5px; width: 10px; height: 10px; border: 2px solid #C97A57; border-radius: 999px; background: #FFFDF8; } .walk-tree-route-body { display: grid; gap: 9px; padding: 10px 12px; border: 1px solid #F3E3DB; border-radius: 5px; background: #FBF7EF; } .walk-tree-route.tag .walk-tree-route-body { border-color: #DCE7C8; background: #F1F4E8; } .walk-tree-route.author .walk-tree-route-body { border-color: #ddd6fe; background: #f5f3ff; } .walk-tree-route.page .walk-tree-route-body { border-color: #E7C8BC; background: #F6ECE4; } .walk-tree-route.stopped .walk-tree-route-body { border-color: #fde68a; background: #fffbeb; } .walk-nested-children { display: grid; gap: 8px; margin-top: 2px; padding: 10px 0 0 18px; border-left: 2px dashed #D9CFBB; } .walk-nested-label { width: max-content; padding: 3px 8px; border-radius: 4px; color: #6F6657; background: #ECE5D6; font-size: 12px; font-weight: 850; } .walk-nested-children .walk-story-block { box-shadow: none; } .walk-route-card { display: grid; gap: 9px; padding: 10px 12px; border: 1px solid #F3E3DB; border-radius: 5px; background: #FFFDF8; } .walk-route-card.tag { border-color: #DCE7C8; background: #F1F4E8; } .walk-route-card.author { border-color: #ddd6fe; background: #f5f3ff; } .walk-route-card.page { border-color: #E7C8BC; background: #F6ECE4; } .walk-route-card.stopped { border-color: #fde68a; background: #fffbeb; } .walk-route-head { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 8px; align-items: start; } .walk-route-head strong { color: #211F1A; font-size: 14px; font-weight: 850; } .walk-route-head p { margin: 3px 0 0; color: #3A352B; font-size: 13px; font-weight: 650; line-height: 1.45; } .walk-flow { display: grid; grid-template-columns: minmax(100px, 0.8fr) 24px minmax(130px, 1fr) 24px minmax(150px, 1.1fr); gap: 6px; align-items: stretch; } .walk-flow-node { min-width: 0; display: grid; gap: 3px; padding: 8px 9px; border: 1px solid rgba(148, 163, 184, 0.55); border-radius: 4px; background: #FFFDF8; } a.walk-flow-node:hover { border-color: #D99B82; background: #FFFDF8; } .walk-flow-node span { color: #8A8275; font-size: 12px; font-weight: 850; } .walk-flow-node strong { color: #211F1A; font-size: 13px; line-height: 1.35; overflow-wrap: anywhere; } .walk-flow-node.strong { border-color: #D99B82; background: #FFFDF8; } .walk-flow-node.muted { color: #8A8275; background: rgba(255, 255, 255, 0.58); } .walk-flow-arrow { display: inline-flex; align-items: center; justify-content: center; color: #8A8275; } .walk-route-bottom { display: flex; flex-wrap: wrap; gap: 7px; align-items: center; } .walk-gate { min-height: 26px; display: inline-flex; align-items: center; padding: 4px 8px; border-radius: 4px; font-size: 13px; font-weight: 850; } .walk-gate.pass { color: #4D6B36; background: #E6EDDC; } .walk-gate.stop { color: #92400e; background: #fef3c7; } .walk-jump-button { min-height: 26px; display: inline-flex; align-items: center; padding: 4px 8px; border: 1px solid #D9CFBB; border-radius: 4px; color: #B4502F; background: #FFFDF8; font-size: 13px; font-weight: 850; } .walk-jump-button:hover { border-color: #D99B82; background: #F6ECE4; } .walk-branch-card { display: grid; gap: 7px; padding: 10px 12px; border: 1px solid #F3E3DB; border-radius: 5px; background: #FFFDF8; } .walk-branch-card.tag { border-color: #DCE7C8; background: #F1F4E8; } .walk-branch-card.author { border-color: #ddd6fe; background: #f5f3ff; } .walk-branch-card.page { border-color: #E7C8BC; background: #F6ECE4; } .walk-branch-card.asset { border-color: #DCE7C8; background: #EEF3E4; } .walk-branch-card.stop, .walk-branch-card.stopped { border-color: #fde68a; background: #fffbeb; } .walk-branch-head { display: flex; flex-wrap: wrap; gap: 7px; align-items: center; } .walk-edge-icon { width: 24px; height: 24px; display: inline-flex; align-items: center; justify-content: center; border-radius: 4px; color: #B4502F; background: #F3E3DB; } .walk-branch-card.tag .walk-edge-icon { color: #4D6B36; background: #DCE7C8; } .walk-branch-card.author .walk-edge-icon { color: #5b21b6; background: #ddd6fe; } .walk-branch-card.stop .walk-edge-icon, .walk-branch-card.stopped .walk-edge-icon { color: #92400e; background: #fde68a; } .walk-branch-head strong { color: #211F1A; } .walk-branch-summary { margin: 0; color: #3A352B; font-size: 14px; font-weight: 750; line-height: 1.55; } .walk-route-lines { display: grid; gap: 5px; color: #6F6657; font-size: 13px; line-height: 1.45; } .walk-route-lines span { overflow-wrap: anywhere; } .walk-route-lines b { display: inline-flex; min-width: 72px; margin-right: 6px; color: #211F1A; font-weight: 850; } .walk-branch-facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; } .walk-fact-card { min-width: 0; display: grid; gap: 4px; padding: 7px 8px; border: 1px solid rgba(148, 163, 184, 0.45); border-radius: 4px; background: rgba(255, 255, 255, 0.72); } .walk-fact-card span { color: #8A8275; font-size: 12px; font-weight: 800; } .walk-fact-card strong { color: #211F1A; font-size: 12.5px; line-height: 1.45; overflow-wrap: anywhere; } .walk-result-query, .walk-result-title { display: flex; flex-wrap: wrap; gap: 7px; align-items: center; color: #B4502F; font-size: 13px; font-weight: 800; } .walk-result-query { padding: 7px 8px; border: 1px solid #E7C8BC; border-radius: 4px; background: #FFFDF8; } .walk-result-query strong { color: #211F1A; } .walk-result-videos { display: grid; gap: 8px; padding-top: 2px; } .walk-result-video-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 8px; align-items: start; } .walk-result-video-card { min-width: 0; display: grid; gap: 8px; padding: 10px; border: 1px solid #ECE5D6; border-radius: 5px; background: #FFFDF8; box-shadow: 0 1px 0 rgba(15, 23, 42, 0.03); } .walk-result-video-card.good { border-color: #BBD79A; background: #F1F4E8; } .walk-result-video-card.warn { border-color: #fde68a; background: #fffbeb; } .walk-result-video-card.bad { border-color: #fecaca; background: #fef2f2; } .walk-result-video-card.has-child { grid-column: 1 / -1; background: #FFFDF8; } .walk-result-video-top { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; justify-content: space-between; } .walk-result-status, .walk-result-continue, .walk-result-stop { min-height: 24px; display: inline-flex; align-items: center; padding: 3px 7px; border-radius: 4px; font-size: 12.5px; font-weight: 850; } .walk-result-status.good { color: #4D6B36; background: #DCE7C8; } .walk-result-status.warn { color: #92400e; background: #fde68a; } .walk-result-status.bad { color: #991b1b; background: #fecaca; } .walk-result-continue { color: #B4502F; background: #F3E3DB; } .walk-result-stop { color: #8A8275; background: #ECE5D6; } .walk-result-video-title { color: #211F1A; font-size: 14px; font-weight: 850; line-height: 1.45; overflow-wrap: anywhere; } .walk-result-video-title:hover { color: #B4502F; } .walk-result-video-meta { color: #8A8275; font-size: 12.5px; font-weight: 750; } .walk-score-chips { display: flex; flex-wrap: wrap; gap: 5px; } .walk-score-chips span { min-height: 22px; display: inline-flex; align-items: center; padding: 3px 6px; border: 1px solid rgba(148, 163, 184, 0.38); border-radius: 4px; color: #3A352B; background: rgba(255, 255, 255, 0.72); font-size: 12px; font-weight: 800; } .compact-tags { gap: 4px; } .compact-tags span { font-size: 10.5px; } .walk-card-children { margin-top: 2px; padding: 10px 0 0 14px; border-left: 2px dashed #D99B82; } .walk-card-children > .walk-story-block { margin-top: 0; box-shadow: none; } .walk-stop-note { padding: 9px 10px; border: 1px dashed #fbbf24; border-radius: 5px; color: #92400e; background: #fffbeb; font-size: 13px; font-weight: 800; } .walk-result-video { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 3px 8px; align-items: center; padding: 7px 8px; border: 1px solid #ECE5D6; border-radius: 4px; background: #FFFDF8; } .walk-result-video:hover { border-color: #D99B82; background: #FBF7EF; } .walk-result-video-main { min-width: 0; display: grid; gap: 2px; } .walk-result-video-main b { color: #211F1A; font-size: 13px; line-height: 1.45; } .walk-result-video-main small { color: var(--muted); font-size: 12px; } .walk-result-video svg { grid-column: 3; grid-row: 1 / span 2; color: #A89E8B; } .walk-result-video .walk-video-links { grid-column: 2; grid-row: 1 / span 2; } .walk-result-video.single { grid-template-columns: minmax(0, 1fr); } .walk-result-video.single b { color: #211F1A; font-size: 13px; line-height: 1.45; } .walk-result-video.single small { color: var(--muted); font-size: 12px; } .walk-no-route { padding: 12px; border: 1px dashed #D9CFBB; border-radius: 5px; color: #8A8275; background: #FFFDF8; font-size: 13px; } @media (max-width: 900px) { .walk-branch-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); } .walk-story-head { grid-template-columns: 1fr; } .walk-source-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); } .walk-flow { grid-template-columns: 1fr; } .walk-flow-arrow { transform: rotate(90deg); } } @media (max-width: 520px) { .walk-branch-facts { grid-template-columns: 1fr; } .walk-source-facts { grid-template-columns: 1fr; } .walk-story-routes { margin-left: 8px; padding-left: 12px; } .walk-nested-children { padding-left: 10px; } .walk-route-head { grid-template-columns: auto minmax(0, 1fr); } .walk-route-head .chip { grid-column: 2; width: max-content; } } .video-detail-grid { display: grid; grid-template-columns: minmax(260px, 0.85fr) minmax(320px, 1.15fr); gap: 12px; margin: 12px 20px 24px; align-items: start; } @media (max-width: 760px) { .video-detail-grid { grid-template-columns: 1fr; } } .video-panel { padding: 14px; border: 1px solid #ECE5D6; border-radius: 6px; background: #FFFDF8; } .video-panel h2 { margin: 0 0 8px; color: #211F1A; font-size: 15px; } .video-panel p { color: #3A352B; line-height: 1.6; } .video-embed { width: 100%; margin-top: 12px; overflow: hidden; border: 1px solid #D9CFBB; border-radius: 4px; background: #211F1A; aspect-ratio: 9 / 16; max-height: 620px; } .video-embed iframe { width: 100%; height: 100%; display: block; border: 0; background: #211F1A; } .drawer-overlay { position: fixed; inset: 0; z-index: 100; display: none; border: 0; background: rgba(0, 0, 0, 0.35); } .drawer-overlay.open { display: block; } .drawer { position: fixed; top: 0; right: 0; bottom: 0; z-index: 101; width: 560px; max-width: 92vw; overflow-y: auto; background: #FFFDF8; box-shadow: -4px 0 16px rgba(0, 0, 0, 0.15); transform: translateX(100%); transition: transform 200ms ease-out; } .drawer.open { transform: translateX(0); } .drawer header { position: sticky; top: 0; z-index: 2; padding: 14px 18px; color: #FFFDF8; background: #3A352B; } .drawer h2 { margin: 0; padding-right: 32px; font-size: 15px; } .drawer-close { position: absolute; top: 10px; right: 12px; width: 32px; height: 32px; border: 0; color: #FFFDF8; background: transparent; cursor: pointer; } .drawer-content { padding: 14px 18px; } .business-drawer-content { display: grid; gap: 10px; } .drawer-section { padding: 12px 12px 10px; border: 1px solid #ECE5D6; border-left: 4px solid #A89E8B; border-radius: 5px; background: #FFFDF8; } .drawer-section.good { border-left-color: #5E8C6A; } .drawer-section.warn { border-left-color: #d97706; } .drawer-section.bad { border-left-color: #dc2626; } .drawer-section.info { border-left-color: #C45A3B; } .drawer-section h3 { margin: 0 0 6px; color: #211F1A; font-size: 13px; } .drawer-section p, .drawer-section li { color: #3A352B; font-size: 13px; line-height: 1.65; } .drawer-section p { margin: 0; } .drawer-section ul { margin: 0; padding-left: 16px; } @media (max-width: 760px) { body { overflow: auto; } .app-shell, .scroll-area { height: auto; min-height: 100dvh; } .page-header { align-items: flex-start; flex-direction: column; } .toolbar-button, .icon-button, .mini-button { min-height: 44px; } .icon-button { width: 44px; } .legend-hint { width: 100%; margin-left: 0; } .ledger-layout { grid-template-columns: 1fr; padding: 8px; } .ledger-layout.demand-collapsed { grid-template-columns: 1fr; } .demand-side-panel { position: static; } .demand-side-panel.collapsed { min-height: 0; justify-items: stretch; } .demand-side-panel.collapsed .demand-panel-head { display: flex; justify-content: flex-start; } .demand-rail-label { writing-mode: horizontal-tb; } .demand-cell, .group-demand, .source-cell, .sub-source, .group-source { width: 260px; min-width: 260px; max-width: 260px; } .sticky-demand, .sticky-source { position: static !important; left: auto; } .demand-cell, .group-demand, .source-cell, .sub-source, .group-source { box-shadow: none; } .walk-lanes, .video-detail-grid { grid-template-columns: 1fr; } } @media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; } } /* ===================== Walk tree (游走路线图) ===================== */ .wt-page { margin: 12px 20px 28px; } .wt-overview { position: sticky; top: 0; z-index: 5; display: flex; flex-wrap: wrap; gap: 10px 18px; align-items: center; padding: 12px 14px; margin-bottom: 12px; border: 1px solid #F3E3DB; border-radius: 8px; background: #FBF7EF; } .wt-overview-head { display: flex; flex-wrap: wrap; gap: 8px; align-items: baseline; } .wt-root-chip { padding: 2px 8px; border-radius: 4px; font-size: 12px; font-weight: 850; color: #B4502F; background: #F3E3DB; } .wt-overview-head strong { color: #211F1A; font-size: 16px; font-weight: 850; } .wt-overview-head small { color: var(--muted); font-size: 13px; } .wt-overview-stats { display: flex; flex-wrap: wrap; gap: 6px; margin-left: auto; } .wt-stat { display: inline-flex; gap: 5px; align-items: baseline; padding: 4px 9px; border: 1px solid #ECE5D6; border-radius: 999px; background: #FFFDF8; color: #6F6657; font-size: 12.5px; font-weight: 700; } .wt-stat b { color: #211F1A; font-size: 14px; font-weight: 850; } .wt-stat.go b { color: #4D6B36; } .wt-stat.stop b { color: #b45309; } .wt-controls { display: flex; gap: 6px; align-items: center; } .wt-controls-label { color: var(--muted); font-size: 12.5px; font-weight: 700; } .wt-controls button { padding: 4px 10px; border: 1px solid #D9CFBB; border-radius: 999px; background: #FFFDF8; color: #3A352B; font-size: 12.5px; font-weight: 700; cursor: pointer; } .wt-controls button:hover { border-color: #D99B82; background: #F6ECE4; color: #B4502F; } /* batch grouping (全run游走图:搜索词 → 批次 → 视频) */ .wt-group { display: grid; gap: 2px; margin-top: 12px; } .wt-group:first-child { margin-top: 0; } .wt-batch { display: grid; gap: 2px; } .wt-batch-head { display: flex; align-items: center; gap: 8px; margin: 6px 0 1px; padding: 2px 0 2px 8px; border-left: 3px solid #D9CFBB; } .wt-batch-label { font-size: 13px; font-weight: 800; color: #3A352B; } .wt-batch-count { font-size: 12.5px; font-weight: 700; color: var(--muted); } .wt-batch-gate { font-size: 12px; color: #A89E8B; } .wt-batch-videos { display: grid; gap: 2px; margin-left: 8px; } /* tree */ .wt-tree { display: grid; gap: 2px; } .wt-branch { display: grid; gap: 2px; } .wt-children { margin-left: 16px; padding-left: 6px; border-left: 1px solid #ECE5D6; display: grid; gap: 2px; } .wt-row { display: flex; gap: 8px; align-items: center; min-height: 38px; padding: 5px 10px 5px 4px; border: 1px solid transparent; border-radius: 6px; background: #FFFDF8; } .wt-row:hover { background: #FBF7EF; border-color: #ECE5D6; } .wt-row.video { border-left: 3px solid #D9CFBB; } .wt-row.video.good { border-left-color: #5E7E45; } .wt-row.video.warn { border-left-color: #f59e0b; } .wt-row.video.bad { border-left-color: #ef4444; } .wt-row.video.tech { border-left-color: #8A8275; } .wt-row.route.go { background: #F1F4E8; } .wt-row.route.stop { background: #FFFDF8; } .wt-toggle { flex: 0 0 auto; width: 22px; height: 22px; display: inline-flex; align-items: center; justify-content: center; border: none; border-radius: 4px; background: transparent; color: #8A8275; cursor: pointer; } .wt-toggle:hover { background: #ECE5D6; color: #211F1A; } .wt-toggle.empty { cursor: default; } .wt-row-main { flex: 1 1 auto; min-width: 0; display: flex; gap: 8px; align-items: center; padding: 0; border: none; background: transparent; text-align: left; cursor: pointer; font: inherit; } .wt-summary-trigger { flex: 0 0 auto; display: inline-flex; gap: 8px; align-items: center; padding: 2px; border: none; border-radius: 4px; background: transparent; cursor: pointer; } .wt-summary-trigger:hover { background: #ECE5D6; } .wt-dot { flex: 0 0 auto; width: 8px; height: 8px; border-radius: 999px; background: #D9CFBB; } .wt-dot.good { background: #5E7E45; } .wt-dot.warn { background: #f59e0b; } .wt-dot.bad { background: #ef4444; } .wt-dot.tech { background: #8A8275; } .wt-kicker { flex: 0 0 auto; padding: 1px 6px; border-radius: 4px; color: #6F6657; background: #ECE5D6; font-size: 10.5px; font-weight: 800; } .wt-edge-icon { flex: 0 0 auto; display: inline-flex; color: #6F6657; } .wt-row.route.tag .wt-edge-icon { color: #4D6B36; } .wt-row.route.author .wt-edge-icon { color: #7c3aed; } .wt-row.route.page .wt-edge-icon { color: #C45A3B; } .wt-title { flex: 0 1 auto; min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; color: #211F1A; font-size: 14px; font-weight: 750; } .wt-title-link { text-decoration: none; } .wt-title-link:hover { color: #B4502F; text-decoration: underline; text-underline-offset: 3px; } .wt-title.route { flex: 0 0 auto; max-width: 320px; } .wt-newquery { flex: 0 0 auto; color: #B4502F; font-size: 13px; font-weight: 750; } .wt-author { flex: 0 0 auto; color: #8A8275; font-size: 13px; max-width: 130px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; } .wt-score { flex: 0 0 auto; color: #3A352B; font-size: 13px; font-weight: 800; } .wt-status { flex: 0 0 auto; padding: 1px 8px; border-radius: 999px; font-size: 12px; font-weight: 800; color: #6F6657; background: #ECE5D6; } .wt-status.good { color: #4D6B36; background: #E6EDDC; } .wt-status.warn { color: #92400e; background: #fef3c7; } .wt-status.bad { color: #b91c1c; background: #fee2e2; } .wt-status.tech { color: #3A352B; background: #ECE5D6; } .wt-walk { flex: 0 0 auto; padding: 1px 8px; border-radius: 999px; font-size: 12px; font-weight: 800; } .wt-walk.go { color: #4D6B36; background: #E6EDDC; } .wt-walk.stop { color: #92400e; background: #fef3c7; } .wt-reason { flex: 0 1 auto; min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; color: #94782e; font-size: 12.5px; } .wt-row-right { flex: 0 0 auto; display: flex; gap: 6px; align-items: center; } .wt-badge { padding: 2px 8px; border-radius: 999px; font-size: 12px; font-weight: 800; color: #6F6657; background: #EFE9DC; border: 1px solid #ECE5D6; } .wt-badge.go { color: #4D6B36; background: #F1F4E8; border-color: #DCE7C8; } .wt-badge.stop { color: #b45309; background: #fffbeb; border-color: #fde68a; } .wt-badge.muted { color: #A89E8B; background: #FBF7EF; } .wt-links { display: inline-flex; gap: 6px; } .wt-link { display: inline-flex; gap: 3px; align-items: center; padding: 3px 8px; border: 1px solid #D9CFBB; border-radius: 4px; color: #B4502F; background: #FFFDF8; font-size: 12px; font-weight: 700; } .wt-link:hover { border-color: #D99B82; background: #F6ECE4; } @media (max-width: 720px) { .wt-page { margin: 10px 10px 24px; } .wt-author, .wt-reason { display: none; } .wt-overview-stats { margin-left: 0; } } /* 暖调改版:衬线标题(思源宋体)+ 英雄数字。只用于标题层,密集表格/列表仍无衬线。 */ .brand span, .app-shell h2, .video-panel h2, .source-query-text, .rbd-demand strong, .rbd-runs-head strong, .demand-title, .wt-overview-head strong, .drawer header h2, .score-total-banner b { font-family: var(--font-serif); font-weight: 600; letter-spacing: 0.2px; } /* 暖调改版:柔阴影 + 大圆角承担层次,弱化硬边框 */ .video-panel, .rbd-demand, .rbd-platform, .demand-side-panel, .score-rule-card, .score-total-banner { box-shadow: var(--shadow-card); border-radius: 12px; } .rbd-demand, .video-panel, .score-module, .rbd-platform { border-color: var(--line); }