#root{width:100%}:root{--swiper-theme-color: #007aff}:host{position:relative;display:block;margin-left:auto;margin-right:auto;z-index:1}.swiper{margin-left:auto;margin-right:auto;position:relative;overflow:hidden;list-style:none;padding:0;z-index:1;display:block}.swiper-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:flex;transition-property:transform;transition-timing-function:var(--swiper-wrapper-transition-timing-function, initial);box-sizing:content-box}.swiper-android .swiper-slide,.swiper-ios .swiper-slide,.swiper-wrapper{transform:translateZ(0)}.swiper-horizontal{touch-action:pan-y}.swiper-vertical{touch-action:pan-x}.swiper-slide{flex-shrink:0;width:100%;height:100%;position:relative;transition-property:transform;display:block}.swiper-slide-invisible-blank{visibility:hidden}.swiper-autoheight,.swiper-autoheight .swiper-slide{height:auto}.swiper-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-backface-hidden .swiper-slide{transform:translateZ(0);backface-visibility:hidden}.swiper-3d.swiper-css-mode .swiper-wrapper{perspective:1200px}.swiper-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-3d{perspective:1200px}.swiper-3d .swiper-slide,.swiper-3d .swiper-cube-shadow{transform-style:preserve-3d}.swiper-css-mode>.swiper-wrapper{overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.swiper-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-css-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:start start}.swiper-css-mode.swiper-horizontal>.swiper-wrapper{scroll-snap-type:x mandatory}.swiper-css-mode.swiper-horizontal>.swiper-wrapper>.swiper-slide:first-child{margin-inline-start:var(--swiper-slides-offset-before);scroll-margin-inline-start:var(--swiper-slides-offset-before)}.swiper-css-mode.swiper-horizontal>.swiper-wrapper>.swiper-slide:last-child{margin-inline-end:var(--swiper-slides-offset-after)}.swiper-css-mode.swiper-vertical>.swiper-wrapper{scroll-snap-type:y mandatory}.swiper-css-mode.swiper-vertical>.swiper-wrapper>.swiper-slide:first-child{margin-block-start:var(--swiper-slides-offset-before);scroll-margin-block-start:var(--swiper-slides-offset-before)}.swiper-css-mode.swiper-vertical>.swiper-wrapper>.swiper-slide:last-child{margin-block-end:var(--swiper-slides-offset-after)}.swiper-css-mode.swiper-free-mode>.swiper-wrapper{scroll-snap-type:none}.swiper-css-mode.swiper-free-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:none}.swiper-css-mode.swiper-centered>.swiper-wrapper:before{content:"";flex-shrink:0;order:9999}.swiper-css-mode.swiper-centered>.swiper-wrapper>.swiper-slide{scroll-snap-align:center center;scroll-snap-stop:always}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper>.swiper-slide:first-child{margin-inline-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper:before{height:100%;min-height:1px;width:var(--swiper-centered-offset-after)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper>.swiper-slide:first-child{margin-block-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper:before{width:100%;min-width:1px;height:var(--swiper-centered-offset-after)}.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top,.swiper-3d .swiper-slide-shadow-bottom{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}.swiper-3d .swiper-slide-shadow{background:#00000026}.swiper-3d .swiper-slide-shadow-left{background-image:linear-gradient(to left,#00000080,#0000)}.swiper-3d .swiper-slide-shadow-right{background-image:linear-gradient(to right,#00000080,#0000)}.swiper-3d .swiper-slide-shadow-top{background-image:linear-gradient(to top,#00000080,#0000)}.swiper-3d .swiper-slide-shadow-bottom{background-image:linear-gradient(to bottom,#00000080,#0000)}.swiper-lazy-preloader{width:42px;height:42px;position:absolute;left:50%;top:50%;margin-left:-21px;margin-top:-21px;z-index:10;transform-origin:50%;box-sizing:border-box;border:4px solid var(--swiper-preloader-color, var(--swiper-theme-color));border-radius:50%;border-top-color:transparent}:is(.swiper:not(.swiper-watch-progress),.swiper-watch-progress .swiper-slide-visible) .swiper-lazy-preloader{animation:swiper-preloader-spin 1s infinite linear}.swiper-lazy-preloader-white{--swiper-preloader-color: #fff}.swiper-lazy-preloader-black{--swiper-preloader-color: #000}@keyframes swiper-preloader-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}*{margin:0;padding:0;box-sizing:border-box}:root{--primary-color: #1a1a2e;--accent-color: #e94560;--holiday-color: #e94560;--workday-color: #f39c12;--solar-term-color: #27ae60;--bg-color: #f8f9fa;--card-bg: #ffffff;--text-primary: #2d3436;--text-secondary: #636e72;--border-color: #e9ecef;--today-bg: #e94560;--selected-bg: #dfe6e9;--weekend-color: #e94560}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;background-color:var(--bg-color);color:var(--text-primary);min-height:100vh;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}.app{min-height:100vh;display:flex;justify-content:center;align-items:flex-start;padding:40px 20px}.calendar-container{width:100%;max-width:900px;background:var(--card-bg);border-radius:16px;box-shadow:0 4px 24px #00000014;overflow:hidden}.calendar-header{display:flex;justify-content:space-between;align-items:center;padding:24px 32px;background:var(--primary-color);color:#fff}.header-left{display:flex;align-items:center;gap:16px}.nav-btn{background:#ffffff26;border:1px solid rgba(255,255,255,.2);color:#fff;width:40px;height:40px;border-radius:12px;cursor:pointer;font-size:24px;font-weight:600;line-height:1;transition:all .25s ease;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);box-shadow:0 2px 8px #00000026;padding-bottom:4px}.nav-btn:hover{background:#ffffff40;border-color:#fff6;transform:scale(1.08);box-shadow:0 4px 12px #0003}.nav-btn:active{transform:scale(.95);box-shadow:0 1px 4px #00000026}.current-month{font-size:24px;font-weight:600;min-width:180px;text-align:center}.header-center{flex:1;text-align:center}.lunar-year{font-size:14px;opacity:.8}.header-right{display:flex;align-items:center}.today-btn{background:var(--accent-color);border:none;color:#fff;padding:8px 20px;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500;transition:opacity .2s}.today-btn:hover{opacity:.9}.calendar-body{display:flex;padding:24px;gap:24px}.calendar-grid{flex:1}.weekday-header{display:grid;grid-template-columns:repeat(7,1fr);margin-bottom:8px}.weekday{text-align:center;padding:12px 0;font-size:14px;font-weight:500;color:var(--text-secondary)}.weekday.weekend{color:var(--weekend-color)}.days-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.day-cell{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:8px;border-radius:12px;cursor:pointer;transition:all .2s;position:relative;min-height:70px;border:2px solid transparent}@media(hover:hover){.day-cell:hover{border-color:#d4a017}}.day-cell.other-month{opacity:.3}.day-cell.selected{background:#fff9e6;border-color:#d4a017}.day-cell.weekend:not(.today) .day-number{color:var(--weekend-color)}.day-cell.holiday:not(.today){background:#e9456014}.day-cell.workday:not(.today){background:#f39c1214}.day-cell.weekend:not(.today):not(.holiday):not(.workday){background:#e945600a}.day-number{font-size:18px;font-weight:500;line-height:1.2}.lunar-text{font-size:11px;color:var(--text-secondary);margin-top:2px}.lunar-text.solar-term{color:var(--solar-term-color);font-weight:500}.lunar-text.holiday-name{color:var(--holiday-color);font-weight:500}.holiday-dot,.workday-dot,.weekend-dot{position:absolute;top:4px;right:4px;font-size:10px;padding:2px 4px;border-radius:4px;font-weight:500}.holiday-dot{background:var(--holiday-color);color:#fff}.workday-dot{background:var(--workday-color);color:#fff}.weekend-dot{background:#e9456099;color:#fff}.day-detail{width:280px;padding:20px;background:var(--bg-color);border-radius:12px;flex-shrink:0}.date-card{background:linear-gradient(135deg,#f8f9fa,#e9ecef);border-radius:16px;padding:24px;text-align:center;color:var(--text-primary);margin-bottom:20px;box-shadow:0 4px 12px #00000014;border:1px solid var(--border-color)}.date-day{font-size:56px;font-weight:700;line-height:1;color:var(--accent-color)}.date-weekday{font-size:16px;font-weight:500;margin-top:8px;color:var(--text-primary)}.date-full{font-size:13px;margin-top:4px;color:var(--text-secondary)}.date-lunar{font-size:14px;margin-top:12px;padding-top:12px;border-top:1px solid var(--border-color);color:var(--text-secondary)}.detail-section{margin-bottom:16px}.detail-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0}.detail-label{font-size:13px;color:var(--text-secondary)}.detail-value{font-size:14px;font-weight:500;color:var(--text-primary)}.detail-value.solar-term-value{color:var(--solar-term-color)}.detail-value.holiday{color:var(--holiday-color)}.detail-value.workday{color:var(--workday-color)}.holiday-section{background:#fff;padding:12px;border-radius:8px;margin-top:16px}.detail-memo{font-size:12px;color:var(--text-secondary);margin-top:8px;line-height:1.6;padding-top:8px;border-top:1px solid var(--border-color)}@media(max-width:768px){.app{padding:0}.calendar-container{border-radius:0;box-shadow:none}.calendar-header{flex-direction:column;gap:12px;padding:16px}.header-left{width:100%;justify-content:center}.header-center{display:none}.calendar-body{flex-direction:column;padding:8px;gap:16px}.day-detail{width:100%;padding:16px}.calendar-grid{width:100%;overflow:hidden}.weekday-header{gap:0}.weekday{padding:8px 0;font-size:12px}.days-grid{gap:3px}.day-cell{aspect-ratio:auto;min-height:52px;padding:4px 2px;border-radius:0;border-width:1px}.day-number{font-size:18px}.lunar-text{font-size:10px}.current-month{font-size:20px;min-width:150px}.holiday-dot,.workday-dot,.weekend-dot{top:-1px;right:-1px;font-size:8px;padding:1px 3px;border-radius:0}}
