@zjpcy/simple-design 1.5.0 → 1.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3891,7 +3891,7 @@
3891
3891
  内容区域样式
3892
3892
  ============================================ */
3893
3893
  .zjpcy-modal-content {
3894
- padding: 24px;
3894
+ padding: 12px 24px;
3895
3895
  overflow-y: auto;
3896
3896
  flex: 1;
3897
3897
  min-height: 0;
@@ -3902,12 +3902,13 @@
3902
3902
 
3903
3903
  /* 当没有设置 height 参数时,内容区域有最小高度 300px */
3904
3904
  .zjpcy-modal-container:not([style*="height"]) .zjpcy-modal-content {
3905
- min-height: 300px;
3905
+ /* min-height: 300px; */
3906
3906
  }
3907
3907
 
3908
3908
  /* 当设置了 height 参数时,取消最小高度限制,以设置的 height 为准 */
3909
3909
  .zjpcy-modal-container--has-height .zjpcy-modal-content {
3910
- min-height: 0;
3910
+ min-height: -moz-fit-content;
3911
+ min-height: fit-content;
3911
3912
  }
3912
3913
 
3913
3914
  /* ============================================
@@ -5678,6 +5679,215 @@
5678
5679
  margin-top: calc(var(--tooltip-arrow-size) * -0.5);
5679
5680
  }
5680
5681
 
5682
+ /* ============================================
5683
+ IDP Checkbox Component - Modern Design System
5684
+ ============================================ */
5685
+
5686
+ @import '../variables.css';
5687
+
5688
+ /* ============================================
5689
+ 基础复选框样式
5690
+ ============================================ */
5691
+ .zjpcy-checkbox {
5692
+ display: inline-flex;
5693
+ align-items: center;
5694
+ cursor: pointer;
5695
+ -webkit-user-select: none;
5696
+ -moz-user-select: none;
5697
+ user-select: none;
5698
+ font-size: 14px;
5699
+ color: var(--zjpcy-text-color);
5700
+ transition: all var(--zjpcy-transition-duration) var(--zjpcy-transition-timing-function);
5701
+ gap: 8px;
5702
+ }
5703
+
5704
+ .zjpcy-checkbox:hover {
5705
+ color: var(--zjpcy-text-color);
5706
+ }
5707
+
5708
+ /* ============================================
5709
+ 隐藏的原生输入框
5710
+ ============================================ */
5711
+ .zjpcy-checkbox__input {
5712
+ position: absolute;
5713
+ opacity: 0;
5714
+ cursor: pointer;
5715
+ height: 0;
5716
+ width: 0;
5717
+ }
5718
+
5719
+ /* ============================================
5720
+ 复选框内部样式
5721
+ ============================================ */
5722
+ .zjpcy-checkbox__inner {
5723
+ position: relative;
5724
+ display: inline-flex;
5725
+ align-items: center;
5726
+ justify-content: center;
5727
+ width: 18px;
5728
+ height: 18px;
5729
+ border: 1.5px solid var(--zjpcy-border-color-extra-light);
5730
+ border-radius: var(--zjpcy-border-radius-sm);
5731
+ background: linear-gradient(135deg, var(--zjpcy-bg-color-white) 0%, var(--zjpcy-bg-color) 100%);
5732
+ transition: all var(--zjpcy-transition-duration) var(--zjpcy-transition-timing-function);
5733
+ flex-shrink: 0;
5734
+ box-shadow: var(--zjpcy-shadow-extra-light);
5735
+ }
5736
+
5737
+ /* 悬停状态 */
5738
+ .zjpcy-checkbox:hover .zjpcy-checkbox__inner {
5739
+ border-color: var(--zjpcy-primary-hover-color);
5740
+ box-shadow: var(--zjpcy-input-box-shadow-hover);
5741
+ }
5742
+
5743
+ /* ============================================
5744
+ 选中状态
5745
+ ============================================ */
5746
+ .zjpcy-checkbox--checked .zjpcy-checkbox__inner {
5747
+ background: linear-gradient(135deg, var(--zjpcy-primary-color) 0%, var(--zjpcy-primary-hover-color) 100%);
5748
+ border-color: var(--zjpcy-primary-color);
5749
+ box-shadow: 0 2px 6px rgba(24, 144, 255, 0.35);
5750
+ }
5751
+
5752
+ /* 选中状态的勾选图标 */
5753
+ .zjpcy-checkbox--checked .zjpcy-checkbox__inner::after {
5754
+ content: '';
5755
+ position: absolute;
5756
+ width: 5px;
5757
+ height: 9px;
5758
+ border: solid white;
5759
+ border-width: 0 2px 2px 0;
5760
+ transform: rotate(45deg) translate(-1px, -1px);
5761
+ animation: checkbox-check 0.2s ease-in-out;
5762
+ }
5763
+
5764
+ /* 勾选动画 */
5765
+ @keyframes checkbox-check {
5766
+ 0% {
5767
+ transform: rotate(45deg) scale(0) translate(-1px, -1px);
5768
+ opacity: 0;
5769
+ }
5770
+ 50% {
5771
+ transform: rotate(45deg) scale(1.2) translate(-1px, -1px);
5772
+ }
5773
+ 100% {
5774
+ transform: rotate(45deg) scale(1) translate(-1px, -1px);
5775
+ opacity: 1;
5776
+ }
5777
+ }
5778
+
5779
+ /* ============================================
5780
+ 半选状态
5781
+ ============================================ */
5782
+ .zjpcy-checkbox--indeterminate .zjpcy-checkbox__inner {
5783
+ background: linear-gradient(135deg, var(--zjpcy-primary-color) 0%, var(--zjpcy-primary-hover-color) 100%);
5784
+ border-color: var(--zjpcy-primary-color);
5785
+ box-shadow: 0 2px 6px rgba(24, 144, 255, 0.35);
5786
+ }
5787
+
5788
+ .zjpcy-checkbox--indeterminate .zjpcy-checkbox__inner::after {
5789
+ content: '';
5790
+ position: absolute;
5791
+ top: 50%;
5792
+ left: 50%;
5793
+ transform: translate(-50%, -50%);
5794
+ width: 8px;
5795
+ height: 2px;
5796
+ background-color: white;
5797
+ border: none;
5798
+ border-radius: 1px;
5799
+ animation: checkbox-indeterminate 0.2s ease-in-out;
5800
+ }
5801
+
5802
+ /* 半选动画 */
5803
+ @keyframes checkbox-indeterminate {
5804
+ 0% {
5805
+ transform: translate(-50%, -50%) scaleX(0);
5806
+ opacity: 0;
5807
+ }
5808
+ 100% {
5809
+ transform: translate(-50%, -50%) scaleX(1);
5810
+ opacity: 1;
5811
+ }
5812
+ }
5813
+
5814
+ /* ============================================
5815
+ 禁用状态
5816
+ ============================================ */
5817
+ .zjpcy-checkbox--disabled {
5818
+ cursor: not-allowed;
5819
+ opacity: var(--zjpcy-opacity-disabled);
5820
+ }
5821
+
5822
+ .zjpcy-checkbox--disabled:hover .zjpcy-checkbox__inner {
5823
+ border-color: var(--zjpcy-border-color-extra-light);
5824
+ box-shadow: none;
5825
+ }
5826
+
5827
+ .zjpcy-checkbox--disabled .zjpcy-checkbox__inner {
5828
+ background: var(--zjpcy-input-disabled-bg);
5829
+ border-color: var(--zjpcy-input-disabled-border);
5830
+ box-shadow: none;
5831
+ }
5832
+
5833
+ /* 使用组合类避免多类选择器 */
5834
+ .zjpcy-checkbox--disabled-checked .zjpcy-checkbox__inner {
5835
+ background: var(--zjpcy-input-disabled-bg);
5836
+ border-color: var(--zjpcy-input-disabled-border);
5837
+ }
5838
+
5839
+ .zjpcy-checkbox--disabled-checked .zjpcy-checkbox__inner::after {
5840
+ border-color: var(--zjpcy-text-color-light);
5841
+ }
5842
+
5843
+ .zjpcy-checkbox--disabled-indeterminate .zjpcy-checkbox__inner {
5844
+ background: var(--zjpcy-input-disabled-bg);
5845
+ border-color: var(--zjpcy-input-disabled-border);
5846
+ }
5847
+
5848
+ .zjpcy-checkbox--disabled-indeterminate .zjpcy-checkbox__inner::after {
5849
+ background-color: var(--zjpcy-text-color-light);
5850
+ }
5851
+
5852
+ .zjpcy-checkbox--disabled .zjpcy-checkbox__label {
5853
+ color: var(--zjpcy-input-disabled-text);
5854
+ }
5855
+
5856
+ /* ============================================
5857
+ 标签样式
5858
+ ============================================ */
5859
+ .zjpcy-checkbox__label {
5860
+ font-size: 14px;
5861
+ color: var(--zjpcy-text-color);
5862
+ line-height: 1.5;
5863
+ font-weight: 400;
5864
+ transition: color var(--zjpcy-transition-duration) ease;
5865
+ }
5866
+
5867
+ .zjpcy-checkbox:hover .zjpcy-checkbox__label {
5868
+ color: var(--zjpcy-text-color);
5869
+ }
5870
+
5871
+ /* ============================================
5872
+ 复选框组样式
5873
+ ============================================ */
5874
+ .zjpcy-checkbox-group {
5875
+ display: flex;
5876
+ flex-direction: column;
5877
+ gap: 12px;
5878
+ }
5879
+
5880
+ .zjpcy-checkbox-group--horizontal {
5881
+ flex-direction: row;
5882
+ flex-wrap: wrap;
5883
+ gap: 16px;
5884
+ }
5885
+
5886
+ /* 组内的复选框间距调整 */
5887
+ .zjpcy-checkbox-group .zjpcy-checkbox {
5888
+ margin: 0;
5889
+ }
5890
+
5681
5891
  /* ============================================
5682
5892
  IDP Table Component - Modern Design System
5683
5893
  ============================================ */
@@ -6348,6 +6558,89 @@
6348
6558
  box-shadow: var(--zjpcy-shadow-md, 0 4px 12px rgba(0, 0, 0, 0.15));
6349
6559
  }
6350
6560
 
6561
+ /* ============================================
6562
+ 行选择功能样式
6563
+ ============================================ */
6564
+
6565
+ /* 行选择列单元格样式 */
6566
+ .custom-table th:first-child[data-selection-col],
6567
+ .custom-table td:first-child[data-selection-col] {
6568
+ width: var(--zjpcy-table-selection-col-width, 50px);
6569
+ min-width: var(--zjpcy-table-selection-col-width, 50px);
6570
+ max-width: var(--zjpcy-table-selection-col-width, 50px);
6571
+ text-align: center;
6572
+ padding: 12px 8px;
6573
+ }
6574
+
6575
+ /* 选择列内的 Checkbox/Radio 垂直居中 */
6576
+ .custom-table td .zjpcy-checkbox,
6577
+ .custom-table td .zjpcy-radio,
6578
+ .custom-table th .zjpcy-checkbox,
6579
+ .custom-table th .zjpcy-radio {
6580
+ display: inline-flex;
6581
+ vertical-align: middle;
6582
+ }
6583
+
6584
+ /* 选中行的背景色 */
6585
+ .custom-table tbody tr.zjpcy-table-row-selected {
6586
+ background-color: var(--zjpcy-table-row-selected-bg, #e6f7ff) !important;
6587
+ }
6588
+
6589
+ .custom-table tbody tr.zjpcy-table-row-selected td {
6590
+ background-color: var(--zjpcy-table-row-selected-bg, #e6f7ff) !important;
6591
+ }
6592
+
6593
+ /* 选中行悬停效果 */
6594
+ .custom-table tbody tr.zjpcy-table-row-selected:hover {
6595
+ background-color: var(--zjpcy-table-row-selected-hover-bg, #d9f7ff) !important;
6596
+ }
6597
+
6598
+ .custom-table tbody tr.zjpcy-table-row-selected:hover td {
6599
+ background-color: var(--zjpcy-table-row-selected-hover-bg, #d9f7ff) !important;
6600
+ }
6601
+
6602
+ /* 禁用行样式 */
6603
+ .custom-table tbody tr.zjpcy-table-row-disabled {
6604
+ opacity: 0.6;
6605
+ cursor: not-allowed;
6606
+ }
6607
+
6608
+ /* 选择列表头固定样式 */
6609
+ .custom-table th[data-selection-col] {
6610
+ background-color: var(--zjpcy-table-header-bg, #fafafa) !important;
6611
+ z-index: 11 !important;
6612
+ }
6613
+
6614
+ /* 拖拽行中的选择列样式 */
6615
+ .zjpcy-table-sortable-row td:first-child .zjpcy-checkbox,
6616
+ .zjpcy-table-sortable-row td:first-child .zjpcy-radio {
6617
+ pointer-events: auto;
6618
+ }
6619
+
6620
+ /* ============================================
6621
+ Tooltip 单元格包装器样式
6622
+ ============================================ */
6623
+
6624
+ /* Tooltip 单元格包装器 */
6625
+ .zjpcy-table-cell-tooltip-wrapper {
6626
+ display: inline;
6627
+ max-width: 100%;
6628
+ }
6629
+
6630
+ /* 当单元格有省略号时,Tooltip 包装器需要 block 显示 */
6631
+ .zjpcy-table-cell-has-ellipsis .zjpcy-table-cell-tooltip-wrapper {
6632
+ display: block;
6633
+ width: 100%;
6634
+ }
6635
+
6636
+ /* 确保 Tooltip 触发区域覆盖整个单元格内容 */
6637
+ .zjpcy-table-cell-tooltip-wrapper .zjpcy-table-cell-ellipsis {
6638
+ display: -webkit-box;
6639
+ -webkit-box-orient: vertical;
6640
+ overflow: hidden;
6641
+ text-overflow: ellipsis;
6642
+ }
6643
+
6351
6644
  .top-button-wrapper {
6352
6645
  z-index: 1000;
6353
6646
  }
@@ -10152,215 +10445,6 @@ body {
10152
10445
  position: fixed;
10153
10446
  }
10154
10447
 
10155
- /* ============================================
10156
- IDP Checkbox Component - Modern Design System
10157
- ============================================ */
10158
-
10159
- @import '../variables.css';
10160
-
10161
- /* ============================================
10162
- 基础复选框样式
10163
- ============================================ */
10164
- .zjpcy-checkbox {
10165
- display: inline-flex;
10166
- align-items: center;
10167
- cursor: pointer;
10168
- -webkit-user-select: none;
10169
- -moz-user-select: none;
10170
- user-select: none;
10171
- font-size: 14px;
10172
- color: var(--zjpcy-text-color);
10173
- transition: all var(--zjpcy-transition-duration) var(--zjpcy-transition-timing-function);
10174
- gap: 8px;
10175
- }
10176
-
10177
- .zjpcy-checkbox:hover {
10178
- color: var(--zjpcy-text-color);
10179
- }
10180
-
10181
- /* ============================================
10182
- 隐藏的原生输入框
10183
- ============================================ */
10184
- .zjpcy-checkbox__input {
10185
- position: absolute;
10186
- opacity: 0;
10187
- cursor: pointer;
10188
- height: 0;
10189
- width: 0;
10190
- }
10191
-
10192
- /* ============================================
10193
- 复选框内部样式
10194
- ============================================ */
10195
- .zjpcy-checkbox__inner {
10196
- position: relative;
10197
- display: inline-flex;
10198
- align-items: center;
10199
- justify-content: center;
10200
- width: 18px;
10201
- height: 18px;
10202
- border: 1.5px solid var(--zjpcy-border-color-extra-light);
10203
- border-radius: var(--zjpcy-border-radius-sm);
10204
- background: linear-gradient(135deg, var(--zjpcy-bg-color-white) 0%, var(--zjpcy-bg-color) 100%);
10205
- transition: all var(--zjpcy-transition-duration) var(--zjpcy-transition-timing-function);
10206
- flex-shrink: 0;
10207
- box-shadow: var(--zjpcy-shadow-extra-light);
10208
- }
10209
-
10210
- /* 悬停状态 */
10211
- .zjpcy-checkbox:hover .zjpcy-checkbox__inner {
10212
- border-color: var(--zjpcy-primary-hover-color);
10213
- box-shadow: var(--zjpcy-input-box-shadow-hover);
10214
- }
10215
-
10216
- /* ============================================
10217
- 选中状态
10218
- ============================================ */
10219
- .zjpcy-checkbox--checked .zjpcy-checkbox__inner {
10220
- background: linear-gradient(135deg, var(--zjpcy-primary-color) 0%, var(--zjpcy-primary-hover-color) 100%);
10221
- border-color: var(--zjpcy-primary-color);
10222
- box-shadow: 0 2px 6px rgba(24, 144, 255, 0.35);
10223
- }
10224
-
10225
- /* 选中状态的勾选图标 */
10226
- .zjpcy-checkbox--checked .zjpcy-checkbox__inner::after {
10227
- content: '';
10228
- position: absolute;
10229
- width: 5px;
10230
- height: 9px;
10231
- border: solid white;
10232
- border-width: 0 2px 2px 0;
10233
- transform: rotate(45deg) translate(-1px, -1px);
10234
- animation: checkbox-check 0.2s ease-in-out;
10235
- }
10236
-
10237
- /* 勾选动画 */
10238
- @keyframes checkbox-check {
10239
- 0% {
10240
- transform: rotate(45deg) scale(0) translate(-1px, -1px);
10241
- opacity: 0;
10242
- }
10243
- 50% {
10244
- transform: rotate(45deg) scale(1.2) translate(-1px, -1px);
10245
- }
10246
- 100% {
10247
- transform: rotate(45deg) scale(1) translate(-1px, -1px);
10248
- opacity: 1;
10249
- }
10250
- }
10251
-
10252
- /* ============================================
10253
- 半选状态
10254
- ============================================ */
10255
- .zjpcy-checkbox--indeterminate .zjpcy-checkbox__inner {
10256
- background: linear-gradient(135deg, var(--zjpcy-primary-color) 0%, var(--zjpcy-primary-hover-color) 100%);
10257
- border-color: var(--zjpcy-primary-color);
10258
- box-shadow: 0 2px 6px rgba(24, 144, 255, 0.35);
10259
- }
10260
-
10261
- .zjpcy-checkbox--indeterminate .zjpcy-checkbox__inner::after {
10262
- content: '';
10263
- position: absolute;
10264
- top: 50%;
10265
- left: 50%;
10266
- transform: translate(-50%, -50%);
10267
- width: 8px;
10268
- height: 2px;
10269
- background-color: white;
10270
- border: none;
10271
- border-radius: 1px;
10272
- animation: checkbox-indeterminate 0.2s ease-in-out;
10273
- }
10274
-
10275
- /* 半选动画 */
10276
- @keyframes checkbox-indeterminate {
10277
- 0% {
10278
- transform: translate(-50%, -50%) scaleX(0);
10279
- opacity: 0;
10280
- }
10281
- 100% {
10282
- transform: translate(-50%, -50%) scaleX(1);
10283
- opacity: 1;
10284
- }
10285
- }
10286
-
10287
- /* ============================================
10288
- 禁用状态
10289
- ============================================ */
10290
- .zjpcy-checkbox--disabled {
10291
- cursor: not-allowed;
10292
- opacity: var(--zjpcy-opacity-disabled);
10293
- }
10294
-
10295
- .zjpcy-checkbox--disabled:hover .zjpcy-checkbox__inner {
10296
- border-color: var(--zjpcy-border-color-extra-light);
10297
- box-shadow: none;
10298
- }
10299
-
10300
- .zjpcy-checkbox--disabled .zjpcy-checkbox__inner {
10301
- background: var(--zjpcy-input-disabled-bg);
10302
- border-color: var(--zjpcy-input-disabled-border);
10303
- box-shadow: none;
10304
- }
10305
-
10306
- /* 使用组合类避免多类选择器 */
10307
- .zjpcy-checkbox--disabled-checked .zjpcy-checkbox__inner {
10308
- background: var(--zjpcy-input-disabled-bg);
10309
- border-color: var(--zjpcy-input-disabled-border);
10310
- }
10311
-
10312
- .zjpcy-checkbox--disabled-checked .zjpcy-checkbox__inner::after {
10313
- border-color: var(--zjpcy-text-color-light);
10314
- }
10315
-
10316
- .zjpcy-checkbox--disabled-indeterminate .zjpcy-checkbox__inner {
10317
- background: var(--zjpcy-input-disabled-bg);
10318
- border-color: var(--zjpcy-input-disabled-border);
10319
- }
10320
-
10321
- .zjpcy-checkbox--disabled-indeterminate .zjpcy-checkbox__inner::after {
10322
- background-color: var(--zjpcy-text-color-light);
10323
- }
10324
-
10325
- .zjpcy-checkbox--disabled .zjpcy-checkbox__label {
10326
- color: var(--zjpcy-input-disabled-text);
10327
- }
10328
-
10329
- /* ============================================
10330
- 标签样式
10331
- ============================================ */
10332
- .zjpcy-checkbox__label {
10333
- font-size: 14px;
10334
- color: var(--zjpcy-text-color);
10335
- line-height: 1.5;
10336
- font-weight: 400;
10337
- transition: color var(--zjpcy-transition-duration) ease;
10338
- }
10339
-
10340
- .zjpcy-checkbox:hover .zjpcy-checkbox__label {
10341
- color: var(--zjpcy-text-color);
10342
- }
10343
-
10344
- /* ============================================
10345
- 复选框组样式
10346
- ============================================ */
10347
- .zjpcy-checkbox-group {
10348
- display: flex;
10349
- flex-direction: column;
10350
- gap: 12px;
10351
- }
10352
-
10353
- .zjpcy-checkbox-group--horizontal {
10354
- flex-direction: row;
10355
- flex-wrap: wrap;
10356
- gap: 16px;
10357
- }
10358
-
10359
- /* 组内的复选框间距调整 */
10360
- .zjpcy-checkbox-group .zjpcy-checkbox {
10361
- margin: 0;
10362
- }
10363
-
10364
10448
  .zjpcy-tag {
10365
10449
  display: inline-flex;
10366
10450
  align-items: center;
@@ -13967,3 +14051,1502 @@ body {
13967
14051
  background: var(--zjpcy-bg-color-light);
13968
14052
  }
13969
14053
  }
14054
+
14055
+ /* ============================================
14056
+ IDP Calendar Component - Modern Design System
14057
+ ============================================ */
14058
+
14059
+ @import '../variables.css';
14060
+
14061
+ /* ============================================
14062
+ 动画关键帧
14063
+ ============================================ */
14064
+ @keyframes calendarFadeIn {
14065
+ from {
14066
+ opacity: 0;
14067
+ transform: translateY(-8px);
14068
+ }
14069
+ to {
14070
+ opacity: 1;
14071
+ transform: translateY(0);
14072
+ }
14073
+ }
14074
+
14075
+ @keyframes calendarCellScale {
14076
+ 0% {
14077
+ transform: scale(0.9);
14078
+ opacity: 0;
14079
+ }
14080
+ 100% {
14081
+ transform: scale(1);
14082
+ opacity: 1;
14083
+ }
14084
+ }
14085
+
14086
+ @keyframes calendarPanelSlideIn {
14087
+ from {
14088
+ opacity: 0;
14089
+ transform: translateY(-20px);
14090
+ }
14091
+ to {
14092
+ opacity: 1;
14093
+ transform: translateY(0);
14094
+ }
14095
+ }
14096
+
14097
+ /* ============================================
14098
+ 日历基础样式
14099
+ ============================================ */
14100
+ .zjpcy-calendar {
14101
+ display: flex;
14102
+ flex-direction: column;
14103
+ width: 320px;
14104
+ height: auto;
14105
+ background: linear-gradient(135deg, var(--zjpcy-bg-color-white) 0%, var(--zjpcy-bg-color) 100%);
14106
+ border-radius: var(--zjpcy-border-radius-lg);
14107
+ border: 1px solid var(--zjpcy-border-color-extra-light);
14108
+ box-shadow: var(--zjpcy-shadow-extra-light);
14109
+ overflow: hidden;
14110
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
14111
+ animation: calendarFadeIn 0.2s var(--zjpcy-transition-timing-function);
14112
+ }
14113
+
14114
+ .zjpcy-calendar--fullscreen {
14115
+ width: 100%;
14116
+ height: 100%;
14117
+ border-radius: 0;
14118
+ border: none;
14119
+ box-shadow: none;
14120
+ }
14121
+
14122
+ /* ============================================
14123
+ 小型日历样式
14124
+ ============================================ */
14125
+ .zjpcy-calendar--small {
14126
+ width: 300px;
14127
+ border-radius: var(--zjpcy-border-radius-md);
14128
+ }
14129
+
14130
+ .zjpcy-calendar--small .zjpcy-calendar__header {
14131
+ padding: 10px 12px;
14132
+ }
14133
+
14134
+ .zjpcy-calendar--small .zjpcy-calendar__header-title {
14135
+ font-size: 14px;
14136
+ }
14137
+
14138
+ .zjpcy-calendar--small .zjpcy-calendar__header-title-btn {
14139
+ padding: 4px 10px;
14140
+ font-size: 13px;
14141
+ }
14142
+
14143
+ .zjpcy-calendar--small .zjpcy-calendar__header-btn {
14144
+ width: 24px;
14145
+ height: 24px;
14146
+ }
14147
+
14148
+ .zjpcy-calendar--small .zjpcy-calendar__weekday-header {
14149
+ padding: 8px 12px;
14150
+ }
14151
+
14152
+ .zjpcy-calendar--small .zjpcy-calendar__weekday-cell {
14153
+ padding: 4px 0;
14154
+ font-size: 12px;
14155
+ }
14156
+
14157
+ .zjpcy-calendar--small .zjpcy-calendar__date-grid {
14158
+ padding: 6px 12px;
14159
+ gap: 2px;
14160
+ grid-auto-rows: minmax(36px, 1fr);
14161
+ }
14162
+
14163
+ .zjpcy-calendar--small .zjpcy-calendar__date-cell {
14164
+ padding: 4px;
14165
+ min-height: 36px;
14166
+ align-items: center;
14167
+ justify-content: center;
14168
+ border: 1px solid transparent;
14169
+ box-sizing: border-box;
14170
+ }
14171
+
14172
+ .zjpcy-calendar--small .zjpcy-calendar__date-cell-header {
14173
+ margin-bottom: 0;
14174
+ justify-content: center;
14175
+ }
14176
+
14177
+ /* 小型日历垂直布局 */
14178
+ .zjpcy-calendar--small-vertical .zjpcy-calendar__date-cell-header {
14179
+ flex-flow: column;
14180
+ align-items: center;
14181
+ gap: 2px;
14182
+ }
14183
+
14184
+ .zjpcy-calendar--small-vertical .zjpcy-calendar__date-number {
14185
+ font-size: 14px;
14186
+ font-weight: 600;
14187
+ }
14188
+
14189
+ .zjpcy-calendar--small-vertical .zjpcy-calendar__lunar-text {
14190
+ font-size: 9px;
14191
+ max-width: 100%;
14192
+ margin-top: 0;
14193
+ }
14194
+
14195
+ .zjpcy-calendar--small .zjpcy-calendar__date-number {
14196
+ font-size: 12px;
14197
+ }
14198
+
14199
+ .zjpcy-calendar--small .zjpcy-calendar__lunar-text {
14200
+ font-size: 10px;
14201
+ max-width: 28px;
14202
+ margin-top: 2px;
14203
+ }
14204
+
14205
+ .zjpcy-calendar--small .zjpcy-calendar__date-cell--today::before {
14206
+ width: 4px;
14207
+ height: 4px;
14208
+ top: 2px;
14209
+ right: 2px;
14210
+ }
14211
+
14212
+ /* 小型日历下的农历详情弹窗样式 */
14213
+ .zjpcy-calendar--small .zjpcy-calendar__lunar-panel {
14214
+ max-width: 320px;
14215
+ max-height: 70vh;
14216
+ }
14217
+
14218
+ .zjpcy-calendar--small .zjpcy-calendar__lunar-body {
14219
+ padding: 12px;
14220
+ }
14221
+
14222
+ .zjpcy-calendar--small .zjpcy-calendar__lunar-section {
14223
+ margin-bottom: 12px;
14224
+ }
14225
+
14226
+ .zjpcy-calendar--small .zjpcy-calendar__lunar-grid {
14227
+ grid-template-columns: 1fr;
14228
+ gap: 4px;
14229
+ }
14230
+
14231
+ .zjpcy-calendar--small .zjpcy-calendar__lunar-bazi {
14232
+ flex-direction: column;
14233
+ gap: 8px;
14234
+ }
14235
+
14236
+ .zjpcy-calendar--small .zjpcy-calendar__lunar-bazi-item {
14237
+ flex-direction: row;
14238
+ align-items: center;
14239
+ gap: 8px;
14240
+ }
14241
+
14242
+ .zjpcy-calendar--small .zjpcy-calendar__lunar-yiji-content {
14243
+ gap: 4px;
14244
+ }
14245
+
14246
+ .zjpcy-calendar--small .zjpcy-calendar__lunar-yiji-item {
14247
+ font-size: 11px;
14248
+ padding: 2px 6px;
14249
+ }
14250
+
14251
+ /* ============================================
14252
+ 日历头部样式
14253
+ ============================================ */
14254
+ .zjpcy-calendar__header {
14255
+ display: flex;
14256
+ align-items: center;
14257
+ justify-content: space-between;
14258
+ padding: 16px 20px;
14259
+ border-bottom: 1px solid var(--zjpcy-border-color-extra-light);
14260
+ background: linear-gradient(135deg, var(--zjpcy-bg-color-white) 0%, var(--zjpcy-bg-color-light) 100%);
14261
+ }
14262
+
14263
+ .zjpcy-calendar__header-left,
14264
+ .zjpcy-calendar__header-right {
14265
+ display: flex;
14266
+ align-items: center;
14267
+ gap: 8px;
14268
+ }
14269
+
14270
+ .zjpcy-calendar__header-title {
14271
+ display: flex;
14272
+ align-items: center;
14273
+ gap: 4px;
14274
+ font-size: 16px;
14275
+ font-weight: 600;
14276
+ color: var(--zjpcy-text-color);
14277
+ }
14278
+
14279
+ .zjpcy-calendar__header-title-btn {
14280
+ padding: 6px 14px;
14281
+ border: 1px solid var(--zjpcy-border-color-extra-light);
14282
+ border-radius: var(--zjpcy-border-radius-md);
14283
+ background: linear-gradient(135deg, var(--zjpcy-bg-color-white) 0%, var(--zjpcy-bg-color) 100%);
14284
+ color: var(--zjpcy-text-color);
14285
+ font-size: 15px;
14286
+ font-weight: 600;
14287
+ cursor: pointer;
14288
+ transition: all var(--zjpcy-transition-duration) var(--zjpcy-transition-timing-function);
14289
+ box-shadow: var(--zjpcy-shadow-extra-light);
14290
+ }
14291
+
14292
+ .zjpcy-calendar__header-title-btn:hover {
14293
+ border-color: var(--zjpcy-primary-color);
14294
+ color: var(--zjpcy-primary-color);
14295
+ background: linear-gradient(135deg, var(--zjpcy-bg-color-white) 0%, var(--zjpcy-primary-light-color) 100%);
14296
+ box-shadow: var(--zjpcy-shadow-sm);
14297
+ }
14298
+
14299
+ .zjpcy-calendar__header-btn {
14300
+ display: flex;
14301
+ align-items: center;
14302
+ justify-content: center;
14303
+ width: 32px;
14304
+ height: 32px;
14305
+ padding: 0;
14306
+ border: 1px solid var(--zjpcy-border-color-extra-light);
14307
+ border-radius: var(--zjpcy-border-radius-md);
14308
+ background: linear-gradient(135deg, var(--zjpcy-bg-color-white) 0%, var(--zjpcy-bg-color-light) 100%);
14309
+ color: var(--zjpcy-text-color-secondary);
14310
+ cursor: pointer;
14311
+ transition: all var(--zjpcy-transition-duration) var(--zjpcy-transition-timing-function);
14312
+ box-shadow: var(--zjpcy-shadow-extra-light);
14313
+ }
14314
+
14315
+ .zjpcy-calendar__header-btn:hover:not(:disabled) {
14316
+ border-color: var(--zjpcy-primary-color);
14317
+ color: var(--zjpcy-primary-color);
14318
+ background: linear-gradient(135deg, var(--zjpcy-bg-color-white) 0%, var(--zjpcy-primary-light-color) 100%);
14319
+ box-shadow: var(--zjpcy-shadow-sm);
14320
+ transform: translateY(-1px);
14321
+ }
14322
+
14323
+ .zjpcy-calendar__header-btn:active:not(:disabled) {
14324
+ transform: translateY(0);
14325
+ box-shadow: var(--zjpcy-shadow-extra-light);
14326
+ }
14327
+
14328
+ .zjpcy-calendar__header-btn:disabled {
14329
+ opacity: var(--zjpcy-opacity-disabled);
14330
+ cursor: not-allowed;
14331
+ background: var(--zjpcy-bg-color-light);
14332
+ }
14333
+
14334
+ /* ============================================
14335
+ 日历主体样式
14336
+ ============================================ */
14337
+ .zjpcy-calendar__body {
14338
+ flex: 1;
14339
+ display: flex;
14340
+ flex-direction: column;
14341
+ overflow: hidden;
14342
+ }
14343
+
14344
+ /* ============================================
14345
+ 周标题样式
14346
+ ============================================ */
14347
+ .zjpcy-calendar__weekday-header {
14348
+ display: grid;
14349
+ grid-template-columns: repeat(7, 1fr);
14350
+ padding: 12px 16px;
14351
+ border-bottom: 1px solid var(--zjpcy-border-color-extra-light);
14352
+ background: linear-gradient(135deg, var(--zjpcy-bg-color) 0%, var(--zjpcy-bg-color-light) 100%);
14353
+ }
14354
+
14355
+ .zjpcy-calendar__weekday-cell {
14356
+ display: flex;
14357
+ align-items: center;
14358
+ justify-content: center;
14359
+ padding: 8px 0;
14360
+ font-size: 14px;
14361
+ font-weight: 600;
14362
+ color: var(--zjpcy-text-color);
14363
+ }
14364
+
14365
+ .zjpcy-calendar__weekday-cell--weekend {
14366
+ color: var(--zjpcy-text-color-secondary);
14367
+ }
14368
+
14369
+ /* ============================================
14370
+ 日期网格样式
14371
+ ============================================ */
14372
+ .zjpcy-calendar__date-grid {
14373
+ display: grid;
14374
+ grid-template-columns: repeat(7, 1fr);
14375
+ grid-auto-rows: minmax(80px, 1fr);
14376
+ flex: 1;
14377
+ padding: 8px 16px;
14378
+ gap: 4px;
14379
+ }
14380
+
14381
+ .zjpcy-calendar__date-cell {
14382
+ position: relative;
14383
+ display: flex;
14384
+ flex-direction: column;
14385
+ padding: 8px;
14386
+ border-radius: var(--zjpcy-border-radius-md);
14387
+ background-color: transparent;
14388
+ color: var(--zjpcy-text-color);
14389
+ cursor: pointer;
14390
+ transition: all var(--zjpcy-transition-duration) var(--zjpcy-transition-timing-function);
14391
+ min-height: 80px;
14392
+ animation: calendarCellScale 0.2s var(--zjpcy-transition-timing-function);
14393
+ user-select: none;
14394
+ -webkit-user-select: none;
14395
+ -moz-user-select: none;
14396
+ -ms-user-select: none;
14397
+ border: 1px solid transparent;
14398
+ box-sizing: border-box;
14399
+ }
14400
+
14401
+ .zjpcy-calendar__date-cell:hover:not(.zjpcy-calendar__date-cell--disabled) {
14402
+ background: linear-gradient(135deg, var(--zjpcy-bg-color-light) 0%, var(--zjpcy-bg-color) 100%);
14403
+ box-shadow: var(--zjpcy-shadow-extra-light);
14404
+ transform: translateY(-1px);
14405
+ }
14406
+
14407
+ .zjpcy-calendar__date-cell:active:not(.zjpcy-calendar__date-cell--disabled) {
14408
+ transform: scale(0.98) translateY(0);
14409
+ box-shadow: none;
14410
+ }
14411
+
14412
+ .zjpcy-calendar__date-cell--other-month {
14413
+ color: var(--zjpcy-text-color-light);
14414
+ }
14415
+
14416
+ /* 今天样式 - 仅在未选中时生效 */
14417
+ .zjpcy-calendar__date-cell--today:not(.zjpcy-calendar__date-cell--selected) {
14418
+ background: linear-gradient(135deg, var(--zjpcy-primary-light-color) 0%, rgba(24, 144, 255, 0.15) 100%);
14419
+ border: 1px solid var(--zjpcy-primary-color);
14420
+ }
14421
+
14422
+ .zjpcy-calendar__date-cell--today:not(.zjpcy-calendar__date-cell--selected):hover {
14423
+ background: linear-gradient(135deg, rgba(24, 144, 255, 0.15) 0%, rgba(24, 144, 255, 0.25) 100%);
14424
+ box-shadow: 0 2px 8px rgba(24, 144, 255, 0.2);
14425
+ }
14426
+
14427
+ /* 今天的指示点 */
14428
+ .zjpcy-calendar__date-cell--today::before {
14429
+ content: '';
14430
+ position: absolute;
14431
+ top: 4px;
14432
+ right: 4px;
14433
+ width: 6px;
14434
+ height: 6px;
14435
+ border-radius: 50%;
14436
+ background: linear-gradient(135deg, var(--zjpcy-primary-color) 0%, var(--zjpcy-primary-hover-color) 100%);
14437
+ box-shadow: 0 1px 3px rgba(24, 144, 255, 0.4);
14438
+ }
14439
+
14440
+ /* 选中样式 */
14441
+ .zjpcy-calendar__date-cell--selected {
14442
+ background: linear-gradient(135deg, var(--zjpcy-primary-color) 0%, var(--zjpcy-primary-hover-color) 100%) !important;
14443
+ color: var(--zjpcy-button-text-white);
14444
+ box-shadow: 0 4px 12px rgba(24, 144, 255, 0.35);
14445
+ border: 1px solid transparent;
14446
+ }
14447
+
14448
+ .zjpcy-calendar__date-cell--selected:hover {
14449
+ background: linear-gradient(135deg, var(--zjpcy-primary-hover-color) 0%, #69c0ff 100%) !important;
14450
+ box-shadow: 0 6px 16px rgba(24, 144, 255, 0.45);
14451
+ }
14452
+
14453
+ /* 多选模式下额外选中日期的样式 */
14454
+ .zjpcy-calendar__date-cell--selected:not(.zjpcy-calendar__date-cell--today) {
14455
+ position: relative;
14456
+ }
14457
+
14458
+ .zjpcy-calendar__date-cell--selected::after {
14459
+ content: '';
14460
+ position: absolute;
14461
+ bottom: 4px;
14462
+ right: 4px;
14463
+ width: 6px;
14464
+ height: 6px;
14465
+ border-radius: 50%;
14466
+ background: rgba(255, 255, 255, 0.8);
14467
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
14468
+ }
14469
+
14470
+ /* 选中状态下今天的指示点变为白色 */
14471
+ .zjpcy-calendar__date-cell--selected.zjpcy-calendar__date-cell--today::before {
14472
+ background: linear-gradient(135deg, var(--zjpcy-bg-color-white) 0%, var(--zjpcy-bg-color-light) 100%);
14473
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
14474
+ }
14475
+
14476
+ .zjpcy-calendar__date-cell--selected.zjpcy-calendar__date-cell--today::after {
14477
+ display: none;
14478
+ }
14479
+
14480
+ .zjpcy-calendar__date-cell--disabled {
14481
+ color: var(--zjpcy-text-color-light);
14482
+ cursor: not-allowed;
14483
+ opacity: var(--zjpcy-opacity-disabled);
14484
+ background: var(--zjpcy-bg-color-light);
14485
+ }
14486
+
14487
+ .zjpcy-calendar__date-cell--hidden {
14488
+ display: none;
14489
+ }
14490
+
14491
+ .zjpcy-calendar__date-cell-header {
14492
+ display: flex;
14493
+ align-items: center;
14494
+ justify-content: space-between;
14495
+ margin-bottom: 4px;
14496
+ }
14497
+
14498
+ .zjpcy-calendar__date-number {
14499
+ font-size: 14px;
14500
+ font-weight: 500;
14501
+ line-height: 1.5;
14502
+ }
14503
+
14504
+ .zjpcy-calendar__date-number--today {
14505
+ font-weight: 700;
14506
+ }
14507
+
14508
+ /* ============================================
14509
+ 农历样式
14510
+ ============================================ */
14511
+ .zjpcy-calendar__lunar-text {
14512
+ font-size: 11px;
14513
+ color: var(--zjpcy-text-color-light);
14514
+ line-height: 1.4;
14515
+ white-space: nowrap;
14516
+ overflow: hidden;
14517
+ text-overflow: ellipsis;
14518
+ max-width: 45px;
14519
+ }
14520
+
14521
+ .zjpcy-calendar__date-cell--other-month .zjpcy-calendar__lunar-text {
14522
+ color: var(--zjpcy-text-color-light);
14523
+ opacity: 0.7;
14524
+ }
14525
+
14526
+ /* 节气特殊样式 */
14527
+ .zjpcy-calendar__lunar-text--term {
14528
+ color: var(--zjpcy-primary-color);
14529
+ font-weight: 600;
14530
+ }
14531
+
14532
+ .zjpcy-calendar__date-cell--selected .zjpcy-calendar__lunar-text {
14533
+ color: rgba(255, 255, 255, 0.85);
14534
+ }
14535
+
14536
+ .zjpcy-calendar__date-cell--selected .zjpcy-calendar__lunar-text--term {
14537
+ color: var(--zjpcy-bg-color-white);
14538
+ font-weight: 600;
14539
+ }
14540
+
14541
+ .zjpcy-calendar__date-content {
14542
+ flex: 1;
14543
+ font-size: 12px;
14544
+ overflow: hidden;
14545
+ line-height: 1.4;
14546
+ }
14547
+
14548
+ /* ============================================
14549
+ 日期信息样式
14550
+ ============================================ */
14551
+ .zjpcy-calendar__date-info-list {
14552
+ display: flex;
14553
+ flex-direction: column;
14554
+ gap: 2px;
14555
+ margin-top: 4px;
14556
+ overflow: hidden;
14557
+ }
14558
+
14559
+ .zjpcy-calendar__date-info-item {
14560
+ display: flex;
14561
+ align-items: center;
14562
+ gap: 4px;
14563
+ font-size: 11px;
14564
+ line-height: 1.4;
14565
+ white-space: nowrap;
14566
+ overflow: hidden;
14567
+ text-overflow: ellipsis;
14568
+ }
14569
+
14570
+ .zjpcy-calendar__date-info-dot {
14571
+ width: 6px;
14572
+ height: 6px;
14573
+ border-radius: 50%;
14574
+ flex-shrink: 0;
14575
+ }
14576
+
14577
+ .zjpcy-calendar__date-info-text {
14578
+ overflow: hidden;
14579
+ text-overflow: ellipsis;
14580
+ white-space: nowrap;
14581
+ }
14582
+
14583
+ .zjpcy-calendar__date-info-more {
14584
+ font-size: 10px;
14585
+ color: var(--zjpcy-text-color-tertiary);
14586
+ text-align: center;
14587
+ padding: 2px 0;
14588
+ }
14589
+
14590
+ /* ============================================
14591
+ 信息 Tooltip 样式
14592
+ ============================================ */
14593
+ .zjpcy-calendar__info-tooltip {
14594
+ max-width: 200px;
14595
+ padding: 4px 0;
14596
+ }
14597
+
14598
+ .zjpcy-calendar__info-tooltip-item {
14599
+ padding: 4px 0;
14600
+ border-bottom: 1px solid var(--zjpcy-border-color-extra-light);
14601
+ }
14602
+
14603
+ .zjpcy-calendar__info-tooltip-item:last-child {
14604
+ border-bottom: none;
14605
+ }
14606
+
14607
+ .zjpcy-calendar__info-tooltip-title {
14608
+ display: flex;
14609
+ align-items: center;
14610
+ gap: 6px;
14611
+ font-weight: 500;
14612
+ font-size: 13px;
14613
+ }
14614
+
14615
+ .zjpcy-calendar__info-tooltip-dot {
14616
+ width: 8px;
14617
+ height: 8px;
14618
+ border-radius: 50%;
14619
+ flex-shrink: 0;
14620
+ }
14621
+
14622
+ .zjpcy-calendar__info-tooltip-content {
14623
+ margin-top: 4px;
14624
+ font-size: 12px;
14625
+ color: var(--zjpcy-text-color-secondary);
14626
+ padding-left: 14px;
14627
+ }
14628
+
14629
+ /* ============================================
14630
+ 编辑面板样式
14631
+ ============================================ */
14632
+ .zjpcy-calendar__panel-overlay {
14633
+ position: fixed;
14634
+ top: 0;
14635
+ left: 0;
14636
+ right: 0;
14637
+ bottom: 0;
14638
+ background-color: rgba(0, 0, 0, 0.45);
14639
+ backdrop-filter: blur(4px);
14640
+ display: flex;
14641
+ align-items: center;
14642
+ justify-content: center;
14643
+ z-index: var(--zjpcy-z-index-modal);
14644
+ animation: calendarFadeIn 0.25s var(--zjpcy-transition-timing-function);
14645
+ padding: 16px;
14646
+ }
14647
+
14648
+ .zjpcy-calendar__panel {
14649
+ background: var(--zjpcy-bg-color-white);
14650
+ border-radius: var(--zjpcy-border-radius-lg);
14651
+ box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25), 0 0 0 1px rgba(0, 0, 0, 0.05);
14652
+ width: 100%;
14653
+ max-width: 520px;
14654
+ max-height: 85vh;
14655
+ display: flex;
14656
+ flex-direction: column;
14657
+ animation: calendarPanelSlideIn 0.35s cubic-bezier(0.16, 1, 0.3, 1);
14658
+ border: 1px solid var(--zjpcy-border-color-extra-light);
14659
+ overflow: hidden;
14660
+ }
14661
+
14662
+ .zjpcy-calendar__panel-header {
14663
+ display: flex;
14664
+ align-items: center;
14665
+ justify-content: space-between;
14666
+ padding: 20px 24px;
14667
+ border-bottom: 1px solid var(--zjpcy-border-color-extra-light);
14668
+ background: var(--zjpcy-bg-color-white);
14669
+ position: relative;
14670
+ }
14671
+
14672
+ .zjpcy-calendar__panel-header::after {
14673
+ content: '';
14674
+ position: absolute;
14675
+ bottom: 0;
14676
+ left: 24px;
14677
+ right: 24px;
14678
+ height: 1px;
14679
+ background: linear-gradient(90deg, transparent, var(--zjpcy-border-color-light), transparent);
14680
+ }
14681
+
14682
+ .zjpcy-calendar__panel-title {
14683
+ margin: 0;
14684
+ font-size: 18px;
14685
+ font-weight: 600;
14686
+ color: var(--zjpcy-text-color);
14687
+ display: flex;
14688
+ align-items: center;
14689
+ gap: 10px;
14690
+ }
14691
+
14692
+ .zjpcy-calendar__panel-title::before {
14693
+ content: '';
14694
+ width: 4px;
14695
+ height: 20px;
14696
+ background: linear-gradient(180deg, var(--zjpcy-primary-color), var(--zjpcy-primary-hover-color));
14697
+ border-radius: 2px;
14698
+ }
14699
+
14700
+ .zjpcy-calendar__panel-close {
14701
+ display: flex;
14702
+ align-items: center;
14703
+ justify-content: center;
14704
+ width: 32px;
14705
+ height: 32px;
14706
+ padding: 0;
14707
+ border: none;
14708
+ background: var(--zjpcy-bg-color-light);
14709
+ color: var(--zjpcy-text-color-secondary);
14710
+ cursor: pointer;
14711
+ border-radius: var(--zjpcy-border-radius-md);
14712
+ transition: all 0.2s ease;
14713
+ }
14714
+
14715
+ .zjpcy-calendar__panel-close:hover {
14716
+ background: var(--zjpcy-error-color);
14717
+ color: var(--zjpcy-bg-color-white);
14718
+ transform: rotate(90deg);
14719
+ }
14720
+
14721
+ .zjpcy-calendar__panel-close:active {
14722
+ transform: rotate(90deg) scale(0.95);
14723
+ }
14724
+
14725
+ .zjpcy-calendar__panel-body {
14726
+ flex: 1;
14727
+ overflow-y: auto;
14728
+ }
14729
+
14730
+ .zjpcy-calendar__panel-body::-webkit-scrollbar {
14731
+ width: 6px;
14732
+ }
14733
+
14734
+ .zjpcy-calendar__panel-body::-webkit-scrollbar-track {
14735
+ background: transparent;
14736
+ }
14737
+
14738
+ .zjpcy-calendar__panel-body::-webkit-scrollbar-thumb {
14739
+ background: var(--zjpcy-border-color);
14740
+ border-radius: 3px;
14741
+ }
14742
+
14743
+ .zjpcy-calendar__panel-body::-webkit-scrollbar-thumb:hover {
14744
+ background: var(--zjpcy-border-color-dark);
14745
+ }
14746
+
14747
+ .zjpcy-calendar__panel-section-title {
14748
+ margin: 0 0 16px 0;
14749
+ font-size: 14px;
14750
+ font-weight: 600;
14751
+ color: var(--zjpcy-text-color);
14752
+ display: flex;
14753
+ align-items: center;
14754
+ gap: 8px;
14755
+ }
14756
+
14757
+ .zjpcy-calendar__panel-section-title::before {
14758
+ content: '';
14759
+ width: 6px;
14760
+ height: 6px;
14761
+ background: var(--zjpcy-primary-color);
14762
+ border-radius: 50%;
14763
+ }
14764
+
14765
+ .zjpcy-calendar__panel-list {
14766
+ margin-bottom: 24px;
14767
+ }
14768
+
14769
+ .zjpcy-calendar__panel-list-item {
14770
+ display: flex;
14771
+ align-items: flex-start;
14772
+ justify-content: space-between;
14773
+ padding: 16px;
14774
+ border-radius: var(--zjpcy-border-radius-lg);
14775
+ background: var(--zjpcy-bg-color-white);
14776
+ margin-bottom: 12px;
14777
+ transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1);
14778
+ border: 1px solid var(--zjpcy-border-color-extra-light);
14779
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
14780
+ }
14781
+
14782
+ .zjpcy-calendar__panel-list-item:hover {
14783
+ border-color: var(--zjpcy-primary-color);
14784
+ box-shadow: 0 4px 12px rgba(24, 144, 255, 0.12);
14785
+ transform: translateY(-2px);
14786
+ }
14787
+
14788
+ .zjpcy-calendar__panel-list-item.is-editing {
14789
+ background: linear-gradient(135deg, rgba(24, 144, 255, 0.08) 0%, rgba(24, 144, 255, 0.02) 100%);
14790
+ border: 2px solid var(--zjpcy-primary-color);
14791
+ box-shadow: 0 8px 24px rgba(24, 144, 255, 0.2);
14792
+ transform: translateY(-2px) scale(1.01);
14793
+ }
14794
+
14795
+ .zjpcy-calendar__panel-list-content {
14796
+ display: flex;
14797
+ align-items: flex-start;
14798
+ gap: 12px;
14799
+ flex: 1;
14800
+ min-width: 0;
14801
+ }
14802
+
14803
+ .zjpcy-calendar__panel-list-dot {
14804
+ width: 10px;
14805
+ height: 10px;
14806
+ border-radius: 50%;
14807
+ margin-top: 5px;
14808
+ flex-shrink: 0;
14809
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);
14810
+ }
14811
+
14812
+ .zjpcy-calendar__panel-list-text {
14813
+ flex: 1;
14814
+ min-width: 0;
14815
+ }
14816
+
14817
+ .zjpcy-calendar__panel-list-title {
14818
+ font-size: 15px;
14819
+ font-weight: 500;
14820
+ color: var(--zjpcy-text-color);
14821
+ line-height: 1.5;
14822
+ word-break: break-word;
14823
+ }
14824
+
14825
+ .zjpcy-calendar__panel-list-desc {
14826
+ font-size: 13px;
14827
+ color: var(--zjpcy-text-color-secondary);
14828
+ margin-top: 6px;
14829
+ line-height: 1.5;
14830
+ word-break: break-word;
14831
+ }
14832
+
14833
+ .zjpcy-calendar__panel-list-actions {
14834
+ display: flex;
14835
+ gap: 8px;
14836
+ flex-shrink: 0;
14837
+ margin-left: 12px;
14838
+ opacity: 0.7;
14839
+ transition: opacity 0.2s ease;
14840
+ }
14841
+
14842
+ .zjpcy-calendar__panel-list-item:hover .zjpcy-calendar__panel-list-actions {
14843
+ opacity: 1;
14844
+ }
14845
+
14846
+ .zjpcy-calendar__panel-list-btn {
14847
+ padding: 6px 12px;
14848
+ font-size: 12px;
14849
+ font-weight: 500;
14850
+ border: 1px solid var(--zjpcy-border-color-extra-light);
14851
+ background: var(--zjpcy-bg-color-white);
14852
+ color: var(--zjpcy-primary-color);
14853
+ cursor: pointer;
14854
+ border-radius: var(--zjpcy-border-radius-md);
14855
+ transition: all 0.2s ease;
14856
+ }
14857
+
14858
+ .zjpcy-calendar__panel-list-btn:hover {
14859
+ background: var(--zjpcy-primary-light-color);
14860
+ border-color: var(--zjpcy-primary-color);
14861
+ transform: translateY(-1px);
14862
+ }
14863
+
14864
+ .zjpcy-calendar__panel-list-btn:active {
14865
+ transform: translateY(0);
14866
+ }
14867
+
14868
+ .zjpcy-calendar__panel-list-btn.is-danger {
14869
+ color: var(--zjpcy-error-color);
14870
+ border-color: var(--zjpcy-border-color-extra-light);
14871
+ }
14872
+
14873
+ .zjpcy-calendar__panel-list-btn.is-danger:hover {
14874
+ background: #fff2f0;
14875
+ border-color: var(--zjpcy-error-color);
14876
+ color: var(--zjpcy-error-color);
14877
+ }
14878
+
14879
+
14880
+ .zjpcy-calendar__panel-field {
14881
+ margin-bottom: 20px;
14882
+ }
14883
+
14884
+ .zjpcy-calendar__panel-label {
14885
+ display: block;
14886
+ font-size: 14px;
14887
+ font-weight: 500;
14888
+ color: var(--zjpcy-text-color);
14889
+ margin-bottom: 10px;
14890
+ }
14891
+
14892
+ .zjpcy-calendar__panel-required {
14893
+ color: var(--zjpcy-error-color);
14894
+ margin-left: 4px;
14895
+ }
14896
+
14897
+
14898
+ .zjpcy-calendar__panel-color {
14899
+ margin-bottom: 20px;
14900
+ }
14901
+
14902
+ .zjpcy-calendar__panel-color-picker {
14903
+ display: flex;
14904
+ gap: 12px;
14905
+ flex-wrap: wrap;
14906
+ padding: 4px;
14907
+ }
14908
+
14909
+ .zjpcy-calendar__panel-color-option {
14910
+ width: 32px;
14911
+ height: 32px;
14912
+ border-radius: 50%;
14913
+ border: 3px solid transparent;
14914
+ cursor: pointer;
14915
+ transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1);
14916
+ position: relative;
14917
+ }
14918
+
14919
+ .zjpcy-calendar__panel-color-option::after {
14920
+ content: '';
14921
+ position: absolute;
14922
+ inset: -2px;
14923
+ border-radius: 50%;
14924
+ border: 2px solid transparent;
14925
+ transition: all 0.2s ease;
14926
+ }
14927
+
14928
+ .zjpcy-calendar__panel-color-option:hover {
14929
+ transform: scale(1.2);
14930
+ }
14931
+
14932
+ .zjpcy-calendar__panel-color-option:hover::after {
14933
+ border-color: rgba(0, 0, 0, 0.2);
14934
+ }
14935
+
14936
+ .zjpcy-calendar__panel-color-option.is-active {
14937
+ border-color: var(--zjpcy-bg-color-white);
14938
+ box-shadow: 0 0 0 2px var(--zjpcy-primary-color), 0 4px 8px rgba(0, 0, 0, 0.15);
14939
+ transform: scale(1.1);
14940
+ }
14941
+
14942
+ .zjpcy-calendar__panel-color-option.is-active::after {
14943
+ border-color: rgba(255, 255, 255, 0.5);
14944
+ }
14945
+
14946
+ .zjpcy-calendar__panel-footer {
14947
+ display: flex;
14948
+ justify-content: flex-end;
14949
+ gap: 12px;
14950
+ padding: 16px 24px;
14951
+ border-top: 1px solid var(--zjpcy-border-color-extra-light);
14952
+ background: var(--zjpcy-bg-color-white);
14953
+ }
14954
+
14955
+ .zjpcy-calendar__panel-btn {
14956
+ padding: 10px 20px;
14957
+ font-size: 14px;
14958
+ font-weight: 500;
14959
+ border-radius: var(--zjpcy-border-radius-md);
14960
+ cursor: pointer;
14961
+ transition: all 0.2s ease;
14962
+ border: 1px solid transparent;
14963
+ }
14964
+
14965
+ .zjpcy-calendar__panel-btn.is-primary {
14966
+ background: var(--zjpcy-primary-color);
14967
+ color: var(--zjpcy-bg-color-white);
14968
+ box-shadow: 0 2px 8px rgba(24, 144, 255, 0.35);
14969
+ }
14970
+
14971
+ .zjpcy-calendar__panel-btn.is-primary:hover {
14972
+ background: var(--zjpcy-primary-hover-color);
14973
+ box-shadow: 0 4px 12px rgba(24, 144, 255, 0.45);
14974
+ transform: translateY(-1px);
14975
+ }
14976
+
14977
+ .zjpcy-calendar__panel-btn.is-primary:active {
14978
+ transform: translateY(0);
14979
+ box-shadow: 0 2px 4px rgba(24, 144, 255, 0.3);
14980
+ }
14981
+
14982
+ .zjpcy-calendar__panel-btn.is-secondary {
14983
+ background: var(--zjpcy-bg-color-white);
14984
+ color: var(--zjpcy-text-color);
14985
+ border-color: var(--zjpcy-border-color);
14986
+ }
14987
+
14988
+ .zjpcy-calendar__panel-btn.is-secondary:hover {
14989
+ border-color: var(--zjpcy-primary-color);
14990
+ color: var(--zjpcy-primary-color);
14991
+ background: var(--zjpcy-primary-light-color);
14992
+ transform: translateY(-1px);
14993
+ }
14994
+
14995
+ .zjpcy-calendar__panel-btn.is-secondary:active {
14996
+ transform: translateY(0);
14997
+ }
14998
+
14999
+ /* 空状态样式 */
15000
+ .zjpcy-calendar__panel-empty {
15001
+ display: flex;
15002
+ flex-direction: column;
15003
+ align-items: center;
15004
+ justify-content: center;
15005
+ padding: 40px 24px;
15006
+ color: var(--zjpcy-text-color-secondary);
15007
+ text-align: center;
15008
+ }
15009
+
15010
+ .zjpcy-calendar__panel-empty-icon {
15011
+ font-size: 48px;
15012
+ margin-bottom: 16px;
15013
+ opacity: 0.5;
15014
+ }
15015
+
15016
+ .zjpcy-calendar__panel-empty-text {
15017
+ font-size: 14px;
15018
+ }
15019
+
15020
+ /* 响应式优化 */
15021
+ @media (max-width: 576px) {
15022
+ .zjpcy-calendar__panel-overlay {
15023
+ padding: 0;
15024
+ align-items: flex-end;
15025
+ }
15026
+
15027
+ .zjpcy-calendar__panel {
15028
+ max-width: 100%;
15029
+ max-height: 90vh;
15030
+ border-radius: var(--zjpcy-border-radius-lg) var(--zjpcy-border-radius-lg) 0 0;
15031
+ animation: calendarPanelSlideUp 0.3s cubic-bezier(0.16, 1, 0.3, 1);
15032
+ }
15033
+
15034
+ @keyframes calendarPanelSlideUp {
15035
+ from {
15036
+ opacity: 0;
15037
+ transform: translateY(100%);
15038
+ }
15039
+ to {
15040
+ opacity: 1;
15041
+ transform: translateY(0);
15042
+ }
15043
+ }
15044
+
15045
+ .zjpcy-calendar__panel-header {
15046
+ padding: 16px 20px;
15047
+ }
15048
+
15049
+ .zjpcy-calendar__panel-body {
15050
+ padding: 20px;
15051
+ }
15052
+
15053
+ .zjpcy-calendar__panel-list-item {
15054
+ padding: 14px;
15055
+ }
15056
+
15057
+ .zjpcy-calendar__panel-footer {
15058
+ padding: 12px 20px;
15059
+ flex-direction: column-reverse;
15060
+ gap: 8px;
15061
+ }
15062
+
15063
+ .zjpcy-calendar__panel-btn {
15064
+ width: 100%;
15065
+ justify-content: center;
15066
+ }
15067
+ }
15068
+
15069
+ /* ============================================
15070
+ 月份网格样式
15071
+ ============================================ */
15072
+ .zjpcy-calendar__month-grid {
15073
+ display: grid;
15074
+ grid-template-columns: repeat(3, 1fr);
15075
+ gap: 16px;
15076
+ padding: 24px;
15077
+ flex: 1;
15078
+ }
15079
+
15080
+ .zjpcy-calendar__month-cell {
15081
+ display: flex;
15082
+ flex-direction: column;
15083
+ align-items: center;
15084
+ justify-content: center;
15085
+ padding: 24px 16px;
15086
+ border-radius: var(--zjpcy-border-radius-lg);
15087
+ background: linear-gradient(135deg, var(--zjpcy-bg-color-light) 0%, var(--zjpcy-bg-color) 100%);
15088
+ color: var(--zjpcy-text-color);
15089
+ cursor: pointer;
15090
+ transition: all var(--zjpcy-transition-duration) var(--zjpcy-transition-timing-function);
15091
+ animation: calendarCellScale 0.2s var(--zjpcy-transition-timing-function);
15092
+ border: 1px solid transparent;
15093
+ box-shadow: var(--zjpcy-shadow-extra-light);
15094
+ }
15095
+
15096
+ .zjpcy-calendar__month-cell:hover {
15097
+ background: linear-gradient(135deg, var(--zjpcy-primary-light-color) 0%, rgba(24, 144, 255, 0.15) 100%);
15098
+ color: var(--zjpcy-primary-color);
15099
+ border-color: var(--zjpcy-primary-color);
15100
+ box-shadow: var(--zjpcy-shadow-sm);
15101
+ transform: translateY(-2px);
15102
+ }
15103
+
15104
+ .zjpcy-calendar__month-cell:active {
15105
+ transform: translateY(0);
15106
+ box-shadow: var(--zjpcy-shadow-extra-light);
15107
+ }
15108
+
15109
+ .zjpcy-calendar__month-cell--selected {
15110
+ background: linear-gradient(135deg, var(--zjpcy-primary-color) 0%, var(--zjpcy-primary-hover-color) 100%);
15111
+ color: var(--zjpcy-button-text-white);
15112
+ border-color: var(--zjpcy-primary-color);
15113
+ box-shadow: 0 4px 12px rgba(24, 144, 255, 0.35);
15114
+ }
15115
+
15116
+ .zjpcy-calendar__month-cell--selected:hover {
15117
+ background: linear-gradient(135deg, var(--zjpcy-primary-hover-color) 0%, #69c0ff 100%);
15118
+ color: var(--zjpcy-button-text-white);
15119
+ box-shadow: 0 6px 16px rgba(24, 144, 255, 0.45);
15120
+ }
15121
+
15122
+ .zjpcy-calendar__month-name {
15123
+ font-size: 16px;
15124
+ font-weight: 600;
15125
+ margin-bottom: 4px;
15126
+ }
15127
+
15128
+ .zjpcy-calendar__month-subtitle {
15129
+ font-size: 12px;
15130
+ opacity: 0.8;
15131
+ }
15132
+
15133
+ /* ============================================
15134
+ 空单元格
15135
+ ============================================ */
15136
+ .zjpcy-calendar__empty-cell {
15137
+ min-height: 80px;
15138
+ }
15139
+
15140
+ /* ============================================
15141
+ 响应式样式
15142
+ ============================================ */
15143
+ @media (max-width: 576px) {
15144
+ .zjpcy-calendar {
15145
+ width: 100%;
15146
+ }
15147
+
15148
+ .zjpcy-calendar__header {
15149
+ padding: 12px 16px;
15150
+ }
15151
+
15152
+ .zjpcy-calendar__header-title-btn {
15153
+ font-size: 14px;
15154
+ padding: 4px 10px;
15155
+ }
15156
+
15157
+ .zjpcy-calendar__header-btn {
15158
+ width: 28px;
15159
+ height: 28px;
15160
+ }
15161
+
15162
+ .zjpcy-calendar__weekday-header {
15163
+ padding: 8px 12px;
15164
+ }
15165
+
15166
+ .zjpcy-calendar__weekday-cell {
15167
+ font-size: 12px;
15168
+ padding: 6px 0;
15169
+ }
15170
+
15171
+ .zjpcy-calendar__date-grid {
15172
+ padding: 4px 12px;
15173
+ gap: 2px;
15174
+ }
15175
+
15176
+ .zjpcy-calendar__date-cell {
15177
+ min-height: 60px;
15178
+ padding: 6px;
15179
+ }
15180
+
15181
+ .zjpcy-calendar__date-number {
15182
+ font-size: 12px;
15183
+ }
15184
+
15185
+ .zjpcy-calendar__month-grid {
15186
+ padding: 16px;
15187
+ gap: 12px;
15188
+ }
15189
+
15190
+ .zjpcy-calendar__month-cell {
15191
+ padding: 16px 12px;
15192
+ }
15193
+
15194
+ .zjpcy-calendar__month-name {
15195
+ font-size: 14px;
15196
+ }
15197
+ }
15198
+
15199
+ /* ============================================
15200
+ 农历详情弹窗样式
15201
+ ============================================ */
15202
+ .zjpcy-calendar__lunar-overlay {
15203
+ position: fixed;
15204
+ top: 0;
15205
+ left: 0;
15206
+ right: 0;
15207
+ bottom: 0;
15208
+ background: rgba(0, 0, 0, 0.5);
15209
+ display: flex;
15210
+ align-items: center;
15211
+ justify-content: center;
15212
+ z-index: 1100;
15213
+ padding: 20px;
15214
+ animation: calendarFadeIn 0.2s var(--zjpcy-transition-timing-function);
15215
+ }
15216
+
15217
+ .zjpcy-calendar__lunar-panel {
15218
+ background: var(--zjpcy-bg-color-white);
15219
+ border-radius: var(--zjpcy-border-radius-lg);
15220
+ box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
15221
+ max-width: 600px;
15222
+ width: 100%;
15223
+ max-height: 85vh;
15224
+ display: flex;
15225
+ flex-direction: column;
15226
+ animation: calendarPanelSlideIn 0.3s var(--zjpcy-transition-timing-function);
15227
+ overflow: hidden;
15228
+ }
15229
+
15230
+ .zjpcy-calendar__lunar-header {
15231
+ display: flex;
15232
+ align-items: center;
15233
+ justify-content: space-between;
15234
+ padding: 20px 24px;
15235
+ border-bottom: 1px solid var(--zjpcy-border-color-extra-light);
15236
+ background: linear-gradient(135deg, #fefbe6 0%, #fffbe6 100%);
15237
+ }
15238
+
15239
+ .zjpcy-calendar__lunar-title {
15240
+ margin: 0;
15241
+ display: flex;
15242
+ flex-direction: column;
15243
+ gap: 6px;
15244
+ }
15245
+
15246
+ .zjpcy-calendar__lunar-date {
15247
+ font-size: 18px;
15248
+ font-weight: 600;
15249
+ color: var(--zjpcy-text-color);
15250
+ }
15251
+
15252
+ .zjpcy-calendar__lunar-tag {
15253
+ font-size: 13px;
15254
+ color: #faad14;
15255
+ font-weight: 500;
15256
+ }
15257
+
15258
+ .zjpcy-calendar__lunar-close {
15259
+ width: 32px;
15260
+ height: 32px;
15261
+ border: none;
15262
+ background: transparent;
15263
+ border-radius: var(--zjpcy-border-radius-md);
15264
+ cursor: pointer;
15265
+ display: flex;
15266
+ align-items: center;
15267
+ justify-content: center;
15268
+ color: var(--zjpcy-text-color-light);
15269
+ transition: all var(--zjpcy-transition-duration);
15270
+ }
15271
+
15272
+ .zjpcy-calendar__lunar-close:hover {
15273
+ background: var(--zjpcy-bg-color-light);
15274
+ color: var(--zjpcy-text-color);
15275
+ }
15276
+
15277
+ .zjpcy-calendar__lunar-body {
15278
+ flex: 1;
15279
+ overflow-y: auto;
15280
+ padding: 20px 24px;
15281
+ background: var(--zjpcy-bg-color-white);
15282
+ }
15283
+
15284
+ .zjpcy-calendar__lunar-section {
15285
+ margin-bottom: 24px;
15286
+ padding-bottom: 20px;
15287
+ border-bottom: 1px solid var(--zjpcy-border-color-extra-light);
15288
+ }
15289
+
15290
+ .zjpcy-calendar__lunar-section:last-child {
15291
+ margin-bottom: 0;
15292
+ padding-bottom: 0;
15293
+ border-bottom: none;
15294
+ }
15295
+
15296
+ .zjpcy-calendar__lunar-section-title {
15297
+ font-size: 14px;
15298
+ font-weight: 600;
15299
+ color: var(--zjpcy-text-color);
15300
+ margin: 0 0 16px 0;
15301
+ padding-left: 12px;
15302
+ border-left: 3px solid var(--zjpcy-primary-color);
15303
+ }
15304
+
15305
+ .zjpcy-calendar__lunar-grid {
15306
+ display: grid;
15307
+ grid-template-columns: repeat(2, 1fr);
15308
+ gap: 12px 24px;
15309
+ }
15310
+
15311
+ .zjpcy-calendar__lunar-grid--4 {
15312
+ grid-template-columns: repeat(4, 1fr);
15313
+ }
15314
+
15315
+ .zjpcy-calendar__lunar-item {
15316
+ display: flex;
15317
+ flex-direction: column;
15318
+ gap: 4px;
15319
+ }
15320
+
15321
+ .zjpcy-calendar__lunar-label {
15322
+ font-size: 12px;
15323
+ color: var(--zjpcy-text-color-light);
15324
+ }
15325
+
15326
+ .zjpcy-calendar__lunar-value {
15327
+ font-size: 14px;
15328
+ color: var(--zjpcy-text-color);
15329
+ font-weight: 500;
15330
+ }
15331
+
15332
+ .zjpcy-calendar__lunar-value--highlight {
15333
+ color: #faad14;
15334
+ font-weight: 600;
15335
+ }
15336
+
15337
+ .zjpcy-calendar__lunar-value--good {
15338
+ color: #52c41a;
15339
+ font-weight: 600;
15340
+ }
15341
+
15342
+ .zjpcy-calendar__lunar-value--bad {
15343
+ color: #f5222d;
15344
+ font-weight: 600;
15345
+ }
15346
+
15347
+ .zjpcy-calendar__lunar-bazi {
15348
+ display: flex;
15349
+ justify-content: space-between;
15350
+ background: linear-gradient(135deg, var(--zjpcy-bg-color-light) 0%, var(--zjpcy-bg-color) 100%);
15351
+ padding: 16px;
15352
+ border-radius: var(--zjpcy-border-radius-md);
15353
+ }
15354
+
15355
+ .zjpcy-calendar__lunar-bazi-item {
15356
+ display: flex;
15357
+ flex-direction: column;
15358
+ align-items: center;
15359
+ gap: 6px;
15360
+ }
15361
+
15362
+ .zjpcy-calendar__lunar-bazi-label {
15363
+ font-size: 11px;
15364
+ color: var(--zjpcy-text-color-light);
15365
+ }
15366
+
15367
+ .zjpcy-calendar__lunar-bazi-value {
15368
+ font-size: 18px;
15369
+ font-weight: 600;
15370
+ color: var(--zjpcy-text-color);
15371
+ }
15372
+
15373
+ .zjpcy-calendar__lunar-bazy-na {
15374
+ font-size: 11px;
15375
+ color: var(--zjpcy-text-color-light);
15376
+ }
15377
+
15378
+ .zjpcy-calendar__lunar-song,
15379
+ .zjpcy-calendar__lunar-desc {
15380
+ margin-top: 12px;
15381
+ padding: 12px 16px;
15382
+ background: var(--zjpcy-bg-color-light);
15383
+ border-radius: var(--zjpcy-border-radius-md);
15384
+ font-size: 13px;
15385
+ color: var(--zjpcy-text-color);
15386
+ line-height: 1.6;
15387
+ font-style: italic;
15388
+ }
15389
+
15390
+ .zjpcy-calendar__lunar-section--yiji {
15391
+ display: grid;
15392
+ grid-template-columns: 1fr 1fr;
15393
+ gap: 20px;
15394
+ }
15395
+
15396
+ .zjpcy-calendar__lunar-yi,
15397
+ .zjpcy-calendar__lunar-ji {
15398
+ padding: 16px;
15399
+ border-radius: var(--zjpcy-border-radius-md);
15400
+ }
15401
+
15402
+ .zjpcy-calendar__lunar-yi {
15403
+ background: linear-gradient(135deg, #f6ffed 0%, #f0fff4 100%);
15404
+ border: 1px solid #b7eb8f;
15405
+ }
15406
+
15407
+ .zjpcy-calendar__lunar-ji {
15408
+ background: linear-gradient(135deg, #fff2f0 0%, #fff5f5 100%);
15409
+ border: 1px solid #ffccc7;
15410
+ }
15411
+
15412
+ .zjpcy-calendar__lunar-yi .zjpcy-calendar__lunar-section-title,
15413
+ .zjpcy-calendar__lunar-ji .zjpcy-calendar__lunar-section-title {
15414
+ border-left-color: transparent;
15415
+ padding-left: 0;
15416
+ }
15417
+
15418
+ .zjpcy-calendar__lunar-yi .zjpcy-calendar__lunar-section-title {
15419
+ color: #52c41a;
15420
+ }
15421
+
15422
+ .zjpcy-calendar__lunar-ji .zjpcy-calendar__lunar-section-title {
15423
+ color: #f5222d;
15424
+ }
15425
+
15426
+ .zjpcy-calendar__lunar-yiji-content {
15427
+ display: flex;
15428
+ flex-wrap: wrap;
15429
+ gap: 8px;
15430
+ }
15431
+
15432
+ .zjpcy-calendar__lunar-yiji-item {
15433
+ font-size: 13px;
15434
+ padding: 4px 10px;
15435
+ border-radius: var(--zjpcy-border-radius-sm);
15436
+ background: rgba(255, 255, 255, 0.6);
15437
+ color: var(--zjpcy-text-color);
15438
+ }
15439
+
15440
+ .zjpcy-calendar__lunar-yiji-empty {
15441
+ font-size: 13px;
15442
+ color: var(--zjpcy-text-color-light);
15443
+ font-style: italic;
15444
+ }
15445
+
15446
+ .zjpcy-calendar__lunar-shensha {
15447
+ display: flex;
15448
+ gap: 8px;
15449
+ margin-bottom: 8px;
15450
+ }
15451
+
15452
+ .zjpcy-calendar__lunar-shensha:last-child {
15453
+ margin-bottom: 0;
15454
+ }
15455
+
15456
+ .zjpcy-calendar__lunar-shensha-label {
15457
+ font-size: 13px;
15458
+ color: var(--zjpcy-text-color-light);
15459
+ min-width: 48px;
15460
+ }
15461
+
15462
+ .zjpcy-calendar__lunar-shensha-value {
15463
+ font-size: 13px;
15464
+ font-weight: 500;
15465
+ }
15466
+
15467
+ .zjpcy-calendar__lunar-shensha-value--good {
15468
+ color: #52c41a;
15469
+ }
15470
+
15471
+ .zjpcy-calendar__lunar-shensha-value--bad {
15472
+ color: #f5222d;
15473
+ }
15474
+
15475
+ .zjpcy-calendar__lunar-text-content {
15476
+ font-size: 13px;
15477
+ color: var(--zjpcy-text-color);
15478
+ line-height: 1.8;
15479
+ }
15480
+
15481
+ .zjpcy-calendar__lunar-text-content p {
15482
+ margin: 0;
15483
+ }
15484
+
15485
+ .zjpcy-calendar__lunar-footer {
15486
+ display: flex;
15487
+ justify-content: flex-end;
15488
+ padding: 16px 24px;
15489
+ border-top: 1px solid var(--zjpcy-border-color-extra-light);
15490
+ background: var(--zjpcy-bg-color-light);
15491
+ }
15492
+
15493
+ .zjpcy-calendar__lunar-btn {
15494
+ padding: 8px 20px;
15495
+ background: linear-gradient(135deg, var(--zjpcy-button-primary-bg) 0%, var(--zjpcy-primary-hover-color) 100%);
15496
+ color: var(--zjpcy-button-text-white);
15497
+ border: none;
15498
+ border-radius: var(--zjpcy-border-radius-md);
15499
+ font-size: 14px;
15500
+ font-weight: 500;
15501
+ cursor: pointer;
15502
+ transition: all var(--zjpcy-transition-duration);
15503
+ }
15504
+
15505
+ .zjpcy-calendar__lunar-btn:hover {
15506
+ transform: translateY(-1px);
15507
+ box-shadow: var(--zjpcy-shadow-sm);
15508
+ }
15509
+
15510
+ .zjpcy-calendar__lunar-btn:active {
15511
+ transform: translateY(0);
15512
+ }
15513
+
15514
+ /* 农历详情弹窗响应式 */
15515
+ @media (max-width: 768px) {
15516
+ .zjpcy-calendar__lunar-overlay {
15517
+ padding: 10px;
15518
+ }
15519
+
15520
+ .zjpcy-calendar__lunar-panel {
15521
+ max-height: 90vh;
15522
+ }
15523
+
15524
+ .zjpcy-calendar__lunar-grid--4 {
15525
+ grid-template-columns: repeat(2, 1fr);
15526
+ }
15527
+
15528
+ .zjpcy-calendar__lunar-section--yiji {
15529
+ grid-template-columns: 1fr;
15530
+ }
15531
+
15532
+ .zjpcy-calendar__lunar-bazi {
15533
+ padding: 12px;
15534
+ }
15535
+
15536
+ .zjpcy-calendar__lunar-bazi-value {
15537
+ font-size: 14px;
15538
+ }
15539
+ }
15540
+
15541
+ /* 双击提示样式 */
15542
+ .zjpcy-calendar__date-cell--show-lunar {
15543
+ cursor: pointer;
15544
+ }
15545
+
15546
+ .zjpcy-calendar__date-cell--show-lunar:hover::after {
15547
+
15548
+ }
15549
+
15550
+ .zjpcy-calendar__date-cell--show-lunar:hover::after {
15551
+ opacity: 1;
15552
+ }