:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:transparent;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}img[src*="loading.svg"],img[alt*=読み込み中],img[alt*=loading]{filter:brightness(0) invert(1) sepia(1) saturate(5) hue-rotate(200deg)!important}:root{color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:transparent;color:#e8eef7;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Hiragino Kaku Gothic ProN,Noto Sans JP,Yu Gothic,Arial,sans-serif;position:relative}.screen{height:100vh;width:100vw;display:grid;grid-template-columns:2fr 3fr;gap:18px;padding:24px;overflow:hidden;box-sizing:border-box;align-items:stretch;position:relative;z-index:1}.left,.right{display:flex;flex-direction:column;gap:8px;min-height:0;position:relative;z-index:1}.left{justify-content:flex-start}.schedulePanel{display:flex;flex-direction:column;flex-shrink:0;max-height:calc(100dvh - 120px)}.scheduleListContainer{overflow-y:auto;overflow-x:hidden;min-height:0;flex:1}.tomorrowPanel{flex-shrink:0;margin-top:auto}.scheduleListContainer::-webkit-scrollbar{width:6px}.scheduleListContainer::-webkit-scrollbar-track{background:#ffffff0d;border-radius:3px}.scheduleListContainer::-webkit-scrollbar-thumb{background:#fff3;border-radius:3px}.scheduleListContainer::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.tomorrowPreview{font-size:13px;color:#ffffffd9;display:flex;align-items:center;gap:4px;flex-wrap:wrap}.tomorrowLabel{font-weight:600;color:#ffffffe6}.tomorrowWeatherIcon{width:14px;height:14px;display:inline-block;vertical-align:middle;object-fit:contain}.tomorrowWeatherTemp{font-variant-numeric:tabular-nums;opacity:.9}.tomorrowSeparator{opacity:.5}.tomorrowEvent{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.panel{background:#14192359;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.1);border-radius:18px;padding:16px;box-shadow:0 8px 24px #00000040;position:relative;overflow:hidden}.todayPanel{padding:8px 16px}@supports not (backdrop-filter: blur(6px)){.panel{background:#14192373}}.backgroundDebugControls{position:fixed;bottom:20px;right:20px;display:flex;flex-direction:column;gap:8px;background:#141923e6;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2);border-radius:8px;padding:8px 12px;z-index:10000;box-shadow:0 4px 12px #0000004d;pointer-events:auto}.backgroundDebugGroup{display:flex;align-items:center;gap:8px}.backgroundDebugLabel{color:#e8eef7;font-size:12px;font-weight:600;min-width:40px}.backgroundDebugButton{background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:4px;color:#e8eef7;font-size:14px;font-weight:600;cursor:pointer;padding:4px 8px;transition:all .2s;min-width:32px}.backgroundDebugButton:hover{background:#fff3;border-color:#ffffff4d}.backgroundDebugInfo{font-size:12px;color:#ffffffb3;min-width:50px;text-align:center;font-variant-numeric:tabular-nums}.todayPanel{position:relative;overflow:visible;background-size:cover;background-position:center;background-repeat:no-repeat;flex-shrink:0;z-index:1;opacity:.9;display:flex;flex-direction:column}.todayPanel:before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:#0000001a;border-radius:18px}.todayPanel>*{position:relative;z-index:1}@keyframes skyFlow{0%,to{transform:translate(0) scale(1)}50%{transform:translate(1%) scale(1.01)}}@keyframes starTwinkle{0%,to{opacity:1}50%{opacity:.7}}.todayPanel.theme-cloudy{overflow:visible}@keyframes cloudDrift{0%,to{transform:translate(0) translateY(0)}33%{transform:translate(2%) translateY(-1%)}66%{transform:translate(-2%) translateY(1%)}}@keyframes rainFall{0%{background-position:0 0,4px 0,2px 0,0 0}to{background-position:0 200px,4px 150px,2px 180px,0 0}}@keyframes snowFall{0%{background-position:0 0,0 0,0 0,0 0,0 0,0 0}to{background-position:0 120px,0 90px,0 70px,0 100px,0 80px,0 0}}@keyframes thunderFlash{0%,85%,to{opacity:1;filter:brightness(1)}87%,89%{opacity:1.1;filter:brightness(1.3)}88%{opacity:1.2;filter:brightness(1.6)}}@keyframes fogDrift{0%,to{transform:translate(0) scale(1);opacity:1}50%{transform:translate(2%) scale(1.02);opacity:.95}}@media(prefers-reduced-motion:reduce){.todayPanel:before{animation:none}}.dateDisplay{font-size:54px;font-weight:600;opacity:.9;margin-bottom:0;text-align:center;display:flex;align-items:flex-end;justify-content:center}.todayPanel .dateDisplay{margin-bottom:-.2em}.timeDisplay{display:flex;align-items:flex-end;justify-content:center;margin-bottom:15px;height:auto;line-height:1}.timeWrapper{display:flex;align-items:flex-end;justify-content:center;gap:5.33px;line-height:1;padding:0;margin:0}.time{font-size:200px;font-weight:700;letter-spacing:2px;line-height:1;font-variant-numeric:tabular-nums;text-align:center;align-self:flex-end}.seconds{font-size:70px;font-weight:700;letter-spacing:2px;line-height:1;font-variant-numeric:tabular-nums;opacity:.6;padding-bottom:0;width:70px;text-align:center;align-self:flex-end}.weatherInfo{display:flex;flex-direction:column;gap:12px;padding-top:16px;padding-bottom:16px;border-top:1px solid rgba(255,255,255,.1);position:relative;z-index:1}.weatherRow{display:grid;grid-template-columns:1fr 1fr;gap:12px}.weatherItem{display:flex;flex-direction:column;gap:4px}.weatherLabel{font-size:12px;opacity:.7}.weatherValue{font-size:18px;font-weight:600}.weatherLocationInfo{font-size:16px;opacity:.9;display:flex;align-items:center;gap:12px;margin-bottom:0;font-weight:500}.weatherLocationIcon{width:20px;height:20px;display:inline-block;vertical-align:middle;object-fit:contain}.serverStatusError{display:flex;align-items:flex-start;gap:12px;padding:16px;background:#ff572226;border:1px solid rgba(255,87,34,.3);border-radius:8px;margin-bottom:12px}.serverStatusIcon{width:24px;height:24px;flex-shrink:0;color:#ff5722;stroke:#ff5722}.serverStatusMessage{flex:1;display:flex;flex-direction:column;gap:4px}.serverStatusTitle{font-weight:600;font-size:14px;color:#ff5722}.serverStatusDetail{font-size:12px;color:#fffc;line-height:1.4}.weatherError{display:flex;align-items:flex-start;gap:12px;padding:12px;background:#ff572226;border:1px solid rgba(255,87,34,.3);border-radius:8px;margin-bottom:12px}.weatherErrorIcon{width:20px;height:20px;flex-shrink:0;color:#ff5722;stroke:#ff5722}.weatherErrorMessage{flex:1;font-size:12px;color:#ffffffe6;line-height:1.4}.hourlyWeatherError{display:flex;align-items:center;gap:8px;padding:12px;background:#ff572226;border:1px solid rgba(255,87,34,.3);border-radius:8px;font-size:12px;color:#ffffffe6}.scheduleError{display:flex;align-items:flex-start;gap:12px;padding:16px;background:#ff572226;border:1px solid rgba(255,87,34,.3);border-radius:8px}.scheduleErrorIcon{width:24px;height:24px;flex-shrink:0;color:#ff5722;stroke:#ff5722}.scheduleErrorMessage{flex:1;display:flex;flex-direction:column;gap:4px}.scheduleErrorTitle{font-weight:600;font-size:14px;color:#ff5722}.scheduleErrorDetail{font-size:12px;color:#fffc;line-height:1.4}.weatherTemp{font-weight:600}.weatherLocationInfo.loading{opacity:.6;font-style:italic}.weatherLocationInfo.error{opacity:.5}.hourlyWeatherChart{display:flex;justify-content:space-between;gap:8px;position:relative;z-index:1}.hourlyWeatherItem{display:flex;flex-direction:column;align-items:center;gap:4px;flex:1;min-width:0;position:relative;z-index:1}.hourlyTime{font-size:11px;opacity:.7;font-variant-numeric:tabular-nums;position:relative;z-index:1;color:#ffffffe6}.hourlyIcon{width:20px;height:20px;display:inline-block;vertical-align:middle;object-fit:contain}.hourlyErrorIcon{width:16px;height:16px;display:inline-block;vertical-align:middle;object-fit:contain;opacity:.8}.weatherLocationIcon.moderate-rain{opacity:1}.weatherLocationIcon.heavy-rain{opacity:1;font-weight:700}.hourlyTemp{font-size:12px;font-weight:600;font-variant-numeric:tabular-nums}.hourlyWeatherLoading{font-size:12px;opacity:.6;text-align:center;padding-top:12px;border-top:1px solid rgba(255,255,255,.1)}.date{margin-top:10px;font-size:18px;opacity:.9}.sectionTitle{font-size:14px;letter-spacing:.08em;text-transform:uppercase;opacity:.7;margin-bottom:10px}.row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.card{background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:12px}.label{font-size:12px;opacity:.7;margin-bottom:6px}.value{font-size:18px;font-weight:600}.list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}.listItem{display:grid;grid-template-columns:70px 1fr;gap:10px;align-items:baseline;padding:8px 12px;border-radius:8px;transition:all .2s}.listItem.clickable{cursor:pointer;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);padding:10px 14px}.listItem.clickable:active{background:#ffffff1f;transform:scale(.98)}.listItem .t{font-variant-numeric:tabular-nums;opacity:.85}.listItem .txt{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.muted{opacity:.6}.notice{font-size:16px;opacity:.9}.modalOverlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modalContent{background:#141923fa;border:1px solid rgba(255,255,255,.1);border-radius:16px;width:90%;max-width:600px;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #00000080;overflow:hidden;position:relative}.modalHeader{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid rgba(255,255,255,.1)}.modalTitle{font-size:24px;font-weight:600;margin:0;color:#e8eef7}.modalCloseButton{background:transparent;border:none;color:#e8eef7;font-size:32px;line-height:1;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background-color .2s;opacity:.7}.modalCloseButton:hover{background:#ffffff1a;opacity:1}.modalBody{padding:24px;overflow-y:auto;flex:1;min-height:0;display:flex;flex-direction:column}.modalEventsList{margin-bottom:24px;flex-shrink:0}.modalEventItems{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.modalEventItem{display:flex;gap:12px;padding:12px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-left:4px solid #7986cb;border-radius:8px;transition:all .2s}.modalEventItem.clickable{background:#ffffff0f;border:1px solid rgba(255,255,255,.15)}.modalEventItem.clickable:active{background:#ffffff1f;transform:scale(.98)}.modalEventTime{font-size:14px;font-weight:600;color:#e8eef7;min-width:80px;opacity:.9}.modalEventDetails{flex:1}.modalEventSummary{font-size:16px;font-weight:500;color:#e8eef7;margin-bottom:4px}.modalEventLocation{font-size:13px;color:#fff9;margin-top:4px}.modalEventActions{display:flex;gap:8px;align-items:center}.modalEventEditButton,.modalEventDeleteButton{padding:6px 12px;border:none;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s}.modalEventEditButton{background:#7986cb33;color:#7986cb;border:1px solid rgba(121,134,203,.4)}.modalEventEditButton:hover{background:#7986cb4d;border-color:#7986cb99}.modalEventDeleteButton{background:#d4000033;color:#d50000;border:1px solid rgba(212,0,0,.4)}.modalEventDeleteButton:hover{background:#d400004d;border-color:#d4000099}.modalNoEvents{text-align:center;padding:40px 20px;color:#ffffff80;font-size:16px}.modalAddButton{width:100%;padding:14px;background:#7986cb33;border:1px solid rgba(121,134,203,.4);border-radius:8px;color:#7986cb;font-size:16px;font-weight:500;cursor:pointer;transition:all .2s}.modalAddButton:hover{background:#7986cb4d;border-color:#7986cb99}.modalAddForm{display:flex;flex-direction:column;padding-top:20px;border-top:1px solid rgba(255,255,255,.1);max-height:calc(80vh - 200px);min-height:0}.modalFormScrollable{display:flex;flex-direction:column;gap:16px;overflow-y:auto;flex:1;min-height:0;padding-right:8px;margin-right:-8px}.modalFormScrollable::-webkit-scrollbar{width:8px}.modalFormScrollable::-webkit-scrollbar-track{background:#ffffff0d;border-radius:4px}.modalFormScrollable::-webkit-scrollbar-thumb{background:#fff3;border-radius:4px}.modalFormScrollable::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.modalFormGroup{display:flex;flex-direction:column;gap:8px}.modalFormRow{display:grid;grid-template-columns:1fr 1fr;gap:12px}.modalLabel{font-size:14px;font-weight:500;color:#fffc;display:flex;align-items:center;gap:8px}.modalInput,.modalTextarea{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:10px 12px;color:#e8eef7;font-size:14px;font-family:inherit;transition:border-color .2s}.modalInput:focus,.modalTextarea:focus{outline:none;border-color:#7986cb99;background:#ffffff14}select.modalInput{background:#141923cc!important;color:#e8eef7!important}select.modalInput:focus{background:#141923e6!important}select.modalInput option{background:#141923f2!important;color:#e8eef7!important}.modalTextarea{resize:vertical;min-height:80px}.modalFormActions{display:flex;gap:12px;justify-content:flex-end;padding-top:16px;margin-top:16px;border-top:1px solid rgba(255,255,255,.1);flex-shrink:0}.modalButton{padding:10px 24px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;border:none}.modalButtonPrimary{background:#7986cb;color:#fff}.modalButtonPrimary:hover{background:#6a7bc0}.modalButtonSecondary{background:#ffffff1a;color:#fffc}.modalButtonSecondary:hover{background:#ffffff26}.modalButton:disabled,.modalAddButton:disabled,.modalCloseButton:disabled,.modalEventEditButton:disabled,.modalEventDeleteButton:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.modalLoadingOverlay{position:absolute;inset:0;background:#0b0f14e6;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:100;border-radius:16px}.loadingSpinner{width:48px;height:48px;border:4px solid rgba(255,255,255,.1);border-top-color:#7986cb;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loadingText{margin-top:16px;color:#fffc;font-size:16px;font-weight:500}:root{--calendar-day-top-height: 32px;--calendar-day-cell-padding: 10px;--calendar-multi-day-offset-base: 50px;--calendar-multi-day-offset-step: 22px;--calendar-single-day-offset-base: 21px;--calendar-single-day-offset-step: 21px;--calendar-multi-day-bar-height: 25px}.panel.calendarPanel{padding:20px 16px;flex:1;display:flex;flex-direction:column;gap:12px;min-height:0;overflow:hidden}.calendarPanel{position:relative}.calendarHeader{display:flex;flex-direction:column;gap:8px;padding-bottom:12px;position:relative;z-index:10}.monthTitle{position:relative;display:grid;grid-template-columns:auto 1fr auto;align-items:center;justify-items:center;padding:6px 0 2px;-webkit-user-select:none;user-select:none;gap:36px;max-width:calc(100% - 60px);margin:0 auto}.monthTitleCenter{display:flex;flex-direction:column;align-items:center;line-height:1}.monthTitleMonth{font-size:44px;font-weight:850;letter-spacing:.08em;opacity:.95}.monthTitleYear{margin-top:6px;font-size:18px;font-weight:650;letter-spacing:.14em;opacity:.55}.calendarHeaderButtons{position:absolute;top:0;right:0;display:flex;gap:8px}.calendarHeaderButtonWrapper{position:relative}.calendarSelectorButton{border-radius:8px;color:#e8eef7;font-size:18px;cursor:pointer;padding:8px 12px;transition:all .2s;opacity:.7}.calendarSelectorButton:hover{opacity:1}.calendarSelector{position:absolute;top:calc(100% + 8px);right:0;border-radius:12px;z-index:200;min-width:280px;max-width:400px;max-height:400px;overflow:hidden;display:flex;flex-direction:column}.calendarSelectorHeader{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.1);font-size:14px;font-weight:500;color:#e8eef7}.calendarSelectorCloseButton{background:transparent;border:none;color:#e8eef7;font-size:24px;line-height:1;cursor:pointer;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background-color .2s;opacity:.7}.calendarSelectorCloseButton:hover{opacity:1}.calendarSelectorList{padding:8px;overflow-y:auto;display:flex;flex-direction:column;gap:4px}.calendarSelectorItem{display:flex;align-items:center;gap:10px;padding:10px 12px;border-left:4px solid #7986cb;border-radius:8px;cursor:pointer;transition:all .2s}.calendarSelectorItem input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:#7986cb}.calendarSelectorColor{width:16px;height:16px;border-radius:4px;flex-shrink:0}.calendarSelectorName{flex:1;font-size:14px;color:#e8eef7;font-weight:500}.calendarSelectorLoading,.calendarSelectorEmpty{padding:20px;text-align:center;color:#ffffff80;font-size:14px}.settingsPanel{position:absolute;top:calc(100% + 8px);right:0;border-radius:12px;z-index:200;min-width:280px;max-width:400px;overflow:hidden;display:flex;flex-direction:column}.settingsHeader{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.1);font-size:14px;font-weight:500;color:#e8eef7}.settingsCloseButton{background:transparent;border:none;color:#e8eef7;font-size:24px;line-height:1;cursor:pointer;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background-color .2s;opacity:.7}.settingsCloseButton:hover{opacity:1}.settingsBody{padding:16px;display:flex;flex-direction:column;gap:16px}.settingsSection{display:flex;flex-direction:column;gap:12px}.settingsSectionTitle{font-size:13px;font-weight:600;color:#fffc;text-transform:uppercase;letter-spacing:.05em}.settingsRow{display:flex;align-items:center;gap:12px}.settingsButton{border-radius:6px;color:#e8eef7;font-size:16px;font-weight:600;cursor:pointer;padding:8px 12px;transition:all .2s;min-width:40px;display:flex;align-items:center;justify-content:center}.monthNavButton{background:transparent;border:none;color:#e8eef7;font-size:36px;font-weight:700;cursor:pointer;padding:8px;opacity:.7;transition:all .2s;line-height:1;display:flex;align-items:center;justify-content:center;justify-self:center;flex-shrink:0;outline:none}.monthNavButton:hover{opacity:1;transform:translateY(-1px)}.monthNavButton:active{opacity:.5;transform:translateY(1px)}.monthNavButton:focus{outline:none}.monthNavButton:focus-visible{outline:2px solid rgba(121,134,203,.6);outline-offset:2px;border-radius:4px}.monthSub{font-size:21px;opacity:.6;margin-top:-4px;display:flex;align-items:center;justify-content:center;gap:8px;position:relative}.calendarIcon{width:21px;height:21px;display:inline-block;vertical-align:middle;object-fit:contain}.calendarSelectorIcon{width:20px;height:20px;display:inline-block;vertical-align:middle;object-fit:contain}.weekHeader{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;margin-top:4px}.weekLabel{font-size:12px;opacity:.7;text-align:center;padding:0}.calendarSwipeContainer{position:relative;overflow:hidden;flex:1;min-height:0;touch-action:pan-y}.calendarMonthsWrapper{display:flex;width:300%;height:100%;will-change:transform}.monthGrid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-template-rows:repeat(5,1fr);gap:8px;min-height:0;flex:1;width:calc(100% / 3);overflow:hidden;align-content:start;border-radius:12px;padding:4px;position:relative;flex-shrink:0}.dayCell{border-radius:14px;padding:10px;display:flex;flex-direction:column;gap:8px;min-height:0;height:100%;overflow:visible;position:relative;transition:background-color .2s,border-color .2s;-webkit-tap-highlight-color:transparent}.dayCell:focus{outline:none}.dayCell:focus-visible{outline:2px solid rgba(121,134,203,.6);outline-offset:2px}.dayCell.outMonth{opacity:.35}.dayTop{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:32px;position:relative;z-index:1}.dayCell.today .dayTop,.calCellToday .dayTop{min-height:32px!important}.dayNum{font-size:16px;font-weight:700;opacity:.95}.wIconTemp{display:flex;align-items:center;gap:6px}.wIcon{width:18px;height:18px;display:inline-block;vertical-align:middle;object-fit:contain}.wIcon.placeholder{opacity:.15;width:18px;height:18px;display:inline-block}.garbageIcons{display:flex;align-items:center;gap:2px;flex-shrink:0}.garbageIcon{width:18px;height:18px;object-fit:contain;display:inline-block;vertical-align:middle;filter:drop-shadow(0 0 1px rgba(0,0,0,.3))}.wTempInline{font-size:12px;opacity:.9;display:flex;align-items:center;line-height:1}.wTempInline .hi{font-variant-numeric:tabular-nums;font-weight:600}.wTempInline .sep{margin:0 2px;opacity:.6}.wTempInline .lo{font-variant-numeric:tabular-nums;opacity:.75}.eventList{margin-top:0;display:flex;flex-direction:column;gap:3px;min-height:0;overflow:hidden;position:relative;z-index:1}.eventItem{font-size:10px;font-weight:500;padding:3px 6px;border-radius:4px;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-shrink:0;opacity:.95;width:100%;box-sizing:border-box}.eventItem.more{font-size:9px;text-align:center;padding:2px 4px}.eventItem.multiDay{position:relative}.multiDayEventBar{font-size:10px;font-weight:500;padding:3px 6px;border-radius:4px;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;opacity:.95;z-index:2;position:relative;align-self:start;height:18px;box-sizing:border-box}.calendarError{display:flex;align-items:flex-start;gap:12px;padding:16px;border-radius:8px;margin-bottom:12px}.calendarErrorIcon{width:24px;height:24px;flex-shrink:0;color:#ff5722;stroke:#ff5722}.calendarErrorMessage{flex:1;display:flex;flex-direction:column;gap:4px}.calendarErrorTitle{font-weight:600;font-size:14px;color:#ff5722}.calendarErrorDetail{font-size:12px;color:#fffc;line-height:1.4}.calendarLoadingOverlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#0b0f14b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;border-radius:12px;pointer-events:none}.calendarLoadingIcon{width:48px;height:48px;animation:spin 1s linear infinite}.panel.calendarPanel{background:#141923bf;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.1)}@supports not (backdrop-filter: blur(8px)){.panel.calendarPanel{background:#141923cc}}.monthTitleMonth{text-shadow:0 2px 4px rgba(0,0,0,.8),0 4px 8px rgba(0,0,0,.6),0 6px 12px rgba(0,0,0,.4),0 1px 0 rgba(255,255,255,.1)}.monthTitleYear{text-shadow:0 1px 2px rgba(0,0,0,.8),0 2px 4px rgba(0,0,0,.6),0 3px 6px rgba(0,0,0,.4)}.calendarSelectorButton{background:#ffffff0d;border:1px solid rgba(255,255,255,.1)}.calendarSelectorButton:hover{background:#ffffff1a;border-color:#fff3}.calendarSelector{background:#141923fa;border:1px solid rgba(255,255,255,.1);box-shadow:0 8px 24px #0006}.calendarSelectorCloseButton:hover{background:#ffffff1a}.calendarSelectorItem{background:#ffffff08;border:1px solid rgba(255,255,255,.08)}.calendarSelectorItem:hover{background:#ffffff0f;border-color:#ffffff26}.settingsPanel{background:#141923fa;border:1px solid rgba(255,255,255,.1);box-shadow:0 8px 24px #0006}.settingsCloseButton:hover{background:#ffffff1a}.settingsButton{background:#ffffff1a;border:1px solid rgba(255,255,255,.2)}.settingsButton:hover{background:#fff3;border-color:#ffffff4d}.monthNavButton{text-shadow:0 2px 4px rgba(0,0,0,.8),0 4px 8px rgba(0,0,0,.6),0 6px 12px rgba(0,0,0,.4),0 1px 0 rgba(255,255,255,.15)}.monthNavButton:hover{text-shadow:0 3px 6px rgba(0,0,0,.9),0 5px 10px rgba(0,0,0,.7),0 7px 14px rgba(0,0,0,.5),0 1px 0 rgba(255,255,255,.2)}.monthNavButton:active{text-shadow:0 1px 2px rgba(0,0,0,.8),0 2px 4px rgba(0,0,0,.6)}.monthGrid{background:#ffffff03}.dayCell{border:1px solid rgba(255,255,255,.08)}.dayCell:hover{background:#ffffff0f;border-color:#ffffff26}.dayCell:active{background:#ffffff14}.dayCell.today{border-color:#fff6;box-shadow:0 0 0 2px #ffffff26 inset,0 0 0 1px #ffffff4d}.calCell{--weather-tint: transparent;background:#ffffff0a;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.06);border-radius:14px;box-shadow:inset 0 1px #ffffff14,inset 0 -1px #00000026,0 1px 2px #0000001a;transition:all .2s ease;position:relative}@supports not (backdrop-filter: blur(8px)){.calCell{background:#ffffff0d}}.calCell.hasWeather:before{content:"";position:absolute;inset:0;border-radius:14px;pointer-events:none;z-index:0;background:linear-gradient(to bottom,var(--weather-tint) 0%,transparent 40%);opacity:1;mix-blend-mode:screen}.calCell>*{position:relative;z-index:1}.calCell:hover{border-color:#ffffff1a;box-shadow:inset 0 1px #ffffff1a,inset 0 -1px #0000001f,0 2px 4px #00000026}.calCellToday{--weather-tint: transparent;background:#ffffff1f;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-color:#fff6!important;box-shadow:inset 0 1px #fff3,inset 0 -1px #0000001a,0 0 0 2px #ffffff26,0 4px 12px #ffffff1a,0 2px 4px #00000026}@supports not (backdrop-filter: blur(10px)){.calCellToday{background:#ffffff14}}.calCellToday.hasWeather:before{content:"";position:absolute;inset:0;border-radius:14px;pointer-events:none;z-index:0;background:linear-gradient(to bottom,var(--weather-tint) 0%,transparent 40%);opacity:1;mix-blend-mode:screen}.calCellToday>*{position:relative;z-index:1}.calCellToday:hover{border-color:#ffffff26!important;box-shadow:inset 0 1px #ffffff26,inset 0 -1px #00000014,0 0 0 1px #ffffff1a,0 4px 12px #ffffff14,0 2px 4px #00000026}.calCellOtherMonth{opacity:.35}.eventChip{border-radius:13px;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);border:none;box-shadow:inset 0 1px #fff3,0 1px 2px #00000026;color:#fff!important;text-shadow:0 1px 2px rgba(0,0,0,.3);font-weight:500;padding:4px 8px;line-height:1.15;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:all .2s ease}.eventChip:hover{box-shadow:inset 0 1px #ffffff40,0 2px 4px #0003;transform:translateY(-1px)}.eventItem.more{background:#ffffff26!important;color:#fffc!important}.multiDayEventBar.eventChip{border-radius:13px;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);border:none;box-shadow:inset 0 1px #fff3,0 1px 2px #00000026;color:#fff!important;text-shadow:0 1px 2px rgba(0,0,0,.3);padding:4px 8px;line-height:1.15;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendarError{background:#ff572226;border:1px solid rgba(255,87,34,.3)}@media(max-width:1200px){.screen{grid-template-columns:2fr 3fr}}@media(max-width:1200px)and (orientation:landscape){.screen{grid-template-columns:1fr 1.5fr;gap:12px;padding:12px;height:100dvh;width:100vw;overflow:hidden;align-items:stretch}@supports not (height: 100dvh){.screen{height:100vh}}.left{min-width:0;overflow:hidden}.right{min-width:0;min-height:0;overflow:hidden;display:flex;flex-direction:column;height:100%}.todayPanel{flex:0 1 auto;min-height:auto;max-height:none;height:auto;overflow:visible;display:flex;flex-direction:column}.todayPanel{padding-top:8px!important;padding-bottom:8px!important;padding-left:16px;padding-right:16px}.todayPanel .dateDisplay{font-size:clamp(24px,4.2vh,54px);margin-bottom:-.2em;flex-shrink:0}.todayPanel .timeDisplay{margin-bottom:clamp(8px,1.4vh,15px);flex-shrink:0;height:auto;align-items:flex-end;line-height:1}.todayPanel .time{font-size:clamp(100px,18vh,200px);line-height:1;text-align:center;align-self:flex-end}.todayPanel .seconds{font-size:clamp(35px,6vh,70px);padding-bottom:0;text-align:center;align-self:flex-end}.todayPanel .timeWrapper{align-items:flex-end;justify-content:center;gap:clamp(2.67px,.47vh,5.33px);align-self:center;flex:1}.todayPanel .weatherInfo{padding-top:clamp(8px,1.4vh,16px)!important;padding-bottom:clamp(8px,1.4vh,16px)!important;gap:clamp(6px,1vh,12px);flex:0 1 auto;min-height:auto;overflow:visible}.todayPanel .weatherLocationInfo{font-size:clamp(11px,1.8vh,16px)}.todayPanel .weatherValue{font-size:clamp(13px,2.2vh,18px)}.todayPanel .weatherLabel{font-size:clamp(10px,1.6vh,12px)}.todayPanel>*{flex-shrink:0}.schedulePanel{max-height:calc(100dvh - 120px)!important}.panel.calendarPanel{padding:8px 6px;display:flex;flex-direction:column;gap:4px;min-height:0;flex:1 1 0;overflow:hidden}.calendarHeader,.weekHeader,.calendarError{flex-shrink:0}.calendarHeader{padding-bottom:4px;gap:4px;min-height:10dvh;max-height:10dvh;display:flex;flex-direction:column;justify-content:center}@supports not (height: 10dvh){.calendarHeader{min-height:10vh;max-height:10vh}}.monthTitleMonth{font-size:clamp(18px,2.5vh,24px)}.monthTitleYear{font-size:clamp(9px,1.2vh,11px)}.monthNavButton{font-size:clamp(16px,2vh,20px)}.calendarSelectorButton{font-size:clamp(12px,1.5vh,14px)}.calendarSelectorIcon{width:clamp(14px,1.8vh,16px);height:clamp(14px,1.8vh,16px)}.monthTitle{gap:20px;max-width:calc(100% - 50px)}.monthTitleMonth{font-size:24px}.monthTitleYear{font-size:11px;margin-top:2px}.monthNavButton{font-size:20px;padding:2px 4px}.calendarHeaderButtons{gap:4px}.calendarSelectorButton{font-size:14px;padding:4px 8px}.calendarSelectorIcon{width:16px;height:16px}.calendarError{padding:8px;margin-bottom:4px}.calendarErrorIcon{width:18px;height:18px}.calendarErrorTitle{font-size:12px}.calendarErrorDetail{font-size:10px}.weekHeader{gap:4px;margin-top:0}.weekLabel{font-size:10px;padding:2px 0}.monthGrid{flex:1 1 0;min-height:0;align-content:stretch;gap:4px;padding:2px;grid-auto-rows:minmax(0,1fr);overflow:hidden}.dayCell{min-height:0!important;height:auto!important;overflow:hidden!important;padding:3px!important;gap:1px!important}.dayCell.calCell,.dayCell.calCell.inMonth,.dayCell.calCell.outMonth{min-height:0!important;height:auto!important}.dayTop{min-height:0!important}.eventList{flex:1 1 0;min-height:0;overflow:hidden}.eventItem,.eventChip,.multiDayEventBar{line-height:1.05;padding:1px 3px;font-size:7px}.dayNum{font-size:11px}.wIcon{width:11px;height:11px}.wTempInline{font-size:8px}.dayNum{font-size:12px}.wIcon{width:12px;height:12px}.wTempInline{font-size:9px}.eventItem{font-size:8px;padding:2px 3px}.eventChip{padding:2px 4px;font-size:8px}.eventList{gap:2px}.schedulePanel{flex:0 1 auto;min-height:0;max-height:calc(50dvh - 120px);display:flex;flex-direction:column;overflow:hidden}@supports not (height: 50dvh){.schedulePanel{max-height:calc(50vh - 120px)}}.scheduleListContainer{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;max-height:100%}.tomorrowPanel{flex-shrink:0;margin-top:auto;max-height:60px;overflow:hidden}.tomorrowPreview{font-size:11px;gap:3px}.tomorrowWeatherIcon{width:12px;height:12px}}@media(max-width:1200px)and (max-height:850px)and (orientation:landscape){.screen{gap:6px;padding:6px}.todayPanel{min-height:auto;max-height:none;height:auto;display:flex;flex-direction:column;overflow:visible;padding-top:6px!important;padding-bottom:6px!important;padding-left:12px;padding-right:12px}.todayPanel .dateDisplay{font-size:clamp(19.2px,3.36vh,38.4px);margin-bottom:-.2em}.todayPanel .timeDisplay{margin-bottom:clamp(6px,1vh,12px);height:auto;align-items:flex-end;line-height:1}.todayPanel .time{font-size:clamp(100px,15vh,180px);line-height:1;text-align:center;align-self:flex-end}.todayPanel .seconds{font-size:clamp(35px,5.5vh,60px);padding-bottom:0;text-align:center;align-self:flex-end}.todayPanel .timeWrapper{align-items:flex-end;justify-content:center;gap:clamp(2px,.33vh,4px);align-self:center;flex:1;padding:0;margin:0}.todayPanel .weatherInfo{padding-top:clamp(6px,1vh,12px)!important;padding-bottom:clamp(6px,1vh,12px)!important;gap:clamp(4px,.7vh,8px);overflow:visible}.todayPanel .weatherLocationInfo{font-size:clamp(9px,1.5vh,12px)}.todayPanel .weatherValue{font-size:clamp(11px,1.9vh,16px)}.todayPanel .weatherLabel{font-size:clamp(8px,1.4vh,11px)}.panel.calendarPanel{padding:6px;gap:2px}.calendarHeader{padding-bottom:2px;gap:2px;min-height:10dvh;max-height:10dvh;display:flex;flex-direction:column;justify-content:center}@supports not (height: 10dvh){.calendarHeader{min-height:10vh;max-height:10vh}}.monthTitleMonth{font-size:clamp(14px,2vh,18px)}.monthTitleYear{font-size:clamp(8px,1vh,10px)}.monthNavButton{font-size:clamp(14px,1.8vh,18px)}.calendarSelectorButton{font-size:clamp(10px,1.3vh,12px)}.monthTitle{gap:12px}.monthTitleMonth{font-size:18px}.monthTitleYear{font-size:10px;margin-top:1px}.monthNavButton{font-size:18px;padding:0 2px}.calendarSelectorButton{font-size:12px;padding:2px 6px}.weekHeader{gap:2px}.weekLabel{font-size:9px;padding:1px 0}.monthGrid{gap:4px;padding:2px;grid-auto-rows:minmax(0,1fr);overflow-y:hidden}.dayCell{padding:3px!important;gap:2px!important;border-radius:10px;min-height:0!important;height:auto!important;overflow:visible!important}.dayTop,.dayCell.today .dayTop,.calCellToday .dayTop{min-height:0!important}:root{--calendar-day-top-height: auto;--calendar-day-cell-padding: 3px;--calendar-multi-day-offset-base: 23px;--calendar-multi-day-offset-step: 18px;--calendar-single-day-offset-base: 12px;--calendar-single-day-offset-step: 12px;--calendar-multi-day-bar-height: 18px}.dayNum{font-size:11px}.wIcon{width:11px;height:11px}.wTempInline{font-size:8px}.eventList{display:flex;flex-direction:column;gap:3px;min-height:0;overflow:visible;position:relative;z-index:1}.eventItem,.eventChip{font-size:10px;font-weight:500;padding:3px 6px;border-radius:4px;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-shrink:0;opacity:.95;width:100%;box-sizing:border-box}.dayCell:has(.multiDayEventBar) .eventList{margin-top:3px!important}.dayCell .multiDayEventBar+.multiDayEventBar{margin-top:3px!important}.multiDayEventBar{display:block!important;line-height:1.1;padding:2px 4px;font-size:8px;height:auto;max-height:16px;overflow:hidden}.schedulePanel{max-height:calc(100dvh - 120px)!important}}@media(max-width:768px){.screen{grid-template-columns:1fr;grid-template-rows:auto auto;gap:12px;padding:12px}.left,.right{width:100%}.schedulePanel{max-height:calc(100dvh - 120px)!important}}
