.checkbox-group{display:flex;flex-direction:column;border-top:1px solid var(--color-black)}.checkbox-group__item{display:grid;grid-template-columns:1fr 1fr auto;align-items:center;gap:var(--space-lg);padding:var(--space-md) 0;border-bottom:1px solid var(--color-black)}.checkbox-group__item--compact{grid-template-columns:1fr auto}.checkbox-group__label{display:flex;align-items:center;gap:var(--space-md);cursor:pointer}.checkbox-group__checkbox{position:absolute;opacity:0;width:0;height:0}.checkbox-group__check{width:20px;height:20px;border:2px solid var(--color-black);border-radius:2px;flex-shrink:0;position:relative;transition:background-color .2s ease,border-color .2s ease}.checkbox-group__check:after{content:"";position:absolute;top:2px;left:6px;width:5px;height:10px;border:solid var(--color-white);border-width:0 2px 2px 0;transform:rotate(45deg) scale(0);transition:transform .2s ease}.checkbox-group__checkbox:checked+.checkbox-group__check{background-color:var(--color-black);border-color:var(--color-black)}.checkbox-group__checkbox:checked+.checkbox-group__check:after{transform:rotate(45deg) scale(1)}.checkbox-group__checkbox:focus-visible+.checkbox-group__check{outline:2px solid var(--color-input-focus);outline-offset:2px}.checkbox-group__text{font-size:1rem;font-weight:var(--font-weight-medium);letter-spacing:-.02em}.checkbox-group__desc{font-size:1rem;font-weight:var(--font-weight-regular);letter-spacing:-.02em;color:var(--color-gray-500)}.checkbox-group__arrow{width:18px;height:18px;flex-shrink:0;transition:transform .3s ease;cursor:pointer}.checkbox-group__item:hover .checkbox-group__arrow{transform:translate(3px,-3px)}.checkbox-group--multi{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-lg);border-top:none}.checkbox-group__category-title{font-size:.875rem;font-weight:var(--font-weight-regular);letter-spacing:-.02em;color:var(--color-gray-500);margin:0;padding:var(--space-sm) 0}.checkbox-group__items{display:flex;flex-direction:column}.checkbox-group__items .checkbox-group__item:last-child{border-bottom:none}.checkbox-group--multi .checkbox-group__item{border-top:none}@media(max-width:1024px){.checkbox-group--multi{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.checkbox-group__item{grid-template-columns:1fr auto;gap:var(--space-md)}.checkbox-group__desc{grid-column:1;grid-row:2;padding-left:36px}.checkbox-group__arrow{grid-row:1 / span 2;align-self:center}.checkbox-group--multi{grid-template-columns:1fr}}@media(max-width:480px){.checkbox-group__check{width:18px;height:18px}.checkbox-group__text,.checkbox-group__desc{font-size:.9rem}}.calendar{width:100%}.calendar__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-md)}.calendar__display{font-size:clamp(1.25rem,1rem + 1vw,1.5rem);font-weight:var(--font-weight-medium);letter-spacing:-.02em;color:var(--color-black)}.calendar__nav{display:flex;align-items:center;gap:var(--space-xs)}.calendar__nav-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;border-radius:4px;transition:background-color .2s ease}.calendar__nav-btn:hover{background-color:var(--color-gray-100)}.calendar__nav-btn svg{width:20px;height:20px}.calendar__months{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-xl)}.calendar__month-col{min-width:0}.calendar__weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:2px}.calendar__weekdays span{text-align:center;font-size:.7rem;font-weight:var(--font-weight-medium);color:var(--color-gray-500);padding:var(--space-xs) 0}.calendar__hint{margin-top:var(--space-md);font-size:.875rem;color:var(--color-gray-500)}.calendar.has-selection .calendar__hint{display:none}.calendar__warning{margin-top:var(--space-md);padding:var(--space-sm) var(--space-md);font-size:.875rem;color:var(--color-primary, #e53e3e);background-color:#e53e3e1a;border-radius:4px;display:none}.calendar__grid{display:grid;grid-template-columns:repeat(7,1fr);grid-template-rows:repeat(6,1fr);gap:2px}.calendar__day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:.9rem;font-weight:var(--font-weight-regular);letter-spacing:-.02em;color:var(--color-black);background-color:var(--color-gray-50, rgba(0, 0, 0, .02));border-radius:4px;cursor:pointer;transition:background-color .2s ease,color .2s ease;position:relative;user-select:none}.calendar__day:hover:not(.calendar__day--disabled):not(.calendar__day--selected){background-color:var(--color-gray-100)}.calendar__day--disabled{color:var(--color-gray-300);cursor:not-allowed}.calendar__day--blocked{background-color:var(--color-gray-200, #e5e5e5);color:var(--color-gray-400, #a3a3a3);cursor:not-allowed;position:relative}.calendar__day--blocked:before{content:"";position:absolute;top:50%;left:50%;width:60%;height:1px;background-color:var(--color-gray-400, #a3a3a3);transform:translate(-50%,-50%) rotate(-45deg)}.calendar__day--blocked:hover{background-color:var(--color-gray-200, #e5e5e5)}.calendar__day--today{font-weight:var(--font-weight-medium)}.calendar__day--today:after{content:"";position:absolute;bottom:4px;left:50%;transform:translate(-50%);width:4px;height:4px;border-radius:50%;background-color:var(--color-calendar-selected)}.calendar__day--selected{background-color:var(--color-calendar-selected);color:var(--color-white);font-weight:var(--font-weight-medium)}.calendar__day--in-range{background-color:var(--color-calendar-range)}.calendar__day--range-start{border-radius:4px 0 0 4px}.calendar__day--range-end{border-radius:0 4px 4px 0}.calendar__day--range-start.calendar__day--range-end{border-radius:4px}.calendar__day--weekend:not(.calendar__day--selected):not(.calendar__day--in-range){color:var(--color-gray-500)}@media(max-width:768px){.calendar__months{grid-template-columns:1fr;gap:var(--space-lg)}}@media(max-width:480px){.calendar__day{font-size:.8rem}.calendar__display{font-size:1.125rem}}.form{display:flex;flex-direction:column;gap:var(--space-lg)}.form__row{display:flex;flex-direction:column;gap:var(--space-md)}.form__row--two-col{flex-direction:row;gap:var(--space-lg)}.form__row--two-col .form__field{flex:1}.form__field{position:relative}.form__input,.form__textarea{width:100%;padding:var(--space-md);font-family:var(--font-family);font-size:1rem;font-weight:var(--font-weight-regular);letter-spacing:-.02em;color:var(--color-black);background:var(--color-gray-100);border:2px solid transparent;border-radius:0;outline:none;transition:border-color .2s ease,background-color .2s ease}.form__input::placeholder,.form__textarea::placeholder{color:var(--color-gray-500)}.form__input:focus,.form__textarea:focus{border-color:var(--color-input-focus);background:var(--color-white)}.form__input.is-invalid,.form__textarea.is-invalid{border-color:var(--color-error)}.form__textarea{resize:vertical;min-height:150px}.form__error{display:none;font-size:.8rem;color:var(--color-error);margin-top:var(--space-sm)}.form__field.is-invalid .form__error{display:block}.form__date-display{font-size:clamp(1.25rem,1rem + 1vw,1.5rem);font-weight:var(--font-weight-medium);letter-spacing:-.02em;color:var(--color-black)}.form__field--summary{display:flex;flex-direction:column}.form__summary-value{font-family:var(--font-family-detail);font-size:1rem;line-height:1.5;letter-spacing:0;color:var(--color-black)}.form__button{display:inline-flex;align-items:center;justify-content:center;padding:var(--space-md) var(--space-xl);font-family:var(--font-family);font-size:1rem;font-weight:var(--font-weight-medium);letter-spacing:-.02em;color:var(--color-white);background:var(--color-calendar-selected);border:none;border-radius:50px;cursor:pointer;transition:opacity .2s ease,transform .2s ease;align-self:flex-start}.form__button:hover{opacity:.9}.form__button:active{transform:scale(.98)}.form__button:disabled{opacity:.5;cursor:not-allowed}.form__success{display:none;padding:var(--space-lg);background:transparent;color:var(--color-primary, var(--color-calendar-selected));font-size:1.25rem;font-weight:var(--font-weight-medium);text-align:center;border-radius:4px}.form.is-success .form__success{display:block}.form.is-success .form__row,.form.is-success .form__button{display:none}@media(max-width:768px){.form__row--two-col{flex-direction:column;gap:var(--space-md)}}@media(max-width:480px){.form__input,.form__textarea{padding:var(--space-sm) var(--space-md);font-size:.9rem}.form__button{width:100%;padding:var(--space-md)}}
