.calendar-hero{border-bottom:1px solid var(--line);background:radial-gradient(circle at 78% 8%, #00c3ff33, transparent 32%), radial-gradient(circle at 25% 100%, #7c5cfc26, transparent 34%), var(--surface-soft);align-items:center;gap:26px;min-height:0;padding:36px clamp(22px,7vw,112px) 28px;display:flex;position:relative;overflow:hidden}.calendar-hero-icon{border:1px solid var(--line-strong);background:var(--surface);width:88px;height:88px;color:var(--blue-deep);box-shadow:var(--shadow);border-radius:26px;flex:0 0 88px;place-items:center;font-size:42px;display:grid}.calendar-hero p{color:var(--blue-deep);letter-spacing:.14em;text-transform:uppercase;margin:0 0 10px;font-size:15px;font-weight:800}.calendar-hero h1{margin:0;font-family:"5ka Sans Design",sans-serif;font-size:clamp(38px,5vw,68px);font-weight:600;line-height:1}.calendar-hero span{color:var(--muted);margin-top:14px;font-size:clamp(17px,2vw,22px);font-weight:600;display:block}.calendar-content{padding:38px clamp(18px,5vw,78px) 76px}.calendar-hint{border:1px solid var(--line);background:var(--surface);width:fit-content;color:var(--muted);border-radius:12px;align-items:center;gap:10px;margin:0 0 24px;padding:11px 15px;font-size:14px;font-weight:600;display:flex}.calendar-hint svg{color:var(--blue-deep);flex:none;font-size:18px}.season-calendar-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;display:grid}.season-calendar-month{border:1px solid var(--line);background:var(--surface);border-radius:22px;min-width:0;padding:22px;box-shadow:0 18px 52px #073f6114}.season-calendar-month>header{justify-content:space-between;align-items:baseline;margin-bottom:18px;display:flex}.season-calendar-month h2{margin:0;font-family:"5ka Sans Design",sans-serif;font-size:26px;font-weight:600}.season-calendar-month>header span{color:var(--muted);font-size:14px;font-weight:700}.calendar-weekdays,.calendar-days{grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.calendar-weekdays{color:var(--muted);text-align:center;margin-bottom:8px;font-size:12px;font-weight:800}.calendar-weekdays span:nth-last-child(-n+2){color:var(--blue-deep)}.calendar-days{border-top:2px solid var(--line);border-left:2px solid var(--line);border-radius:12px;position:relative;overflow:visible}.calendar-period-outline{z-index:50;top:calc(var(--calendar-period-start-row) * 100% / var(--calendar-period-row-count));height:calc(var(--calendar-period-row-span) * 100% / var(--calendar-period-row-count));pointer-events:none;position:absolute;left:0;right:0}.calendar-period-outline:after{z-index:60;border:1px solid var(--line-strong);background:var(--text);width:max-content;max-width:min(330px,100vw - 32px);color:var(--surface);box-shadow:var(--shadow);content:attr(data-tooltip);opacity:0;overflow-wrap:anywhere;pointer-events:none;text-align:center;text-wrap:balance;border-radius:9px;padding:7px 9px;font-family:Montserrat,sans-serif;font-size:12px;font-weight:700;line-height:1.35;transition:opacity .14s,transform .14s;position:absolute;bottom:calc(100% + 9px);left:50%;transform:translate(-50%,4px)}.calendar-period-outline:focus-within:after{opacity:1;transform:translate(-50%)}.calendar-period-outline:has(.calendar-period-edge:hover):after{opacity:1;transform:translate(-50%)}.calendar-period-edge{cursor:help;pointer-events:auto;background:0 0;border:0;padding:0;position:absolute}.calendar-period-edge:before{content:"";position:absolute}.calendar-period-edge:focus-visible{outline:3px solid var(--calendar-period-color)}@supports (color:color-mix(in lab, red, red)){.calendar-period-edge:focus-visible{outline:3px solid color-mix(in srgb, var(--calendar-period-color) 45%, #fff)}}.calendar-period-edge:focus-visible{outline-offset:2px}.calendar-period-edge.is-top,.calendar-period-edge.is-bottom{height:12px;left:0;right:0}.calendar-period-edge.is-top{top:-5px}.calendar-period-edge.is-bottom{bottom:-5px}.calendar-period-edge.is-top:before,.calendar-period-edge.is-bottom:before{background:linear-gradient(90deg, var(--calendar-period-color), var(--calendar-period-accent-color));height:3px;left:0;right:0}.calendar-period-edge.is-top:before{top:5px}.calendar-period-edge.is-bottom:before{bottom:5px}.calendar-period-edge.is-left,.calendar-period-edge.is-right{width:12px;top:0;bottom:0}.calendar-period-edge.is-left{left:-5px}.calendar-period-edge.is-right{right:-5px}.calendar-period-edge.is-left:before,.calendar-period-edge.is-right:before{width:3px;top:0;bottom:0}.calendar-period-edge.is-left:before{background:var(--calendar-period-color);left:5px}.calendar-period-edge.is-right:before{background:var(--calendar-period-accent-color);right:5px}.calendar-day{border-right:2px solid var(--line);border-bottom:2px solid var(--line);background:var(--surface);min-width:0;min-height:76px;padding:9px;position:relative}.calendar-day:nth-last-child(7){border-bottom-left-radius:10px}.calendar-day:last-child{border-bottom-right-radius:10px}.calendar-day.is-empty{background:var(--surface-soft);opacity:.48}.calendar-day.is-today:before{z-index:4;border:3px solid var(--blue);box-shadow:0 0 0 1px var(--surface);border-radius:8px;position:absolute;inset:3px}@supports (color:color-mix(in lab, red, red)){.calendar-day.is-today:before{box-shadow:0 0 0 1px color-mix(in srgb, var(--surface) 80%, transparent)}}.calendar-day.is-today:before{content:"";pointer-events:none}.calendar-day:hover .calendar-event-fills,.calendar-day:focus-within .calendar-event-fills{z-index:70}.calendar-day-number{z-index:2;color:var(--text);font-size:13px;font-weight:700;line-height:1;display:block;position:relative}.calendar-event-fills{z-index:1;height:50%;display:flex;position:absolute;bottom:0;left:0;right:0}.calendar-event-fill{border:0;border-left:1px solid var(--surface);flex:1 1 0;min-width:0;position:relative}@supports (color:color-mix(in lab, red, red)){.calendar-event-fill{border-left:1px solid color-mix(in srgb, var(--surface) 55%, transparent)}}.calendar-event-fill{cursor:help;padding:0}.calendar-event-fill.is-linked{cursor:pointer}.calendar-event-fill:first-child{border-left:0}.calendar-day:nth-last-child(7) .calendar-event-fill:first-child{border-bottom-left-radius:9px}.calendar-day:last-child .calendar-event-fill:last-child{border-bottom-right-radius:9px}.calendar-event-fill:after{z-index:30;border:1px solid var(--line-strong);background:var(--text);width:max-content;max-width:190px;color:var(--surface);box-shadow:var(--shadow);content:attr(data-tooltip);opacity:0;overflow-wrap:anywhere;pointer-events:none;text-align:center;text-wrap:balance;border-radius:9px;padding:7px 8px;font-family:Montserrat,sans-serif;font-size:12px;font-weight:700;line-height:1.35;transition:opacity .14s,transform .14s;position:absolute;bottom:calc(100% + 9px);left:50%;transform:translate(-50%,4px)}.calendar-event-fill:hover,.calendar-event-fill:focus-visible{z-index:31;outline-offset:-3px;outline:3px solid #ffffffc7}.calendar-event-fill:hover:after,.calendar-event-fill:focus-visible:after{opacity:1;transform:translate(-50%)}.calendar-day:nth-child(7n+1) .calendar-event-fill:after{left:0;transform:translateY(4px)}.calendar-day:nth-child(7n+1) .calendar-event-fill:hover:after,.calendar-day:nth-child(7n+1) .calendar-event-fill:focus-visible:after{transform:translate(0)}.calendar-day:nth-child(7n) .calendar-event-fill:after{left:auto;right:0;transform:translateY(4px)}.calendar-day:nth-child(7n) .calendar-event-fill:hover:after,.calendar-day:nth-child(7n) .calendar-event-fill:focus-visible:after{transform:translate(0)}@media (max-width:1050px){.calendar-hero{padding:36px clamp(22px,7vw,58px) 28px}}@media (max-width:800px){.calendar-hero{padding-top:38px}.calendar-hero-icon{border-radius:20px;flex-basis:68px;width:68px;height:68px;font-size:32px}.season-calendar-grid{grid-template-columns:1fr}.calendar-day{min-height:70px}}@media (max-width:560px){.calendar-hero{align-items:flex-start;gap:16px;padding:38px 18px 24px}.calendar-hero-icon{border-radius:15px;flex-basis:50px;width:50px;height:50px;font-size:24px}.calendar-hero h1{font-size:34px}.calendar-content{padding:24px 10px 54px}.calendar-hint{margin-left:8px;margin-right:8px}.season-calendar-month{border-radius:16px;padding:13px}.season-calendar-month h2{font-size:22px}.calendar-day{min-height:56px;padding:7px 5px}}.calendar-editor{border:1px solid var(--line-strong);background:var(--surface-blue);border-radius:22px;margin-top:34px;padding:26px}.calendar-editor-heading{justify-content:space-between;align-items:center;gap:20px;margin-bottom:22px;display:flex}.calendar-editor-heading p{color:var(--blue-deep);letter-spacing:.12em;text-transform:uppercase;margin:0 0 6px;font-size:12px;font-weight:800}.calendar-editor-heading h2{margin:0;font-size:25px}.calendar-editor-cancel,.calendar-editor-events button{border:1px solid var(--line);background:var(--surface);color:var(--text);cursor:pointer;font:inherit;border-radius:10px;justify-content:center;align-items:center;gap:7px;font-size:13px;font-weight:700;display:inline-flex}.calendar-editor-cancel{min-height:42px;padding:0 13px}.calendar-event-form{grid-template-columns:minmax(180px,.7fr) minmax(260px,1.4fr) minmax(250px,1fr) auto;grid-template-areas:"date title color save""link link link link";align-items:end;gap:16px;display:grid}.calendar-date-field{grid-area:date}.calendar-title-field{grid-area:title}.calendar-link-field{grid-area:link}.calendar-color-field{grid-area:color}.calendar-save-button{grid-area:save}.calendar-event-form>label,.calendar-color-field{gap:8px;min-width:0;display:grid}.calendar-event-form label>span,.calendar-color-field legend{color:var(--muted);font-size:13px;font-weight:700}.calendar-event-form input[type=date],.calendar-event-form input[type=text],.calendar-event-form input[type=url]{border:1px solid var(--line-strong);background:var(--surface);width:100%;min-height:48px;color:var(--text);font:inherit;border-radius:11px;padding:0 13px}.calendar-color-field{border:0;min-width:0;padding:0}.calendar-color-options{align-items:center;gap:7px;min-height:48px;display:flex}.calendar-color-options>button{border:3px solid var(--surface);width:28px;height:28px;box-shadow:0 0 0 1px var(--line-strong);cursor:pointer;border-radius:50%;flex:0 0 28px;padding:0}.calendar-color-options>button.is-selected{box-shadow:0 0 0 3px var(--text)}.calendar-custom-color{cursor:pointer;align-items:center;gap:6px;display:inline-flex}.calendar-custom-color input{cursor:pointer;background:0 0;border:0;width:30px;height:30px;padding:0}.calendar-custom-color span{font-size:12px}.calendar-save-button{background:var(--blue-gradient);color:#fff;cursor:pointer;min-height:48px;font:inherit;white-space:nowrap;border:0;border-radius:11px;justify-content:center;align-items:center;gap:8px;padding:0 17px;font-size:14px;font-weight:800;display:inline-flex}.calendar-save-button:disabled{cursor:wait;opacity:.65}.calendar-editor-message{color:var(--blue-deep);margin:15px 0 0;font-size:14px;font-weight:700}.calendar-editor-events{border-top:1px solid var(--line);margin-top:24px;padding-top:20px}.calendar-editor-events h3{margin:0 0 12px;font-size:16px}.calendar-editor-events>p{color:var(--muted);margin:0}.calendar-editor-events ul{gap:8px;margin:0;padding:0;list-style:none;display:grid}.calendar-editor-events li{border:1px solid var(--line);background:var(--surface);border-radius:12px;grid-template-columns:auto minmax(0,1fr) 38px 38px;align-items:center;gap:10px;padding:9px 10px;display:grid}.calendar-editor-event-color{border-radius:50%;width:14px;height:14px}.calendar-editor-event-copy{gap:3px;min-width:0;display:grid}.calendar-editor-event-copy strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.calendar-editor-event-copy small{color:var(--muted)}.calendar-editor-event-link{color:var(--blue-deep);font-weight:700}.calendar-editor-events button{width:38px;height:38px;padding:0}.calendar-editor-events button.is-delete{color:#d04747}@media (max-width:1100px){.calendar-event-form{grid-template-columns:minmax(170px,.8fr) minmax(260px,1.5fr);grid-template-areas:"date title""link link""color save"}.calendar-save-button{width:fit-content}}@media (max-width:560px){.calendar-editor{border-radius:16px;padding:18px}.calendar-editor-heading{flex-direction:column;align-items:flex-start}.calendar-event-form{grid-template-columns:1fr;grid-template-areas:"date""title""link""color""save"}.calendar-save-button{width:100%}.calendar-color-options{flex-wrap:wrap}}
