:root{--calendar-scale:1}.calendar-bg-layer{position:fixed;inset:-5%;width:110%;height:110%;background-size:cover;background-position:center;opacity:0;transition:opacity 2s ease-in-out;z-index:0;animation:kenburns 300s linear forwards}.calendar-bg-layer--active{opacity:1}.calendar-bg-overlay{position:fixed;inset:0;background:rgba(0,0,0,.2);z-index:1}.calendar-particles{position:fixed;inset:0;width:100%;height:100%;z-index:5;pointer-events:none}@keyframes kenburns{0%{transform:scale(1)}100%{transform:scale(1.3)}}.calendar-widget{position:fixed;z-index:10;inset:0;padding:.75rem 1rem 1rem;background:rgba(0,0,0,.25);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:#fff;display:flex;flex-direction:column;transition:transform .3s ease}.calendar-clock{color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.5);text-align:center;cursor:pointer}.calendar-clock__time{font-size:2rem;font-weight:200;line-height:1;letter-spacing:-.02em}.calendar-clock__time sup{font-size:.6rem;font-weight:300;vertical-align:super;margin-left:.05em}.calendar-clock__date{font-size:.75rem;font-weight:300;opacity:.85;display:block;margin-top:.1rem}.calendar-nav{background:rgba(255,255,255,.1);border:none;color:#fff;width:28px;height:28px;border-radius:50%;font-size:1.1rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s}.calendar-nav:hover{background:rgba(255,255,255,.2)}.calendar-btn{background:rgba(255,255,255,.1);border:none;color:#fff;width:28px;height:28px;border-radius:50%;font-size:.85rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s;margin-left:.3rem}.calendar-btn:hover{background:rgba(255,255,255,.25)}.calendar-modal{background:rgba(0,0,0,.75);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.15);border-radius:20px;color:#fff;text-align:center;padding:2rem 2.5rem;position:relative}.calendar-modal__close{position:absolute;top:.75rem;right:1rem;background:0 0;border:none;color:rgba(255,255,255,.6);font-size:1.5rem;cursor:pointer;line-height:1}.calendar-modal__close:hover{color:#fff}.calendar-modal__icon{font-size:2.5rem;margin-bottom:.5rem}.calendar-modal__time{font-size:.85rem;opacity:.7;margin-bottom:.25rem}.calendar-modal__title{font-size:1.4rem;font-weight:500}.calendar-day-panel__actions .dropdown-menu{position:fixed!important;background:rgba(0,0,0,.8);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.1);font-size:.75rem;min-width:10rem}.calendar-day-panel__actions .dropdown-menu .dropdown-item{color:rgba(255,255,255,.85);padding:.3rem .75rem}.calendar-day-panel__actions .dropdown-menu .dropdown-item:focus,.calendar-day-panel__actions .dropdown-menu .dropdown-item:hover{background:rgba(255,255,255,.1);color:#fff}.calendar-day-panel__actions .dropdown-menu .dropdown-divider{border-color:rgba(255,255,255,.1)}#settings-modal .form-control{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.15);color:#fff;font-size:.75rem}#settings-modal .form-control::placeholder{color:rgba(255,255,255,.35)}#settings-modal .form-control:focus{background:rgba(255,255,255,.15);border-color:rgba(255,255,255,.3);color:#fff;box-shadow:none}#settings-modal .form-label{color:rgba(255,255,255,.7);font-size:.65rem}.modal-backdrop.show{opacity:.3}#event-modal .modal-dialog{max-width:360px}#settings-modal .modal-dialog{max-width:400px;max-height:85vh}#settings-modal .modal-content{max-height:80vh;overflow-y:auto}.calendar-body{flex:1;display:flex;gap:.5rem;min-height:0;overflow:hidden}.calendar-day-panel{flex:0 0 20%;display:flex;flex-direction:column;background:rgba(255,255,255,.05);border-radius:8px;padding:.4rem;overflow:hidden}.calendar-day-panel__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.2rem}.calendar-day-panel__month{font-size:.8rem;font-weight:600;white-space:nowrap;transition:opacity .25s ease}.calendar-day-panel__nav{display:flex;gap:.15rem}.calendar-day-panel__date{font-size:.75rem;font-weight:400;opacity:.7;margin-bottom:.3rem;text-align:center;white-space:nowrap;transition:opacity .25s ease}.calendar-day-panel__events{flex:1;overflow-y:auto;transition:opacity .25s ease}.calendar-day-panel__footer{margin-top:auto;padding-top:.3rem;text-align:center}.calendar-day-panel__actions{display:flex;justify-content:center;gap:.2rem;margin-top:.25rem}.calendar-day-panel-event{font-size:.65rem;line-height:1.3;padding:3px 5px;margin-bottom:3px;border-radius:4px;word-wrap:break-word;white-space:normal}.calendar-day-panel-event__time{opacity:.7;font-size:.55rem;display:block}.calendar-day-panel-event__desc{display:block;font-size:.5rem;opacity:.6;margin-top:.1rem;line-height:1.25;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.calendar-weather{text-align:center;padding:.3rem 0;margin-bottom:.2rem;border-bottom:1px solid rgba(255,255,255,.08);transition:opacity .25s ease}.calendar-weather__current{display:flex;align-items:center;justify-content:center;gap:.3rem;margin-bottom:.15rem}.calendar-weather__icon{font-size:1.4rem;line-height:1}.calendar-weather__temp{font-size:1.1rem;font-weight:300}.calendar-weather__desc{font-size:.55rem;opacity:.7;text-transform:capitalize}.calendar-weather__details{display:flex;justify-content:center;gap:.5rem;font-size:.5rem;opacity:.6;margin-top:.1rem}.calendar-weather__forecast{display:flex;justify-content:space-around;margin-top:.25rem;padding-top:.2rem;border-top:1px solid rgba(255,255,255,.05)}.calendar-weather__hour{text-align:center;font-size:.45rem;opacity:.7;line-height:1.3}.calendar-weather__hour-icon{font-size:.7rem;display:block}.calendar-month{flex:1;display:flex;flex-direction:column;min-width:0;overflow:hidden;position:relative}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}.calendar-grid--header{margin-bottom:2px;flex-shrink:0}.calendar-grid--days{flex:1;grid-auto-rows:1fr;column-gap:1px;transition:transform .45s cubic-bezier(.25,.46,.45,.94)}.calendar-grid--days.calendar-grid--no-transition{transition:none}.calendar-dow{text-align:center;font-size:.8rem;font-weight:600;text-transform:uppercase;opacity:.5;padding:4px 0}.calendar-day{padding:6px;border-radius:8px;background:rgba(255,255,255,.03);position:relative;overflow:hidden;transition:outline .3s ease,background .3s ease,opacity .3s ease;cursor:pointer}.calendar-day__month{font-size:.6rem;font-weight:600;opacity:.7;text-transform:uppercase}.calendar-day__number{font-size:.85rem;font-weight:500;margin-bottom:2px;white-space:nowrap}.calendar-day__num{font-size:inherit}.calendar-day--today .calendar-day__num{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 3px;border-radius:50%;background:#e53935;color:#fff;font-weight:600;font-size:.75rem;line-height:1}.calendar-day--selected{outline:2px solid rgba(255,255,255,.5);outline-offset:-2px;background:rgba(255,255,255,.07)}.calendar-day--other{opacity:.3}.calendar-day:hover:not(.calendar-day--selected){background:rgba(255,255,255,.06)}.calendar-today-marker{position:absolute;border-radius:8px;background:rgba(255,255,255,.1);pointer-events:none;z-index:0;transition:top .5s cubic-bezier(.25,.46,.45,.94),left .5s cubic-bezier(.25,.46,.45,.94),width .5s cubic-bezier(.25,.46,.45,.94),height .5s cubic-bezier(.25,.46,.45,.94),opacity .3s ease}.calendar-today-marker--hidden{opacity:0}.calendar-time-line{position:absolute;left:0;right:0;height:2px;background:#e53935;z-index:5;pointer-events:none}.calendar-time-line::before{content:"";position:absolute;left:-3px;top:-3px;width:8px;height:8px;border-radius:50%;background:#e53935}.calendar-event{font-size:.7rem;line-height:1.35;padding:2px 5px;margin-bottom:2px;border-radius:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-event--span{border-radius:0;margin-left:-7px;margin-right:-7px;padding-left:8px;padding-right:2px}.calendar-event--span-start{margin-left:0;border-radius:3px 0 0 3px}.calendar-event--span-end{margin-right:0;border-radius:0 3px 3px 0}.calendar-event--span-start.calendar-event--span-end{border-radius:3px;margin-left:0;margin-right:0}.calendar-event--more{background:0 0;opacity:.6;font-style:italic}.calendar-status{position:fixed;bottom:.5rem;left:.75rem;z-index:10;display:flex;align-items:center;gap:6px;font-size:.7rem;color:rgba(255,255,255,.5);opacity:0;transition:opacity .5s ease}.calendar-status__dot{width:6px;height:6px;border-radius:50%;background:#4caf50}.calendar-status--error .calendar-status__dot{background:#f44336}.calendar-blackout{position:fixed;inset:0;z-index:200;background:#000;opacity:0;display:flex;align-items:center;justify-content:center;pointer-events:none;transition:opacity 10s ease}.calendar-blackout--active{pointer-events:auto}.calendar-blackout__message{color:#fff;font-size:1.5rem;font-weight:200;text-align:center;opacity:0;transition:opacity 2s ease;max-width:80%}.calendar-blackout__message--visible{opacity:1}.calendar-blackout__message--fade-out{transition:opacity 10s ease;opacity:0}.calendar-error{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.8)}.calendar-error__message{color:#fff;font-size:1.2rem;text-align:center;max-width:400px;padding:2rem}@media (max-height:500px){.calendar-clock__time{font-size:1.8rem}.calendar-clock__time sup{font-size:.55rem}.calendar-clock__date{font-size:.7rem}.calendar-widget{padding:.25rem .5rem .25rem}.calendar-day-panel{padding:.25rem}.calendar-day-panel__month{font-size:.65rem}.calendar-day-panel__date{font-size:.6rem;margin-bottom:.15rem}.calendar-day-panel-event{font-size:.5rem;padding:2px 3px}.calendar-day-panel-event__time{font-size:.45rem}.calendar-weather{padding:.15rem 0}.calendar-weather__icon{font-size:1rem}.calendar-weather__temp{font-size:.8rem}.calendar-weather__desc{font-size:.45rem}.calendar-weather__details{font-size:.4rem}.calendar-weather__forecast{display:none}.calendar-btn,.calendar-nav{width:20px;height:20px;font-size:.65rem;margin-left:.1rem}.calendar-grid{gap:2px}.calendar-dow{font-size:.55rem;padding:1px 0}.calendar-day{padding:2px 3px}.calendar-day__number{font-size:.6rem;margin-bottom:1px}.calendar-day--today .calendar-day__number{width:16px;height:16px;font-size:.55rem}.calendar-event{font-size:.45rem;padding:1px 2px;margin-bottom:1px;line-height:1.2}.calendar-status{bottom:.15rem;font-size:.5rem}}@media (max-width:576px){.calendar-widget{padding:.5rem}.calendar-day{padding:3px}.calendar-day__number{font-size:.75rem}.calendar-event{font-size:.55rem}}.calendar-dashboard{padding:0!important;overflow:hidden}/*# sourceMappingURL=index.bundle.css.map */
