.app-container{width:100vw;height:100vh;overflow:hidden;min-width:0;-moz-box-sizing:border-box;box-sizing:border-box}@media (min-width:1024px){.app-container:not(.is-utools){display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-moz-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-moz-box-pack:center;-ms-flex-pack:center;justify-content:center;padding:24px;-moz-box-sizing:border-box;box-sizing:border-box}.app-container:not(.is-utools)>*{max-width:1200px;max-height:800px;width:100%;height:100%;border-radius:16px;box-shadow:0 25px 50px -12px #00000040;overflow:hidden}}@media (min-width:768px) and (max-width:1023px){.app-container:not(.is-utools){display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-moz-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-moz-box-pack:center;-ms-flex-pack:center;justify-content:center;padding:16px;-moz-box-sizing:border-box;box-sizing:border-box}.app-container:not(.is-utools)>*{max-width:95%;max-height:95%;border-radius:12px;box-shadow:0 20px 40px -10px #0003;overflow:hidden}}.calendar-container{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-moz-box-orient:vertical;-moz-box-direction:normal;-ms-flex-direction:column;flex-direction:column;width:100%;height:100%;background-color:var(--bg-color);color:var(--text-color);font-family:PingFang SC,Microsoft YaHei,sans-serif;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;--rest-color:#ef4444;--work-color:#6b7280;min-width:0;-moz-box-sizing:border-box;box-sizing:border-box}.calendar-header{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-moz-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-moz-box-align:center;-ms-flex-align:center;align-items:center;padding:12px 20px;background-color:var(--header-bg);border-bottom:1px solid var(--border-color);box-shadow:0 2px 4px #00000005}.year-month{font-size:1.25rem;font-weight:600;color:var(--primary-color);cursor:pointer;padding:4px 8px;border-radius:6px;-webkit-transition:all .2s;transition:all .2s;margin-right:4px}.year-month:hover{background-color:var(--hover-bg)}.year-month.active{background-color:var(--primary-color);color:#fff}.day-diff{font-size:.85rem;color:var(--accent-color);margin-left:8px;padding:2px 8px;background-color:var(--hover-bg);border-radius:4px}.current-info{position:relative;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-moz-box-align:center;-ms-flex-align:center;align-items:center}.picker-dropdown{position:absolute;top:calc(100% + 8px);left:50%;-webkit-transform:translate(-50%);-ms-transform:translate(-50%);transform:translate(-50%);background:var(--panel-bg);border-radius:8px;box-shadow:0 4px 12px #00000026;z-index:200;min-width:120px;border:1px solid var(--border-color)}.year-picker{display:-ms-grid;display:grid;-ms-grid-columns:(1fr)[3];grid-template-columns:repeat(3,1fr);gap:4px;padding:8px;overflow:hidden}.month-picker{display:-ms-grid;display:grid;-ms-grid-columns:(1fr)[3];grid-template-columns:repeat(3,1fr);gap:4px;padding:8px}.picker-item{padding:8px 12px;text-align:center;cursor:pointer;border-radius:6px;-webkit-transition:all .2s;transition:all .2s;font-size:.9rem;color:var(--text-color)}.picker-item:hover{background-color:var(--hover-bg)}.picker-item.active{background-color:var(--primary-color);color:#fff;font-weight:600}.actions{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-moz-box-align:center;-ms-flex-align:center;align-items:center;gap:12px}.icon-btn,.text-btn{background:0 0;border:1px solid var(--border-color);border-radius:6px;padding:4px 8px;cursor:pointer;color:var(--primary-color);-webkit-transition:all .2s;transition:all .2s;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-moz-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-moz-box-pack:center;-ms-flex-pack:center;justify-content:center}.icon-btn.active,.icon-btn:hover,.text-btn:hover{background-color:var(--hover-bg);border-color:var(--primary-color)}.theme-picker{position:relative;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-moz-box-align:center;-ms-flex-align:center;align-items:center}.theme-options{position:absolute;top:calc(100% + 12px);right:0;background:var(--panel-bg);padding:8px;border-radius:12px;box-shadow:0 4px 12px #00000026;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-moz-box-orient:vertical;-moz-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:4px;z-index:100;border:1px solid var(--border-color);min-width:140px}.color-mode-switch{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:flex;gap:4px;padding:2px;background:var(--hover-bg);border-radius:8px;margin-bottom:4px}.mode-btn{-webkit-box-flex:1;-moz-box-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-moz-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-moz-box-pack:center;-ms-flex-pack:center;justify-content:center;padding:6px;border:none;background:0 0;border-radius:6px;cursor:pointer;color:var(--secondary-text);-webkit-transition:all .2s;transition:all .2s}.mode-btn:hover{background:#ffffff1a}.mode-btn.active{background:var(--panel-bg);color:var(--primary-color);box-shadow:0 2px 4px #0000001a}.theme-picker:after{display:none}.theme-dot{width:28px;height:28px;border-radius:50%;border:2px solid transparent;cursor:pointer;-webkit-transition:all .2s;transition:all .2s;background:var(--dot-bg,#ccc);-ms-flex-negative:0;flex-shrink:0}.theme-option-item{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-moz-box-align:center;-ms-flex-align:center;align-items:center;gap:8px;padding:4px 8px;cursor:pointer;border-radius:6px;-webkit-transition:background-color .2s;transition:background-color .2s;white-space:nowrap}.theme-name{font-size:.85rem;color:var(--text-color)}.theme-dot:hover{-webkit-transform:scale(1.15);-ms-transform:scale(1.15);transform:scale(1.15)}.theme-dot.active{border:2px solid #fff;box-shadow:0 0 0 2px var(--saved-primary-color)}.settings-wrapper{position:relative}.settings-panel{position:absolute;top:calc(100% + 12px);right:0;width:200px;background:var(--panel-bg);border-radius:12px;padding:16px;z-index:300;border:1px solid var(--border-color);display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-moz-box-orient:vertical;-moz-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:12px}.settings-section{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-moz-box-orient:vertical;-moz-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:8px}.section-title{font-size:.75rem;font-weight:600;color:#9ca3af;text-transform:uppercase;letter-spacing:.05em;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-moz-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-moz-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.version-badge{font-size:.65rem;font-weight:500;padding:1px 6px;background:var(--bg-color);border:1px solid var(--accent-color);border-radius:4px;color:var(--accent-color);letter-spacing:0}.settings-footer{margin-top:4px;padding-top:12px;border-top:1px dashed var(--bg-color);text-align:center}.slogan{font-size:.75rem;color:var(--accent-color);font-style:italic;opacity:.8;position:relative;display:inline-block}.slogan:after,.slogan:before{content:'"';font-family:serif;opacity:.5;font-size:1.2rem;line-height:1;vertical-align:middle;color:var(--primary-color)}.slogan:before{margin-right:2px}.slogan:after{margin-left:2px}.setting-options{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:flex;background:var(--hover-bg);padding:3px;border-radius:8px}.option-btn{-webkit-box-flex:1;-moz-box-flex:1;-ms-flex:1;flex:1;border:none;background:0 0;padding:6px;font-size:.85rem;cursor:pointer;border-radius:6px;color:var(--secondary-text);-webkit-transition:all .2s;transition:all .2s}.option-btn.active{background:var(--panel-bg);color:var(--primary-color);box-shadow:0 1px 3px #0000001a}.settings-separator{height:1px;background:var(--border-color);margin:4px 0}.about-info{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-moz-box-orient:vertical;-moz-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:8px}.about-item{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-moz-box-align:center;-ms-flex-align:center;align-items:center;gap:8px;font-size:.85rem;color:var(--text-color);opacity:.8}.about-icon{color:var(--accent-color);opacity:.8}.about-item.link-item{cursor:pointer;-webkit-transition:opacity .2s;transition:opacity .2s}.about-item.link-item:hover{opacity:.8}.about-item.link-item:hover .link-text{color:var(--primary-color);text-decoration:underline}.link-text{-webkit-transition:color .2s;transition:color .2s}.icon-btn.active{background-color:var(--hover-bg);border-color:var(--primary-color);color:var(--primary-color)}.shadow-lg{box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d}.main-content{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-moz-box-flex:1;-ms-flex:1;flex:1;overflow:hidden;min-width:0;-moz-box-sizing:border-box;box-sizing:border-box}.calendar-grid-wrapper{-webkit-box-flex:1;-moz-box-flex:1;-ms-flex:1;flex:1;padding:16px;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-moz-box-orient:vertical;-moz-box-direction:normal;-ms-flex-direction:column;flex-direction:column;min-width:0;-moz-box-sizing:border-box;box-sizing:border-box;overflow:hidden}.week-header{display:-ms-grid;display:grid;-ms-grid-columns:(1fr)[7];grid-template-columns:repeat(7,1fr);text-align:center;margin-bottom:8px;font-weight:600;color:var(--primary-color)}.grid{display:-ms-grid;display:grid;-ms-grid-columns:(1fr)[7];grid-template-columns:repeat(7,1fr);-ms-grid-rows:(1fr)[6];grid-template-rows:repeat(6,1fr);-webkit-box-flex:1;-moz-box-flex:1;-ms-flex:1;flex:1;gap:4px;min-width:0;-moz-box-sizing:border-box;box-sizing:border-box}.day-cell{background-color:var(--cell-bg);border-radius:8px;padding:8px;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-moz-box-orient:vertical;-moz-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-moz-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-moz-box-pack:center;-ms-flex-pack:center;justify-content:center;cursor:pointer;position:relative;-webkit-transition:all .2s;transition:all .2s;border:1px solid transparent;min-width:0;-moz-box-sizing:border-box;box-sizing:border-box;overflow:hidden}.day-cell:hover{background-color:var(--hover-bg);-webkit-transform:translateY(-2px);-ms-transform:translateY(-2px);transform:translateY(-2px);box-shadow:0 4px 8px #0000000d}.day-cell.selected{border-color:var(--primary-color);background-color:var(--hover-bg)}.day-cell.today{background-color:var(--primary-color);box-shadow:0 4px 12px var(--primary-color);z-index:1}.day-cell.today .lunar-day,.day-cell.today .solar-day{color:#fff!important}.day-cell.other-month{opacity:.3}.solar-day{font-size:1.1rem;font-weight:500;margin-bottom:2px}.day-cell.weekend .solar-day{color:var(--rest-color)}.lunar-day{font-size:.75rem;color:var(--secondary-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;display:block;text-align:center}.lunar-day.festival{color:var(--accent-color);font-weight:500}.holiday-tag{position:absolute;top:4px;right:4px;font-size:.65rem;padding:1px 3px;border-radius:3px;line-height:1}.holiday-tag.rest{background-color:var(--rest-color);color:#fff}.holiday-tag.work{background-color:var(--work-color);color:#fff}.almanac-panel{width:280px;background-color:var(--panel-bg);border-left:none;box-shadow:-1px 0 0 var(--almanac-soft-line);padding:16px;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-moz-box-orient:vertical;-moz-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:14px;overflow:hidden;--almanac-shadow:0 2px 6px var(--almanac-shadow-color)}.almanac-header{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-moz-box-align:center;-ms-flex-align:center;align-items:center;gap:12px;padding-bottom:12px;border-bottom:1px solid var(--almanac-line);position:relative}.big-day{font-size:3rem;font-weight:700;line-height:1;color:var(--almanac-gold);text-shadow:0 2px 12px var(--almanac-text-shadow-color)}.detail-info{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-moz-box-orient:vertical;-moz-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:2px}.solar-full{font-weight:600;font-size:.95rem;color:var(--text-color)}.lunar-full{font-size:.88rem;color:var(--secondary-text)}.almanac-body{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-moz-box-orient:vertical;-moz-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:12px}.almanac-board{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-moz-box-orient:vertical;-moz-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:0;border-radius:12px;overflow:hidden;background:var(--almanac-board-bg);box-shadow:none}.yi-ji{display:-ms-grid;display:grid;-ms-grid-columns:1fr 1fr;grid-template-columns:1fr 1fr;gap:20px;margin:0;padding-bottom:8px;border-bottom:none}.yi-ji .item{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-moz-box-orient:vertical;-moz-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:4px;padding:0;min-height:70px;background:0 0}.yi-ji .item+.item{border-left:none}.yi-ji .label{width:20px;height:20px;border-radius:999px;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-moz-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-moz-box-pack:center;-ms-flex-pack:center;justify-content:center;color:var(--almanac-gold);-ms-flex-negative:0;flex-shrink:0;font-weight:600;border:1px solid currentColor;background:0 0;padding:0;font-size:.72rem;line-height:1;margin-bottom:2px}.yi .label{color:var(--almanac-gold)}.ji .label{color:var(--secondary-text)}.yi-ji .content{font-size:.78rem;line-height:1.4;color:var(--text-color);letter-spacing:.01em;-webkit-writing-mode:horizontal-tb;-ms-writing-mode:lr-tb;writing-mode:horizontal-tb;display:block;max-height:none;overflow:visible;-ms-flex-item-align:stretch;-ms-grid-row-align:stretch;align-self:stretch}.yi .content{color:var(--almanac-gold)}.ji .content{color:var(--text-color)}.other-details{display:-ms-grid;display:grid;-ms-grid-columns:1fr 1fr;grid-template-columns:1fr 1fr;gap:4px 8px;font-size:.85rem;margin:0}.detail-card{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-moz-box-orient:vertical;-moz-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:3px;-webkit-box-pack:center;-moz-box-pack:center;-ms-flex-pack:center;justify-content:center;min-height:auto;padding:6px 9px 7px;background:0 0;border:none}.detail-card.is-compact{min-height:56px}.detail-card.is-highlighted{background:0 0;box-shadow:inset 1px 0 0 var(--almanac-gold-soft)}.detail-card-full{grid-column:1/-1}.detail-card-ganzhi{min-height:50px;background:var(--almanac-ganzhi-bg)}.detail-card:nth-child(odd):not(.detail-card-full){background:var(--almanac-ganzhi-bg);border-radius:8px}.detail-card-label{font-size:.72rem;line-height:1.2;color:var(--almanac-gold-soft);letter-spacing:.04em}.detail-card-value{margin:0;color:var(--secondary-text);font-weight:500;font-size:.84rem;line-height:1.34;word-break:break-word}.shichen-section{padding-top:10px;border-top:none;border-radius:0;overflow:visible;background:0 0;margin-top:6px}.shichen-compact{display:-ms-grid;display:grid;-ms-grid-columns:(1fr)[6];grid-template-columns:repeat(6,1fr);gap:2px;padding:0;background:0 0}.shichen-tag{display:block;font-size:.74rem;text-align:center;padding:6px 0 7px;border-radius:0;line-height:1.28;cursor:default;-webkit-transition:background-color .15s ease,color .15s ease;transition:background-color .15s ease,color .15s ease;border:none;background:var(--panel-bg)}.shichen-tag.is-ji{color:var(--almanac-gold);background-color:var(--almanac-luck-ji-bg);font-weight:600}.shichen-tag.is-xiong{color:var(--secondary-text);background-color:var(--almanac-board-bg)}.shichen-tag.is-current{font-weight:700;background-color:var(--almanac-board-bg);outline:1px solid var(--almanac-gold);outline-offset:-1px}.shichen-tag.is-active{font-weight:700}.shichen-tag.is-active.is-ji{background-color:var(--almanac-board-bg)}.shichen-tag.is-active.is-xiong{background-color:var(--panel-bg)}.shichen-detail{margin-top:0;padding:7px 9px;background:var(--almanac-detail-bg);border-top:none;border-radius:0;font-size:.8rem;line-height:1.4;color:var(--text-color,#374151)}.shichen-detail-header{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-moz-box-align:center;-ms-flex-align:center;align-items:center;gap:6px;margin-bottom:5px;padding-bottom:4px;border-bottom:1px solid var(--almanac-soft-line)}.shichen-detail-name{font-weight:600}.shichen-detail-time{font-size:.72rem;color:var(--secondary-text,#9ca3af)}.shichen-detail-luck{font-size:.7rem;padding:0 5px;border-radius:3px;margin-left:auto}.shichen-detail-luck.is-ji{color:var(--almanac-gold);background:var(--almanac-luck-ji-bg)}.shichen-detail-luck.is-xiong{color:var(--text-color);background:var(--almanac-luck-xiong-bg)}.shichen-detail-body{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:flex;gap:12px;margin-bottom:2px}.shichen-detail-item{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:flex;gap:4px}.shichen-detail-label{color:var(--secondary-text,#9ca3af);-ms-flex-negative:0;flex-shrink:0}.shichen-detail-row{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:flex;gap:4px;margin-top:2px}.shichen-detail-row.is-yi{color:var(--almanac-gold)}.shichen-detail-row.is-ji{color:var(--text-color)}.shichen-detail-fade-enter-active,.shichen-detail-fade-leave-active{-webkit-transition:opacity .15s ease;transition:opacity .15s ease}.shichen-detail-fade-enter-from,.shichen-detail-fade-leave-to{opacity:0}.festival-header{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.festival-count{font-size:.7rem;padding:1px 6px;background:var(--hover-bg);border-radius:10px;color:var(--accent-color);margin-left:auto}.expand-icon{font-size:.6rem;color:var(--secondary-text);margin-left:6px}.festival-tags{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:6px;margin-top:8px}.festival-tag{padding:4px 10px;font-size:.75rem;border-radius:12px;cursor:pointer;-webkit-transition:all .2s;transition:all .2s;background:var(--hover-bg);color:var(--secondary-text);border:1px solid transparent}.festival-tag:hover{border-color:var(--primary-color)}.festival-tag.active{background:var(--primary-color);color:#fff}.festival-section{padding:12px 0;border-bottom:none}.festival-list{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:8px}.festival-item{padding:4px 12px;font-size:.85rem;border-radius:14px;cursor:pointer;-webkit-transition:all .2s;transition:all .2s;border:1px solid var(--primary-color);background:color-mix(in srgb,var(--primary-color) 15%,transparent);color:var(--accent-color)}.festival-item:hover{-webkit-transform:scale(1.05);-ms-transform:scale(1.05);transform:scale(1.05);box-shadow:0 2px 8px #0000001a;background:color-mix(in srgb,var(--primary-color) 25%,transparent)}.festival-list-wrapper{position:relative}.festival-list-panel{position:absolute;top:calc(100% + 12px);right:0;width:230px;max-height:400px;background:var(--panel-bg);border-radius:12px;z-index:300;border:1px solid var(--border-color);display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-moz-box-orient:vertical;-moz-box-direction:normal;-ms-flex-direction:column;flex-direction:column;overflow:hidden}.festival-list-title{padding:12px 16px;font-size:.95rem;font-weight:600;color:var(--text-color);border-bottom:1px solid var(--border-color);background:var(--panel-bg)}.festival-list-content{-webkit-box-flex:1;-moz-box-flex:1;-ms-flex:1;flex:1;overflow-y:auto;padding:8px;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-moz-box-orient:vertical;-moz-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:12px}.festival-month-group{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-moz-box-orient:vertical;-moz-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:4px}.festival-month-header{padding:0 4px;font-size:.7rem;font-weight:600;color:var(--secondary-text)}.festival-month-card{background:var(--cell-bg);border-radius:8px;border:1px solid var(--border-color)}.festival-list-item{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-moz-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-moz-box-align:center;-ms-flex-align:center;align-items:center;padding:8px 10px;cursor:pointer;-webkit-transition:background-color .2s;transition:background-color .2s;border-top:1px solid var(--border-color)}.festival-list-item:first-child{border-top:none}.festival-list-item:hover{background:var(--hover-bg)}.festival-item-left{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-moz-box-orient:vertical;-moz-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:2px}.festival-item-row{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-moz-box-align:center;-ms-flex-align:center;align-items:center;gap:8px}.festival-item-name{font-size:.9rem;font-weight:500;color:var(--text-color)}.festival-item-date{font-size:.75rem;color:var(--secondary-text)}.festival-rest-badge{font-size:.6rem;padding:1px 5px;border-radius:3px;background:#3b82f6;color:#fff}.festival-item-countdown{font-size:1rem;font-weight:600;color:var(--accent-color);min-width:45px;text-align:right;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-box-align:baseline;-moz-box-align:baseline;-ms-flex-align:baseline;align-items:baseline;-webkit-box-pack:end;-moz-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.countdown-num{font-size:1rem;font-weight:600}.countdown-unit{font-size:.7rem;font-weight:400;margin-left:1px;opacity:.8}.festival-item-type{font-size:.65rem;padding:1px 6px;border-radius:4px;background:color-mix(in srgb,var(--primary-color) 20%,transparent);color:var(--accent-color)}.festival-card{position:fixed;-webkit-transform:translate(-50%);-ms-transform:translate(-50%);transform:translate(-50%);background:var(--panel-bg,#fff);border-radius:12px;padding:16px;box-shadow:0 8px 24px #00000026;z-index:1000;min-width:180px;max-width:240px;border:1px solid var(--border-color,rgba(0,0,0,.06));-webkit-animation:festivalCardIn .2s ease-out;animation:festivalCardIn .2s ease-out}@-webkit-keyframes festivalCardIn{0%{opacity:0;-webkit-transform:translate(-50%) translateY(-8px);transform:translate(-50%) translateY(-8px)}to{opacity:1;-webkit-transform:translate(-50%) translateY(0);transform:translate(-50%) translateY(0)}}@keyframes festivalCardIn{0%{opacity:0;-webkit-transform:translate(-50%) translateY(-8px);transform:translate(-50%) translateY(-8px)}to{opacity:1;-webkit-transform:translate(-50%) translateY(0);transform:translate(-50%) translateY(0)}}.festival-card:before{content:"";position:absolute;top:-6px;left:50%;-webkit-transform:translate(-50%);-ms-transform:translate(-50%);transform:translate(-50%);border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid var(--panel-bg,#fff)}.festival-card.show-above{-webkit-transform:translate(-50%) translateY(-100%);-ms-transform:translate(-50%) translateY(-100%);transform:translate(-50%) translateY(-100%)}.festival-card.show-above:before{top:auto;bottom:-6px;border-bottom:none;border-top:6px solid var(--panel-bg,#fff)}.festival-card-header{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-moz-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-moz-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;gap:8px;margin-bottom:8px}.festival-card-name{font-size:1.1rem;font-weight:600;color:var(--text-color,#1f2937)}.festival-card-type{font-size:.65rem;padding:2px 6px;border-radius:8px;white-space:nowrap;background:color-mix(in srgb,var(--primary-color) 20%,transparent);color:var(--accent-color)}.festival-card-date{font-size:.85rem;color:var(--secondary-text,#6b7280);margin-bottom:4px}.festival-card-desc{font-size:.8rem;color:var(--secondary-text,#6b7280);line-height:1.5;margin:8px 0;padding:8px;background:var(--hover-bg,rgba(0,0,0,.03));border-radius:6px}.festival-card-countdown{font-size:.9rem;font-weight:500;color:var(--accent-color,#b45309);margin-bottom:12px;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-box-align:baseline;-moz-box-align:baseline;-ms-flex-align:baseline;align-items:baseline}.festival-card-countdown .countdown-num{font-size:1.1rem;font-weight:600}.festival-card-countdown .countdown-unit{font-size:.75rem;font-weight:400;margin-left:2px;opacity:.8}.festival-card-btn{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-moz-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-moz-box-pack:center;-ms-flex-pack:center;justify-content:center;gap:6px;width:100%;padding:8px 12px;background:var(--primary-color,#a3d5e0);color:#fff;border:none;border-radius:8px;font-size:.85rem;cursor:pointer;-webkit-transition:all .2s;transition:all .2s}.festival-card-btn:hover{opacity:.9;-webkit-transform:scale(1.02);-ms-transform:scale(1.02);transform:scale(1.02)}.dark-mode .festival-card{background:#1e1e1e;border-color:#ffffff14}.dark-mode .festival-card:before{border-bottom-color:#1e1e1e}.dark-mode .festival-card-name{color:#e5e7eb}.dark-mode .festival-card-date{color:#9ca3af}.dark-mode .festival-card-countdown{color:var(--accent-color,#e9bb4e)}.is-week-view .almanac-panel{display:none!important}.is-week-view .calendar-header{padding:8px 12px}.is-week-view .header-left .actions,.is-week-view .header-right{display:none!important}.is-week-view .day-cell{min-height:50px}.is-week-view .main-content{-webkit-box-orient:vertical;-webkit-box-direction:normal;-moz-box-orient:vertical;-moz-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.is-week-view .grid{-ms-grid-rows:1fr;grid-template-rows:1fr}.hide-header .calendar-header{display:none!important}.hide-header .main-content{border-top-left-radius:12px;border-top-right-radius:12px}.settings-separator{height:1px;background-color:var(--border-color);margin:10px 0}.theme-color-switch{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-moz-box-orient:vertical;-moz-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:8px}.theme-option-item{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-moz-box-align:center;-ms-flex-align:center;align-items:center;padding:6px 8px;border-radius:6px;cursor:pointer;-webkit-transition:background-color .2s;transition:background-color .2s}.theme-option-item:hover{background-color:var(--hover-bg)}.theme-dot{width:16px;height:16px;border-radius:50%;margin-right:12px;border:2px solid transparent;-webkit-transition:all .2s;transition:all .2s}.theme-dot.active{border-color:var(--text-color);-webkit-transform:scale(1.2);-ms-transform:scale(1.2);transform:scale(1.2)}.theme-name{font-size:14px;color:var(--text-color)}