detail-style.css 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386
  1. /* 页面背景 */
  2. page {
  3. background-color: #F8F8F8;
  4. }
  5. .detail-container {
  6. padding-bottom: 200rpx;
  7. }
  8. /* 顶部动态状态区 */
  9. .detail-header {
  10. background: linear-gradient(135deg, #FF9800 0%, #FF5722 100%);
  11. padding: 40rpx 40rpx 50rpx 40rpx;
  12. color: #fff;
  13. border-radius: 20rpx;
  14. margin: 30rpx 30rpx 25rpx 30rpx;
  15. box-shadow: 0 5rpx 15rpx rgba(255, 87, 34, 0.2);
  16. }
  17. .status-row {
  18. display: flex;
  19. justify-content: space-between;
  20. align-items: center;
  21. margin-bottom: 40rpx;
  22. }
  23. .status-title {
  24. font-size: 28rpx;
  25. font-weight: bold;
  26. }
  27. .status-price {
  28. font-size: 40rpx;
  29. font-weight: bold;
  30. }
  31. /* 进度条 */
  32. .progress-bar {
  33. display: flex;
  34. justify-content: space-between;
  35. align-items: flex-start;
  36. padding: 0 10rpx;
  37. }
  38. .step-item {
  39. display: flex;
  40. flex-direction: column;
  41. align-items: center;
  42. flex: 1;
  43. position: relative;
  44. opacity: 0.6;
  45. }
  46. .step-item.active {
  47. opacity: 1;
  48. }
  49. .step-circle-wrapper {
  50. position: relative;
  51. width: 100%;
  52. display: flex;
  53. justify-content: center;
  54. margin-bottom: 10rpx;
  55. }
  56. .step-circle {
  57. width: 40rpx;
  58. height: 40rpx;
  59. border-radius: 50%;
  60. background-color: rgba(255, 255, 255, 0.3);
  61. color: #fff;
  62. font-size: 20rpx;
  63. display: flex;
  64. justify-content: center;
  65. align-items: center;
  66. position: relative;
  67. z-index: 2;
  68. }
  69. .step-item.active .step-circle {
  70. background-color: #fff;
  71. color: #FF5722;
  72. font-weight: bold;
  73. }
  74. .step-line {
  75. position: absolute;
  76. top: 50%;
  77. right: calc(50% + 20rpx);
  78. width: calc(100% - 40rpx);
  79. height: 2rpx;
  80. background-color: rgba(255, 255, 255, 0.3);
  81. z-index: 1;
  82. transform: translateY(-50%);
  83. }
  84. .step-line.active-line {
  85. background-color: #fff;
  86. }
  87. .step-text {
  88. font-size: 24rpx;
  89. }
  90. /* 内容区通用卡片 */
  91. .detail-content {
  92. width: 100%;
  93. box-sizing: border-box;
  94. padding: 0 30rpx;
  95. position: relative;
  96. z-index: 10;
  97. }
  98. .white-card {
  99. background-color: #fff;
  100. border-radius: 20rpx;
  101. padding: 30rpx;
  102. margin-bottom: 25rpx;
  103. box-shadow: 0 5rpx 20rpx rgba(0, 0, 0, 0.03);
  104. }
  105. /* 宠物信息条 */
  106. .pet-bar {
  107. display: flex;
  108. align-items: center;
  109. }
  110. .pb-avatar {
  111. width: 100rpx;
  112. height: 100rpx;
  113. border-radius: 50%;
  114. margin-right: 20rpx;
  115. }
  116. .pb-info {
  117. flex: 1;
  118. display: flex;
  119. flex-direction: column;
  120. }
  121. .pb-name-row {
  122. margin-bottom: 10rpx;
  123. }
  124. .pb-name {
  125. font-size: 32rpx;
  126. font-weight: bold;
  127. color: #333;
  128. margin-right: 15rpx;
  129. }
  130. .pb-breed {
  131. font-size: 26rpx;
  132. color: #999;
  133. }
  134. .pb-tags {
  135. display: flex;
  136. }
  137. .pb-tag {
  138. background-color: #FFF3E0;
  139. color: #FF9800;
  140. font-size: 22rpx;
  141. padding: 4rpx 16rpx;
  142. border-radius: 8rpx;
  143. }
  144. .pb-actions {
  145. display: flex;
  146. align-items: center;
  147. }
  148. .pb-btn {
  149. display: flex;
  150. align-items: center;
  151. justify-content: center;
  152. }
  153. .profile-btn {
  154. border: 2rpx solid #FF9800;
  155. color: #FF9800;
  156. font-size: 24rpx;
  157. padding: 8rpx 20rpx;
  158. border-radius: 30rpx;
  159. margin-right: 20rpx;
  160. }
  161. .phone-btn {
  162. width: 60rpx;
  163. height: 60rpx;
  164. border-radius: 50%;
  165. background-color: #FFF3E0;
  166. }
  167. .phone-icon {
  168. width: 32rpx;
  169. height: 32rpx;
  170. }
  171. /* 服务及路线信息 */
  172. .si-row {
  173. display: flex;
  174. align-items: flex-start;
  175. margin-bottom: 30rpx;
  176. }
  177. .si-row:last-child {
  178. margin-bottom: 0;
  179. }
  180. .si-icon {
  181. width: 36rpx;
  182. height: 36rpx;
  183. margin-right: 20rpx;
  184. margin-top: 4rpx;
  185. }
  186. .si-icon-uni {
  187. margin-right: 20rpx;
  188. margin-top: 4rpx;
  189. display: flex;
  190. align-items: center;
  191. justify-content: center;
  192. }
  193. .si-content {
  194. flex: 1;
  195. display: flex;
  196. flex-direction: column;
  197. }
  198. .si-label {
  199. font-size: 24rpx;
  200. color: #999;
  201. margin-bottom: 6rpx;
  202. }
  203. .icon-bg {
  204. width: 44rpx;
  205. height: 44rpx;
  206. border-radius: 8rpx;
  207. display: flex;
  208. justify-content: center;
  209. align-items: center;
  210. margin-right: 20rpx;
  211. margin-top: 4rpx;
  212. flex-shrink: 0;
  213. }
  214. .icon-bg.grey-bg {
  215. background-color: #F8F8F8;
  216. }
  217. .custom-icon {
  218. width: 28rpx;
  219. height: 28rpx;
  220. }
  221. .custom-icon-file {
  222. width: 36rpx;
  223. height: 36rpx;
  224. }
  225. .si-val {
  226. font-size: 28rpx;
  227. color: #333;
  228. }
  229. .record-btn {
  230. font-size: 24rpx;
  231. color: #FF5722;
  232. display: flex;
  233. align-items: center;
  234. }
  235. .record-arrow {
  236. width: 24rpx;
  237. height: 24rpx;
  238. margin-left: 6rpx;
  239. }
  240. /* 地址展现复用图标逻辑 */
  241. .addr-row {
  242. position: relative;
  243. align-items: stretch;
  244. }
  245. .icon-circle {
  246. width: 40rpx;
  247. height: 40rpx;
  248. border-radius: 50%;
  249. color: #fff;
  250. font-size: 22rpx;
  251. display: flex;
  252. align-items: center;
  253. justify-content: center;
  254. margin-right: 20rpx;
  255. flex-shrink: 0;
  256. font-weight: bold;
  257. margin-top: 6rpx;
  258. position: relative;
  259. z-index: 1;
  260. }
  261. .icon-circle.start {
  262. background-color: #FFB74D;
  263. }
  264. .icon-circle.end {
  265. background-color: #81C784;
  266. }
  267. .icon-circle.service {
  268. background-color: #81C784;
  269. }
  270. .route-line-vertical {
  271. position: absolute;
  272. left: 19rpx;
  273. top: 46rpx;
  274. bottom: -6rpx;
  275. border-left: 2rpx dashed #E0E0E0;
  276. width: 0;
  277. z-index: 0;
  278. }
  279. .si-addr-title {
  280. font-size: 30rpx;
  281. font-weight: bold;
  282. color: #333;
  283. margin-bottom: 6rpx;
  284. }
  285. .si-addr-desc {
  286. font-size: 24rpx;
  287. color: #999;
  288. }
  289. .nav-btn-circle {
  290. width: 50rpx;
  291. height: 50rpx;
  292. background-color: #FFF3E0;
  293. border-radius: 50%;
  294. display: flex;
  295. align-items: center;
  296. justify-content: center;
  297. margin-top: 6rpx;
  298. }
  299. .nav-arrow {
  300. width: 28rpx;
  301. height: 28rpx;
  302. }
  303. /* 打卡任务区 */
  304. .task-card {
  305. display: flex;
  306. flex-direction: column;
  307. }
  308. .tc-title {
  309. font-size: 30rpx;
  310. font-weight: bold;
  311. color: #333;
  312. margin-bottom: 15rpx;
  313. }
  314. .tc-desc {
  315. font-size: 22rpx;
  316. color: #666;
  317. margin-bottom: 12rpx;
  318. }
  319. .media-grid {
  320. display: flex;
  321. flex-wrap: wrap;
  322. gap: 20rpx;
  323. margin-bottom: 20rpx;
  324. }
  325. .media-item {
  326. width: 160rpx;
  327. height: 160rpx;
  328. position: relative;
  329. border-radius: 12rpx;
  330. }
  331. .media-preview {
  332. width: 100%;
  333. height: 100%;
  334. border-radius: 12rpx;
  335. }
  336. .media-del {
  337. position: absolute;
  338. top: -10rpx;
  339. right: -10rpx;
  340. width: 36rpx;
  341. height: 36rpx;
  342. background-color: rgba(0, 0, 0, 0.5);
  343. color: #fff;
  344. border-radius: 50%;
  345. display: flex;
  346. align-items: center;
  347. justify-content: center;
  348. font-size: 24rpx;
  349. z-index: 2;
  350. }
  351. .media-add {
  352. width: 160rpx;
  353. height: 160rpx;
  354. border: 2rpx dashed #ccc;
  355. border-radius: 12rpx;
  356. display: flex;
  357. flex-direction: column;
  358. align-items: center;
  359. justify-content: center;
  360. background-color: #FAFAFA;
  361. box-sizing: border-box;
  362. }
  363. .upload-icon-small {
  364. width: 40rpx;
  365. height: 40rpx;
  366. margin-bottom: 10rpx;
  367. }
  368. .upload-text-small {
  369. font-size: 22rpx;
  370. color: #999;
  371. }
  372. .full-media-add {
  373. width: 100%;
  374. height: 140rpx;
  375. background-color: #FAFAFA;
  376. border: 2rpx dashed #E0E0E0;
  377. border-radius: 12rpx;
  378. display: flex;
  379. flex-direction: column;
  380. justify-content: center;
  381. align-items: center;
  382. margin-top: 10rpx;
  383. }
  384. .upload-icon-large {
  385. width: 50rpx;
  386. height: 50rpx;
  387. margin-bottom: 10rpx;
  388. opacity: 0.5;
  389. }
  390. .upload-text-large {
  391. font-size: 24rpx;
  392. color: #999;
  393. }
  394. /* 基础信息区 */
  395. .bi-row {
  396. display: flex;
  397. align-items: flex-start;
  398. margin-bottom: 25rpx;
  399. }
  400. .bi-row:last-child {
  401. margin-bottom: 0;
  402. }
  403. .bi-icon {
  404. width: 32rpx;
  405. height: 32rpx;
  406. margin-right: 20rpx;
  407. margin-top: 4rpx;
  408. }
  409. .bi-icon-uni {
  410. margin-right: 20rpx;
  411. margin-top: 4rpx;
  412. display: flex;
  413. align-items: center;
  414. justify-content: center;
  415. }
  416. .bi-content {
  417. flex: 1;
  418. display: flex;
  419. flex-direction: column;
  420. }
  421. .bi-label {
  422. font-size: 24rpx;
  423. color: #999;
  424. margin-bottom: 6rpx;
  425. }
  426. .bi-val-row {
  427. display: flex;
  428. align-items: center;
  429. }
  430. .bi-val {
  431. font-size: 28rpx;
  432. color: #333;
  433. }
  434. .bi-copy {
  435. background-color: #F0F0F0;
  436. color: #666;
  437. font-size: 20rpx;
  438. padding: 2rpx 10rpx;
  439. border-radius: 6rpx;
  440. margin-left: 15rpx;
  441. }
  442. /* 订单进度 */
  443. .tl-title-row {
  444. display: flex;
  445. align-items: center;
  446. margin-bottom: 30rpx;
  447. }
  448. .orange-bar {
  449. width: 8rpx;
  450. height: 32rpx;
  451. background-color: #FF9800;
  452. margin-right: 16rpx;
  453. border-radius: 4rpx;
  454. }
  455. .tl-title {
  456. font-size: 30rpx;
  457. font-weight: bold;
  458. color: #333;
  459. }
  460. .tl-list {
  461. display: flex;
  462. flex-direction: column;
  463. padding-left: 10rpx;
  464. }
  465. .tl-item {
  466. display: flex;
  467. position: relative;
  468. padding-bottom: 40rpx;
  469. }
  470. .tl-item:last-child {
  471. padding-bottom: 0;
  472. }
  473. .tl-marker {
  474. width: 16rpx;
  475. height: 16rpx;
  476. border-radius: 50%;
  477. background-color: #E0E0E0;
  478. position: absolute;
  479. left: 0;
  480. top: 6rpx;
  481. z-index: 2;
  482. display: flex;
  483. justify-content: center;
  484. align-items: center;
  485. }
  486. .tl-marker.active {
  487. background-color: #fff;
  488. border: 3rpx solid #FF9800;
  489. width: 18rpx;
  490. height: 18rpx;
  491. left: -1rpx;
  492. /* offset for border width */
  493. }
  494. .tl-dot-inner {
  495. width: 10rpx;
  496. height: 10rpx;
  497. border-radius: 50%;
  498. background-color: #FF9800;
  499. }
  500. .tl-item:not(:last-child)::after {
  501. content: '';
  502. position: absolute;
  503. left: 7rpx;
  504. top: 24rpx;
  505. bottom: -6rpx;
  506. width: 2rpx;
  507. background-color: #FFE0B2;
  508. z-index: 1;
  509. }
  510. .tl-content-row {
  511. margin-left: 40rpx;
  512. display: flex;
  513. flex-direction: column;
  514. width: 100%;
  515. }
  516. .tl-header {
  517. display: flex;
  518. justify-content: space-between;
  519. align-items: center;
  520. width: 100%;
  521. margin-bottom: 10rpx;
  522. }
  523. .tl-status {
  524. font-size: 28rpx;
  525. color: #333;
  526. font-weight: 500;
  527. }
  528. .tl-time {
  529. font-size: 24rpx;
  530. color: #999;
  531. }
  532. .tl-medias {
  533. display: flex;
  534. flex-wrap: wrap;
  535. gap: 15rpx;
  536. margin-bottom: 15rpx;
  537. }
  538. .tl-img {
  539. width: 140rpx;
  540. height: 140rpx;
  541. border-radius: 8rpx;
  542. }
  543. .tl-remark {
  544. font-size: 24rpx;
  545. color: #666;
  546. background-color: #F9F9F9;
  547. padding: 15rpx;
  548. border-radius: 8rpx;
  549. line-height: 1.5;
  550. }
  551. /* 底部操作栏 */
  552. .bottom-action-bar {
  553. position: fixed;
  554. bottom: 0;
  555. left: 0;
  556. width: 100%;
  557. height: 120rpx;
  558. background-color: #fff;
  559. display: flex;
  560. align-items: center;
  561. justify-content: space-between;
  562. padding: 0 30rpx;
  563. box-shadow: 0 -5rpx 20rpx rgba(0, 0, 0, 0.05);
  564. box-sizing: border-box;
  565. padding-bottom: constant(safe-area-inset-bottom);
  566. padding-bottom: env(safe-area-inset-bottom);
  567. z-index: 100;
  568. }
  569. .action-left,
  570. .action-right {
  571. display: flex;
  572. align-items: center;
  573. }
  574. .action-btn {
  575. height: 64rpx;
  576. line-height: 64rpx;
  577. border-radius: 32rpx;
  578. font-size: 26rpx;
  579. padding: 0 35rpx;
  580. margin: 0;
  581. }
  582. .action-left .action-btn:first-child {
  583. margin-right: 20rpx;
  584. }
  585. .action-btn.grey-outline {
  586. background-color: #fff;
  587. color: #666;
  588. border: 1px solid #E0E0E0;
  589. }
  590. .action-btn.orange-outline {
  591. background-color: #FFF8F0;
  592. color: #FF9800;
  593. border: 1px solid #FF9800;
  594. }
  595. .action-btn.primary {
  596. background: linear-gradient(90deg, #FF9800 0%, #FF5722 100%);
  597. color: #fff;
  598. box-shadow: 0 4rpx 12rpx rgba(255, 87, 34, 0.2);
  599. border: none;
  600. }
  601. .action-btn.grey-bg {
  602. background: #E0E0E0;
  603. color: #999;
  604. box-shadow: none;
  605. border: none;
  606. }
  607. .action-btn::after {
  608. border: none;
  609. }
  610. /* 上传图片视频弹窗 */
  611. .upload-modal-mask {
  612. position: fixed;
  613. top: 0;
  614. left: 0;
  615. width: 100%;
  616. height: 100%;
  617. background-color: rgba(0, 0, 0, 0.4);
  618. z-index: 999;
  619. display: flex;
  620. justify-content: center;
  621. align-items: center;
  622. }
  623. .upload-modal-content {
  624. width: 600rpx;
  625. background-color: #ffffff;
  626. border-radius: 20rpx;
  627. padding: 40rpx;
  628. box-sizing: border-box;
  629. display: flex;
  630. flex-direction: column;
  631. }
  632. .um-header {
  633. text-align: center;
  634. margin-bottom: 40rpx;
  635. }
  636. .um-title {
  637. font-size: 32rpx;
  638. font-weight: bold;
  639. color: #333;
  640. }
  641. .um-grid {
  642. display: flex;
  643. flex-wrap: wrap;
  644. margin-bottom: 30rpx;
  645. }
  646. .um-item {
  647. width: 130rpx;
  648. height: 130rpx;
  649. border-radius: 8rpx;
  650. margin-right: 20rpx;
  651. margin-bottom: 20rpx;
  652. position: relative;
  653. background-color: #f5f5f5;
  654. overflow: hidden;
  655. }
  656. .um-item:nth-child(4n) {
  657. margin-right: 0;
  658. }
  659. .um-preview {
  660. width: 100%;
  661. height: 100%;
  662. }
  663. .um-del {
  664. position: absolute;
  665. top: 4rpx;
  666. right: 4rpx;
  667. width: 36rpx;
  668. height: 36rpx;
  669. line-height: 32rpx;
  670. text-align: center;
  671. background-color: rgba(0, 0, 0, 0.5);
  672. color: #fff;
  673. border-radius: 50%;
  674. font-size: 28rpx;
  675. }
  676. .um-add {
  677. width: 130rpx;
  678. height: 130rpx;
  679. border-radius: 8rpx;
  680. border: 1px dashed #e5e5e5;
  681. display: flex;
  682. flex-direction: column;
  683. justify-content: center;
  684. align-items: center;
  685. box-sizing: border-box;
  686. margin-bottom: 20rpx;
  687. }
  688. .um-add-icon {
  689. width: 44rpx;
  690. height: 44rpx;
  691. margin-bottom: 10rpx;
  692. opacity: 0.4;
  693. }
  694. .um-add-text {
  695. font-size: 24rpx;
  696. color: #ccc;
  697. }
  698. .um-textarea {
  699. width: 100%;
  700. height: 160rpx;
  701. background-color: #ffffff;
  702. border-radius: 12rpx;
  703. padding: 24rpx;
  704. font-size: 28rpx;
  705. color: #333;
  706. box-sizing: border-box;
  707. border: 1px solid #f0f0f0;
  708. }
  709. .um-footer {
  710. margin-top: 40rpx;
  711. display: flex;
  712. justify-content: center;
  713. }
  714. .um-submit-btn {
  715. width: 100%;
  716. height: 88rpx;
  717. line-height: 88rpx;
  718. border-radius: 44rpx;
  719. font-size: 32rpx;
  720. background-color: #E0E0E0;
  721. color: #fff;
  722. border: none;
  723. }
  724. .um-submit-btn.active {
  725. background: linear-gradient(90deg, #FF9800 0%, #FF5722 100%);
  726. color: #fff;
  727. box-shadow: 0 4rpx 10rpx rgba(255, 87, 34, 0.3);
  728. }
  729. .um-submit-btn::after {
  730. border: none;
  731. }
  732. /* 宠物档案弹窗 */
  733. .pet-modal-mask {
  734. position: fixed;
  735. top: 0;
  736. left: 0;
  737. width: 100%;
  738. height: 100%;
  739. background-color: rgba(0, 0, 0, 0.5);
  740. z-index: 999;
  741. display: flex;
  742. justify-content: center;
  743. align-items: center;
  744. }
  745. .pet-modal-content {
  746. width: 680rpx;
  747. max-height: 85vh;
  748. background-color: #fff;
  749. border-radius: 20rpx;
  750. display: flex;
  751. flex-direction: column;
  752. overflow: hidden;
  753. box-shadow: 0 8rpx 32rpx rgba(0, 0, 0, 0.15);
  754. }
  755. .pet-modal-header {
  756. display: flex;
  757. align-items: center;
  758. padding: 28rpx 30rpx 20rpx;
  759. border-bottom: 1px solid #f5f5f5;
  760. flex-shrink: 0;
  761. }
  762. .pet-modal-title {
  763. font-size: 32rpx;
  764. font-weight: bold;
  765. color: #333;
  766. }
  767. .close-icon-btn {
  768. width: 52rpx;
  769. height: 52rpx;
  770. line-height: 52rpx;
  771. text-align: center;
  772. font-size: 36rpx;
  773. color: #999;
  774. border-radius: 50%;
  775. background-color: #f5f5f5;
  776. flex-shrink: 0;
  777. }
  778. .pm-remark-btn {
  779. height: 52rpx;
  780. line-height: 52rpx;
  781. padding: 0 24rpx;
  782. background: linear-gradient(90deg, #FF9800 0%, #FF5722 100%);
  783. color: #fff;
  784. font-size: 26rpx;
  785. border-radius: 26rpx;
  786. margin-right: 16rpx;
  787. font-weight: bold;
  788. flex-shrink: 0;
  789. }
  790. .pet-modal-scroll {
  791. flex: 1;
  792. height: 65vh;
  793. overflow: auto;
  794. }
  795. .pet-base-info {
  796. display: flex;
  797. align-items: center;
  798. padding: 24rpx 30rpx;
  799. border-bottom: 1px solid #f9f9f9;
  800. }
  801. .pm-avatar {
  802. width: 100rpx;
  803. height: 100rpx;
  804. border-radius: 50%;
  805. margin-right: 20rpx;
  806. flex-shrink: 0;
  807. }
  808. .pm-info-text {
  809. flex: 1;
  810. display: flex;
  811. flex-direction: column;
  812. }
  813. .pm-name-row {
  814. display: flex;
  815. align-items: center;
  816. margin-bottom: 8rpx;
  817. }
  818. .pm-name {
  819. font-size: 32rpx;
  820. font-weight: bold;
  821. color: #333;
  822. margin-right: 12rpx;
  823. }
  824. .pm-gender {
  825. display: flex;
  826. align-items: center;
  827. background-color: #E3F2FD;
  828. color: #1976D2;
  829. font-size: 22rpx;
  830. padding: 2rpx 10rpx;
  831. border-radius: 10rpx;
  832. }
  833. .pm-gender.female {
  834. background-color: #FCE4EC;
  835. color: #C2185B;
  836. }
  837. .gender-icon {
  838. font-size: 22rpx;
  839. margin-right: 4rpx;
  840. }
  841. .pm-breed {
  842. font-size: 26rpx;
  843. color: #999;
  844. }
  845. .pm-detail-grid {
  846. padding: 20rpx 30rpx;
  847. display: flex;
  848. flex-wrap: wrap;
  849. gap: 16rpx;
  850. border-bottom: 1px solid #f9f9f9;
  851. }
  852. .pm-grid-item {
  853. background-color: #FAFAFA;
  854. border-radius: 12rpx;
  855. padding: 16rpx 20rpx;
  856. display: flex;
  857. flex-direction: column;
  858. }
  859. .pm-grid-item.half {
  860. width: calc(50% - 8rpx);
  861. }
  862. .pm-grid-item.full {
  863. width: 100%;
  864. }
  865. .pm-label {
  866. font-size: 24rpx;
  867. color: #999;
  868. margin-bottom: 8rpx;
  869. }
  870. .pm-val {
  871. font-size: 28rpx;
  872. color: #333;
  873. line-height: 1.5;
  874. }
  875. .pm-tags-row {
  876. display: flex;
  877. flex-wrap: wrap;
  878. padding: 16rpx 30rpx;
  879. gap: 16rpx;
  880. border-bottom: 1px solid #f9f9f9;
  881. }
  882. .pm-tag-chip {
  883. background-color: #FFF3E0;
  884. border: 1px solid #FFB74D;
  885. border-radius: 20rpx;
  886. padding: 6rpx 20rpx;
  887. }
  888. .pm-tag-chip-text {
  889. font-size: 24rpx;
  890. color: #FF9800;
  891. }
  892. .pm-log-section {
  893. padding: 20rpx 30rpx;
  894. }
  895. .pm-log-header {
  896. display: flex;
  897. align-items: center;
  898. margin-bottom: 20rpx;
  899. }
  900. .pm-log-section-title {
  901. font-size: 28rpx;
  902. font-weight: bold;
  903. color: #333;
  904. }
  905. .pm-log-item {
  906. padding: 18rpx 0;
  907. border-bottom: 1rpx solid #f5f5f5;
  908. display: flex;
  909. flex-direction: column;
  910. }
  911. .pm-log-date {
  912. font-size: 24rpx;
  913. color: #999;
  914. margin-bottom: 8rpx;
  915. }
  916. .pm-log-text {
  917. font-size: 28rpx;
  918. color: #333;
  919. line-height: 1.6;
  920. margin-bottom: 6rpx;
  921. }
  922. .pm-log-recorder {
  923. font-size: 22rpx;
  924. color: #FF9800;
  925. text-align: right;
  926. }
  927. .pm-log-recorder.system {
  928. color: #999;
  929. }
  930. .pm-bottom-close {
  931. margin: 16rpx 30rpx;
  932. height: 72rpx;
  933. line-height: 72rpx;
  934. border-radius: 36rpx;
  935. font-size: 28rpx;
  936. background-color: #f5f5f5;
  937. color: #666;
  938. border: none;
  939. }
  940. .pm-bottom-close::after {
  941. border: none;
  942. }
  943. /* 宠护小结底部弹窗 */
  944. .sum-modal-mask {
  945. position: fixed;
  946. top: 0;
  947. left: 0;
  948. width: 100%;
  949. height: 100%;
  950. background-color: rgba(0, 0, 0, 0.50);
  951. z-index: 999;
  952. display: flex;
  953. align-items: flex-end;
  954. }
  955. .sum-modal-sheet {
  956. width: 100%;
  957. max-height: 90vh;
  958. background-color: #fff;
  959. border-radius: 24rpx 24rpx 0 0;
  960. display: flex;
  961. flex-direction: column;
  962. overflow: hidden;
  963. }
  964. .sum-modal-scroll {
  965. flex: 1;
  966. overflow: hidden;
  967. }
  968. .sum-modal-inner {
  969. padding: 32rpx 36rpx 0;
  970. }
  971. .sum-modal-title {
  972. display: block;
  973. font-size: 34rpx;
  974. font-weight: bold;
  975. color: #333;
  976. text-align: center;
  977. margin-bottom: 30rpx;
  978. }
  979. .sum-meta-row {
  980. display: flex;
  981. margin-bottom: 16rpx;
  982. align-items: flex-start;
  983. }
  984. .sum-meta-label {
  985. font-size: 26rpx;
  986. color: #999;
  987. flex-shrink: 0;
  988. width: 140rpx;
  989. }
  990. .sum-meta-val {
  991. font-size: 24rpx;
  992. color: #333;
  993. flex: 1;
  994. }
  995. .sum-section-title {
  996. font-size: 26rpx;
  997. font-weight: bold;
  998. color: #333;
  999. padding-left: 12rpx;
  1000. border-left: 6rpx solid #FF9800;
  1001. margin-top: 24rpx;
  1002. margin-bottom: 16rpx;
  1003. }
  1004. .sum-pet-card {
  1005. background-color: #FAFAFA;
  1006. border-radius: 12rpx;
  1007. padding: 20rpx;
  1008. display: flex;
  1009. align-items: center;
  1010. }
  1011. .sum-pet-avatar {
  1012. width: 80rpx;
  1013. height: 80rpx;
  1014. border-radius: 50%;
  1015. margin-right: 20rpx;
  1016. flex-shrink: 0;
  1017. }
  1018. .sum-pet-info {
  1019. flex: 1;
  1020. display: flex;
  1021. flex-direction: column;
  1022. }
  1023. .sum-pet-name-row {
  1024. display: flex;
  1025. align-items: center;
  1026. margin-bottom: 8rpx;
  1027. }
  1028. .sum-pet-name {
  1029. font-size: 26rpx;
  1030. font-weight: bold;
  1031. color: #333;
  1032. margin-right: 12rpx;
  1033. }
  1034. .sum-pet-breed {
  1035. font-size: 24rpx;
  1036. color: #999;
  1037. }
  1038. .sum-pet-remark {
  1039. font-size: 24rpx;
  1040. color: #666;
  1041. line-height: 1.5;
  1042. }
  1043. .sum-textarea {
  1044. width: 100%;
  1045. min-height: 220rpx;
  1046. background-color: #fff;
  1047. border: 1px solid #eeeeee;
  1048. border-radius: 12rpx;
  1049. padding: 18rpx;
  1050. font-size: 26rpx;
  1051. color: #333;
  1052. box-sizing: border-box;
  1053. line-height: 1.8;
  1054. }
  1055. .sum-sign-row {
  1056. display: flex;
  1057. align-items: center;
  1058. margin-top: 30rpx;
  1059. padding: 16rpx 0;
  1060. border-top: 1px solid #f5f5f5;
  1061. }
  1062. .sum-sign-label {
  1063. font-size: 26rpx;
  1064. color: #999;
  1065. margin-right: 10rpx;
  1066. }
  1067. .sum-sign-val {
  1068. font-size: 26rpx;
  1069. color: #333;
  1070. }
  1071. .sum-footer {
  1072. padding: 20rpx 36rpx 36rpx;
  1073. padding-bottom: max(36rpx, constant(safe-area-inset-bottom));
  1074. padding-bottom: max(36rpx, env(safe-area-inset-bottom));
  1075. background-color: #fff;
  1076. }
  1077. .sum-submit-btn {
  1078. width: 100%;
  1079. height: 84rpx;
  1080. line-height: 84rpx;
  1081. border-radius: 42rpx;
  1082. font-size: 30rpx;
  1083. background: linear-gradient(90deg, #FF9800 0%, #FF5722 100%);
  1084. color: #fff;
  1085. border: none;
  1086. box-shadow: 0 4rpx 16rpx rgba(255, 87, 34, 0.25);
  1087. }
  1088. .sum-submit-btn::after {
  1089. border: none;
  1090. }
  1091. /* 宠护小结 - 居中白卡样式 */
  1092. .sum-modal-mask {
  1093. position: fixed;
  1094. top: 0;
  1095. left: 0;
  1096. width: 100%;
  1097. height: 100%;
  1098. background-color: rgba(0, 0, 0, 0.5);
  1099. z-index: 999;
  1100. display: flex;
  1101. justify-content: center;
  1102. align-items: center;
  1103. }
  1104. .sum-modal-card {
  1105. width: 660rpx;
  1106. max-height: 80vh;
  1107. background-color: #fff;
  1108. border-radius: 20rpx;
  1109. display: flex;
  1110. flex-direction: column;
  1111. overflow: hidden;
  1112. box-shadow: 0 8rpx 32rpx rgba(0, 0, 0, 0.15);
  1113. }
  1114. .sum-modal-scroll {
  1115. flex: 1;
  1116. overflow: hidden;
  1117. }
  1118. /* 宠物档案 - 备注按钮 */
  1119. .pet-modal-header {
  1120. display: flex;
  1121. align-items: center;
  1122. padding: 30rpx 30rpx 20rpx;
  1123. border-bottom: 1px solid #f5f5f5;
  1124. }
  1125. .pm-remark-btn {
  1126. height: 52rpx;
  1127. line-height: 52rpx;
  1128. padding: 0 24rpx;
  1129. background: linear-gradient(90deg, #FF9800 0%, #FF5722 100%);
  1130. color: #fff;
  1131. font-size: 26rpx;
  1132. border-radius: 26rpx;
  1133. margin-right: 16rpx;
  1134. font-weight: bold;
  1135. }
  1136. /* 标签芯片 */
  1137. .pm-tags-row {
  1138. display: flex;
  1139. flex-wrap: wrap;
  1140. padding: 0 24rpx 20rpx;
  1141. gap: 16rpx;
  1142. }
  1143. .pm-tag-chip {
  1144. background-color: #FFF3E0;
  1145. border: 1px solid #FFB74D;
  1146. border-radius: 20rpx;
  1147. padding: 6rpx 20rpx;
  1148. }
  1149. .pm-tag-chip-text {
  1150. font-size: 24rpx;
  1151. color: #FF9800;
  1152. }
  1153. /* 备注日志 */
  1154. .pm-log-section {
  1155. padding: 20rpx 24rpx;
  1156. border-top: 1px solid #f5f5f5;
  1157. margin-top: 10rpx;
  1158. }
  1159. .pm-log-header {
  1160. display: flex;
  1161. align-items: center;
  1162. margin-bottom: 20rpx;
  1163. }
  1164. .pm-log-section-title {
  1165. font-size: 28rpx;
  1166. font-weight: bold;
  1167. color: #333;
  1168. }
  1169. .pm-log-item {
  1170. padding: 16rpx 0;
  1171. border-bottom: 1px solid #f9f9f9;
  1172. display: flex;
  1173. flex-direction: column;
  1174. }
  1175. .pm-log-date {
  1176. font-size: 24rpx;
  1177. color: #999;
  1178. margin-bottom: 8rpx;
  1179. }
  1180. .pm-log-text {
  1181. font-size: 28rpx;
  1182. color: #333;
  1183. line-height: 1.6;
  1184. margin-bottom: 6rpx;
  1185. }
  1186. .pm-log-recorder {
  1187. font-size: 22rpx;
  1188. color: #FF9800;
  1189. text-align: right;
  1190. }
  1191. .pm-log-recorder.system {
  1192. color: #999;
  1193. }