.calendar-wrapper,.calendar{overflow:visible}.calendar__grid-wrap{background:#fafbff;border:1px solid #eeeff6;border-radius:14px;min-width:0;padding-bottom:4px;overflow:visible}.calendar__grid-loading{text-align:center;color:#6b7280;margin:0;padding:2.5rem 1rem;font-size:.9rem}.calendar__grid{background:#eeeff6;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;display:grid}.calendar__day-header{text-align:center;text-transform:uppercase;letter-spacing:.08em;color:#6b7280;background:#f4f5fa;min-width:0;padding:10px 8px;font-size:.72rem;font-weight:700}.calendar__day-header--weekend{color:#b08eb2}.calendar__day-header-short{display:none}.calendar__cell{text-align:left;min-width:0;min-height:112px;font:inherit;color:inherit;cursor:default;box-sizing:border-box;background:#fff;border:none;flex-direction:column;gap:4px;width:100%;padding:8px;transition:background .15s;display:flex;position:relative;overflow:visible}.calendar__cell:not(:disabled){cursor:pointer}.calendar__cell:hover:not(:disabled){background:#fff8fa}.calendar__cell:focus-visible:not(:disabled){outline-offset:-2px;z-index:1;outline:2px solid #9a7b9c}.calendar__cell--weekend{background:#fcfaff}.calendar__cell--weekend:hover:not(:disabled){background:#faf6ff}.calendar__cell--out .calendar__date-num{color:#c6c9d8}.calendar__cell--out .calendar__markers{opacity:.5}.calendar__cell--past:disabled{cursor:not-allowed;opacity:.7}.calendar__cell--past .calendar__date-num{color:#9aa0b5}.calendar__cell--past .calendar__markers{opacity:.45}.calendar__cell--has-events:not(.calendar__cell--past):not(.calendar__cell--out){background:linear-gradient(165deg, color-mix(in srgb, var(--cell-tint,#f5f3ff) 88%, #fff) 0%, #fff 72%)}.calendar__cell--has-events:not(.calendar__cell--past):not(:disabled):hover{background:linear-gradient(165deg, color-mix(in srgb, var(--cell-tint,#fff8fa) 75%, #fff) 0%, #fffafb 100%)}.calendar__date-wrap{justify-content:center;align-items:center;margin-bottom:4px;display:inline-flex;position:relative}.calendar__date-num{z-index:1;color:#2d2d2d;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-size:.85rem;font-weight:600;display:inline-flex;position:relative}.calendar__date-ring{z-index:2;border:2px solid #fff;border-radius:50%;width:6px;height:6px;position:absolute;bottom:-2px;left:50%;transform:translate(-50%);box-shadow:0 1px 4px #0f172a33}.calendar__cell--has-events:not(.calendar__cell--today) .calendar__date-num{box-shadow:0 0 0 2px color-mix(in srgb, var(--cell-accent,#7c3aed) 22%, transparent)}.calendar__cell--today .calendar__date-num{background:linear-gradient(135deg, var(--btn-primary-from,#ffc9d9) 0%, var(--btn-primary-mid,#ffb7ce) 45%, var(--btn-primary-to,#ffa8c5) 100%);color:var(--btn-primary-text,#4a3b52);box-shadow:0 4px 12px var(--btn-primary-shadow,#ffa0b973)}.calendar__markers{z-index:1;pointer-events:auto;flex-direction:column;flex:auto;justify-content:flex-end;align-items:center;gap:4px;width:100%;min-width:0;min-height:36px;margin-top:auto;display:flex;position:relative;overflow:visible}.calendar__markers--tip-open{z-index:40}.calendar__cell--has-events:hover,.calendar__cell--has-events:focus-within{z-index:35}.calendar__markers--solo{align-items:center}.calendar__markers--multi{align-items:flex-start;gap:5px}.calendar__marker-dots{flex-wrap:nowrap;justify-content:center;align-items:center;width:100%;min-height:18px;padding:2px 0;display:flex}.calendar__marker-dot{vertical-align:middle;border:2px solid #fff;border-radius:50%;flex-shrink:0;width:12px;height:12px;margin-left:-5px;font-size:0;line-height:0;transition:transform .15s;display:inline-block;box-shadow:0 2px 5px #0f172a38}.calendar__marker-dot--solo{width:18px;height:18px;margin-left:0;box-shadow:0 0 0 3px #fff,0 3px 10px #0f172a47}.calendar__marker-dot:first-child{margin-left:0}.calendar__marker-dot--overflow{color:#fff;letter-spacing:-.02em;border:2px solid #fff;border-radius:999px;justify-content:center;align-items:center;width:auto;min-width:22px;height:18px;margin-left:-3px;padding:0 5px;font-size:.58rem;font-weight:800;display:inline-flex;box-shadow:0 2px 8px #7c3aed59;background:linear-gradient(135deg,#7c3aed 0%,#db2777 100%)!important}.calendar__marker-chip{text-transform:uppercase;letter-spacing:.04em;text-align:center;white-space:nowrap;text-overflow:ellipsis;border:1px solid;border-radius:999px;max-width:100%;padding:2px 8px;font-size:.62rem;font-weight:800;line-height:1.2;display:block;overflow:hidden}.calendar__marker-count{background:linear-gradient(135deg,#7c3aed1a 0%,#db277714 100%);border:1px solid #7c3aed38;border-radius:999px;align-self:flex-start;align-items:center;gap:4px;padding:2px 9px 2px 7px;display:inline-flex}.calendar__marker-count-num{color:#5b21b6;font-size:.72rem;font-weight:800;line-height:1}.calendar__marker-count-label{color:#7c3aed;text-transform:uppercase;letter-spacing:.04em;font-size:.62rem;font-weight:700;line-height:1}.calendar__cell:not(:disabled):hover .calendar__marker-dot{transform:translateY(-1px)}@media (max-width:720px){.calendar__day-header-full{display:none}.calendar__day-header-short{display:inline}.calendar__day-header{padding:8px 4px}.calendar__cell{gap:2px;min-height:78px;padding:5px 4px 4px}.calendar__date-num{width:22px;height:22px;font-size:.78rem}.calendar__marker-dot{width:10px;height:10px}.calendar__marker-dot--solo{width:14px;height:14px}.calendar__marker-chip{padding:1px 5px;font-size:.58rem}.calendar__marker-count-label{display:none}}@media (max-width:480px){.calendar__cell{min-height:64px}.calendar__marker-chip{display:none}}.calendar__legend-wrap{margin-top:var(--space-md);padding-top:var(--space-md);border-top:1px dashed #e9eaf3;padding-bottom:4px;position:relative;overflow:visible}.calendar__legend-title{color:#64748b;align-items:center;gap:8px;margin:0 0 10px;font-size:.78rem;font-weight:700;display:flex}.calendar__legend-title-icon{color:#7c3aed;font-size:.65rem}.calendar__legend{flex-wrap:wrap;gap:8px;display:flex;position:relative;overflow:visible}.calendar__legend-item{z-index:1;font:inherit;color:#2d2d2d;cursor:help;appearance:none;background:#fff;border:1px solid #e9eaf3;border-left-width:3px;border-radius:999px;align-items:center;gap:6px;max-width:240px;margin:0;padding:5px 12px 5px 8px;font-size:.78rem;font-weight:600;transition:box-shadow .15s,transform .15s;display:inline-flex;position:relative}.calendar__legend-item:hover,.calendar__legend-item:focus-visible{outline:none;transform:translateY(-1px);box-shadow:0 4px 14px #7c3aed26}.calendar__legend-item:focus-visible{outline-offset:2px;outline:2px solid #9a7b9c}.calendar__legend-item--tip-open{z-index:45}.calendar__legend-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.calendar__legend-dot{border:2px solid #fff;border-radius:50%;flex:none;width:10px;height:10px;display:inline-block;box-shadow:0 1px 4px #0f172a2e}.cal-marker-tip{z-index:50;pointer-events:none;text-align:left;background:linear-gradient(165deg,#fff 0%,#faf8ff 100%);border:1px solid #7c3aed38;border-radius:14px;width:min(260px,72vw);max-width:280px;padding:0;position:absolute;left:50%;transform:translate(-50%);box-shadow:inset 0 0 0 1px #ffffffe6,0 14px 40px #4c1d952e,0 4px 12px #0f172a1a}.cal-marker-tip--above{animation:.16s ease-out cal-marker-tip-in-above;bottom:calc(100% + 10px)}.cal-marker-tip--below{animation:.16s ease-out cal-marker-tip-in-below;top:calc(100% + 10px)}.cal-marker-tip--fixed{pointer-events:none;z-index:10000;margin:0;left:auto}.cal-marker-tip--fixed-above{animation:.16s ease-out forwards cal-marker-tip-in-fixed-above;transform:translate(-50%,-100%)}.cal-marker-tip--fixed-below{animation:.16s ease-out forwards cal-marker-tip-in-fixed-below;transform:translate(-50%)}.cal-marker-tip--fixed.cal-marker-tip--legend{pointer-events:auto;max-width:min(280px,100vw - 24px)}.cal-marker-tip--fixed-above .cal-marker-tip__arrow{background:#faf8ff;border-bottom:1px solid #7c3aed2e;border-right:1px solid #7c3aed2e;width:14px;height:14px;margin-left:-7px;position:absolute;bottom:-7px;left:50%;transform:rotate(45deg);box-shadow:3px 3px 6px #4c1d9514}.cal-marker-tip--fixed-below .cal-marker-tip__arrow{background:#faf8ff;border-top:1px solid #7c3aed2e;border-left:1px solid #7c3aed2e;width:14px;height:14px;margin-left:-7px;position:absolute;top:-7px;left:50%;transform:rotate(45deg);box-shadow:-2px -2px 6px #4c1d9514}@keyframes cal-marker-tip-in-fixed-above{0%{opacity:0;transform:translate(-50%,calc(8px - 100%))}to{opacity:1;transform:translate(-50%,-100%)}}@keyframes cal-marker-tip-in-fixed-below{0%{opacity:0;transform:translate(-50%,-8px)}to{opacity:1;transform:translate(-50%)}}@keyframes cal-marker-tip-in-above{0%{opacity:0;transform:translate(-50%)translateY(6px)}to{opacity:1;transform:translate(-50%)translateY(0)}}@keyframes cal-marker-tip-in-below{0%{opacity:0;transform:translate(-50%)translateY(-6px)}to{opacity:1;transform:translate(-50%)translateY(0)}}@media (prefers-reduced-motion:reduce){.cal-marker-tip--above,.cal-marker-tip--below,.cal-marker-tip--fixed-above,.cal-marker-tip--fixed-below{animation:none}}.cal-marker-tip--above .cal-marker-tip__arrow{background:#faf8ff;border-bottom:1px solid #7c3aed2e;border-right:1px solid #7c3aed2e;width:14px;height:14px;margin-left:-7px;position:absolute;bottom:-7px;left:50%;transform:rotate(45deg);box-shadow:3px 3px 6px #4c1d9514}.cal-marker-tip--below .cal-marker-tip__arrow{background:#faf8ff;border-top:1px solid #7c3aed2e;border-left:1px solid #7c3aed2e;width:14px;height:14px;margin-left:-7px;position:absolute;top:-7px;left:50%;transform:rotate(45deg);box-shadow:-2px -2px 6px #4c1d9514}.cal-marker-tip__header{background:linear-gradient(135deg,#7c3aed1f 0%,#db277714 100%);border-bottom:1px solid #7c3aed1f;border-radius:14px 14px 0 0;align-items:center;gap:10px;padding:12px 14px 10px;display:flex}.cal-marker-tip__header-icon{color:#fff;background:linear-gradient(135deg,#7c3aed 0%,#db2777 100%);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;display:flex;box-shadow:0 4px 12px #7c3aed59}.cal-marker-tip__header-icon svg{width:18px;height:18px}.cal-marker-tip__header-kicker{text-transform:uppercase;letter-spacing:.07em;color:#7c3aed;margin:0;font-size:.65rem;font-weight:800;line-height:1.2}.cal-marker-tip__header-date{color:#1e293b;margin:2px 0 0;font-size:.92rem;font-weight:700;line-height:1.25}.cal-marker-tip__list{scrollbar-width:thin;scrollbar-color:#7c3aed59 transparent;flex-direction:column;gap:8px;max-height:min(220px,40vh);margin:0;padding:8px 10px;list-style:none;display:flex;overflow-y:auto}.cal-marker-tip__event{background:linear-gradient(120deg, var(--tip-bg,#f5f3ff) 0%, #fff 55%);border:1px solid color-mix(in srgb, var(--tip-accent,#7c3aed) 22%, #e8eaf3);box-shadow:0 2px 8px color-mix(in srgb, var(--tip-accent,#7c3aed) 10%, transparent);border-radius:10px;gap:0;display:flex;position:relative;overflow:hidden}.cal-marker-tip__event-accent{background:var(--tip-accent,#7c3aed);flex-shrink:0;width:4px}.cal-marker-tip__event-body{flex:1;min-width:0;padding:8px 10px 8px 8px}.cal-marker-tip__event-top{margin-bottom:4px}.cal-marker-tip__badge{text-transform:uppercase;letter-spacing:.05em;color:#fff;border-radius:999px;padding:2px 8px;font-size:.58rem;font-weight:800;line-height:1.35;display:inline-block}.cal-marker-tip__title{color:#0f172a;margin:0 0 6px;font-size:.86rem;font-weight:800;line-height:1.3}.cal-marker-tip__row{color:#475569;align-items:flex-start;gap:6px;margin:0 0 4px;font-size:.74rem;font-weight:600;line-height:1.35;display:flex}.cal-marker-tip__row:last-child{margin-bottom:0}.cal-marker-tip__row--location span{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.cal-marker-tip__icon{width:.95rem;height:.95rem;color:var(--tip-accent,#7c3aed);flex-shrink:0;margin-top:1px}.cal-marker-tip__hint{color:#64748b;background:#f8fafccc;border-top:1px dashed #7c3aed26;border-radius:0 0 14px 14px;align-items:center;gap:6px;margin:0;padding:8px 12px 10px;font-size:.68rem;font-weight:600;display:flex}.cal-marker-tip__hint-icon{color:#7c3aed;flex-shrink:0;width:.9rem;height:.9rem}@media (max-width:720px){.cal-marker-tip{width:min(240px,85vw);bottom:calc(100% + 6px)}}
