#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: #1c1c1e;--accent-color: #c45c4a;--holiday-color: #c45c4a;--workday-color: #b8860b;--solar-term-color: #5a8a6c;--bg-color: #faf9f7;--card-bg: #ffffff;--text-primary: #1c1c1e;--text-secondary: #8e8e93;--text-tertiary: #c7c7cc;--border-color: #f0efed;--today-bg: #1c1c1e;--selected-bg: #f5f5f3;--weekend-color: #c45c4a;--holiday-cell-bg: rgba(196, 92, 74, .06);--workday-cell-bg: rgba(184, 134, 11, .06);--weekend-cell-bg: rgba(196, 92, 74, .03);--today-text: #ffffff;--today-lunar-text: rgba(255, 255, 255, .7);--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--space-2xl: 48px;--space-3xl: 64px;--font-xs: 11px;--font-sm: 13px;--font-base: 15px;--font-lg: 18px;--font-xl: 24px;--font-2xl: 32px;--font-3xl: 48px;--font-display: 72px}[data-theme=dark]{--primary-color: #f5f5f3;--accent-color: #e07a6a;--holiday-color: #e07a6a;--workday-color: #d4a634;--solar-term-color: #7ab891;--bg-color: #121214;--card-bg: #1c1c1e;--text-primary: #f5f5f3;--text-secondary: #8e8e93;--text-tertiary: #48484a;--border-color: #2c2c2e;--today-bg: #f5f5f3;--selected-bg: #2c2c2e;--weekend-color: #e07a6a;--holiday-cell-bg: rgba(224, 122, 106, .1);--workday-cell-bg: rgba(212, 166, 52, .1);--weekend-cell-bg: rgba(224, 122, 106, .05);--today-text: #1c1c1e;--today-lunar-text: rgba(28, 28, 30, .7)}body{font-family:SF Pro Display,-apple-system,BlinkMacSystemFont,PingFang SC,Hiragino Sans GB,Noto Sans SC,sans-serif;background-color:var(--bg-color);color:var(--text-primary);transition:background-color .3s ease,color .3s ease;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);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.app{min-height:100vh;display:flex;justify-content:center;align-items:flex-start;padding:var(--space-3xl) var(--space-lg)}.calendar-container{width:100%;max-width:960px;background:var(--card-bg);border-radius:24px;box-shadow:0 0 0 1px #00000008,0 2px 4px #00000005,0 12px 48px #0000000f;overflow:hidden}.calendar-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-xl) var(--space-2xl);background:var(--card-bg);border-bottom:1px solid var(--border-color)}.header-left{display:flex;align-items:center;gap:var(--space-md)}.nav-btn{background:transparent;border:none;color:var(--text-secondary);width:44px;height:44px;border-radius:50%;cursor:pointer;font-size:var(--font-xl);font-weight:300;line-height:0;padding:0;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.nav-btn:hover{background:var(--selected-bg);color:var(--text-primary)}.nav-btn:active{transform:scale(.95)}.current-month{font-size:var(--font-xl);font-weight:500;min-width:180px;text-align:center;letter-spacing:-.02em}.header-center{flex:1;text-align:center}.lunar-year{font-size:var(--font-sm);color:var(--text-secondary);font-weight:400;letter-spacing:.02em}.header-right{display:flex;align-items:center;gap:var(--space-sm)}.theme-toggle{background:transparent;border:none;color:var(--text-secondary);width:40px;height:40px;border-radius:50%;cursor:pointer;font-size:var(--font-lg);transition:all .2s ease;display:flex;align-items:center;justify-content:center}.theme-toggle:hover{background:var(--selected-bg);color:var(--text-primary)}.today-btn{background:var(--primary-color);border:none;color:var(--card-bg);padding:var(--space-sm) var(--space-lg);border-radius:100px;cursor:pointer;font-size:var(--font-sm);font-weight:500;transition:all .2s ease;letter-spacing:.02em}.today-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #0003}.calendar-body{display:flex;padding:var(--space-2xl);gap:var(--space-2xl)}.calendar-grid{flex:1}.weekday-header{display:grid;grid-template-columns:repeat(7,1fr);margin-bottom:var(--space-md);padding-bottom:var(--space-md);border-bottom:1px solid var(--border-color)}.weekday{text-align:center;padding:var(--space-sm) 0;font-size:var(--font-xs);font-weight:500;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.1em}.weekday.weekend{color:var(--weekend-color);opacity:.6}.days-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--space-xs)}.day-cell{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-sm);border-radius:16px;cursor:pointer;transition:all .15s ease;position:relative;min-height:80px;background:transparent}.day-cell:focus-visible{outline:none;box-shadow:inset 0 0 0 2px var(--accent-color)}@media(hover:hover){.day-cell:hover{background:var(--selected-bg)}}.day-cell.other-month{opacity:.25}.day-cell.today{background:var(--today-bg)}.day-cell.today .day-number{color:var(--today-text)}.day-cell.today .lunar-text{color:var(--today-lunar-text)}.day-cell.selected:not(.today){background:var(--selected-bg);box-shadow:inset 0 0 0 2px var(--text-tertiary)}.day-cell.weekend:not(.today) .day-number{color:var(--weekend-color)}.day-cell.holiday:not(.today){background:var(--holiday-cell-bg)}.day-cell.workday:not(.today){background:var(--workday-cell-bg)}.day-cell.weekend:not(.today):not(.holiday):not(.workday){background:var(--weekend-cell-bg)}.day-number{font-size:var(--font-lg);font-weight:400;line-height:1.2;letter-spacing:-.02em}.lunar-text{font-size:var(--font-xs);color:var(--text-secondary);margin-top:var(--space-xs);font-weight:400}.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:var(--space-sm);right:var(--space-sm);font-size:9px;padding:2px 5px;border-radius:100px;font-weight:600;letter-spacing:.02em}.holiday-dot{background:var(--holiday-color);color:#fff}.workday-dot{background:var(--workday-color);color:#fff}.weekend-dot{background:var(--text-tertiary);color:#fff}.day-detail{width:280px;padding:var(--space-lg);background:transparent;flex-shrink:0}.date-card{background:var(--card-bg);border-radius:20px;padding:var(--space-xl);text-align:center;color:var(--text-primary);margin-bottom:var(--space-lg);box-shadow:0 0 0 1px var(--border-color),0 4px 16px #0000000a}.date-day{font-size:var(--font-display);font-weight:200;line-height:1;color:var(--text-primary);letter-spacing:-.04em}.date-weekday{font-size:var(--font-base);font-weight:400;margin-top:var(--space-sm);color:var(--text-secondary)}.date-full{font-size:var(--font-sm);margin-top:var(--space-xs);color:var(--text-tertiary)}.date-lunar{font-size:var(--font-sm);margin-top:var(--space-md);padding-top:var(--space-md);border-top:1px solid var(--border-color);color:var(--text-secondary);letter-spacing:.05em}.detail-section{margin-bottom:var(--space-md)}.detail-row{display:flex;justify-content:space-between;align-items:center;padding:var(--space-sm) 0}.detail-label{font-size:var(--font-sm);color:var(--text-tertiary);font-weight:400}.detail-value{font-size:var(--font-sm);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:var(--card-bg);padding:var(--space-md);border-radius:12px;margin-top:var(--space-md);box-shadow:0 0 0 1px var(--border-color)}.detail-memo{font-size:var(--font-xs);color:var(--text-secondary);margin-top:var(--space-sm);line-height:1.7;padding-top:var(--space-sm);border-top:1px solid var(--border-color)}@media(max-width:768px){:root{--space-2xl: 24px;--space-3xl: 32px}.app{padding:0}.calendar-container{border-radius:0;box-shadow:none}.calendar-header{flex-direction:column;gap:var(--space-md);padding:var(--space-lg);border-bottom:none}.header-left{width:100%;justify-content:center}.header-center,.header-right .today-btn{display:none}.calendar-body{flex-direction:column;padding:var(--space-md);gap:var(--space-lg)}.day-detail{width:100%;padding:var(--space-md);order:-1}.date-card{display:flex;align-items:center;gap:var(--space-lg);text-align:left;padding:var(--space-lg) var(--space-xl);margin-bottom:var(--space-md)}.date-day{font-size:var(--font-3xl);font-weight:300;flex-shrink:0}.date-info{flex:1;display:flex;flex-direction:column;gap:2px}.date-weekday{font-size:var(--font-base);font-weight:500;color:var(--text-primary);margin-top:0}.date-full{font-size:var(--font-sm);margin-top:0}.date-lunar{font-size:var(--font-sm);margin-top:var(--space-xs);padding-top:0;border-top:none;color:var(--accent-color);font-weight:500;letter-spacing:.02em}.calendar-grid{width:100%;overflow:hidden}.weekday-header{gap:0;border-bottom:none;margin-bottom:var(--space-sm)}.weekday{padding:var(--space-sm) 0;font-size:10px}.days-grid{gap:2px}.day-cell{aspect-ratio:auto;min-height:56px;padding:var(--space-xs);border-radius:8px}.day-number{font-size:var(--font-base)}.lunar-text{font-size:9px}.current-month{font-size:var(--font-lg);min-width:auto}.holiday-dot,.workday-dot,.weekend-dot{top:2px;right:2px;font-size:8px;padding:1px 4px}.nav-btn{width:36px;height:36px;font-size:var(--font-lg)}}
