*, ::before, ::after{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x:;--tw-pan-y:;--tw-pinch-zoom:;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position:;--tw-gradient-via-position:;--tw-gradient-to-position:;--tw-ordinal:;--tw-slashed-zero:;--tw-numeric-figure:;--tw-numeric-spacing:;--tw-numeric-fraction:;--tw-ring-inset:;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / 0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur:;--tw-brightness:;--tw-contrast:;--tw-grayscale:;--tw-hue-rotate:;--tw-invert:;--tw-saturate:;--tw-sepia:;--tw-drop-shadow:;--tw-backdrop-blur:;--tw-backdrop-brightness:;--tw-backdrop-contrast:;--tw-backdrop-grayscale:;--tw-backdrop-hue-rotate:;--tw-backdrop-invert:;--tw-backdrop-opacity:;--tw-backdrop-saturate:;--tw-backdrop-sepia:;--tw-contain-size:;--tw-contain-layout:;--tw-contain-paint:;--tw-contain-style:;}::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x:;--tw-pan-y:;--tw-pinch-zoom:;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position:;--tw-gradient-via-position:;--tw-gradient-to-position:;--tw-ordinal:;--tw-slashed-zero:;--tw-numeric-figure:;--tw-numeric-spacing:;--tw-numeric-fraction:;--tw-ring-inset:;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / 0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur:;--tw-brightness:;--tw-contrast:;--tw-grayscale:;--tw-hue-rotate:;--tw-invert:;--tw-saturate:;--tw-sepia:;--tw-drop-shadow:;--tw-backdrop-blur:;--tw-backdrop-brightness:;--tw-backdrop-contrast:;--tw-backdrop-grayscale:;--tw-backdrop-hue-rotate:;--tw-backdrop-invert:;--tw-backdrop-opacity:;--tw-backdrop-saturate:;--tw-backdrop-sepia:;--tw-contain-size:;--tw-contain-layout:;--tw-contain-paint:;--tw-contain-style:;}*, ::before, ::after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb;}::before, ::after{--tw-content:'';}html, :host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent;}body{margin:0;line-height:inherit;}hr{height:0;color:inherit;border-top-width:1px;}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}h1, h2, h3, h4, h5, h6{font-size:inherit;font-weight:inherit;}a{color:inherit;text-decoration:inherit;}b, strong{font-weight:bolder;}code, kbd, samp, pre{font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em;}small{font-size:80%;}sub, sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline;}sub{bottom:-0.25em;}sup{top:-0.5em;}table{text-indent:0;border-color:inherit;border-collapse:collapse;}button, input, optgroup, select, textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0;}button, select{text-transform:none;}button, input:where([type='button']), input:where([type='reset']), input:where([type='submit']){-webkit-appearance:button;background-color:transparent;background-image:none;}:-moz-focusring{outline:auto;}:-moz-ui-invalid{box-shadow:none;}progress{vertical-align:baseline;}::-webkit-inner-spin-button, ::-webkit-outer-spin-button{height:auto;}[type='search']{-webkit-appearance:textfield;outline-offset:-2px;}::-webkit-search-decoration{-webkit-appearance:none;}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}summary{display:list-item;}blockquote, dl, dd, h1, h2, h3, h4, h5, h6, hr, figure, p, pre{margin:0;}fieldset{margin:0;padding:0;}legend{padding:0;}ol, ul, menu{list-style:none;margin:0;padding:0;}dialog{padding:0;}textarea{resize:vertical;}input::-moz-placeholder, textarea::-moz-placeholder{opacity:1;color:#9ca3af;}input::placeholder, textarea::placeholder{opacity:1;color:#9ca3af;}button, [role="button"]{cursor:pointer;}:disabled{cursor:default;}img, svg, video, canvas, audio, iframe, embed, object{display:block;vertical-align:middle;}img, video{max-width:100%;height:auto;}[hidden]:where(:not([hidden="until-found"])){display:none;}body{font-family:"Source Han Sans CN", sans-serif;}.container{width:100%;}@media (min-width:640px){.container{max-width:640px;}}@media (min-width:768px){.container{max-width:768px;}}@media (min-width:1024px){.container{max-width:1024px;}}@media (min-width:1280px){.container{max-width:1280px;}}@media (min-width:1536px){.container{max-width:1536px;}}.hover-lift{transition:transform 0.2s, box-shadow 0.2s;}.hover-lift:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0, 0, 0, 0.15);}.nav-item{background-color:#fff;border-radius:0.375rem;padding:0.75rem;box-shadow:0 2px 8px rgba(0, 0, 0, 0.1);color:#46484A;font-weight:500;transition:transform 0.2s, box-shadow 0.2s;}.nav-item:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0, 0, 0, 0.15);}.tool-item{background-color:#fff;border-radius:0.375rem;padding:1rem;box-shadow:0 2px 8px rgba(0, 0, 0, 0.1);display:flex;align-items:center;gap:0.75rem;transition:transform 0.2s, box-shadow 0.2s;}.tool-item:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0, 0, 0, 0.15);}.book-item{background-color:#fff;border-radius:0.375rem;overflow:hidden;box-shadow:0 2px 8px rgba(0, 0, 0, 0.1);transition:transform 0.2s, box-shadow 0.2s;}.book-item:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0, 0, 0, 0.15);}.lunar-date{font-size:0.7rem;margin-top:2px;opacity:0.8;}.solar-term{font-size:0.7rem;color:#D9376E;font-weight:500;margin-top:1px;}.weekend{background-color:#fef2f2;}.weekday{background-color:#f9fafb;}.calendar-day{border-radius:0.5rem;transition-property:all;transition-duration:200ms;}.calendar-day:hover{box-shadow:0 4px 12px rgba(0,0,0,0.15);}.today-highlight{background-color:#10B981;color:#fff;border-radius:9999px;font-weight:bold;box-shadow:0 4px 6px rgba(0,0,0,0.1), 0 1.5px 4px rgba(0,0,0,0.06);border:2px solid #fff;box-shadow:0 0 0 4px rgba(16,185,129,0.3), 0 4px 6px rgba(0,0,0,0.1), 0 1.5px 4px rgba(0,0,0,0.06);}.calendar-nav-btn{width:2.25rem;height:2.25rem;display:flex;align-items:center;justify-content:center;border-radius:0.375rem;transition-property:all;transition-duration:200ms;color:#374151;}.calendar-nav-btn:hover{background-color:#3B82F6;color:#fff;box-shadow:0 4px 12px rgba(0,0,0,0.15);}.calendar-nav-btn.today{background-color:#f3f4f6;font-weight:500;}.calendar-nav-btn.today:hover{background-color:#3B82F6;color:#fff;}.year-nav-btn{position:relative;}.year-nav-btn::after{content:'年';position:absolute;font-size:0.6rem;bottom:2px;right:2px;opacity:0.7;}.visible{visibility:visible;}.invisible{visibility:hidden;}.fixed{position:fixed;}.absolute{position:absolute;}.relative{position:relative;}.inset-0{inset:0px;}.bottom-8{bottom:2rem;}.left-0{left:0px;}.right-8{right:2rem;}.top-16{top:4rem;}.top-full{top:100%;}.z-50{z-index:50;}.mx-auto{margin-left:auto;margin-right:auto;}.my-6{margin-top:1.5rem;margin-bottom:1.5rem;}.mb-1{margin-bottom:0.25rem;}.mb-10{margin-bottom:2.5rem;}.mb-2{margin-bottom:0.5rem;}.mb-3{margin-bottom:0.75rem;}.mb-4{margin-bottom:1rem;}.mb-5{margin-bottom:1.25rem;}.mb-6{margin-bottom:1.5rem;}.mb-8{margin-bottom:2rem;}.mr-2{margin-right:0.5rem;}.mt-1\.5{margin-top:0.375rem;}.mt-16{margin-top:4rem;}.mt-4{margin-top:1rem;}.mt-6{margin-top:1.5rem;}.mt-8{margin-top:2rem;}.mt-auto{margin-top:auto;}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.inline-block{display:inline-block;}.flex{display:flex;}.inline-flex{display:inline-flex;}.grid{display:grid;}.hidden{display:none;}.aspect-\[2\/3\]{aspect-ratio:2/3;}.h-12{height:3rem;}.h-4{height:1rem;}.h-6{height:1.5rem;}.h-full{height:100%;}.w-12{width:3rem;}.w-4{width:1rem;}.w-6{width:1.5rem;}.w-full{width:100%;}.flex-grow{flex-grow:1;}.scale-95{--tw-scale-x:.95;--tw-scale-y:.95;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));}.transform{transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));}.grid-cols-1{grid-template-columns:repeat(1, minmax(0, 1fr));}.grid-cols-2{grid-template-columns:repeat(2, minmax(0, 1fr));}.grid-cols-7{grid-template-columns:repeat(7, minmax(0, 1fr));}.flex-col{flex-direction:column;}.flex-wrap{flex-wrap:wrap;}.items-start{align-items:flex-start;}.items-center{align-items:center;}.justify-center{justify-content:center;}.justify-between{justify-content:space-between;}.gap-1{gap:0.25rem;}.gap-2{gap:0.5rem;}.gap-3{gap:0.75rem;}.gap-4{gap:1rem;}.gap-6{gap:1.5rem;}.gap-x-8{-moz-column-gap:2rem;column-gap:2rem;}.gap-y-2{row-gap:0.5rem;}.space-x-2 > :not([hidden]) ~ :not([hidden]){--tw-space-x-reverse:0;margin-right:calc(0.5rem * var(--tw-space-x-reverse));margin-left:calc(0.5rem * calc(1 - var(--tw-space-x-reverse)));}.space-x-6 > :not([hidden]) ~ :not([hidden]){--tw-space-x-reverse:0;margin-right:calc(1.5rem * var(--tw-space-x-reverse));margin-left:calc(1.5rem * calc(1 - var(--tw-space-x-reverse)));}.space-y-2 > :not([hidden]) ~ :not([hidden]){--tw-space-y-reverse:0;margin-top:calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0.5rem * var(--tw-space-y-reverse));}.space-y-3 > :not([hidden]) ~ :not([hidden]){--tw-space-y-reverse:0;margin-top:calc(0.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0.75rem * var(--tw-space-y-reverse));}.overflow-hidden{overflow:hidden;}.rounded{border-radius:0.25rem;}.rounded-full{border-radius:9999px;}.rounded-lg{border-radius:0.5rem;}.rounded-xl{border-radius:0.75rem;}.border-l-4{border-left-width:4px;}.border-t{border-top-width:1px;}.border-accent{--tw-border-opacity:1;border-color:rgb(16 185 129 / var(--tw-border-opacity, 1));}.bg-blue-100{--tw-bg-opacity:1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1));}.bg-blue-600{--tw-bg-opacity:1;background-color:rgb(37 99 235 / var(--tw-bg-opacity, 1));}.bg-dark{--tw-bg-opacity:1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1));}.bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1));}.bg-gray-200{--tw-bg-opacity:1;background-color:rgb(229 231 235 / var(--tw-bg-opacity, 1));}.bg-primary{--tw-bg-opacity:1;background-color:rgb(70 72 74 / var(--tw-bg-opacity, 1));}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));}.object-cover{-o-object-fit:cover;object-fit:cover;}.p-3{padding:0.75rem;}.p-4{padding:1rem;}.p-5{padding:1.25rem;}.p-6{padding:1.5rem;}.px-4{padding-left:1rem;padding-right:1rem;}.px-5{padding-left:1.25rem;padding-right:1.25rem;}.py-2{padding-top:0.5rem;padding-bottom:0.5rem;}.py-3{padding-top:0.75rem;padding-bottom:0.75rem;}.py-4{padding-top:1rem;padding-bottom:1rem;}.py-8{padding-top:2rem;padding-bottom:2rem;}.pb-3{padding-bottom:0.75rem;}.pt-8{padding-top:2rem;}.text-center{text-align:center;}.font-sans{font-family:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";}.text-2xl{font-size:1.5rem;line-height:2rem;}.text-lg{font-size:1.125rem;line-height:1.75rem;}.text-sm{font-size:0.875rem;line-height:1.25rem;}.text-xl{font-size:1.25rem;line-height:1.75rem;}.text-xs{font-size:0.75rem;line-height:1rem;}.font-bold{font-weight:700;}.font-medium{font-weight:500;}.italic{font-style:italic;}.text-accent{--tw-text-opacity:1;color:rgb(16 185 129 / var(--tw-text-opacity, 1));}.text-blue-500{--tw-text-opacity:1;color:rgb(59 130 246 / var(--tw-text-opacity, 1));}.text-blue-600{--tw-text-opacity:1;color:rgb(37 99 235 / var(--tw-text-opacity, 1));}.text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175 / var(--tw-text-opacity, 1));}.text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128 / var(--tw-text-opacity, 1));}.text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99 / var(--tw-text-opacity, 1));}.text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81 / var(--tw-text-opacity, 1));}.text-green-500{--tw-text-opacity:1;color:rgb(34 197 94 / var(--tw-text-opacity, 1));}.text-navbg{--tw-text-opacity:1;color:rgb(59 130 246 / var(--tw-text-opacity, 1));}.text-primary{--tw-text-opacity:1;color:rgb(70 72 74 / var(--tw-text-opacity, 1));}.text-purple-500{--tw-text-opacity:1;color:rgb(168 85 247 / var(--tw-text-opacity, 1));}.text-red-500{--tw-text-opacity:1;color:rgb(239 68 68 / var(--tw-text-opacity, 1));}.text-white{--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity, 1));}.opacity-0{opacity:0;}.opacity-100{opacity:1;}.opacity-80{opacity:0.8;}.opacity-90{opacity:0.9;}.shadow-lg{--tw-shadow:0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);}.shadow-md{--tw-shadow:0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);}.shadow-sm{--tw-shadow:0 1px 2px 0 rgb(0 0 0 / 0.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms;}.transition-colors{transition-property:color, background-color, border-color, text-decoration-color, fill, stroke;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms;}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms;}.duration-200{transition-duration:200ms;}.duration-300{transition-duration:300ms;}*{scrollbar-width:none !important;-ms-overflow-style:none !important;}::-webkit-scrollbar{display:none !important;}header.bg-primary{background:rgba(255, 255, 255, 0.15) !important;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);}header.bg-primary, header.bg-primary a, header.bg-primary .text-white{color:#1f2937 !important;}header.bg-primary .text-white:hover{color:#3b82f6 !important;}#mobileMenu{background:rgba(255, 255, 255, 0.8) !important;backdrop-filter:blur(15px);-webkit-backdrop-filter:blur(15px);}#mobileMenu a{color:#1f2937 !important;}#mobileMenu a:hover{color:#3b82f6 !important;}#menuToggle .fa-bars{color:#1f2937 !important;}.hover\:scale-105:hover{--tw-scale-x:1.05;--tw-scale-y:1.05;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));}.hover\:bg-primary\/80:hover{background-color:rgb(70 72 74 / 0.8);}.hover\:text-blue-600:hover{--tw-text-opacity:1;color:rgb(37 99 235 / var(--tw-text-opacity, 1));}.hover\:text-navbg:hover{--tw-text-opacity:1;color:rgb(59 130 246 / var(--tw-text-opacity, 1));}.hover\:text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity, 1));}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px;}@media (min-width:640px){.sm\:grid-cols-2{grid-template-columns:repeat(2, minmax(0, 1fr));}.sm\:grid-cols-3{grid-template-columns:repeat(3, minmax(0, 1fr));}}@media (min-width:768px){.md\:mb-0{margin-bottom:0px;}.md\:flex{display:flex;}.md\:hidden{display:none;}.md\:grid-cols-3{grid-template-columns:repeat(3, minmax(0, 1fr));}.md\:grid-cols-5{grid-template-columns:repeat(5, minmax(0, 1fr));}.md\:grid-cols-6{grid-template-columns:repeat(6, minmax(0, 1fr));}.md\:flex-row{flex-direction:row;}.md\:items-center{align-items:center;}.md\:gap-6{gap:1.5rem;}.md\:p-6{padding:1.5rem;}.md\:text-3xl{font-size:1.875rem;line-height:2.25rem;}}@media (min-width:1024px){.lg\:grid-cols-3{grid-template-columns:repeat(3, minmax(0, 1fr));}.lg\:grid-cols-4{grid-template-columns:repeat(4, minmax(0, 1fr));}.lg\:grid-cols-6{grid-template-columns:repeat(6, minmax(0, 1fr));}.lg\:grid-cols-7{grid-template-columns:repeat(7, minmax(0, 1fr));}}@media (min-width:1280px){.xl\:grid-cols-6{grid-template-columns:repeat(6, minmax(0, 1fr));}}