@import "https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@400;600;700&family=Noto+Sans+SC:wght@300;400;500&display=swap";:root{--color-bg:#f8f4e9;--color-text:#2c2c2c;--color-text-secondary:#7a7365;--color-accent:#c93838;--color-accent-light:#c938381f;--color-border:#d9d2c4;--color-card-bg:#fffdf8d9;--color-hover:#f3eed9;--color-rest-bg:#c9383814;--color-ink-grain:#2d281e08;--font-serif:"Noto Serif SC", serif;--font-sans:"Noto Sans SC", sans-serif;--spacing-xs:.5rem;--spacing-sm:1rem;--spacing-md:1.5rem;--spacing-lg:2rem;--spacing-xl:3rem;--radius-sm:6px;--radius-md:12px;--radius-lg:16px;--shadow-light:0 3px 14px #3c2d1e1f;--shadow-medium:0 6px 24px #3c2d1e2e;--transition:all .3s cubic-bezier(.4, 0, .2, 1)}*{box-sizing:border-box;margin:0;padding:0}body:before{content:"";opacity:.3;pointer-events:none;z-index:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)' opacity='0.4' fill='%232d281e'/%3E%3C/svg%3E");width:100%;height:100%;position:fixed;top:0;left:0}@keyframes fadeInUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.container>*{z-index:1;animation:.8s cubic-bezier(.4,0,.2,1) both fadeInUp;position:relative}.header{animation-delay:0s}.current-week-info{animation-delay:.15s}.calendar-container{animation-delay:.3s}.settings-panel{animation-delay:.45s}.footer{animation-delay:.6s}body{font-family:var(--font-sans);color:var(--color-text);background-color:var(--color-bg);background-image:radial-gradient(var(--color-ink-grain) 1px, transparent 1px);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-size:24px 24px;min-height:100vh;line-height:1.5}.container{max-width:820px;padding:var(--spacing-sm) var(--spacing-sm) var(--spacing-xl);margin:0 auto}.header{text-align:center;padding:var(--spacing-xl) 0 var(--spacing-lg)}.title{font-family:var(--font-serif);color:var(--color-text);letter-spacing:.05em;font-size:2.5rem;font-weight:700}.subtitle{font-family:var(--font-sans);color:var(--color-text-secondary);letter-spacing:.02em;font-size:1rem;font-weight:300}.current-week-info{justify-content:space-between;align-items:center;gap:var(--spacing-md);background-color:var(--color-card-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--spacing-md);margin-bottom:var(--spacing-md);box-shadow:var(--shadow-light);transition:var(--transition);display:flex}.btn-today{border:1px solid var(--color-accent);border-radius:var(--radius-sm);color:var(--color-accent);font-family:var(--font-sans);cursor:pointer;transition:var(--transition);white-space:nowrap;background-color:#0000;padding:.7rem 1.2rem;font-size:.9rem;font-weight:500}.btn-today:hover{background-color:var(--color-accent);color:#fff;transform:translateY(-1px);box-shadow:0 3px 10px #c938384d}.btn-today:active{transform:translateY(0)}.current-week-info:hover{box-shadow:var(--shadow-medium);transform:translateY(-2px)}.week-badge{text-align:center}.week-type{font-family:var(--font-sans);letter-spacing:.02em;border-radius:12px;flex-direction:column;align-items:center;gap:.15rem;padding:.6rem 1.8rem;display:inline-flex;box-shadow:0 3px 12px #3c2d1e40}.week-type .days-number{font-size:1.6rem;font-weight:700;line-height:1}.week-type .days-label{opacity:.9;letter-spacing:.05em;font-size:.7rem}.week-type.big-week{background-color:var(--color-accent);color:#fffbf8}.week-type.small-week{background-color:var(--color-text-secondary);color:#fffbf8}.current-date{text-align:right}.current-date .date-text{font-size:1.125rem;font-weight:400}.current-date .lunar-text{color:var(--color-text-secondary);font-size:.875rem;font-weight:300}.settings-panel{background-color:var(--color-card-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--spacing-md);margin-top:var(--spacing-md);box-shadow:var(--shadow-light);transition:var(--transition)}.settings-panel:hover{box-shadow:var(--shadow-medium)}.settings-panel h3{font-family:var(--font-serif);margin-bottom:var(--spacing-sm);padding-bottom:var(--spacing-xs);border-bottom:1px solid var(--color-border);font-size:1.25rem;font-weight:600}.setting-item{padding:var(--spacing-xs) 0;justify-content:space-between;align-items:center;display:flex}.setting-item label:first-child{color:var(--color-text);font-size:.95rem;font-weight:400}.toggle-switch{width:52px;height:28px;display:inline-block;position:relative}.toggle-switch input{opacity:0;width:0;height:0}.slider{cursor:pointer;transition:var(--transition);background-color:#e6e0d4;border-radius:28px;position:absolute;inset:0}.slider:before{content:"";background-color:var(--color-card-bg);width:22px;height:22px;transition:var(--transition);border-radius:50%;position:absolute;bottom:3px;left:3px;box-shadow:0 2px 4px #3c2d1e40}input:checked+.slider{background-color:var(--color-accent)}input:checked+.slider:before{transform:translate(24px)}.radio-group{gap:var(--spacing-md);display:flex}.radio-label{cursor:pointer;align-items:center;gap:.5rem;font-size:.9375rem;display:flex}.radio-label input{cursor:pointer;width:18px;height:18px;accent-color:var(--color-accent)}.setting-actions{justify-content:flex-end;gap:var(--spacing-sm);margin-top:var(--spacing-md);padding-top:var(--spacing-md);border-top:1px solid var(--color-border);display:flex}.btn{border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition);font-size:.9375rem;font-family:var(--font-sans);background-color:#0000;padding:.65rem 1.5rem;font-weight:400}.btn-primary{background-color:var(--color-accent);color:#fffbf8;border-color:var(--color-accent);box-shadow:0 2px 8px #c9383859}.btn-primary:hover{background-color:#b52e2e;border-color:#b52e2e;transform:translateY(-1px);box-shadow:0 4px 14px #c9383873}.btn-primary:active{transform:translateY(0)}.btn-secondary:hover{background-color:var(--color-hover)}.settings-toggle-container{text-align:center;margin-top:var(--spacing-md)}.settings-toggle-btn{background-color:var(--color-card-bg);border:1px solid var(--color-border);color:var(--color-text);font-family:var(--font-sans);cursor:pointer;transition:var(--transition);box-shadow:var(--shadow-light);border-radius:100px;align-items:center;gap:.5rem;padding:.6rem 1.5rem;font-size:.95rem;display:inline-flex}.settings-toggle-btn:hover{background-color:var(--color-hover);box-shadow:var(--shadow-medium);transform:translateY(-1px)}.settings-toggle-btn:active{transform:translateY(0)}.toggle-icon{font-size:1.1rem;transition:transform .4s cubic-bezier(.4,0,.2,1)}.settings-toggle-btn.expanded .toggle-icon{transform:rotate(180deg)}.settings-panel{opacity:0;max-height:0;transition:all .4s cubic-bezier(.4,0,.2,1);overflow:hidden;transform:translateY(-10px)}.settings-panel.expanded{opacity:1;max-height:800px;transform:translateY(0)}.footer{text-align:center;color:var(--color-text-secondary);opacity:.75;font-size:.875rem;font-weight:300}@media (width<=600px){.container{padding:.5rem .5rem 2rem}.title{letter-spacing:.03em;font-size:2rem}.subtitle{font-size:.875rem}.current-week-info{text-align:center;flex-direction:column;gap:1rem}.current-date{text-align:center}.setting-actions{flex-direction:column}.btn{width:100%}}.calendar-container{background-color:var(--color-card-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-light);transition:var(--transition);overflow:hidden}.calendar-container:hover{box-shadow:var(--shadow-medium)}.calendar-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;display:flex}.nav-btn{border:1px solid var(--color-border);background-color:var(--color-card-bg);border-radius:var(--radius-sm);cursor:pointer;width:44px;height:44px;color:var(--color-text);transition:var(--transition);box-shadow:var(--shadow-light);justify-content:center;align-items:center;font-size:1.2rem;display:flex}.nav-btn:hover{background-color:var(--color-accent);border-color:var(--color-accent);color:#fff;transform:translateY(-1px);box-shadow:0 4px 12px #c938384d}.nav-btn:active{transform:translateY(0)}.month-title{font-family:var(--font-serif);text-align:center;letter-spacing:.03em;font-size:1.5rem;font-weight:600}.weekdays-header{background-color:#0000;grid-template-columns:repeat(7,1fr);padding:.5rem .5rem 0;display:grid}.weekday{text-align:center;color:var(--color-text-secondary);border-radius:var(--radius-sm);padding:.75rem;font-size:.95rem;font-weight:500}.weekday:first-child,.weekday:last-child{color:var(--color-accent)}.calendar-grid{background-color:#0000;grid-template-columns:repeat(7,1fr);gap:.6rem;padding:1rem;display:grid}.day-cell{border:1px solid var(--color-border);cursor:pointer;min-height:90px;transition:var(--transition);border-radius:var(--radius-sm);background-color:#fffdf8b3;flex-direction:column;padding:.7rem .5rem;display:flex;position:relative}.day-cell:hover{background-color:var(--color-hover);border-color:var(--color-accent-light);transform:scale(1.03);box-shadow:0 2px 8px #3c2d1e1a}.day-cell.other-month{opacity:.3;background-color:#fffdf866}.day-cell.today{background-color:var(--color-accent-light);border:2px solid var(--color-accent)}.day-cell.rest-day{background-color:var(--color-rest-bg);border-color:#0000}.day-solar{text-align:center;font-size:1.3rem;font-weight:400}.day-cell.today .day-solar{color:var(--color-accent);font-weight:600}.day-cell.sun .day-solar,.day-cell.sat .day-solar,.day-cell.rest-day .day-solar{color:var(--color-accent)}.rest-badge{background-color:var(--color-accent);color:#fffbf8;border-radius:100px;padding:0 .45rem;font-size:.65rem;line-height:1.3;position:absolute;top:6px;right:6px;box-shadow:0 1px 4px #c9383866}.work-badge{background-color:var(--color-text-secondary);color:#fffbf8;border-radius:100px;padding:0 .45rem;font-size:.65rem;line-height:1.3;position:absolute;top:6px;right:6px;box-shadow:0 1px 4px #3c2d1e4d}.day-lunar{color:var(--color-text-secondary);text-align:center;flex:1;justify-content:center;align-items:flex-end;margin-top:.25rem;font-size:.8rem;line-height:1.3;display:flex}.day-lunar.solar-term,.day-lunar.holiday{color:var(--color-accent);font-weight:500}@media (width<=600px){.calendar-container{border-radius:var(--radius-sm)}.calendar-header{padding:.75rem 1rem}.day-cell{min-height:70px;padding:.5rem .35rem}.day-solar{font-size:1.1rem}.day-lunar{font-size:.7rem}.month-title{font-size:1.25rem}.calendar-grid{gap:.4rem;padding:.65rem}.weekdays-header{padding:.4rem .5rem 0}}@media (width<=380px){.day-cell{min-height:56px;padding:.25rem .125rem}.day-lunar{display:none}}
