: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:#242424;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}}:root{color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:#000;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:18px;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(100vh - 400px)}.scheduleListContainer{overflow-y:auto;overflow-x:hidden;min-height:0;max-height:100%}.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}@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:hidden;background-size:cover;background-position:center;background-repeat:no-repeat;flex-shrink:0;z-index:1;opacity:.9}.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}}.panel.calendarPanel{padding:20px 16px;flex:1;display:flex;flex-direction:column;gap:12px;min-height:0;overflow:hidden;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}}.dateDisplay{font-size:45px;font-weight:600;opacity:.9;margin-bottom:0;text-align:center}.timeDisplay{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:15px}.clockIcon{font-size:96px;line-height:1;opacity:.9}.timeWrapper{display:flex;align-items:flex-end;gap:16px;line-height:1}.time{font-size:128px;font-weight:700;letter-spacing:2px;line-height:1;font-variant-numeric:tabular-nums}.seconds{font-size:45px;font-weight:700;letter-spacing:2px;line-height:1;font-variant-numeric:tabular-nums;opacity:.6;padding-bottom:8px;min-width:60px;text-align:center}.weatherInfo{display:flex;flex-direction:column;gap:12px;padding-top: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}.calendarError{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}.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}.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}.calendarHeader{display:flex;flex-direction:column;gap:8px;padding-bottom:12px;position:relative;z-index:10}.calendarPanel{position:relative}.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;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{margin-top:6px;font-size:18px;font-weight:650;letter-spacing:.14em;opacity:.55;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)}.calendarHeaderButtons{position:absolute;top:0;right:0;display:flex;gap:8px}.calendarHeaderButtonWrapper{position:relative}.calendarSelectorButton{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#e8eef7;font-size:18px;cursor:pointer;padding:8px 12px;transition:all .2s;opacity:.7}.calendarSelectorButton:hover{background:#ffffff1a;border-color:#fff3;opacity:1}.calendarSelector{position:absolute;top:calc(100% + 8px);right:0;background:#141923fa;border:1px solid rgba(255,255,255,.1);border-radius:12px;box-shadow:0 8px 24px #0006;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{background:#ffffff1a;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;background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-left:4px solid #7986cb;border-radius:8px;cursor:pointer;transition:all .2s}.calendarSelectorItem:hover{background:#ffffff0f;border-color:#ffffff26}.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;background:#141923fa;border:1px solid rgba(255,255,255,.1);border-radius:12px;box-shadow:0 8px 24px #0006;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{background:#ffffff1a;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}.settingsShaderToggle{margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid rgba(255,255,255,.1)}.settingsShaderControl{display:flex;align-items:center;gap:12px}.settingsButton{background:#ffffff1a;border:1px solid rgba(255,255,255,.2);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}.settingsButton:hover{background:#fff3;border-color:#ffffff4d}.settingsShaderInfo{flex:1;display:flex;flex-direction:column;gap:4px;align-items:center}.settingsShaderName{font-size:14px;font-weight:500;color:#e8eef7}.settingsShaderIndex{font-size:11px;color:#fff9;font-variant-numeric:tabular-nums}.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;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{opacity:1;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);transform:translateY(-1px)}.monthNavButton:active{opacity:.5;transform:translateY(1px);text-shadow:0 1px 2px rgba(0,0,0,.8),0 2px 4px rgba(0,0,0,.6)}.monthSub{font-size:21px;opacity:.6;margin-top:-4px;display:flex;align-items:center;justify-content:center;gap:8px;position:relative}.weatherLocation{font-size:12px;opacity:.7;display:flex;align-items:center;gap:4px;margin-left:auto;padding-left:8px;border-left:1px solid rgba(255,255,255,.2)}.weatherLocationIcon{font-size:14px}.weatherLocation.error{opacity:.5}.weatherLocation.loading{opacity:.6;font-style:italic}.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}.monthGrid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-auto-rows:1fr;gap:8px;min-height:0;flex:1;overflow:hidden;align-content:start;background:#ffffff03;border-radius:12px;padding:4px}.dayCell{border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:10px;display:flex;flex-direction:column;gap:8px;min-height:130px;height:100%;overflow:visible;position:relative;transition:background-color .2s,border-color .2s}.dayCell:hover{background:#ffffff0f;border-color:#ffffff26}.dayCell:active{background:#ffffff14}.dayCell.outMonth{opacity:.35}.dayCell.today{border-color:#fff6;box-shadow:0 0 0 2px #ffffff26 inset,0 0 0 1px #ffffff4d}.dayCell.today .dayNum{font-weight:900;font-size:18px;color:#fff;text-shadow:0 0 8px rgba(255,255,255,.5)}.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}.dayTop{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:32px;position:relative;z-index:1}.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}.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}.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;transition:all .2s ease;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eventChip:hover{box-shadow:inset 0 1px #ffffff40,0 2px 4px #0003;transform:translateY(-1px)}.eventItem.more{background:#ffffff26!important;color:#fffc!important;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}.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;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.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}.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}@media(max-width:1200px){.screen{grid-template-columns:2fr 3fr}}@media(max-width:768px){.screen{grid-template-columns:1fr;grid-template-rows:auto auto;gap:12px;padding:12px}.left,.right{width:100%}}.analogClock{width:67.2px;height:67.2px;display:flex;align-items:center;justify-content:center;position:relative;opacity:.9;margin-top:20px;filter:drop-shadow(0 3px 6px rgba(0,0,0,.3)) drop-shadow(0 1px 2px rgba(255,255,255,.15))}.analogClock svg{width:100%;height:100%}.analogClock .hour-hand{stroke-width:4}.analogClock .minute-hand{stroke-width:2.5}
