index.css 18 KB

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