index.css 19 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003
  1. .custom-tabbar[data-v-52454e90] {
  2. position: fixed;
  3. bottom: 0;
  4. left: 0;
  5. width: 100%;
  6. height: 50px;
  7. background-color: #ffffff;
  8. display: flex;
  9. flex-direction: column;
  10. z-index: 999;
  11. padding-bottom: env(safe-area-inset-bottom);
  12. }
  13. .tabbar-border[data-v-52454e90] {
  14. height: 1px;
  15. background-color: rgba(0, 0, 0, 0.1);
  16. transform: scaleY(0.5);
  17. }
  18. .tabbar-list[data-v-52454e90] {
  19. display: flex;
  20. flex: 1;
  21. align-items: center;
  22. justify-content: space-around;
  23. }
  24. .tabbar-item[data-v-52454e90] {
  25. display: flex;
  26. flex-direction: column;
  27. align-items: center;
  28. justify-content: center;
  29. height: 100%;
  30. flex: 1;
  31. }
  32. .tabbar-icon[data-v-52454e90] {
  33. width: 24px;
  34. height: 24px;
  35. margin-bottom: 2px;
  36. }
  37. .tabbar-text[data-v-52454e90] {
  38. font-size: 10px;
  39. color: #999999;
  40. }
  41. .tabbar-text-active[data-v-52454e90] {
  42. color: #FF5722;
  43. }
  44. body {
  45. background-color: #F8F8F8;
  46. }
  47. /* 自定义导航标题栏(因navigationStyle:custom) */
  48. .custom-nav-bar {
  49. padding: 2.5rem 0.9375rem 0.625rem;
  50. background-color: #fff;
  51. display: flex;
  52. align-items: center;
  53. justify-content: center;
  54. }
  55. .nav-title {
  56. font-size: 1.0625rem;
  57. font-weight: bold;
  58. color: #333;
  59. }
  60. /* 吸顶容器:状态tab + 搜索 + 筛选 */
  61. .sticky-header {
  62. position: -webkit-sticky;
  63. position: sticky;
  64. top: 0;
  65. z-index: 999;
  66. background-color: #F8F8F8;
  67. }
  68. .container {
  69. background-color: #F8F8F8;
  70. display: flex;
  71. flex-direction: column;
  72. position: absolute;
  73. top: 0;
  74. left: 0;
  75. right: 0;
  76. bottom: 0;
  77. }
  78. /* 状态 Tabs */
  79. .status-tabs {
  80. display: flex;
  81. background-color: #fff;
  82. padding: 0 0.9375rem;
  83. justify-content: space-between;
  84. }
  85. .tab-item {
  86. position: relative;
  87. padding: 0.625rem 0;
  88. font-size: 0.8125rem;
  89. color: #666;
  90. font-weight: 500;
  91. }
  92. .tab-item.active {
  93. color: #FF5722;
  94. font-weight: bold;
  95. }
  96. .indicator {
  97. position: absolute;
  98. bottom: 0;
  99. left: 50%;
  100. transform: translateX(-50%);
  101. width: 1.25rem;
  102. height: 0.1875rem;
  103. background-color: #FF5722;
  104. border-radius: 0.09375rem;
  105. }
  106. /* 搜索栏 */
  107. .search-bar {
  108. padding: 0.3125rem 0.9375rem;
  109. background-color: #fff;
  110. }
  111. .search-input-box {
  112. display: flex;
  113. align-items: center;
  114. background-color: #F8F8F8;
  115. height: 2rem;
  116. border-radius: 1rem;
  117. padding: 0 0.9375rem;
  118. }
  119. .search-input {
  120. flex: 1;
  121. font-size: 0.8125rem;
  122. color: #333;
  123. padding-left: 0.625rem;
  124. /* Give some left padding since icon is gone */
  125. }
  126. .ph-style {
  127. font-size: 0.8125rem;
  128. color: #999;
  129. }
  130. /* 筛选栏 (改用 wrapper 进行相对定位) */
  131. .filter-wrapper {
  132. position: relative;
  133. z-index: 998;
  134. }
  135. .filter-bar {
  136. display: flex;
  137. background-color: #fff;
  138. padding: 0.15625rem 0.9375rem 0.3125rem 0.9375rem;
  139. justify-content: space-between;
  140. position: relative;
  141. z-index: 998;
  142. }
  143. .filter-item {
  144. width: 48%;
  145. display: flex;
  146. align-items: center;
  147. justify-content: center;
  148. font-size: 0.8125rem;
  149. color: #666;
  150. background-color: #F8F8F8;
  151. height: 1.75rem;
  152. border-radius: 0.375rem;
  153. transition: all 0.2s;
  154. }
  155. .filter-item.active {
  156. background-color: #FFF3E0;
  157. }
  158. .active-text {
  159. color: #FF5722;
  160. /* Matches red triangle */
  161. font-weight: 500;
  162. }
  163. .triangle {
  164. width: 0;
  165. height: 0;
  166. border-left: 0.25rem solid transparent;
  167. border-right: 0.25rem solid transparent;
  168. margin-left: 0.3125rem;
  169. transition: all 0.2s;
  170. }
  171. .triangle.down {
  172. border-top: 0.3125rem solid #dcdcdc;
  173. }
  174. .filter-item.active .triangle.down,
  175. .active-text+.triangle.down {
  176. border-top-color: #FF5722;
  177. }
  178. .triangle.up {
  179. border-bottom: 0.3125rem solid #FF5722;
  180. }
  181. /* 下拉面板 */
  182. .dropdown-mask {
  183. position: absolute;
  184. top: 100%;
  185. left: 0;
  186. right: 0;
  187. height: 100vh;
  188. background-color: rgba(0, 0, 0, 0.4);
  189. z-index: 80;
  190. }
  191. .dropdown-panel {
  192. position: absolute;
  193. top: 100%;
  194. left: 0;
  195. right: 0;
  196. background-color: #fff;
  197. z-index: 90;
  198. border-radius: 0 0 0.625rem 0.625rem;
  199. box-shadow: 0 0.3125rem 0.625rem rgba(0, 0, 0, 0.05);
  200. overflow: hidden;
  201. }
  202. .type-option {
  203. padding: 0.9375rem 1.25rem;
  204. font-size: 0.875rem;
  205. color: #333;
  206. border-bottom: 1px solid #f5f5f5;
  207. }
  208. .type-option:last-child {
  209. border-bottom: none;
  210. }
  211. .type-option.selected uni-text {
  212. color: #FF5722;
  213. font-weight: bold;
  214. }
  215. .calendar-panel {
  216. padding-bottom: 0.9375rem;
  217. }
  218. /* Custom Calendar Styles */
  219. .custom-calendar-container {
  220. padding: 0.625rem 0.9375rem 0;
  221. }
  222. .cal-header {
  223. display: flex;
  224. justify-content: space-between;
  225. align-items: center;
  226. padding: 0.625rem 0;
  227. }
  228. .cal-title {
  229. font-size: 1rem;
  230. font-weight: bold;
  231. color: #333;
  232. }
  233. .cal-weekdays {
  234. display: flex;
  235. justify-content: space-around;
  236. padding: 0.625rem 0;
  237. border-bottom: 1px solid #f5f5f5;
  238. }
  239. .wk-item {
  240. font-size: 0.75rem;
  241. color: #999;
  242. width: 14.28%;
  243. text-align: center;
  244. }
  245. .cal-body {
  246. display: flex;
  247. flex-wrap: wrap;
  248. padding-top: 0.625rem;
  249. }
  250. .cal-day-box {
  251. width: 14.28%;
  252. height: 2.5rem;
  253. display: flex;
  254. align-items: center;
  255. justify-content: center;
  256. margin-bottom: 0.3125rem;
  257. position: relative;
  258. }
  259. .cal-day-text {
  260. width: 2rem;
  261. height: 2rem;
  262. line-height: 2rem;
  263. text-align: center;
  264. font-size: 0.875rem;
  265. color: #333;
  266. border-radius: 0.25rem;
  267. position: relative;
  268. z-index: 2;
  269. }
  270. /* Range styles matching Figure 2 */
  271. .cal-day-box.is-start .cal-day-text,
  272. .cal-day-box.is-end .cal-day-text {
  273. background-color: #FF5722;
  274. color: #fff;
  275. font-weight: bold;
  276. }
  277. .cal-day-box.is-start::after {
  278. content: '';
  279. position: absolute;
  280. right: 0;
  281. top: 0.25rem;
  282. bottom: 0.25rem;
  283. width: 50%;
  284. background-color: #FFF3E0;
  285. z-index: 1;
  286. }
  287. .cal-day-box.is-end::after {
  288. content: '';
  289. position: absolute;
  290. left: 0;
  291. top: 0.25rem;
  292. bottom: 0.25rem;
  293. width: 50%;
  294. background-color: #FFF3E0;
  295. z-index: 1;
  296. }
  297. .cal-day-box.is-start.is-end::after {
  298. display: none;
  299. /* No range background if same day */
  300. }
  301. .cal-day-box.is-between {
  302. background-color: #FFF3E0;
  303. /* reduce height slightly to match design */
  304. margin-top: 0.25rem;
  305. height: 2rem;
  306. margin-bottom: 0.5625rem;
  307. }
  308. .cal-day-box.is-between .cal-day-text {
  309. color: #FF5722;
  310. }
  311. .calendar-actions {
  312. display: flex;
  313. justify-content: space-between;
  314. padding: 0 0.9375rem;
  315. margin-top: 0.625rem;
  316. }
  317. .cal-btn {
  318. width: 48%;
  319. height: 2.1875rem;
  320. line-height: 2.1875rem;
  321. text-align: center;
  322. border-radius: 0.3125rem;
  323. font-size: 0.875rem;
  324. margin: 0;
  325. }
  326. .cal-btn.reset {
  327. background-color: #f5f5f5;
  328. color: #666;
  329. }
  330. .cal-btn.confirm {
  331. background-color: #FF5722;
  332. color: #fff;
  333. }
  334. /* 订单列表 */
  335. .order-list {
  336. padding: 0 0.9375rem;
  337. width: 100%;
  338. box-sizing: border-box;
  339. }
  340. .order-card {
  341. background-color: #fff;
  342. border-radius: 0.75rem;
  343. padding: 0.625rem 0.625rem;
  344. margin-bottom: 0.625rem;
  345. box-shadow: 0 0.125rem 0.5rem rgba(0, 0, 0, 0.03);
  346. }
  347. .order-card:first-child {
  348. margin-top: 0.625rem;
  349. }
  350. .card-header {
  351. display: flex;
  352. justify-content: space-between;
  353. align-items: center;
  354. margin-bottom: 0.46875rem;
  355. }
  356. .type-badge {
  357. display: flex;
  358. align-items: center;
  359. }
  360. .type-icon {
  361. width: 1.375rem;
  362. height: 1.375rem;
  363. margin-right: 0.46875rem;
  364. background-color: #FFF3E0;
  365. border-radius: 50%;
  366. padding: 0.1875rem;
  367. box-sizing: border-box;
  368. }
  369. .type-text {
  370. font-size: 0.9375rem;
  371. font-weight: bold;
  372. color: #333;
  373. }
  374. .status-badge {
  375. font-size: 0.875rem;
  376. }
  377. .status-badge.highlight {
  378. color: #FF5722;
  379. }
  380. .status-badge.processing {
  381. color: #2196F3;
  382. }
  383. .status-badge.finish {
  384. color: #4CAF50;
  385. }
  386. .status-badge.reject {
  387. color: #9E9E9E;
  388. }
  389. .time-row {
  390. display: flex;
  391. justify-content: space-between;
  392. align-items: center;
  393. margin-bottom: 0.78125rem;
  394. }
  395. .time-row .time-col {
  396. display: flex;
  397. align-items: center;
  398. font-size: 0.8125rem;
  399. color: #333;
  400. }
  401. .time-row .label {
  402. color: #666;
  403. margin-right: 0.3125rem;
  404. }
  405. .price {
  406. font-size: 1.125rem;
  407. font-weight: bold;
  408. color: #FF5722;
  409. }
  410. /* 宠物卡片 */
  411. .pet-card {
  412. background-color: #FFF8F0;
  413. border-radius: 0.5rem;
  414. padding: 0.46875rem 0.625rem;
  415. display: flex;
  416. align-items: center;
  417. margin-bottom: 0.625rem;
  418. }
  419. .pet-avatar {
  420. width: 2.5rem;
  421. height: 2.5rem;
  422. border-radius: 50%;
  423. margin-right: 0.625rem;
  424. }
  425. .pet-info {
  426. flex: 1;
  427. display: flex;
  428. flex-direction: column;
  429. }
  430. .pet-name {
  431. font-size: 0.875rem;
  432. font-weight: bold;
  433. color: #333;
  434. margin-bottom: 0.15625rem;
  435. }
  436. .pet-breed {
  437. font-size: 0.75rem;
  438. color: #999;
  439. }
  440. .pet-profile-btn {
  441. font-size: 0.75rem;
  442. color: #FF9800;
  443. border: 1px solid #FF9800;
  444. padding: 0.1875rem 0.625rem;
  445. border-radius: 1.5625rem;
  446. background-color: #fff;
  447. }
  448. /* 路线信息 (复用) */
  449. .route-info {
  450. margin-bottom: 0.78125rem;
  451. }
  452. .route-item {
  453. display: flex;
  454. align-items: flex-start;
  455. padding-bottom: 0.375rem;
  456. /* Radically reduced for compactness */
  457. position: relative;
  458. width: 100%;
  459. }
  460. /* 路线项底部的间隔 */
  461. .route-item:not(:last-child) {
  462. margin-bottom: 0.15625rem;
  463. /* Radically reduced for compactness */
  464. }
  465. .route-item:last-child {
  466. padding-bottom: 0;
  467. margin-bottom: 0;
  468. }
  469. .route-line-vertical {
  470. position: absolute;
  471. left: 0.59375rem;
  472. top: 1.4375rem;
  473. bottom: -0.46875rem;
  474. /* Adjusted to connect the now-closer nodes */
  475. border-left: 0.0625rem dashed #E0E0E0;
  476. width: 0;
  477. z-index: 0;
  478. }
  479. .icon-circle {
  480. width: 1.25rem;
  481. height: 1.25rem;
  482. border-radius: 50%;
  483. color: #fff;
  484. font-size: 0.6875rem;
  485. display: flex;
  486. align-items: center;
  487. justify-content: center;
  488. margin-right: 0.625rem;
  489. flex-shrink: 0;
  490. font-weight: bold;
  491. margin-top: 0.1875rem;
  492. position: relative;
  493. z-index: 1;
  494. }
  495. .icon-circle.service {
  496. background-color: #81C784;
  497. }
  498. .icon-circle.start {
  499. background-color: #FFB74D;
  500. }
  501. .icon-circle.end {
  502. background-color: #81C784;
  503. }
  504. .address-box {
  505. flex: 1;
  506. display: flex;
  507. flex-direction: column;
  508. margin-right: 0.625rem;
  509. }
  510. .addr-title {
  511. font-size: 0.875rem;
  512. font-weight: bold;
  513. color: #333;
  514. margin-bottom: 0.125rem;
  515. }
  516. .addr-desc {
  517. font-size: 0.75rem;
  518. color: #999;
  519. line-height: 1.4;
  520. }
  521. .distance-tag {
  522. display: flex;
  523. align-items: center;
  524. justify-content: flex-end;
  525. flex-shrink: 0;
  526. min-width: 2.5rem;
  527. }
  528. .distance-text {
  529. font-size: 0.75rem;
  530. color: #FF5722;
  531. margin-right: 0.46875rem;
  532. font-weight: 500;
  533. }
  534. .nav-icon-circle {
  535. width: 1.5rem;
  536. height: 1.5rem;
  537. background-color: #FFF3E0;
  538. border-radius: 50%;
  539. display: flex;
  540. align-items: center;
  541. justify-content: center;
  542. }
  543. .nav-arrow {
  544. width: 0.75rem;
  545. height: 0.75rem;
  546. }
  547. .service-content {
  548. margin-top: -0.3125rem;
  549. /* Shifted up using negative margin for max compactness */
  550. font-size: 0.75rem;
  551. color: #666;
  552. padding-left: 1.875rem;
  553. }
  554. .content-label {
  555. color: #999;
  556. margin-right: 0.3125rem;
  557. }
  558. /* 备注 */
  559. .remark-box {
  560. background-color: #F8F8F8;
  561. padding: 0.46875rem 0.625rem;
  562. border-radius: 0.25rem;
  563. font-size: 0.8125rem;
  564. color: #666;
  565. margin-bottom: 0.9375rem;
  566. }
  567. /* 底部按钮 */
  568. .action-btns {
  569. display: flex;
  570. justify-content: space-between;
  571. margin-top: 0.46875rem;
  572. }
  573. .action-left {
  574. display: flex;
  575. }
  576. .action-right {
  577. display: flex;
  578. }
  579. .btn {
  580. height: 1.875rem;
  581. line-height: 1.875rem;
  582. border-radius: 0.9375rem;
  583. font-size: 0.8125rem;
  584. padding: 0 0.9375rem;
  585. margin: 0;
  586. }
  587. .action-right .btn:not(:last-child) {
  588. margin-right: 0.625rem;
  589. }
  590. .btn::after {
  591. border: none;
  592. }
  593. .btn.normal {
  594. background-color: #F8F8F8;
  595. color: #666;
  596. border: none;
  597. }
  598. .btn.primary {
  599. background: linear-gradient(90deg, #FF9800 0%, #FF5722 100%);
  600. color: #fff;
  601. box-shadow: 0 0.125rem 0.375rem rgba(255, 87, 34, 0.2);
  602. border: none;
  603. }
  604. /* 宠物档案弹窗 */
  605. .pet-modal-mask {
  606. position: fixed;
  607. top: 0;
  608. left: 0;
  609. right: 0;
  610. bottom: 0;
  611. background-color: rgba(0, 0, 0, 0.4);
  612. z-index: 1000;
  613. display: flex;
  614. align-items: center;
  615. justify-content: center;
  616. }
  617. .pet-modal-content {
  618. width: 21.25rem;
  619. height: 85vh;
  620. background-color: #fff;
  621. border-radius: 0.625rem;
  622. display: flex;
  623. flex-direction: column;
  624. overflow: hidden;
  625. }
  626. .pet-modal-header {
  627. display: flex;
  628. align-items: center;
  629. justify-content: space-between;
  630. padding: 0.9375rem;
  631. border-bottom: 0.03125rem solid #F0F0F0;
  632. }
  633. .pet-modal-title {
  634. font-size: 1.0625rem;
  635. font-weight: bold;
  636. color: #333;
  637. }
  638. .pet-modal-scroll {
  639. flex: 1;
  640. height: 0;
  641. padding: 0.9375rem;
  642. box-sizing: border-box;
  643. }
  644. .pet-base-info {
  645. display: flex;
  646. align-items: center;
  647. margin-bottom: 1.25rem;
  648. }
  649. .pm-avatar {
  650. width: 3.75rem;
  651. height: 3.75rem;
  652. border-radius: 50%;
  653. margin-right: 0.9375rem;
  654. border: 0.0625rem solid #f5f5f5;
  655. }
  656. .pm-info-text {
  657. flex: 1;
  658. display: flex;
  659. flex-direction: column;
  660. }
  661. .pm-name-row {
  662. display: flex;
  663. align-items: center;
  664. margin-bottom: 0.46875rem;
  665. }
  666. .pm-name {
  667. font-size: 1.125rem;
  668. font-weight: bold;
  669. color: #333;
  670. margin-right: 0.625rem;
  671. }
  672. .pm-gender {
  673. display: flex;
  674. align-items: center;
  675. background-color: #E3F2FD;
  676. padding: 0.125rem 0.375rem;
  677. border-radius: 0.625rem;
  678. }
  679. .pm-gender uni-text {
  680. font-size: 0.6875rem;
  681. color: #1E88E5;
  682. }
  683. .pm-gender .gender-icon {
  684. font-weight: bold;
  685. margin-right: 0.125rem;
  686. }
  687. .pm-gender.female {
  688. background-color: #FCE4EC;
  689. }
  690. .pm-gender.female uni-text {
  691. color: #D81B60;
  692. }
  693. .pm-breed {
  694. font-size: 0.8125rem;
  695. color: #999;
  696. }
  697. .pm-detail-grid {
  698. display: flex;
  699. flex-wrap: wrap;
  700. justify-content: space-between;
  701. }
  702. .pm-grid-item {
  703. background-color: #F8F8F8;
  704. border-radius: 0.5rem;
  705. padding: 0.75rem;
  706. margin-bottom: 0.625rem;
  707. display: flex;
  708. flex-direction: column;
  709. }
  710. .pm-grid-item.half {
  711. width: 48%;
  712. box-sizing: border-box;
  713. }
  714. .pm-grid-item.full {
  715. width: 100%;
  716. box-sizing: border-box;
  717. }
  718. .pm-label {
  719. font-size: 0.75rem;
  720. color: #999;
  721. margin-bottom: 0.3125rem;
  722. }
  723. .pm-val {
  724. font-size: 0.875rem;
  725. color: #333;
  726. font-weight: 500;
  727. }
  728. .pm-tags {
  729. display: flex;
  730. flex-wrap: wrap;
  731. gap: 0.625rem;
  732. margin-bottom: 1.25rem;
  733. }
  734. .pm-tag {
  735. background-color: #FFF8EB;
  736. border: 0.0625rem solid #FFCC80;
  737. color: #FF9800;
  738. font-size: 0.6875rem;
  739. padding: 0.25rem 0.75rem;
  740. border-radius: 0.9375rem;
  741. }
  742. .pm-section-title {
  743. display: flex;
  744. align-items: center;
  745. margin-bottom: 0.9375rem;
  746. padding-top: 0.9375rem;
  747. border-top: 0.0625rem dashed #F0F0F0;
  748. }
  749. .pm-section-title .orange-bar {
  750. width: 0.25rem;
  751. height: 1rem;
  752. background-color: #FF9800;
  753. margin-right: 0.5rem;
  754. border-radius: 0.125rem;
  755. }
  756. .pm-section-title uni-text {
  757. font-size: 0.9375rem;
  758. font-weight: bold;
  759. color: #333;
  760. }
  761. .pm-log-list {
  762. display: flex;
  763. flex-direction: column;
  764. }
  765. .pm-log-item {
  766. display: flex;
  767. flex-direction: column;
  768. padding: 0.75rem 0;
  769. border-bottom: 0.03125rem solid #F0F0F0;
  770. }
  771. .pm-log-item:last-child {
  772. border-bottom: none;
  773. }
  774. .pm-log-date {
  775. font-size: 0.75rem;
  776. color: #999;
  777. margin-bottom: 0.5rem;
  778. }
  779. .pm-log-text {
  780. font-size: 0.875rem;
  781. color: #333;
  782. line-height: 1.6;
  783. margin-bottom: 0.625rem;
  784. }
  785. .pm-log-recorder {
  786. font-size: 0.75rem;
  787. color: #FF9800;
  788. align-self: flex-end;
  789. }
  790. .pm-bottom-close {
  791. width: 100%;
  792. height: 2.5rem;
  793. line-height: 2.5rem;
  794. background-color: #F5F5F5;
  795. color: #666;
  796. border-radius: 1.25rem;
  797. font-size: 0.9375rem;
  798. font-weight: bold;
  799. margin: 0;
  800. }
  801. .pm-bottom-close::after {
  802. border: none;
  803. }
  804. .close-icon-btn {
  805. font-size: 1.5rem;
  806. color: #999;
  807. line-height: 1;
  808. padding: 0 0.3125rem;
  809. }
  810. /* 地图导航 Action Sheet */
  811. .nav-modal-mask {
  812. position: fixed;
  813. top: 0;
  814. left: 0;
  815. right: 0;
  816. bottom: 0;
  817. background-color: rgba(0, 0, 0, 0.5);
  818. z-index: 1000;
  819. display: flex;
  820. flex-direction: column;
  821. justify-content: flex-end;
  822. }
  823. .nav-action-sheet {
  824. background-color: #fff;
  825. width: 100%;
  826. border-top-left-radius: 0.75rem;
  827. border-top-right-radius: 0.75rem;
  828. overflow: hidden;
  829. padding-bottom: constant(safe-area-inset-bottom);
  830. padding-bottom: env(safe-area-inset-bottom);
  831. }
  832. .nav-sheet-title {
  833. text-align: center;
  834. padding: 0.9375rem 0;
  835. font-size: 13px;
  836. color: #999;
  837. border-bottom: 0.03125rem solid #efefef;
  838. }
  839. .nav-sheet-item {
  840. text-align: center;
  841. padding: 0.9375rem 0;
  842. font-size: 13px;
  843. color: #333;
  844. background-color: #fff;
  845. border-bottom: 0.03125rem solid #efefef;
  846. }
  847. .nav-sheet-item.cancel {
  848. border-bottom: none;
  849. color: #666;
  850. }
  851. .nav-sheet-gap {
  852. height: 0.5rem;
  853. background-color: #F8F8F8;
  854. }
  855. /* 订单列表:填满剩余高度,实现只有列表内容滚动 */
  856. .order-list {
  857. flex: 1;
  858. overflow-y: auto;
  859. width: 100%;
  860. padding: 0 0.9375rem;
  861. box-sizing: border-box;
  862. }
  863. .loading-text {
  864. text-align: center;
  865. font-size: 0.75rem;
  866. color: #999;
  867. padding: 0.9375rem 0;
  868. }
  869. /* 宠物档案弹窗头部操作区(备注按钮 + 关闭) */
  870. .pm-header-actions {
  871. display: flex;
  872. align-items: center;
  873. gap: 0.5rem;
  874. }
  875. .pm-remark-btn {
  876. font-size: 0.75rem;
  877. color: #fff;
  878. background-color: #FF9800;
  879. padding: 0.1875rem 0.5625rem;
  880. border-radius: 0.625rem;
  881. }
  882. /* 备注输入遮罩与弹窗(图2居中样式) */
  883. .remark-mask {
  884. position: fixed;
  885. top: 0;
  886. left: 0;
  887. right: 0;
  888. bottom: 0;
  889. background-color: rgba(0, 0, 0, 0.5);
  890. z-index: 3000;
  891. display: flex;
  892. align-items: center;
  893. justify-content: center;
  894. }
  895. .remark-sheet {
  896. width: 18.75rem;
  897. background-color: #fff;
  898. border-radius: 0.75rem;
  899. padding: 1.25rem;
  900. box-sizing: border-box;
  901. display: flex;
  902. flex-direction: column;
  903. align-items: center;
  904. }
  905. .remark-sheet-header {
  906. width: 100%;
  907. text-align: center;
  908. margin-bottom: 0.9375rem;
  909. position: relative;
  910. }
  911. .remark-sheet-header .close-icon-btn {
  912. position: absolute;
  913. right: 0;
  914. top: 50%;
  915. transform: translateY(-50%);
  916. }
  917. .remark-sheet-title {
  918. font-size: 1rem;
  919. font-weight: bold;
  920. color: #333;
  921. }
  922. .remark-textarea {
  923. width: 100%;
  924. height: 5rem;
  925. border: 0.03125rem solid #eee;
  926. border-radius: 0.375rem;
  927. padding: 0.625rem;
  928. font-size: 0.875rem;
  929. color: #333;
  930. box-sizing: border-box;
  931. margin-bottom: 1.25rem;
  932. }
  933. .remark-submit-btn {
  934. width: 100%;
  935. background-color: #FF5722;
  936. color: #fff;
  937. font-size: 1rem;
  938. font-weight: bold;
  939. text-align: center;
  940. padding: 0.75rem 0;
  941. border-radius: 0.5rem;
  942. }
  943. /* 一键拨号下拉面板 */
  944. .action-left {
  945. position: relative;
  946. z-index: 10;
  947. }
  948. .action-left .btn.normal {
  949. font-size: 0.8125rem;
  950. }
  951. .call-popover {
  952. position: absolute;
  953. top: calc(100% + 0.3125rem);
  954. left: 0;
  955. background-color: #fff;
  956. border-radius: 0.375rem;
  957. box-shadow: 0 0.125rem 0.625rem rgba(0, 0, 0, 0.1);
  958. z-index: 999;
  959. display: flex;
  960. flex-direction: column;
  961. width: 6.25rem;
  962. }
  963. .call-pop-item {
  964. font-size: 0.8125rem;
  965. color: #333;
  966. text-align: center;
  967. padding: 0.75rem 0;
  968. border-bottom: 0.03125rem solid #eee;
  969. }
  970. .call-pop-item:last-child {
  971. border-bottom: none;
  972. }
  973. .call-mask {
  974. position: fixed;
  975. top: 0;
  976. left: 0;
  977. right: 0;
  978. bottom: 0;
  979. z-index: 900;
  980. background: transparent;
  981. }