globals.css 55 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370
  1. :root {
  2. --bg: #F6F1E7;
  3. --surface: #FFFDF8;
  4. --line: #ECE5D6;
  5. --line-strong: #A89E8B;
  6. --text: #211F1A;
  7. --muted: #8A8275;
  8. --faint: #A89E8B;
  9. --source: #3A352B;
  10. --source-sub: #6F6657;
  11. --query: #b45309;
  12. --query-sub: #d97706;
  13. --impl: #4D6B36;
  14. --impl-sub: #4D6B36;
  15. --output: #B4502F;
  16. --output-sub: #C45A3B;
  17. --accent: #C45A3B;
  18. --accent-weak: #F3E3DB;
  19. --shadow-card: 0 1px 2px rgba(60, 45, 20, 0.06), 0 2px 8px rgba(60, 45, 20, 0.05);
  20. --font-serif: "Noto Serif SC", "Songti SC", "STSong", serif;
  21. font-family: -apple-system, "PingFang SC", "Helvetica Neue", "Microsoft YaHei", sans-serif;
  22. color: var(--text);
  23. background: var(--bg);
  24. }
  25. * {
  26. box-sizing: border-box;
  27. }
  28. html,
  29. body {
  30. margin: 0;
  31. min-height: 100%;
  32. background: var(--bg);
  33. }
  34. body {
  35. height: 100vh;
  36. overflow: hidden;
  37. font-size: 14px;
  38. line-height: 1.5;
  39. }
  40. button,
  41. input,
  42. select {
  43. font: inherit;
  44. }
  45. a {
  46. color: inherit;
  47. text-decoration: none;
  48. }
  49. button,
  50. a {
  51. touch-action: manipulation;
  52. }
  53. button:focus-visible,
  54. a:focus-visible {
  55. outline: 3px solid #E7C8BC;
  56. outline-offset: 2px;
  57. }
  58. .app-shell {
  59. height: 100vh;
  60. background: var(--bg);
  61. }
  62. .scroll-area {
  63. height: 100%;
  64. overflow: auto;
  65. }
  66. .page-header {
  67. min-height: 52px;
  68. display: flex;
  69. align-items: center;
  70. justify-content: space-between;
  71. gap: 14px;
  72. padding: 12px 20px 8px;
  73. background: var(--surface);
  74. border-bottom: 1px solid var(--line);
  75. }
  76. .header-left,
  77. .toolbar,
  78. .brand,
  79. .toolbar-button,
  80. .icon-button,
  81. .mini-button {
  82. display: inline-flex;
  83. align-items: center;
  84. }
  85. .header-left {
  86. gap: 10px;
  87. min-width: 0;
  88. flex-wrap: wrap;
  89. }
  90. .toolbar {
  91. justify-content: flex-end;
  92. gap: 8px;
  93. }
  94. .brand {
  95. gap: 6px;
  96. color: #211F1A;
  97. font-size: 16px;
  98. font-weight: 700;
  99. white-space: nowrap;
  100. }
  101. .header-subtitle {
  102. color: var(--muted);
  103. font-size: 13px;
  104. line-height: 1.5;
  105. overflow-wrap: anywhere;
  106. }
  107. .header-summary-chips {
  108. display: inline-flex;
  109. flex-wrap: wrap;
  110. align-items: center;
  111. gap: 4px;
  112. min-width: 0;
  113. }
  114. .header-summary-chips .chip {
  115. margin: 0;
  116. }
  117. .demand-detail-button {
  118. min-height: 26px;
  119. color: #B4502F;
  120. border-color: #E7C8BC;
  121. background: #F6ECE4;
  122. }
  123. .toolbar-button,
  124. .icon-button,
  125. .mini-button {
  126. min-height: 32px;
  127. justify-content: center;
  128. gap: 6px;
  129. border: 1px solid #D9CFBB;
  130. border-radius: 4px;
  131. color: #3A352B;
  132. background: #FFFDF8;
  133. cursor: pointer;
  134. font-size: 13px;
  135. font-weight: 600;
  136. transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease;
  137. }
  138. .toolbar-button {
  139. padding: 0 10px;
  140. }
  141. .icon-button {
  142. width: 34px;
  143. }
  144. .mini-button {
  145. min-height: 28px;
  146. padding: 0 8px;
  147. }
  148. .mini-button.ghost {
  149. color: #8A8275;
  150. background: #FBF7EF;
  151. }
  152. .toolbar-button:hover,
  153. .icon-button:hover,
  154. .mini-button:hover {
  155. color: #B4502F;
  156. border-color: #D99B82;
  157. background: #F6ECE4;
  158. }
  159. .technical-detail {
  160. display: block;
  161. margin-top: 6px;
  162. max-width: 520px;
  163. }
  164. .technical-detail.compact {
  165. max-width: 360px;
  166. }
  167. .technical-detail summary {
  168. display: inline-flex;
  169. min-height: 24px;
  170. align-items: center;
  171. justify-content: center;
  172. padding: 0 7px;
  173. border: 1px solid #fecaca;
  174. border-radius: 4px;
  175. color: #991b1b;
  176. background: #fff1f2;
  177. cursor: pointer;
  178. font-size: 13px;
  179. font-weight: 700;
  180. list-style: none;
  181. }
  182. .technical-detail summary::-webkit-details-marker {
  183. display: none;
  184. }
  185. .technical-detail-body {
  186. margin-top: 6px;
  187. padding: 8px;
  188. border: 1px solid #fecaca;
  189. border-radius: 6px;
  190. background: #fff7f7;
  191. }
  192. .technical-detail-row,
  193. .technical-attempt {
  194. display: grid;
  195. grid-template-columns: 84px minmax(0, 1fr);
  196. gap: 8px;
  197. padding: 3px 0;
  198. font-size: 13px;
  199. line-height: 1.45;
  200. }
  201. .technical-detail-row span,
  202. .technical-attempts > span {
  203. color: #8A8275;
  204. font-weight: 600;
  205. }
  206. .technical-detail-row b,
  207. .technical-attempt {
  208. min-width: 0;
  209. color: #211F1A;
  210. font-weight: 600;
  211. overflow-wrap: anywhere;
  212. }
  213. .technical-attempts {
  214. margin-top: 6px;
  215. padding-top: 6px;
  216. border-top: 1px solid #fecaca;
  217. }
  218. .technical-attempt {
  219. display: block;
  220. color: #3A352B;
  221. font-weight: 500;
  222. }
  223. .source-block,
  224. .declarations {
  225. margin: 10px 20px 0;
  226. background: #FFFDF8;
  227. border: 1px solid #ECE5D6;
  228. border-radius: 6px;
  229. }
  230. .source-block summary,
  231. .declarations summary {
  232. padding: 9px 14px;
  233. cursor: pointer;
  234. list-style: none;
  235. }
  236. .source-block summary::-webkit-details-marker,
  237. .declarations summary::-webkit-details-marker {
  238. display: none;
  239. }
  240. .source-block summary::before,
  241. .declarations summary::before {
  242. content: ">";
  243. display: inline-block;
  244. margin-right: 7px;
  245. color: var(--faint);
  246. font-size: 10px;
  247. transform: rotate(90deg);
  248. }
  249. .source-block:not([open]) summary::before,
  250. .declarations:not([open]) summary::before {
  251. transform: rotate(0);
  252. }
  253. .source-summary,
  254. .source-body {
  255. padding: 8px 14px;
  256. color: #6F6657;
  257. line-height: 1.6;
  258. }
  259. .source-body {
  260. display: flex;
  261. flex-wrap: wrap;
  262. align-items: center;
  263. gap: 8px;
  264. border-top: 1px solid #ECE5D6;
  265. }
  266. .decl-purpose {
  267. margin-left: 12px;
  268. color: #6F6657;
  269. font-size: 13px;
  270. }
  271. .tag-mini {
  272. display: inline-block;
  273. margin-left: 8px;
  274. padding: 1px 7px;
  275. border-radius: 3px;
  276. color: #92400e;
  277. background: #fef3c7;
  278. font-size: 12px;
  279. font-weight: 600;
  280. }
  281. .kw {
  282. color: #6d28d9;
  283. font-weight: 700;
  284. }
  285. .decl-body {
  286. display: flex;
  287. flex-wrap: wrap;
  288. gap: 14px 32px;
  289. padding: 12px 18px 14px;
  290. border-top: 1px solid #ECE5D6;
  291. }
  292. .decl-section {
  293. min-width: 260px;
  294. flex: 1 1 280px;
  295. }
  296. .decl-label {
  297. margin-bottom: 6px;
  298. padding-bottom: 4px;
  299. border-bottom: 1px dashed #ECE5D6;
  300. color: #6F6657;
  301. font-size: 12.5px;
  302. font-weight: 700;
  303. }
  304. .decl-row {
  305. color: #211F1A;
  306. font-size: 13px;
  307. line-height: 1.65;
  308. }
  309. .legend {
  310. display: flex;
  311. flex-wrap: wrap;
  312. align-items: center;
  313. gap: 6px 12px;
  314. margin-top: 12px;
  315. padding: 10px 20px;
  316. background: #FFFDF8;
  317. border-top: 1px solid var(--line);
  318. border-bottom: 1px solid var(--line);
  319. color: var(--muted);
  320. font-size: 12.5px;
  321. }
  322. .legend-group {
  323. display: inline-flex;
  324. }
  325. .legend-head {
  326. padding: 2px 8px;
  327. border: 0;
  328. border-radius: 3px;
  329. color: #211F1A;
  330. cursor: pointer;
  331. font-weight: 700;
  332. }
  333. .legend-group.gray .legend-head {
  334. background: #ECE5D6;
  335. }
  336. .legend-group.yellow .legend-head {
  337. background: #fde68a;
  338. }
  339. .legend-group.green .legend-head {
  340. background: #DCE7C8;
  341. }
  342. .legend-group.blue .legend-head {
  343. background: #E7C8BC;
  344. }
  345. .legend-head.off {
  346. opacity: 0.45;
  347. text-decoration: line-through;
  348. }
  349. .legend-hint {
  350. margin-left: auto;
  351. color: var(--faint);
  352. font-size: 12px;
  353. }
  354. .table-wrap {
  355. background: #FFFDF8;
  356. overflow: auto;
  357. }
  358. .ledger-layout {
  359. display: grid;
  360. grid-template-columns: 286px minmax(0, 1fr);
  361. gap: 10px;
  362. align-items: start;
  363. padding: 10px 0 24px 10px;
  364. }
  365. .ledger-layout.demand-collapsed {
  366. grid-template-columns: 42px minmax(0, 1fr);
  367. gap: 6px;
  368. }
  369. .demand-side-panel {
  370. position: sticky;
  371. top: 64px;
  372. display: grid;
  373. gap: 8px;
  374. padding: 10px;
  375. border: 1px solid #D9CFBB;
  376. border-radius: 5px;
  377. background: #FFFDF8;
  378. box-shadow: 0 1px 2px rgba(15, 23, 42, 0.05);
  379. }
  380. .demand-side-panel.collapsed {
  381. min-height: 220px;
  382. align-content: start;
  383. justify-items: center;
  384. padding: 6px 4px;
  385. }
  386. .demand-panel-head {
  387. display: flex;
  388. gap: 6px;
  389. align-items: center;
  390. justify-content: space-between;
  391. min-width: 0;
  392. }
  393. .demand-side-panel.collapsed .demand-panel-head {
  394. display: grid;
  395. justify-items: center;
  396. }
  397. .demand-panel-body {
  398. display: grid;
  399. gap: 8px;
  400. min-width: 0;
  401. }
  402. .demand-collapse-button {
  403. width: 28px;
  404. min-height: 28px;
  405. flex: 0 0 auto;
  406. }
  407. .demand-rail-label {
  408. border: 0;
  409. padding: 6px 2px;
  410. color: #3A352B;
  411. background: transparent;
  412. cursor: pointer;
  413. font-size: 13px;
  414. font-weight: 850;
  415. line-height: 1.1;
  416. writing-mode: vertical-rl;
  417. text-orientation: mixed;
  418. }
  419. .demand-rail-label:hover {
  420. color: #B4502F;
  421. }
  422. .demand-panel-meta {
  423. width: fit-content;
  424. padding: 2px 7px;
  425. border-radius: 4px;
  426. color: #6F6657;
  427. background: #ECE5D6;
  428. font-size: 12px;
  429. font-weight: 750;
  430. }
  431. .demand-inline-section {
  432. display: grid;
  433. gap: 5px;
  434. padding-top: 6px;
  435. border-top: 1px solid #ECE5D6;
  436. }
  437. .demand-inline-section > b {
  438. color: #211F1A;
  439. font-size: 12.5px;
  440. }
  441. .demand-inline-section > div {
  442. display: grid;
  443. gap: 4px;
  444. }
  445. .demand-inline-section span {
  446. color: #3A352B;
  447. font-size: 12px;
  448. line-height: 1.45;
  449. overflow-wrap: anywhere;
  450. }
  451. .ledger-table {
  452. width: max-content;
  453. min-width: 100%;
  454. border-collapse: collapse;
  455. background: #FFFDF8;
  456. table-layout: auto;
  457. font-size: 13px;
  458. }
  459. .ledger-table th,
  460. .ledger-table td {
  461. border: 1px solid var(--line);
  462. padding: 6px 8px;
  463. vertical-align: top;
  464. line-height: 1.5;
  465. }
  466. .ledger-table thead th {
  467. position: sticky;
  468. top: 0;
  469. z-index: 4;
  470. padding: 8px 6px;
  471. color: #FFFDF8;
  472. font-size: 13px;
  473. font-weight: 700;
  474. text-align: center;
  475. }
  476. .ledger-table tbody td {
  477. font-size: 13px;
  478. }
  479. .query-start-row > td {
  480. border-top: 1.5px solid var(--line-strong);
  481. }
  482. .query-video-row > td {
  483. border-top: 1px solid #ECE5D6;
  484. }
  485. .group-demand,
  486. .group-source,
  487. .sub-source {
  488. background: var(--source) !important;
  489. }
  490. .group-videos,
  491. .group-rules,
  492. .sub-videos,
  493. .sub-rules {
  494. background: var(--impl) !important;
  495. }
  496. .group-walk,
  497. .group-assets,
  498. .sub-walk,
  499. .sub-assets {
  500. background: var(--output) !important;
  501. }
  502. .sub-source {
  503. background: var(--source-sub) !important;
  504. }
  505. .sub-videos,
  506. .sub-rules {
  507. background: var(--impl-sub) !important;
  508. }
  509. .sub-walk,
  510. .sub-assets {
  511. background: var(--output-sub) !important;
  512. }
  513. .demand-cell,
  514. .source-cell {
  515. background: #FBF7EF;
  516. }
  517. .videos-cell,
  518. .rules-cell {
  519. background: #F1F4E8;
  520. }
  521. .walk-cell,
  522. .asset-cell {
  523. background: #F6ECE4;
  524. }
  525. .demand-cell,
  526. .group-demand {
  527. width: 300px;
  528. min-width: 300px;
  529. max-width: 300px;
  530. }
  531. .source-cell,
  532. .sub-source,
  533. .group-source {
  534. width: 360px;
  535. min-width: 360px;
  536. max-width: 360px;
  537. }
  538. .videos-cell {
  539. min-width: 560px;
  540. max-width: 620px;
  541. }
  542. .rules-cell {
  543. min-width: 230px;
  544. max-width: 280px;
  545. }
  546. .score-rule-button {
  547. width: max-content;
  548. color: #4D6B36;
  549. border-color: #CFE0BC;
  550. background: #EEF3E4;
  551. }
  552. .walk-cell {
  553. min-width: 230px;
  554. max-width: 260px;
  555. }
  556. .asset-cell {
  557. min-width: 160px;
  558. max-width: 200px;
  559. }
  560. .sticky-demand {
  561. position: sticky !important;
  562. left: 0;
  563. z-index: 4;
  564. }
  565. .sticky-source {
  566. position: sticky !important;
  567. left: 0;
  568. z-index: 3;
  569. }
  570. .ledger-table thead .sticky-demand {
  571. z-index: 7;
  572. }
  573. .ledger-table thead .sticky-source {
  574. z-index: 6;
  575. }
  576. .demand-cell,
  577. .group-demand,
  578. .source-cell,
  579. .sub-source,
  580. .group-source {
  581. box-shadow: 6px 0 8px -4px rgba(0, 0, 0, 0.18);
  582. }
  583. .demand-card {
  584. display: grid;
  585. gap: 7px;
  586. }
  587. .demand-card-head,
  588. .demand-meta-row {
  589. display: flex;
  590. flex-wrap: wrap;
  591. gap: 5px;
  592. align-items: center;
  593. }
  594. .demand-title {
  595. color: #211F1A;
  596. font-size: 14px;
  597. line-height: 1.45;
  598. }
  599. .demand-line {
  600. margin: 0;
  601. color: #3A352B;
  602. font-size: 12.5px;
  603. line-height: 1.55;
  604. }
  605. .demand-line b,
  606. .demand-list b {
  607. color: #211F1A;
  608. font-weight: 850;
  609. }
  610. .demand-meta-row span {
  611. padding: 2px 6px;
  612. border-radius: 4px;
  613. color: #6F6657;
  614. background: #ECE5D6;
  615. font-size: 10.5px;
  616. font-weight: 800;
  617. }
  618. .demand-list {
  619. display: grid;
  620. gap: 4px;
  621. color: #3A352B;
  622. font-size: 12.5px;
  623. line-height: 1.55;
  624. }
  625. .demand-list div {
  626. display: grid;
  627. gap: 3px;
  628. }
  629. .demand-list span {
  630. overflow-wrap: anywhere;
  631. }
  632. .demand-list em {
  633. color: var(--muted);
  634. font-style: normal;
  635. }
  636. .repeated-demand {
  637. color: #8A8275;
  638. font-size: 12.5px;
  639. font-weight: 800;
  640. text-align: center;
  641. }
  642. .idx {
  643. display: inline-block;
  644. margin-bottom: 5px;
  645. padding: 0 5px;
  646. border-radius: 3px;
  647. color: #6F6657;
  648. background: #ECE5D6;
  649. font-family: ui-monospace, "SF Mono", monospace;
  650. font-size: 10px;
  651. }
  652. .cell-stack {
  653. display: grid;
  654. gap: 5px;
  655. min-width: 0;
  656. }
  657. .score-lines {
  658. display: flex;
  659. flex-direction: column;
  660. gap: 2px;
  661. }
  662. .score-lines strong {
  663. font-size: 13px;
  664. font-weight: 600;
  665. line-height: 1.4;
  666. }
  667. .source-detail-list {
  668. display: grid;
  669. gap: 3px;
  670. }
  671. .source-kind-badge {
  672. display: inline-block;
  673. width: fit-content;
  674. padding: 5px 11px;
  675. border: 1px solid transparent;
  676. border-radius: 11px;
  677. font-size: 15px;
  678. font-weight: 800;
  679. line-height: 1.2;
  680. }
  681. .source-kind-badge.seed {
  682. color: #99462B;
  683. border-color: #F4D3C2;
  684. background: #FAE3D7;
  685. }
  686. .source-kind-badge.piaoquan {
  687. color: #8A5712;
  688. border-color: #F1DEAE;
  689. background: #FBEDCE;
  690. }
  691. .source-kind-badge.category {
  692. color: #4C6A34;
  693. border-color: #D6E5C4;
  694. background: #E6F0D9;
  695. }
  696. .source-kind-badge.unknown {
  697. color: #6F6657;
  698. border-color: #E0D8C6;
  699. background: #F0EADC;
  700. }
  701. .source-query-text {
  702. font-size: 15px;
  703. line-height: 1.45;
  704. }
  705. .query-video-count {
  706. width: fit-content;
  707. padding: 2px 7px;
  708. border-radius: 4px;
  709. color: #6F6657;
  710. background: #ECE5D6;
  711. font-size: 12px;
  712. font-weight: 750;
  713. }
  714. .title-link,
  715. .cell-stack strong {
  716. color: #211F1A;
  717. overflow-wrap: anywhere;
  718. }
  719. .title-link:hover {
  720. color: #B4502F;
  721. text-decoration: underline;
  722. }
  723. .muted {
  724. color: var(--muted);
  725. font-size: 12.5px;
  726. overflow-wrap: anywhere;
  727. }
  728. .strong-muted {
  729. color: #3A352B;
  730. font-size: 13px;
  731. font-weight: 650;
  732. line-height: 1.55;
  733. }
  734. .chip-row {
  735. display: flex;
  736. flex-wrap: wrap;
  737. gap: 4px;
  738. }
  739. .chip {
  740. display: inline-block;
  741. width: fit-content;
  742. margin: 1px 3px 1px 0;
  743. padding: 2px 9px;
  744. border-radius: 999px;
  745. color: #5A5346;
  746. background: #EDE6D6;
  747. font-size: 12.5px;
  748. line-height: 1.45;
  749. white-space: nowrap;
  750. }
  751. .chip.dark {
  752. color: #FFFDF8;
  753. background: #6F6657;
  754. }
  755. .chip.yellow {
  756. color: #8A5712;
  757. background: #FBEAC6;
  758. }
  759. .chip.green {
  760. color: #4C6A34;
  761. background: #E6F0D9;
  762. }
  763. .chip.red {
  764. color: #A2452F;
  765. background: #F7DDD4;
  766. }
  767. .chip.blue {
  768. color: #3E5C72;
  769. background: #D2E0EA;
  770. }
  771. .chip.pool {
  772. color: #2E6E63;
  773. background: #D3E9DF;
  774. }
  775. .video-strip {
  776. display: flex;
  777. gap: 6px;
  778. min-height: 74px;
  779. }
  780. .video-mini {
  781. width: 150px;
  782. min-height: 74px;
  783. display: grid;
  784. grid-template-columns: 40px 1fr;
  785. gap: 7px;
  786. padding: 6px;
  787. border: 1px solid #E6EDDC;
  788. border-radius: 4px;
  789. background: #FFFDF8;
  790. }
  791. .video-mini:hover {
  792. border-color: #BBD79A;
  793. background: #F1F4E8;
  794. }
  795. .video-thumb {
  796. width: 40px;
  797. height: 56px;
  798. display: inline-flex;
  799. align-items: center;
  800. justify-content: center;
  801. border-radius: 3px;
  802. color: #4D6B36;
  803. background: #E6EDDC;
  804. font-size: 10px;
  805. font-weight: 800;
  806. }
  807. .video-thumb.small {
  808. width: 42px;
  809. height: 50px;
  810. }
  811. .video-line-card {
  812. display: grid;
  813. grid-template-columns: 42px minmax(0, 1fr);
  814. gap: 8px;
  815. min-height: 62px;
  816. padding: 5px 6px;
  817. border: 1px solid #E6EDDC;
  818. border-radius: 4px;
  819. background: #FFFDF8;
  820. }
  821. .video-line-card:hover {
  822. border-color: #BBD79A;
  823. background: #F1F4E8;
  824. }
  825. .video-line-main {
  826. display: grid;
  827. gap: 3px;
  828. min-width: 0;
  829. }
  830. .video-line-main b {
  831. color: #211F1A;
  832. font-size: 13px;
  833. line-height: 1.45;
  834. }
  835. .video-line-main small {
  836. color: var(--muted);
  837. font-size: 12px;
  838. font-weight: 650;
  839. line-height: 1.4;
  840. }
  841. .tag-row {
  842. display: flex;
  843. flex-wrap: wrap;
  844. gap: 4px;
  845. }
  846. .tag-row em {
  847. padding: 1px 6px;
  848. border-radius: 10px;
  849. color: #4D6B36;
  850. background: #E6EDDC;
  851. font-size: 10.5px;
  852. font-style: normal;
  853. font-weight: 750;
  854. }
  855. .video-mini b {
  856. display: -webkit-box;
  857. overflow: hidden;
  858. color: #211F1A;
  859. font-size: 12.5px;
  860. -webkit-line-clamp: 2;
  861. -webkit-box-orient: vertical;
  862. }
  863. .video-mini small {
  864. display: block;
  865. margin-top: 3px;
  866. color: var(--muted);
  867. font-size: 12px;
  868. font-weight: 650;
  869. line-height: 1.45;
  870. }
  871. .cell-footer {
  872. display: flex;
  873. flex-wrap: wrap;
  874. gap: 6px;
  875. margin: 6px 0;
  876. color: var(--muted);
  877. font-size: 12.5px;
  878. }
  879. .runs-by-demand {
  880. display: grid;
  881. grid-template-columns: 300px minmax(0, 1fr);
  882. gap: 12px;
  883. margin: 12px 20px 24px;
  884. align-items: start;
  885. }
  886. @media (max-width: 760px) {
  887. .runs-by-demand {
  888. grid-template-columns: 1fr;
  889. }
  890. }
  891. .rbd-demands {
  892. position: sticky;
  893. top: 64px;
  894. display: flex;
  895. flex-direction: column;
  896. gap: 8px;
  897. max-height: calc(100vh - 96px);
  898. }
  899. .rbd-search {
  900. width: 100%;
  901. }
  902. .rbd-demand-list {
  903. display: flex;
  904. flex-direction: column;
  905. gap: 6px;
  906. overflow-y: auto;
  907. }
  908. .rbd-demand {
  909. display: flex;
  910. flex-direction: column;
  911. gap: 4px;
  912. text-align: left;
  913. padding: 10px 12px;
  914. border: 1px solid #ECE5D6;
  915. border-radius: 8px;
  916. background: #FFFDF8;
  917. cursor: pointer;
  918. }
  919. .rbd-demand:hover {
  920. border-color: #E7C8BC;
  921. background: #FBF7EF;
  922. }
  923. .rbd-demand.active {
  924. border-color: #C97A57;
  925. background: #F6ECE4;
  926. }
  927. .rbd-demand strong {
  928. font-size: 14px;
  929. color: #211F1A;
  930. }
  931. .rbd-demand-meta {
  932. font-size: 13px;
  933. color: var(--muted);
  934. }
  935. .rbd-demand-platforms {
  936. display: flex;
  937. flex-wrap: wrap;
  938. gap: 4px;
  939. }
  940. .rbd-demand-time {
  941. font-size: 12.5px;
  942. color: #A89E8B;
  943. }
  944. .rbd-runs {
  945. display: flex;
  946. flex-direction: column;
  947. gap: 14px;
  948. }
  949. .rbd-runs-head {
  950. display: flex;
  951. align-items: baseline;
  952. gap: 10px;
  953. flex-wrap: wrap;
  954. }
  955. .rbd-runs-head strong {
  956. font-size: 16px;
  957. }
  958. .rbd-platform {
  959. border: 1px solid #ECE5D6;
  960. border-radius: 8px;
  961. background: #FFFDF8;
  962. padding: 10px 12px;
  963. }
  964. .rbd-platform-head {
  965. display: flex;
  966. align-items: center;
  967. gap: 8px;
  968. margin-bottom: 8px;
  969. }
  970. .rbd-run-list {
  971. display: flex;
  972. flex-direction: column;
  973. gap: 6px;
  974. }
  975. .rbd-run {
  976. display: flex;
  977. align-items: center;
  978. gap: 10px;
  979. flex-wrap: wrap;
  980. padding: 8px 10px;
  981. border: 1px solid #ECE5D6;
  982. border-radius: 6px;
  983. background: #FBF7EF;
  984. }
  985. .rbd-run:hover {
  986. border-color: #E7C8BC;
  987. background: #FBF7EF;
  988. }
  989. .rbd-run-time {
  990. font-size: 13px;
  991. color: #211F1A;
  992. font-weight: 500;
  993. }
  994. .rbd-run-id {
  995. font-size: 12px;
  996. margin-left: auto;
  997. }
  998. .aigc-page {
  999. margin: 12px 20px 24px;
  1000. display: flex;
  1001. flex-direction: column;
  1002. gap: 12px;
  1003. }
  1004. .aigc-record-list {
  1005. display: flex;
  1006. flex-direction: column;
  1007. gap: 12px;
  1008. }
  1009. .aigc-record {
  1010. border: 1px solid #ECE5D6;
  1011. border-radius: 8px;
  1012. background: #FFFDF8;
  1013. padding: 12px;
  1014. }
  1015. .aigc-record-head {
  1016. display: flex;
  1017. justify-content: space-between;
  1018. gap: 12px;
  1019. flex-wrap: wrap;
  1020. }
  1021. .aigc-record-head strong {
  1022. display: block;
  1023. color: #211F1A;
  1024. font-size: 16px;
  1025. }
  1026. .aigc-record-meta {
  1027. display: flex;
  1028. align-items: center;
  1029. gap: 8px;
  1030. flex-wrap: wrap;
  1031. }
  1032. .aigc-record-grid {
  1033. display: grid;
  1034. grid-template-columns: repeat(4, minmax(0, 1fr));
  1035. gap: 8px;
  1036. margin: 12px 0;
  1037. }
  1038. .aigc-record-grid > div {
  1039. display: flex;
  1040. flex-direction: column;
  1041. gap: 4px;
  1042. border: 1px solid #ECE5D6;
  1043. border-radius: 6px;
  1044. padding: 8px;
  1045. background: #FBF7EF;
  1046. }
  1047. .aigc-plan-list {
  1048. display: flex;
  1049. flex-direction: column;
  1050. gap: 8px;
  1051. }
  1052. .aigc-plan {
  1053. border: 1px solid #ECE5D6;
  1054. border-radius: 6px;
  1055. background: #FFFDF8;
  1056. }
  1057. .aigc-plan summary {
  1058. display: flex;
  1059. align-items: center;
  1060. gap: 10px;
  1061. flex-wrap: wrap;
  1062. padding: 8px 10px;
  1063. cursor: pointer;
  1064. }
  1065. .aigc-video-list {
  1066. display: flex;
  1067. flex-wrap: wrap;
  1068. gap: 6px;
  1069. padding: 0 10px 10px;
  1070. }
  1071. .aigc-video-id {
  1072. border: 1px solid #E2D7C4;
  1073. border-radius: 6px;
  1074. background: #F7F0E7;
  1075. color: #3A3329;
  1076. font-size: 12px;
  1077. font-weight: 650;
  1078. padding: 4px 6px;
  1079. }
  1080. @media (max-width: 900px) {
  1081. .aigc-record-grid {
  1082. grid-template-columns: 1fr 1fr;
  1083. }
  1084. }
  1085. .run-list {
  1086. margin: 12px 20px 24px;
  1087. display: grid;
  1088. gap: 8px;
  1089. }
  1090. .run-row {
  1091. display: flex;
  1092. align-items: center;
  1093. justify-content: space-between;
  1094. gap: 12px;
  1095. min-height: 58px;
  1096. padding: 10px 12px;
  1097. border: 1px solid #ECE5D6;
  1098. border-radius: 6px;
  1099. background: #FFFDF8;
  1100. }
  1101. .run-row:hover {
  1102. border-color: #E7C8BC;
  1103. background: #FBF7EF;
  1104. }
  1105. .run-row strong,
  1106. .run-row span {
  1107. display: block;
  1108. }
  1109. .run-row strong {
  1110. font-size: 14px;
  1111. }
  1112. .run-row span {
  1113. color: var(--muted);
  1114. font-size: 13px;
  1115. }
  1116. .run-row-meta {
  1117. display: flex;
  1118. flex-wrap: wrap;
  1119. justify-content: flex-end;
  1120. gap: 4px;
  1121. }
  1122. .state-block {
  1123. margin: 14px 20px;
  1124. padding: 18px;
  1125. border: 1px solid #ECE5D6;
  1126. border-radius: 6px;
  1127. background: #FFFDF8;
  1128. color: #6F6657;
  1129. }
  1130. .error-state {
  1131. color: #991b1b;
  1132. background: #fef2f2;
  1133. border-color: #fecaca;
  1134. }
  1135. .detail-table-wrap {
  1136. margin: 12px 20px 24px;
  1137. overflow: auto;
  1138. border: 1px solid #ECE5D6;
  1139. border-radius: 6px;
  1140. background: #FFFDF8;
  1141. }
  1142. .detail-table {
  1143. width: 100%;
  1144. min-width: 980px;
  1145. border-collapse: collapse;
  1146. font-size: 13px;
  1147. }
  1148. .detail-table th,
  1149. .detail-table td {
  1150. border: 1px solid #ECE5D6;
  1151. padding: 7px 8px;
  1152. vertical-align: top;
  1153. line-height: 1.5;
  1154. }
  1155. .detail-table th {
  1156. position: sticky;
  1157. top: 0;
  1158. z-index: 2;
  1159. color: #FFFDF8;
  1160. background: #6F6657;
  1161. font-weight: 700;
  1162. text-align: left;
  1163. }
  1164. .walk-lanes {
  1165. display: grid;
  1166. grid-template-columns: repeat(4, minmax(210px, 1fr));
  1167. gap: 10px;
  1168. margin: 12px 20px;
  1169. }
  1170. .walk-lane {
  1171. min-height: 180px;
  1172. border: 1px solid #F3E3DB;
  1173. border-radius: 6px;
  1174. background: #F6ECE4;
  1175. }
  1176. .lane-head {
  1177. padding: 8px 10px;
  1178. color: #FFFDF8;
  1179. background: #B4502F;
  1180. border-radius: 5px 5px 0 0;
  1181. font-size: 13px;
  1182. font-weight: 700;
  1183. }
  1184. .walk-node {
  1185. width: calc(100% - 12px);
  1186. display: grid;
  1187. gap: 2px;
  1188. margin: 6px;
  1189. padding: 7px 8px;
  1190. border: 1px solid #E7C8BC;
  1191. border-radius: 4px;
  1192. color: #7A2E18;
  1193. background: #FFFDF8;
  1194. cursor: pointer;
  1195. text-align: left;
  1196. }
  1197. .walk-node:hover {
  1198. border-color: #C97A57;
  1199. background: #FBF7EF;
  1200. }
  1201. .walk-node span,
  1202. .walk-node small {
  1203. color: var(--muted);
  1204. overflow-wrap: anywhere;
  1205. }
  1206. .lane-empty {
  1207. display: block;
  1208. padding: 10px;
  1209. }
  1210. .score-list {
  1211. display: grid;
  1212. gap: 5px;
  1213. }
  1214. .score-list.roomy {
  1215. gap: 8px;
  1216. margin-top: 10px;
  1217. }
  1218. .score-row {
  1219. display: grid;
  1220. grid-template-columns: minmax(72px, 1fr) auto;
  1221. gap: 6px;
  1222. align-items: start;
  1223. padding: 6px 7px;
  1224. border: 1px solid #F3E3DB;
  1225. border-radius: 4px;
  1226. background: #FBF7EF;
  1227. }
  1228. .score-row span {
  1229. color: #3A352B;
  1230. font-size: 12.5px;
  1231. }
  1232. .score-row b {
  1233. color: #B4502F;
  1234. font-size: 13px;
  1235. font-variant-numeric: tabular-nums;
  1236. }
  1237. .score-row small {
  1238. grid-column: 1 / -1;
  1239. color: var(--muted);
  1240. line-height: 1.45;
  1241. }
  1242. .score-module-grid {
  1243. display: grid;
  1244. grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  1245. gap: 8px;
  1246. margin-top: 10px;
  1247. }
  1248. .score-panel-head {
  1249. display: flex;
  1250. align-items: center;
  1251. justify-content: space-between;
  1252. gap: 8px;
  1253. }
  1254. .score-decision {
  1255. color: #6F6657;
  1256. font-size: 13px;
  1257. }
  1258. .score-decision-chip {
  1259. padding: 3px 12px;
  1260. border-radius: 999px;
  1261. font-size: 13px;
  1262. font-weight: 700;
  1263. }
  1264. .score-decision-chip.is-pool {
  1265. color: #3F5A28;
  1266. background: #E6EDDC;
  1267. }
  1268. .score-decision-chip.is-review {
  1269. color: #92400e;
  1270. background: #fef3c7;
  1271. }
  1272. .score-decision-chip.is-reject {
  1273. color: #991b1b;
  1274. background: #fee2e2;
  1275. }
  1276. .score-decision-chip.is-tech {
  1277. color: #6F6657;
  1278. background: #ECE5D6;
  1279. }
  1280. .score-total-banner {
  1281. display: flex;
  1282. align-items: baseline;
  1283. gap: 12px;
  1284. margin: 10px 0 0;
  1285. padding: 10px 12px;
  1286. border: 1px solid #E7C8BC;
  1287. border-radius: 5px;
  1288. background: #F6ECE4;
  1289. }
  1290. .score-total-banner span {
  1291. color: #3A352B;
  1292. font-size: 13px;
  1293. font-weight: 800;
  1294. }
  1295. .score-total-banner b {
  1296. color: #211F1A;
  1297. font-size: 28px;
  1298. line-height: 1.1;
  1299. font-variant-numeric: tabular-nums;
  1300. }
  1301. .score-total-banner small {
  1302. color: var(--muted);
  1303. font-size: 12.5px;
  1304. }
  1305. .score-module.score-fifty {
  1306. border-color: #ddd6fe;
  1307. background: #f5f3ff;
  1308. }
  1309. .score-module.score-fifty span {
  1310. color: #5b21b6;
  1311. }
  1312. .score-module.score-muted {
  1313. border-color: #ECE5D6;
  1314. background: #FBF7EF;
  1315. }
  1316. .score-module.score-muted span,
  1317. .score-module.score-muted b {
  1318. color: #A89E8B;
  1319. }
  1320. .score-rule-card.score-rule-fifty {
  1321. border-color: #ddd6fe;
  1322. background: #f5f3ff;
  1323. }
  1324. .score-rule-card.score-rule-fifty h3 {
  1325. color: #5b21b6;
  1326. }
  1327. .score-rule-card.score-rule-fifty .score-breakdown-row {
  1328. border-color: #ede9fe;
  1329. }
  1330. .score-module {
  1331. display: grid;
  1332. gap: 5px;
  1333. min-height: 108px;
  1334. padding: 10px;
  1335. border: 1px solid #F3E3DB;
  1336. border-radius: 5px;
  1337. background: #FBF7EF;
  1338. }
  1339. .score-module span {
  1340. color: #3A352B;
  1341. font-size: 13px;
  1342. font-weight: 800;
  1343. }
  1344. .score-module b {
  1345. color: #211F1A;
  1346. font-size: 20px;
  1347. line-height: 1.1;
  1348. font-variant-numeric: tabular-nums;
  1349. }
  1350. .score-module small {
  1351. color: var(--muted);
  1352. font-size: 12.5px;
  1353. line-height: 1.45;
  1354. }
  1355. .score-module em {
  1356. width: fit-content;
  1357. padding: 2px 6px;
  1358. border-radius: 4px;
  1359. color: #6F6657;
  1360. background: rgba(255, 255, 255, 0.72);
  1361. font-size: 12px;
  1362. font-style: normal;
  1363. font-weight: 750;
  1364. }
  1365. .score-module.score-total {
  1366. border-color: #E7C8BC;
  1367. background: #F6ECE4;
  1368. }
  1369. .score-module.score-demand {
  1370. border-color: #DCE7C8;
  1371. background: #F1F4E8;
  1372. }
  1373. .score-module.score-platform {
  1374. border-color: #fde68a;
  1375. background: #fffbeb;
  1376. }
  1377. .score-mini {
  1378. max-width: 220px;
  1379. color: #3A352B;
  1380. font-size: 12.5px;
  1381. line-height: 1.55;
  1382. }
  1383. .score-rule-lead {
  1384. margin: 0 0 10px;
  1385. padding: 8px 10px;
  1386. border: 1px solid #F3E3DB;
  1387. border-radius: 5px;
  1388. color: #B4502F !important;
  1389. background: #F6ECE4;
  1390. font-size: 13px;
  1391. font-weight: 700;
  1392. }
  1393. .score-rule-card {
  1394. margin-top: 12px;
  1395. padding: 10px;
  1396. border: 1px solid #fde68a;
  1397. border-radius: 5px;
  1398. background: #fffbeb;
  1399. }
  1400. .score-rule-card h3 {
  1401. margin: 0 0 4px;
  1402. color: #713f12;
  1403. font-size: 14px;
  1404. }
  1405. .score-rule-card p {
  1406. margin: 0 0 8px;
  1407. color: #6F6657;
  1408. font-size: 12.5px;
  1409. line-height: 1.5;
  1410. }
  1411. .score-breakdown-list {
  1412. display: grid;
  1413. gap: 6px;
  1414. }
  1415. .score-breakdown-row {
  1416. display: grid;
  1417. grid-template-columns: minmax(80px, 1fr) auto;
  1418. gap: 4px 8px;
  1419. padding: 7px 8px;
  1420. border: 1px solid #fef3c7;
  1421. border-radius: 4px;
  1422. background: #FFFDF8;
  1423. }
  1424. .score-breakdown-row span {
  1425. color: #3A352B;
  1426. font-size: 13px;
  1427. font-weight: 800;
  1428. }
  1429. .score-breakdown-row b {
  1430. color: #211F1A;
  1431. font-size: 13px;
  1432. font-variant-numeric: tabular-nums;
  1433. }
  1434. .score-breakdown-row small {
  1435. grid-column: 1 / -1;
  1436. color: #8A8275;
  1437. font-size: 12px;
  1438. line-height: 1.45;
  1439. }
  1440. /* 原始量(该视频原始 N 赞)读起来更清楚一档;占平台/折算那行保持次级灰 */
  1441. .score-breakdown-row small.score-breakdown-raw {
  1442. color: #3A352B;
  1443. font-size: 12.5px;
  1444. font-variant-numeric: tabular-nums;
  1445. }
  1446. .walk-tree-wrap {
  1447. margin: 12px 20px;
  1448. padding: 12px;
  1449. border: 1px solid #F3E3DB;
  1450. border-radius: 6px;
  1451. background: #FBF7EF;
  1452. }
  1453. .walk-tree-root {
  1454. display: flex;
  1455. flex-wrap: wrap;
  1456. gap: 8px;
  1457. align-items: center;
  1458. padding: 8px 10px;
  1459. border: 1px solid #D9CFBB;
  1460. border-radius: 4px;
  1461. background: #FFFDF8;
  1462. }
  1463. .walk-tree-root strong {
  1464. color: #211F1A;
  1465. }
  1466. .walk-tree-root small {
  1467. color: var(--muted);
  1468. }
  1469. .walk-tree {
  1470. display: grid;
  1471. gap: 8px;
  1472. margin-top: 10px;
  1473. }
  1474. .walk-tree-node {
  1475. --depth: 0;
  1476. position: relative;
  1477. display: grid;
  1478. grid-template-columns: 18px minmax(0, 1fr);
  1479. margin-left: calc(var(--depth) * 28px);
  1480. }
  1481. .walk-node-spine {
  1482. position: relative;
  1483. min-height: 100%;
  1484. }
  1485. .walk-node-spine::before {
  1486. content: "";
  1487. position: absolute;
  1488. top: -8px;
  1489. bottom: -8px;
  1490. left: 8px;
  1491. width: 2px;
  1492. background: #E7C8BC;
  1493. }
  1494. .walk-node-spine::after {
  1495. content: "";
  1496. position: absolute;
  1497. top: 18px;
  1498. left: 4px;
  1499. width: 10px;
  1500. height: 10px;
  1501. border: 2px solid #C45A3B;
  1502. border-radius: 999px;
  1503. background: #FFFDF8;
  1504. }
  1505. .walk-tree-node.skipped .walk-node-spine::after {
  1506. border-color: #d97706;
  1507. }
  1508. .walk-node-card {
  1509. display: grid;
  1510. gap: 7px;
  1511. padding: 9px 10px;
  1512. border: 1px solid #E7C8BC;
  1513. border-radius: 5px;
  1514. background: #FFFDF8;
  1515. }
  1516. .walk-tree-node.skipped .walk-node-card {
  1517. border-color: #fde68a;
  1518. background: #fffbeb;
  1519. }
  1520. .walk-node-title,
  1521. .walk-node-meta {
  1522. display: flex;
  1523. flex-wrap: wrap;
  1524. gap: 7px;
  1525. align-items: center;
  1526. }
  1527. .walk-node-title strong {
  1528. color: #211F1A;
  1529. }
  1530. .walk-node-meta span {
  1531. color: #6F6657;
  1532. font-size: 12.5px;
  1533. }
  1534. .walk-node-card ul {
  1535. display: grid;
  1536. gap: 3px;
  1537. margin: 0;
  1538. padding-left: 16px;
  1539. color: #3A352B;
  1540. }
  1541. .walk-node-card li,
  1542. .walk-node-card p {
  1543. overflow-wrap: anywhere;
  1544. line-height: 1.5;
  1545. }
  1546. .walk-node-card p {
  1547. margin: 0;
  1548. color: var(--muted);
  1549. }
  1550. .walk-ledger-board {
  1551. margin: 12px 20px 24px;
  1552. padding: 12px;
  1553. border: 1px solid #F3E3DB;
  1554. border-radius: 6px;
  1555. background: #FBF7EF;
  1556. }
  1557. .walk-ledger-root {
  1558. display: flex;
  1559. flex-wrap: wrap;
  1560. gap: 8px;
  1561. align-items: center;
  1562. padding: 9px 10px;
  1563. border: 1px solid #D9CFBB;
  1564. border-radius: 4px;
  1565. background: #FFFDF8;
  1566. }
  1567. .walk-ledger-root strong {
  1568. color: #211F1A;
  1569. }
  1570. .walk-ledger-root small {
  1571. color: var(--muted);
  1572. }
  1573. .walk-ledger-groups {
  1574. display: grid;
  1575. gap: 12px;
  1576. margin-top: 10px;
  1577. }
  1578. .walk-ledger-group,
  1579. .walk-story-block {
  1580. position: relative;
  1581. }
  1582. .walk-ledger-spine {
  1583. position: relative;
  1584. min-height: 100%;
  1585. }
  1586. .walk-ledger-spine::before {
  1587. content: "";
  1588. position: absolute;
  1589. top: -10px;
  1590. bottom: -10px;
  1591. left: 10px;
  1592. width: 2px;
  1593. background: #E7C8BC;
  1594. }
  1595. .walk-ledger-spine::after {
  1596. content: "";
  1597. position: absolute;
  1598. top: 19px;
  1599. left: 5px;
  1600. width: 12px;
  1601. height: 12px;
  1602. border: 2px solid #C45A3B;
  1603. border-radius: 999px;
  1604. background: #FFFDF8;
  1605. }
  1606. .walk-source-card {
  1607. display: grid;
  1608. gap: 10px;
  1609. padding: 12px;
  1610. border: 1px solid #D9CFBB;
  1611. border-radius: 5px;
  1612. background: #FFFDF8;
  1613. }
  1614. .walk-story-block {
  1615. display: grid;
  1616. gap: 10px;
  1617. padding: 12px 12px 12px 24px;
  1618. border: 1px solid #D9CFBB;
  1619. border-radius: 6px;
  1620. background: #FFFDF8;
  1621. }
  1622. .walk-story-block.level-0 {
  1623. border-color: #E7C8BC;
  1624. background: #FBF7EF;
  1625. }
  1626. .walk-story-block.level-1 {
  1627. border-color: #DCE7C8;
  1628. background: #F1F4E8;
  1629. }
  1630. .walk-story-block.level-2 {
  1631. border-color: #ddd6fe;
  1632. background: #FBF7EF;
  1633. }
  1634. .walk-story-block.level-3 {
  1635. border-color: #fed7aa;
  1636. background: #FFFDF8;
  1637. }
  1638. .walk-story-block::before {
  1639. content: "";
  1640. position: absolute;
  1641. top: 18px;
  1642. bottom: 14px;
  1643. left: 10px;
  1644. width: 2px;
  1645. background: #E7C8BC;
  1646. }
  1647. .walk-story-block.level-1::before {
  1648. background: #DCE7C8;
  1649. }
  1650. .walk-story-block.level-2::before {
  1651. background: #ddd6fe;
  1652. }
  1653. .walk-story-block.level-3::before {
  1654. background: #fed7aa;
  1655. }
  1656. .walk-story-block::after {
  1657. content: "";
  1658. position: absolute;
  1659. top: 24px;
  1660. left: 5px;
  1661. width: 12px;
  1662. height: 12px;
  1663. border: 2px solid #C45A3B;
  1664. border-radius: 999px;
  1665. background: #FFFDF8;
  1666. }
  1667. .walk-story-block.level-1::after {
  1668. border-color: #5E7E45;
  1669. }
  1670. .walk-story-block.level-2::after {
  1671. border-color: #7c3aed;
  1672. }
  1673. .walk-story-block.level-3::after {
  1674. border-color: #ea580c;
  1675. }
  1676. .walk-story-head {
  1677. display: grid;
  1678. grid-template-columns: auto minmax(0, 1fr) auto;
  1679. gap: 10px;
  1680. align-items: start;
  1681. }
  1682. .walk-story-title {
  1683. min-width: 0;
  1684. display: grid;
  1685. gap: 7px;
  1686. }
  1687. .walk-story-title h2 {
  1688. margin: 0;
  1689. color: #211F1A;
  1690. font-size: 16px;
  1691. font-weight: 850;
  1692. line-height: 1.45;
  1693. }
  1694. .walk-source-kicker {
  1695. width: max-content;
  1696. padding: 3px 8px;
  1697. border-radius: 4px;
  1698. color: #6F6657;
  1699. background: #ECE5D6;
  1700. font-size: 12px;
  1701. font-weight: 850;
  1702. }
  1703. .walk-story-block.level-0 .walk-source-kicker {
  1704. color: #B4502F;
  1705. background: #F3E3DB;
  1706. }
  1707. .walk-story-block.level-1 .walk-source-kicker {
  1708. color: #4D6B36;
  1709. background: #E6EDDC;
  1710. }
  1711. .walk-story-block.level-2 .walk-source-kicker {
  1712. color: #6d28d9;
  1713. background: #ede9fe;
  1714. }
  1715. .walk-story-block.level-3 .walk-source-kicker {
  1716. color: #c2410c;
  1717. background: #ffedd5;
  1718. }
  1719. .walk-source-card h2 {
  1720. margin: 0;
  1721. color: #211F1A;
  1722. font-size: 15px;
  1723. font-weight: 850;
  1724. line-height: 1.45;
  1725. }
  1726. .walk-source-head {
  1727. display: flex;
  1728. flex-wrap: wrap;
  1729. gap: 7px;
  1730. align-items: center;
  1731. }
  1732. .walk-source-head strong {
  1733. color: #211F1A;
  1734. font-size: 15px;
  1735. font-weight: 850;
  1736. line-height: 1.45;
  1737. }
  1738. .walk-source-tags {
  1739. display: flex;
  1740. flex-wrap: wrap;
  1741. gap: 5px;
  1742. }
  1743. .walk-source-tags span {
  1744. padding: 2px 7px;
  1745. border-radius: 999px;
  1746. color: #4D6B36;
  1747. background: #E6EDDC;
  1748. font-size: 12px;
  1749. font-weight: 800;
  1750. }
  1751. .walk-source-meta {
  1752. display: grid;
  1753. gap: 5px;
  1754. color: #8A8275;
  1755. font-size: 13px;
  1756. line-height: 1.45;
  1757. }
  1758. .walk-source-meta b {
  1759. display: inline-flex;
  1760. min-width: 58px;
  1761. margin-right: 6px;
  1762. color: #3A352B;
  1763. font-weight: 850;
  1764. }
  1765. .walk-source-facts {
  1766. display: grid;
  1767. grid-template-columns: repeat(4, minmax(0, 1fr));
  1768. gap: 6px;
  1769. }
  1770. .walk-fact {
  1771. min-width: 0;
  1772. display: grid;
  1773. gap: 2px;
  1774. padding: 7px 8px;
  1775. border: 1px solid #ECE5D6;
  1776. border-radius: 4px;
  1777. background: #FBF7EF;
  1778. }
  1779. .walk-fact span {
  1780. color: #8A8275;
  1781. font-size: 12px;
  1782. font-weight: 800;
  1783. }
  1784. .walk-fact strong {
  1785. color: #211F1A;
  1786. font-size: 13px;
  1787. line-height: 1.35;
  1788. overflow-wrap: anywhere;
  1789. }
  1790. .walk-fact.good {
  1791. border-color: #DCE7C8;
  1792. background: #F1F4E8;
  1793. }
  1794. .walk-fact.good strong {
  1795. color: #4D6B36;
  1796. }
  1797. .walk-fact.warn {
  1798. border-color: #fde68a;
  1799. background: #fffbeb;
  1800. }
  1801. .walk-fact.warn strong {
  1802. color: #92400e;
  1803. }
  1804. .walk-fact.bad {
  1805. border-color: #fecaca;
  1806. background: #fef2f2;
  1807. }
  1808. .walk-fact.bad strong {
  1809. color: #b91c1c;
  1810. }
  1811. .walk-video-links {
  1812. display: flex;
  1813. flex-wrap: wrap;
  1814. gap: 6px;
  1815. align-items: center;
  1816. }
  1817. .walk-video-links a {
  1818. min-height: 28px;
  1819. display: inline-flex;
  1820. gap: 4px;
  1821. align-items: center;
  1822. padding: 4px 8px;
  1823. border: 1px solid #D9CFBB;
  1824. border-radius: 4px;
  1825. color: #B4502F;
  1826. background: #FFFDF8;
  1827. font-size: 12.5px;
  1828. font-weight: 800;
  1829. }
  1830. .walk-video-links a:hover {
  1831. border-color: #D99B82;
  1832. background: #F6ECE4;
  1833. }
  1834. .walk-video-links.compact {
  1835. justify-content: flex-end;
  1836. }
  1837. .walk-video-links.compact a {
  1838. min-height: 24px;
  1839. padding: 3px 7px;
  1840. }
  1841. .walk-branch-list {
  1842. display: grid;
  1843. gap: 7px;
  1844. }
  1845. .walk-route-stack {
  1846. display: grid;
  1847. gap: 8px;
  1848. }
  1849. .walk-story-routes {
  1850. position: relative;
  1851. display: grid;
  1852. gap: 8px;
  1853. margin-left: 18px;
  1854. padding-left: 16px;
  1855. border-left: 2px solid #F3E3DB;
  1856. }
  1857. .walk-story-block.level-1 .walk-story-routes {
  1858. border-left-color: #DCE7C8;
  1859. }
  1860. .walk-story-block.level-2 .walk-story-routes {
  1861. border-left-color: #ddd6fe;
  1862. }
  1863. .walk-story-block.level-3 .walk-story-routes {
  1864. border-left-color: #fed7aa;
  1865. }
  1866. .walk-story-routes-label {
  1867. width: max-content;
  1868. margin-bottom: 1px;
  1869. padding: 3px 8px;
  1870. border-radius: 4px;
  1871. color: #B4502F;
  1872. background: #F6ECE4;
  1873. font-size: 12px;
  1874. font-weight: 850;
  1875. }
  1876. .walk-story-block.level-1 .walk-story-routes-label {
  1877. color: #4D6B36;
  1878. background: #E6EDDC;
  1879. }
  1880. .walk-story-block.level-2 .walk-story-routes-label {
  1881. color: #6d28d9;
  1882. background: #ede9fe;
  1883. }
  1884. .walk-story-block.level-3 .walk-story-routes-label {
  1885. color: #c2410c;
  1886. background: #ffedd5;
  1887. }
  1888. .walk-tree-route {
  1889. position: relative;
  1890. display: grid;
  1891. grid-template-columns: 14px minmax(0, 1fr);
  1892. gap: 8px;
  1893. }
  1894. .walk-tree-route-dot {
  1895. position: relative;
  1896. }
  1897. .walk-tree-route-dot::before {
  1898. content: "";
  1899. position: absolute;
  1900. top: 22px;
  1901. left: -23px;
  1902. width: 21px;
  1903. height: 2px;
  1904. background: #F3E3DB;
  1905. }
  1906. .walk-tree-route-dot::after {
  1907. content: "";
  1908. position: absolute;
  1909. top: 17px;
  1910. left: -5px;
  1911. width: 10px;
  1912. height: 10px;
  1913. border: 2px solid #C97A57;
  1914. border-radius: 999px;
  1915. background: #FFFDF8;
  1916. }
  1917. .walk-tree-route-body {
  1918. display: grid;
  1919. gap: 9px;
  1920. padding: 10px 12px;
  1921. border: 1px solid #F3E3DB;
  1922. border-radius: 5px;
  1923. background: #FBF7EF;
  1924. }
  1925. .walk-tree-route.tag .walk-tree-route-body {
  1926. border-color: #DCE7C8;
  1927. background: #F1F4E8;
  1928. }
  1929. .walk-tree-route.author .walk-tree-route-body {
  1930. border-color: #ddd6fe;
  1931. background: #f5f3ff;
  1932. }
  1933. .walk-tree-route.page .walk-tree-route-body {
  1934. border-color: #E7C8BC;
  1935. background: #F6ECE4;
  1936. }
  1937. .walk-tree-route.stopped .walk-tree-route-body {
  1938. border-color: #fde68a;
  1939. background: #fffbeb;
  1940. }
  1941. .walk-nested-children {
  1942. display: grid;
  1943. gap: 8px;
  1944. margin-top: 2px;
  1945. padding: 10px 0 0 18px;
  1946. border-left: 2px dashed #D9CFBB;
  1947. }
  1948. .walk-nested-label {
  1949. width: max-content;
  1950. padding: 3px 8px;
  1951. border-radius: 4px;
  1952. color: #6F6657;
  1953. background: #ECE5D6;
  1954. font-size: 12px;
  1955. font-weight: 850;
  1956. }
  1957. .walk-nested-children .walk-story-block {
  1958. box-shadow: none;
  1959. }
  1960. .walk-route-card {
  1961. display: grid;
  1962. gap: 9px;
  1963. padding: 10px 12px;
  1964. border: 1px solid #F3E3DB;
  1965. border-radius: 5px;
  1966. background: #FFFDF8;
  1967. }
  1968. .walk-route-card.tag {
  1969. border-color: #DCE7C8;
  1970. background: #F1F4E8;
  1971. }
  1972. .walk-route-card.author {
  1973. border-color: #ddd6fe;
  1974. background: #f5f3ff;
  1975. }
  1976. .walk-route-card.page {
  1977. border-color: #E7C8BC;
  1978. background: #F6ECE4;
  1979. }
  1980. .walk-route-card.stopped {
  1981. border-color: #fde68a;
  1982. background: #fffbeb;
  1983. }
  1984. .walk-route-head {
  1985. display: grid;
  1986. grid-template-columns: auto minmax(0, 1fr) auto;
  1987. gap: 8px;
  1988. align-items: start;
  1989. }
  1990. .walk-route-head strong {
  1991. color: #211F1A;
  1992. font-size: 14px;
  1993. font-weight: 850;
  1994. }
  1995. .walk-route-head p {
  1996. margin: 3px 0 0;
  1997. color: #3A352B;
  1998. font-size: 13px;
  1999. font-weight: 650;
  2000. line-height: 1.45;
  2001. }
  2002. .walk-flow {
  2003. display: grid;
  2004. grid-template-columns: minmax(100px, 0.8fr) 24px minmax(130px, 1fr) 24px minmax(150px, 1.1fr);
  2005. gap: 6px;
  2006. align-items: stretch;
  2007. }
  2008. .walk-flow-node {
  2009. min-width: 0;
  2010. display: grid;
  2011. gap: 3px;
  2012. padding: 8px 9px;
  2013. border: 1px solid rgba(148, 163, 184, 0.55);
  2014. border-radius: 4px;
  2015. background: #FFFDF8;
  2016. }
  2017. a.walk-flow-node:hover {
  2018. border-color: #D99B82;
  2019. background: #FFFDF8;
  2020. }
  2021. .walk-flow-node span {
  2022. color: #8A8275;
  2023. font-size: 12px;
  2024. font-weight: 850;
  2025. }
  2026. .walk-flow-node strong {
  2027. color: #211F1A;
  2028. font-size: 13px;
  2029. line-height: 1.35;
  2030. overflow-wrap: anywhere;
  2031. }
  2032. .walk-flow-node.strong {
  2033. border-color: #D99B82;
  2034. background: #FFFDF8;
  2035. }
  2036. .walk-flow-node.muted {
  2037. color: #8A8275;
  2038. background: rgba(255, 255, 255, 0.58);
  2039. }
  2040. .walk-flow-arrow {
  2041. display: inline-flex;
  2042. align-items: center;
  2043. justify-content: center;
  2044. color: #8A8275;
  2045. }
  2046. .walk-route-bottom {
  2047. display: flex;
  2048. flex-wrap: wrap;
  2049. gap: 7px;
  2050. align-items: center;
  2051. }
  2052. .walk-gate {
  2053. min-height: 26px;
  2054. display: inline-flex;
  2055. align-items: center;
  2056. padding: 4px 8px;
  2057. border-radius: 4px;
  2058. font-size: 13px;
  2059. font-weight: 850;
  2060. }
  2061. .walk-gate.pass {
  2062. color: #4D6B36;
  2063. background: #E6EDDC;
  2064. }
  2065. .walk-gate.stop {
  2066. color: #92400e;
  2067. background: #fef3c7;
  2068. }
  2069. .walk-jump-button {
  2070. min-height: 26px;
  2071. display: inline-flex;
  2072. align-items: center;
  2073. padding: 4px 8px;
  2074. border: 1px solid #D9CFBB;
  2075. border-radius: 4px;
  2076. color: #B4502F;
  2077. background: #FFFDF8;
  2078. font-size: 13px;
  2079. font-weight: 850;
  2080. }
  2081. .walk-jump-button:hover {
  2082. border-color: #D99B82;
  2083. background: #F6ECE4;
  2084. }
  2085. .walk-branch-card {
  2086. display: grid;
  2087. gap: 7px;
  2088. padding: 10px 12px;
  2089. border: 1px solid #F3E3DB;
  2090. border-radius: 5px;
  2091. background: #FFFDF8;
  2092. }
  2093. .walk-branch-card.tag {
  2094. border-color: #DCE7C8;
  2095. background: #F1F4E8;
  2096. }
  2097. .walk-branch-card.author {
  2098. border-color: #ddd6fe;
  2099. background: #f5f3ff;
  2100. }
  2101. .walk-branch-card.page {
  2102. border-color: #E7C8BC;
  2103. background: #F6ECE4;
  2104. }
  2105. .walk-branch-card.asset {
  2106. border-color: #DCE7C8;
  2107. background: #EEF3E4;
  2108. }
  2109. .walk-branch-card.stop,
  2110. .walk-branch-card.stopped {
  2111. border-color: #fde68a;
  2112. background: #fffbeb;
  2113. }
  2114. .walk-branch-head {
  2115. display: flex;
  2116. flex-wrap: wrap;
  2117. gap: 7px;
  2118. align-items: center;
  2119. }
  2120. .walk-edge-icon {
  2121. width: 24px;
  2122. height: 24px;
  2123. display: inline-flex;
  2124. align-items: center;
  2125. justify-content: center;
  2126. border-radius: 4px;
  2127. color: #B4502F;
  2128. background: #F3E3DB;
  2129. }
  2130. .walk-branch-card.tag .walk-edge-icon {
  2131. color: #4D6B36;
  2132. background: #DCE7C8;
  2133. }
  2134. .walk-branch-card.author .walk-edge-icon {
  2135. color: #5b21b6;
  2136. background: #ddd6fe;
  2137. }
  2138. .walk-branch-card.stop .walk-edge-icon,
  2139. .walk-branch-card.stopped .walk-edge-icon {
  2140. color: #92400e;
  2141. background: #fde68a;
  2142. }
  2143. .walk-branch-head strong {
  2144. color: #211F1A;
  2145. }
  2146. .walk-branch-summary {
  2147. margin: 0;
  2148. color: #3A352B;
  2149. font-size: 14px;
  2150. font-weight: 750;
  2151. line-height: 1.55;
  2152. }
  2153. .walk-route-lines {
  2154. display: grid;
  2155. gap: 5px;
  2156. color: #6F6657;
  2157. font-size: 13px;
  2158. line-height: 1.45;
  2159. }
  2160. .walk-route-lines span {
  2161. overflow-wrap: anywhere;
  2162. }
  2163. .walk-route-lines b {
  2164. display: inline-flex;
  2165. min-width: 72px;
  2166. margin-right: 6px;
  2167. color: #211F1A;
  2168. font-weight: 850;
  2169. }
  2170. .walk-branch-facts {
  2171. display: grid;
  2172. grid-template-columns: repeat(4, minmax(0, 1fr));
  2173. gap: 6px;
  2174. }
  2175. .walk-fact-card {
  2176. min-width: 0;
  2177. display: grid;
  2178. gap: 4px;
  2179. padding: 7px 8px;
  2180. border: 1px solid rgba(148, 163, 184, 0.45);
  2181. border-radius: 4px;
  2182. background: rgba(255, 255, 255, 0.72);
  2183. }
  2184. .walk-fact-card span {
  2185. color: #8A8275;
  2186. font-size: 12px;
  2187. font-weight: 800;
  2188. }
  2189. .walk-fact-card strong {
  2190. color: #211F1A;
  2191. font-size: 12.5px;
  2192. line-height: 1.45;
  2193. overflow-wrap: anywhere;
  2194. }
  2195. .walk-result-query,
  2196. .walk-result-title {
  2197. display: flex;
  2198. flex-wrap: wrap;
  2199. gap: 7px;
  2200. align-items: center;
  2201. color: #B4502F;
  2202. font-size: 13px;
  2203. font-weight: 800;
  2204. }
  2205. .walk-result-query {
  2206. padding: 7px 8px;
  2207. border: 1px solid #E7C8BC;
  2208. border-radius: 4px;
  2209. background: #FFFDF8;
  2210. }
  2211. .walk-result-query strong {
  2212. color: #211F1A;
  2213. }
  2214. .walk-result-videos {
  2215. display: grid;
  2216. gap: 8px;
  2217. padding-top: 2px;
  2218. }
  2219. .walk-result-video-grid {
  2220. display: grid;
  2221. grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  2222. gap: 8px;
  2223. align-items: start;
  2224. }
  2225. .walk-result-video-card {
  2226. min-width: 0;
  2227. display: grid;
  2228. gap: 8px;
  2229. padding: 10px;
  2230. border: 1px solid #ECE5D6;
  2231. border-radius: 5px;
  2232. background: #FFFDF8;
  2233. box-shadow: 0 1px 0 rgba(15, 23, 42, 0.03);
  2234. }
  2235. .walk-result-video-card.good {
  2236. border-color: #BBD79A;
  2237. background: #F1F4E8;
  2238. }
  2239. .walk-result-video-card.warn {
  2240. border-color: #fde68a;
  2241. background: #fffbeb;
  2242. }
  2243. .walk-result-video-card.bad {
  2244. border-color: #fecaca;
  2245. background: #fef2f2;
  2246. }
  2247. .walk-result-video-card.has-child {
  2248. grid-column: 1 / -1;
  2249. background: #FFFDF8;
  2250. }
  2251. .walk-result-video-top {
  2252. display: flex;
  2253. flex-wrap: wrap;
  2254. gap: 6px;
  2255. align-items: center;
  2256. justify-content: space-between;
  2257. }
  2258. .walk-result-status,
  2259. .walk-result-continue,
  2260. .walk-result-stop {
  2261. min-height: 24px;
  2262. display: inline-flex;
  2263. align-items: center;
  2264. padding: 3px 7px;
  2265. border-radius: 4px;
  2266. font-size: 12.5px;
  2267. font-weight: 850;
  2268. }
  2269. .walk-result-status.good {
  2270. color: #4D6B36;
  2271. background: #DCE7C8;
  2272. }
  2273. .walk-result-status.warn {
  2274. color: #92400e;
  2275. background: #fde68a;
  2276. }
  2277. .walk-result-status.bad {
  2278. color: #991b1b;
  2279. background: #fecaca;
  2280. }
  2281. .walk-result-continue {
  2282. color: #B4502F;
  2283. background: #F3E3DB;
  2284. }
  2285. .walk-result-stop {
  2286. color: #8A8275;
  2287. background: #ECE5D6;
  2288. }
  2289. .walk-result-video-title {
  2290. color: #211F1A;
  2291. font-size: 14px;
  2292. font-weight: 850;
  2293. line-height: 1.45;
  2294. overflow-wrap: anywhere;
  2295. }
  2296. .walk-result-video-title:hover {
  2297. color: #B4502F;
  2298. }
  2299. .walk-result-video-meta {
  2300. color: #8A8275;
  2301. font-size: 12.5px;
  2302. font-weight: 750;
  2303. }
  2304. .walk-score-chips {
  2305. display: flex;
  2306. flex-wrap: wrap;
  2307. gap: 5px;
  2308. }
  2309. .walk-score-chips span {
  2310. min-height: 22px;
  2311. display: inline-flex;
  2312. align-items: center;
  2313. padding: 3px 6px;
  2314. border: 1px solid rgba(148, 163, 184, 0.38);
  2315. border-radius: 4px;
  2316. color: #3A352B;
  2317. background: rgba(255, 255, 255, 0.72);
  2318. font-size: 12px;
  2319. font-weight: 800;
  2320. }
  2321. .compact-tags {
  2322. gap: 4px;
  2323. }
  2324. .compact-tags span {
  2325. font-size: 10.5px;
  2326. }
  2327. .walk-card-children {
  2328. margin-top: 2px;
  2329. padding: 10px 0 0 14px;
  2330. border-left: 2px dashed #D99B82;
  2331. }
  2332. .walk-card-children > .walk-story-block {
  2333. margin-top: 0;
  2334. box-shadow: none;
  2335. }
  2336. .walk-stop-note {
  2337. padding: 9px 10px;
  2338. border: 1px dashed #fbbf24;
  2339. border-radius: 5px;
  2340. color: #92400e;
  2341. background: #fffbeb;
  2342. font-size: 13px;
  2343. font-weight: 800;
  2344. }
  2345. .walk-result-video {
  2346. display: grid;
  2347. grid-template-columns: minmax(0, 1fr) auto auto;
  2348. gap: 3px 8px;
  2349. align-items: center;
  2350. padding: 7px 8px;
  2351. border: 1px solid #ECE5D6;
  2352. border-radius: 4px;
  2353. background: #FFFDF8;
  2354. }
  2355. .walk-result-video:hover {
  2356. border-color: #D99B82;
  2357. background: #FBF7EF;
  2358. }
  2359. .walk-result-video-main {
  2360. min-width: 0;
  2361. display: grid;
  2362. gap: 2px;
  2363. }
  2364. .walk-result-video-main b {
  2365. color: #211F1A;
  2366. font-size: 13px;
  2367. line-height: 1.45;
  2368. }
  2369. .walk-result-video-main small {
  2370. color: var(--muted);
  2371. font-size: 12px;
  2372. }
  2373. .walk-result-video svg {
  2374. grid-column: 3;
  2375. grid-row: 1 / span 2;
  2376. color: #A89E8B;
  2377. }
  2378. .walk-result-video .walk-video-links {
  2379. grid-column: 2;
  2380. grid-row: 1 / span 2;
  2381. }
  2382. .walk-result-video.single {
  2383. grid-template-columns: minmax(0, 1fr);
  2384. }
  2385. .walk-result-video.single b {
  2386. color: #211F1A;
  2387. font-size: 13px;
  2388. line-height: 1.45;
  2389. }
  2390. .walk-result-video.single small {
  2391. color: var(--muted);
  2392. font-size: 12px;
  2393. }
  2394. .walk-no-route {
  2395. padding: 12px;
  2396. border: 1px dashed #D9CFBB;
  2397. border-radius: 5px;
  2398. color: #8A8275;
  2399. background: #FFFDF8;
  2400. font-size: 13px;
  2401. }
  2402. @media (max-width: 900px) {
  2403. .walk-branch-facts {
  2404. grid-template-columns: repeat(2, minmax(0, 1fr));
  2405. }
  2406. .walk-story-head {
  2407. grid-template-columns: 1fr;
  2408. }
  2409. .walk-source-facts {
  2410. grid-template-columns: repeat(2, minmax(0, 1fr));
  2411. }
  2412. .walk-flow {
  2413. grid-template-columns: 1fr;
  2414. }
  2415. .walk-flow-arrow {
  2416. transform: rotate(90deg);
  2417. }
  2418. }
  2419. @media (max-width: 520px) {
  2420. .walk-branch-facts {
  2421. grid-template-columns: 1fr;
  2422. }
  2423. .walk-source-facts {
  2424. grid-template-columns: 1fr;
  2425. }
  2426. .walk-story-routes {
  2427. margin-left: 8px;
  2428. padding-left: 12px;
  2429. }
  2430. .walk-nested-children {
  2431. padding-left: 10px;
  2432. }
  2433. .walk-route-head {
  2434. grid-template-columns: auto minmax(0, 1fr);
  2435. }
  2436. .walk-route-head .chip {
  2437. grid-column: 2;
  2438. width: max-content;
  2439. }
  2440. }
  2441. .video-detail-grid {
  2442. display: grid;
  2443. grid-template-columns: minmax(260px, 0.85fr) minmax(320px, 1.15fr);
  2444. gap: 12px;
  2445. margin: 12px 20px 24px;
  2446. align-items: start;
  2447. }
  2448. @media (max-width: 760px) {
  2449. .video-detail-grid {
  2450. grid-template-columns: 1fr;
  2451. }
  2452. }
  2453. .video-panel {
  2454. padding: 14px;
  2455. border: 1px solid #ECE5D6;
  2456. border-radius: 6px;
  2457. background: #FFFDF8;
  2458. }
  2459. .video-panel h2 {
  2460. margin: 0 0 8px;
  2461. color: #211F1A;
  2462. font-size: 15px;
  2463. }
  2464. .video-panel p {
  2465. color: #3A352B;
  2466. line-height: 1.6;
  2467. }
  2468. .video-embed {
  2469. width: 100%;
  2470. margin-top: 12px;
  2471. overflow: hidden;
  2472. border: 1px solid #D9CFBB;
  2473. border-radius: 4px;
  2474. background: #211F1A;
  2475. aspect-ratio: 9 / 16;
  2476. max-height: 620px;
  2477. }
  2478. .video-embed iframe {
  2479. width: 100%;
  2480. height: 100%;
  2481. display: block;
  2482. border: 0;
  2483. background: #211F1A;
  2484. }
  2485. .drawer-overlay {
  2486. position: fixed;
  2487. inset: 0;
  2488. z-index: 100;
  2489. display: none;
  2490. border: 0;
  2491. background: rgba(0, 0, 0, 0.35);
  2492. }
  2493. .drawer-overlay.open {
  2494. display: block;
  2495. }
  2496. .drawer {
  2497. position: fixed;
  2498. top: 0;
  2499. right: 0;
  2500. bottom: 0;
  2501. z-index: 101;
  2502. width: 560px;
  2503. max-width: 92vw;
  2504. overflow-y: auto;
  2505. background: #FFFDF8;
  2506. box-shadow: -4px 0 16px rgba(0, 0, 0, 0.15);
  2507. transform: translateX(100%);
  2508. transition: transform 200ms ease-out;
  2509. }
  2510. .drawer.open {
  2511. transform: translateX(0);
  2512. }
  2513. .drawer header {
  2514. position: sticky;
  2515. top: 0;
  2516. z-index: 2;
  2517. padding: 14px 18px;
  2518. color: #FFFDF8;
  2519. background: #3A352B;
  2520. }
  2521. .drawer h2 {
  2522. margin: 0;
  2523. padding-right: 32px;
  2524. font-size: 15px;
  2525. }
  2526. .drawer-close {
  2527. position: absolute;
  2528. top: 10px;
  2529. right: 12px;
  2530. width: 32px;
  2531. height: 32px;
  2532. border: 0;
  2533. color: #FFFDF8;
  2534. background: transparent;
  2535. cursor: pointer;
  2536. }
  2537. .drawer-content {
  2538. padding: 14px 18px;
  2539. }
  2540. .business-drawer-content {
  2541. display: grid;
  2542. gap: 10px;
  2543. }
  2544. .drawer-section {
  2545. padding: 12px 12px 10px;
  2546. border: 1px solid #ECE5D6;
  2547. border-left: 4px solid #A89E8B;
  2548. border-radius: 5px;
  2549. background: #FFFDF8;
  2550. }
  2551. .drawer-section.good {
  2552. border-left-color: #5E8C6A;
  2553. }
  2554. .drawer-section.warn {
  2555. border-left-color: #d97706;
  2556. }
  2557. .drawer-section.bad {
  2558. border-left-color: #dc2626;
  2559. }
  2560. .drawer-section.info {
  2561. border-left-color: #C45A3B;
  2562. }
  2563. .drawer-section h3 {
  2564. margin: 0 0 6px;
  2565. color: #211F1A;
  2566. font-size: 13px;
  2567. }
  2568. .drawer-section p,
  2569. .drawer-section li {
  2570. color: #3A352B;
  2571. font-size: 13px;
  2572. line-height: 1.65;
  2573. }
  2574. .drawer-section p {
  2575. margin: 0;
  2576. }
  2577. .drawer-section ul {
  2578. margin: 0;
  2579. padding-left: 16px;
  2580. }
  2581. @media (max-width: 760px) {
  2582. body {
  2583. overflow: auto;
  2584. }
  2585. .app-shell,
  2586. .scroll-area {
  2587. height: auto;
  2588. min-height: 100dvh;
  2589. }
  2590. .page-header {
  2591. align-items: flex-start;
  2592. flex-direction: column;
  2593. }
  2594. .toolbar-button,
  2595. .icon-button,
  2596. .mini-button {
  2597. min-height: 44px;
  2598. }
  2599. .icon-button {
  2600. width: 44px;
  2601. }
  2602. .legend-hint {
  2603. width: 100%;
  2604. margin-left: 0;
  2605. }
  2606. .ledger-layout {
  2607. grid-template-columns: 1fr;
  2608. padding: 8px;
  2609. }
  2610. .ledger-layout.demand-collapsed {
  2611. grid-template-columns: 1fr;
  2612. }
  2613. .demand-side-panel {
  2614. position: static;
  2615. }
  2616. .demand-side-panel.collapsed {
  2617. min-height: 0;
  2618. justify-items: stretch;
  2619. }
  2620. .demand-side-panel.collapsed .demand-panel-head {
  2621. display: flex;
  2622. justify-content: flex-start;
  2623. }
  2624. .demand-rail-label {
  2625. writing-mode: horizontal-tb;
  2626. }
  2627. .demand-cell,
  2628. .group-demand,
  2629. .source-cell,
  2630. .sub-source,
  2631. .group-source {
  2632. width: 260px;
  2633. min-width: 260px;
  2634. max-width: 260px;
  2635. }
  2636. .sticky-demand,
  2637. .sticky-source {
  2638. position: static !important;
  2639. left: auto;
  2640. }
  2641. .demand-cell,
  2642. .group-demand,
  2643. .source-cell,
  2644. .sub-source,
  2645. .group-source {
  2646. box-shadow: none;
  2647. }
  2648. .walk-lanes,
  2649. .video-detail-grid {
  2650. grid-template-columns: 1fr;
  2651. }
  2652. }
  2653. @media (prefers-reduced-motion: reduce) {
  2654. *,
  2655. *::before,
  2656. *::after {
  2657. transition-duration: 0.01ms !important;
  2658. animation-duration: 0.01ms !important;
  2659. animation-iteration-count: 1 !important;
  2660. }
  2661. }
  2662. /* ===================== Walk tree (游走路线图) ===================== */
  2663. .wt-page { margin: 12px 20px 28px; }
  2664. .wt-overview {
  2665. position: sticky;
  2666. top: 0;
  2667. z-index: 5;
  2668. display: flex;
  2669. flex-wrap: wrap;
  2670. gap: 10px 18px;
  2671. align-items: center;
  2672. padding: 12px 14px;
  2673. margin-bottom: 12px;
  2674. border: 1px solid #F3E3DB;
  2675. border-radius: 8px;
  2676. background: #FBF7EF;
  2677. }
  2678. .wt-overview-head { display: flex; flex-wrap: wrap; gap: 8px; align-items: baseline; }
  2679. .wt-root-chip {
  2680. padding: 2px 8px; border-radius: 4px; font-size: 12px; font-weight: 850;
  2681. color: #B4502F; background: #F3E3DB;
  2682. }
  2683. .wt-overview-head strong { color: #211F1A; font-size: 16px; font-weight: 850; }
  2684. .wt-overview-head small { color: var(--muted); font-size: 13px; }
  2685. .wt-overview-stats { display: flex; flex-wrap: wrap; gap: 6px; margin-left: auto; }
  2686. .wt-stat {
  2687. display: inline-flex; gap: 5px; align-items: baseline;
  2688. padding: 4px 9px; border: 1px solid #ECE5D6; border-radius: 999px;
  2689. background: #FFFDF8; color: #6F6657; font-size: 12.5px; font-weight: 700;
  2690. }
  2691. .wt-stat b { color: #211F1A; font-size: 14px; font-weight: 850; }
  2692. .wt-stat.go b { color: #4D6B36; }
  2693. .wt-stat.stop b { color: #b45309; }
  2694. .wt-controls { display: flex; gap: 6px; align-items: center; }
  2695. .wt-controls-label { color: var(--muted); font-size: 12.5px; font-weight: 700; }
  2696. .wt-controls button {
  2697. padding: 4px 10px; border: 1px solid #D9CFBB; border-radius: 999px;
  2698. background: #FFFDF8; color: #3A352B; font-size: 12.5px; font-weight: 700; cursor: pointer;
  2699. }
  2700. .wt-controls button:hover { border-color: #D99B82; background: #F6ECE4; color: #B4502F; }
  2701. /* batch grouping (全run游走图:搜索词 → 批次 → 视频) */
  2702. .wt-group { display: grid; gap: 2px; margin-top: 12px; }
  2703. .wt-group:first-child { margin-top: 0; }
  2704. .wt-batch { display: grid; gap: 2px; }
  2705. .wt-batch-head {
  2706. display: flex; align-items: center; gap: 8px;
  2707. margin: 6px 0 1px; padding: 2px 0 2px 8px;
  2708. border-left: 3px solid #D9CFBB;
  2709. }
  2710. .wt-batch-label { font-size: 13px; font-weight: 800; color: #3A352B; }
  2711. .wt-batch-count { font-size: 12.5px; font-weight: 700; color: var(--muted); }
  2712. .wt-batch-gate { font-size: 12px; color: #A89E8B; }
  2713. .wt-batch-videos { display: grid; gap: 2px; margin-left: 8px; }
  2714. /* tree */
  2715. .wt-tree { display: grid; gap: 2px; }
  2716. .wt-branch { display: grid; gap: 2px; }
  2717. .wt-children {
  2718. margin-left: 16px;
  2719. padding-left: 6px;
  2720. border-left: 1px solid #ECE5D6;
  2721. display: grid;
  2722. gap: 2px;
  2723. }
  2724. .wt-row {
  2725. display: flex;
  2726. gap: 8px;
  2727. align-items: center;
  2728. min-height: 38px;
  2729. padding: 5px 10px 5px 4px;
  2730. border: 1px solid transparent;
  2731. border-radius: 6px;
  2732. background: #FFFDF8;
  2733. }
  2734. .wt-row:hover { background: #FBF7EF; border-color: #ECE5D6; }
  2735. .wt-row.video { border-left: 3px solid #D9CFBB; }
  2736. .wt-row.video.good { border-left-color: #5E7E45; }
  2737. .wt-row.video.warn { border-left-color: #f59e0b; }
  2738. .wt-row.video.bad { border-left-color: #ef4444; }
  2739. .wt-row.video.tech { border-left-color: #8A8275; }
  2740. .wt-row.route.go { background: #F1F4E8; }
  2741. .wt-row.route.stop { background: #FFFDF8; }
  2742. .wt-toggle {
  2743. flex: 0 0 auto;
  2744. width: 22px; height: 22px;
  2745. display: inline-flex; align-items: center; justify-content: center;
  2746. border: none; border-radius: 4px; background: transparent; color: #8A8275; cursor: pointer;
  2747. }
  2748. .wt-toggle:hover { background: #ECE5D6; color: #211F1A; }
  2749. .wt-toggle.empty { cursor: default; }
  2750. .wt-row-main {
  2751. flex: 1 1 auto;
  2752. min-width: 0;
  2753. display: flex;
  2754. gap: 8px;
  2755. align-items: center;
  2756. padding: 0;
  2757. border: none;
  2758. background: transparent;
  2759. text-align: left;
  2760. cursor: pointer;
  2761. font: inherit;
  2762. }
  2763. .wt-summary-trigger {
  2764. flex: 0 0 auto;
  2765. display: inline-flex;
  2766. gap: 8px;
  2767. align-items: center;
  2768. padding: 2px;
  2769. border: none;
  2770. border-radius: 4px;
  2771. background: transparent;
  2772. cursor: pointer;
  2773. }
  2774. .wt-summary-trigger:hover {
  2775. background: #ECE5D6;
  2776. }
  2777. .wt-dot { flex: 0 0 auto; width: 8px; height: 8px; border-radius: 999px; background: #D9CFBB; }
  2778. .wt-dot.good { background: #5E7E45; }
  2779. .wt-dot.warn { background: #f59e0b; }
  2780. .wt-dot.bad { background: #ef4444; }
  2781. .wt-dot.tech { background: #8A8275; }
  2782. .wt-kicker {
  2783. flex: 0 0 auto;
  2784. padding: 1px 6px; border-radius: 4px;
  2785. color: #6F6657; background: #ECE5D6; font-size: 10.5px; font-weight: 800;
  2786. }
  2787. .wt-edge-icon { flex: 0 0 auto; display: inline-flex; color: #6F6657; }
  2788. .wt-row.route.tag .wt-edge-icon { color: #4D6B36; }
  2789. .wt-row.route.author .wt-edge-icon { color: #7c3aed; }
  2790. .wt-row.route.page .wt-edge-icon { color: #C45A3B; }
  2791. .wt-title {
  2792. flex: 0 1 auto;
  2793. min-width: 0;
  2794. overflow: hidden; white-space: nowrap; text-overflow: ellipsis;
  2795. color: #211F1A; font-size: 14px; font-weight: 750;
  2796. }
  2797. .wt-title-link {
  2798. text-decoration: none;
  2799. }
  2800. .wt-title-link:hover {
  2801. color: #B4502F;
  2802. text-decoration: underline;
  2803. text-underline-offset: 3px;
  2804. }
  2805. .wt-title.route { flex: 0 0 auto; max-width: 320px; }
  2806. .wt-newquery { flex: 0 0 auto; color: #B4502F; font-size: 13px; font-weight: 750; }
  2807. .wt-author { flex: 0 0 auto; color: #8A8275; font-size: 13px; max-width: 130px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
  2808. .wt-score { flex: 0 0 auto; color: #3A352B; font-size: 13px; font-weight: 800; }
  2809. .wt-status {
  2810. flex: 0 0 auto;
  2811. padding: 1px 8px; border-radius: 999px; font-size: 12px; font-weight: 800;
  2812. color: #6F6657; background: #ECE5D6;
  2813. }
  2814. .wt-status.good { color: #4D6B36; background: #E6EDDC; }
  2815. .wt-status.warn { color: #92400e; background: #fef3c7; }
  2816. .wt-status.bad { color: #b91c1c; background: #fee2e2; }
  2817. .wt-status.tech { color: #3A352B; background: #ECE5D6; }
  2818. .wt-walk { flex: 0 0 auto; padding: 1px 8px; border-radius: 999px; font-size: 12px; font-weight: 800; }
  2819. .wt-walk.go { color: #4D6B36; background: #E6EDDC; }
  2820. .wt-walk.stop { color: #92400e; background: #fef3c7; }
  2821. .wt-reason { flex: 0 1 auto; min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; color: #94782e; font-size: 12.5px; }
  2822. .wt-row-right { flex: 0 0 auto; display: flex; gap: 6px; align-items: center; }
  2823. .wt-badge {
  2824. padding: 2px 8px; border-radius: 999px; font-size: 12px; font-weight: 800;
  2825. color: #6F6657; background: #EFE9DC; border: 1px solid #ECE5D6;
  2826. }
  2827. .wt-badge.go { color: #4D6B36; background: #F1F4E8; border-color: #DCE7C8; }
  2828. .wt-badge.stop { color: #b45309; background: #fffbeb; border-color: #fde68a; }
  2829. .wt-badge.muted { color: #A89E8B; background: #FBF7EF; }
  2830. .wt-links { display: inline-flex; gap: 6px; }
  2831. .wt-link {
  2832. display: inline-flex; gap: 3px; align-items: center;
  2833. padding: 3px 8px; border: 1px solid #D9CFBB; border-radius: 4px;
  2834. color: #B4502F; background: #FFFDF8; font-size: 12px; font-weight: 700;
  2835. }
  2836. .wt-link:hover { border-color: #D99B82; background: #F6ECE4; }
  2837. @media (max-width: 720px) {
  2838. .wt-page { margin: 10px 10px 24px; }
  2839. .wt-author, .wt-reason { display: none; }
  2840. .wt-overview-stats { margin-left: 0; }
  2841. }
  2842. /* 暖调改版:衬线标题(思源宋体)+ 英雄数字。只用于标题层,密集表格/列表仍无衬线。 */
  2843. .brand span,
  2844. .app-shell h2,
  2845. .video-panel h2,
  2846. .source-query-text,
  2847. .rbd-demand strong,
  2848. .rbd-runs-head strong,
  2849. .demand-title,
  2850. .wt-overview-head strong,
  2851. .drawer header h2,
  2852. .score-total-banner b {
  2853. font-family: var(--font-serif);
  2854. font-weight: 600;
  2855. letter-spacing: 0.2px;
  2856. }
  2857. /* 暖调改版:柔阴影 + 大圆角承担层次,弱化硬边框 */
  2858. .video-panel,
  2859. .rbd-demand,
  2860. .rbd-platform,
  2861. .demand-side-panel,
  2862. .score-rule-card,
  2863. .score-total-banner {
  2864. box-shadow: var(--shadow-card);
  2865. border-radius: 12px;
  2866. }
  2867. .rbd-demand,
  2868. .video-panel,
  2869. .score-module,
  2870. .rbd-platform {
  2871. border-color: var(--line);
  2872. }