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. min-height: 100vh;
  73. }
  74. /* 状态 Tabs */
  75. .status-tabs {
  76. display: flex;
  77. background-color: #fff;
  78. padding: 0 0.9375rem;
  79. justify-content: space-between;
  80. }
  81. .tab-item {
  82. position: relative;
  83. padding: 0.625rem 0;
  84. font-size: 0.8125rem;
  85. color: #666;
  86. font-weight: 500;
  87. }
  88. .tab-item.active {
  89. color: #FF5722;
  90. font-weight: bold;
  91. }
  92. .indicator {
  93. position: absolute;
  94. bottom: 0;
  95. left: 50%;
  96. transform: translateX(-50%);
  97. width: 1.25rem;
  98. height: 0.1875rem;
  99. background-color: #FF5722;
  100. border-radius: 0.09375rem;
  101. }
  102. /* 搜索栏 */
  103. .search-bar {
  104. padding: 0.3125rem 0.9375rem;
  105. background-color: #fff;
  106. }
  107. .search-input-box {
  108. display: flex;
  109. align-items: center;
  110. background-color: #F8F8F8;
  111. height: 2rem;
  112. border-radius: 1rem;
  113. padding: 0 0.9375rem;
  114. }
  115. .search-input {
  116. flex: 1;
  117. font-size: 0.8125rem;
  118. color: #333;
  119. padding-left: 0.625rem;
  120. /* Give some left padding since icon is gone */
  121. }
  122. .ph-style {
  123. font-size: 0.8125rem;
  124. color: #999;
  125. }
  126. /* 筛选栏 (改用 wrapper 进行相对定位) */
  127. .filter-wrapper {
  128. position: relative;
  129. z-index: 998;
  130. }
  131. .filter-bar {
  132. display: flex;
  133. background-color: #fff;
  134. padding: 0.15625rem 0.9375rem 0.3125rem 0.9375rem;
  135. justify-content: space-between;
  136. position: relative;
  137. z-index: 998;
  138. }
  139. .filter-item {
  140. width: 48%;
  141. display: flex;
  142. align-items: center;
  143. justify-content: center;
  144. font-size: 0.8125rem;
  145. color: #666;
  146. background-color: #F8F8F8;
  147. height: 1.75rem;
  148. border-radius: 0.375rem;
  149. transition: all 0.2s;
  150. }
  151. .filter-item.active {
  152. background-color: #FFF3E0;
  153. }
  154. .active-text {
  155. color: #FF5722;
  156. /* Matches red triangle */
  157. font-weight: 500;
  158. }
  159. .triangle {
  160. width: 0;
  161. height: 0;
  162. border-left: 0.25rem solid transparent;
  163. border-right: 0.25rem solid transparent;
  164. margin-left: 0.3125rem;
  165. transition: all 0.2s;
  166. }
  167. .triangle.down {
  168. border-top: 0.3125rem solid #dcdcdc;
  169. }
  170. .filter-item.active .triangle.down,
  171. .active-text+.triangle.down {
  172. border-top-color: #FF5722;
  173. }
  174. .triangle.up {
  175. border-bottom: 0.3125rem solid #FF5722;
  176. }
  177. /* 下拉面板 */
  178. .dropdown-mask {
  179. position: absolute;
  180. top: 100%;
  181. left: 0;
  182. right: 0;
  183. height: 100vh;
  184. background-color: rgba(0, 0, 0, 0.4);
  185. z-index: 80;
  186. }
  187. .dropdown-panel {
  188. position: absolute;
  189. top: 100%;
  190. left: 0;
  191. right: 0;
  192. background-color: #fff;
  193. z-index: 90;
  194. border-radius: 0 0 0.625rem 0.625rem;
  195. box-shadow: 0 0.3125rem 0.625rem rgba(0, 0, 0, 0.05);
  196. overflow: hidden;
  197. }
  198. .type-option {
  199. padding: 0.9375rem 1.25rem;
  200. font-size: 0.875rem;
  201. color: #333;
  202. border-bottom: 1px solid #f5f5f5;
  203. }
  204. .type-option:last-child {
  205. border-bottom: none;
  206. }
  207. .type-option.selected uni-text {
  208. color: #FF5722;
  209. font-weight: bold;
  210. }
  211. .calendar-panel {
  212. padding-bottom: 0.9375rem;
  213. }
  214. /* Custom Calendar Styles */
  215. .custom-calendar-container {
  216. padding: 0.625rem 0.9375rem 0;
  217. }
  218. .cal-header {
  219. display: flex;
  220. justify-content: space-between;
  221. align-items: center;
  222. padding: 0.625rem 0;
  223. }
  224. .cal-title {
  225. font-size: 1rem;
  226. font-weight: bold;
  227. color: #333;
  228. }
  229. .cal-weekdays {
  230. display: flex;
  231. justify-content: space-around;
  232. padding: 0.625rem 0;
  233. border-bottom: 1px solid #f5f5f5;
  234. }
  235. .wk-item {
  236. font-size: 0.75rem;
  237. color: #999;
  238. width: 14.28%;
  239. text-align: center;
  240. }
  241. .cal-body {
  242. display: flex;
  243. flex-wrap: wrap;
  244. padding-top: 0.625rem;
  245. }
  246. .cal-day-box {
  247. width: 14.28%;
  248. height: 2.5rem;
  249. display: flex;
  250. align-items: center;
  251. justify-content: center;
  252. margin-bottom: 0.3125rem;
  253. position: relative;
  254. }
  255. .cal-day-text {
  256. width: 2rem;
  257. height: 2rem;
  258. line-height: 2rem;
  259. text-align: center;
  260. font-size: 0.875rem;
  261. color: #333;
  262. border-radius: 0.25rem;
  263. position: relative;
  264. z-index: 2;
  265. }
  266. /* Range styles matching Figure 2 */
  267. .cal-day-box.is-start .cal-day-text,
  268. .cal-day-box.is-end .cal-day-text {
  269. background-color: #FF5722;
  270. color: #fff;
  271. font-weight: bold;
  272. }
  273. .cal-day-box.is-start::after {
  274. content: '';
  275. position: absolute;
  276. right: 0;
  277. top: 0.25rem;
  278. bottom: 0.25rem;
  279. width: 50%;
  280. background-color: #FFF3E0;
  281. z-index: 1;
  282. }
  283. .cal-day-box.is-end::after {
  284. content: '';
  285. position: absolute;
  286. left: 0;
  287. top: 0.25rem;
  288. bottom: 0.25rem;
  289. width: 50%;
  290. background-color: #FFF3E0;
  291. z-index: 1;
  292. }
  293. .cal-day-box.is-start.is-end::after {
  294. display: none;
  295. /* No range background if same day */
  296. }
  297. .cal-day-box.is-between {
  298. background-color: #FFF3E0;
  299. /* reduce height slightly to match design */
  300. margin-top: 0.25rem;
  301. height: 2rem;
  302. margin-bottom: 0.5625rem;
  303. }
  304. .cal-day-box.is-between .cal-day-text {
  305. color: #FF5722;
  306. }
  307. .calendar-actions {
  308. display: flex;
  309. justify-content: space-between;
  310. padding: 0 0.9375rem;
  311. margin-top: 0.625rem;
  312. }
  313. .cal-btn {
  314. width: 48%;
  315. height: 2.1875rem;
  316. line-height: 2.1875rem;
  317. text-align: center;
  318. border-radius: 0.3125rem;
  319. font-size: 0.875rem;
  320. margin: 0;
  321. }
  322. .cal-btn.reset {
  323. background-color: #f5f5f5;
  324. color: #666;
  325. }
  326. .cal-btn.confirm {
  327. background-color: #FF5722;
  328. color: #fff;
  329. }
  330. /* 订单列表 */
  331. .order-list {
  332. padding: 0 0.9375rem;
  333. width: 100%;
  334. box-sizing: border-box;
  335. }
  336. .order-card {
  337. background-color: #fff;
  338. border-radius: 0.75rem;
  339. padding: 0.625rem 0.625rem;
  340. margin-bottom: 0.625rem;
  341. box-shadow: 0 0.125rem 0.5rem rgba(0, 0, 0, 0.03);
  342. }
  343. .order-card:first-child {
  344. margin-top: 0.625rem;
  345. }
  346. .card-header {
  347. display: flex;
  348. justify-content: space-between;
  349. align-items: center;
  350. margin-bottom: 0.46875rem;
  351. }
  352. .type-badge {
  353. display: flex;
  354. align-items: center;
  355. }
  356. .type-icon {
  357. width: 1.375rem;
  358. height: 1.375rem;
  359. margin-right: 0.46875rem;
  360. background-color: #FFF3E0;
  361. border-radius: 50%;
  362. padding: 0.1875rem;
  363. box-sizing: border-box;
  364. }
  365. .type-text {
  366. font-size: 0.9375rem;
  367. font-weight: bold;
  368. color: #333;
  369. }
  370. .status-badge {
  371. font-size: 0.875rem;
  372. }
  373. .status-badge.highlight {
  374. color: #FF5722;
  375. }
  376. .status-badge.processing {
  377. color: #2196F3;
  378. }
  379. .status-badge.finish {
  380. color: #4CAF50;
  381. }
  382. .status-badge.reject {
  383. color: #9E9E9E;
  384. }
  385. .time-row {
  386. display: flex;
  387. justify-content: space-between;
  388. align-items: center;
  389. margin-bottom: 0.78125rem;
  390. }
  391. .time-row .time-col {
  392. display: flex;
  393. align-items: center;
  394. font-size: 0.8125rem;
  395. color: #333;
  396. }
  397. .time-row .label {
  398. color: #666;
  399. margin-right: 0.3125rem;
  400. }
  401. .price {
  402. font-size: 1.125rem;
  403. font-weight: bold;
  404. color: #FF5722;
  405. }
  406. /* 宠物卡片 */
  407. .pet-card {
  408. background-color: #FFF8F0;
  409. border-radius: 0.5rem;
  410. padding: 0.46875rem 0.625rem;
  411. display: flex;
  412. align-items: center;
  413. margin-bottom: 0.625rem;
  414. }
  415. .pet-avatar {
  416. width: 2.5rem;
  417. height: 2.5rem;
  418. border-radius: 50%;
  419. margin-right: 0.625rem;
  420. }
  421. .pet-info {
  422. flex: 1;
  423. display: flex;
  424. flex-direction: column;
  425. }
  426. .pet-name {
  427. font-size: 0.875rem;
  428. font-weight: bold;
  429. color: #333;
  430. margin-bottom: 0.15625rem;
  431. }
  432. .pet-breed {
  433. font-size: 0.75rem;
  434. color: #999;
  435. }
  436. .pet-profile-btn {
  437. font-size: 0.75rem;
  438. color: #FF9800;
  439. border: 1px solid #FF9800;
  440. padding: 0.1875rem 0.625rem;
  441. border-radius: 1.5625rem;
  442. background-color: #fff;
  443. }
  444. /* 路线信息 (复用) */
  445. .route-info {
  446. margin-bottom: 0.78125rem;
  447. }
  448. .route-item {
  449. display: flex;
  450. align-items: flex-start;
  451. padding-bottom: 0.375rem;
  452. /* Radically reduced for compactness */
  453. position: relative;
  454. width: 100%;
  455. }
  456. /* 路线项底部的间隔 */
  457. .route-item:not(:last-child) {
  458. margin-bottom: 0.15625rem;
  459. /* Radically reduced for compactness */
  460. }
  461. .route-item:last-child {
  462. padding-bottom: 0;
  463. margin-bottom: 0;
  464. }
  465. .route-line-vertical {
  466. position: absolute;
  467. left: 0.59375rem;
  468. top: 1.4375rem;
  469. bottom: -0.46875rem;
  470. /* Adjusted to connect the now-closer nodes */
  471. border-left: 0.0625rem dashed #E0E0E0;
  472. width: 0;
  473. z-index: 0;
  474. }
  475. .icon-circle {
  476. width: 1.25rem;
  477. height: 1.25rem;
  478. border-radius: 50%;
  479. color: #fff;
  480. font-size: 0.6875rem;
  481. display: flex;
  482. align-items: center;
  483. justify-content: center;
  484. margin-right: 0.625rem;
  485. flex-shrink: 0;
  486. font-weight: bold;
  487. margin-top: 0.1875rem;
  488. position: relative;
  489. z-index: 1;
  490. }
  491. .icon-circle.service {
  492. background-color: #81C784;
  493. }
  494. .icon-circle.start {
  495. background-color: #FFB74D;
  496. }
  497. .icon-circle.end {
  498. background-color: #81C784;
  499. }
  500. .address-box {
  501. flex: 1;
  502. display: flex;
  503. flex-direction: column;
  504. margin-right: 0.625rem;
  505. }
  506. .addr-title {
  507. font-size: 0.875rem;
  508. font-weight: bold;
  509. color: #333;
  510. margin-bottom: 0.125rem;
  511. }
  512. .addr-desc {
  513. font-size: 0.75rem;
  514. color: #999;
  515. line-height: 1.4;
  516. }
  517. .distance-tag {
  518. display: flex;
  519. align-items: center;
  520. justify-content: flex-end;
  521. flex-shrink: 0;
  522. min-width: 2.5rem;
  523. }
  524. .distance-text {
  525. font-size: 0.75rem;
  526. color: #FF5722;
  527. margin-right: 0.46875rem;
  528. font-weight: 500;
  529. }
  530. .nav-icon-circle {
  531. width: 1.5rem;
  532. height: 1.5rem;
  533. background-color: #FFF3E0;
  534. border-radius: 50%;
  535. display: flex;
  536. align-items: center;
  537. justify-content: center;
  538. }
  539. .nav-arrow {
  540. width: 0.75rem;
  541. height: 0.75rem;
  542. }
  543. .service-content {
  544. margin-top: -0.3125rem;
  545. /* Shifted up using negative margin for max compactness */
  546. font-size: 0.75rem;
  547. color: #666;
  548. padding-left: 1.875rem;
  549. }
  550. .content-label {
  551. color: #999;
  552. margin-right: 0.3125rem;
  553. }
  554. /* 备注 */
  555. .remark-box {
  556. background-color: #F8F8F8;
  557. padding: 0.46875rem 0.625rem;
  558. border-radius: 0.25rem;
  559. font-size: 0.8125rem;
  560. color: #666;
  561. margin-bottom: 0.9375rem;
  562. }
  563. /* 底部按钮 */
  564. .action-btns {
  565. display: flex;
  566. justify-content: space-between;
  567. margin-top: 0.46875rem;
  568. }
  569. .action-left {
  570. display: flex;
  571. }
  572. .action-right {
  573. display: flex;
  574. }
  575. .btn {
  576. height: 1.875rem;
  577. line-height: 1.875rem;
  578. border-radius: 0.9375rem;
  579. font-size: 0.8125rem;
  580. padding: 0 0.9375rem;
  581. margin: 0;
  582. }
  583. .action-right .btn:not(:last-child) {
  584. margin-right: 0.625rem;
  585. }
  586. .btn::after {
  587. border: none;
  588. }
  589. .btn.normal {
  590. background-color: #F8F8F8;
  591. color: #666;
  592. border: none;
  593. }
  594. .btn.primary {
  595. background: linear-gradient(90deg, #FF9800 0%, #FF5722 100%);
  596. color: #fff;
  597. box-shadow: 0 0.125rem 0.375rem rgba(255, 87, 34, 0.2);
  598. border: none;
  599. }
  600. .btn.normal.danger {
  601. background-color: #FFF2F0;
  602. color: #F5222D;
  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. }